; LLVM IR from drohmer/cgp :: library/cgp/06_mat/test/test_matrix_stack.ll (ZN8cgp_test17test_matrix_stackEv)

; 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::matrix_stack" = type { %"struct.cgp::numarray_stack" }
%"struct.cgp::numarray_stack" = type { %"struct.cgp::numarray_stack.0", %"struct.cgp::numarray_stack.0" }
%"struct.cgp::numarray_stack.0" = type { i32, i32, i32 }
%"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" = type { i8 }
%"struct.cgp::matrix_stack.1" = type { %"struct.cgp::numarray_stack.2" }
%"struct.cgp::numarray_stack.2" = type { %"struct.cgp::numarray_stack.3", %"struct.cgp::numarray_stack.3", %"struct.cgp::numarray_stack.3" }
%"struct.cgp::numarray_stack.3" = type { i32, i32 }
%"struct.cgp::matrix_stack.4" = type { %"struct.cgp::numarray_stack.5" }
%"struct.cgp::numarray_stack.5" = type { %"struct.cgp::numarray_stack.3", %"struct.cgp::numarray_stack.3" }
%"struct.cgp::matrix_stack.6" = type { %"struct.cgp::numarray_stack.7" }
%"struct.cgp::numarray_stack.7" = type { %"struct.std::array" }
%"struct.std::array" = type { [5 x %"struct.cgp::numarray_stack.8"] }
%"struct.cgp::numarray_stack.8" = type { i32, i32, i32, i32 }
%"struct.cgp::matrix_stack.9" = type { %"struct.cgp::numarray_stack.10" }
%"struct.cgp::numarray_stack.10" = type { %"struct.cgp::numarray_stack.0", %"struct.cgp::numarray_stack.0", %"struct.cgp::numarray_stack.0", %"struct.cgp::numarray_stack.0" }
%"struct.cgp::matrix_stack.11" = type { %"struct.cgp::numarray_stack.12" }
%"struct.cgp::numarray_stack.12" = type { %"struct.cgp::numarray_stack.13", %"struct.cgp::numarray_stack.13", %"struct.cgp::numarray_stack.13" }
%"struct.cgp::numarray_stack.13" = type { float, float, float }
%"class.std::initializer_list.14" = type { ptr, i64 }
%"struct.cgp::matrix_stack.15" = type { %"struct.cgp::numarray_stack.16" }
%"struct.cgp::numarray_stack.16" = type { %"struct.cgp::numarray_stack.17", %"struct.cgp::numarray_stack.17", %"struct.cgp::numarray_stack.17" }
%"struct.cgp::numarray_stack.17" = type { float, float, float, float }
%"struct.cgp::matrix_stack.18" = type { %"struct.cgp::numarray_stack.19" }
%"struct.cgp::numarray_stack.19" = type { %"struct.cgp::numarray_stack.13", %"struct.cgp::numarray_stack.13", %"struct.cgp::numarray_stack.13", %"struct.cgp::numarray_stack.13" }
%"struct.cgp::matrix_stack.20" = type { %"struct.cgp::numarray_stack.21" }
%"struct.cgp::numarray_stack.21" = type { %"struct.cgp::numarray_stack.22", %"struct.cgp::numarray_stack.22" }
%"struct.cgp::numarray_stack.22" = type { float, float }
%"struct.cgp::matrix_stack.23" = type { %"struct.cgp::numarray_stack.24" }
%"struct.cgp::numarray_stack.24" = type { %"struct.cgp::numarray_stack.17", %"struct.cgp::numarray_stack.17", %"struct.cgp::numarray_stack.17", %"struct.cgp::numarray_stack.17" }
%"struct.cgp::matrix_stack.25" = type { %"struct.cgp::numarray_stack.26" }
%"struct.cgp::numarray_stack.26" = type { %"struct.cgp::numarray_stack.13", %"struct.cgp::numarray_stack.13" }
%"struct.cgp::matrix_stack.27" = type { %"struct.cgp::numarray_stack.28" }
%"struct.cgp::numarray_stack.28" = type { %"struct.cgp::numarray_stack.29", %"struct.cgp::numarray_stack.29", %"struct.cgp::numarray_stack.29" }
%"struct.cgp::numarray_stack.29" = type { %"struct.std::array.30" }
%"struct.std::array.30" = type { [1 x float] }
%"struct.cgp::matrix_stack.31" = type { %"struct.cgp::numarray_stack.32" }
%"struct.cgp::numarray_stack.32" = type { %"struct.std::array.33" }
%"struct.std::array.33" = type { [1 x %"struct.cgp::numarray_stack.13"] }

@constinit = external hidden constant [6 x i32], align 4
@.str = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [91 x i8], align 1
@__func__._ZN8cgp_test17test_matrix_stackEv = external hidden unnamed_addr constant [18 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [39 x i8], align 1
@constinit.37 = external hidden constant [6 x i32], align 4
@constinit.38 = external hidden constant [6 x i32], align 4
@.str.39 = external hidden unnamed_addr constant [53 x i8], align 1
@constinit.40 = external hidden constant [6 x i32], align 4
@constinit.41 = external hidden constant [6 x i32], align 4
@constinit.42 = external hidden constant [6 x i32], align 4
@.str.43 = external hidden unnamed_addr constant [59 x i8], align 1
@constinit.44 = external hidden constant [6 x i32], align 4
@.str.45 = external hidden unnamed_addr constant [49 x i8], align 1
@constinit.46 = external hidden constant [20 x i32], align 4
@constinit.47 = external hidden constant [12 x i32], align 4
@.str.48 = external hidden unnamed_addr constant [101 x i8], align 1
@constinit.49 = external hidden constant [12 x i32], align 4
@.str.50 = external hidden unnamed_addr constant [102 x i8], align 1
@constinit.51 = external hidden constant [12 x i32], align 4
@.str.52 = external hidden unnamed_addr constant [98 x i8], align 1
@constinit.53 = external hidden constant [9 x float], align 4
@.str.54 = external hidden unnamed_addr constant [114 x i8], align 1
@constinit.55 = external hidden constant [12 x float], align 4
@.str.56 = external hidden unnamed_addr constant [120 x i8], align 1
@constinit.57 = external hidden constant [12 x float], align 4
@.str.58 = external hidden unnamed_addr constant [121 x i8], align 1
@constinit.59 = external hidden constant [9 x float], align 4
@.str.60 = external hidden unnamed_addr constant [30 x i8], align 1
@constinit.61 = external hidden constant [16 x float], align 4
@.str.62 = external hidden unnamed_addr constant [57 x i8], align 1
@constinit.63 = external hidden constant [16 x float], align 4
@.str.64 = external hidden unnamed_addr constant [30 x i8], align 1
@constinit.65 = external hidden constant [9 x float], align 4
@.str.66 = external hidden unnamed_addr constant [44 x i8], align 1
@constinit.67 = external hidden constant <{ float, float, float, float, float, float, [10 x float] }>, align 4
@.str.68 = external hidden unnamed_addr constant [88 x i8], align 1
@constinit.69 = external hidden constant <{ float, float, float, float, float, float, float, [9 x float] }>, align 4
@.str.70 = external hidden unnamed_addr constant [94 x i8], align 1
@constinit.71 = external hidden constant [16 x float], align 4
@.str.72 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [30 x i8], align 1
@constinit.74 = external hidden constant [9 x float], align 4
@.str.75 = external hidden unnamed_addr constant [34 x i8], align 1
@constinit.76 = external hidden constant [16 x float], align 4
@.str.77 = external hidden unnamed_addr constant [37 x i8], align 1
@constinit.78 = external hidden constant [6 x i32], align 4
@constinit.79 = external hidden constant [6 x i32], align 4
@constinit.80 = external hidden constant [6 x i32], align 4
@.str.81 = external hidden unnamed_addr constant [61 x i8], align 1
@constinit.82 = external hidden constant [6 x i32], align 4
@.str.83 = external hidden unnamed_addr constant [60 x i8], align 1
@constinit.84 = external hidden constant [6 x i32], align 4
@constinit.85 = external hidden constant [6 x i32], align 4
@.str.86 = external hidden unnamed_addr constant [57 x i8], align 1
@constinit.87 = external hidden constant [6 x float], align 4
@constinit.88 = external hidden constant [6 x float], align 4
@.str.89 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [32 x i8], align 1
@constinit.95 = external hidden constant [9 x float], align 4
@.str.96 = external hidden unnamed_addr constant [42 x i8], align 1
@constinit.97 = external hidden constant [16 x float], align 4
@.str.98 = external hidden unnamed_addr constant [57 x i8], align 1
@constinit.99 = external hidden constant [6 x float], align 4
@.str.100 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [48 x i8], align 1
@constinit.105 = external hidden constant [16 x float], align 4
@.str.106 = external hidden unnamed_addr constant [57 x i8], align 1
@constinit.107 = external hidden constant [16 x float], align 4
@.str.108 = external hidden unnamed_addr constant [57 x i8], align 1
@constinit.109 = external hidden constant [16 x float], align 4
@.str.110 = external hidden unnamed_addr constant [57 x i8], align 1
@constinit.111 = external hidden constant [16 x float], align 4
@.str.112 = external hidden unnamed_addr constant [57 x i8], align 1
@constinit.113 = external hidden constant [16 x float], align 4
@constinit.114 = external hidden constant [16 x float], align 4
@constinit.115 = external hidden constant [16 x float], align 4
@constinit.116 = external hidden constant [16 x float], align 4
@constinit.117 = external hidden constant [9 x float], align 4
@.str.118 = external hidden unnamed_addr constant [42 x i8], align 1
@constinit.119 = external hidden constant [9 x float], align 4
@.str.120 = external hidden unnamed_addr constant [42 x i8], align 1
@constinit.121 = external hidden constant [9 x float], align 4
@.str.122 = external hidden unnamed_addr constant [42 x i8], align 1
@constinit.123 = external hidden constant [9 x float], align 4
@.str.124 = external hidden unnamed_addr constant [43 x i8], align 1
@constinit.125 = external hidden constant [9 x float], align 4
@.str.126 = external hidden unnamed_addr constant [43 x i8], align 1
@constinit.127 = external hidden constant [9 x float], align 4
@.str.128 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [32 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8cgp_test17test_matrix_stackEv() #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca %"struct.cgp::matrix_stack", align 4
  %2 = alloca %"class.std::initializer_list", align 8
  %3 = alloca [6 x i32], align 4
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::allocator", align 1
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator", align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator", align 1
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator", align 1
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator", align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator", align 1
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::allocator", align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator", align 1
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::allocator", align 1
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator", align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator", align 1
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::allocator", align 1
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::allocator", align 1
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator", align 1
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::allocator", align 1
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator", align 1
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::allocator", align 1
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::allocator", align 1
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator", align 1
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::allocator", align 1
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::allocator", align 1
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::allocator", align 1
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::allocator", align 1
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::allocator", align 1
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::allocator", align 1
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::allocator", align 1
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::allocator", align 1
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::allocator", align 1
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::allocator", align 1
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::allocator", align 1
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::allocator", align 1
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::allocator", align 1
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::allocator", align 1
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::allocator", align 1
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::allocator", align 1
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::allocator", align 1
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.std::allocator", align 1
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::allocator", align 1
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::allocator", align 1
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::allocator", align 1
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::allocator", align 1
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::allocator", align 1
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.std::allocator", align 1
  %120 = alloca %"class.std::__cxx11::basic_string", align 8
  %121 = alloca %"class.std::allocator", align 1
  %122 = alloca %"class.std::__cxx11::basic_string", align 8
  %123 = alloca %"class.std::allocator", align 1
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.std::allocator", align 1
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::allocator", align 1
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::allocator", align 1
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca %"class.std::allocator", align 1
  %132 = alloca %"class.std::__cxx11::basic_string", align 8
  %133 = alloca %"class.std::allocator", align 1
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.std::allocator", align 1
  %136 = alloca %"class.std::__cxx11::basic_string", align 8
  %137 = alloca %"class.std::allocator", align 1
  %138 = alloca %"class.std::__cxx11::basic_string", align 8
  %139 = alloca %"class.std::allocator", align 1
  %140 = alloca %"class.std::__cxx11::basic_string", align 8
  %141 = alloca %"class.std::allocator", align 1
  %142 = alloca %"class.std::__cxx11::basic_string", align 8
  %143 = alloca %"class.std::allocator", align 1
  %144 = alloca %"class.std::__cxx11::basic_string", align 8
  %145 = alloca %"class.std::allocator", align 1
  %146 = alloca %"class.std::__cxx11::basic_string", align 8
  %147 = alloca %"class.std::allocator", align 1
  %148 = alloca %"class.std::__cxx11::basic_string", align 8
  %149 = alloca %"class.std::allocator", align 1
  %150 = alloca %"struct.cgp::numarray_stack.0", align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca %"struct.cgp::numarray_stack.0", align 4
  %155 = alloca i32, align 4
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca %"class.std::allocator", align 1
  %160 = alloca %"class.std::__cxx11::basic_string", align 8
  %161 = alloca %"class.std::allocator", align 1
  %162 = alloca %"class.std::__cxx11::basic_string", align 8
  %163 = alloca %"class.std::allocator", align 1
  %164 = alloca %"class.std::__cxx11::basic_string", align 8
  %165 = alloca %"class.std::allocator", align 1
  %166 = alloca %"struct.cgp::numarray_stack.0", align 4
  %167 = alloca i32, align 4
  %168 = alloca i32, align 4
  %169 = alloca i32, align 4
  %170 = alloca %"struct.cgp::numarray_stack.0", align 4
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca %"class.std::__cxx11::basic_string", align 8
  %175 = alloca %"class.std::allocator", align 1
  %176 = alloca %"class.std::__cxx11::basic_string", align 8
  %177 = alloca %"class.std::allocator", align 1
  %178 = alloca %"class.std::__cxx11::basic_string", align 8
  %179 = alloca %"class.std::allocator", align 1
  %180 = alloca %"class.std::__cxx11::basic_string", align 8
  %181 = alloca %"class.std::allocator", align 1
  %182 = alloca i32, align 4
  %183 = alloca %"class.std::__cxx11::basic_string", align 8
  %184 = alloca %"class.std::allocator", align 1
  %185 = alloca %"class.std::__cxx11::basic_string", align 8
  %186 = alloca %"class.std::allocator", align 1
  %187 = alloca %"class.std::__cxx11::basic_string", align 8
  %188 = alloca %"class.std::allocator", align 1
  %189 = alloca %"class.std::__cxx11::basic_string", align 8
  %190 = alloca %"class.std::allocator", align 1
  %191 = alloca i32, align 4
  %192 = alloca %"class.std::__cxx11::basic_string", align 8
  %193 = alloca %"class.std::allocator", align 1
  %194 = alloca %"class.std::__cxx11::basic_string", align 8
  %195 = alloca %"class.std::allocator", align 1
  %196 = alloca %"class.std::__cxx11::basic_string", align 8
  %197 = alloca %"class.std::allocator", align 1
  %198 = alloca %"class.std::__cxx11::basic_string", align 8
  %199 = alloca %"class.std::allocator", align 1
  %200 = alloca i32, align 4
  %201 = alloca %"class.std::__cxx11::basic_string", align 8
  %202 = alloca %"class.std::allocator", align 1
  %203 = alloca %"class.std::__cxx11::basic_string", align 8
  %204 = alloca %"class.std::allocator", align 1
  %205 = alloca %"class.std::__cxx11::basic_string", align 8
  %206 = alloca %"class.std::allocator", align 1
  %207 = alloca %"class.std::__cxx11::basic_string", align 8
  %208 = alloca %"class.std::allocator", align 1
  %209 = alloca i32, align 4
  %210 = alloca %"class.std::__cxx11::basic_string", align 8
  %211 = alloca %"class.std::allocator", align 1
  %212 = alloca %"class.std::__cxx11::basic_string", align 8
  %213 = alloca %"class.std::allocator", align 1
  %214 = alloca %"class.std::__cxx11::basic_string", align 8
  %215 = alloca %"class.std::allocator", align 1
  %216 = alloca %"class.std::__cxx11::basic_string", align 8
  %217 = alloca %"class.std::allocator", align 1
  %218 = alloca i32, align 4
  %219 = alloca %"class.std::__cxx11::basic_string", align 8
  %220 = alloca %"class.std::allocator", align 1
  %221 = alloca %"class.std::__cxx11::basic_string", align 8
  %222 = alloca %"class.std::allocator", align 1
  %223 = alloca %"class.std::__cxx11::basic_string", align 8
  %224 = alloca %"class.std::allocator", align 1
  %225 = alloca %"class.std::__cxx11::basic_string", align 8
  %226 = alloca %"class.std::allocator", align 1
  %227 = alloca i32, align 4
  %228 = alloca %"class.std::__cxx11::basic_string", align 8
  %229 = alloca %"class.std::allocator", align 1
  %230 = alloca %"class.std::__cxx11::basic_string", align 8
  %231 = alloca %"class.std::allocator", align 1
  %232 = alloca %"class.std::__cxx11::basic_string", align 8
  %233 = alloca %"class.std::allocator", align 1
  %234 = alloca %"class.std::__cxx11::basic_string", align 8
  %235 = alloca %"class.std::allocator", align 1
  %236 = alloca i32, align 4
  %237 = alloca %"class.std::__cxx11::basic_string", align 8
  %238 = alloca %"class.std::allocator", align 1
  %239 = alloca %"class.std::__cxx11::basic_string", align 8
  %240 = alloca %"class.std::allocator", align 1
  %241 = alloca %"class.std::__cxx11::basic_string", align 8
  %242 = alloca %"class.std::allocator", align 1
  %243 = alloca %"class.std::__cxx11::basic_string", align 8
  %244 = alloca %"class.std::allocator", align 1
  %245 = alloca i32, align 4
  %246 = alloca %"class.std::__cxx11::basic_string", align 8
  %247 = alloca %"class.std::allocator", align 1
  %248 = alloca %"class.std::__cxx11::basic_string", align 8
  %249 = alloca %"class.std::allocator", align 1
  %250 = alloca %"class.std::__cxx11::basic_string", align 8
  %251 = alloca %"class.std::allocator", align 1
  %252 = alloca %"class.std::__cxx11::basic_string", align 8
  %253 = alloca %"class.std::allocator", align 1
  %254 = alloca i32, align 4
  %255 = alloca %"class.std::__cxx11::basic_string", align 8
  %256 = alloca %"class.std::allocator", align 1
  %257 = alloca %"class.std::__cxx11::basic_string", align 8
  %258 = alloca %"class.std::allocator", align 1
  %259 = alloca %"class.std::__cxx11::basic_string", align 8
  %260 = alloca %"class.std::allocator", align 1
  %261 = alloca %"class.std::__cxx11::basic_string", align 8
  %262 = alloca %"class.std::allocator", align 1
  %263 = alloca i32, align 4
  %264 = alloca %"class.std::__cxx11::basic_string", align 8
  %265 = alloca %"class.std::allocator", align 1
  %266 = alloca %"class.std::__cxx11::basic_string", align 8
  %267 = alloca %"class.std::allocator", align 1
  %268 = alloca %"class.std::__cxx11::basic_string", align 8
  %269 = alloca %"class.std::allocator", align 1
  %270 = alloca %"class.std::__cxx11::basic_string", align 8
  %271 = alloca %"class.std::allocator", align 1
  %272 = alloca i32, align 4
  %273 = alloca %"class.std::__cxx11::basic_string", align 8
  %274 = alloca %"class.std::allocator", align 1
  %275 = alloca %"class.std::__cxx11::basic_string", align 8
  %276 = alloca %"class.std::allocator", align 1
  %277 = alloca %"class.std::__cxx11::basic_string", align 8
  %278 = alloca %"class.std::allocator", align 1
  %279 = alloca %"class.std::__cxx11::basic_string", align 8
  %280 = alloca %"class.std::allocator", align 1
  %281 = alloca i32, align 4
  %282 = alloca %"class.std::__cxx11::basic_string", align 8
  %283 = alloca %"class.std::allocator", align 1
  %284 = alloca %"class.std::__cxx11::basic_string", align 8
  %285 = alloca %"class.std::allocator", align 1
  %286 = alloca %"class.std::__cxx11::basic_string", align 8
  %287 = alloca %"class.std::allocator", align 1
  %288 = alloca %"class.std::__cxx11::basic_string", align 8
  %289 = alloca %"class.std::allocator", align 1
  %290 = alloca %"struct.cgp::numarray_stack.0", align 4
  %291 = alloca i32, align 4
  %292 = alloca i32, align 4
  %293 = alloca i32, align 4
  %294 = alloca %"struct.cgp::numarray_stack.0", align 4
  %295 = alloca i32, align 4
  %296 = alloca i32, align 4
  %297 = alloca i32, align 4
  %298 = alloca %"class.std::__cxx11::basic_string", align 8
  %299 = alloca %"class.std::allocator", align 1
  %300 = alloca %"class.std::__cxx11::basic_string", align 8
  %301 = alloca %"class.std::allocator", align 1
  %302 = alloca %"class.std::__cxx11::basic_string", align 8
  %303 = alloca %"class.std::allocator", align 1
  %304 = alloca %"class.std::__cxx11::basic_string", align 8
  %305 = alloca %"class.std::allocator", align 1
  %306 = alloca %"class.std::__cxx11::basic_string", align 8
  %307 = alloca %"class.std::__cxx11::basic_string", align 8
  %308 = alloca %"class.std::allocator", align 1
  %309 = alloca %"class.std::__cxx11::basic_string", align 8
  %310 = alloca %"class.std::allocator", align 1
  %311 = alloca %"class.std::__cxx11::basic_string", align 8
  %312 = alloca %"class.std::allocator", align 1
  %313 = alloca %"class.std::__cxx11::basic_string", align 8
  %314 = alloca %"class.std::allocator", align 1
  %315 = alloca %"struct.cgp::matrix_stack", align 4
  %316 = alloca %"class.std::initializer_list", align 8
  %317 = alloca [6 x i32], align 4
  %318 = alloca %"struct.cgp::matrix_stack.1", align 4
  %319 = alloca %"class.std::initializer_list", align 8
  %320 = alloca [6 x i32], align 4
  %321 = alloca %"struct.cgp::matrix_stack.4", align 4
  %322 = alloca %"struct.cgp::matrix_stack.4", align 4
  %323 = alloca %"class.std::initializer_list", align 8
  %324 = alloca [4 x i32], align 4
  %325 = alloca %"class.std::__cxx11::basic_string", align 8
  %326 = alloca %"class.std::allocator", align 1
  %327 = alloca %"class.std::__cxx11::basic_string", align 8
  %328 = alloca %"class.std::allocator", align 1
  %329 = alloca %"class.std::__cxx11::basic_string", align 8
  %330 = alloca %"class.std::allocator", align 1
  %331 = alloca %"class.std::__cxx11::basic_string", align 8
  %332 = alloca %"class.std::allocator", align 1
  %333 = alloca %"struct.cgp::matrix_stack", align 4
  %334 = alloca %"class.std::initializer_list", align 8
  %335 = alloca [6 x i32], align 4
  %336 = alloca %"struct.cgp::matrix_stack", align 4
  %337 = alloca %"class.std::initializer_list", align 8
  %338 = alloca [6 x i32], align 4
  %339 = alloca %"struct.cgp::matrix_stack", align 4
  %340 = alloca %"struct.cgp::matrix_stack", align 4
  %341 = alloca %"class.std::initializer_list", align 8
  %342 = alloca [6 x i32], align 4
  %343 = alloca %"class.std::__cxx11::basic_string", align 8
  %344 = alloca %"class.std::allocator", align 1
  %345 = alloca %"class.std::__cxx11::basic_string", align 8
  %346 = alloca %"class.std::allocator", align 1
  %347 = alloca %"class.std::__cxx11::basic_string", align 8
  %348 = alloca %"class.std::allocator", align 1
  %349 = alloca %"class.std::__cxx11::basic_string", align 8
  %350 = alloca %"class.std::allocator", align 1
  %351 = alloca %"struct.cgp::matrix_stack", align 4
  %352 = alloca %"class.std::initializer_list", align 8
  %353 = alloca [6 x i32], align 4
  %354 = alloca %"struct.cgp::numarray_stack.0", align 4
  %355 = alloca i32, align 4
  %356 = alloca i32, align 4
  %357 = alloca i32, align 4
  %358 = alloca %"struct.cgp::numarray_stack.3", align 4
  %359 = alloca %"struct.cgp::numarray_stack.3", align 4
  %360 = alloca i32, align 4
  %361 = alloca i32, align 4
  %362 = alloca %"class.std::__cxx11::basic_string", align 8
  %363 = alloca %"class.std::allocator", align 1
  %364 = alloca %"class.std::__cxx11::basic_string", align 8
  %365 = alloca %"class.std::allocator", align 1
  %366 = alloca %"class.std::__cxx11::basic_string", align 8
  %367 = alloca %"class.std::allocator", align 1
  %368 = alloca %"class.std::__cxx11::basic_string", align 8
  %369 = alloca %"class.std::allocator", align 1
  %370 = alloca %"struct.cgp::matrix_stack.6", align 4
  %371 = alloca %"class.std::initializer_list", align 8
  %372 = alloca [20 x i32], align 4
  %373 = alloca %"struct.cgp::matrix_stack.9", align 4
  %374 = alloca %"struct.cgp::matrix_stack.9", align 4
  %375 = alloca %"class.std::initializer_list", align 8
  %376 = alloca [12 x i32], align 4
  %377 = alloca %"class.std::__cxx11::basic_string", align 8
  %378 = alloca %"class.std::allocator", align 1
  %379 = alloca %"class.std::__cxx11::basic_string", align 8
  %380 = alloca %"class.std::allocator", align 1
  %381 = alloca %"class.std::__cxx11::basic_string", align 8
  %382 = alloca %"class.std::allocator", align 1
  %383 = alloca %"class.std::__cxx11::basic_string", align 8
  %384 = alloca %"class.std::allocator", align 1
  %385 = alloca %"struct.cgp::matrix_stack.9", align 4
  %386 = alloca %"struct.cgp::matrix_stack.9", align 4
  %387 = alloca %"class.std::initializer_list", align 8
  %388 = alloca [12 x i32], align 4
  %389 = alloca %"class.std::__cxx11::basic_string", align 8
  %390 = alloca %"class.std::allocator", align 1
  %391 = alloca %"class.std::__cxx11::basic_string", align 8
  %392 = alloca %"class.std::allocator", align 1
  %393 = alloca %"class.std::__cxx11::basic_string", align 8
  %394 = alloca %"class.std::allocator", align 1
  %395 = alloca %"class.std::__cxx11::basic_string", align 8
  %396 = alloca %"class.std::allocator", align 1
  %397 = alloca %"struct.cgp::matrix_stack.9", align 4
  %398 = alloca %"struct.cgp::matrix_stack.9", align 4
  %399 = alloca %"class.std::initializer_list", align 8
  %400 = alloca [12 x i32], align 4
  %401 = alloca %"class.std::__cxx11::basic_string", align 8
  %402 = alloca %"class.std::allocator", align 1
  %403 = alloca %"class.std::__cxx11::basic_string", align 8
  %404 = alloca %"class.std::allocator", align 1
  %405 = alloca %"class.std::__cxx11::basic_string", align 8
  %406 = alloca %"class.std::allocator", align 1
  %407 = alloca %"class.std::__cxx11::basic_string", align 8
  %408 = alloca %"class.std::allocator", align 1
  %409 = alloca %"struct.cgp::matrix_stack.11", align 4
  %410 = alloca %"struct.cgp::matrix_stack.11", align 4
  %411 = alloca %"class.std::initializer_list.14", align 8
  %412 = alloca [9 x float], align 4
  %413 = alloca %"class.std::__cxx11::basic_string", align 8
  %414 = alloca %"class.std::allocator", align 1
  %415 = alloca %"class.std::__cxx11::basic_string", align 8
  %416 = alloca %"class.std::allocator", align 1
  %417 = alloca %"class.std::__cxx11::basic_string", align 8
  %418 = alloca %"class.std::allocator", align 1
  %419 = alloca %"class.std::__cxx11::basic_string", align 8
  %420 = alloca %"class.std::allocator", align 1
  %421 = alloca %"struct.cgp::matrix_stack.15", align 4
  %422 = alloca %"struct.cgp::matrix_stack.15", align 4
  %423 = alloca %"class.std::initializer_list.14", align 8
  %424 = alloca [12 x float], align 4
  %425 = alloca %"class.std::__cxx11::basic_string", align 8
  %426 = alloca %"class.std::allocator", align 1
  %427 = alloca %"class.std::__cxx11::basic_string", align 8
  %428 = alloca %"class.std::allocator", align 1
  %429 = alloca %"class.std::__cxx11::basic_string", align 8
  %430 = alloca %"class.std::allocator", align 1
  %431 = alloca %"class.std::__cxx11::basic_string", align 8
  %432 = alloca %"class.std::allocator", align 1
  %433 = alloca %"struct.cgp::matrix_stack.18", align 4
  %434 = alloca %"struct.cgp::matrix_stack.18", align 4
  %435 = alloca %"class.std::initializer_list.14", align 8
  %436 = alloca [12 x float], align 4
  %437 = alloca %"class.std::__cxx11::basic_string", align 8
  %438 = alloca %"class.std::allocator", align 1
  %439 = alloca %"class.std::__cxx11::basic_string", align 8
  %440 = alloca %"class.std::allocator", align 1
  %441 = alloca %"class.std::__cxx11::basic_string", align 8
  %442 = alloca %"class.std::allocator", align 1
  %443 = alloca %"class.std::__cxx11::basic_string", align 8
  %444 = alloca %"class.std::allocator", align 1
  %445 = alloca %"struct.cgp::matrix_stack.11", align 4
  %446 = alloca %"class.std::initializer_list.14", align 8
  %447 = alloca [9 x float], align 4
  %448 = alloca %"struct.cgp::matrix_stack.20", align 4
  %449 = alloca %"struct.cgp::matrix_stack.23", align 4
  %450 = alloca %"struct.cgp::matrix_stack.20", align 4
  %451 = alloca %"class.std::initializer_list.14", align 8
  %452 = alloca [4 x float], align 4
  %453 = alloca %"class.std::__cxx11::basic_string", align 8
  %454 = alloca %"class.std::allocator", align 1
  %455 = alloca %"class.std::__cxx11::basic_string", align 8
  %456 = alloca %"class.std::allocator", align 1
  %457 = alloca %"class.std::__cxx11::basic_string", align 8
  %458 = alloca %"class.std::allocator", align 1
  %459 = alloca %"class.std::__cxx11::basic_string", align 8
  %460 = alloca %"class.std::allocator", align 1
  %461 = alloca %"struct.cgp::matrix_stack.23", align 4
  %462 = alloca %"class.std::initializer_list.14", align 8
  %463 = alloca [16 x float], align 4
  %464 = alloca %"class.std::__cxx11::basic_string", align 8
  %465 = alloca %"class.std::allocator", align 1
  %466 = alloca %"class.std::__cxx11::basic_string", align 8
  %467 = alloca %"class.std::allocator", align 1
  %468 = alloca %"class.std::__cxx11::basic_string", align 8
  %469 = alloca %"class.std::allocator", align 1
  %470 = alloca %"class.std::__cxx11::basic_string", align 8
  %471 = alloca %"class.std::allocator", align 1
  %472 = alloca %"struct.cgp::matrix_stack.23", align 4
  %473 = alloca %"class.std::initializer_list.14", align 8
  %474 = alloca [16 x float], align 4
  %475 = alloca %"struct.cgp::matrix_stack.20", align 4
  %476 = alloca %"struct.cgp::matrix_stack.11", align 4
  %477 = alloca %"struct.cgp::matrix_stack.20", align 4
  %478 = alloca %"class.std::initializer_list.14", align 8
  %479 = alloca [4 x float], align 4
  %480 = alloca %"class.std::__cxx11::basic_string", align 8
  %481 = alloca %"class.std::allocator", align 1
  %482 = alloca %"class.std::__cxx11::basic_string", align 8
  %483 = alloca %"class.std::allocator", align 1
  %484 = alloca %"class.std::__cxx11::basic_string", align 8
  %485 = alloca %"class.std::allocator", align 1
  %486 = alloca %"class.std::__cxx11::basic_string", align 8
  %487 = alloca %"class.std::allocator", align 1
  %488 = alloca %"struct.cgp::matrix_stack.11", align 4
  %489 = alloca %"class.std::initializer_list.14", align 8
  %490 = alloca [9 x float], align 4
  %491 = alloca %"class.std::__cxx11::basic_string", align 8
  %492 = alloca %"class.std::allocator", align 1
  %493 = alloca %"class.std::__cxx11::basic_string", align 8
  %494 = alloca %"class.std::allocator", align 1
  %495 = alloca %"class.std::__cxx11::basic_string", align 8
  %496 = alloca %"class.std::allocator", align 1
  %497 = alloca %"class.std::__cxx11::basic_string", align 8
  %498 = alloca %"class.std::allocator", align 1
  %499 = alloca %"struct.cgp::matrix_stack.23", align 4
  %500 = alloca %"struct.cgp::matrix_stack.20", align 4
  %501 = alloca %"class.std::initializer_list.14", align 8
  %502 = alloca [4 x float], align 4
  %503 = alloca %"struct.cgp::matrix_stack.23", align 4
  %504 = alloca %"class.std::initializer_list.14", align 8
  %505 = alloca [16 x float], align 4
  %506 = alloca %"class.std::__cxx11::basic_string", align 8
  %507 = alloca %"class.std::allocator", align 1
  %508 = alloca %"class.std::__cxx11::basic_string", align 8
  %509 = alloca %"class.std::allocator", align 1
  %510 = alloca %"class.std::__cxx11::basic_string", align 8
  %511 = alloca %"class.std::allocator", align 1
  %512 = alloca %"class.std::__cxx11::basic_string", align 8
  %513 = alloca %"class.std::allocator", align 1
  %514 = alloca %"struct.cgp::matrix_stack.23", align 4
  %515 = alloca %"struct.cgp::matrix_stack.20", align 4
  %516 = alloca %"class.std::initializer_list.14", align 8
  %517 = alloca [4 x float], align 4
  %518 = alloca %"struct.cgp::matrix_stack.23", align 4
  %519 = alloca %"class.std::initializer_list.14", align 8
  %520 = alloca [16 x float], align 4
  %521 = alloca %"class.std::__cxx11::basic_string", align 8
  %522 = alloca %"class.std::allocator", align 1
  %523 = alloca %"class.std::__cxx11::basic_string", align 8
  %524 = alloca %"class.std::allocator", align 1
  %525 = alloca %"class.std::__cxx11::basic_string", align 8
  %526 = alloca %"class.std::allocator", align 1
  %527 = alloca %"class.std::__cxx11::basic_string", align 8
  %528 = alloca %"class.std::allocator", align 1
  %529 = alloca %"struct.cgp::matrix_stack.23", align 4
  %530 = alloca %"struct.cgp::matrix_stack.20", align 4
  %531 = alloca %"class.std::initializer_list.14", align 8
  %532 = alloca [4 x float], align 4
  %533 = alloca %"struct.cgp::matrix_stack.23", align 4
  %534 = alloca %"class.std::initializer_list.14", align 8
  %535 = alloca [16 x float], align 4
  %536 = alloca %"class.std::__cxx11::basic_string", align 8
  %537 = alloca %"class.std::allocator", align 1
  %538 = alloca %"class.std::__cxx11::basic_string", align 8
  %539 = alloca %"class.std::allocator", align 1
  %540 = alloca %"class.std::__cxx11::basic_string", align 8
  %541 = alloca %"class.std::allocator", align 1
  %542 = alloca %"class.std::__cxx11::basic_string", align 8
  %543 = alloca %"class.std::allocator", align 1
  %544 = alloca %"struct.cgp::matrix_stack.20", align 4
  %545 = alloca %"class.std::initializer_list.14", align 8
  %546 = alloca [4 x float], align 4
  %547 = alloca %"struct.cgp::numarray_stack.22", align 4
  %548 = alloca i32, align 4
  %549 = alloca i32, align 4
  %550 = alloca %"struct.cgp::numarray_stack.22", align 4
  %551 = alloca %"struct.cgp::numarray_stack.22", align 4
  %552 = alloca i32, align 4
  %553 = alloca i32, align 4
  %554 = alloca %"class.std::__cxx11::basic_string", align 8
  %555 = alloca %"class.std::allocator", align 1
  %556 = alloca %"class.std::__cxx11::basic_string", align 8
  %557 = alloca %"class.std::allocator", align 1
  %558 = alloca %"class.std::__cxx11::basic_string", align 8
  %559 = alloca %"class.std::allocator", align 1
  %560 = alloca %"class.std::__cxx11::basic_string", align 8
  %561 = alloca %"class.std::allocator", align 1
  %562 = alloca %"struct.cgp::matrix_stack.11", align 4
  %563 = alloca %"class.std::initializer_list.14", align 8
  %564 = alloca [9 x float], align 4
  %565 = alloca %"struct.cgp::numarray_stack.13", align 4
  %566 = alloca i32, align 4
  %567 = alloca i32, align 4
  %568 = alloca i32, align 4
  %569 = alloca %"struct.cgp::numarray_stack.13", align 4
  %570 = alloca { <2 x float>, float }, align 8
  %571 = alloca %"struct.cgp::numarray_stack.13", align 4
  %572 = alloca i32, align 4
  %573 = alloca i32, align 4
  %574 = alloca i32, align 4
  %575 = alloca %"class.std::__cxx11::basic_string", align 8
  %576 = alloca %"class.std::allocator", align 1
  %577 = alloca %"class.std::__cxx11::basic_string", align 8
  %578 = alloca %"class.std::allocator", align 1
  %579 = alloca %"class.std::__cxx11::basic_string", align 8
  %580 = alloca %"class.std::allocator", align 1
  %581 = alloca %"class.std::__cxx11::basic_string", align 8
  %582 = alloca %"class.std::allocator", align 1
  %583 = alloca %"struct.cgp::matrix_stack.23", align 4
  %584 = alloca %"class.std::initializer_list.14", align 8
  %585 = alloca [16 x float], align 4
  %586 = alloca %"struct.cgp::numarray_stack.17", align 4
  %587 = alloca float, align 4
  %588 = alloca float, align 4
  %589 = alloca float, align 4
  %590 = alloca float, align 4
  %591 = alloca %"struct.cgp::numarray_stack.17", align 4
  %592 = alloca %"struct.cgp::numarray_stack.17", align 4
  %593 = alloca float, align 4
  %594 = alloca float, align 4
  %595 = alloca float, align 4
  %596 = alloca float, align 4
  %597 = alloca %"class.std::__cxx11::basic_string", align 8
  %598 = alloca %"class.std::allocator", align 1
  %599 = alloca %"class.std::__cxx11::basic_string", align 8
  %600 = alloca %"class.std::allocator", align 1
  %601 = alloca %"class.std::__cxx11::basic_string", align 8
  %602 = alloca %"class.std::allocator", align 1
  %603 = alloca %"class.std::__cxx11::basic_string", align 8
  %604 = alloca %"class.std::allocator", align 1
  %605 = alloca %"struct.cgp::matrix_stack.1", align 4
  %606 = alloca %"class.std::initializer_list", align 8
  %607 = alloca [6 x i32], align 4
  %608 = alloca %"struct.cgp::matrix_stack.1", align 4
  %609 = alloca %"class.std::initializer_list", align 8
  %610 = alloca [6 x i32], align 4
  %611 = alloca %"struct.cgp::matrix_stack.1", align 4
  %612 = alloca %"class.std::initializer_list", align 8
  %613 = alloca [6 x i32], align 4
  %614 = alloca %"class.std::__cxx11::basic_string", align 8
  %615 = alloca %"class.std::allocator", align 1
  %616 = alloca %"class.std::__cxx11::basic_string", align 8
  %617 = alloca %"class.std::allocator", align 1
  %618 = alloca %"class.std::__cxx11::basic_string", align 8
  %619 = alloca %"class.std::allocator", align 1
  %620 = alloca %"class.std::__cxx11::basic_string", align 8
  %621 = alloca %"class.std::allocator", align 1
  %622 = alloca %"struct.cgp::matrix_stack.1", align 4
  %623 = alloca %"class.std::initializer_list", align 8
  %624 = alloca [6 x i32], align 4
  %625 = alloca %"class.std::__cxx11::basic_string", align 8
  %626 = alloca %"class.std::allocator", align 1
  %627 = alloca %"class.std::__cxx11::basic_string", align 8
  %628 = alloca %"class.std::allocator", align 1
  %629 = alloca %"class.std::__cxx11::basic_string", align 8
  %630 = alloca %"class.std::allocator", align 1
  %631 = alloca %"class.std::__cxx11::basic_string", align 8
  %632 = alloca %"class.std::allocator", align 1
  %633 = alloca %"struct.cgp::matrix_stack", align 4
  %634 = alloca %"class.std::initializer_list", align 8
  %635 = alloca [6 x i32], align 4
  %636 = alloca i32, align 4
  %637 = alloca %"struct.cgp::matrix_stack", align 4
  %638 = alloca %"class.std::initializer_list", align 8
  %639 = alloca [6 x i32], align 4
  %640 = alloca %"class.std::__cxx11::basic_string", align 8
  %641 = alloca %"class.std::allocator", align 1
  %642 = alloca %"class.std::__cxx11::basic_string", align 8
  %643 = alloca %"class.std::allocator", align 1
  %644 = alloca %"class.std::__cxx11::basic_string", align 8
  %645 = alloca %"class.std::allocator", align 1
  %646 = alloca %"class.std::__cxx11::basic_string", align 8
  %647 = alloca %"class.std::allocator", align 1
  %648 = alloca %"struct.cgp::matrix_stack.25", align 4
  %649 = alloca %"class.std::initializer_list.14", align 8
  %650 = alloca [6 x float], align 4
  %651 = alloca float, align 4
  %652 = alloca %"struct.cgp::matrix_stack.25", align 4
  %653 = alloca %"class.std::initializer_list.14", align 8
  %654 = alloca [6 x float], align 4
  %655 = alloca %"class.std::__cxx11::basic_string", align 8
  %656 = alloca %"class.std::allocator", align 1
  %657 = alloca %"class.std::__cxx11::basic_string", align 8
  %658 = alloca %"class.std::allocator", align 1
  %659 = alloca %"class.std::__cxx11::basic_string", align 8
  %660 = alloca %"class.std::allocator", align 1
  %661 = alloca %"class.std::__cxx11::basic_string", align 8
  %662 = alloca %"class.std::allocator", align 1
  %663 = alloca %"struct.cgp::matrix_stack.20", align 4
  %664 = alloca %"class.std::initializer_list.14", align 8
  %665 = alloca [4 x float], align 4
  %666 = alloca %"struct.cgp::matrix_stack.20", align 4
  %667 = alloca %"class.std::initializer_list.14", align 8
  %668 = alloca [4 x float], align 4
  %669 = alloca %"class.std::__cxx11::basic_string", align 8
  %670 = alloca %"class.std::allocator", align 1
  %671 = alloca %"class.std::__cxx11::basic_string", align 8
  %672 = alloca %"class.std::allocator", align 1
  %673 = alloca %"class.std::__cxx11::basic_string", align 8
  %674 = alloca %"class.std::allocator", align 1
  %675 = alloca %"class.std::__cxx11::basic_string", align 8
  %676 = alloca %"class.std::allocator", align 1
  %677 = alloca %"struct.cgp::matrix_stack.20", align 4
  %678 = alloca %"class.std::initializer_list.14", align 8
  %679 = alloca [4 x float], align 4
  %680 = alloca %"struct.cgp::matrix_stack.20", align 4
  %681 = alloca %"struct.cgp::matrix_stack.20", align 4
  %682 = alloca %"class.std::initializer_list.14", align 8
  %683 = alloca [4 x float], align 4
  %684 = alloca %"class.std::__cxx11::basic_string", align 8
  %685 = alloca %"class.std::allocator", align 1
  %686 = alloca %"class.std::__cxx11::basic_string", align 8
  %687 = alloca %"class.std::allocator", align 1
  %688 = alloca %"class.std::__cxx11::basic_string", align 8
  %689 = alloca %"class.std::allocator", align 1
  %690 = alloca %"class.std::__cxx11::basic_string", align 8
  %691 = alloca %"class.std::allocator", align 1
  %692 = alloca %"struct.cgp::matrix_stack.27", align 4
  %693 = alloca %"struct.cgp::numarray_stack.13", align 4
  %694 = alloca i32, align 4
  %695 = alloca i32, align 4
  %696 = alloca i32, align 4
  %697 = alloca %"struct.cgp::matrix_stack.27", align 4
  %698 = alloca %"class.std::initializer_list.14", align 8
  %699 = alloca [3 x float], align 4
  %700 = alloca %"class.std::__cxx11::basic_string", align 8
  %701 = alloca %"class.std::allocator", align 1
  %702 = alloca %"class.std::__cxx11::basic_string", align 8
  %703 = alloca %"class.std::allocator", align 1
  %704 = alloca %"class.std::__cxx11::basic_string", align 8
  %705 = alloca %"class.std::allocator", align 1
  %706 = alloca %"class.std::__cxx11::basic_string", align 8
  %707 = alloca %"class.std::allocator", align 1
  %708 = alloca %"struct.cgp::matrix_stack.31", align 4
  %709 = alloca %"struct.cgp::numarray_stack.13", align 4
  %710 = alloca i32, align 4
  %711 = alloca i32, align 4
  %712 = alloca i32, align 4
  %713 = alloca %"struct.cgp::matrix_stack.31", align 4
  %714 = alloca %"class.std::initializer_list.14", align 8
  %715 = alloca [3 x float], align 4
  %716 = alloca %"class.std::__cxx11::basic_string", align 8
  %717 = alloca %"class.std::allocator", align 1
  %718 = alloca %"class.std::__cxx11::basic_string", align 8
  %719 = alloca %"class.std::allocator", align 1
  %720 = alloca %"class.std::__cxx11::basic_string", align 8
  %721 = alloca %"class.std::allocator", align 1
  %722 = alloca %"class.std::__cxx11::basic_string", align 8
  %723 = alloca %"class.std::allocator", align 1
  %724 = alloca %"struct.cgp::matrix_stack.20", align 4
  %725 = alloca %"struct.cgp::matrix_stack.11", align 4
  %726 = alloca %"struct.cgp::matrix_stack.23", align 4
  %727 = alloca %"struct.cgp::matrix_stack.25", align 4
  %728 = alloca float, align 4
  %729 = alloca %"struct.cgp::matrix_stack.20", align 4
  %730 = alloca %"class.std::initializer_list.14", align 8
  %731 = alloca [4 x float], align 4
  %732 = alloca %"class.std::__cxx11::basic_string", align 8
  %733 = alloca %"class.std::allocator", align 1
  %734 = alloca %"class.std::__cxx11::basic_string", align 8
  %735 = alloca %"class.std::allocator", align 1
  %736 = alloca %"class.std::__cxx11::basic_string", align 8
  %737 = alloca %"class.std::allocator", align 1
  %738 = alloca %"class.std::__cxx11::basic_string", align 8
  %739 = alloca %"class.std::allocator", align 1
  %740 = alloca %"struct.cgp::matrix_stack.11", align 4
  %741 = alloca %"class.std::initializer_list.14", align 8
  %742 = alloca [9 x float], align 4
  %743 = alloca %"class.std::__cxx11::basic_string", align 8
  %744 = alloca %"class.std::allocator", align 1
  %745 = alloca %"class.std::__cxx11::basic_string", align 8
  %746 = alloca %"class.std::allocator", align 1
  %747 = alloca %"class.std::__cxx11::basic_string", align 8
  %748 = alloca %"class.std::allocator", align 1
  %749 = alloca %"class.std::__cxx11::basic_string", align 8
  %750 = alloca %"class.std::allocator", align 1
  %751 = alloca %"struct.cgp::matrix_stack.23", align 4
  %752 = alloca %"class.std::initializer_list.14", align 8
  %753 = alloca [16 x float], align 4
  %754 = alloca %"class.std::__cxx11::basic_string", align 8
  %755 = alloca %"class.std::allocator", align 1
  %756 = alloca %"class.std::__cxx11::basic_string", align 8
  %757 = alloca %"class.std::allocator", align 1
  %758 = alloca %"class.std::__cxx11::basic_string", align 8
  %759 = alloca %"class.std::allocator", align 1
  %760 = alloca %"class.std::__cxx11::basic_string", align 8
  %761 = alloca %"class.std::allocator", align 1
  %762 = alloca %"struct.cgp::matrix_stack.25", align 4
  %763 = alloca %"class.std::initializer_list.14", align 8
  %764 = alloca [6 x float], align 4
  %765 = alloca %"class.std::__cxx11::basic_string", align 8
  %766 = alloca %"class.std::allocator", align 1
  %767 = alloca %"class.std::__cxx11::basic_string", align 8
  %768 = alloca %"class.std::allocator", align 1
  %769 = alloca %"class.std::__cxx11::basic_string", align 8
  %770 = alloca %"class.std::allocator", align 1
  %771 = alloca %"class.std::__cxx11::basic_string", align 8
  %772 = alloca %"class.std::allocator", align 1
  %773 = alloca %"struct.cgp::matrix_stack.23", align 4
  %774 = alloca %"struct.cgp::matrix_stack.23", align 4
  %775 = alloca %"struct.cgp::numarray_stack.13", align 4
  %776 = alloca i32, align 4
  %777 = alloca i32, align 4
  %778 = alloca i32, align 4
  %779 = alloca %"struct.cgp::numarray_stack.13", align 4
  %780 = alloca { <2 x float>, float }, align 8
  %781 = alloca %"struct.cgp::numarray_stack.13", align 4
  %782 = alloca i32, align 4
  %783 = alloca i32, align 4
  %784 = alloca i32, align 4
  %785 = alloca %"class.std::__cxx11::basic_string", align 8
  %786 = alloca %"class.std::allocator", align 1
  %787 = alloca %"class.std::__cxx11::basic_string", align 8
  %788 = alloca %"class.std::allocator", align 1
  %789 = alloca %"class.std::__cxx11::basic_string", align 8
  %790 = alloca %"class.std::allocator", align 1
  %791 = alloca %"class.std::__cxx11::basic_string", align 8
  %792 = alloca %"class.std::allocator", align 1
  %793 = alloca %"struct.cgp::matrix_stack.23", align 4
  %794 = alloca %"struct.cgp::matrix_stack.23", align 4
  %795 = alloca %"struct.cgp::numarray_stack.13", align 4
  %796 = alloca i32, align 4
  %797 = alloca i32, align 4
  %798 = alloca i32, align 4
  %799 = alloca %"struct.cgp::numarray_stack.13", align 4
  %800 = alloca { <2 x float>, float }, align 8
  %801 = alloca %"struct.cgp::numarray_stack.13", align 4
  %802 = alloca i32, align 4
  %803 = alloca i32, align 4
  %804 = alloca i32, align 4
  %805 = alloca %"class.std::__cxx11::basic_string", align 8
  %806 = alloca %"class.std::allocator", align 1
  %807 = alloca %"class.std::__cxx11::basic_string", align 8
  %808 = alloca %"class.std::allocator", align 1
  %809 = alloca %"class.std::__cxx11::basic_string", align 8
  %810 = alloca %"class.std::allocator", align 1
  %811 = alloca %"class.std::__cxx11::basic_string", align 8
  %812 = alloca %"class.std::allocator", align 1
  %813 = alloca %"struct.cgp::matrix_stack.23", align 4
  %814 = alloca %"struct.cgp::matrix_stack.23", align 4
  %815 = alloca %"struct.cgp::numarray_stack.13", align 4
  %816 = alloca i32, align 4
  %817 = alloca i32, align 4
  %818 = alloca i32, align 4
  %819 = alloca %"struct.cgp::numarray_stack.17", align 4
  %820 = alloca %"struct.cgp::numarray_stack.17", align 4
  %821 = alloca float, align 4
  %822 = alloca %"struct.cgp::numarray_stack.13", align 4
  %823 = alloca %"struct.cgp::numarray_stack.13", align 4
  %824 = alloca { <2 x float>, float }, align 8
  %825 = alloca { <2 x float>, float }, align 8
  %826 = alloca %"struct.cgp::numarray_stack.13", align 4
  %827 = alloca i32, align 4
  %828 = alloca i32, align 4
  %829 = alloca i32, align 4
  %830 = alloca %"class.std::__cxx11::basic_string", align 8
  %831 = alloca %"class.std::allocator", align 1
  %832 = alloca %"class.std::__cxx11::basic_string", align 8
  %833 = alloca %"class.std::allocator", align 1
  %834 = alloca %"class.std::__cxx11::basic_string", align 8
  %835 = alloca %"class.std::allocator", align 1
  %836 = alloca %"class.std::__cxx11::basic_string", align 8
  %837 = alloca %"class.std::allocator", align 1
  %838 = alloca %"struct.cgp::matrix_stack.23", align 4
  %839 = alloca %"struct.cgp::matrix_stack.23", align 4
  %840 = alloca %"struct.cgp::numarray_stack.13", align 4
  %841 = alloca i32, align 4
  %842 = alloca i32, align 4
  %843 = alloca i32, align 4
  %844 = alloca %"struct.cgp::numarray_stack.13", align 4
  %845 = alloca %"struct.cgp::numarray_stack.17", align 4
  %846 = alloca %"struct.cgp::numarray_stack.17", align 4
  %847 = alloca float, align 4
  %848 = alloca { <2 x float>, float }, align 8
  %849 = alloca %"struct.cgp::numarray_stack.13", align 4
  %850 = alloca i32, align 4
  %851 = alloca i32, align 4
  %852 = alloca i32, align 4
  %853 = alloca %"class.std::__cxx11::basic_string", align 8
  %854 = alloca %"class.std::allocator", align 1
  %855 = alloca %"class.std::__cxx11::basic_string", align 8
  %856 = alloca %"class.std::allocator", align 1
  %857 = alloca %"class.std::__cxx11::basic_string", align 8
  %858 = alloca %"class.std::allocator", align 1
  %859 = alloca %"class.std::__cxx11::basic_string", align 8
  %860 = alloca %"class.std::allocator", align 1
  %861 = alloca %"struct.cgp::matrix_stack.23", align 4
  %862 = alloca %"struct.cgp::matrix_stack.23", align 4
  %863 = alloca %"struct.cgp::numarray_stack.13", align 4
  %864 = alloca i32, align 4
  %865 = alloca i32, align 4
  %866 = alloca i32, align 4
  %867 = alloca %"struct.cgp::numarray_stack.13", align 4
  %868 = alloca { <2 x float>, float }, align 8
  %869 = alloca %"struct.cgp::numarray_stack.13", align 4
  %870 = alloca float, align 4
  %871 = alloca float, align 4
  %872 = alloca float, align 4
  %873 = alloca %"class.std::__cxx11::basic_string", align 8
  %874 = alloca %"class.std::allocator", align 1
  %875 = alloca %"class.std::__cxx11::basic_string", align 8
  %876 = alloca %"class.std::allocator", align 1
  %877 = alloca %"class.std::__cxx11::basic_string", align 8
  %878 = alloca %"class.std::allocator", align 1
  %879 = alloca %"class.std::__cxx11::basic_string", align 8
  %880 = alloca %"class.std::allocator", align 1
  %881 = alloca %"struct.cgp::matrix_stack.23", align 4
  %882 = alloca %"struct.cgp::numarray_stack.13", align 4
  %883 = alloca i32, align 4
  %884 = alloca i32, align 4
  %885 = alloca i32, align 4
  %886 = alloca %"struct.cgp::numarray_stack.13", align 4
  %887 = alloca { <2 x float>, float }, align 8
  %888 = alloca %"struct.cgp::numarray_stack.13", align 4
  %889 = alloca float, align 4
  %890 = alloca float, align 4
  %891 = alloca float, align 4
  %892 = alloca %"class.std::__cxx11::basic_string", align 8
  %893 = alloca %"class.std::allocator", align 1
  %894 = alloca %"class.std::__cxx11::basic_string", align 8
  %895 = alloca %"class.std::allocator", align 1
  %896 = alloca %"class.std::__cxx11::basic_string", align 8
  %897 = alloca %"class.std::allocator", align 1
  %898 = alloca %"class.std::__cxx11::basic_string", align 8
  %899 = alloca %"class.std::allocator", align 1
  %900 = alloca %"struct.cgp::matrix_stack.23", align 4
  %901 = alloca %"struct.cgp::matrix_stack.23", align 4
  %902 = alloca %"struct.cgp::matrix_stack.23", align 4
  %903 = alloca %"struct.cgp::matrix_stack.23", align 4
  %904 = alloca %"struct.cgp::matrix_stack.23", align 4
  %905 = alloca %"class.std::initializer_list.14", align 8
  %906 = alloca [16 x float], align 4
  %907 = alloca %"class.std::__cxx11::basic_string", align 8
  %908 = alloca %"class.std::allocator", align 1
  %909 = alloca %"class.std::__cxx11::basic_string", align 8
  %910 = alloca %"class.std::allocator", align 1
  %911 = alloca %"class.std::__cxx11::basic_string", align 8
  %912 = alloca %"class.std::allocator", align 1
  %913 = alloca %"class.std::__cxx11::basic_string", align 8
  %914 = alloca %"class.std::allocator", align 1
  %915 = alloca %"struct.cgp::matrix_stack.23", align 4
  %916 = alloca %"class.std::initializer_list.14", align 8
  %917 = alloca [16 x float], align 4
  %918 = alloca %"class.std::__cxx11::basic_string", align 8
  %919 = alloca %"class.std::allocator", align 1
  %920 = alloca %"class.std::__cxx11::basic_string", align 8
  %921 = alloca %"class.std::allocator", align 1
  %922 = alloca %"class.std::__cxx11::basic_string", align 8
  %923 = alloca %"class.std::allocator", align 1
  %924 = alloca %"class.std::__cxx11::basic_string", align 8
  %925 = alloca %"class.std::allocator", align 1
  %926 = alloca %"struct.cgp::matrix_stack.23", align 4
  %927 = alloca %"class.std::initializer_list.14", align 8
  %928 = alloca [16 x float], align 4
  %929 = alloca %"class.std::__cxx11::basic_string", align 8
  %930 = alloca %"class.std::allocator", align 1
  %931 = alloca %"class.std::__cxx11::basic_string", align 8
  %932 = alloca %"class.std::allocator", align 1
  %933 = alloca %"class.std::__cxx11::basic_string", align 8
  %934 = alloca %"class.std::allocator", align 1
  %935 = alloca %"class.std::__cxx11::basic_string", align 8
  %936 = alloca %"class.std::allocator", align 1
  %937 = alloca %"struct.cgp::matrix_stack.23", align 4
  %938 = alloca %"class.std::initializer_list.14", align 8
  %939 = alloca [16 x float], align 4
  %940 = alloca %"class.std::__cxx11::basic_string", align 8
  %941 = alloca %"class.std::allocator", align 1
  %942 = alloca %"class.std::__cxx11::basic_string", align 8
  %943 = alloca %"class.std::allocator", align 1
  %944 = alloca %"class.std::__cxx11::basic_string", align 8
  %945 = alloca %"class.std::allocator", align 1
  %946 = alloca %"class.std::__cxx11::basic_string", align 8
  %947 = alloca %"class.std::allocator", align 1
  %948 = alloca %"struct.cgp::matrix_stack.23", align 4
  %949 = alloca %"class.std::initializer_list.14", align 8
  %950 = alloca [1 x float], align 4
  %951 = alloca %"struct.cgp::matrix_stack.23", align 4
  %952 = alloca %"class.std::initializer_list.14", align 8
  %953 = alloca [1 x float], align 4
  %954 = alloca %"struct.cgp::matrix_stack.23", align 4
  %955 = alloca %"class.std::initializer_list.14", align 8
  %956 = alloca [3 x float], align 4
  %957 = alloca %"struct.cgp::matrix_stack.23", align 4
  %958 = alloca %"class.std::initializer_list.14", align 8
  %959 = alloca [4 x float], align 4
  %960 = alloca %"struct.cgp::matrix_stack.23", align 4
  %961 = alloca %"class.std::initializer_list.14", align 8
  %962 = alloca [16 x float], align 4
  %963 = alloca %"class.std::__cxx11::basic_string", align 8
  %964 = alloca %"class.std::allocator", align 1
  %965 = alloca %"class.std::__cxx11::basic_string", align 8
  %966 = alloca %"class.std::allocator", align 1
  %967 = alloca %"class.std::__cxx11::basic_string", align 8
  %968 = alloca %"class.std::allocator", align 1
  %969 = alloca %"class.std::__cxx11::basic_string", align 8
  %970 = alloca %"class.std::allocator", align 1
  %971 = alloca %"struct.cgp::matrix_stack.23", align 4
  %972 = alloca %"class.std::initializer_list.14", align 8
  %973 = alloca [16 x float], align 4
  %974 = alloca %"class.std::__cxx11::basic_string", align 8
  %975 = alloca %"class.std::allocator", align 1
  %976 = alloca %"class.std::__cxx11::basic_string", align 8
  %977 = alloca %"class.std::allocator", align 1
  %978 = alloca %"class.std::__cxx11::basic_string", align 8
  %979 = alloca %"class.std::allocator", align 1
  %980 = alloca %"class.std::__cxx11::basic_string", align 8
  %981 = alloca %"class.std::allocator", align 1
  %982 = alloca %"struct.cgp::matrix_stack.23", align 4
  %983 = alloca %"class.std::initializer_list.14", align 8
  %984 = alloca [16 x float], align 4
  %985 = alloca %"class.std::__cxx11::basic_string", align 8
  %986 = alloca %"class.std::allocator", align 1
  %987 = alloca %"class.std::__cxx11::basic_string", align 8
  %988 = alloca %"class.std::allocator", align 1
  %989 = alloca %"class.std::__cxx11::basic_string", align 8
  %990 = alloca %"class.std::allocator", align 1
  %991 = alloca %"class.std::__cxx11::basic_string", align 8
  %992 = alloca %"class.std::allocator", align 1
  %993 = alloca %"struct.cgp::matrix_stack.23", align 4
  %994 = alloca %"class.std::initializer_list.14", align 8
  %995 = alloca [16 x float], align 4
  %996 = alloca %"class.std::__cxx11::basic_string", align 8
  %997 = alloca %"class.std::allocator", align 1
  %998 = alloca %"class.std::__cxx11::basic_string", align 8
  %999 = alloca %"class.std::allocator", align 1
  %1000 = alloca %"class.std::__cxx11::basic_string", align 8
  %1001 = alloca %"class.std::allocator", align 1
  %1002 = alloca %"class.std::__cxx11::basic_string", align 8
  %1003 = alloca %"class.std::allocator", align 1
  %1004 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1005 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1006 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1007 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1008 = alloca %"class.std::initializer_list.14", align 8
  %1009 = alloca [1 x float], align 4
  %1010 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1011 = alloca %"class.std::initializer_list.14", align 8
  %1012 = alloca [1 x float], align 4
  %1013 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1014 = alloca %"class.std::initializer_list.14", align 8
  %1015 = alloca [3 x float], align 4
  %1016 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1017 = alloca %"class.std::initializer_list.14", align 8
  %1018 = alloca [9 x float], align 4
  %1019 = alloca %"class.std::__cxx11::basic_string", align 8
  %1020 = alloca %"class.std::allocator", align 1
  %1021 = alloca %"class.std::__cxx11::basic_string", align 8
  %1022 = alloca %"class.std::allocator", align 1
  %1023 = alloca %"class.std::__cxx11::basic_string", align 8
  %1024 = alloca %"class.std::allocator", align 1
  %1025 = alloca %"class.std::__cxx11::basic_string", align 8
  %1026 = alloca %"class.std::allocator", align 1
  %1027 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1028 = alloca %"class.std::initializer_list.14", align 8
  %1029 = alloca [9 x float], align 4
  %1030 = alloca %"class.std::__cxx11::basic_string", align 8
  %1031 = alloca %"class.std::allocator", align 1
  %1032 = alloca %"class.std::__cxx11::basic_string", align 8
  %1033 = alloca %"class.std::allocator", align 1
  %1034 = alloca %"class.std::__cxx11::basic_string", align 8
  %1035 = alloca %"class.std::allocator", align 1
  %1036 = alloca %"class.std::__cxx11::basic_string", align 8
  %1037 = alloca %"class.std::allocator", align 1
  %1038 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1039 = alloca %"class.std::initializer_list.14", align 8
  %1040 = alloca [9 x float], align 4
  %1041 = alloca %"class.std::__cxx11::basic_string", align 8
  %1042 = alloca %"class.std::allocator", align 1
  %1043 = alloca %"class.std::__cxx11::basic_string", align 8
  %1044 = alloca %"class.std::allocator", align 1
  %1045 = alloca %"class.std::__cxx11::basic_string", align 8
  %1046 = alloca %"class.std::allocator", align 1
  %1047 = alloca %"class.std::__cxx11::basic_string", align 8
  %1048 = alloca %"class.std::allocator", align 1
  %1049 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1050 = alloca %"class.std::initializer_list.14", align 8
  %1051 = alloca [9 x float], align 4
  %1052 = alloca %"class.std::__cxx11::basic_string", align 8
  %1053 = alloca %"class.std::allocator", align 1
  %1054 = alloca %"class.std::__cxx11::basic_string", align 8
  %1055 = alloca %"class.std::allocator", align 1
  %1056 = alloca %"class.std::__cxx11::basic_string", align 8
  %1057 = alloca %"class.std::allocator", align 1
  %1058 = alloca %"class.std::__cxx11::basic_string", align 8
  %1059 = alloca %"class.std::allocator", align 1
  %1060 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1061 = alloca %"class.std::initializer_list.14", align 8
  %1062 = alloca [9 x float], align 4
  %1063 = alloca %"class.std::__cxx11::basic_string", align 8
  %1064 = alloca %"class.std::allocator", align 1
  %1065 = alloca %"class.std::__cxx11::basic_string", align 8
  %1066 = alloca %"class.std::allocator", align 1
  %1067 = alloca %"class.std::__cxx11::basic_string", align 8
  %1068 = alloca %"class.std::allocator", align 1
  %1069 = alloca %"class.std::__cxx11::basic_string", align 8
  %1070 = alloca %"class.std::allocator", align 1
  %1071 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1072 = alloca %"class.std::initializer_list.14", align 8
  %1073 = alloca [9 x float], align 4
  %1074 = alloca %"class.std::__cxx11::basic_string", align 8
  %1075 = alloca %"class.std::allocator", align 1
  %1076 = alloca %"class.std::__cxx11::basic_string", align 8
  %1077 = alloca %"class.std::allocator", align 1
  %1078 = alloca %"class.std::__cxx11::basic_string", align 8
  %1079 = alloca %"class.std::allocator", align 1
  %1080 = alloca %"class.std::__cxx11::basic_string", align 8
  %1081 = alloca %"class.std::allocator", align 1
  %1082 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1083 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1084 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1085 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1086 = alloca %"class.std::initializer_list.14", align 8
  %1087 = alloca [1 x float], align 4
  %1088 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1089 = alloca %"class.std::initializer_list.14", align 8
  %1090 = alloca [1 x float], align 4
  %1091 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1092 = alloca %"class.std::initializer_list.14", align 8
  %1093 = alloca [2 x float], align 4
  %1094 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1095 = alloca %"class.std::initializer_list.14", align 8
  %1096 = alloca [4 x float], align 4
  %1097 = alloca %"class.std::__cxx11::basic_string", align 8
  %1098 = alloca %"class.std::allocator", align 1
  %1099 = alloca %"class.std::__cxx11::basic_string", align 8
  %1100 = alloca %"class.std::allocator", align 1
  %1101 = alloca %"class.std::__cxx11::basic_string", align 8
  %1102 = alloca %"class.std::allocator", align 1
  %1103 = alloca %"class.std::__cxx11::basic_string", align 8
  %1104 = alloca %"class.std::allocator", align 1
  %1105 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1106 = alloca %"class.std::initializer_list.14", align 8
  %1107 = alloca [4 x float], align 4
  %1108 = alloca %"class.std::__cxx11::basic_string", align 8
  %1109 = alloca %"class.std::allocator", align 1
  %1110 = alloca %"class.std::__cxx11::basic_string", align 8
  %1111 = alloca %"class.std::allocator", align 1
  %1112 = alloca %"class.std::__cxx11::basic_string", align 8
  %1113 = alloca %"class.std::allocator", align 1
  %1114 = alloca %"class.std::__cxx11::basic_string", align 8
  %1115 = alloca %"class.std::allocator", align 1
  %1116 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1117 = alloca %"class.std::initializer_list.14", align 8
  %1118 = alloca [4 x float], align 4
  %1119 = alloca %"class.std::__cxx11::basic_string", align 8
  %1120 = alloca %"class.std::allocator", align 1
  %1121 = alloca %"class.std::__cxx11::basic_string", align 8
  %1122 = alloca %"class.std::allocator", align 1
  %1123 = alloca %"class.std::__cxx11::basic_string", align 8
  %1124 = alloca %"class.std::allocator", align 1
  %1125 = alloca %"class.std::__cxx11::basic_string", align 8
  %1126 = alloca %"class.std::allocator", align 1
  %1127 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1128 = alloca %"class.std::initializer_list.14", align 8
  %1129 = alloca [4 x float], align 4
  %1130 = alloca %"class.std::__cxx11::basic_string", align 8
  %1131 = alloca %"class.std::allocator", align 1
  %1132 = alloca %"class.std::__cxx11::basic_string", align 8
  %1133 = alloca %"class.std::allocator", align 1
  %1134 = alloca %"class.std::__cxx11::basic_string", align 8
  %1135 = alloca %"class.std::allocator", align 1
  %1136 = alloca %"class.std::__cxx11::basic_string", align 8
  %1137 = alloca %"class.std::allocator", align 1
  %1138 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1139 = alloca %"class.std::initializer_list.14", align 8
  %1140 = alloca [4 x float], align 4
  %1141 = alloca %"class.std::__cxx11::basic_string", align 8
  %1142 = alloca %"class.std::allocator", align 1
  %1143 = alloca %"class.std::__cxx11::basic_string", align 8
  %1144 = alloca %"class.std::allocator", align 1
  %1145 = alloca %"class.std::__cxx11::basic_string", align 8
  %1146 = alloca %"class.std::allocator", align 1
  %1147 = alloca %"class.std::__cxx11::basic_string", align 8
  %1148 = alloca %"class.std::allocator", align 1
  %1149 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1150 = alloca %"class.std::initializer_list.14", align 8
  %1151 = alloca [4 x float], align 4
  %1152 = alloca %"class.std::__cxx11::basic_string", align 8
  %1153 = alloca %"class.std::allocator", align 1
  %1154 = alloca %"class.std::__cxx11::basic_string", align 8
  %1155 = alloca %"class.std::allocator", align 1
  %1156 = alloca %"class.std::__cxx11::basic_string", align 8
  %1157 = alloca %"class.std::allocator", align 1
  %1158 = alloca %"class.std::__cxx11::basic_string", align 8
  %1159 = alloca %"class.std::allocator", align 1
  call void @llvm.lifetime.start.p0(i64 24, ptr %1) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %2) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %3) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %3, ptr align 4 @constinit, i64 24, i1 false), !tbaa.struct !5
  %1160 = getelementptr inbounds %"class.std::initializer_list", ptr %2, i32 0, i32 0
  store ptr %3, ptr %1160, align 8, !tbaa !9
  %1161 = getelementptr inbounds %"class.std::initializer_list", ptr %2, i32 0, i32 1
  store i64 6, ptr %1161, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(16) %2)
  call void @llvm.lifetime.end.p0(i64 24, ptr %3) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %2) #10
  %1162 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEii(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0, i32 noundef 0)
  %1163 = load i32, ptr %1162, align 4, !tbaa !14
  %1164 = icmp eq i32 %1163, 1
  %1165 = zext i1 %1164 to i32
  %1166 = icmp eq i32 %1165, 0
  br i1 %1166, label %1167, label %1197

1167:                                             ; preds = %0
  call void @llvm.lifetime.start.p0(i64 32, ptr %4) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %5) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %1168 unwind label %1173

1168:                                             ; preds = %1167
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %1169 unwind label %1177

1169:                                             ; preds = %1168
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %1170 unwind label %1181

1170:                                             ; preds = %1169
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %1171 unwind label %1185

1171:                                             ; preds = %1170
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef 20) #11
          to label %1172 unwind label %1189

1172:                                             ; preds = %1171
  unreachable

1173:                                             ; preds = %1167
  %1174 = landingpad { ptr, i32 }
          cleanup
  %1175 = extractvalue { ptr, i32 } %1174, 0
  store ptr %1175, ptr %6, align 8
  %1176 = extractvalue { ptr, i32 } %1174, 1
  store i32 %1176, ptr %7, align 4
  br label %1196

1177:                                             ; preds = %1168
  %1178 = landingpad { ptr, i32 }
          cleanup
  %1179 = extractvalue { ptr, i32 } %1178, 0
  store ptr %1179, ptr %6, align 8
  %1180 = extractvalue { ptr, i32 } %1178, 1
  store i32 %1180, ptr %7, align 4
  br label %1195

1181:                                             ; preds = %1169
  %1182 = landingpad { ptr, i32 }
          cleanup
  %1183 = extractvalue { ptr, i32 } %1182, 0
  store ptr %1183, ptr %6, align 8
  %1184 = extractvalue { ptr, i32 } %1182, 1
  store i32 %1184, ptr %7, align 4
  br label %1194

1185:                                             ; preds = %1170
  %1186 = landingpad { ptr, i32 }
          cleanup
  %1187 = extractvalue { ptr, i32 } %1186, 0
  store ptr %1187, ptr %6, align 8
  %1188 = extractvalue { ptr, i32 } %1186, 1
  store i32 %1188, ptr %7, align 4
  br label %1193

1189:                                             ; preds = %1171
  %1190 = landingpad { ptr, i32 }
          cleanup
  %1191 = extractvalue { ptr, i32 } %1190, 0
  store ptr %1191, ptr %6, align 8
  %1192 = extractvalue { ptr, i32 } %1190, 1
  store i32 %1192, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  br label %1193

1193:                                             ; preds = %1189, %1185
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  br label %1194

1194:                                             ; preds = %1193, %1181
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #10
  br label %1195

1195:                                             ; preds = %1194, %1177
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #10
  br label %1196

1196:                                             ; preds = %1195, %1173
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %5) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %4) #10
  br label %2425

1197:                                             ; preds = %0
  %1198 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEii(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0, i32 noundef 1)
  %1199 = load i32, ptr %1198, align 4, !tbaa !14
  %1200 = icmp eq i32 %1199, 2
  %1201 = zext i1 %1200 to i32
  %1202 = icmp eq i32 %1201, 0
  br i1 %1202, label %1203, label %1233

1203:                                             ; preds = %1197
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %1204 unwind label %1209

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

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

1206:                                             ; preds = %1205
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %1207 unwind label %1221

1207:                                             ; preds = %1206
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %20, i32 noundef 20) #11
          to label %1208 unwind label %1225

1208:                                             ; preds = %1207
  unreachable

1209:                                             ; preds = %1203
  %1210 = landingpad { ptr, i32 }
          cleanup
  %1211 = extractvalue { ptr, i32 } %1210, 0
  store ptr %1211, ptr %6, align 8
  %1212 = extractvalue { ptr, i32 } %1210, 1
  store i32 %1212, ptr %7, align 4
  br label %1232

1213:                                             ; preds = %1204
  %1214 = landingpad { ptr, i32 }
          cleanup
  %1215 = extractvalue { ptr, i32 } %1214, 0
  store ptr %1215, ptr %6, align 8
  %1216 = extractvalue { ptr, i32 } %1214, 1
  store i32 %1216, ptr %7, align 4
  br label %1231

1217:                                             ; preds = %1205
  %1218 = landingpad { ptr, i32 }
          cleanup
  %1219 = extractvalue { ptr, i32 } %1218, 0
  store ptr %1219, ptr %6, align 8
  %1220 = extractvalue { ptr, i32 } %1218, 1
  store i32 %1220, ptr %7, align 4
  br label %1230

1221:                                             ; preds = %1206
  %1222 = landingpad { ptr, i32 }
          cleanup
  %1223 = extractvalue { ptr, i32 } %1222, 0
  store ptr %1223, ptr %6, align 8
  %1224 = extractvalue { ptr, i32 } %1222, 1
  store i32 %1224, ptr %7, align 4
  br label %1229

1225:                                             ; preds = %1207
  %1226 = landingpad { ptr, i32 }
          cleanup
  %1227 = extractvalue { ptr, i32 } %1226, 0
  store ptr %1227, ptr %6, align 8
  %1228 = extractvalue { ptr, i32 } %1226, 1
  store i32 %1228, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #10
  br label %1229

1229:                                             ; preds = %1225, %1221
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #10
  br label %1230

1230:                                             ; preds = %1229, %1217
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #10
  br label %1231

1231:                                             ; preds = %1230, %1213
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #10
  br label %1232

1232:                                             ; preds = %1231, %1209
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #10
  br label %2425

1233:                                             ; preds = %1197
  %1234 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEii(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0, i32 noundef 2)
  %1235 = load i32, ptr %1234, align 4, !tbaa !14
  %1236 = icmp eq i32 %1235, 3
  %1237 = zext i1 %1236 to i32
  %1238 = icmp eq i32 %1237, 0
  br i1 %1238, label %1239, label %1269

1239:                                             ; preds = %1233
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %1240 unwind label %1245

1240:                                             ; preds = %1239
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %1241 unwind label %1249

1241:                                             ; preds = %1240
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %1242 unwind label %1253

1242:                                             ; preds = %1241
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %1243 unwind label %1257

1243:                                             ; preds = %1242
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %28, i32 noundef 20) #11
          to label %1244 unwind label %1261

1244:                                             ; preds = %1243
  unreachable

1245:                                             ; preds = %1239
  %1246 = landingpad { ptr, i32 }
          cleanup
  %1247 = extractvalue { ptr, i32 } %1246, 0
  store ptr %1247, ptr %6, align 8
  %1248 = extractvalue { ptr, i32 } %1246, 1
  store i32 %1248, ptr %7, align 4
  br label %1268

1249:                                             ; preds = %1240
  %1250 = landingpad { ptr, i32 }
          cleanup
  %1251 = extractvalue { ptr, i32 } %1250, 0
  store ptr %1251, ptr %6, align 8
  %1252 = extractvalue { ptr, i32 } %1250, 1
  store i32 %1252, ptr %7, align 4
  br label %1267

1253:                                             ; preds = %1241
  %1254 = landingpad { ptr, i32 }
          cleanup
  %1255 = extractvalue { ptr, i32 } %1254, 0
  store ptr %1255, ptr %6, align 8
  %1256 = extractvalue { ptr, i32 } %1254, 1
  store i32 %1256, ptr %7, align 4
  br label %1266

1257:                                             ; preds = %1242
  %1258 = landingpad { ptr, i32 }
          cleanup
  %1259 = extractvalue { ptr, i32 } %1258, 0
  store ptr %1259, ptr %6, align 8
  %1260 = extractvalue { ptr, i32 } %1258, 1
  store i32 %1260, ptr %7, align 4
  br label %1265

1261:                                             ; preds = %1243
  %1262 = landingpad { ptr, i32 }
          cleanup
  %1263 = extractvalue { ptr, i32 } %1262, 0
  store ptr %1263, ptr %6, align 8
  %1264 = extractvalue { ptr, i32 } %1262, 1
  store i32 %1264, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #10
  br label %1265

1265:                                             ; preds = %1261, %1257
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #10
  br label %1266

1266:                                             ; preds = %1265, %1253
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  br label %1267

1267:                                             ; preds = %1266, %1249
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  br label %1268

1268:                                             ; preds = %1267, %1245
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #10
  br label %2425

1269:                                             ; preds = %1233
  %1270 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEii(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1, i32 noundef 0)
  %1271 = load i32, ptr %1270, align 4, !tbaa !14
  %1272 = icmp eq i32 %1271, 4
  %1273 = zext i1 %1272 to i32
  %1274 = icmp eq i32 %1273, 0
  br i1 %1274, label %1275, label %1305

1275:                                             ; preds = %1269
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %1276 unwind label %1281

1276:                                             ; preds = %1275
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %1277 unwind label %1285

1277:                                             ; preds = %1276
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %1278 unwind label %1289

1278:                                             ; preds = %1277
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %1279 unwind label %1293

1279:                                             ; preds = %1278
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %36, i32 noundef 21) #11
          to label %1280 unwind label %1297

1280:                                             ; preds = %1279
  unreachable

1281:                                             ; preds = %1275
  %1282 = landingpad { ptr, i32 }
          cleanup
  %1283 = extractvalue { ptr, i32 } %1282, 0
  store ptr %1283, ptr %6, align 8
  %1284 = extractvalue { ptr, i32 } %1282, 1
  store i32 %1284, ptr %7, align 4
  br label %1304

1285:                                             ; preds = %1276
  %1286 = landingpad { ptr, i32 }
          cleanup
  %1287 = extractvalue { ptr, i32 } %1286, 0
  store ptr %1287, ptr %6, align 8
  %1288 = extractvalue { ptr, i32 } %1286, 1
  store i32 %1288, ptr %7, align 4
  br label %1303

1289:                                             ; preds = %1277
  %1290 = landingpad { ptr, i32 }
          cleanup
  %1291 = extractvalue { ptr, i32 } %1290, 0
  store ptr %1291, ptr %6, align 8
  %1292 = extractvalue { ptr, i32 } %1290, 1
  store i32 %1292, ptr %7, align 4
  br label %1302

1293:                                             ; preds = %1278
  %1294 = landingpad { ptr, i32 }
          cleanup
  %1295 = extractvalue { ptr, i32 } %1294, 0
  store ptr %1295, ptr %6, align 8
  %1296 = extractvalue { ptr, i32 } %1294, 1
  store i32 %1296, ptr %7, align 4
  br label %1301

1297:                                             ; preds = %1279
  %1298 = landingpad { ptr, i32 }
          cleanup
  %1299 = extractvalue { ptr, i32 } %1298, 0
  store ptr %1299, ptr %6, align 8
  %1300 = extractvalue { ptr, i32 } %1298, 1
  store i32 %1300, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  br label %1301

1301:                                             ; preds = %1297, %1293
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #10
  br label %1302

1302:                                             ; preds = %1301, %1289
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #10
  br label %1303

1303:                                             ; preds = %1302, %1285
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #10
  br label %1304

1304:                                             ; preds = %1303, %1281
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #10
  br label %2425

1305:                                             ; preds = %1269
  %1306 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEii(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1, i32 noundef 1)
  %1307 = load i32, ptr %1306, align 4, !tbaa !14
  %1308 = icmp eq i32 %1307, 5
  %1309 = zext i1 %1308 to i32
  %1310 = icmp eq i32 %1309, 0
  br i1 %1310, label %1311, label %1341

1311:                                             ; preds = %1305
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %1312 unwind label %1317

1312:                                             ; preds = %1311
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %1313 unwind label %1321

1313:                                             ; preds = %1312
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %1314 unwind label %1325

1314:                                             ; preds = %1313
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %1315 unwind label %1329

1315:                                             ; preds = %1314
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %44, i32 noundef 21) #11
          to label %1316 unwind label %1333

1316:                                             ; preds = %1315
  unreachable

1317:                                             ; preds = %1311
  %1318 = landingpad { ptr, i32 }
          cleanup
  %1319 = extractvalue { ptr, i32 } %1318, 0
  store ptr %1319, ptr %6, align 8
  %1320 = extractvalue { ptr, i32 } %1318, 1
  store i32 %1320, ptr %7, align 4
  br label %1340

1321:                                             ; preds = %1312
  %1322 = landingpad { ptr, i32 }
          cleanup
  %1323 = extractvalue { ptr, i32 } %1322, 0
  store ptr %1323, ptr %6, align 8
  %1324 = extractvalue { ptr, i32 } %1322, 1
  store i32 %1324, ptr %7, align 4
  br label %1339

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

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

1333:                                             ; preds = %1315
  %1334 = landingpad { ptr, i32 }
          cleanup
  %1335 = extractvalue { ptr, i32 } %1334, 0
  store ptr %1335, ptr %6, align 8
  %1336 = extractvalue { ptr, i32 } %1334, 1
  store i32 %1336, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  br label %1337

1337:                                             ; preds = %1333, %1329
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  br label %1338

1338:                                             ; preds = %1337, %1325
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  br label %1339

1339:                                             ; preds = %1338, %1321
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #10
  br label %1340

1340:                                             ; preds = %1339, %1317
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #10
  br label %2425

1341:                                             ; preds = %1305
  %1342 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEii(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1, i32 noundef 2)
  %1343 = load i32, ptr %1342, align 4, !tbaa !14
  %1344 = icmp eq i32 %1343, 6
  %1345 = zext i1 %1344 to i32
  %1346 = icmp eq i32 %1345, 0
  br i1 %1346, label %1347, label %1377

1347:                                             ; preds = %1341
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %1348 unwind label %1353

1348:                                             ; preds = %1347
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %1349 unwind label %1357

1349:                                             ; preds = %1348
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %1350 unwind label %1361

1350:                                             ; preds = %1349
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %1351 unwind label %1365

1351:                                             ; preds = %1350
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %52, i32 noundef 21) #11
          to label %1352 unwind label %1369

1352:                                             ; preds = %1351
  unreachable

1353:                                             ; preds = %1347
  %1354 = landingpad { ptr, i32 }
          cleanup
  %1355 = extractvalue { ptr, i32 } %1354, 0
  store ptr %1355, ptr %6, align 8
  %1356 = extractvalue { ptr, i32 } %1354, 1
  store i32 %1356, ptr %7, align 4
  br label %1376

1357:                                             ; preds = %1348
  %1358 = landingpad { ptr, i32 }
          cleanup
  %1359 = extractvalue { ptr, i32 } %1358, 0
  store ptr %1359, ptr %6, align 8
  %1360 = extractvalue { ptr, i32 } %1358, 1
  store i32 %1360, ptr %7, align 4
  br label %1375

1361:                                             ; preds = %1349
  %1362 = landingpad { ptr, i32 }
          cleanup
  %1363 = extractvalue { ptr, i32 } %1362, 0
  store ptr %1363, ptr %6, align 8
  %1364 = extractvalue { ptr, i32 } %1362, 1
  store i32 %1364, ptr %7, align 4
  br label %1374

1365:                                             ; preds = %1350
  %1366 = landingpad { ptr, i32 }
          cleanup
  %1367 = extractvalue { ptr, i32 } %1366, 0
  store ptr %1367, ptr %6, align 8
  %1368 = extractvalue { ptr, i32 } %1366, 1
  store i32 %1368, ptr %7, align 4
  br label %1373

1369:                                             ; preds = %1351
  %1370 = landingpad { ptr, i32 }
          cleanup
  %1371 = extractvalue { ptr, i32 } %1370, 0
  store ptr %1371, ptr %6, align 8
  %1372 = extractvalue { ptr, i32 } %1370, 1
  store i32 %1372, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  br label %1373

1373:                                             ; preds = %1369, %1365
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  br label %1374

1374:                                             ; preds = %1373, %1361
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #10
  br label %1375

1375:                                             ; preds = %1374, %1357
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #10
  br label %1376

1376:                                             ; preds = %1375, %1353
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #10
  br label %2425

1377:                                             ; preds = %1341
  %1378 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0)
  %1379 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEclEi(ptr noundef nonnull align 4 dereferenceable(12) %1378, i32 noundef 0)
  %1380 = load i32, ptr %1379, align 4, !tbaa !14
  %1381 = icmp eq i32 %1380, 1
  %1382 = zext i1 %1381 to i32
  %1383 = icmp eq i32 %1382, 0
  br i1 %1383, label %1384, label %1414

1384:                                             ; preds = %1377
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %1385 unwind label %1390

1385:                                             ; preds = %1384
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %1386 unwind label %1394

1386:                                             ; preds = %1385
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %1387 unwind label %1398

1387:                                             ; preds = %1386
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %1388 unwind label %1402

1388:                                             ; preds = %1387
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %60, i32 noundef 23) #11
          to label %1389 unwind label %1406

1389:                                             ; preds = %1388
  unreachable

1390:                                             ; preds = %1384
  %1391 = landingpad { ptr, i32 }
          cleanup
  %1392 = extractvalue { ptr, i32 } %1391, 0
  store ptr %1392, ptr %6, align 8
  %1393 = extractvalue { ptr, i32 } %1391, 1
  store i32 %1393, ptr %7, align 4
  br label %1413

1394:                                             ; preds = %1385
  %1395 = landingpad { ptr, i32 }
          cleanup
  %1396 = extractvalue { ptr, i32 } %1395, 0
  store ptr %1396, ptr %6, align 8
  %1397 = extractvalue { ptr, i32 } %1395, 1
  store i32 %1397, ptr %7, align 4
  br label %1412

1398:                                             ; preds = %1386
  %1399 = landingpad { ptr, i32 }
          cleanup
  %1400 = extractvalue { ptr, i32 } %1399, 0
  store ptr %1400, ptr %6, align 8
  %1401 = extractvalue { ptr, i32 } %1399, 1
  store i32 %1401, ptr %7, align 4
  br label %1411

1402:                                             ; preds = %1387
  %1403 = landingpad { ptr, i32 }
          cleanup
  %1404 = extractvalue { ptr, i32 } %1403, 0
  store ptr %1404, ptr %6, align 8
  %1405 = extractvalue { ptr, i32 } %1403, 1
  store i32 %1405, ptr %7, align 4
  br label %1410

1406:                                             ; preds = %1388
  %1407 = landingpad { ptr, i32 }
          cleanup
  %1408 = extractvalue { ptr, i32 } %1407, 0
  store ptr %1408, ptr %6, align 8
  %1409 = extractvalue { ptr, i32 } %1407, 1
  store i32 %1409, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #10
  br label %1410

1410:                                             ; preds = %1406, %1402
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  br label %1411

1411:                                             ; preds = %1410, %1398
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #10
  br label %1412

1412:                                             ; preds = %1411, %1394
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #10
  br label %1413

1413:                                             ; preds = %1412, %1390
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #10
  br label %2425

1414:                                             ; preds = %1377
  %1415 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0)
  %1416 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEclEi(ptr noundef nonnull align 4 dereferenceable(12) %1415, i32 noundef 1)
  %1417 = load i32, ptr %1416, align 4, !tbaa !14
  %1418 = icmp eq i32 %1417, 2
  %1419 = zext i1 %1418 to i32
  %1420 = icmp eq i32 %1419, 0
  br i1 %1420, label %1421, label %1451

1421:                                             ; preds = %1414
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %1422 unwind label %1427

1422:                                             ; preds = %1421
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %1423 unwind label %1431

1423:                                             ; preds = %1422
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %1424 unwind label %1435

1424:                                             ; preds = %1423
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %69)
          to label %1425 unwind label %1439

1425:                                             ; preds = %1424
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %68, i32 noundef 23) #11
          to label %1426 unwind label %1443

1426:                                             ; preds = %1425
  unreachable

1427:                                             ; preds = %1421
  %1428 = landingpad { ptr, i32 }
          cleanup
  %1429 = extractvalue { ptr, i32 } %1428, 0
  store ptr %1429, ptr %6, align 8
  %1430 = extractvalue { ptr, i32 } %1428, 1
  store i32 %1430, ptr %7, align 4
  br label %1450

1431:                                             ; preds = %1422
  %1432 = landingpad { ptr, i32 }
          cleanup
  %1433 = extractvalue { ptr, i32 } %1432, 0
  store ptr %1433, ptr %6, align 8
  %1434 = extractvalue { ptr, i32 } %1432, 1
  store i32 %1434, ptr %7, align 4
  br label %1449

1435:                                             ; preds = %1423
  %1436 = landingpad { ptr, i32 }
          cleanup
  %1437 = extractvalue { ptr, i32 } %1436, 0
  store ptr %1437, ptr %6, align 8
  %1438 = extractvalue { ptr, i32 } %1436, 1
  store i32 %1438, ptr %7, align 4
  br label %1448

1439:                                             ; preds = %1424
  %1440 = landingpad { ptr, i32 }
          cleanup
  %1441 = extractvalue { ptr, i32 } %1440, 0
  store ptr %1441, ptr %6, align 8
  %1442 = extractvalue { ptr, i32 } %1440, 1
  store i32 %1442, ptr %7, align 4
  br label %1447

1443:                                             ; preds = %1425
  %1444 = landingpad { ptr, i32 }
          cleanup
  %1445 = extractvalue { ptr, i32 } %1444, 0
  store ptr %1445, ptr %6, align 8
  %1446 = extractvalue { ptr, i32 } %1444, 1
  store i32 %1446, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #10
  br label %1447

1447:                                             ; preds = %1443, %1439
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #10
  br label %1448

1448:                                             ; preds = %1447, %1435
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #10
  br label %1449

1449:                                             ; preds = %1448, %1431
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #10
  br label %1450

1450:                                             ; preds = %1449, %1427
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #10
  br label %2425

1451:                                             ; preds = %1414
  %1452 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0)
  %1453 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEclEi(ptr noundef nonnull align 4 dereferenceable(12) %1452, i32 noundef 2)
  %1454 = load i32, ptr %1453, align 4, !tbaa !14
  %1455 = icmp eq i32 %1454, 3
  %1456 = zext i1 %1455 to i32
  %1457 = icmp eq i32 %1456, 0
  br i1 %1457, label %1458, label %1488

1458:                                             ; preds = %1451
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %1459 unwind label %1464

1459:                                             ; preds = %1458
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %73) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %73)
          to label %1460 unwind label %1468

1460:                                             ; preds = %1459
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %1461 unwind label %1472

1461:                                             ; preds = %1460
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %77)
          to label %1462 unwind label %1476

1462:                                             ; preds = %1461
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %76, i32 noundef 23) #11
          to label %1463 unwind label %1480

1463:                                             ; preds = %1462
  unreachable

1464:                                             ; preds = %1458
  %1465 = landingpad { ptr, i32 }
          cleanup
  %1466 = extractvalue { ptr, i32 } %1465, 0
  store ptr %1466, ptr %6, align 8
  %1467 = extractvalue { ptr, i32 } %1465, 1
  store i32 %1467, ptr %7, align 4
  br label %1487

1468:                                             ; preds = %1459
  %1469 = landingpad { ptr, i32 }
          cleanup
  %1470 = extractvalue { ptr, i32 } %1469, 0
  store ptr %1470, ptr %6, align 8
  %1471 = extractvalue { ptr, i32 } %1469, 1
  store i32 %1471, ptr %7, align 4
  br label %1486

1472:                                             ; preds = %1460
  %1473 = landingpad { ptr, i32 }
          cleanup
  %1474 = extractvalue { ptr, i32 } %1473, 0
  store ptr %1474, ptr %6, align 8
  %1475 = extractvalue { ptr, i32 } %1473, 1
  store i32 %1475, ptr %7, align 4
  br label %1485

1476:                                             ; preds = %1461
  %1477 = landingpad { ptr, i32 }
          cleanup
  %1478 = extractvalue { ptr, i32 } %1477, 0
  store ptr %1478, ptr %6, align 8
  %1479 = extractvalue { ptr, i32 } %1477, 1
  store i32 %1479, ptr %7, align 4
  br label %1484

1480:                                             ; preds = %1462
  %1481 = landingpad { ptr, i32 }
          cleanup
  %1482 = extractvalue { ptr, i32 } %1481, 0
  store ptr %1482, ptr %6, align 8
  %1483 = extractvalue { ptr, i32 } %1481, 1
  store i32 %1483, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #10
  br label %1484

1484:                                             ; preds = %1480, %1476
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #10
  br label %1485

1485:                                             ; preds = %1484, %1472
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #10
  br label %1486

1486:                                             ; preds = %1485, %1468
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #10
  br label %1487

1487:                                             ; preds = %1486, %1464
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #10
  br label %2425

1488:                                             ; preds = %1451
  %1489 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1)
  %1490 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEclEi(ptr noundef nonnull align 4 dereferenceable(12) %1489, i32 noundef 0)
  %1491 = load i32, ptr %1490, align 4, !tbaa !14
  %1492 = icmp eq i32 %1491, 4
  %1493 = zext i1 %1492 to i32
  %1494 = icmp eq i32 %1493, 0
  br i1 %1494, label %1495, label %1525

1495:                                             ; preds = %1488
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %1496 unwind label %1501

1496:                                             ; preds = %1495
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #10
  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 %1497 unwind label %1505

1497:                                             ; preds = %1496
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #10
  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 %1498 unwind label %1509

1498:                                             ; preds = %1497
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %85)
          to label %1499 unwind label %1513

1499:                                             ; preds = %1498
  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) #11
          to label %1500 unwind label %1517

1500:                                             ; preds = %1499
  unreachable

1501:                                             ; preds = %1495
  %1502 = landingpad { ptr, i32 }
          cleanup
  %1503 = extractvalue { ptr, i32 } %1502, 0
  store ptr %1503, ptr %6, align 8
  %1504 = extractvalue { ptr, i32 } %1502, 1
  store i32 %1504, ptr %7, align 4
  br label %1524

1505:                                             ; preds = %1496
  %1506 = landingpad { ptr, i32 }
          cleanup
  %1507 = extractvalue { ptr, i32 } %1506, 0
  store ptr %1507, ptr %6, align 8
  %1508 = extractvalue { ptr, i32 } %1506, 1
  store i32 %1508, ptr %7, align 4
  br label %1523

1509:                                             ; preds = %1497
  %1510 = landingpad { ptr, i32 }
          cleanup
  %1511 = extractvalue { ptr, i32 } %1510, 0
  store ptr %1511, ptr %6, align 8
  %1512 = extractvalue { ptr, i32 } %1510, 1
  store i32 %1512, ptr %7, align 4
  br label %1522

1513:                                             ; preds = %1498
  %1514 = landingpad { ptr, i32 }
          cleanup
  %1515 = extractvalue { ptr, i32 } %1514, 0
  store ptr %1515, ptr %6, align 8
  %1516 = extractvalue { ptr, i32 } %1514, 1
  store i32 %1516, ptr %7, align 4
  br label %1521

1517:                                             ; preds = %1499
  %1518 = landingpad { ptr, i32 }
          cleanup
  %1519 = extractvalue { ptr, i32 } %1518, 0
  store ptr %1519, ptr %6, align 8
  %1520 = extractvalue { ptr, i32 } %1518, 1
  store i32 %1520, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #10
  br label %1521

1521:                                             ; preds = %1517, %1513
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #10
  br label %1522

1522:                                             ; preds = %1521, %1509
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #10
  br label %1523

1523:                                             ; preds = %1522, %1505
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #10
  br label %1524

1524:                                             ; preds = %1523, %1501
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #10
  br label %2425

1525:                                             ; preds = %1488
  %1526 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1)
  %1527 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEclEi(ptr noundef nonnull align 4 dereferenceable(12) %1526, i32 noundef 1)
  %1528 = load i32, ptr %1527, align 4, !tbaa !14
  %1529 = icmp eq i32 %1528, 5
  %1530 = zext i1 %1529 to i32
  %1531 = icmp eq i32 %1530, 0
  br i1 %1531, label %1532, label %1562

1532:                                             ; preds = %1525
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %87)
          to label %1533 unwind label %1538

1533:                                             ; preds = %1532
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %89)
          to label %1534 unwind label %1542

1534:                                             ; preds = %1533
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %1535 unwind label %1546

1535:                                             ; preds = %1534
  call void @llvm.lifetime.start.p0(i64 32, ptr %92) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %93) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %93)
          to label %1536 unwind label %1550

1536:                                             ; preds = %1535
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull align 8 dereferenceable(32) %92, i32 noundef 24) #11
          to label %1537 unwind label %1554

1537:                                             ; preds = %1536
  unreachable

1538:                                             ; preds = %1532
  %1539 = landingpad { ptr, i32 }
          cleanup
  %1540 = extractvalue { ptr, i32 } %1539, 0
  store ptr %1540, ptr %6, align 8
  %1541 = extractvalue { ptr, i32 } %1539, 1
  store i32 %1541, ptr %7, align 4
  br label %1561

1542:                                             ; preds = %1533
  %1543 = landingpad { ptr, i32 }
          cleanup
  %1544 = extractvalue { ptr, i32 } %1543, 0
  store ptr %1544, ptr %6, align 8
  %1545 = extractvalue { ptr, i32 } %1543, 1
  store i32 %1545, ptr %7, align 4
  br label %1560

1546:                                             ; preds = %1534
  %1547 = landingpad { ptr, i32 }
          cleanup
  %1548 = extractvalue { ptr, i32 } %1547, 0
  store ptr %1548, ptr %6, align 8
  %1549 = extractvalue { ptr, i32 } %1547, 1
  store i32 %1549, ptr %7, align 4
  br label %1559

1550:                                             ; preds = %1535
  %1551 = landingpad { ptr, i32 }
          cleanup
  %1552 = extractvalue { ptr, i32 } %1551, 0
  store ptr %1552, ptr %6, align 8
  %1553 = extractvalue { ptr, i32 } %1551, 1
  store i32 %1553, ptr %7, align 4
  br label %1558

1554:                                             ; preds = %1536
  %1555 = landingpad { ptr, i32 }
          cleanup
  %1556 = extractvalue { ptr, i32 } %1555, 0
  store ptr %1556, ptr %6, align 8
  %1557 = extractvalue { ptr, i32 } %1555, 1
  store i32 %1557, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #10
  br label %1558

1558:                                             ; preds = %1554, %1550
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %93) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #10
  br label %1559

1559:                                             ; preds = %1558, %1546
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #10
  br label %1560

1560:                                             ; preds = %1559, %1542
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #10
  br label %1561

1561:                                             ; preds = %1560, %1538
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #10
  br label %2425

1562:                                             ; preds = %1525
  %1563 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1)
  %1564 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEclEi(ptr noundef nonnull align 4 dereferenceable(12) %1563, i32 noundef 2)
  %1565 = load i32, ptr %1564, align 4, !tbaa !14
  %1566 = icmp eq i32 %1565, 6
  %1567 = zext i1 %1566 to i32
  %1568 = icmp eq i32 %1567, 0
  br i1 %1568, label %1569, label %1599

1569:                                             ; preds = %1562
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %95)
          to label %1570 unwind label %1575

1570:                                             ; preds = %1569
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %97)
          to label %1571 unwind label %1579

1571:                                             ; preds = %1570
  call void @llvm.lifetime.start.p0(i64 32, ptr %98) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %99) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %99)
          to label %1572 unwind label %1583

1572:                                             ; preds = %1571
  call void @llvm.lifetime.start.p0(i64 32, ptr %100) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %101) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %101)
          to label %1573 unwind label %1587

1573:                                             ; preds = %1572
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull align 8 dereferenceable(32) %100, i32 noundef 24) #11
          to label %1574 unwind label %1591

1574:                                             ; preds = %1573
  unreachable

1575:                                             ; preds = %1569
  %1576 = landingpad { ptr, i32 }
          cleanup
  %1577 = extractvalue { ptr, i32 } %1576, 0
  store ptr %1577, ptr %6, align 8
  %1578 = extractvalue { ptr, i32 } %1576, 1
  store i32 %1578, ptr %7, align 4
  br label %1598

1579:                                             ; preds = %1570
  %1580 = landingpad { ptr, i32 }
          cleanup
  %1581 = extractvalue { ptr, i32 } %1580, 0
  store ptr %1581, ptr %6, align 8
  %1582 = extractvalue { ptr, i32 } %1580, 1
  store i32 %1582, ptr %7, align 4
  br label %1597

1583:                                             ; preds = %1571
  %1584 = landingpad { ptr, i32 }
          cleanup
  %1585 = extractvalue { ptr, i32 } %1584, 0
  store ptr %1585, ptr %6, align 8
  %1586 = extractvalue { ptr, i32 } %1584, 1
  store i32 %1586, ptr %7, align 4
  br label %1596

1587:                                             ; preds = %1572
  %1588 = landingpad { ptr, i32 }
          cleanup
  %1589 = extractvalue { ptr, i32 } %1588, 0
  store ptr %1589, ptr %6, align 8
  %1590 = extractvalue { ptr, i32 } %1588, 1
  store i32 %1590, ptr %7, align 4
  br label %1595

1591:                                             ; preds = %1573
  %1592 = landingpad { ptr, i32 }
          cleanup
  %1593 = extractvalue { ptr, i32 } %1592, 0
  store ptr %1593, ptr %6, align 8
  %1594 = extractvalue { ptr, i32 } %1592, 1
  store i32 %1594, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #10
  br label %1595

1595:                                             ; preds = %1591, %1587
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #10
  br label %1596

1596:                                             ; preds = %1595, %1583
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #10
  br label %1597

1597:                                             ; preds = %1596, %1579
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #10
  br label %1598

1598:                                             ; preds = %1597, %1575
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #10
  br label %2425

1599:                                             ; preds = %1562
  %1600 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0)
  %1601 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEixEi(ptr noundef nonnull align 4 dereferenceable(12) %1600, i32 noundef 0)
  %1602 = load i32, ptr %1601, align 4, !tbaa !14
  %1603 = icmp eq i32 %1602, 1
  %1604 = zext i1 %1603 to i32
  %1605 = icmp eq i32 %1604, 0
  br i1 %1605, label %1606, label %1636

1606:                                             ; preds = %1599
  call void @llvm.lifetime.start.p0(i64 32, ptr %102) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %103) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %103)
          to label %1607 unwind label %1612

1607:                                             ; preds = %1606
  call void @llvm.lifetime.start.p0(i64 32, ptr %104) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %105) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %105)
          to label %1608 unwind label %1616

1608:                                             ; preds = %1607
  call void @llvm.lifetime.start.p0(i64 32, ptr %106) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %107) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %107)
          to label %1609 unwind label %1620

1609:                                             ; preds = %1608
  call void @llvm.lifetime.start.p0(i64 32, ptr %108) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %109) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %109)
          to label %1610 unwind label %1624

1610:                                             ; preds = %1609
  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 26) #11
          to label %1611 unwind label %1628

1611:                                             ; preds = %1610
  unreachable

1612:                                             ; preds = %1606
  %1613 = landingpad { ptr, i32 }
          cleanup
  %1614 = extractvalue { ptr, i32 } %1613, 0
  store ptr %1614, ptr %6, align 8
  %1615 = extractvalue { ptr, i32 } %1613, 1
  store i32 %1615, ptr %7, align 4
  br label %1635

1616:                                             ; preds = %1607
  %1617 = landingpad { ptr, i32 }
          cleanup
  %1618 = extractvalue { ptr, i32 } %1617, 0
  store ptr %1618, ptr %6, align 8
  %1619 = extractvalue { ptr, i32 } %1617, 1
  store i32 %1619, ptr %7, align 4
  br label %1634

1620:                                             ; preds = %1608
  %1621 = landingpad { ptr, i32 }
          cleanup
  %1622 = extractvalue { ptr, i32 } %1621, 0
  store ptr %1622, ptr %6, align 8
  %1623 = extractvalue { ptr, i32 } %1621, 1
  store i32 %1623, ptr %7, align 4
  br label %1633

1624:                                             ; preds = %1609
  %1625 = landingpad { ptr, i32 }
          cleanup
  %1626 = extractvalue { ptr, i32 } %1625, 0
  store ptr %1626, ptr %6, align 8
  %1627 = extractvalue { ptr, i32 } %1625, 1
  store i32 %1627, ptr %7, align 4
  br label %1632

1628:                                             ; preds = %1610
  %1629 = landingpad { ptr, i32 }
          cleanup
  %1630 = extractvalue { ptr, i32 } %1629, 0
  store ptr %1630, ptr %6, align 8
  %1631 = extractvalue { ptr, i32 } %1629, 1
  store i32 %1631, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #10
  br label %1632

1632:                                             ; preds = %1628, %1624
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %109) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #10
  br label %1633

1633:                                             ; preds = %1632, %1620
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #10
  br label %1634

1634:                                             ; preds = %1633, %1616
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %105) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #10
  br label %1635

1635:                                             ; preds = %1634, %1612
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #10
  br label %2425

1636:                                             ; preds = %1599
  %1637 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0)
  %1638 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEixEi(ptr noundef nonnull align 4 dereferenceable(12) %1637, i32 noundef 1)
  %1639 = load i32, ptr %1638, align 4, !tbaa !14
  %1640 = icmp eq i32 %1639, 2
  %1641 = zext i1 %1640 to i32
  %1642 = icmp eq i32 %1641, 0
  br i1 %1642, label %1643, label %1673

1643:                                             ; preds = %1636
  call void @llvm.lifetime.start.p0(i64 32, ptr %110) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %111) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %111)
          to label %1644 unwind label %1649

1644:                                             ; preds = %1643
  call void @llvm.lifetime.start.p0(i64 32, ptr %112) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %113) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %113)
          to label %1645 unwind label %1653

1645:                                             ; preds = %1644
  call void @llvm.lifetime.start.p0(i64 32, ptr %114) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %115) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %115)
          to label %1646 unwind label %1657

1646:                                             ; preds = %1645
  call void @llvm.lifetime.start.p0(i64 32, ptr %116) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %117) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %117)
          to label %1647 unwind label %1661

1647:                                             ; preds = %1646
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull align 8 dereferenceable(32) %116, i32 noundef 26) #11
          to label %1648 unwind label %1665

1648:                                             ; preds = %1647
  unreachable

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

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

1657:                                             ; preds = %1645
  %1658 = landingpad { ptr, i32 }
          cleanup
  %1659 = extractvalue { ptr, i32 } %1658, 0
  store ptr %1659, ptr %6, align 8
  %1660 = extractvalue { ptr, i32 } %1658, 1
  store i32 %1660, ptr %7, align 4
  br label %1670

1661:                                             ; preds = %1646
  %1662 = landingpad { ptr, i32 }
          cleanup
  %1663 = extractvalue { ptr, i32 } %1662, 0
  store ptr %1663, ptr %6, align 8
  %1664 = extractvalue { ptr, i32 } %1662, 1
  store i32 %1664, ptr %7, align 4
  br label %1669

1665:                                             ; preds = %1647
  %1666 = landingpad { ptr, i32 }
          cleanup
  %1667 = extractvalue { ptr, i32 } %1666, 0
  store ptr %1667, ptr %6, align 8
  %1668 = extractvalue { ptr, i32 } %1666, 1
  store i32 %1668, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #10
  br label %1669

1669:                                             ; preds = %1665, %1661
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %117) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #10
  br label %1670

1670:                                             ; preds = %1669, %1657
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #10
  br label %1671

1671:                                             ; preds = %1670, %1653
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #10
  br label %1672

1672:                                             ; preds = %1671, %1649
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #10
  br label %2425

1673:                                             ; preds = %1636
  %1674 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0)
  %1675 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEixEi(ptr noundef nonnull align 4 dereferenceable(12) %1674, i32 noundef 2)
  %1676 = load i32, ptr %1675, align 4, !tbaa !14
  %1677 = icmp eq i32 %1676, 3
  %1678 = zext i1 %1677 to i32
  %1679 = icmp eq i32 %1678, 0
  br i1 %1679, label %1680, label %1710

1680:                                             ; preds = %1673
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %119) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %119)
          to label %1681 unwind label %1686

1681:                                             ; preds = %1680
  call void @llvm.lifetime.start.p0(i64 32, ptr %120) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %121) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #10
  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 %1682 unwind label %1690

1682:                                             ; preds = %1681
  call void @llvm.lifetime.start.p0(i64 32, ptr %122) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %123) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #10
  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 %1683 unwind label %1694

1683:                                             ; preds = %1682
  call void @llvm.lifetime.start.p0(i64 32, ptr %124) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %125) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %125)
          to label %1684 unwind label %1698

1684:                                             ; preds = %1683
  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 26) #11
          to label %1685 unwind label %1702

1685:                                             ; preds = %1684
  unreachable

1686:                                             ; preds = %1680
  %1687 = landingpad { ptr, i32 }
          cleanup
  %1688 = extractvalue { ptr, i32 } %1687, 0
  store ptr %1688, ptr %6, align 8
  %1689 = extractvalue { ptr, i32 } %1687, 1
  store i32 %1689, ptr %7, align 4
  br label %1709

1690:                                             ; preds = %1681
  %1691 = landingpad { ptr, i32 }
          cleanup
  %1692 = extractvalue { ptr, i32 } %1691, 0
  store ptr %1692, ptr %6, align 8
  %1693 = extractvalue { ptr, i32 } %1691, 1
  store i32 %1693, ptr %7, align 4
  br label %1708

1694:                                             ; preds = %1682
  %1695 = landingpad { ptr, i32 }
          cleanup
  %1696 = extractvalue { ptr, i32 } %1695, 0
  store ptr %1696, ptr %6, align 8
  %1697 = extractvalue { ptr, i32 } %1695, 1
  store i32 %1697, ptr %7, align 4
  br label %1707

1698:                                             ; preds = %1683
  %1699 = landingpad { ptr, i32 }
          cleanup
  %1700 = extractvalue { ptr, i32 } %1699, 0
  store ptr %1700, ptr %6, align 8
  %1701 = extractvalue { ptr, i32 } %1699, 1
  store i32 %1701, ptr %7, align 4
  br label %1706

1702:                                             ; preds = %1684
  %1703 = landingpad { ptr, i32 }
          cleanup
  %1704 = extractvalue { ptr, i32 } %1703, 0
  store ptr %1704, ptr %6, align 8
  %1705 = extractvalue { ptr, i32 } %1703, 1
  store i32 %1705, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #10
  br label %1706

1706:                                             ; preds = %1702, %1698
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %125) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #10
  br label %1707

1707:                                             ; preds = %1706, %1694
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %123) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #10
  br label %1708

1708:                                             ; preds = %1707, %1690
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #10
  br label %1709

1709:                                             ; preds = %1708, %1686
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #10
  br label %2425

1710:                                             ; preds = %1673
  %1711 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1)
  %1712 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEixEi(ptr noundef nonnull align 4 dereferenceable(12) %1711, i32 noundef 0)
  %1713 = load i32, ptr %1712, align 4, !tbaa !14
  %1714 = icmp eq i32 %1713, 4
  %1715 = zext i1 %1714 to i32
  %1716 = icmp eq i32 %1715, 0
  br i1 %1716, label %1717, label %1747

1717:                                             ; preds = %1710
  call void @llvm.lifetime.start.p0(i64 32, ptr %126) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %127) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %127)
          to label %1718 unwind label %1723

1718:                                             ; preds = %1717
  call void @llvm.lifetime.start.p0(i64 32, ptr %128) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %129) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %129)
          to label %1719 unwind label %1727

1719:                                             ; preds = %1718
  call void @llvm.lifetime.start.p0(i64 32, ptr %130) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %131) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %131)
          to label %1720 unwind label %1731

1720:                                             ; preds = %1719
  call void @llvm.lifetime.start.p0(i64 32, ptr %132) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %133) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %133)
          to label %1721 unwind label %1735

1721:                                             ; preds = %1720
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull align 8 dereferenceable(32) %132, i32 noundef 27) #11
          to label %1722 unwind label %1739

1722:                                             ; preds = %1721
  unreachable

1723:                                             ; preds = %1717
  %1724 = landingpad { ptr, i32 }
          cleanup
  %1725 = extractvalue { ptr, i32 } %1724, 0
  store ptr %1725, ptr %6, align 8
  %1726 = extractvalue { ptr, i32 } %1724, 1
  store i32 %1726, ptr %7, align 4
  br label %1746

1727:                                             ; preds = %1718
  %1728 = landingpad { ptr, i32 }
          cleanup
  %1729 = extractvalue { ptr, i32 } %1728, 0
  store ptr %1729, ptr %6, align 8
  %1730 = extractvalue { ptr, i32 } %1728, 1
  store i32 %1730, ptr %7, align 4
  br label %1745

1731:                                             ; preds = %1719
  %1732 = landingpad { ptr, i32 }
          cleanup
  %1733 = extractvalue { ptr, i32 } %1732, 0
  store ptr %1733, ptr %6, align 8
  %1734 = extractvalue { ptr, i32 } %1732, 1
  store i32 %1734, ptr %7, align 4
  br label %1744

1735:                                             ; preds = %1720
  %1736 = landingpad { ptr, i32 }
          cleanup
  %1737 = extractvalue { ptr, i32 } %1736, 0
  store ptr %1737, ptr %6, align 8
  %1738 = extractvalue { ptr, i32 } %1736, 1
  store i32 %1738, ptr %7, align 4
  br label %1743

1739:                                             ; preds = %1721
  %1740 = landingpad { ptr, i32 }
          cleanup
  %1741 = extractvalue { ptr, i32 } %1740, 0
  store ptr %1741, ptr %6, align 8
  %1742 = extractvalue { ptr, i32 } %1740, 1
  store i32 %1742, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #10
  br label %1743

1743:                                             ; preds = %1739, %1735
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %133) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #10
  br label %1744

1744:                                             ; preds = %1743, %1731
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %130) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #10
  br label %1745

1745:                                             ; preds = %1744, %1727
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %129) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #10
  br label %1746

1746:                                             ; preds = %1745, %1723
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %127) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #10
  br label %2425

1747:                                             ; preds = %1710
  %1748 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1)
  %1749 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEixEi(ptr noundef nonnull align 4 dereferenceable(12) %1748, i32 noundef 1)
  %1750 = load i32, ptr %1749, align 4, !tbaa !14
  %1751 = icmp eq i32 %1750, 5
  %1752 = zext i1 %1751 to i32
  %1753 = icmp eq i32 %1752, 0
  br i1 %1753, label %1754, label %1784

1754:                                             ; preds = %1747
  call void @llvm.lifetime.start.p0(i64 32, ptr %134) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %135) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %135)
          to label %1755 unwind label %1760

1755:                                             ; preds = %1754
  call void @llvm.lifetime.start.p0(i64 32, ptr %136) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %137) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %137)
          to label %1756 unwind label %1764

1756:                                             ; preds = %1755
  call void @llvm.lifetime.start.p0(i64 32, ptr %138) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %139) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %139)
          to label %1757 unwind label %1768

1757:                                             ; preds = %1756
  call void @llvm.lifetime.start.p0(i64 32, ptr %140) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %141) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %141)
          to label %1758 unwind label %1772

1758:                                             ; preds = %1757
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef nonnull align 8 dereferenceable(32) %140, i32 noundef 27) #11
          to label %1759 unwind label %1776

1759:                                             ; preds = %1758
  unreachable

1760:                                             ; preds = %1754
  %1761 = landingpad { ptr, i32 }
          cleanup
  %1762 = extractvalue { ptr, i32 } %1761, 0
  store ptr %1762, ptr %6, align 8
  %1763 = extractvalue { ptr, i32 } %1761, 1
  store i32 %1763, ptr %7, align 4
  br label %1783

1764:                                             ; preds = %1755
  %1765 = landingpad { ptr, i32 }
          cleanup
  %1766 = extractvalue { ptr, i32 } %1765, 0
  store ptr %1766, ptr %6, align 8
  %1767 = extractvalue { ptr, i32 } %1765, 1
  store i32 %1767, ptr %7, align 4
  br label %1782

1768:                                             ; preds = %1756
  %1769 = landingpad { ptr, i32 }
          cleanup
  %1770 = extractvalue { ptr, i32 } %1769, 0
  store ptr %1770, ptr %6, align 8
  %1771 = extractvalue { ptr, i32 } %1769, 1
  store i32 %1771, ptr %7, align 4
  br label %1781

1772:                                             ; preds = %1757
  %1773 = landingpad { ptr, i32 }
          cleanup
  %1774 = extractvalue { ptr, i32 } %1773, 0
  store ptr %1774, ptr %6, align 8
  %1775 = extractvalue { ptr, i32 } %1773, 1
  store i32 %1775, ptr %7, align 4
  br label %1780

1776:                                             ; preds = %1758
  %1777 = landingpad { ptr, i32 }
          cleanup
  %1778 = extractvalue { ptr, i32 } %1777, 0
  store ptr %1778, ptr %6, align 8
  %1779 = extractvalue { ptr, i32 } %1777, 1
  store i32 %1779, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #10
  br label %1780

1780:                                             ; preds = %1776, %1772
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %141) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %140) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #10
  br label %1781

1781:                                             ; preds = %1780, %1768
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %138) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #10
  br label %1782

1782:                                             ; preds = %1781, %1764
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %137) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #10
  br label %1783

1783:                                             ; preds = %1782, %1760
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %135) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #10
  br label %2425

1784:                                             ; preds = %1747
  %1785 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1)
  %1786 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEixEi(ptr noundef nonnull align 4 dereferenceable(12) %1785, i32 noundef 2)
  %1787 = load i32, ptr %1786, align 4, !tbaa !14
  %1788 = icmp eq i32 %1787, 6
  %1789 = zext i1 %1788 to i32
  %1790 = icmp eq i32 %1789, 0
  br i1 %1790, label %1791, label %1821

1791:                                             ; preds = %1784
  call void @llvm.lifetime.start.p0(i64 32, ptr %142) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %143) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %143)
          to label %1792 unwind label %1797

1792:                                             ; preds = %1791
  call void @llvm.lifetime.start.p0(i64 32, ptr %144) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %145) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %145)
          to label %1793 unwind label %1801

1793:                                             ; preds = %1792
  call void @llvm.lifetime.start.p0(i64 32, ptr %146) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %147) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %147)
          to label %1794 unwind label %1805

1794:                                             ; preds = %1793
  call void @llvm.lifetime.start.p0(i64 32, ptr %148) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %149) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %149) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %149)
          to label %1795 unwind label %1809

1795:                                             ; preds = %1794
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef nonnull align 8 dereferenceable(32) %148, i32 noundef 27) #11
          to label %1796 unwind label %1813

1796:                                             ; preds = %1795
  unreachable

1797:                                             ; preds = %1791
  %1798 = landingpad { ptr, i32 }
          cleanup
  %1799 = extractvalue { ptr, i32 } %1798, 0
  store ptr %1799, ptr %6, align 8
  %1800 = extractvalue { ptr, i32 } %1798, 1
  store i32 %1800, ptr %7, align 4
  br label %1820

1801:                                             ; preds = %1792
  %1802 = landingpad { ptr, i32 }
          cleanup
  %1803 = extractvalue { ptr, i32 } %1802, 0
  store ptr %1803, ptr %6, align 8
  %1804 = extractvalue { ptr, i32 } %1802, 1
  store i32 %1804, ptr %7, align 4
  br label %1819

1805:                                             ; preds = %1793
  %1806 = landingpad { ptr, i32 }
          cleanup
  %1807 = extractvalue { ptr, i32 } %1806, 0
  store ptr %1807, ptr %6, align 8
  %1808 = extractvalue { ptr, i32 } %1806, 1
  store i32 %1808, ptr %7, align 4
  br label %1818

1809:                                             ; preds = %1794
  %1810 = landingpad { ptr, i32 }
          cleanup
  %1811 = extractvalue { ptr, i32 } %1810, 0
  store ptr %1811, ptr %6, align 8
  %1812 = extractvalue { ptr, i32 } %1810, 1
  store i32 %1812, ptr %7, align 4
  br label %1817

1813:                                             ; preds = %1795
  %1814 = landingpad { ptr, i32 }
          cleanup
  %1815 = extractvalue { ptr, i32 } %1814, 0
  store ptr %1815, ptr %6, align 8
  %1816 = extractvalue { ptr, i32 } %1814, 1
  store i32 %1816, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #10
  br label %1817

1817:                                             ; preds = %1813, %1809
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %149) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %149) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %148) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #10
  br label %1818

1818:                                             ; preds = %1817, %1805
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %146) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #10
  br label %1819

1819:                                             ; preds = %1818, %1801
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %145) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %144) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #10
  br label %1820

1820:                                             ; preds = %1819, %1797
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %143) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #10
  br label %2425

1821:                                             ; preds = %1784
  %1822 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 12, ptr %150) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #10
  store i32 1, ptr %151, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #10
  store i32 2, ptr %152, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #10
  store i32 3, ptr %153, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIiLi3EEC2ERKiS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %150, ptr noundef nonnull align 4 dereferenceable(4) %151, ptr noundef nonnull align 4 dereferenceable(4) %152, ptr noundef nonnull align 4 dereferenceable(4) %153)
  %1823 = call noundef zeroext i1 @_ZN3cgp8is_equalIiLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %1822, ptr noundef nonnull align 4 dereferenceable(12) %150)
  call void @llvm.lifetime.start.p0(i64 12, ptr %154) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #10
  br i1 %1823, label %1824, label %1827

1824:                                             ; preds = %1821
  %1825 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1)
  store i32 4, ptr %155, align 4, !tbaa !14
  store i32 5, ptr %156, align 4, !tbaa !14
  store i32 6, ptr %157, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIiLi3EEC2ERKiS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %154, ptr noundef nonnull align 4 dereferenceable(4) %155, ptr noundef nonnull align 4 dereferenceable(4) %156, ptr noundef nonnull align 4 dereferenceable(4) %157)
  %1826 = call noundef zeroext i1 @_ZN3cgp8is_equalIiLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %1825, ptr noundef nonnull align 4 dereferenceable(12) %154)
  br label %1827

1827:                                             ; preds = %1824, %1821
  %1828 = phi i1 [ false, %1821 ], [ %1826, %1824 ]
  %1829 = zext i1 %1828 to i32
  %1830 = icmp eq i32 %1829, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %154) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %150) #10
  br i1 %1830, label %1831, label %1861

1831:                                             ; preds = %1827
  call void @llvm.lifetime.start.p0(i64 32, ptr %158) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %159) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %159)
          to label %1832 unwind label %1837

1832:                                             ; preds = %1831
  call void @llvm.lifetime.start.p0(i64 32, ptr %160) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %161) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %161)
          to label %1833 unwind label %1841

1833:                                             ; preds = %1832
  call void @llvm.lifetime.start.p0(i64 32, ptr %162) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %163) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %162, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %163)
          to label %1834 unwind label %1845

1834:                                             ; preds = %1833
  call void @llvm.lifetime.start.p0(i64 32, ptr %164) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %165) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %165) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %165)
          to label %1835 unwind label %1849

1835:                                             ; preds = %1834
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef nonnull align 8 dereferenceable(32) %162, ptr noundef nonnull align 8 dereferenceable(32) %164, i32 noundef 30) #11
          to label %1836 unwind label %1853

1836:                                             ; preds = %1835
  unreachable

1837:                                             ; preds = %1831
  %1838 = landingpad { ptr, i32 }
          cleanup
  %1839 = extractvalue { ptr, i32 } %1838, 0
  store ptr %1839, ptr %6, align 8
  %1840 = extractvalue { ptr, i32 } %1838, 1
  store i32 %1840, ptr %7, align 4
  br label %1860

1841:                                             ; preds = %1832
  %1842 = landingpad { ptr, i32 }
          cleanup
  %1843 = extractvalue { ptr, i32 } %1842, 0
  store ptr %1843, ptr %6, align 8
  %1844 = extractvalue { ptr, i32 } %1842, 1
  store i32 %1844, ptr %7, align 4
  br label %1859

1845:                                             ; preds = %1833
  %1846 = landingpad { ptr, i32 }
          cleanup
  %1847 = extractvalue { ptr, i32 } %1846, 0
  store ptr %1847, ptr %6, align 8
  %1848 = extractvalue { ptr, i32 } %1846, 1
  store i32 %1848, ptr %7, align 4
  br label %1858

1849:                                             ; preds = %1834
  %1850 = landingpad { ptr, i32 }
          cleanup
  %1851 = extractvalue { ptr, i32 } %1850, 0
  store ptr %1851, ptr %6, align 8
  %1852 = extractvalue { ptr, i32 } %1850, 1
  store i32 %1852, ptr %7, align 4
  br label %1857

1853:                                             ; preds = %1835
  %1854 = landingpad { ptr, i32 }
          cleanup
  %1855 = extractvalue { ptr, i32 } %1854, 0
  store ptr %1855, ptr %6, align 8
  %1856 = extractvalue { ptr, i32 } %1854, 1
  store i32 %1856, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #10
  br label %1857

1857:                                             ; preds = %1853, %1849
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %165) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %165) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %164) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #10
  br label %1858

1858:                                             ; preds = %1857, %1845
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %163) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %162) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #10
  br label %1859

1859:                                             ; preds = %1858, %1841
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %161) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %160) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #10
  br label %1860

1860:                                             ; preds = %1859, %1837
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %159) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %158) #10
  br label %2425

1861:                                             ; preds = %1827
  %1862 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 12, ptr %166) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #10
  store i32 1, ptr %167, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #10
  store i32 2, ptr %168, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #10
  store i32 3, ptr %169, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIiLi3EEC2ERKiS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %166, ptr noundef nonnull align 4 dereferenceable(4) %167, ptr noundef nonnull align 4 dereferenceable(4) %168, ptr noundef nonnull align 4 dereferenceable(4) %169)
  %1863 = call noundef zeroext i1 @_ZN3cgp8is_equalIiLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %1862, ptr noundef nonnull align 4 dereferenceable(12) %166)
  call void @llvm.lifetime.start.p0(i64 12, ptr %170) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #10
  br i1 %1863, label %1864, label %1867

1864:                                             ; preds = %1861
  %1865 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1)
  store i32 4, ptr %171, align 4, !tbaa !14
  store i32 5, ptr %172, align 4, !tbaa !14
  store i32 6, ptr %173, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIiLi3EEC2ERKiS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %170, ptr noundef nonnull align 4 dereferenceable(4) %171, ptr noundef nonnull align 4 dereferenceable(4) %172, ptr noundef nonnull align 4 dereferenceable(4) %173)
  %1866 = call noundef zeroext i1 @_ZN3cgp8is_equalIiLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %1865, ptr noundef nonnull align 4 dereferenceable(12) %170)
  br label %1867

1867:                                             ; preds = %1864, %1861
  %1868 = phi i1 [ false, %1861 ], [ %1866, %1864 ]
  %1869 = zext i1 %1868 to i32
  %1870 = icmp eq i32 %1869, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %170) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %166) #10
  br i1 %1870, label %1871, label %1901

1871:                                             ; preds = %1867
  call void @llvm.lifetime.start.p0(i64 32, ptr %174) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %175) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %175) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %175)
          to label %1872 unwind label %1877

1872:                                             ; preds = %1871
  call void @llvm.lifetime.start.p0(i64 32, ptr %176) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %177) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %177) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %176, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %177)
          to label %1873 unwind label %1881

1873:                                             ; preds = %1872
  call void @llvm.lifetime.start.p0(i64 32, ptr %178) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %179) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %179)
          to label %1874 unwind label %1885

1874:                                             ; preds = %1873
  call void @llvm.lifetime.start.p0(i64 32, ptr %180) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %181) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %181)
          to label %1875 unwind label %1889

1875:                                             ; preds = %1874
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef nonnull align 8 dereferenceable(32) %176, ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull align 8 dereferenceable(32) %180, i32 noundef 31) #11
          to label %1876 unwind label %1893

1876:                                             ; preds = %1875
  unreachable

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

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

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

1889:                                             ; preds = %1874
  %1890 = landingpad { ptr, i32 }
          cleanup
  %1891 = extractvalue { ptr, i32 } %1890, 0
  store ptr %1891, ptr %6, align 8
  %1892 = extractvalue { ptr, i32 } %1890, 1
  store i32 %1892, ptr %7, align 4
  br label %1897

1893:                                             ; preds = %1875
  %1894 = landingpad { ptr, i32 }
          cleanup
  %1895 = extractvalue { ptr, i32 } %1894, 0
  store ptr %1895, ptr %6, align 8
  %1896 = extractvalue { ptr, i32 } %1894, 1
  store i32 %1896, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #10
  br label %1897

1897:                                             ; preds = %1893, %1889
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %181) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %180) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #10
  br label %1898

1898:                                             ; preds = %1897, %1885
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %178) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #10
  br label %1899

1899:                                             ; preds = %1898, %1881
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %177) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %177) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %176) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #10
  br label %1900

1900:                                             ; preds = %1899, %1877
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %175) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %175) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %174) #10
  br label %2425

1901:                                             ; preds = %1867
  %1902 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi0ELi0EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #10
  store i32 1, ptr %182, align 4, !tbaa !14
  %1903 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %1902, ptr noundef nonnull align 4 dereferenceable(4) %182)
  %1904 = zext i1 %1903 to i32
  %1905 = icmp eq i32 %1904, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #10
  br i1 %1905, label %1906, label %1936

1906:                                             ; preds = %1901
  call void @llvm.lifetime.start.p0(i64 32, ptr %183) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %184) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %184)
          to label %1907 unwind label %1912

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

1908:                                             ; preds = %1907
  call void @llvm.lifetime.start.p0(i64 32, ptr %187) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %188) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %188) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %187, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %188)
          to label %1909 unwind label %1920

1909:                                             ; preds = %1908
  call void @llvm.lifetime.start.p0(i64 32, ptr %189) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %190) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %190) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %189, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %190)
          to label %1910 unwind label %1924

1910:                                             ; preds = %1909
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef nonnull align 8 dereferenceable(32) %185, ptr noundef nonnull align 8 dereferenceable(32) %187, ptr noundef nonnull align 8 dereferenceable(32) %189, i32 noundef 34) #11
          to label %1911 unwind label %1928

1911:                                             ; preds = %1910
  unreachable

1912:                                             ; preds = %1906
  %1913 = landingpad { ptr, i32 }
          cleanup
  %1914 = extractvalue { ptr, i32 } %1913, 0
  store ptr %1914, ptr %6, align 8
  %1915 = extractvalue { ptr, i32 } %1913, 1
  store i32 %1915, ptr %7, align 4
  br label %1935

1916:                                             ; preds = %1907
  %1917 = landingpad { ptr, i32 }
          cleanup
  %1918 = extractvalue { ptr, i32 } %1917, 0
  store ptr %1918, ptr %6, align 8
  %1919 = extractvalue { ptr, i32 } %1917, 1
  store i32 %1919, ptr %7, align 4
  br label %1934

1920:                                             ; preds = %1908
  %1921 = landingpad { ptr, i32 }
          cleanup
  %1922 = extractvalue { ptr, i32 } %1921, 0
  store ptr %1922, ptr %6, align 8
  %1923 = extractvalue { ptr, i32 } %1921, 1
  store i32 %1923, ptr %7, align 4
  br label %1933

1924:                                             ; preds = %1909
  %1925 = landingpad { ptr, i32 }
          cleanup
  %1926 = extractvalue { ptr, i32 } %1925, 0
  store ptr %1926, ptr %6, align 8
  %1927 = extractvalue { ptr, i32 } %1925, 1
  store i32 %1927, ptr %7, align 4
  br label %1932

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

1932:                                             ; preds = %1928, %1924
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %190) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %190) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %189) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #10
  br label %1933

1933:                                             ; preds = %1932, %1920
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %188) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %188) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %187) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #10
  br label %1934

1934:                                             ; preds = %1933, %1916
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %186) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %186) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %185) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #10
  br label %1935

1935:                                             ; preds = %1934, %1912
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %184) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %183) #10
  br label %2425

1936:                                             ; preds = %1901
  %1937 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi0ELi1EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #10
  store i32 2, ptr %191, align 4, !tbaa !14
  %1938 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %1937, ptr noundef nonnull align 4 dereferenceable(4) %191)
  %1939 = zext i1 %1938 to i32
  %1940 = icmp eq i32 %1939, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #10
  br i1 %1940, label %1941, label %1971

1941:                                             ; preds = %1936
  call void @llvm.lifetime.start.p0(i64 32, ptr %192) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %193) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef @.str.23, ptr noundef nonnull align 1 dereferenceable(1) %193)
          to label %1942 unwind label %1947

1942:                                             ; preds = %1941
  call void @llvm.lifetime.start.p0(i64 32, ptr %194) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %195) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %195) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %194, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %195)
          to label %1943 unwind label %1951

1943:                                             ; preds = %1942
  call void @llvm.lifetime.start.p0(i64 32, ptr %196) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %197) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %197)
          to label %1944 unwind label %1955

1944:                                             ; preds = %1943
  call void @llvm.lifetime.start.p0(i64 32, ptr %198) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %199) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %199)
          to label %1945 unwind label %1959

1945:                                             ; preds = %1944
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef nonnull align 8 dereferenceable(32) %194, ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef nonnull align 8 dereferenceable(32) %198, i32 noundef 34) #11
          to label %1946 unwind label %1963

1946:                                             ; preds = %1945
  unreachable

1947:                                             ; preds = %1941
  %1948 = landingpad { ptr, i32 }
          cleanup
  %1949 = extractvalue { ptr, i32 } %1948, 0
  store ptr %1949, ptr %6, align 8
  %1950 = extractvalue { ptr, i32 } %1948, 1
  store i32 %1950, ptr %7, align 4
  br label %1970

1951:                                             ; preds = %1942
  %1952 = landingpad { ptr, i32 }
          cleanup
  %1953 = extractvalue { ptr, i32 } %1952, 0
  store ptr %1953, ptr %6, align 8
  %1954 = extractvalue { ptr, i32 } %1952, 1
  store i32 %1954, ptr %7, align 4
  br label %1969

1955:                                             ; preds = %1943
  %1956 = landingpad { ptr, i32 }
          cleanup
  %1957 = extractvalue { ptr, i32 } %1956, 0
  store ptr %1957, ptr %6, align 8
  %1958 = extractvalue { ptr, i32 } %1956, 1
  store i32 %1958, ptr %7, align 4
  br label %1968

1959:                                             ; preds = %1944
  %1960 = landingpad { ptr, i32 }
          cleanup
  %1961 = extractvalue { ptr, i32 } %1960, 0
  store ptr %1961, ptr %6, align 8
  %1962 = extractvalue { ptr, i32 } %1960, 1
  store i32 %1962, ptr %7, align 4
  br label %1967

1963:                                             ; preds = %1945
  %1964 = landingpad { ptr, i32 }
          cleanup
  %1965 = extractvalue { ptr, i32 } %1964, 0
  store ptr %1965, ptr %6, align 8
  %1966 = extractvalue { ptr, i32 } %1964, 1
  store i32 %1966, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #10
  br label %1967

1967:                                             ; preds = %1963, %1959
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %199) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %198) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #10
  br label %1968

1968:                                             ; preds = %1967, %1955
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %197) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %196) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #10
  br label %1969

1969:                                             ; preds = %1968, %1951
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %195) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %195) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %194) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #10
  br label %1970

1970:                                             ; preds = %1969, %1947
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %193) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %192) #10
  br label %2425

1971:                                             ; preds = %1936
  %1972 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi0ELi2EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #10
  store i32 3, ptr %200, align 4, !tbaa !14
  %1973 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %1972, ptr noundef nonnull align 4 dereferenceable(4) %200)
  %1974 = zext i1 %1973 to i32
  %1975 = icmp eq i32 %1974, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #10
  br i1 %1975, label %1976, label %2006

1976:                                             ; preds = %1971
  call void @llvm.lifetime.start.p0(i64 32, ptr %201) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %202) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %202) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %201, ptr noundef @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %202)
          to label %1977 unwind label %1982

1977:                                             ; preds = %1976
  call void @llvm.lifetime.start.p0(i64 32, ptr %203) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %204) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %204)
          to label %1978 unwind label %1986

1978:                                             ; preds = %1977
  call void @llvm.lifetime.start.p0(i64 32, ptr %205) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %206) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %206)
          to label %1979 unwind label %1990

1979:                                             ; preds = %1978
  call void @llvm.lifetime.start.p0(i64 32, ptr %207) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %208) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %208) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %207, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %208)
          to label %1980 unwind label %1994

1980:                                             ; preds = %1979
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %201, ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef nonnull align 8 dereferenceable(32) %207, i32 noundef 34) #11
          to label %1981 unwind label %1998

1981:                                             ; preds = %1980
  unreachable

1982:                                             ; preds = %1976
  %1983 = landingpad { ptr, i32 }
          cleanup
  %1984 = extractvalue { ptr, i32 } %1983, 0
  store ptr %1984, ptr %6, align 8
  %1985 = extractvalue { ptr, i32 } %1983, 1
  store i32 %1985, ptr %7, align 4
  br label %2005

1986:                                             ; preds = %1977
  %1987 = landingpad { ptr, i32 }
          cleanup
  %1988 = extractvalue { ptr, i32 } %1987, 0
  store ptr %1988, ptr %6, align 8
  %1989 = extractvalue { ptr, i32 } %1987, 1
  store i32 %1989, ptr %7, align 4
  br label %2004

1990:                                             ; preds = %1978
  %1991 = landingpad { ptr, i32 }
          cleanup
  %1992 = extractvalue { ptr, i32 } %1991, 0
  store ptr %1992, ptr %6, align 8
  %1993 = extractvalue { ptr, i32 } %1991, 1
  store i32 %1993, ptr %7, align 4
  br label %2003

1994:                                             ; preds = %1979
  %1995 = landingpad { ptr, i32 }
          cleanup
  %1996 = extractvalue { ptr, i32 } %1995, 0
  store ptr %1996, ptr %6, align 8
  %1997 = extractvalue { ptr, i32 } %1995, 1
  store i32 %1997, ptr %7, align 4
  br label %2002

1998:                                             ; preds = %1980
  %1999 = landingpad { ptr, i32 }
          cleanup
  %2000 = extractvalue { ptr, i32 } %1999, 0
  store ptr %2000, ptr %6, align 8
  %2001 = extractvalue { ptr, i32 } %1999, 1
  store i32 %2001, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #10
  br label %2002

2002:                                             ; preds = %1998, %1994
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %208) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %208) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %207) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #10
  br label %2003

2003:                                             ; preds = %2002, %1990
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %206) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %205) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #10
  br label %2004

2004:                                             ; preds = %2003, %1986
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %204) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %203) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #10
  br label %2005

2005:                                             ; preds = %2004, %1982
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %202) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %202) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #10
  br label %2425

2006:                                             ; preds = %1971
  %2007 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi1ELi0EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #10
  store i32 4, ptr %209, align 4, !tbaa !14
  %2008 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %2007, ptr noundef nonnull align 4 dereferenceable(4) %209)
  %2009 = zext i1 %2008 to i32
  %2010 = icmp eq i32 %2009, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #10
  br i1 %2010, label %2011, label %2041

2011:                                             ; preds = %2006
  call void @llvm.lifetime.start.p0(i64 32, ptr %210) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %211) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %211)
          to label %2012 unwind label %2017

2012:                                             ; preds = %2011
  call void @llvm.lifetime.start.p0(i64 32, ptr %212) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %213) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %213)
          to label %2013 unwind label %2021

2013:                                             ; preds = %2012
  call void @llvm.lifetime.start.p0(i64 32, ptr %214) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %215) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %214, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %215)
          to label %2014 unwind label %2025

2014:                                             ; preds = %2013
  call void @llvm.lifetime.start.p0(i64 32, ptr %216) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %217) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %217) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %216, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %217)
          to label %2015 unwind label %2029

2015:                                             ; preds = %2014
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef nonnull align 8 dereferenceable(32) %214, ptr noundef nonnull align 8 dereferenceable(32) %216, i32 noundef 35) #11
          to label %2016 unwind label %2033

2016:                                             ; preds = %2015
  unreachable

2017:                                             ; preds = %2011
  %2018 = landingpad { ptr, i32 }
          cleanup
  %2019 = extractvalue { ptr, i32 } %2018, 0
  store ptr %2019, ptr %6, align 8
  %2020 = extractvalue { ptr, i32 } %2018, 1
  store i32 %2020, ptr %7, align 4
  br label %2040

2021:                                             ; preds = %2012
  %2022 = landingpad { ptr, i32 }
          cleanup
  %2023 = extractvalue { ptr, i32 } %2022, 0
  store ptr %2023, ptr %6, align 8
  %2024 = extractvalue { ptr, i32 } %2022, 1
  store i32 %2024, ptr %7, align 4
  br label %2039

2025:                                             ; preds = %2013
  %2026 = landingpad { ptr, i32 }
          cleanup
  %2027 = extractvalue { ptr, i32 } %2026, 0
  store ptr %2027, ptr %6, align 8
  %2028 = extractvalue { ptr, i32 } %2026, 1
  store i32 %2028, ptr %7, align 4
  br label %2038

2029:                                             ; preds = %2014
  %2030 = landingpad { ptr, i32 }
          cleanup
  %2031 = extractvalue { ptr, i32 } %2030, 0
  store ptr %2031, ptr %6, align 8
  %2032 = extractvalue { ptr, i32 } %2030, 1
  store i32 %2032, ptr %7, align 4
  br label %2037

2033:                                             ; preds = %2015
  %2034 = landingpad { ptr, i32 }
          cleanup
  %2035 = extractvalue { ptr, i32 } %2034, 0
  store ptr %2035, ptr %6, align 8
  %2036 = extractvalue { ptr, i32 } %2034, 1
  store i32 %2036, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #10
  br label %2037

2037:                                             ; preds = %2033, %2029
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %217) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %217) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %216) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #10
  br label %2038

2038:                                             ; preds = %2037, %2025
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %215) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %214) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #10
  br label %2039

2039:                                             ; preds = %2038, %2021
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %213) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %212) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #10
  br label %2040

2040:                                             ; preds = %2039, %2017
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %211) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %210) #10
  br label %2425

2041:                                             ; preds = %2006
  %2042 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi1ELi1EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #10
  store i32 5, ptr %218, align 4, !tbaa !14
  %2043 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %2042, ptr noundef nonnull align 4 dereferenceable(4) %218)
  %2044 = zext i1 %2043 to i32
  %2045 = icmp eq i32 %2044, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #10
  br i1 %2045, label %2046, label %2076

2046:                                             ; preds = %2041
  call void @llvm.lifetime.start.p0(i64 32, ptr %219) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %220) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %219, ptr noundef @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %220)
          to label %2047 unwind label %2052

2047:                                             ; preds = %2046
  call void @llvm.lifetime.start.p0(i64 32, ptr %221) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %222) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %222) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %221, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %222)
          to label %2048 unwind label %2056

2048:                                             ; preds = %2047
  call void @llvm.lifetime.start.p0(i64 32, ptr %223) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %224) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %224) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %223, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %224)
          to label %2049 unwind label %2060

2049:                                             ; preds = %2048
  call void @llvm.lifetime.start.p0(i64 32, ptr %225) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %226) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %226) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %225, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %226)
          to label %2050 unwind label %2064

2050:                                             ; preds = %2049
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %219, ptr noundef nonnull align 8 dereferenceable(32) %221, ptr noundef nonnull align 8 dereferenceable(32) %223, ptr noundef nonnull align 8 dereferenceable(32) %225, i32 noundef 35) #11
          to label %2051 unwind label %2068

2051:                                             ; preds = %2050
  unreachable

2052:                                             ; preds = %2046
  %2053 = landingpad { ptr, i32 }
          cleanup
  %2054 = extractvalue { ptr, i32 } %2053, 0
  store ptr %2054, ptr %6, align 8
  %2055 = extractvalue { ptr, i32 } %2053, 1
  store i32 %2055, ptr %7, align 4
  br label %2075

2056:                                             ; preds = %2047
  %2057 = landingpad { ptr, i32 }
          cleanup
  %2058 = extractvalue { ptr, i32 } %2057, 0
  store ptr %2058, ptr %6, align 8
  %2059 = extractvalue { ptr, i32 } %2057, 1
  store i32 %2059, ptr %7, align 4
  br label %2074

2060:                                             ; preds = %2048
  %2061 = landingpad { ptr, i32 }
          cleanup
  %2062 = extractvalue { ptr, i32 } %2061, 0
  store ptr %2062, ptr %6, align 8
  %2063 = extractvalue { ptr, i32 } %2061, 1
  store i32 %2063, ptr %7, align 4
  br label %2073

2064:                                             ; preds = %2049
  %2065 = landingpad { ptr, i32 }
          cleanup
  %2066 = extractvalue { ptr, i32 } %2065, 0
  store ptr %2066, ptr %6, align 8
  %2067 = extractvalue { ptr, i32 } %2065, 1
  store i32 %2067, ptr %7, align 4
  br label %2072

2068:                                             ; preds = %2050
  %2069 = landingpad { ptr, i32 }
          cleanup
  %2070 = extractvalue { ptr, i32 } %2069, 0
  store ptr %2070, ptr %6, align 8
  %2071 = extractvalue { ptr, i32 } %2069, 1
  store i32 %2071, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #10
  br label %2072

2072:                                             ; preds = %2068, %2064
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %226) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %226) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %225) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %223) #10
  br label %2073

2073:                                             ; preds = %2072, %2060
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %224) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %224) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %223) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #10
  br label %2074

2074:                                             ; preds = %2073, %2056
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %222) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %222) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %221) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #10
  br label %2075

2075:                                             ; preds = %2074, %2052
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %220) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %219) #10
  br label %2425

2076:                                             ; preds = %2041
  %2077 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi1ELi2EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #10
  store i32 6, ptr %227, align 4, !tbaa !14
  %2078 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %2077, ptr noundef nonnull align 4 dereferenceable(4) %227)
  %2079 = zext i1 %2078 to i32
  %2080 = icmp eq i32 %2079, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #10
  br i1 %2080, label %2081, label %2111

2081:                                             ; preds = %2076
  call void @llvm.lifetime.start.p0(i64 32, ptr %228) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %229) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %229) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %228, ptr noundef @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %229)
          to label %2082 unwind label %2087

2082:                                             ; preds = %2081
  call void @llvm.lifetime.start.p0(i64 32, ptr %230) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %231) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %230, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %231)
          to label %2083 unwind label %2091

2083:                                             ; preds = %2082
  call void @llvm.lifetime.start.p0(i64 32, ptr %232) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %233) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %233) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %232, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %233)
          to label %2084 unwind label %2095

2084:                                             ; preds = %2083
  call void @llvm.lifetime.start.p0(i64 32, ptr %234) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %235) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %235) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %234, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %235)
          to label %2085 unwind label %2099

2085:                                             ; preds = %2084
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %228, ptr noundef nonnull align 8 dereferenceable(32) %230, ptr noundef nonnull align 8 dereferenceable(32) %232, ptr noundef nonnull align 8 dereferenceable(32) %234, i32 noundef 35) #11
          to label %2086 unwind label %2103

2086:                                             ; preds = %2085
  unreachable

2087:                                             ; preds = %2081
  %2088 = landingpad { ptr, i32 }
          cleanup
  %2089 = extractvalue { ptr, i32 } %2088, 0
  store ptr %2089, ptr %6, align 8
  %2090 = extractvalue { ptr, i32 } %2088, 1
  store i32 %2090, ptr %7, align 4
  br label %2110

2091:                                             ; preds = %2082
  %2092 = landingpad { ptr, i32 }
          cleanup
  %2093 = extractvalue { ptr, i32 } %2092, 0
  store ptr %2093, ptr %6, align 8
  %2094 = extractvalue { ptr, i32 } %2092, 1
  store i32 %2094, ptr %7, align 4
  br label %2109

2095:                                             ; preds = %2083
  %2096 = landingpad { ptr, i32 }
          cleanup
  %2097 = extractvalue { ptr, i32 } %2096, 0
  store ptr %2097, ptr %6, align 8
  %2098 = extractvalue { ptr, i32 } %2096, 1
  store i32 %2098, ptr %7, align 4
  br label %2108

2099:                                             ; preds = %2084
  %2100 = landingpad { ptr, i32 }
          cleanup
  %2101 = extractvalue { ptr, i32 } %2100, 0
  store ptr %2101, ptr %6, align 8
  %2102 = extractvalue { ptr, i32 } %2100, 1
  store i32 %2102, ptr %7, align 4
  br label %2107

2103:                                             ; preds = %2085
  %2104 = landingpad { ptr, i32 }
          cleanup
  %2105 = extractvalue { ptr, i32 } %2104, 0
  store ptr %2105, ptr %6, align 8
  %2106 = extractvalue { ptr, i32 } %2104, 1
  store i32 %2106, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #10
  br label %2107

2107:                                             ; preds = %2103, %2099
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %235) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %235) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %234) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #10
  br label %2108

2108:                                             ; preds = %2107, %2095
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %233) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %233) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %232) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #10
  br label %2109

2109:                                             ; preds = %2108, %2091
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %231) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %230) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #10
  br label %2110

2110:                                             ; preds = %2109, %2087
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %229) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %229) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %228) #10
  br label %2425

2111:                                             ; preds = %2076
  %2112 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi0EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr %236) #10
  store i32 1, ptr %236, align 4, !tbaa !14
  %2113 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %2112, ptr noundef nonnull align 4 dereferenceable(4) %236)
  %2114 = zext i1 %2113 to i32
  %2115 = icmp eq i32 %2114, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #10
  br i1 %2115, label %2116, label %2146

2116:                                             ; preds = %2111
  call void @llvm.lifetime.start.p0(i64 32, ptr %237) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %238) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %238) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %237, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %238)
          to label %2117 unwind label %2122

2117:                                             ; preds = %2116
  call void @llvm.lifetime.start.p0(i64 32, ptr %239) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %240) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %240) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %239, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %240)
          to label %2118 unwind label %2126

2118:                                             ; preds = %2117
  call void @llvm.lifetime.start.p0(i64 32, ptr %241) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %242) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %242) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %241, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %242)
          to label %2119 unwind label %2130

2119:                                             ; preds = %2118
  call void @llvm.lifetime.start.p0(i64 32, ptr %243) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %244) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %244) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %243, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %244)
          to label %2120 unwind label %2134

2120:                                             ; preds = %2119
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %237, ptr noundef nonnull align 8 dereferenceable(32) %239, ptr noundef nonnull align 8 dereferenceable(32) %241, ptr noundef nonnull align 8 dereferenceable(32) %243, i32 noundef 37) #11
          to label %2121 unwind label %2138

2121:                                             ; preds = %2120
  unreachable

2122:                                             ; preds = %2116
  %2123 = landingpad { ptr, i32 }
          cleanup
  %2124 = extractvalue { ptr, i32 } %2123, 0
  store ptr %2124, ptr %6, align 8
  %2125 = extractvalue { ptr, i32 } %2123, 1
  store i32 %2125, ptr %7, align 4
  br label %2145

2126:                                             ; preds = %2117
  %2127 = landingpad { ptr, i32 }
          cleanup
  %2128 = extractvalue { ptr, i32 } %2127, 0
  store ptr %2128, ptr %6, align 8
  %2129 = extractvalue { ptr, i32 } %2127, 1
  store i32 %2129, ptr %7, align 4
  br label %2144

2130:                                             ; preds = %2118
  %2131 = landingpad { ptr, i32 }
          cleanup
  %2132 = extractvalue { ptr, i32 } %2131, 0
  store ptr %2132, ptr %6, align 8
  %2133 = extractvalue { ptr, i32 } %2131, 1
  store i32 %2133, ptr %7, align 4
  br label %2143

2134:                                             ; preds = %2119
  %2135 = landingpad { ptr, i32 }
          cleanup
  %2136 = extractvalue { ptr, i32 } %2135, 0
  store ptr %2136, ptr %6, align 8
  %2137 = extractvalue { ptr, i32 } %2135, 1
  store i32 %2137, ptr %7, align 4
  br label %2142

2138:                                             ; preds = %2120
  %2139 = landingpad { ptr, i32 }
          cleanup
  %2140 = extractvalue { ptr, i32 } %2139, 0
  store ptr %2140, ptr %6, align 8
  %2141 = extractvalue { ptr, i32 } %2139, 1
  store i32 %2141, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #10
  br label %2142

2142:                                             ; preds = %2138, %2134
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %244) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %244) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %243) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #10
  br label %2143

2143:                                             ; preds = %2142, %2130
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %242) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %242) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %241) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %239) #10
  br label %2144

2144:                                             ; preds = %2143, %2126
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %240) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %240) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %239) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #10
  br label %2145

2145:                                             ; preds = %2144, %2122
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %238) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %238) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %237) #10
  br label %2425

2146:                                             ; preds = %2111
  %2147 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi1EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr %245) #10
  store i32 2, ptr %245, align 4, !tbaa !14
  %2148 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %2147, ptr noundef nonnull align 4 dereferenceable(4) %245)
  %2149 = zext i1 %2148 to i32
  %2150 = icmp eq i32 %2149, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #10
  br i1 %2150, label %2151, label %2181

2151:                                             ; preds = %2146
  call void @llvm.lifetime.start.p0(i64 32, ptr %246) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %247) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %246, ptr noundef @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %247)
          to label %2152 unwind label %2157

2152:                                             ; preds = %2151
  call void @llvm.lifetime.start.p0(i64 32, ptr %248) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %249) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %249) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %248, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %249)
          to label %2153 unwind label %2161

2153:                                             ; preds = %2152
  call void @llvm.lifetime.start.p0(i64 32, ptr %250) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %251) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %251) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %250, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %251)
          to label %2154 unwind label %2165

2154:                                             ; preds = %2153
  call void @llvm.lifetime.start.p0(i64 32, ptr %252) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %253) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %253) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %252, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %253)
          to label %2155 unwind label %2169

2155:                                             ; preds = %2154
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %246, ptr noundef nonnull align 8 dereferenceable(32) %248, ptr noundef nonnull align 8 dereferenceable(32) %250, ptr noundef nonnull align 8 dereferenceable(32) %252, i32 noundef 37) #11
          to label %2156 unwind label %2173

2156:                                             ; preds = %2155
  unreachable

2157:                                             ; preds = %2151
  %2158 = landingpad { ptr, i32 }
          cleanup
  %2159 = extractvalue { ptr, i32 } %2158, 0
  store ptr %2159, ptr %6, align 8
  %2160 = extractvalue { ptr, i32 } %2158, 1
  store i32 %2160, ptr %7, align 4
  br label %2180

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

2165:                                             ; preds = %2153
  %2166 = landingpad { ptr, i32 }
          cleanup
  %2167 = extractvalue { ptr, i32 } %2166, 0
  store ptr %2167, ptr %6, align 8
  %2168 = extractvalue { ptr, i32 } %2166, 1
  store i32 %2168, ptr %7, align 4
  br label %2178

2169:                                             ; preds = %2154
  %2170 = landingpad { ptr, i32 }
          cleanup
  %2171 = extractvalue { ptr, i32 } %2170, 0
  store ptr %2171, ptr %6, align 8
  %2172 = extractvalue { ptr, i32 } %2170, 1
  store i32 %2172, ptr %7, align 4
  br label %2177

2173:                                             ; preds = %2155
  %2174 = landingpad { ptr, i32 }
          cleanup
  %2175 = extractvalue { ptr, i32 } %2174, 0
  store ptr %2175, ptr %6, align 8
  %2176 = extractvalue { ptr, i32 } %2174, 1
  store i32 %2176, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #10
  br label %2177

2177:                                             ; preds = %2173, %2169
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %253) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %253) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %252) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #10
  br label %2178

2178:                                             ; preds = %2177, %2165
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %251) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %251) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %250) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #10
  br label %2179

2179:                                             ; preds = %2178, %2161
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %249) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %249) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %248) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #10
  br label %2180

2180:                                             ; preds = %2179, %2157
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %247) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %246) #10
  br label %2425

2181:                                             ; preds = %2146
  %2182 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi2EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #10
  store i32 3, ptr %254, align 4, !tbaa !14
  %2183 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %2182, ptr noundef nonnull align 4 dereferenceable(4) %254)
  %2184 = zext i1 %2183 to i32
  %2185 = icmp eq i32 %2184, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #10
  br i1 %2185, label %2186, label %2216

2186:                                             ; preds = %2181
  call void @llvm.lifetime.start.p0(i64 32, ptr %255) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %256) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %256) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %255, ptr noundef @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %256)
          to label %2187 unwind label %2192

2187:                                             ; preds = %2186
  call void @llvm.lifetime.start.p0(i64 32, ptr %257) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %258) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %258) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %257, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %258)
          to label %2188 unwind label %2196

2188:                                             ; preds = %2187
  call void @llvm.lifetime.start.p0(i64 32, ptr %259) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %260) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %260)
          to label %2189 unwind label %2200

2189:                                             ; preds = %2188
  call void @llvm.lifetime.start.p0(i64 32, ptr %261) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %262) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %262) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %261, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %262)
          to label %2190 unwind label %2204

2190:                                             ; preds = %2189
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %255, ptr noundef nonnull align 8 dereferenceable(32) %257, ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef nonnull align 8 dereferenceable(32) %261, i32 noundef 37) #11
          to label %2191 unwind label %2208

2191:                                             ; preds = %2190
  unreachable

2192:                                             ; preds = %2186
  %2193 = landingpad { ptr, i32 }
          cleanup
  %2194 = extractvalue { ptr, i32 } %2193, 0
  store ptr %2194, ptr %6, align 8
  %2195 = extractvalue { ptr, i32 } %2193, 1
  store i32 %2195, ptr %7, align 4
  br label %2215

2196:                                             ; preds = %2187
  %2197 = landingpad { ptr, i32 }
          cleanup
  %2198 = extractvalue { ptr, i32 } %2197, 0
  store ptr %2198, ptr %6, align 8
  %2199 = extractvalue { ptr, i32 } %2197, 1
  store i32 %2199, ptr %7, align 4
  br label %2214

2200:                                             ; preds = %2188
  %2201 = landingpad { ptr, i32 }
          cleanup
  %2202 = extractvalue { ptr, i32 } %2201, 0
  store ptr %2202, ptr %6, align 8
  %2203 = extractvalue { ptr, i32 } %2201, 1
  store i32 %2203, ptr %7, align 4
  br label %2213

2204:                                             ; preds = %2189
  %2205 = landingpad { ptr, i32 }
          cleanup
  %2206 = extractvalue { ptr, i32 } %2205, 0
  store ptr %2206, ptr %6, align 8
  %2207 = extractvalue { ptr, i32 } %2205, 1
  store i32 %2207, ptr %7, align 4
  br label %2212

2208:                                             ; preds = %2190
  %2209 = landingpad { ptr, i32 }
          cleanup
  %2210 = extractvalue { ptr, i32 } %2209, 0
  store ptr %2210, ptr %6, align 8
  %2211 = extractvalue { ptr, i32 } %2209, 1
  store i32 %2211, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %261) #10
  br label %2212

2212:                                             ; preds = %2208, %2204
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %262) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %262) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %261) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %259) #10
  br label %2213

2213:                                             ; preds = %2212, %2200
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %260) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %259) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %257) #10
  br label %2214

2214:                                             ; preds = %2213, %2196
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %258) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %258) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %257) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #10
  br label %2215

2215:                                             ; preds = %2214, %2192
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %256) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %256) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %255) #10
  br label %2425

2216:                                             ; preds = %2181
  %2217 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi3EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr %263) #10
  store i32 4, ptr %263, align 4, !tbaa !14
  %2218 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %2217, ptr noundef nonnull align 4 dereferenceable(4) %263)
  %2219 = zext i1 %2218 to i32
  %2220 = icmp eq i32 %2219, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %263) #10
  br i1 %2220, label %2221, label %2251

2221:                                             ; preds = %2216
  call void @llvm.lifetime.start.p0(i64 32, ptr %264) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %265) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %265) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %264, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %265)
          to label %2222 unwind label %2227

2222:                                             ; preds = %2221
  call void @llvm.lifetime.start.p0(i64 32, ptr %266) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %267) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %267) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %266, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %267)
          to label %2223 unwind label %2231

2223:                                             ; preds = %2222
  call void @llvm.lifetime.start.p0(i64 32, ptr %268) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %269) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %269) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %268, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %269)
          to label %2224 unwind label %2235

2224:                                             ; preds = %2223
  call void @llvm.lifetime.start.p0(i64 32, ptr %270) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %271) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %271) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %270, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %271)
          to label %2225 unwind label %2239

2225:                                             ; preds = %2224
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %264, ptr noundef nonnull align 8 dereferenceable(32) %266, ptr noundef nonnull align 8 dereferenceable(32) %268, ptr noundef nonnull align 8 dereferenceable(32) %270, i32 noundef 38) #11
          to label %2226 unwind label %2243

2226:                                             ; preds = %2225
  unreachable

2227:                                             ; preds = %2221
  %2228 = landingpad { ptr, i32 }
          cleanup
  %2229 = extractvalue { ptr, i32 } %2228, 0
  store ptr %2229, ptr %6, align 8
  %2230 = extractvalue { ptr, i32 } %2228, 1
  store i32 %2230, ptr %7, align 4
  br label %2250

2231:                                             ; preds = %2222
  %2232 = landingpad { ptr, i32 }
          cleanup
  %2233 = extractvalue { ptr, i32 } %2232, 0
  store ptr %2233, ptr %6, align 8
  %2234 = extractvalue { ptr, i32 } %2232, 1
  store i32 %2234, ptr %7, align 4
  br label %2249

2235:                                             ; preds = %2223
  %2236 = landingpad { ptr, i32 }
          cleanup
  %2237 = extractvalue { ptr, i32 } %2236, 0
  store ptr %2237, ptr %6, align 8
  %2238 = extractvalue { ptr, i32 } %2236, 1
  store i32 %2238, ptr %7, align 4
  br label %2248

2239:                                             ; preds = %2224
  %2240 = landingpad { ptr, i32 }
          cleanup
  %2241 = extractvalue { ptr, i32 } %2240, 0
  store ptr %2241, ptr %6, align 8
  %2242 = extractvalue { ptr, i32 } %2240, 1
  store i32 %2242, ptr %7, align 4
  br label %2247

2243:                                             ; preds = %2225
  %2244 = landingpad { ptr, i32 }
          cleanup
  %2245 = extractvalue { ptr, i32 } %2244, 0
  store ptr %2245, ptr %6, align 8
  %2246 = extractvalue { ptr, i32 } %2244, 1
  store i32 %2246, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %270) #10
  br label %2247

2247:                                             ; preds = %2243, %2239
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %271) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %271) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %270) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %268) #10
  br label %2248

2248:                                             ; preds = %2247, %2235
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %269) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %269) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %268) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %266) #10
  br label %2249

2249:                                             ; preds = %2248, %2231
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %267) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %267) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %266) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %264) #10
  br label %2250

2250:                                             ; preds = %2249, %2227
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %265) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %265) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %264) #10
  br label %2425

2251:                                             ; preds = %2216
  %2252 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi4EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr %272) #10
  store i32 5, ptr %272, align 4, !tbaa !14
  %2253 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %2252, ptr noundef nonnull align 4 dereferenceable(4) %272)
  %2254 = zext i1 %2253 to i32
  %2255 = icmp eq i32 %2254, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %272) #10
  br i1 %2255, label %2256, label %2286

2256:                                             ; preds = %2251
  call void @llvm.lifetime.start.p0(i64 32, ptr %273) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %274) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %274) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %273, ptr noundef @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %274)
          to label %2257 unwind label %2262

2257:                                             ; preds = %2256
  call void @llvm.lifetime.start.p0(i64 32, ptr %275) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %276) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %276) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %275, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %276)
          to label %2258 unwind label %2266

2258:                                             ; preds = %2257
  call void @llvm.lifetime.start.p0(i64 32, ptr %277) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %278) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %278) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %277, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %278)
          to label %2259 unwind label %2270

2259:                                             ; preds = %2258
  call void @llvm.lifetime.start.p0(i64 32, ptr %279) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %280) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %280) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %279, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %280)
          to label %2260 unwind label %2274

2260:                                             ; preds = %2259
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %273, ptr noundef nonnull align 8 dereferenceable(32) %275, ptr noundef nonnull align 8 dereferenceable(32) %277, ptr noundef nonnull align 8 dereferenceable(32) %279, i32 noundef 38) #11
          to label %2261 unwind label %2278

2261:                                             ; preds = %2260
  unreachable

2262:                                             ; preds = %2256
  %2263 = landingpad { ptr, i32 }
          cleanup
  %2264 = extractvalue { ptr, i32 } %2263, 0
  store ptr %2264, ptr %6, align 8
  %2265 = extractvalue { ptr, i32 } %2263, 1
  store i32 %2265, ptr %7, align 4
  br label %2285

2266:                                             ; preds = %2257
  %2267 = landingpad { ptr, i32 }
          cleanup
  %2268 = extractvalue { ptr, i32 } %2267, 0
  store ptr %2268, ptr %6, align 8
  %2269 = extractvalue { ptr, i32 } %2267, 1
  store i32 %2269, ptr %7, align 4
  br label %2284

2270:                                             ; preds = %2258
  %2271 = landingpad { ptr, i32 }
          cleanup
  %2272 = extractvalue { ptr, i32 } %2271, 0
  store ptr %2272, ptr %6, align 8
  %2273 = extractvalue { ptr, i32 } %2271, 1
  store i32 %2273, ptr %7, align 4
  br label %2283

2274:                                             ; preds = %2259
  %2275 = landingpad { ptr, i32 }
          cleanup
  %2276 = extractvalue { ptr, i32 } %2275, 0
  store ptr %2276, ptr %6, align 8
  %2277 = extractvalue { ptr, i32 } %2275, 1
  store i32 %2277, ptr %7, align 4
  br label %2282

2278:                                             ; preds = %2260
  %2279 = landingpad { ptr, i32 }
          cleanup
  %2280 = extractvalue { ptr, i32 } %2279, 0
  store ptr %2280, ptr %6, align 8
  %2281 = extractvalue { ptr, i32 } %2279, 1
  store i32 %2281, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %279) #10
  br label %2282

2282:                                             ; preds = %2278, %2274
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %280) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %280) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %279) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #10
  br label %2283

2283:                                             ; preds = %2282, %2270
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %278) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %278) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %277) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #10
  br label %2284

2284:                                             ; preds = %2283, %2266
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %276) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %276) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %275) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %273) #10
  br label %2285

2285:                                             ; preds = %2284, %2262
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %274) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %274) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %273) #10
  br label %2425

2286:                                             ; preds = %2251
  %2287 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi5EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr %281) #10
  store i32 6, ptr %281, align 4, !tbaa !14
  %2288 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %2287, ptr noundef nonnull align 4 dereferenceable(4) %281)
  %2289 = zext i1 %2288 to i32
  %2290 = icmp eq i32 %2289, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %281) #10
  br i1 %2290, label %2291, label %2321

2291:                                             ; preds = %2286
  call void @llvm.lifetime.start.p0(i64 32, ptr %282) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %283) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %283) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %282, ptr noundef @.str.33, ptr noundef nonnull align 1 dereferenceable(1) %283)
          to label %2292 unwind label %2297

2292:                                             ; preds = %2291
  call void @llvm.lifetime.start.p0(i64 32, ptr %284) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %285) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %285) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %285)
          to label %2293 unwind label %2301

2293:                                             ; preds = %2292
  call void @llvm.lifetime.start.p0(i64 32, ptr %286) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %287) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %287) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %286, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %287)
          to label %2294 unwind label %2305

2294:                                             ; preds = %2293
  call void @llvm.lifetime.start.p0(i64 32, ptr %288) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %289) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %289) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %288, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %289)
          to label %2295 unwind label %2309

2295:                                             ; preds = %2294
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %282, ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef nonnull align 8 dereferenceable(32) %286, ptr noundef nonnull align 8 dereferenceable(32) %288, i32 noundef 38) #11
          to label %2296 unwind label %2313

2296:                                             ; preds = %2295
  unreachable

2297:                                             ; preds = %2291
  %2298 = landingpad { ptr, i32 }
          cleanup
  %2299 = extractvalue { ptr, i32 } %2298, 0
  store ptr %2299, ptr %6, align 8
  %2300 = extractvalue { ptr, i32 } %2298, 1
  store i32 %2300, ptr %7, align 4
  br label %2320

2301:                                             ; preds = %2292
  %2302 = landingpad { ptr, i32 }
          cleanup
  %2303 = extractvalue { ptr, i32 } %2302, 0
  store ptr %2303, ptr %6, align 8
  %2304 = extractvalue { ptr, i32 } %2302, 1
  store i32 %2304, ptr %7, align 4
  br label %2319

2305:                                             ; preds = %2293
  %2306 = landingpad { ptr, i32 }
          cleanup
  %2307 = extractvalue { ptr, i32 } %2306, 0
  store ptr %2307, ptr %6, align 8
  %2308 = extractvalue { ptr, i32 } %2306, 1
  store i32 %2308, ptr %7, align 4
  br label %2318

2309:                                             ; preds = %2294
  %2310 = landingpad { ptr, i32 }
          cleanup
  %2311 = extractvalue { ptr, i32 } %2310, 0
  store ptr %2311, ptr %6, align 8
  %2312 = extractvalue { ptr, i32 } %2310, 1
  store i32 %2312, ptr %7, align 4
  br label %2317

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

2317:                                             ; preds = %2313, %2309
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %289) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %289) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %288) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %286) #10
  br label %2318

2318:                                             ; preds = %2317, %2305
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %287) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %287) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %286) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #10
  br label %2319

2319:                                             ; preds = %2318, %2301
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %285) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %285) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %284) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %282) #10
  br label %2320

2320:                                             ; preds = %2319, %2297
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %283) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %283) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %282) #10
  br label %2425

2321:                                             ; preds = %2286
  %2322 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp3getILi0EiLi2ELi3EEERNS_14numarray_stackIT0_XT2_EEERNS_12matrix_stackIS2_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 12, ptr %290) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %291) #10
  store i32 1, ptr %291, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %292) #10
  store i32 2, ptr %292, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %293) #10
  store i32 3, ptr %293, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIiLi3EEC2ERKiS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %290, ptr noundef nonnull align 4 dereferenceable(4) %291, ptr noundef nonnull align 4 dereferenceable(4) %292, ptr noundef nonnull align 4 dereferenceable(4) %293)
  %2323 = call noundef zeroext i1 @_ZN3cgp8is_equalIiLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %2322, ptr noundef nonnull align 4 dereferenceable(12) %290)
  call void @llvm.lifetime.start.p0(i64 12, ptr %294) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %295) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %296) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #10
  br i1 %2323, label %2324, label %2327

2324:                                             ; preds = %2321
  %2325 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp3getILi1EiLi2ELi3EEERNS_14numarray_stackIT0_XT2_EEERNS_12matrix_stackIS2_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  store i32 4, ptr %295, align 4, !tbaa !14
  store i32 5, ptr %296, align 4, !tbaa !14
  store i32 6, ptr %297, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIiLi3EEC2ERKiS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %294, ptr noundef nonnull align 4 dereferenceable(4) %295, ptr noundef nonnull align 4 dereferenceable(4) %296, ptr noundef nonnull align 4 dereferenceable(4) %297)
  %2326 = call noundef zeroext i1 @_ZN3cgp8is_equalIiLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %2325, ptr noundef nonnull align 4 dereferenceable(12) %294)
  br label %2327

2327:                                             ; preds = %2324, %2321
  %2328 = phi i1 [ false, %2321 ], [ %2326, %2324 ]
  %2329 = zext i1 %2328 to i32
  %2330 = icmp eq i32 %2329, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %296) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %295) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %294) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %293) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %292) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %291) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %290) #10
  br i1 %2330, label %2331, label %2361

2331:                                             ; preds = %2327
  call void @llvm.lifetime.start.p0(i64 32, ptr %298) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %299) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %299) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %298, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %299)
          to label %2332 unwind label %2337

2332:                                             ; preds = %2331
  call void @llvm.lifetime.start.p0(i64 32, ptr %300) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %301) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %301) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %300, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %301)
          to label %2333 unwind label %2341

2333:                                             ; preds = %2332
  call void @llvm.lifetime.start.p0(i64 32, ptr %302) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %303) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %303) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %302, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %303)
          to label %2334 unwind label %2345

2334:                                             ; preds = %2333
  call void @llvm.lifetime.start.p0(i64 32, ptr %304) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %305) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %305) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %304, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %305)
          to label %2335 unwind label %2349

2335:                                             ; preds = %2334
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %298, ptr noundef nonnull align 8 dereferenceable(32) %300, ptr noundef nonnull align 8 dereferenceable(32) %302, ptr noundef nonnull align 8 dereferenceable(32) %304, i32 noundef 40) #11
          to label %2336 unwind label %2353

2336:                                             ; preds = %2335
  unreachable

2337:                                             ; preds = %2331
  %2338 = landingpad { ptr, i32 }
          cleanup
  %2339 = extractvalue { ptr, i32 } %2338, 0
  store ptr %2339, ptr %6, align 8
  %2340 = extractvalue { ptr, i32 } %2338, 1
  store i32 %2340, ptr %7, align 4
  br label %2360

2341:                                             ; preds = %2332
  %2342 = landingpad { ptr, i32 }
          cleanup
  %2343 = extractvalue { ptr, i32 } %2342, 0
  store ptr %2343, ptr %6, align 8
  %2344 = extractvalue { ptr, i32 } %2342, 1
  store i32 %2344, ptr %7, align 4
  br label %2359

2345:                                             ; preds = %2333
  %2346 = landingpad { ptr, i32 }
          cleanup
  %2347 = extractvalue { ptr, i32 } %2346, 0
  store ptr %2347, ptr %6, align 8
  %2348 = extractvalue { ptr, i32 } %2346, 1
  store i32 %2348, ptr %7, align 4
  br label %2358

2349:                                             ; preds = %2334
  %2350 = landingpad { ptr, i32 }
          cleanup
  %2351 = extractvalue { ptr, i32 } %2350, 0
  store ptr %2351, ptr %6, align 8
  %2352 = extractvalue { ptr, i32 } %2350, 1
  store i32 %2352, ptr %7, align 4
  br label %2357

2353:                                             ; preds = %2335
  %2354 = landingpad { ptr, i32 }
          cleanup
  %2355 = extractvalue { ptr, i32 } %2354, 0
  store ptr %2355, ptr %6, align 8
  %2356 = extractvalue { ptr, i32 } %2354, 1
  store i32 %2356, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %304) #10
  br label %2357

2357:                                             ; preds = %2353, %2349
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %305) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %305) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %304) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %302) #10
  br label %2358

2358:                                             ; preds = %2357, %2345
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %303) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %303) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %302) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %300) #10
  br label %2359

2359:                                             ; preds = %2358, %2341
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %301) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %301) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %300) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %298) #10
  br label %2360

2360:                                             ; preds = %2359, %2337
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %299) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %299) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %298) #10
  br label %2425

2361:                                             ; preds = %2327
  call void @llvm.lifetime.start.p0(i64 32, ptr %306) #10
  call void @_ZN3cgp8type_strIiLi2ELi3EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_12matrix_stackIT_XT0_EXT1_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %306, ptr noundef nonnull align 4 dereferenceable(24) %1)
  %2362 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %306, ptr noundef @.str.35)
          to label %2363 unwind label %2372

2363:                                             ; preds = %2361
  %2364 = zext i1 %2362 to i32
  %2365 = icmp eq i32 %2364, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %306) #10
  br i1 %2365, label %2366, label %2400

2366:                                             ; preds = %2363
  call void @llvm.lifetime.start.p0(i64 32, ptr %307) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %308) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %308) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %307, ptr noundef @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %308)
          to label %2367 unwind label %2376

2367:                                             ; preds = %2366
  call void @llvm.lifetime.start.p0(i64 32, ptr %309) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %310) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %310) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %309, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %310)
          to label %2368 unwind label %2380

2368:                                             ; preds = %2367
  call void @llvm.lifetime.start.p0(i64 32, ptr %311) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %312) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %312) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %311, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %312)
          to label %2369 unwind label %2384

2369:                                             ; preds = %2368
  call void @llvm.lifetime.start.p0(i64 32, ptr %313) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %314) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %314) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %313, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %314)
          to label %2370 unwind label %2388

2370:                                             ; preds = %2369
  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 42) #11
          to label %2371 unwind label %2392

2371:                                             ; preds = %2370
  unreachable

2372:                                             ; preds = %2361
  %2373 = landingpad { ptr, i32 }
          cleanup
  %2374 = extractvalue { ptr, i32 } %2373, 0
  store ptr %2374, ptr %6, align 8
  %2375 = extractvalue { ptr, i32 } %2373, 1
  store i32 %2375, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %306) #10
  br label %2425

2376:                                             ; preds = %2366
  %2377 = landingpad { ptr, i32 }
          cleanup
  %2378 = extractvalue { ptr, i32 } %2377, 0
  store ptr %2378, ptr %6, align 8
  %2379 = extractvalue { ptr, i32 } %2377, 1
  store i32 %2379, ptr %7, align 4
  br label %2399

2380:                                             ; preds = %2367
  %2381 = landingpad { ptr, i32 }
          cleanup
  %2382 = extractvalue { ptr, i32 } %2381, 0
  store ptr %2382, ptr %6, align 8
  %2383 = extractvalue { ptr, i32 } %2381, 1
  store i32 %2383, ptr %7, align 4
  br label %2398

2384:                                             ; preds = %2368
  %2385 = landingpad { ptr, i32 }
          cleanup
  %2386 = extractvalue { ptr, i32 } %2385, 0
  store ptr %2386, ptr %6, align 8
  %2387 = extractvalue { ptr, i32 } %2385, 1
  store i32 %2387, ptr %7, align 4
  br label %2397

2388:                                             ; preds = %2369
  %2389 = landingpad { ptr, i32 }
          cleanup
  %2390 = extractvalue { ptr, i32 } %2389, 0
  store ptr %2390, ptr %6, align 8
  %2391 = extractvalue { ptr, i32 } %2389, 1
  store i32 %2391, ptr %7, align 4
  br label %2396

2392:                                             ; preds = %2370
  %2393 = landingpad { ptr, i32 }
          cleanup
  %2394 = extractvalue { ptr, i32 } %2393, 0
  store ptr %2394, ptr %6, align 8
  %2395 = extractvalue { ptr, i32 } %2393, 1
  store i32 %2395, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #10
  br label %2396

2396:                                             ; preds = %2392, %2388
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %314) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %314) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %313) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %311) #10
  br label %2397

2397:                                             ; preds = %2396, %2384
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %312) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %312) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %311) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %309) #10
  br label %2398

2398:                                             ; preds = %2397, %2380
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %310) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %310) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %309) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #10
  br label %2399

2399:                                             ; preds = %2398, %2376
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %308) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %308) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %307) #10
  br label %2425

2400:                                             ; preds = %2363
  call void @llvm.lifetime.end.p0(i64 24, ptr %1) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %315) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %316) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %317) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %317, ptr align 4 @constinit.37, i64 24, i1 false), !tbaa.struct !5
  %2401 = getelementptr inbounds %"class.std::initializer_list", ptr %316, i32 0, i32 0
  store ptr %317, ptr %2401, align 8, !tbaa !9
  %2402 = getelementptr inbounds %"class.std::initializer_list", ptr %316, i32 0, i32 1
  store i64 6, ptr %2402, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %315, ptr noundef nonnull align 8 dereferenceable(16) %316)
  call void @llvm.lifetime.end.p0(i64 24, ptr %317) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %316) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %318) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %319) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %320) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %320, ptr align 4 @constinit.38, i64 24, i1 false), !tbaa.struct !5
  %2403 = getelementptr inbounds %"class.std::initializer_list", ptr %319, i32 0, i32 0
  store ptr %320, ptr %2403, align 8, !tbaa !9
  %2404 = getelementptr inbounds %"class.std::initializer_list", ptr %319, i32 0, i32 1
  store i64 6, ptr %2404, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi3ELi2EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %318, ptr noundef nonnull align 8 dereferenceable(16) %319)
  call void @llvm.lifetime.end.p0(i64 24, ptr %320) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %319) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %321) #10
  %2405 = call { i64, i64 } @_ZN3cgpmlIiLi2ELi3ELi2EEENS_12matrix_stackIT_XT0_EXT2_EEERKNS1_IS2_XT0_EXT1_EEERKNS1_IS2_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %315, ptr noundef nonnull align 4 dereferenceable(24) %318)
  %2406 = getelementptr inbounds %"struct.cgp::matrix_stack.4", ptr %321, i32 0, i32 0
  %2407 = getelementptr inbounds { i64, i64 }, ptr %2406, i32 0, i32 0
  %2408 = extractvalue { i64, i64 } %2405, 0
  store i64 %2408, ptr %2407, align 4
  %2409 = getelementptr inbounds { i64, i64 }, ptr %2406, i32 0, i32 1
  %2410 = extractvalue { i64, i64 } %2405, 1
  store i64 %2410, ptr %2409, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr %322) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %323) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %324) #10
  store i32 7, ptr %324, align 4, !tbaa !14
  %2411 = getelementptr inbounds i32, ptr %324, i64 1
  store i32 21, ptr %2411, align 4, !tbaa !14
  %2412 = getelementptr inbounds i32, ptr %324, i64 2
  store i32 28, ptr %2412, align 4, !tbaa !14
  %2413 = getelementptr inbounds i32, ptr %324, i64 3
  store i32 48, ptr %2413, align 4, !tbaa !14
  %2414 = getelementptr inbounds %"class.std::initializer_list", ptr %323, i32 0, i32 0
  store ptr %324, ptr %2414, align 8, !tbaa !9
  %2415 = getelementptr inbounds %"class.std::initializer_list", ptr %323, i32 0, i32 1
  store i64 4, ptr %2415, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi2EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(16) %322, ptr noundef nonnull align 8 dereferenceable(16) %323)
  %2416 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %321, ptr noundef nonnull align 4 dereferenceable(16) %322)
  %2417 = zext i1 %2416 to i32
  %2418 = icmp eq i32 %2417, 0
  call void @llvm.lifetime.end.p0(i64 16, ptr %324) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %323) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %322) #10
  br i1 %2418, label %2419, label %2450

2419:                                             ; preds = %2400
  call void @llvm.lifetime.start.p0(i64 32, ptr %325) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %326) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %326) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %325, ptr noundef @.str.39, ptr noundef nonnull align 1 dereferenceable(1) %326)
          to label %2420 unwind label %2426

2420:                                             ; preds = %2419
  call void @llvm.lifetime.start.p0(i64 32, ptr %327) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %328) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %328) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %327, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %328)
          to label %2421 unwind label %2430

2421:                                             ; preds = %2420
  call void @llvm.lifetime.start.p0(i64 32, ptr %329) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %330) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %329, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %330)
          to label %2422 unwind label %2434

2422:                                             ; preds = %2421
  call void @llvm.lifetime.start.p0(i64 32, ptr %331) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %332) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %332) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %331, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %332)
          to label %2423 unwind label %2438

2423:                                             ; preds = %2422
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %325, ptr noundef nonnull align 8 dereferenceable(32) %327, ptr noundef nonnull align 8 dereferenceable(32) %329, ptr noundef nonnull align 8 dereferenceable(32) %331, i32 noundef 51) #11
          to label %2424 unwind label %2442

2424:                                             ; preds = %2423
  unreachable

2425:                                             ; preds = %2399, %2372, %2360, %2320, %2285, %2250, %2215, %2180, %2145, %2110, %2075, %2040, %2005, %1970, %1935, %1900, %1860, %1820, %1783, %1746, %1709, %1672, %1635, %1598, %1561, %1524, %1487, %1450, %1413, %1376, %1340, %1304, %1268, %1232, %1196
  call void @llvm.lifetime.end.p0(i64 24, ptr %1) #10
  br label %4629

2426:                                             ; preds = %2419
  %2427 = landingpad { ptr, i32 }
          cleanup
  %2428 = extractvalue { ptr, i32 } %2427, 0
  store ptr %2428, ptr %6, align 8
  %2429 = extractvalue { ptr, i32 } %2427, 1
  store i32 %2429, ptr %7, align 4
  br label %2449

2430:                                             ; preds = %2420
  %2431 = landingpad { ptr, i32 }
          cleanup
  %2432 = extractvalue { ptr, i32 } %2431, 0
  store ptr %2432, ptr %6, align 8
  %2433 = extractvalue { ptr, i32 } %2431, 1
  store i32 %2433, ptr %7, align 4
  br label %2448

2434:                                             ; preds = %2421
  %2435 = landingpad { ptr, i32 }
          cleanup
  %2436 = extractvalue { ptr, i32 } %2435, 0
  store ptr %2436, ptr %6, align 8
  %2437 = extractvalue { ptr, i32 } %2435, 1
  store i32 %2437, ptr %7, align 4
  br label %2447

2438:                                             ; preds = %2422
  %2439 = landingpad { ptr, i32 }
          cleanup
  %2440 = extractvalue { ptr, i32 } %2439, 0
  store ptr %2440, ptr %6, align 8
  %2441 = extractvalue { ptr, i32 } %2439, 1
  store i32 %2441, ptr %7, align 4
  br label %2446

2442:                                             ; preds = %2423
  %2443 = landingpad { ptr, i32 }
          cleanup
  %2444 = extractvalue { ptr, i32 } %2443, 0
  store ptr %2444, ptr %6, align 8
  %2445 = extractvalue { ptr, i32 } %2443, 1
  store i32 %2445, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #10
  br label %2446

2446:                                             ; preds = %2442, %2438
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %332) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %332) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %331) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #10
  br label %2447

2447:                                             ; preds = %2446, %2434
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %330) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %329) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %327) #10
  br label %2448

2448:                                             ; preds = %2447, %2430
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %328) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %328) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %327) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %325) #10
  br label %2449

2449:                                             ; preds = %2448, %2426
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %326) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %326) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %325) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %321) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %318) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %315) #10
  br label %4629

2450:                                             ; preds = %2400
  call void @llvm.lifetime.end.p0(i64 16, ptr %321) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %318) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %315) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %333) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %334) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %335) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %335, ptr align 4 @constinit.40, i64 24, i1 false), !tbaa.struct !5
  %2451 = getelementptr inbounds %"class.std::initializer_list", ptr %334, i32 0, i32 0
  store ptr %335, ptr %2451, align 8, !tbaa !9
  %2452 = getelementptr inbounds %"class.std::initializer_list", ptr %334, i32 0, i32 1
  store i64 6, ptr %2452, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %333, ptr noundef nonnull align 8 dereferenceable(16) %334)
  call void @llvm.lifetime.end.p0(i64 24, ptr %335) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %334) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %336) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %337) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %338) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %338, ptr align 4 @constinit.41, i64 24, i1 false), !tbaa.struct !5
  %2453 = getelementptr inbounds %"class.std::initializer_list", ptr %337, i32 0, i32 0
  store ptr %338, ptr %2453, align 8, !tbaa !9
  %2454 = getelementptr inbounds %"class.std::initializer_list", ptr %337, i32 0, i32 1
  store i64 6, ptr %2454, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %336, ptr noundef nonnull align 8 dereferenceable(16) %337)
  call void @llvm.lifetime.end.p0(i64 24, ptr %338) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %337) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %339) #10
  call void @_ZN3cgp22multiply_componentwiseIiLi2ELi3EEENS_12matrix_stackIT_XT0_EXT1_EEERKS3_S5_(ptr dead_on_unwind writable sret(%"struct.cgp::matrix_stack") align 4 %339, ptr noundef nonnull align 4 dereferenceable(24) %333, ptr noundef nonnull align 4 dereferenceable(24) %336)
  call void @llvm.lifetime.start.p0(i64 24, ptr %340) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %341) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %342) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %342, ptr align 4 @constinit.42, i64 24, i1 false), !tbaa.struct !5
  %2455 = getelementptr inbounds %"class.std::initializer_list", ptr %341, i32 0, i32 0
  store ptr %342, ptr %2455, align 8, !tbaa !9
  %2456 = getelementptr inbounds %"class.std::initializer_list", ptr %341, i32 0, i32 1
  store i64 6, ptr %2456, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %340, ptr noundef nonnull align 8 dereferenceable(16) %341)
  %2457 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiLi2ELi3ELi2ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24) %339, ptr noundef nonnull align 4 dereferenceable(24) %340)
  %2458 = zext i1 %2457 to i32
  %2459 = icmp eq i32 %2458, 0
  call void @llvm.lifetime.end.p0(i64 24, ptr %342) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %341) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %340) #10
  br i1 %2459, label %2460, label %2490

2460:                                             ; preds = %2450
  call void @llvm.lifetime.start.p0(i64 32, ptr %343) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %344) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %344) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %343, ptr noundef @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %344)
          to label %2461 unwind label %2466

2461:                                             ; preds = %2460
  call void @llvm.lifetime.start.p0(i64 32, ptr %345) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %346) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %346) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %346)
          to label %2462 unwind label %2470

2462:                                             ; preds = %2461
  call void @llvm.lifetime.start.p0(i64 32, ptr %347) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %348) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %348) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %347, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %348)
          to label %2463 unwind label %2474

2463:                                             ; preds = %2462
  call void @llvm.lifetime.start.p0(i64 32, ptr %349) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %350) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %350) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %349, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %350)
          to label %2464 unwind label %2478

2464:                                             ; preds = %2463
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %343, ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef nonnull align 8 dereferenceable(32) %347, ptr noundef nonnull align 8 dereferenceable(32) %349, i32 noundef 61) #11
          to label %2465 unwind label %2482

2465:                                             ; preds = %2464
  unreachable

2466:                                             ; preds = %2460
  %2467 = landingpad { ptr, i32 }
          cleanup
  %2468 = extractvalue { ptr, i32 } %2467, 0
  store ptr %2468, ptr %6, align 8
  %2469 = extractvalue { ptr, i32 } %2467, 1
  store i32 %2469, ptr %7, align 4
  br label %2489

2470:                                             ; preds = %2461
  %2471 = landingpad { ptr, i32 }
          cleanup
  %2472 = extractvalue { ptr, i32 } %2471, 0
  store ptr %2472, ptr %6, align 8
  %2473 = extractvalue { ptr, i32 } %2471, 1
  store i32 %2473, ptr %7, align 4
  br label %2488

2474:                                             ; preds = %2462
  %2475 = landingpad { ptr, i32 }
          cleanup
  %2476 = extractvalue { ptr, i32 } %2475, 0
  store ptr %2476, ptr %6, align 8
  %2477 = extractvalue { ptr, i32 } %2475, 1
  store i32 %2477, ptr %7, align 4
  br label %2487

2478:                                             ; preds = %2463
  %2479 = landingpad { ptr, i32 }
          cleanup
  %2480 = extractvalue { ptr, i32 } %2479, 0
  store ptr %2480, ptr %6, align 8
  %2481 = extractvalue { ptr, i32 } %2479, 1
  store i32 %2481, ptr %7, align 4
  br label %2486

2482:                                             ; preds = %2464
  %2483 = landingpad { ptr, i32 }
          cleanup
  %2484 = extractvalue { ptr, i32 } %2483, 0
  store ptr %2484, ptr %6, align 8
  %2485 = extractvalue { ptr, i32 } %2483, 1
  store i32 %2485, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %349) #10
  br label %2486

2486:                                             ; preds = %2482, %2478
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %350) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %350) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %349) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %347) #10
  br label %2487

2487:                                             ; preds = %2486, %2474
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %348) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %348) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %347) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %345) #10
  br label %2488

2488:                                             ; preds = %2487, %2470
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %346) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %346) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %345) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %343) #10
  br label %2489

2489:                                             ; preds = %2488, %2466
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %344) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %344) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %343) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %339) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %336) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %333) #10
  br label %4629

2490:                                             ; preds = %2450
  call void @llvm.lifetime.end.p0(i64 24, ptr %339) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %336) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %333) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %351) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %352) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %353) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %353, ptr align 4 @constinit.44, i64 24, i1 false), !tbaa.struct !5
  %2491 = getelementptr inbounds %"class.std::initializer_list", ptr %352, i32 0, i32 0
  store ptr %353, ptr %2491, align 8, !tbaa !9
  %2492 = getelementptr inbounds %"class.std::initializer_list", ptr %352, i32 0, i32 1
  store i64 6, ptr %2492, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %351, ptr noundef nonnull align 8 dereferenceable(16) %352)
  call void @llvm.lifetime.end.p0(i64 24, ptr %353) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %352) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %354) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %355) #10
  store i32 5, ptr %355, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %356) #10
  store i32 -2, ptr %356, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %357) #10
  store i32 3, ptr %357, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIiLi3EEC2ERKiS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %354, ptr noundef nonnull align 4 dereferenceable(4) %355, ptr noundef nonnull align 4 dereferenceable(4) %356, ptr noundef nonnull align 4 dereferenceable(4) %357)
  call void @llvm.lifetime.end.p0(i64 4, ptr %357) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %356) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %355) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %358) #10
  %2493 = call i64 @_ZN3cgpmlIiLi2ELi3EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(24) %351, ptr noundef nonnull align 4 dereferenceable(12) %354)
  store i64 %2493, ptr %358, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %359) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %360) #10
  store i32 10, ptr %360, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %361) #10
  store i32 28, ptr %361, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIiLi2EEC2ERKiS3_(ptr noundef nonnull align 4 dereferenceable(8) %359, ptr noundef nonnull align 4 dereferenceable(4) %360, ptr noundef nonnull align 4 dereferenceable(4) %361)
  %2494 = call noundef zeroext i1 @_ZN3cgp8is_equalIiLi2EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(8) %358, ptr noundef nonnull align 4 dereferenceable(8) %359)
  %2495 = zext i1 %2494 to i32
  %2496 = icmp eq i32 %2495, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %361) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %360) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %359) #10
  br i1 %2496, label %2497, label %2527

2497:                                             ; preds = %2490
  call void @llvm.lifetime.start.p0(i64 32, ptr %362) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %363) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %363) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %362, ptr noundef @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %363)
          to label %2498 unwind label %2503

2498:                                             ; preds = %2497
  call void @llvm.lifetime.start.p0(i64 32, ptr %364) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %365) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %365) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %364, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %365)
          to label %2499 unwind label %2507

2499:                                             ; preds = %2498
  call void @llvm.lifetime.start.p0(i64 32, ptr %366) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %367) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %366, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %367)
          to label %2500 unwind label %2511

2500:                                             ; preds = %2499
  call void @llvm.lifetime.start.p0(i64 32, ptr %368) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %369) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %369) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %368, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %369)
          to label %2501 unwind label %2515

2501:                                             ; preds = %2500
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %362, ptr noundef nonnull align 8 dereferenceable(32) %364, ptr noundef nonnull align 8 dereferenceable(32) %366, ptr noundef nonnull align 8 dereferenceable(32) %368, i32 noundef 69) #11
          to label %2502 unwind label %2519

2502:                                             ; preds = %2501
  unreachable

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

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

2511:                                             ; preds = %2499
  %2512 = landingpad { ptr, i32 }
          cleanup
  %2513 = extractvalue { ptr, i32 } %2512, 0
  store ptr %2513, ptr %6, align 8
  %2514 = extractvalue { ptr, i32 } %2512, 1
  store i32 %2514, ptr %7, align 4
  br label %2524

2515:                                             ; preds = %2500
  %2516 = landingpad { ptr, i32 }
          cleanup
  %2517 = extractvalue { ptr, i32 } %2516, 0
  store ptr %2517, ptr %6, align 8
  %2518 = extractvalue { ptr, i32 } %2516, 1
  store i32 %2518, ptr %7, align 4
  br label %2523

2519:                                             ; preds = %2501
  %2520 = landingpad { ptr, i32 }
          cleanup
  %2521 = extractvalue { ptr, i32 } %2520, 0
  store ptr %2521, ptr %6, align 8
  %2522 = extractvalue { ptr, i32 } %2520, 1
  store i32 %2522, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %368) #10
  br label %2523

2523:                                             ; preds = %2519, %2515
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %369) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %369) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %368) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #10
  br label %2524

2524:                                             ; preds = %2523, %2511
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %367) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %366) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #10
  br label %2525

2525:                                             ; preds = %2524, %2507
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %365) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %365) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %364) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %362) #10
  br label %2526

2526:                                             ; preds = %2525, %2503
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %363) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %363) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %362) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %358) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %354) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %351) #10
  br label %4629

2527:                                             ; preds = %2490
  call void @llvm.lifetime.end.p0(i64 8, ptr %358) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %354) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %351) #10
  call void @llvm.lifetime.start.p0(i64 80, ptr %370) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %371) #10
  call void @llvm.lifetime.start.p0(i64 80, ptr %372) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %372, ptr align 4 @constinit.46, i64 80, i1 false), !tbaa.struct !16
  %2528 = getelementptr inbounds %"class.std::initializer_list", ptr %371, i32 0, i32 0
  store ptr %372, ptr %2528, align 8, !tbaa !9
  %2529 = getelementptr inbounds %"class.std::initializer_list", ptr %371, i32 0, i32 1
  store i64 20, ptr %2529, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi5ELi4EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(80) %370, ptr noundef nonnull align 8 dereferenceable(16) %371)
  call void @llvm.lifetime.end.p0(i64 80, ptr %372) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %371) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr %373) #10
  call void @_ZNK3cgp12matrix_stackIiLi5ELi4EE17remove_row_columnEii(ptr dead_on_unwind writable sret(%"struct.cgp::matrix_stack.9") align 4 %373, ptr noundef nonnull align 4 dereferenceable(80) %370, i32 noundef 1, i32 noundef 2)
  call void @llvm.lifetime.start.p0(i64 48, ptr %374) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %375) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr %376) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %376, ptr align 4 @constinit.47, i64 48, i1 false), !tbaa.struct !17
  %2530 = getelementptr inbounds %"class.std::initializer_list", ptr %375, i32 0, i32 0
  store ptr %376, ptr %2530, align 8, !tbaa !9
  %2531 = getelementptr inbounds %"class.std::initializer_list", ptr %375, i32 0, i32 1
  store i64 12, ptr %2531, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi4ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(48) %374, ptr noundef nonnull align 8 dereferenceable(16) %375)
  %2532 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiLi4ELi3ELi4ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(48) %373, ptr noundef nonnull align 4 dereferenceable(48) %374)
  %2533 = zext i1 %2532 to i32
  %2534 = icmp eq i32 %2533, 0
  call void @llvm.lifetime.end.p0(i64 48, ptr %376) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %375) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %374) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %373) #10
  br i1 %2534, label %2535, label %2565

2535:                                             ; preds = %2527
  call void @llvm.lifetime.start.p0(i64 32, ptr %377) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %378) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %378) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %377, ptr noundef @.str.48, ptr noundef nonnull align 1 dereferenceable(1) %378)
          to label %2536 unwind label %2541

2536:                                             ; preds = %2535
  call void @llvm.lifetime.start.p0(i64 32, ptr %379) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %380) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %380) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %379, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %380)
          to label %2537 unwind label %2545

2537:                                             ; preds = %2536
  call void @llvm.lifetime.start.p0(i64 32, ptr %381) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %382) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %382) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %381, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %382)
          to label %2538 unwind label %2549

2538:                                             ; preds = %2537
  call void @llvm.lifetime.start.p0(i64 32, ptr %383) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %384) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %384) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %383, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %384)
          to label %2539 unwind label %2553

2539:                                             ; preds = %2538
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %377, ptr noundef nonnull align 8 dereferenceable(32) %379, ptr noundef nonnull align 8 dereferenceable(32) %381, ptr noundef nonnull align 8 dereferenceable(32) %383, i32 noundef 77) #11
          to label %2540 unwind label %2557

2540:                                             ; preds = %2539
  unreachable

2541:                                             ; preds = %2535
  %2542 = landingpad { ptr, i32 }
          cleanup
  %2543 = extractvalue { ptr, i32 } %2542, 0
  store ptr %2543, ptr %6, align 8
  %2544 = extractvalue { ptr, i32 } %2542, 1
  store i32 %2544, ptr %7, align 4
  br label %2564

2545:                                             ; preds = %2536
  %2546 = landingpad { ptr, i32 }
          cleanup
  %2547 = extractvalue { ptr, i32 } %2546, 0
  store ptr %2547, ptr %6, align 8
  %2548 = extractvalue { ptr, i32 } %2546, 1
  store i32 %2548, ptr %7, align 4
  br label %2563

2549:                                             ; preds = %2537
  %2550 = landingpad { ptr, i32 }
          cleanup
  %2551 = extractvalue { ptr, i32 } %2550, 0
  store ptr %2551, ptr %6, align 8
  %2552 = extractvalue { ptr, i32 } %2550, 1
  store i32 %2552, ptr %7, align 4
  br label %2562

2553:                                             ; preds = %2538
  %2554 = landingpad { ptr, i32 }
          cleanup
  %2555 = extractvalue { ptr, i32 } %2554, 0
  store ptr %2555, ptr %6, align 8
  %2556 = extractvalue { ptr, i32 } %2554, 1
  store i32 %2556, ptr %7, align 4
  br label %2561

2557:                                             ; preds = %2539
  %2558 = landingpad { ptr, i32 }
          cleanup
  %2559 = extractvalue { ptr, i32 } %2558, 0
  store ptr %2559, ptr %6, align 8
  %2560 = extractvalue { ptr, i32 } %2558, 1
  store i32 %2560, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %383) #10
  br label %2561

2561:                                             ; preds = %2557, %2553
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %384) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %384) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %383) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %381) #10
  br label %2562

2562:                                             ; preds = %2561, %2549
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %382) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %382) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %381) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %379) #10
  br label %2563

2563:                                             ; preds = %2562, %2545
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %380) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %380) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %379) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %377) #10
  br label %2564

2564:                                             ; preds = %2563, %2541
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %378) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %378) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %377) #10
  br label %2649

2565:                                             ; preds = %2527
  call void @llvm.lifetime.start.p0(i64 48, ptr %385) #10
  call void @_ZNK3cgp12matrix_stackIiLi5ELi4EE17remove_row_columnEii(ptr dead_on_unwind writable sret(%"struct.cgp::matrix_stack.9") align 4 %385, ptr noundef nonnull align 4 dereferenceable(80) %370, i32 noundef 0, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 48, ptr %386) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %387) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr %388) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %388, ptr align 4 @constinit.49, i64 48, i1 false), !tbaa.struct !17
  %2566 = getelementptr inbounds %"class.std::initializer_list", ptr %387, i32 0, i32 0
  store ptr %388, ptr %2566, align 8, !tbaa !9
  %2567 = getelementptr inbounds %"class.std::initializer_list", ptr %387, i32 0, i32 1
  store i64 12, ptr %2567, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi4ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(48) %386, ptr noundef nonnull align 8 dereferenceable(16) %387)
  %2568 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiLi4ELi3ELi4ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(48) %385, ptr noundef nonnull align 4 dereferenceable(48) %386)
  %2569 = zext i1 %2568 to i32
  %2570 = icmp eq i32 %2569, 0
  call void @llvm.lifetime.end.p0(i64 48, ptr %388) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %387) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %386) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %385) #10
  br i1 %2570, label %2571, label %2601

2571:                                             ; preds = %2565
  call void @llvm.lifetime.start.p0(i64 32, ptr %389) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %390) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %390) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %389, ptr noundef @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %390)
          to label %2572 unwind label %2577

2572:                                             ; preds = %2571
  call void @llvm.lifetime.start.p0(i64 32, ptr %391) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %392) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #10
  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 %2573 unwind label %2581

2573:                                             ; preds = %2572
  call void @llvm.lifetime.start.p0(i64 32, ptr %393) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %394) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %393, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %394)
          to label %2574 unwind label %2585

2574:                                             ; preds = %2573
  call void @llvm.lifetime.start.p0(i64 32, ptr %395) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %396) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %396) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %395, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %396)
          to label %2575 unwind label %2589

2575:                                             ; preds = %2574
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %389, ptr noundef nonnull align 8 dereferenceable(32) %391, ptr noundef nonnull align 8 dereferenceable(32) %393, ptr noundef nonnull align 8 dereferenceable(32) %395, i32 noundef 78) #11
          to label %2576 unwind label %2593

2576:                                             ; preds = %2575
  unreachable

2577:                                             ; preds = %2571
  %2578 = landingpad { ptr, i32 }
          cleanup
  %2579 = extractvalue { ptr, i32 } %2578, 0
  store ptr %2579, ptr %6, align 8
  %2580 = extractvalue { ptr, i32 } %2578, 1
  store i32 %2580, ptr %7, align 4
  br label %2600

2581:                                             ; preds = %2572
  %2582 = landingpad { ptr, i32 }
          cleanup
  %2583 = extractvalue { ptr, i32 } %2582, 0
  store ptr %2583, ptr %6, align 8
  %2584 = extractvalue { ptr, i32 } %2582, 1
  store i32 %2584, ptr %7, align 4
  br label %2599

2585:                                             ; preds = %2573
  %2586 = landingpad { ptr, i32 }
          cleanup
  %2587 = extractvalue { ptr, i32 } %2586, 0
  store ptr %2587, ptr %6, align 8
  %2588 = extractvalue { ptr, i32 } %2586, 1
  store i32 %2588, ptr %7, align 4
  br label %2598

2589:                                             ; preds = %2574
  %2590 = landingpad { ptr, i32 }
          cleanup
  %2591 = extractvalue { ptr, i32 } %2590, 0
  store ptr %2591, ptr %6, align 8
  %2592 = extractvalue { ptr, i32 } %2590, 1
  store i32 %2592, ptr %7, align 4
  br label %2597

2593:                                             ; preds = %2575
  %2594 = landingpad { ptr, i32 }
          cleanup
  %2595 = extractvalue { ptr, i32 } %2594, 0
  store ptr %2595, ptr %6, align 8
  %2596 = extractvalue { ptr, i32 } %2594, 1
  store i32 %2596, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %395) #10
  br label %2597

2597:                                             ; preds = %2593, %2589
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %396) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %396) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %395) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %393) #10
  br label %2598

2598:                                             ; preds = %2597, %2585
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %394) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %393) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %391) #10
  br label %2599

2599:                                             ; preds = %2598, %2581
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %392) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %391) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %389) #10
  br label %2600

2600:                                             ; preds = %2599, %2577
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %390) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %390) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %389) #10
  br label %2649

2601:                                             ; preds = %2565
  call void @llvm.lifetime.start.p0(i64 48, ptr %397) #10
  call void @_ZNK3cgp12matrix_stackIiLi5ELi4EE17remove_row_columnEii(ptr dead_on_unwind writable sret(%"struct.cgp::matrix_stack.9") align 4 %397, ptr noundef nonnull align 4 dereferenceable(80) %370, i32 noundef 4, i32 noundef 3)
  call void @llvm.lifetime.start.p0(i64 48, ptr %398) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %399) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr %400) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %400, ptr align 4 @constinit.51, i64 48, i1 false), !tbaa.struct !17
  %2602 = getelementptr inbounds %"class.std::initializer_list", ptr %399, i32 0, i32 0
  store ptr %400, ptr %2602, align 8, !tbaa !9
  %2603 = getelementptr inbounds %"class.std::initializer_list", ptr %399, i32 0, i32 1
  store i64 12, ptr %2603, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi4ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(48) %398, ptr noundef nonnull align 8 dereferenceable(16) %399)
  %2604 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiLi4ELi3ELi4ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(48) %397, ptr noundef nonnull align 4 dereferenceable(48) %398)
  %2605 = zext i1 %2604 to i32
  %2606 = icmp eq i32 %2605, 0
  call void @llvm.lifetime.end.p0(i64 48, ptr %400) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %399) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %398) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %397) #10
  br i1 %2606, label %2607, label %2637

2607:                                             ; preds = %2601
  call void @llvm.lifetime.start.p0(i64 32, ptr %401) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %402) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %402) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %401, ptr noundef @.str.52, ptr noundef nonnull align 1 dereferenceable(1) %402)
          to label %2608 unwind label %2613

2608:                                             ; preds = %2607
  call void @llvm.lifetime.start.p0(i64 32, ptr %403) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %404) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %404) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %403, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %404)
          to label %2609 unwind label %2617

2609:                                             ; preds = %2608
  call void @llvm.lifetime.start.p0(i64 32, ptr %405) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %406) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %406) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %405, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %406)
          to label %2610 unwind label %2621

2610:                                             ; preds = %2609
  call void @llvm.lifetime.start.p0(i64 32, ptr %407) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %408) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %408) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %407, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %408)
          to label %2611 unwind label %2625

2611:                                             ; preds = %2610
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %401, ptr noundef nonnull align 8 dereferenceable(32) %403, ptr noundef nonnull align 8 dereferenceable(32) %405, ptr noundef nonnull align 8 dereferenceable(32) %407, i32 noundef 79) #11
          to label %2612 unwind label %2629

2612:                                             ; preds = %2611
  unreachable

2613:                                             ; preds = %2607
  %2614 = landingpad { ptr, i32 }
          cleanup
  %2615 = extractvalue { ptr, i32 } %2614, 0
  store ptr %2615, ptr %6, align 8
  %2616 = extractvalue { ptr, i32 } %2614, 1
  store i32 %2616, ptr %7, align 4
  br label %2636

2617:                                             ; preds = %2608
  %2618 = landingpad { ptr, i32 }
          cleanup
  %2619 = extractvalue { ptr, i32 } %2618, 0
  store ptr %2619, ptr %6, align 8
  %2620 = extractvalue { ptr, i32 } %2618, 1
  store i32 %2620, ptr %7, align 4
  br label %2635

2621:                                             ; preds = %2609
  %2622 = landingpad { ptr, i32 }
          cleanup
  %2623 = extractvalue { ptr, i32 } %2622, 0
  store ptr %2623, ptr %6, align 8
  %2624 = extractvalue { ptr, i32 } %2622, 1
  store i32 %2624, ptr %7, align 4
  br label %2634

2625:                                             ; preds = %2610
  %2626 = landingpad { ptr, i32 }
          cleanup
  %2627 = extractvalue { ptr, i32 } %2626, 0
  store ptr %2627, ptr %6, align 8
  %2628 = extractvalue { ptr, i32 } %2626, 1
  store i32 %2628, ptr %7, align 4
  br label %2633

2629:                                             ; preds = %2611
  %2630 = landingpad { ptr, i32 }
          cleanup
  %2631 = extractvalue { ptr, i32 } %2630, 0
  store ptr %2631, ptr %6, align 8
  %2632 = extractvalue { ptr, i32 } %2630, 1
  store i32 %2632, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %407) #10
  br label %2633

2633:                                             ; preds = %2629, %2625
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %408) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %408) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %407) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %405) #10
  br label %2634

2634:                                             ; preds = %2633, %2621
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %406) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %406) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %405) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %403) #10
  br label %2635

2635:                                             ; preds = %2634, %2617
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %404) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %404) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %403) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %401) #10
  br label %2636

2636:                                             ; preds = %2635, %2613
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %402) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %402) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %401) #10
  br label %2649

2637:                                             ; preds = %2601
  call void @llvm.lifetime.end.p0(i64 80, ptr %370) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %409) #10
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EE14build_identityEv(ptr dead_on_unwind writable sret(%"struct.cgp::matrix_stack.11") align 4 %409)
  call void @llvm.lifetime.start.p0(i64 36, ptr %410) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %411) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %412) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %412, ptr align 4 @constinit.53, i64 36, i1 false), !tbaa.struct !18
  %2638 = getelementptr inbounds %"class.std::initializer_list.14", ptr %411, i32 0, i32 0
  store ptr %412, ptr %2638, align 8, !tbaa !19
  %2639 = getelementptr inbounds %"class.std::initializer_list.14", ptr %411, i32 0, i32 1
  store i64 9, ptr %2639, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %410, ptr noundef nonnull align 8 dereferenceable(16) %411)
  %2640 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %409, ptr noundef nonnull align 4 dereferenceable(36) %410)
  %2641 = zext i1 %2640 to i32
  %2642 = icmp eq i32 %2641, 0
  call void @llvm.lifetime.end.p0(i64 36, ptr %412) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %411) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %410) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %409) #10
  br i1 %2642, label %2643, label %2674

2643:                                             ; preds = %2637
  call void @llvm.lifetime.start.p0(i64 32, ptr %413) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %414) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %414) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %413, ptr noundef @.str.54, ptr noundef nonnull align 1 dereferenceable(1) %414)
          to label %2644 unwind label %2650

2644:                                             ; preds = %2643
  call void @llvm.lifetime.start.p0(i64 32, ptr %415) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %416) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %416) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %415, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %416)
          to label %2645 unwind label %2654

2645:                                             ; preds = %2644
  call void @llvm.lifetime.start.p0(i64 32, ptr %417) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %418) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %418) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %417, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %418)
          to label %2646 unwind label %2658

2646:                                             ; preds = %2645
  call void @llvm.lifetime.start.p0(i64 32, ptr %419) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %420) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %420) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %419, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %420)
          to label %2647 unwind label %2662

2647:                                             ; preds = %2646
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %413, ptr noundef nonnull align 8 dereferenceable(32) %415, ptr noundef nonnull align 8 dereferenceable(32) %417, ptr noundef nonnull align 8 dereferenceable(32) %419, i32 noundef 86) #11
          to label %2648 unwind label %2666

2648:                                             ; preds = %2647
  unreachable

2649:                                             ; preds = %2636, %2600, %2564
  call void @llvm.lifetime.end.p0(i64 80, ptr %370) #10
  br label %4629

2650:                                             ; preds = %2643
  %2651 = landingpad { ptr, i32 }
          cleanup
  %2652 = extractvalue { ptr, i32 } %2651, 0
  store ptr %2652, ptr %6, align 8
  %2653 = extractvalue { ptr, i32 } %2651, 1
  store i32 %2653, ptr %7, align 4
  br label %2673

2654:                                             ; preds = %2644
  %2655 = landingpad { ptr, i32 }
          cleanup
  %2656 = extractvalue { ptr, i32 } %2655, 0
  store ptr %2656, ptr %6, align 8
  %2657 = extractvalue { ptr, i32 } %2655, 1
  store i32 %2657, ptr %7, align 4
  br label %2672

2658:                                             ; preds = %2645
  %2659 = landingpad { ptr, i32 }
          cleanup
  %2660 = extractvalue { ptr, i32 } %2659, 0
  store ptr %2660, ptr %6, align 8
  %2661 = extractvalue { ptr, i32 } %2659, 1
  store i32 %2661, ptr %7, align 4
  br label %2671

2662:                                             ; preds = %2646
  %2663 = landingpad { ptr, i32 }
          cleanup
  %2664 = extractvalue { ptr, i32 } %2663, 0
  store ptr %2664, ptr %6, align 8
  %2665 = extractvalue { ptr, i32 } %2663, 1
  store i32 %2665, ptr %7, align 4
  br label %2670

2666:                                             ; preds = %2647
  %2667 = landingpad { ptr, i32 }
          cleanup
  %2668 = extractvalue { ptr, i32 } %2667, 0
  store ptr %2668, ptr %6, align 8
  %2669 = extractvalue { ptr, i32 } %2667, 1
  store i32 %2669, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %419) #10
  br label %2670

2670:                                             ; preds = %2666, %2662
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %420) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %420) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %419) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %417) #10
  br label %2671

2671:                                             ; preds = %2670, %2658
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %418) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %418) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %417) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %415) #10
  br label %2672

2672:                                             ; preds = %2671, %2654
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %416) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %416) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %415) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %413) #10
  br label %2673

2673:                                             ; preds = %2672, %2650
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %414) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %414) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %413) #10
  br label %4629

2674:                                             ; preds = %2637
  call void @llvm.lifetime.start.p0(i64 48, ptr %421) #10
  call void @_ZN3cgp12matrix_stackIfLi3ELi4EE14build_identityEv(ptr dead_on_unwind writable sret(%"struct.cgp::matrix_stack.15") align 4 %421)
  call void @llvm.lifetime.start.p0(i64 48, ptr %422) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %423) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr %424) #10
  call void @llvm.memset.p0.i64(ptr align 4 %424, i8 0, i64 48, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %424, ptr align 4 @constinit.55, i64 48, i1 false), !tbaa.struct !17
  %2675 = getelementptr inbounds %"class.std::initializer_list.14", ptr %423, i32 0, i32 0
  store ptr %424, ptr %2675, align 8, !tbaa !19
  %2676 = getelementptr inbounds %"class.std::initializer_list.14", ptr %423, i32 0, i32 1
  store i64 12, ptr %2676, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi4EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(48) %422, ptr noundef nonnull align 8 dereferenceable(16) %423)
  %2677 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi4ELi3ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(48) %421, ptr noundef nonnull align 4 dereferenceable(48) %422)
  %2678 = zext i1 %2677 to i32
  %2679 = icmp eq i32 %2678, 0
  call void @llvm.lifetime.end.p0(i64 48, ptr %424) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %423) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %422) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %421) #10
  br i1 %2679, label %2680, label %2710

2680:                                             ; preds = %2674
  call void @llvm.lifetime.start.p0(i64 32, ptr %425) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %426) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %426) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %425, ptr noundef @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %426)
          to label %2681 unwind label %2686

2681:                                             ; preds = %2680
  call void @llvm.lifetime.start.p0(i64 32, ptr %427) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %428) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %428) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %427, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %428)
          to label %2682 unwind label %2690

2682:                                             ; preds = %2681
  call void @llvm.lifetime.start.p0(i64 32, ptr %429) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %430) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %430) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %429, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %430)
          to label %2683 unwind label %2694

2683:                                             ; preds = %2682
  call void @llvm.lifetime.start.p0(i64 32, ptr %431) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %432) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %432) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %431, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %432)
          to label %2684 unwind label %2698

2684:                                             ; preds = %2683
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %425, ptr noundef nonnull align 8 dereferenceable(32) %427, ptr noundef nonnull align 8 dereferenceable(32) %429, ptr noundef nonnull align 8 dereferenceable(32) %431, i32 noundef 87) #11
          to label %2685 unwind label %2702

2685:                                             ; preds = %2684
  unreachable

2686:                                             ; preds = %2680
  %2687 = landingpad { ptr, i32 }
          cleanup
  %2688 = extractvalue { ptr, i32 } %2687, 0
  store ptr %2688, ptr %6, align 8
  %2689 = extractvalue { ptr, i32 } %2687, 1
  store i32 %2689, ptr %7, align 4
  br label %2709

2690:                                             ; preds = %2681
  %2691 = landingpad { ptr, i32 }
          cleanup
  %2692 = extractvalue { ptr, i32 } %2691, 0
  store ptr %2692, ptr %6, align 8
  %2693 = extractvalue { ptr, i32 } %2691, 1
  store i32 %2693, ptr %7, align 4
  br label %2708

2694:                                             ; preds = %2682
  %2695 = landingpad { ptr, i32 }
          cleanup
  %2696 = extractvalue { ptr, i32 } %2695, 0
  store ptr %2696, ptr %6, align 8
  %2697 = extractvalue { ptr, i32 } %2695, 1
  store i32 %2697, ptr %7, align 4
  br label %2707

2698:                                             ; preds = %2683
  %2699 = landingpad { ptr, i32 }
          cleanup
  %2700 = extractvalue { ptr, i32 } %2699, 0
  store ptr %2700, ptr %6, align 8
  %2701 = extractvalue { ptr, i32 } %2699, 1
  store i32 %2701, ptr %7, align 4
  br label %2706

2702:                                             ; preds = %2684
  %2703 = landingpad { ptr, i32 }
          cleanup
  %2704 = extractvalue { ptr, i32 } %2703, 0
  store ptr %2704, ptr %6, align 8
  %2705 = extractvalue { ptr, i32 } %2703, 1
  store i32 %2705, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %431) #10
  br label %2706

2706:                                             ; preds = %2702, %2698
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %432) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %432) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %431) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %429) #10
  br label %2707

2707:                                             ; preds = %2706, %2694
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %430) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %430) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %429) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %427) #10
  br label %2708

2708:                                             ; preds = %2707, %2690
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %428) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %428) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %427) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %425) #10
  br label %2709

2709:                                             ; preds = %2708, %2686
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %426) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %426) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %425) #10
  br label %4629

2710:                                             ; preds = %2674
  call void @llvm.lifetime.start.p0(i64 48, ptr %433) #10
  call void @_ZN3cgp12matrix_stackIfLi4ELi3EE14build_identityEv(ptr dead_on_unwind writable sret(%"struct.cgp::matrix_stack.18") align 4 %433)
  call void @llvm.lifetime.start.p0(i64 48, ptr %434) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %435) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr %436) #10
  call void @llvm.memset.p0.i64(ptr align 4 %436, i8 0, i64 48, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %436, ptr align 4 @constinit.57, i64 48, i1 false), !tbaa.struct !17
  %2711 = getelementptr inbounds %"class.std::initializer_list.14", ptr %435, i32 0, i32 0
  store ptr %436, ptr %2711, align 8, !tbaa !19
  %2712 = getelementptr inbounds %"class.std::initializer_list.14", ptr %435, i32 0, i32 1
  store i64 12, ptr %2712, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi3EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(48) %434, ptr noundef nonnull align 8 dereferenceable(16) %435)
  %2713 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi3ELi4ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(48) %433, ptr noundef nonnull align 4 dereferenceable(48) %434)
  %2714 = zext i1 %2713 to i32
  %2715 = icmp eq i32 %2714, 0
  call void @llvm.lifetime.end.p0(i64 48, ptr %436) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %435) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %434) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %433) #10
  br i1 %2715, label %2716, label %2746

2716:                                             ; preds = %2710
  call void @llvm.lifetime.start.p0(i64 32, ptr %437) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %438) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %438) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %437, ptr noundef @.str.58, ptr noundef nonnull align 1 dereferenceable(1) %438)
          to label %2717 unwind label %2722

2717:                                             ; preds = %2716
  call void @llvm.lifetime.start.p0(i64 32, ptr %439) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %440) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %439, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %440)
          to label %2718 unwind label %2726

2718:                                             ; preds = %2717
  call void @llvm.lifetime.start.p0(i64 32, ptr %441) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %442) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %442) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %441, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %442)
          to label %2719 unwind label %2730

2719:                                             ; preds = %2718
  call void @llvm.lifetime.start.p0(i64 32, ptr %443) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %444) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %444) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %443, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %444)
          to label %2720 unwind label %2734

2720:                                             ; preds = %2719
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %437, ptr noundef nonnull align 8 dereferenceable(32) %439, ptr noundef nonnull align 8 dereferenceable(32) %441, ptr noundef nonnull align 8 dereferenceable(32) %443, i32 noundef 88) #11
          to label %2721 unwind label %2738

2721:                                             ; preds = %2720
  unreachable

2722:                                             ; preds = %2716
  %2723 = landingpad { ptr, i32 }
          cleanup
  %2724 = extractvalue { ptr, i32 } %2723, 0
  store ptr %2724, ptr %6, align 8
  %2725 = extractvalue { ptr, i32 } %2723, 1
  store i32 %2725, ptr %7, align 4
  br label %2745

2726:                                             ; preds = %2717
  %2727 = landingpad { ptr, i32 }
          cleanup
  %2728 = extractvalue { ptr, i32 } %2727, 0
  store ptr %2728, ptr %6, align 8
  %2729 = extractvalue { ptr, i32 } %2727, 1
  store i32 %2729, ptr %7, align 4
  br label %2744

2730:                                             ; preds = %2718
  %2731 = landingpad { ptr, i32 }
          cleanup
  %2732 = extractvalue { ptr, i32 } %2731, 0
  store ptr %2732, ptr %6, align 8
  %2733 = extractvalue { ptr, i32 } %2731, 1
  store i32 %2733, ptr %7, align 4
  br label %2743

2734:                                             ; preds = %2719
  %2735 = landingpad { ptr, i32 }
          cleanup
  %2736 = extractvalue { ptr, i32 } %2735, 0
  store ptr %2736, ptr %6, align 8
  %2737 = extractvalue { ptr, i32 } %2735, 1
  store i32 %2737, ptr %7, align 4
  br label %2742

2738:                                             ; preds = %2720
  %2739 = landingpad { ptr, i32 }
          cleanup
  %2740 = extractvalue { ptr, i32 } %2739, 0
  store ptr %2740, ptr %6, align 8
  %2741 = extractvalue { ptr, i32 } %2739, 1
  store i32 %2741, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %443) #10
  br label %2742

2742:                                             ; preds = %2738, %2734
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %444) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %444) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %443) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %441) #10
  br label %2743

2743:                                             ; preds = %2742, %2730
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %442) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %442) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %441) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #10
  br label %2744

2744:                                             ; preds = %2743, %2726
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %440) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %439) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %437) #10
  br label %2745

2745:                                             ; preds = %2744, %2722
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %438) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %438) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %437) #10
  br label %4629

2746:                                             ; preds = %2710
  call void @llvm.lifetime.start.p0(i64 36, ptr %445) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %446) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %447) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %447, ptr align 4 @constinit.59, i64 36, i1 false), !tbaa.struct !18
  %2747 = getelementptr inbounds %"class.std::initializer_list.14", ptr %446, i32 0, i32 0
  store ptr %447, ptr %2747, align 8, !tbaa !19
  %2748 = getelementptr inbounds %"class.std::initializer_list.14", ptr %446, i32 0, i32 1
  store i64 9, ptr %2748, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %445, ptr noundef nonnull align 8 dereferenceable(16) %446)
  call void @llvm.lifetime.end.p0(i64 36, ptr %447) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %446) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %448) #10
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC2ILi3ELi3EEERKNS0_IfXT_EXT0_EEE(ptr noundef nonnull align 4 dereferenceable(16) %448, ptr noundef nonnull align 4 dereferenceable(36) %445)
  call void @llvm.lifetime.start.p0(i64 64, ptr %449) #10
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKNS0_IfLi3ELi3EEE(ptr noundef nonnull align 4 dereferenceable(64) %449, ptr noundef nonnull align 4 dereferenceable(36) %445)
  call void @llvm.lifetime.start.p0(i64 16, ptr %450) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %451) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %452) #10
  store float 1.000000e+00, ptr %452, align 4, !tbaa !22
  %2749 = getelementptr inbounds float, ptr %452, i64 1
  store float 2.000000e+00, ptr %2749, align 4, !tbaa !22
  %2750 = getelementptr inbounds float, ptr %452, i64 2
  store float 4.000000e+00, ptr %2750, align 4, !tbaa !22
  %2751 = getelementptr inbounds float, ptr %452, i64 3
  store float 5.000000e+00, ptr %2751, align 4, !tbaa !22
  %2752 = getelementptr inbounds %"class.std::initializer_list.14", ptr %451, i32 0, i32 0
  store ptr %452, ptr %2752, align 8, !tbaa !19
  %2753 = getelementptr inbounds %"class.std::initializer_list.14", ptr %451, i32 0, i32 1
  store i64 4, ptr %2753, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %450, ptr noundef nonnull align 8 dereferenceable(16) %451)
  %2754 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %448, ptr noundef nonnull align 4 dereferenceable(16) %450)
  %2755 = zext i1 %2754 to i32
  %2756 = icmp eq i32 %2755, 0
  call void @llvm.lifetime.end.p0(i64 16, ptr %452) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %451) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %450) #10
  br i1 %2756, label %2757, label %2787

2757:                                             ; preds = %2746
  call void @llvm.lifetime.start.p0(i64 32, ptr %453) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %454) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %454) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %453, ptr noundef @.str.60, ptr noundef nonnull align 1 dereferenceable(1) %454)
          to label %2758 unwind label %2763

2758:                                             ; preds = %2757
  call void @llvm.lifetime.start.p0(i64 32, ptr %455) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %456) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %456) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %455, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %456)
          to label %2759 unwind label %2767

2759:                                             ; preds = %2758
  call void @llvm.lifetime.start.p0(i64 32, ptr %457) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %458) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %458) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %457, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %458)
          to label %2760 unwind label %2771

2760:                                             ; preds = %2759
  call void @llvm.lifetime.start.p0(i64 32, ptr %459) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %460) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %460) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %459, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %460)
          to label %2761 unwind label %2775

2761:                                             ; preds = %2760
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %453, ptr noundef nonnull align 8 dereferenceable(32) %455, ptr noundef nonnull align 8 dereferenceable(32) %457, ptr noundef nonnull align 8 dereferenceable(32) %459, i32 noundef 100) #11
          to label %2762 unwind label %2779

2762:                                             ; preds = %2761
  unreachable

2763:                                             ; preds = %2757
  %2764 = landingpad { ptr, i32 }
          cleanup
  %2765 = extractvalue { ptr, i32 } %2764, 0
  store ptr %2765, ptr %6, align 8
  %2766 = extractvalue { ptr, i32 } %2764, 1
  store i32 %2766, ptr %7, align 4
  br label %2786

2767:                                             ; preds = %2758
  %2768 = landingpad { ptr, i32 }
          cleanup
  %2769 = extractvalue { ptr, i32 } %2768, 0
  store ptr %2769, ptr %6, align 8
  %2770 = extractvalue { ptr, i32 } %2768, 1
  store i32 %2770, ptr %7, align 4
  br label %2785

2771:                                             ; preds = %2759
  %2772 = landingpad { ptr, i32 }
          cleanup
  %2773 = extractvalue { ptr, i32 } %2772, 0
  store ptr %2773, ptr %6, align 8
  %2774 = extractvalue { ptr, i32 } %2772, 1
  store i32 %2774, ptr %7, align 4
  br label %2784

2775:                                             ; preds = %2760
  %2776 = landingpad { ptr, i32 }
          cleanup
  %2777 = extractvalue { ptr, i32 } %2776, 0
  store ptr %2777, ptr %6, align 8
  %2778 = extractvalue { ptr, i32 } %2776, 1
  store i32 %2778, ptr %7, align 4
  br label %2783

2779:                                             ; preds = %2761
  %2780 = landingpad { ptr, i32 }
          cleanup
  %2781 = extractvalue { ptr, i32 } %2780, 0
  store ptr %2781, ptr %6, align 8
  %2782 = extractvalue { ptr, i32 } %2780, 1
  store i32 %2782, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %459) #10
  br label %2783

2783:                                             ; preds = %2779, %2775
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %460) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %460) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %459) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %457) #10
  br label %2784

2784:                                             ; preds = %2783, %2771
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %458) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %458) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %457) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %455) #10
  br label %2785

2785:                                             ; preds = %2784, %2767
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %456) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %456) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %455) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %453) #10
  br label %2786

2786:                                             ; preds = %2785, %2763
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %454) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %454) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %453) #10
  br label %2840

2787:                                             ; preds = %2746
  call void @llvm.lifetime.start.p0(i64 64, ptr %461) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %462) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %463) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %463, ptr align 4 @constinit.61, i64 64, i1 false), !tbaa.struct !24
  %2788 = getelementptr inbounds %"class.std::initializer_list.14", ptr %462, i32 0, i32 0
  store ptr %463, ptr %2788, align 8, !tbaa !19
  %2789 = getelementptr inbounds %"class.std::initializer_list.14", ptr %462, i32 0, i32 1
  store i64 16, ptr %2789, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %461, ptr noundef nonnull align 8 dereferenceable(16) %462)
  %2790 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %449, ptr noundef nonnull align 4 dereferenceable(64) %461)
  %2791 = zext i1 %2790 to i32
  %2792 = icmp eq i32 %2791, 0
  call void @llvm.lifetime.end.p0(i64 64, ptr %463) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %462) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %461) #10
  br i1 %2792, label %2793, label %2823

2793:                                             ; preds = %2787
  call void @llvm.lifetime.start.p0(i64 32, ptr %464) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %465) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %465) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %464, ptr noundef @.str.62, ptr noundef nonnull align 1 dereferenceable(1) %465)
          to label %2794 unwind label %2799

2794:                                             ; preds = %2793
  call void @llvm.lifetime.start.p0(i64 32, ptr %466) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %467) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %467) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %466, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %467)
          to label %2795 unwind label %2803

2795:                                             ; preds = %2794
  call void @llvm.lifetime.start.p0(i64 32, ptr %468) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %469) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %469) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %468, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %469)
          to label %2796 unwind label %2807

2796:                                             ; preds = %2795
  call void @llvm.lifetime.start.p0(i64 32, ptr %470) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %471) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %471) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %470, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %471)
          to label %2797 unwind label %2811

2797:                                             ; preds = %2796
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %464, ptr noundef nonnull align 8 dereferenceable(32) %466, ptr noundef nonnull align 8 dereferenceable(32) %468, ptr noundef nonnull align 8 dereferenceable(32) %470, i32 noundef 101) #11
          to label %2798 unwind label %2815

2798:                                             ; preds = %2797
  unreachable

2799:                                             ; preds = %2793
  %2800 = landingpad { ptr, i32 }
          cleanup
  %2801 = extractvalue { ptr, i32 } %2800, 0
  store ptr %2801, ptr %6, align 8
  %2802 = extractvalue { ptr, i32 } %2800, 1
  store i32 %2802, ptr %7, align 4
  br label %2822

2803:                                             ; preds = %2794
  %2804 = landingpad { ptr, i32 }
          cleanup
  %2805 = extractvalue { ptr, i32 } %2804, 0
  store ptr %2805, ptr %6, align 8
  %2806 = extractvalue { ptr, i32 } %2804, 1
  store i32 %2806, ptr %7, align 4
  br label %2821

2807:                                             ; preds = %2795
  %2808 = landingpad { ptr, i32 }
          cleanup
  %2809 = extractvalue { ptr, i32 } %2808, 0
  store ptr %2809, ptr %6, align 8
  %2810 = extractvalue { ptr, i32 } %2808, 1
  store i32 %2810, ptr %7, align 4
  br label %2820

2811:                                             ; preds = %2796
  %2812 = landingpad { ptr, i32 }
          cleanup
  %2813 = extractvalue { ptr, i32 } %2812, 0
  store ptr %2813, ptr %6, align 8
  %2814 = extractvalue { ptr, i32 } %2812, 1
  store i32 %2814, ptr %7, align 4
  br label %2819

2815:                                             ; preds = %2797
  %2816 = landingpad { ptr, i32 }
          cleanup
  %2817 = extractvalue { ptr, i32 } %2816, 0
  store ptr %2817, ptr %6, align 8
  %2818 = extractvalue { ptr, i32 } %2816, 1
  store i32 %2818, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %470) #10
  br label %2819

2819:                                             ; preds = %2815, %2811
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %471) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %471) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %470) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %468) #10
  br label %2820

2820:                                             ; preds = %2819, %2807
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %469) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %469) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %468) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %466) #10
  br label %2821

2821:                                             ; preds = %2820, %2803
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %467) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %467) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %466) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %464) #10
  br label %2822

2822:                                             ; preds = %2821, %2799
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %465) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %465) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %464) #10
  br label %2840

2823:                                             ; preds = %2787
  call void @llvm.lifetime.end.p0(i64 64, ptr %449) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %448) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %445) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %472) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %473) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %474) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %474, ptr align 4 @constinit.63, i64 64, i1 false), !tbaa.struct !24
  %2824 = getelementptr inbounds %"class.std::initializer_list.14", ptr %473, i32 0, i32 0
  store ptr %474, ptr %2824, align 8, !tbaa !19
  %2825 = getelementptr inbounds %"class.std::initializer_list.14", ptr %473, i32 0, i32 1
  store i64 16, ptr %2825, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %472, ptr noundef nonnull align 8 dereferenceable(16) %473)
  call void @llvm.lifetime.end.p0(i64 64, ptr %474) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %473) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %475) #10
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC2ILi4ELi4EEERKNS0_IfXT_EXT0_EEE(ptr noundef nonnull align 4 dereferenceable(16) %475, ptr noundef nonnull align 4 dereferenceable(64) %472)
  call void @llvm.lifetime.start.p0(i64 36, ptr %476) #10
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC2ILi4ELi4EEERKNS0_IfXT_EXT0_EEE(ptr noundef nonnull align 4 dereferenceable(36) %476, ptr noundef nonnull align 4 dereferenceable(64) %472)
  call void @llvm.lifetime.start.p0(i64 16, ptr %477) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %478) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %479) #10
  store float 1.000000e+00, ptr %479, align 4, !tbaa !22
  %2826 = getelementptr inbounds float, ptr %479, i64 1
  store float 2.000000e+00, ptr %2826, align 4, !tbaa !22
  %2827 = getelementptr inbounds float, ptr %479, i64 2
  store float 5.000000e+00, ptr %2827, align 4, !tbaa !22
  %2828 = getelementptr inbounds float, ptr %479, i64 3
  store float 6.000000e+00, ptr %2828, align 4, !tbaa !22
  %2829 = getelementptr inbounds %"class.std::initializer_list.14", ptr %478, i32 0, i32 0
  store ptr %479, ptr %2829, align 8, !tbaa !19
  %2830 = getelementptr inbounds %"class.std::initializer_list.14", ptr %478, i32 0, i32 1
  store i64 4, ptr %2830, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %477, ptr noundef nonnull align 8 dereferenceable(16) %478)
  %2831 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %475, ptr noundef nonnull align 4 dereferenceable(16) %477)
  %2832 = zext i1 %2831 to i32
  %2833 = icmp eq i32 %2832, 0
  call void @llvm.lifetime.end.p0(i64 16, ptr %479) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %478) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %477) #10
  br i1 %2833, label %2834, label %2865

2834:                                             ; preds = %2823
  call void @llvm.lifetime.start.p0(i64 32, ptr %480) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %481) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %481) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %480, ptr noundef @.str.64, ptr noundef nonnull align 1 dereferenceable(1) %481)
          to label %2835 unwind label %2841

2835:                                             ; preds = %2834
  call void @llvm.lifetime.start.p0(i64 32, ptr %482) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %483) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %483) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %482, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %483)
          to label %2836 unwind label %2845

2836:                                             ; preds = %2835
  call void @llvm.lifetime.start.p0(i64 32, ptr %484) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %485) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %485) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %484, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %485)
          to label %2837 unwind label %2849

2837:                                             ; preds = %2836
  call void @llvm.lifetime.start.p0(i64 32, ptr %486) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %487) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %487) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %486, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %487)
          to label %2838 unwind label %2853

2838:                                             ; preds = %2837
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %480, ptr noundef nonnull align 8 dereferenceable(32) %482, ptr noundef nonnull align 8 dereferenceable(32) %484, ptr noundef nonnull align 8 dereferenceable(32) %486, i32 noundef 111) #11
          to label %2839 unwind label %2857

2839:                                             ; preds = %2838
  unreachable

2840:                                             ; preds = %2822, %2786
  call void @llvm.lifetime.end.p0(i64 64, ptr %449) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %448) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %445) #10
  br label %4629

2841:                                             ; preds = %2834
  %2842 = landingpad { ptr, i32 }
          cleanup
  %2843 = extractvalue { ptr, i32 } %2842, 0
  store ptr %2843, ptr %6, align 8
  %2844 = extractvalue { ptr, i32 } %2842, 1
  store i32 %2844, ptr %7, align 4
  br label %2864

2845:                                             ; preds = %2835
  %2846 = landingpad { ptr, i32 }
          cleanup
  %2847 = extractvalue { ptr, i32 } %2846, 0
  store ptr %2847, ptr %6, align 8
  %2848 = extractvalue { ptr, i32 } %2846, 1
  store i32 %2848, ptr %7, align 4
  br label %2863

2849:                                             ; preds = %2836
  %2850 = landingpad { ptr, i32 }
          cleanup
  %2851 = extractvalue { ptr, i32 } %2850, 0
  store ptr %2851, ptr %6, align 8
  %2852 = extractvalue { ptr, i32 } %2850, 1
  store i32 %2852, ptr %7, align 4
  br label %2862

2853:                                             ; preds = %2837
  %2854 = landingpad { ptr, i32 }
          cleanup
  %2855 = extractvalue { ptr, i32 } %2854, 0
  store ptr %2855, ptr %6, align 8
  %2856 = extractvalue { ptr, i32 } %2854, 1
  store i32 %2856, ptr %7, align 4
  br label %2861

2857:                                             ; preds = %2838
  %2858 = landingpad { ptr, i32 }
          cleanup
  %2859 = extractvalue { ptr, i32 } %2858, 0
  store ptr %2859, ptr %6, align 8
  %2860 = extractvalue { ptr, i32 } %2858, 1
  store i32 %2860, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %486) #10
  br label %2861

2861:                                             ; preds = %2857, %2853
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %487) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %487) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %486) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %484) #10
  br label %2862

2862:                                             ; preds = %2861, %2849
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %485) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %485) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %484) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %482) #10
  br label %2863

2863:                                             ; preds = %2862, %2845
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %483) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %483) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %482) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %480) #10
  br label %2864

2864:                                             ; preds = %2863, %2841
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %481) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %481) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %480) #10
  br label %2919

2865:                                             ; preds = %2823
  call void @llvm.lifetime.start.p0(i64 36, ptr %488) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %489) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %490) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %490, ptr align 4 @constinit.65, i64 36, i1 false), !tbaa.struct !18
  %2866 = getelementptr inbounds %"class.std::initializer_list.14", ptr %489, i32 0, i32 0
  store ptr %490, ptr %2866, align 8, !tbaa !19
  %2867 = getelementptr inbounds %"class.std::initializer_list.14", ptr %489, i32 0, i32 1
  store i64 9, ptr %2867, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %488, ptr noundef nonnull align 8 dereferenceable(16) %489)
  %2868 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %476, ptr noundef nonnull align 4 dereferenceable(36) %488)
  %2869 = zext i1 %2868 to i32
  %2870 = icmp eq i32 %2869, 0
  call void @llvm.lifetime.end.p0(i64 36, ptr %490) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %489) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %488) #10
  br i1 %2870, label %2871, label %2901

2871:                                             ; preds = %2865
  call void @llvm.lifetime.start.p0(i64 32, ptr %491) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %492) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %492) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %491, ptr noundef @.str.66, ptr noundef nonnull align 1 dereferenceable(1) %492)
          to label %2872 unwind label %2877

2872:                                             ; preds = %2871
  call void @llvm.lifetime.start.p0(i64 32, ptr %493) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %494) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %494) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %493, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %494)
          to label %2873 unwind label %2881

2873:                                             ; preds = %2872
  call void @llvm.lifetime.start.p0(i64 32, ptr %495) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %496) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %496) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %495, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %496)
          to label %2874 unwind label %2885

2874:                                             ; preds = %2873
  call void @llvm.lifetime.start.p0(i64 32, ptr %497) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %498) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %498) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %497, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %498)
          to label %2875 unwind label %2889

2875:                                             ; preds = %2874
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %491, ptr noundef nonnull align 8 dereferenceable(32) %493, ptr noundef nonnull align 8 dereferenceable(32) %495, ptr noundef nonnull align 8 dereferenceable(32) %497, i32 noundef 112) #11
          to label %2876 unwind label %2893

2876:                                             ; preds = %2875
  unreachable

2877:                                             ; preds = %2871
  %2878 = landingpad { ptr, i32 }
          cleanup
  %2879 = extractvalue { ptr, i32 } %2878, 0
  store ptr %2879, ptr %6, align 8
  %2880 = extractvalue { ptr, i32 } %2878, 1
  store i32 %2880, ptr %7, align 4
  br label %2900

2881:                                             ; preds = %2872
  %2882 = landingpad { ptr, i32 }
          cleanup
  %2883 = extractvalue { ptr, i32 } %2882, 0
  store ptr %2883, ptr %6, align 8
  %2884 = extractvalue { ptr, i32 } %2882, 1
  store i32 %2884, ptr %7, align 4
  br label %2899

2885:                                             ; preds = %2873
  %2886 = landingpad { ptr, i32 }
          cleanup
  %2887 = extractvalue { ptr, i32 } %2886, 0
  store ptr %2887, ptr %6, align 8
  %2888 = extractvalue { ptr, i32 } %2886, 1
  store i32 %2888, ptr %7, align 4
  br label %2898

2889:                                             ; preds = %2874
  %2890 = landingpad { ptr, i32 }
          cleanup
  %2891 = extractvalue { ptr, i32 } %2890, 0
  store ptr %2891, ptr %6, align 8
  %2892 = extractvalue { ptr, i32 } %2890, 1
  store i32 %2892, ptr %7, align 4
  br label %2897

2893:                                             ; preds = %2875
  %2894 = landingpad { ptr, i32 }
          cleanup
  %2895 = extractvalue { ptr, i32 } %2894, 0
  store ptr %2895, ptr %6, align 8
  %2896 = extractvalue { ptr, i32 } %2894, 1
  store i32 %2896, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %497) #10
  br label %2897

2897:                                             ; preds = %2893, %2889
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %498) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %498) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %497) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %495) #10
  br label %2898

2898:                                             ; preds = %2897, %2885
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %496) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %496) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %495) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %493) #10
  br label %2899

2899:                                             ; preds = %2898, %2881
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %494) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %494) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %493) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %491) #10
  br label %2900

2900:                                             ; preds = %2899, %2877
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %492) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %492) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %491) #10
  br label %2919

2901:                                             ; preds = %2865
  call void @llvm.lifetime.end.p0(i64 36, ptr %476) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %475) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %472) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %499) #10
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Ev(ptr noundef nonnull align 4 dereferenceable(64) %499)
  call void @llvm.lifetime.start.p0(i64 16, ptr %500) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %501) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %502) #10
  store float 1.000000e+00, ptr %502, align 4, !tbaa !22
  %2902 = getelementptr inbounds float, ptr %502, i64 1
  store float 2.000000e+00, ptr %2902, align 4, !tbaa !22
  %2903 = getelementptr inbounds float, ptr %502, i64 2
  store float 3.000000e+00, ptr %2903, align 4, !tbaa !22
  %2904 = getelementptr inbounds float, ptr %502, i64 3
  store float 4.000000e+00, ptr %2904, align 4, !tbaa !22
  %2905 = getelementptr inbounds %"class.std::initializer_list.14", ptr %501, i32 0, i32 0
  store ptr %502, ptr %2905, align 8, !tbaa !19
  %2906 = getelementptr inbounds %"class.std::initializer_list.14", ptr %501, i32 0, i32 1
  store i64 4, ptr %2906, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %500, ptr noundef nonnull align 8 dereferenceable(16) %501)
  %2907 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE9set_blockILi2ELi2EEERS1_RKNS0_IfXT_EXT0_EEEii(ptr noundef nonnull align 4 dereferenceable(64) %499, ptr noundef nonnull align 4 dereferenceable(16) %500, i32 noundef 0, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 64, ptr %503) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %504) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %505) #10
  call void @llvm.memset.p0.i64(ptr align 4 %505, i8 0, i64 64, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %505, ptr align 4 @constinit.67, i64 64, i1 false), !tbaa.struct !24
  %2908 = getelementptr inbounds %"class.std::initializer_list.14", ptr %504, i32 0, i32 0
  store ptr %505, ptr %2908, align 8, !tbaa !19
  %2909 = getelementptr inbounds %"class.std::initializer_list.14", ptr %504, i32 0, i32 1
  store i64 16, ptr %2909, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %503, ptr noundef nonnull align 8 dereferenceable(16) %504)
  %2910 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %2907, ptr noundef nonnull align 4 dereferenceable(64) %503)
  %2911 = zext i1 %2910 to i32
  %2912 = icmp eq i32 %2911, 0
  call void @llvm.lifetime.end.p0(i64 64, ptr %505) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %504) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %503) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %502) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %501) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %500) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %499) #10
  br i1 %2912, label %2913, label %2944

2913:                                             ; preds = %2901
  call void @llvm.lifetime.start.p0(i64 32, ptr %506) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %507) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %507) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %506, ptr noundef @.str.68, ptr noundef nonnull align 1 dereferenceable(1) %507)
          to label %2914 unwind label %2920

2914:                                             ; preds = %2913
  call void @llvm.lifetime.start.p0(i64 32, ptr %508) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %509) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %509) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %508, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %509)
          to label %2915 unwind label %2924

2915:                                             ; preds = %2914
  call void @llvm.lifetime.start.p0(i64 32, ptr %510) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %511) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %511) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %510, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %511)
          to label %2916 unwind label %2928

2916:                                             ; preds = %2915
  call void @llvm.lifetime.start.p0(i64 32, ptr %512) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %513) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %513) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %512, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %513)
          to label %2917 unwind label %2932

2917:                                             ; preds = %2916
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %506, ptr noundef nonnull align 8 dereferenceable(32) %508, ptr noundef nonnull align 8 dereferenceable(32) %510, ptr noundef nonnull align 8 dereferenceable(32) %512, i32 noundef 120) #11
          to label %2918 unwind label %2936

2918:                                             ; preds = %2917
  unreachable

2919:                                             ; preds = %2900, %2864
  call void @llvm.lifetime.end.p0(i64 36, ptr %476) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %475) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %472) #10
  br label %4629

2920:                                             ; preds = %2913
  %2921 = landingpad { ptr, i32 }
          cleanup
  %2922 = extractvalue { ptr, i32 } %2921, 0
  store ptr %2922, ptr %6, align 8
  %2923 = extractvalue { ptr, i32 } %2921, 1
  store i32 %2923, ptr %7, align 4
  br label %2943

2924:                                             ; preds = %2914
  %2925 = landingpad { ptr, i32 }
          cleanup
  %2926 = extractvalue { ptr, i32 } %2925, 0
  store ptr %2926, ptr %6, align 8
  %2927 = extractvalue { ptr, i32 } %2925, 1
  store i32 %2927, ptr %7, align 4
  br label %2942

2928:                                             ; preds = %2915
  %2929 = landingpad { ptr, i32 }
          cleanup
  %2930 = extractvalue { ptr, i32 } %2929, 0
  store ptr %2930, ptr %6, align 8
  %2931 = extractvalue { ptr, i32 } %2929, 1
  store i32 %2931, ptr %7, align 4
  br label %2941

2932:                                             ; preds = %2916
  %2933 = landingpad { ptr, i32 }
          cleanup
  %2934 = extractvalue { ptr, i32 } %2933, 0
  store ptr %2934, ptr %6, align 8
  %2935 = extractvalue { ptr, i32 } %2933, 1
  store i32 %2935, ptr %7, align 4
  br label %2940

2936:                                             ; preds = %2917
  %2937 = landingpad { ptr, i32 }
          cleanup
  %2938 = extractvalue { ptr, i32 } %2937, 0
  store ptr %2938, ptr %6, align 8
  %2939 = extractvalue { ptr, i32 } %2937, 1
  store i32 %2939, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %512) #10
  br label %2940

2940:                                             ; preds = %2936, %2932
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %513) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %513) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %512) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %510) #10
  br label %2941

2941:                                             ; preds = %2940, %2928
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %511) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %511) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %510) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %508) #10
  br label %2942

2942:                                             ; preds = %2941, %2924
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %509) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %509) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %508) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %506) #10
  br label %2943

2943:                                             ; preds = %2942, %2920
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %507) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %507) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %506) #10
  br label %4629

2944:                                             ; preds = %2901
  call void @llvm.lifetime.start.p0(i64 64, ptr %514) #10
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Ev(ptr noundef nonnull align 4 dereferenceable(64) %514)
  call void @llvm.lifetime.start.p0(i64 16, ptr %515) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %516) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %517) #10
  store float 1.000000e+00, ptr %517, align 4, !tbaa !22
  %2945 = getelementptr inbounds float, ptr %517, i64 1
  store float 2.000000e+00, ptr %2945, align 4, !tbaa !22
  %2946 = getelementptr inbounds float, ptr %517, i64 2
  store float 3.000000e+00, ptr %2946, align 4, !tbaa !22
  %2947 = getelementptr inbounds float, ptr %517, i64 3
  store float 4.000000e+00, ptr %2947, align 4, !tbaa !22
  %2948 = getelementptr inbounds %"class.std::initializer_list.14", ptr %516, i32 0, i32 0
  store ptr %517, ptr %2948, align 8, !tbaa !19
  %2949 = getelementptr inbounds %"class.std::initializer_list.14", ptr %516, i32 0, i32 1
  store i64 4, ptr %2949, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %515, ptr noundef nonnull align 8 dereferenceable(16) %516)
  %2950 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE9set_blockILi2ELi2EEERS1_RKNS0_IfXT_EXT0_EEEii(ptr noundef nonnull align 4 dereferenceable(64) %514, ptr noundef nonnull align 4 dereferenceable(16) %515, i32 noundef 0, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 64, ptr %518) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %519) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %520) #10
  call void @llvm.memset.p0.i64(ptr align 4 %520, i8 0, i64 64, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %520, ptr align 4 @constinit.69, i64 64, i1 false), !tbaa.struct !24
  %2951 = getelementptr inbounds %"class.std::initializer_list.14", ptr %519, i32 0, i32 0
  store ptr %520, ptr %2951, align 8, !tbaa !19
  %2952 = getelementptr inbounds %"class.std::initializer_list.14", ptr %519, i32 0, i32 1
  store i64 16, ptr %2952, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %518, ptr noundef nonnull align 8 dereferenceable(16) %519)
  %2953 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %2950, ptr noundef nonnull align 4 dereferenceable(64) %518)
  %2954 = zext i1 %2953 to i32
  %2955 = icmp eq i32 %2954, 0
  call void @llvm.lifetime.end.p0(i64 64, ptr %520) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %519) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %518) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %517) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %516) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %515) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %514) #10
  br i1 %2955, label %2956, label %2986

2956:                                             ; preds = %2944
  call void @llvm.lifetime.start.p0(i64 32, ptr %521) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %522) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %522) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %521, ptr noundef @.str.70, ptr noundef nonnull align 1 dereferenceable(1) %522)
          to label %2957 unwind label %2962

2957:                                             ; preds = %2956
  call void @llvm.lifetime.start.p0(i64 32, ptr %523) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %524) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %524) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %523, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %524)
          to label %2958 unwind label %2966

2958:                                             ; preds = %2957
  call void @llvm.lifetime.start.p0(i64 32, ptr %525) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %526) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %526) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %525, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %526)
          to label %2959 unwind label %2970

2959:                                             ; preds = %2958
  call void @llvm.lifetime.start.p0(i64 32, ptr %527) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %528) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %528) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %527, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %528)
          to label %2960 unwind label %2974

2960:                                             ; preds = %2959
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %521, ptr noundef nonnull align 8 dereferenceable(32) %523, ptr noundef nonnull align 8 dereferenceable(32) %525, ptr noundef nonnull align 8 dereferenceable(32) %527, i32 noundef 121) #11
          to label %2961 unwind label %2978

2961:                                             ; preds = %2960
  unreachable

2962:                                             ; preds = %2956
  %2963 = landingpad { ptr, i32 }
          cleanup
  %2964 = extractvalue { ptr, i32 } %2963, 0
  store ptr %2964, ptr %6, align 8
  %2965 = extractvalue { ptr, i32 } %2963, 1
  store i32 %2965, ptr %7, align 4
  br label %2985

2966:                                             ; preds = %2957
  %2967 = landingpad { ptr, i32 }
          cleanup
  %2968 = extractvalue { ptr, i32 } %2967, 0
  store ptr %2968, ptr %6, align 8
  %2969 = extractvalue { ptr, i32 } %2967, 1
  store i32 %2969, ptr %7, align 4
  br label %2984

2970:                                             ; preds = %2958
  %2971 = landingpad { ptr, i32 }
          cleanup
  %2972 = extractvalue { ptr, i32 } %2971, 0
  store ptr %2972, ptr %6, align 8
  %2973 = extractvalue { ptr, i32 } %2971, 1
  store i32 %2973, ptr %7, align 4
  br label %2983

2974:                                             ; preds = %2959
  %2975 = landingpad { ptr, i32 }
          cleanup
  %2976 = extractvalue { ptr, i32 } %2975, 0
  store ptr %2976, ptr %6, align 8
  %2977 = extractvalue { ptr, i32 } %2975, 1
  store i32 %2977, ptr %7, align 4
  br label %2982

2978:                                             ; preds = %2960
  %2979 = landingpad { ptr, i32 }
          cleanup
  %2980 = extractvalue { ptr, i32 } %2979, 0
  store ptr %2980, ptr %6, align 8
  %2981 = extractvalue { ptr, i32 } %2979, 1
  store i32 %2981, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %527) #10
  br label %2982

2982:                                             ; preds = %2978, %2974
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %528) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %528) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %527) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %525) #10
  br label %2983

2983:                                             ; preds = %2982, %2970
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %526) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %526) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %525) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %523) #10
  br label %2984

2984:                                             ; preds = %2983, %2966
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %524) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %524) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %523) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %521) #10
  br label %2985

2985:                                             ; preds = %2984, %2962
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %522) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %522) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %521) #10
  br label %4629

2986:                                             ; preds = %2944
  call void @llvm.lifetime.start.p0(i64 64, ptr %529) #10
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Ev(ptr noundef nonnull align 4 dereferenceable(64) %529)
  call void @llvm.lifetime.start.p0(i64 16, ptr %530) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %531) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %532) #10
  store float 1.000000e+00, ptr %532, align 4, !tbaa !22
  %2987 = getelementptr inbounds float, ptr %532, i64 1
  store float 2.000000e+00, ptr %2987, align 4, !tbaa !22
  %2988 = getelementptr inbounds float, ptr %532, i64 2
  store float 3.000000e+00, ptr %2988, align 4, !tbaa !22
  %2989 = getelementptr inbounds float, ptr %532, i64 3
  store float 4.000000e+00, ptr %2989, align 4, !tbaa !22
  %2990 = getelementptr inbounds %"class.std::initializer_list.14", ptr %531, i32 0, i32 0
  store ptr %532, ptr %2990, align 8, !tbaa !19
  %2991 = getelementptr inbounds %"class.std::initializer_list.14", ptr %531, i32 0, i32 1
  store i64 4, ptr %2991, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %530, ptr noundef nonnull align 8 dereferenceable(16) %531)
  %2992 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE9set_blockILi2ELi2EEERS1_RKNS0_IfXT_EXT0_EEEii(ptr noundef nonnull align 4 dereferenceable(64) %529, ptr noundef nonnull align 4 dereferenceable(16) %530, i32 noundef 1, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 64, ptr %533) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %534) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %535) #10
  call void @llvm.memset.p0.i64(ptr align 4 %535, i8 0, i64 64, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %535, ptr align 4 @constinit.71, i64 64, i1 false), !tbaa.struct !24
  %2993 = getelementptr inbounds %"class.std::initializer_list.14", ptr %534, i32 0, i32 0
  store ptr %535, ptr %2993, align 8, !tbaa !19
  %2994 = getelementptr inbounds %"class.std::initializer_list.14", ptr %534, i32 0, i32 1
  store i64 16, ptr %2994, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %533, ptr noundef nonnull align 8 dereferenceable(16) %534)
  %2995 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %2992, ptr noundef nonnull align 4 dereferenceable(64) %533)
  %2996 = zext i1 %2995 to i32
  %2997 = icmp eq i32 %2996, 0
  call void @llvm.lifetime.end.p0(i64 64, ptr %535) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %534) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %533) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %532) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %531) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %530) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %529) #10
  br i1 %2997, label %2998, label %3028

2998:                                             ; preds = %2986
  call void @llvm.lifetime.start.p0(i64 32, ptr %536) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %537) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %537) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %536, ptr noundef @.str.72, ptr noundef nonnull align 1 dereferenceable(1) %537)
          to label %2999 unwind label %3004

2999:                                             ; preds = %2998
  call void @llvm.lifetime.start.p0(i64 32, ptr %538) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %539) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %539) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %538, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %539)
          to label %3000 unwind label %3008

3000:                                             ; preds = %2999
  call void @llvm.lifetime.start.p0(i64 32, ptr %540) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %541) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %541) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %540, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %541)
          to label %3001 unwind label %3012

3001:                                             ; preds = %3000
  call void @llvm.lifetime.start.p0(i64 32, ptr %542) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %543) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %543) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %542, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %543)
          to label %3002 unwind label %3016

3002:                                             ; preds = %3001
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %536, ptr noundef nonnull align 8 dereferenceable(32) %538, ptr noundef nonnull align 8 dereferenceable(32) %540, ptr noundef nonnull align 8 dereferenceable(32) %542, i32 noundef 122) #11
          to label %3003 unwind label %3020

3003:                                             ; preds = %3002
  unreachable

3004:                                             ; preds = %2998
  %3005 = landingpad { ptr, i32 }
          cleanup
  %3006 = extractvalue { ptr, i32 } %3005, 0
  store ptr %3006, ptr %6, align 8
  %3007 = extractvalue { ptr, i32 } %3005, 1
  store i32 %3007, ptr %7, align 4
  br label %3027

3008:                                             ; preds = %2999
  %3009 = landingpad { ptr, i32 }
          cleanup
  %3010 = extractvalue { ptr, i32 } %3009, 0
  store ptr %3010, ptr %6, align 8
  %3011 = extractvalue { ptr, i32 } %3009, 1
  store i32 %3011, ptr %7, align 4
  br label %3026

3012:                                             ; preds = %3000
  %3013 = landingpad { ptr, i32 }
          cleanup
  %3014 = extractvalue { ptr, i32 } %3013, 0
  store ptr %3014, ptr %6, align 8
  %3015 = extractvalue { ptr, i32 } %3013, 1
  store i32 %3015, ptr %7, align 4
  br label %3025

3016:                                             ; preds = %3001
  %3017 = landingpad { ptr, i32 }
          cleanup
  %3018 = extractvalue { ptr, i32 } %3017, 0
  store ptr %3018, ptr %6, align 8
  %3019 = extractvalue { ptr, i32 } %3017, 1
  store i32 %3019, ptr %7, align 4
  br label %3024

3020:                                             ; preds = %3002
  %3021 = landingpad { ptr, i32 }
          cleanup
  %3022 = extractvalue { ptr, i32 } %3021, 0
  store ptr %3022, ptr %6, align 8
  %3023 = extractvalue { ptr, i32 } %3021, 1
  store i32 %3023, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %542) #10
  br label %3024

3024:                                             ; preds = %3020, %3016
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %543) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %543) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %542) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %540) #10
  br label %3025

3025:                                             ; preds = %3024, %3012
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %541) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %541) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %540) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %538) #10
  br label %3026

3026:                                             ; preds = %3025, %3008
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %539) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %539) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %538) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %536) #10
  br label %3027

3027:                                             ; preds = %3026, %3004
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %537) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %537) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %536) #10
  br label %4629

3028:                                             ; preds = %2986
  call void @llvm.lifetime.start.p0(i64 16, ptr %544) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %545) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %546) #10
  store float 1.000000e+00, ptr %546, align 4, !tbaa !22
  %3029 = getelementptr inbounds float, ptr %546, i64 1
  store float 2.000000e+00, ptr %3029, align 4, !tbaa !22
  %3030 = getelementptr inbounds float, ptr %546, i64 2
  store float 3.000000e+00, ptr %3030, align 4, !tbaa !22
  %3031 = getelementptr inbounds float, ptr %546, i64 3
  store float 4.000000e+00, ptr %3031, align 4, !tbaa !22
  %3032 = getelementptr inbounds %"class.std::initializer_list.14", ptr %545, i32 0, i32 0
  store ptr %546, ptr %3032, align 8, !tbaa !19
  %3033 = getelementptr inbounds %"class.std::initializer_list.14", ptr %545, i32 0, i32 1
  store i64 4, ptr %3033, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %544, ptr noundef nonnull align 8 dereferenceable(16) %545)
  call void @llvm.lifetime.end.p0(i64 16, ptr %546) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %545) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %547) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %548) #10
  store i32 4, ptr %548, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %549) #10
  store i32 2, ptr %549, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi2EEC2IiiEERKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(8) %547, ptr noundef nonnull align 4 dereferenceable(4) %548, ptr noundef nonnull align 4 dereferenceable(4) %549)
  call void @llvm.lifetime.end.p0(i64 4, ptr %549) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %548) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %550) #10
  %3034 = call <2 x float> @_ZN3cgpmlIfLi2ELi2EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(16) %544, ptr noundef nonnull align 4 dereferenceable(8) %547)
  store <2 x float> %3034, ptr %550, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %551) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %552) #10
  store i32 8, ptr %552, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %553) #10
  store i32 20, ptr %553, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi2EEC2IiiEERKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(8) %551, ptr noundef nonnull align 4 dereferenceable(4) %552, ptr noundef nonnull align 4 dereferenceable(4) %553)
  %3035 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi2EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(8) %550, ptr noundef nonnull align 4 dereferenceable(8) %551)
  %3036 = zext i1 %3035 to i32
  %3037 = icmp eq i32 %3036, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %553) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %552) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %551) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %550) #10
  br i1 %3037, label %3038, label %3068

3038:                                             ; preds = %3028
  call void @llvm.lifetime.start.p0(i64 32, ptr %554) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %555) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %555) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %554, ptr noundef @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %555)
          to label %3039 unwind label %3044

3039:                                             ; preds = %3038
  call void @llvm.lifetime.start.p0(i64 32, ptr %556) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %557) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %557) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %556, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %557)
          to label %3040 unwind label %3048

3040:                                             ; preds = %3039
  call void @llvm.lifetime.start.p0(i64 32, ptr %558) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %559) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %559) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %558, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %559)
          to label %3041 unwind label %3052

3041:                                             ; preds = %3040
  call void @llvm.lifetime.start.p0(i64 32, ptr %560) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %561) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %561) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %560, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %561)
          to label %3042 unwind label %3056

3042:                                             ; preds = %3041
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %554, ptr noundef nonnull align 8 dereferenceable(32) %556, ptr noundef nonnull align 8 dereferenceable(32) %558, ptr noundef nonnull align 8 dereferenceable(32) %560, i32 noundef 133) #11
          to label %3043 unwind label %3060

3043:                                             ; preds = %3042
  unreachable

3044:                                             ; preds = %3038
  %3045 = landingpad { ptr, i32 }
          cleanup
  %3046 = extractvalue { ptr, i32 } %3045, 0
  store ptr %3046, ptr %6, align 8
  %3047 = extractvalue { ptr, i32 } %3045, 1
  store i32 %3047, ptr %7, align 4
  br label %3067

3048:                                             ; preds = %3039
  %3049 = landingpad { ptr, i32 }
          cleanup
  %3050 = extractvalue { ptr, i32 } %3049, 0
  store ptr %3050, ptr %6, align 8
  %3051 = extractvalue { ptr, i32 } %3049, 1
  store i32 %3051, ptr %7, align 4
  br label %3066

3052:                                             ; preds = %3040
  %3053 = landingpad { ptr, i32 }
          cleanup
  %3054 = extractvalue { ptr, i32 } %3053, 0
  store ptr %3054, ptr %6, align 8
  %3055 = extractvalue { ptr, i32 } %3053, 1
  store i32 %3055, ptr %7, align 4
  br label %3065

3056:                                             ; preds = %3041
  %3057 = landingpad { ptr, i32 }
          cleanup
  %3058 = extractvalue { ptr, i32 } %3057, 0
  store ptr %3058, ptr %6, align 8
  %3059 = extractvalue { ptr, i32 } %3057, 1
  store i32 %3059, ptr %7, align 4
  br label %3064

3060:                                             ; preds = %3042
  %3061 = landingpad { ptr, i32 }
          cleanup
  %3062 = extractvalue { ptr, i32 } %3061, 0
  store ptr %3062, ptr %6, align 8
  %3063 = extractvalue { ptr, i32 } %3061, 1
  store i32 %3063, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %560) #10
  br label %3064

3064:                                             ; preds = %3060, %3056
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %561) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %561) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %560) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %558) #10
  br label %3065

3065:                                             ; preds = %3064, %3052
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %559) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %559) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %558) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %556) #10
  br label %3066

3066:                                             ; preds = %3065, %3048
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %557) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %557) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %556) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %554) #10
  br label %3067

3067:                                             ; preds = %3066, %3044
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %555) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %555) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %554) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %547) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %544) #10
  br label %4629

3068:                                             ; preds = %3028
  call void @llvm.lifetime.end.p0(i64 8, ptr %547) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %544) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %562) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %563) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %564) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %564, ptr align 4 @constinit.74, i64 36, i1 false), !tbaa.struct !18
  %3069 = getelementptr inbounds %"class.std::initializer_list.14", ptr %563, i32 0, i32 0
  store ptr %564, ptr %3069, align 8, !tbaa !19
  %3070 = getelementptr inbounds %"class.std::initializer_list.14", ptr %563, i32 0, i32 1
  store i64 9, ptr %3070, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %562, ptr noundef nonnull align 8 dereferenceable(16) %563)
  call void @llvm.lifetime.end.p0(i64 36, ptr %564) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %563) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %565) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %566) #10
  store i32 4, ptr %566, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %567) #10
  store i32 2, ptr %567, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %568) #10
  store i32 6, ptr %568, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %565, ptr noundef nonnull align 4 dereferenceable(4) %566, ptr noundef nonnull align 4 dereferenceable(4) %567, ptr noundef nonnull align 4 dereferenceable(4) %568)
  call void @llvm.lifetime.end.p0(i64 4, ptr %568) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %567) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %566) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %569) #10
  %3071 = call { <2 x float>, float } @_ZN3cgpmlIfLi3ELi3EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(36) %562, ptr noundef nonnull align 4 dereferenceable(12) %565)
  store { <2 x float>, float } %3071, ptr %570, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %569, ptr align 8 %570, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 12, ptr %571) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %572) #10
  store i32 14, ptr %572, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %573) #10
  store i32 50, ptr %573, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %574) #10
  store i32 50, ptr %574, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %571, ptr noundef nonnull align 4 dereferenceable(4) %572, ptr noundef nonnull align 4 dereferenceable(4) %573, ptr noundef nonnull align 4 dereferenceable(4) %574)
  %3072 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %569, ptr noundef nonnull align 4 dereferenceable(12) %571)
  %3073 = zext i1 %3072 to i32
  %3074 = icmp eq i32 %3073, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %574) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %573) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %572) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %571) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %569) #10
  br i1 %3074, label %3075, label %3105

3075:                                             ; preds = %3068
  call void @llvm.lifetime.start.p0(i64 32, ptr %575) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %576) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %576) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %575, ptr noundef @.str.75, ptr noundef nonnull align 1 dereferenceable(1) %576)
          to label %3076 unwind label %3081

3076:                                             ; preds = %3075
  call void @llvm.lifetime.start.p0(i64 32, ptr %577) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %578) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %578) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %577, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %578)
          to label %3077 unwind label %3085

3077:                                             ; preds = %3076
  call void @llvm.lifetime.start.p0(i64 32, ptr %579) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %580) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %580) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %579, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %580)
          to label %3078 unwind label %3089

3078:                                             ; preds = %3077
  call void @llvm.lifetime.start.p0(i64 32, ptr %581) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %582) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %582) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %581, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %582)
          to label %3079 unwind label %3093

3079:                                             ; preds = %3078
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %575, ptr noundef nonnull align 8 dereferenceable(32) %577, ptr noundef nonnull align 8 dereferenceable(32) %579, ptr noundef nonnull align 8 dereferenceable(32) %581, i32 noundef 139) #11
          to label %3080 unwind label %3097

3080:                                             ; preds = %3079
  unreachable

3081:                                             ; preds = %3075
  %3082 = landingpad { ptr, i32 }
          cleanup
  %3083 = extractvalue { ptr, i32 } %3082, 0
  store ptr %3083, ptr %6, align 8
  %3084 = extractvalue { ptr, i32 } %3082, 1
  store i32 %3084, ptr %7, align 4
  br label %3104

3085:                                             ; preds = %3076
  %3086 = landingpad { ptr, i32 }
          cleanup
  %3087 = extractvalue { ptr, i32 } %3086, 0
  store ptr %3087, ptr %6, align 8
  %3088 = extractvalue { ptr, i32 } %3086, 1
  store i32 %3088, ptr %7, align 4
  br label %3103

3089:                                             ; preds = %3077
  %3090 = landingpad { ptr, i32 }
          cleanup
  %3091 = extractvalue { ptr, i32 } %3090, 0
  store ptr %3091, ptr %6, align 8
  %3092 = extractvalue { ptr, i32 } %3090, 1
  store i32 %3092, ptr %7, align 4
  br label %3102

3093:                                             ; preds = %3078
  %3094 = landingpad { ptr, i32 }
          cleanup
  %3095 = extractvalue { ptr, i32 } %3094, 0
  store ptr %3095, ptr %6, align 8
  %3096 = extractvalue { ptr, i32 } %3094, 1
  store i32 %3096, ptr %7, align 4
  br label %3101

3097:                                             ; preds = %3079
  %3098 = landingpad { ptr, i32 }
          cleanup
  %3099 = extractvalue { ptr, i32 } %3098, 0
  store ptr %3099, ptr %6, align 8
  %3100 = extractvalue { ptr, i32 } %3098, 1
  store i32 %3100, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %581) #10
  br label %3101

3101:                                             ; preds = %3097, %3093
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %582) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %582) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %581) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %579) #10
  br label %3102

3102:                                             ; preds = %3101, %3089
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %580) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %580) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %579) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %577) #10
  br label %3103

3103:                                             ; preds = %3102, %3085
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %578) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %578) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %577) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %575) #10
  br label %3104

3104:                                             ; preds = %3103, %3081
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %576) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %576) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %575) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %565) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %562) #10
  br label %4629

3105:                                             ; preds = %3068
  call void @llvm.lifetime.end.p0(i64 12, ptr %565) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %562) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %583) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %584) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %585) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %585, ptr align 4 @constinit.76, i64 64, i1 false), !tbaa.struct !24
  %3106 = getelementptr inbounds %"class.std::initializer_list.14", ptr %584, i32 0, i32 0
  store ptr %585, ptr %3106, align 8, !tbaa !19
  %3107 = getelementptr inbounds %"class.std::initializer_list.14", ptr %584, i32 0, i32 1
  store i64 16, ptr %3107, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %583, ptr noundef nonnull align 8 dereferenceable(16) %584)
  call void @llvm.lifetime.end.p0(i64 64, ptr %585) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %584) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %586) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %587) #10
  store float 4.000000e+00, ptr %587, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr %588) #10
  store float 2.000000e+00, ptr %588, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr %589) #10
  store float 6.000000e+00, ptr %589, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr %590) #10
  store float 3.000000e+00, ptr %590, align 4, !tbaa !22
  call void @_ZN3cgp14numarray_stackIfLi4EEC2ERKfS3_S3_S3_(ptr noundef nonnull align 4 dereferenceable(16) %586, ptr noundef nonnull align 4 dereferenceable(4) %587, ptr noundef nonnull align 4 dereferenceable(4) %588, ptr noundef nonnull align 4 dereferenceable(4) %589, ptr noundef nonnull align 4 dereferenceable(4) %590)
  call void @llvm.lifetime.end.p0(i64 4, ptr %590) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %589) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %588) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %587) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %591) #10
  %3108 = call { <2 x float>, <2 x float> } @_ZN3cgpmlIfLi4ELi4EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(64) %583, ptr noundef nonnull align 4 dereferenceable(16) %586)
  %3109 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %591, i32 0, i32 0
  %3110 = extractvalue { <2 x float>, <2 x float> } %3108, 0
  store <2 x float> %3110, ptr %3109, align 4
  %3111 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %591, i32 0, i32 1
  %3112 = extractvalue { <2 x float>, <2 x float> } %3108, 1
  store <2 x float> %3112, ptr %3111, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr %592) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %593) #10
  store float 2.900000e+01, ptr %593, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr %594) #10
  store float 4.400000e+01, ptr %594, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr %595) #10
  store float 5.900000e+01, ptr %595, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr %596) #10
  store float 6.700000e+01, ptr %596, align 4, !tbaa !22
  call void @_ZN3cgp14numarray_stackIfLi4EEC2ERKfS3_S3_S3_(ptr noundef nonnull align 4 dereferenceable(16) %592, ptr noundef nonnull align 4 dereferenceable(4) %593, ptr noundef nonnull align 4 dereferenceable(4) %594, ptr noundef nonnull align 4 dereferenceable(4) %595, ptr noundef nonnull align 4 dereferenceable(4) %596)
  %3113 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi4EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(16) %591, ptr noundef nonnull align 4 dereferenceable(16) %592)
  %3114 = zext i1 %3113 to i32
  %3115 = icmp eq i32 %3114, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %596) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %595) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %594) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %593) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %592) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %591) #10
  br i1 %3115, label %3116, label %3146

3116:                                             ; preds = %3105
  call void @llvm.lifetime.start.p0(i64 32, ptr %597) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %598) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %598) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %597, ptr noundef @.str.77, ptr noundef nonnull align 1 dereferenceable(1) %598)
          to label %3117 unwind label %3122

3117:                                             ; preds = %3116
  call void @llvm.lifetime.start.p0(i64 32, ptr %599) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %600) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %600) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %599, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %600)
          to label %3118 unwind label %3126

3118:                                             ; preds = %3117
  call void @llvm.lifetime.start.p0(i64 32, ptr %601) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %602) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %602) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %601, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %602)
          to label %3119 unwind label %3130

3119:                                             ; preds = %3118
  call void @llvm.lifetime.start.p0(i64 32, ptr %603) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %604) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %604) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %603, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %604)
          to label %3120 unwind label %3134

3120:                                             ; preds = %3119
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %597, ptr noundef nonnull align 8 dereferenceable(32) %599, ptr noundef nonnull align 8 dereferenceable(32) %601, ptr noundef nonnull align 8 dereferenceable(32) %603, i32 noundef 145) #11
          to label %3121 unwind label %3138

3121:                                             ; preds = %3120
  unreachable

3122:                                             ; preds = %3116
  %3123 = landingpad { ptr, i32 }
          cleanup
  %3124 = extractvalue { ptr, i32 } %3123, 0
  store ptr %3124, ptr %6, align 8
  %3125 = extractvalue { ptr, i32 } %3123, 1
  store i32 %3125, ptr %7, align 4
  br label %3145

3126:                                             ; preds = %3117
  %3127 = landingpad { ptr, i32 }
          cleanup
  %3128 = extractvalue { ptr, i32 } %3127, 0
  store ptr %3128, ptr %6, align 8
  %3129 = extractvalue { ptr, i32 } %3127, 1
  store i32 %3129, ptr %7, align 4
  br label %3144

3130:                                             ; preds = %3118
  %3131 = landingpad { ptr, i32 }
          cleanup
  %3132 = extractvalue { ptr, i32 } %3131, 0
  store ptr %3132, ptr %6, align 8
  %3133 = extractvalue { ptr, i32 } %3131, 1
  store i32 %3133, ptr %7, align 4
  br label %3143

3134:                                             ; preds = %3119
  %3135 = landingpad { ptr, i32 }
          cleanup
  %3136 = extractvalue { ptr, i32 } %3135, 0
  store ptr %3136, ptr %6, align 8
  %3137 = extractvalue { ptr, i32 } %3135, 1
  store i32 %3137, ptr %7, align 4
  br label %3142

3138:                                             ; preds = %3120
  %3139 = landingpad { ptr, i32 }
          cleanup
  %3140 = extractvalue { ptr, i32 } %3139, 0
  store ptr %3140, ptr %6, align 8
  %3141 = extractvalue { ptr, i32 } %3139, 1
  store i32 %3141, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %603) #10
  br label %3142

3142:                                             ; preds = %3138, %3134
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %604) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %604) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %603) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %601) #10
  br label %3143

3143:                                             ; preds = %3142, %3130
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %602) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %602) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %601) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %599) #10
  br label %3144

3144:                                             ; preds = %3143, %3126
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %600) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %600) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %599) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %597) #10
  br label %3145

3145:                                             ; preds = %3144, %3122
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %598) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %598) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %597) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %586) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %583) #10
  br label %4629

3146:                                             ; preds = %3105
  call void @llvm.lifetime.end.p0(i64 16, ptr %586) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %583) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %605) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %606) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %607) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %607, ptr align 4 @constinit.78, i64 24, i1 false), !tbaa.struct !5
  %3147 = getelementptr inbounds %"class.std::initializer_list", ptr %606, i32 0, i32 0
  store ptr %607, ptr %3147, align 8, !tbaa !9
  %3148 = getelementptr inbounds %"class.std::initializer_list", ptr %606, i32 0, i32 1
  store i64 6, ptr %3148, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi3ELi2EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %605, ptr noundef nonnull align 8 dereferenceable(16) %606)
  call void @llvm.lifetime.end.p0(i64 24, ptr %607) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %606) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %608) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %609) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %610) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %610, ptr align 4 @constinit.79, i64 24, i1 false), !tbaa.struct !5
  %3149 = getelementptr inbounds %"class.std::initializer_list", ptr %609, i32 0, i32 0
  store ptr %610, ptr %3149, align 8, !tbaa !9
  %3150 = getelementptr inbounds %"class.std::initializer_list", ptr %609, i32 0, i32 1
  store i64 6, ptr %3150, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi3ELi2EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %608, ptr noundef nonnull align 8 dereferenceable(16) %609)
  call void @llvm.lifetime.end.p0(i64 24, ptr %610) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %609) #10
  %3151 = call noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgpmIIiLi3ELi2EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_RKS3_(ptr noundef nonnull align 4 dereferenceable(24) %605, ptr noundef nonnull align 4 dereferenceable(24) %608)
  call void @llvm.lifetime.start.p0(i64 24, ptr %611) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %612) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %613) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %613, ptr align 4 @constinit.80, i64 24, i1 false), !tbaa.struct !5
  %3152 = getelementptr inbounds %"class.std::initializer_list", ptr %612, i32 0, i32 0
  store ptr %613, ptr %3152, align 8, !tbaa !9
  %3153 = getelementptr inbounds %"class.std::initializer_list", ptr %612, i32 0, i32 1
  store i64 6, ptr %3153, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi3ELi2EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %611, ptr noundef nonnull align 8 dereferenceable(16) %612)
  %3154 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiLi3ELi2ELi3ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24) %605, ptr noundef nonnull align 4 dereferenceable(24) %611)
  %3155 = zext i1 %3154 to i32
  %3156 = icmp eq i32 %3155, 0
  call void @llvm.lifetime.end.p0(i64 24, ptr %613) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %612) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %611) #10
  br i1 %3156, label %3157, label %3187

3157:                                             ; preds = %3146
  call void @llvm.lifetime.start.p0(i64 32, ptr %614) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %615) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %615) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %614, ptr noundef @.str.81, ptr noundef nonnull align 1 dereferenceable(1) %615)
          to label %3158 unwind label %3163

3158:                                             ; preds = %3157
  call void @llvm.lifetime.start.p0(i64 32, ptr %616) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %617) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %617) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %616, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %617)
          to label %3159 unwind label %3167

3159:                                             ; preds = %3158
  call void @llvm.lifetime.start.p0(i64 32, ptr %618) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %619) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %619) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %618, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %619)
          to label %3160 unwind label %3171

3160:                                             ; preds = %3159
  call void @llvm.lifetime.start.p0(i64 32, ptr %620) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %621) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %621) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %620, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %621)
          to label %3161 unwind label %3175

3161:                                             ; preds = %3160
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %614, ptr noundef nonnull align 8 dereferenceable(32) %616, ptr noundef nonnull align 8 dereferenceable(32) %618, ptr noundef nonnull align 8 dereferenceable(32) %620, i32 noundef 157) #11
          to label %3162 unwind label %3179

3162:                                             ; preds = %3161
  unreachable

3163:                                             ; preds = %3157
  %3164 = landingpad { ptr, i32 }
          cleanup
  %3165 = extractvalue { ptr, i32 } %3164, 0
  store ptr %3165, ptr %6, align 8
  %3166 = extractvalue { ptr, i32 } %3164, 1
  store i32 %3166, ptr %7, align 4
  br label %3186

3167:                                             ; preds = %3158
  %3168 = landingpad { ptr, i32 }
          cleanup
  %3169 = extractvalue { ptr, i32 } %3168, 0
  store ptr %3169, ptr %6, align 8
  %3170 = extractvalue { ptr, i32 } %3168, 1
  store i32 %3170, ptr %7, align 4
  br label %3185

3171:                                             ; preds = %3159
  %3172 = landingpad { ptr, i32 }
          cleanup
  %3173 = extractvalue { ptr, i32 } %3172, 0
  store ptr %3173, ptr %6, align 8
  %3174 = extractvalue { ptr, i32 } %3172, 1
  store i32 %3174, ptr %7, align 4
  br label %3184

3175:                                             ; preds = %3160
  %3176 = landingpad { ptr, i32 }
          cleanup
  %3177 = extractvalue { ptr, i32 } %3176, 0
  store ptr %3177, ptr %6, align 8
  %3178 = extractvalue { ptr, i32 } %3176, 1
  store i32 %3178, ptr %7, align 4
  br label %3183

3179:                                             ; preds = %3161
  %3180 = landingpad { ptr, i32 }
          cleanup
  %3181 = extractvalue { ptr, i32 } %3180, 0
  store ptr %3181, ptr %6, align 8
  %3182 = extractvalue { ptr, i32 } %3180, 1
  store i32 %3182, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %620) #10
  br label %3183

3183:                                             ; preds = %3179, %3175
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %621) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %621) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %620) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %618) #10
  br label %3184

3184:                                             ; preds = %3183, %3171
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %619) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %619) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %618) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %616) #10
  br label %3185

3185:                                             ; preds = %3184, %3167
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %617) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %617) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %616) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %614) #10
  br label %3186

3186:                                             ; preds = %3185, %3163
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %615) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %615) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %614) #10
  br label %3241

3187:                                             ; preds = %3146
  %3188 = call noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgppLIiLi3ELi2EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_RKS3_(ptr noundef nonnull align 4 dereferenceable(24) %605, ptr noundef nonnull align 4 dereferenceable(24) %608)
  call void @llvm.lifetime.start.p0(i64 24, ptr %622) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %623) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %624) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %624, ptr align 4 @constinit.82, i64 24, i1 false), !tbaa.struct !5
  %3189 = getelementptr inbounds %"class.std::initializer_list", ptr %623, i32 0, i32 0
  store ptr %624, ptr %3189, align 8, !tbaa !9
  %3190 = getelementptr inbounds %"class.std::initializer_list", ptr %623, i32 0, i32 1
  store i64 6, ptr %3190, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi3ELi2EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %622, ptr noundef nonnull align 8 dereferenceable(16) %623)
  %3191 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiLi3ELi2ELi3ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24) %605, ptr noundef nonnull align 4 dereferenceable(24) %622)
  %3192 = zext i1 %3191 to i32
  %3193 = icmp eq i32 %3192, 0
  call void @llvm.lifetime.end.p0(i64 24, ptr %624) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %623) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %622) #10
  br i1 %3193, label %3194, label %3224

3194:                                             ; preds = %3187
  call void @llvm.lifetime.start.p0(i64 32, ptr %625) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %626) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %626) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %625, ptr noundef @.str.83, ptr noundef nonnull align 1 dereferenceable(1) %626)
          to label %3195 unwind label %3200

3195:                                             ; preds = %3194
  call void @llvm.lifetime.start.p0(i64 32, ptr %627) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %628) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %628) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %627, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %628)
          to label %3196 unwind label %3204

3196:                                             ; preds = %3195
  call void @llvm.lifetime.start.p0(i64 32, ptr %629) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %630) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %630) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %629, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %630)
          to label %3197 unwind label %3208

3197:                                             ; preds = %3196
  call void @llvm.lifetime.start.p0(i64 32, ptr %631) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %632) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %632) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %631, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %632)
          to label %3198 unwind label %3212

3198:                                             ; preds = %3197
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %625, ptr noundef nonnull align 8 dereferenceable(32) %627, ptr noundef nonnull align 8 dereferenceable(32) %629, ptr noundef nonnull align 8 dereferenceable(32) %631, i32 noundef 159) #11
          to label %3199 unwind label %3216

3199:                                             ; preds = %3198
  unreachable

3200:                                             ; preds = %3194
  %3201 = landingpad { ptr, i32 }
          cleanup
  %3202 = extractvalue { ptr, i32 } %3201, 0
  store ptr %3202, ptr %6, align 8
  %3203 = extractvalue { ptr, i32 } %3201, 1
  store i32 %3203, ptr %7, align 4
  br label %3223

3204:                                             ; preds = %3195
  %3205 = landingpad { ptr, i32 }
          cleanup
  %3206 = extractvalue { ptr, i32 } %3205, 0
  store ptr %3206, ptr %6, align 8
  %3207 = extractvalue { ptr, i32 } %3205, 1
  store i32 %3207, ptr %7, align 4
  br label %3222

3208:                                             ; preds = %3196
  %3209 = landingpad { ptr, i32 }
          cleanup
  %3210 = extractvalue { ptr, i32 } %3209, 0
  store ptr %3210, ptr %6, align 8
  %3211 = extractvalue { ptr, i32 } %3209, 1
  store i32 %3211, ptr %7, align 4
  br label %3221

3212:                                             ; preds = %3197
  %3213 = landingpad { ptr, i32 }
          cleanup
  %3214 = extractvalue { ptr, i32 } %3213, 0
  store ptr %3214, ptr %6, align 8
  %3215 = extractvalue { ptr, i32 } %3213, 1
  store i32 %3215, ptr %7, align 4
  br label %3220

3216:                                             ; preds = %3198
  %3217 = landingpad { ptr, i32 }
          cleanup
  %3218 = extractvalue { ptr, i32 } %3217, 0
  store ptr %3218, ptr %6, align 8
  %3219 = extractvalue { ptr, i32 } %3217, 1
  store i32 %3219, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %631) #10
  br label %3220

3220:                                             ; preds = %3216, %3212
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %632) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %632) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %631) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %629) #10
  br label %3221

3221:                                             ; preds = %3220, %3208
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %630) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %630) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %629) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %627) #10
  br label %3222

3222:                                             ; preds = %3221, %3204
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %628) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %628) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %627) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %625) #10
  br label %3223

3223:                                             ; preds = %3222, %3200
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %626) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %626) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %625) #10
  br label %3241

3224:                                             ; preds = %3187
  call void @llvm.lifetime.end.p0(i64 24, ptr %608) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %605) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %633) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %634) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %635) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %635, ptr align 4 @constinit.84, i64 24, i1 false), !tbaa.struct !5
  %3225 = getelementptr inbounds %"class.std::initializer_list", ptr %634, i32 0, i32 0
  store ptr %635, ptr %3225, align 8, !tbaa !9
  %3226 = getelementptr inbounds %"class.std::initializer_list", ptr %634, i32 0, i32 1
  store i64 6, ptr %3226, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %633, ptr noundef nonnull align 8 dereferenceable(16) %634)
  call void @llvm.lifetime.end.p0(i64 24, ptr %635) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %634) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %636) #10
  store i32 2, ptr %636, align 4, !tbaa !14
  %3227 = load i32, ptr %636, align 4, !tbaa !14
  %3228 = sitofp i32 %3227 to float
  %3229 = call noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgpmLIiLi2ELi3EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_f(ptr noundef nonnull align 4 dereferenceable(24) %633, float noundef %3228)
  call void @llvm.lifetime.start.p0(i64 24, ptr %637) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %638) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %639) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %639, ptr align 4 @constinit.85, i64 24, i1 false), !tbaa.struct !5
  %3230 = getelementptr inbounds %"class.std::initializer_list", ptr %638, i32 0, i32 0
  store ptr %639, ptr %3230, align 8, !tbaa !9
  %3231 = getelementptr inbounds %"class.std::initializer_list", ptr %638, i32 0, i32 1
  store i64 6, ptr %3231, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %637, ptr noundef nonnull align 8 dereferenceable(16) %638)
  %3232 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiLi2ELi3ELi2ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24) %633, ptr noundef nonnull align 4 dereferenceable(24) %637)
  %3233 = zext i1 %3232 to i32
  %3234 = icmp eq i32 %3233, 0
  call void @llvm.lifetime.end.p0(i64 24, ptr %639) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %638) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %637) #10
  br i1 %3234, label %3235, label %3266

3235:                                             ; preds = %3224
  call void @llvm.lifetime.start.p0(i64 32, ptr %640) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %641) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %641) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %640, ptr noundef @.str.86, ptr noundef nonnull align 1 dereferenceable(1) %641)
          to label %3236 unwind label %3242

3236:                                             ; preds = %3235
  call void @llvm.lifetime.start.p0(i64 32, ptr %642) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %643) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %643) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %642, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %643)
          to label %3237 unwind label %3246

3237:                                             ; preds = %3236
  call void @llvm.lifetime.start.p0(i64 32, ptr %644) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %645) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %645) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %644, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %645)
          to label %3238 unwind label %3250

3238:                                             ; preds = %3237
  call void @llvm.lifetime.start.p0(i64 32, ptr %646) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %647) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %647) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %646, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %647)
          to label %3239 unwind label %3254

3239:                                             ; preds = %3238
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %640, ptr noundef nonnull align 8 dereferenceable(32) %642, ptr noundef nonnull align 8 dereferenceable(32) %644, ptr noundef nonnull align 8 dereferenceable(32) %646, i32 noundef 166) #11
          to label %3240 unwind label %3258

3240:                                             ; preds = %3239
  unreachable

3241:                                             ; preds = %3223, %3186
  call void @llvm.lifetime.end.p0(i64 24, ptr %608) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %605) #10
  br label %4629

3242:                                             ; preds = %3235
  %3243 = landingpad { ptr, i32 }
          cleanup
  %3244 = extractvalue { ptr, i32 } %3243, 0
  store ptr %3244, ptr %6, align 8
  %3245 = extractvalue { ptr, i32 } %3243, 1
  store i32 %3245, ptr %7, align 4
  br label %3265

3246:                                             ; preds = %3236
  %3247 = landingpad { ptr, i32 }
          cleanup
  %3248 = extractvalue { ptr, i32 } %3247, 0
  store ptr %3248, ptr %6, align 8
  %3249 = extractvalue { ptr, i32 } %3247, 1
  store i32 %3249, ptr %7, align 4
  br label %3264

3250:                                             ; preds = %3237
  %3251 = landingpad { ptr, i32 }
          cleanup
  %3252 = extractvalue { ptr, i32 } %3251, 0
  store ptr %3252, ptr %6, align 8
  %3253 = extractvalue { ptr, i32 } %3251, 1
  store i32 %3253, ptr %7, align 4
  br label %3263

3254:                                             ; preds = %3238
  %3255 = landingpad { ptr, i32 }
          cleanup
  %3256 = extractvalue { ptr, i32 } %3255, 0
  store ptr %3256, ptr %6, align 8
  %3257 = extractvalue { ptr, i32 } %3255, 1
  store i32 %3257, ptr %7, align 4
  br label %3262

3258:                                             ; preds = %3239
  %3259 = landingpad { ptr, i32 }
          cleanup
  %3260 = extractvalue { ptr, i32 } %3259, 0
  store ptr %3260, ptr %6, align 8
  %3261 = extractvalue { ptr, i32 } %3259, 1
  store i32 %3261, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %646) #10
  br label %3262

3262:                                             ; preds = %3258, %3254
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %647) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %647) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %646) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %644) #10
  br label %3263

3263:                                             ; preds = %3262, %3250
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %645) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %645) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %644) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %642) #10
  br label %3264

3264:                                             ; preds = %3263, %3246
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %643) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %643) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %642) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %640) #10
  br label %3265

3265:                                             ; preds = %3264, %3242
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %641) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %641) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %640) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %636) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %633) #10
  br label %4629

3266:                                             ; preds = %3224
  call void @llvm.lifetime.end.p0(i64 4, ptr %636) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %633) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %648) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %649) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %650) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %650, ptr align 4 @constinit.87, i64 24, i1 false), !tbaa.struct !5
  %3267 = getelementptr inbounds %"class.std::initializer_list.14", ptr %649, i32 0, i32 0
  store ptr %650, ptr %3267, align 8, !tbaa !19
  %3268 = getelementptr inbounds %"class.std::initializer_list.14", ptr %649, i32 0, i32 1
  store i64 6, ptr %3268, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi3EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(24) %648, ptr noundef nonnull align 8 dereferenceable(16) %649)
  call void @llvm.lifetime.end.p0(i64 24, ptr %650) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %649) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %651) #10
  store float 2.000000e+00, ptr %651, align 4, !tbaa !22
  %3269 = load float, ptr %651, align 4, !tbaa !22
  %3270 = call noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgpdVIfLi2ELi3EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_f(ptr noundef nonnull align 4 dereferenceable(24) %648, float noundef %3269)
  call void @llvm.lifetime.start.p0(i64 24, ptr %652) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %653) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %654) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %654, ptr align 4 @constinit.88, i64 24, i1 false), !tbaa.struct !5
  %3271 = getelementptr inbounds %"class.std::initializer_list.14", ptr %653, i32 0, i32 0
  store ptr %654, ptr %3271, align 8, !tbaa !19
  %3272 = getelementptr inbounds %"class.std::initializer_list.14", ptr %653, i32 0, i32 1
  store i64 6, ptr %3272, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi3EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(24) %652, ptr noundef nonnull align 8 dereferenceable(16) %653)
  %3273 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi3ELi2ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24) %648, ptr noundef nonnull align 4 dereferenceable(24) %652)
  %3274 = zext i1 %3273 to i32
  %3275 = icmp eq i32 %3274, 0
  call void @llvm.lifetime.end.p0(i64 24, ptr %654) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %653) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %652) #10
  br i1 %3275, label %3276, label %3306

3276:                                             ; preds = %3266
  call void @llvm.lifetime.start.p0(i64 32, ptr %655) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %656) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %656) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %655, ptr noundef @.str.89, ptr noundef nonnull align 1 dereferenceable(1) %656)
          to label %3277 unwind label %3282

3277:                                             ; preds = %3276
  call void @llvm.lifetime.start.p0(i64 32, ptr %657) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %658) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %658) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %657, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %658)
          to label %3278 unwind label %3286

3278:                                             ; preds = %3277
  call void @llvm.lifetime.start.p0(i64 32, ptr %659) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %660) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %660) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %659, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %660)
          to label %3279 unwind label %3290

3279:                                             ; preds = %3278
  call void @llvm.lifetime.start.p0(i64 32, ptr %661) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %662) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %662) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %661, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %662)
          to label %3280 unwind label %3294

3280:                                             ; preds = %3279
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %655, ptr noundef nonnull align 8 dereferenceable(32) %657, ptr noundef nonnull align 8 dereferenceable(32) %659, ptr noundef nonnull align 8 dereferenceable(32) %661, i32 noundef 173) #11
          to label %3281 unwind label %3298

3281:                                             ; preds = %3280
  unreachable

3282:                                             ; preds = %3276
  %3283 = landingpad { ptr, i32 }
          cleanup
  %3284 = extractvalue { ptr, i32 } %3283, 0
  store ptr %3284, ptr %6, align 8
  %3285 = extractvalue { ptr, i32 } %3283, 1
  store i32 %3285, ptr %7, align 4
  br label %3305

3286:                                             ; preds = %3277
  %3287 = landingpad { ptr, i32 }
          cleanup
  %3288 = extractvalue { ptr, i32 } %3287, 0
  store ptr %3288, ptr %6, align 8
  %3289 = extractvalue { ptr, i32 } %3287, 1
  store i32 %3289, ptr %7, align 4
  br label %3304

3290:                                             ; preds = %3278
  %3291 = landingpad { ptr, i32 }
          cleanup
  %3292 = extractvalue { ptr, i32 } %3291, 0
  store ptr %3292, ptr %6, align 8
  %3293 = extractvalue { ptr, i32 } %3291, 1
  store i32 %3293, ptr %7, align 4
  br label %3303

3294:                                             ; preds = %3279
  %3295 = landingpad { ptr, i32 }
          cleanup
  %3296 = extractvalue { ptr, i32 } %3295, 0
  store ptr %3296, ptr %6, align 8
  %3297 = extractvalue { ptr, i32 } %3295, 1
  store i32 %3297, ptr %7, align 4
  br label %3302

3298:                                             ; preds = %3280
  %3299 = landingpad { ptr, i32 }
          cleanup
  %3300 = extractvalue { ptr, i32 } %3299, 0
  store ptr %3300, ptr %6, align 8
  %3301 = extractvalue { ptr, i32 } %3299, 1
  store i32 %3301, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %661) #10
  br label %3302

3302:                                             ; preds = %3298, %3294
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %662) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %662) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %661) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %659) #10
  br label %3303

3303:                                             ; preds = %3302, %3290
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %660) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %660) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %659) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %657) #10
  br label %3304

3304:                                             ; preds = %3303, %3286
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %658) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %658) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %657) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %655) #10
  br label %3305

3305:                                             ; preds = %3304, %3282
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %656) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %656) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %655) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %651) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %648) #10
  br label %4629

3306:                                             ; preds = %3266
  call void @llvm.lifetime.end.p0(i64 4, ptr %651) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %648) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %663) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %664) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %665) #10
  store float 1.000000e+00, ptr %665, align 4, !tbaa !22
  %3307 = getelementptr inbounds float, ptr %665, i64 1
  store float 2.000000e+00, ptr %3307, align 4, !tbaa !22
  %3308 = getelementptr inbounds float, ptr %665, i64 2
  store float 3.000000e+00, ptr %3308, align 4, !tbaa !22
  %3309 = getelementptr inbounds float, ptr %665, i64 3
  store float 4.000000e+00, ptr %3309, align 4, !tbaa !22
  %3310 = getelementptr inbounds %"class.std::initializer_list.14", ptr %664, i32 0, i32 0
  store ptr %665, ptr %3310, align 8, !tbaa !19
  %3311 = getelementptr inbounds %"class.std::initializer_list.14", ptr %664, i32 0, i32 1
  store i64 4, ptr %3311, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %663, ptr noundef nonnull align 8 dereferenceable(16) %664)
  call void @llvm.lifetime.end.p0(i64 16, ptr %665) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %664) #10
  %3312 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN3cgpmLIfLi2ELi2EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_f(ptr noundef nonnull align 4 dereferenceable(16) %663, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr %666) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %667) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %668) #10
  store float 2.000000e+00, ptr %668, align 4, !tbaa !22
  %3313 = getelementptr inbounds float, ptr %668, i64 1
  store float 4.000000e+00, ptr %3313, align 4, !tbaa !22
  %3314 = getelementptr inbounds float, ptr %668, i64 2
  store float 6.000000e+00, ptr %3314, align 4, !tbaa !22
  %3315 = getelementptr inbounds float, ptr %668, i64 3
  store float 8.000000e+00, ptr %3315, align 4, !tbaa !22
  %3316 = getelementptr inbounds %"class.std::initializer_list.14", ptr %667, i32 0, i32 0
  store ptr %668, ptr %3316, align 8, !tbaa !19
  %3317 = getelementptr inbounds %"class.std::initializer_list.14", ptr %667, i32 0, i32 1
  store i64 4, ptr %3317, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %666, ptr noundef nonnull align 8 dereferenceable(16) %667)
  %3318 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %663, ptr noundef nonnull align 4 dereferenceable(16) %666)
  %3319 = zext i1 %3318 to i32
  %3320 = icmp eq i32 %3319, 0
  call void @llvm.lifetime.end.p0(i64 16, ptr %668) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %667) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %666) #10
  br i1 %3320, label %3321, label %3351

3321:                                             ; preds = %3306
  call void @llvm.lifetime.start.p0(i64 32, ptr %669) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %670) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %670) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %669, ptr noundef @.str.90, ptr noundef nonnull align 1 dereferenceable(1) %670)
          to label %3322 unwind label %3327

3322:                                             ; preds = %3321
  call void @llvm.lifetime.start.p0(i64 32, ptr %671) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %672) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %672) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %671, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %672)
          to label %3323 unwind label %3331

3323:                                             ; preds = %3322
  call void @llvm.lifetime.start.p0(i64 32, ptr %673) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %674) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %674) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %673, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %674)
          to label %3324 unwind label %3335

3324:                                             ; preds = %3323
  call void @llvm.lifetime.start.p0(i64 32, ptr %675) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %676) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %676) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %675, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %676)
          to label %3325 unwind label %3339

3325:                                             ; preds = %3324
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %669, ptr noundef nonnull align 8 dereferenceable(32) %671, ptr noundef nonnull align 8 dereferenceable(32) %673, ptr noundef nonnull align 8 dereferenceable(32) %675, i32 noundef 184) #11
          to label %3326 unwind label %3343

3326:                                             ; preds = %3325
  unreachable

3327:                                             ; preds = %3321
  %3328 = landingpad { ptr, i32 }
          cleanup
  %3329 = extractvalue { ptr, i32 } %3328, 0
  store ptr %3329, ptr %6, align 8
  %3330 = extractvalue { ptr, i32 } %3328, 1
  store i32 %3330, ptr %7, align 4
  br label %3350

3331:                                             ; preds = %3322
  %3332 = landingpad { ptr, i32 }
          cleanup
  %3333 = extractvalue { ptr, i32 } %3332, 0
  store ptr %3333, ptr %6, align 8
  %3334 = extractvalue { ptr, i32 } %3332, 1
  store i32 %3334, ptr %7, align 4
  br label %3349

3335:                                             ; preds = %3323
  %3336 = landingpad { ptr, i32 }
          cleanup
  %3337 = extractvalue { ptr, i32 } %3336, 0
  store ptr %3337, ptr %6, align 8
  %3338 = extractvalue { ptr, i32 } %3336, 1
  store i32 %3338, ptr %7, align 4
  br label %3348

3339:                                             ; preds = %3324
  %3340 = landingpad { ptr, i32 }
          cleanup
  %3341 = extractvalue { ptr, i32 } %3340, 0
  store ptr %3341, ptr %6, align 8
  %3342 = extractvalue { ptr, i32 } %3340, 1
  store i32 %3342, ptr %7, align 4
  br label %3347

3343:                                             ; preds = %3325
  %3344 = landingpad { ptr, i32 }
          cleanup
  %3345 = extractvalue { ptr, i32 } %3344, 0
  store ptr %3345, ptr %6, align 8
  %3346 = extractvalue { ptr, i32 } %3344, 1
  store i32 %3346, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %675) #10
  br label %3347

3347:                                             ; preds = %3343, %3339
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %676) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %676) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %675) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %673) #10
  br label %3348

3348:                                             ; preds = %3347, %3335
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %674) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %674) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %673) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %671) #10
  br label %3349

3349:                                             ; preds = %3348, %3331
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %672) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %672) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %671) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %669) #10
  br label %3350

3350:                                             ; preds = %3349, %3327
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %670) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %670) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %669) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %663) #10
  br label %4629

3351:                                             ; preds = %3306
  call void @llvm.lifetime.end.p0(i64 16, ptr %663) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %677) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %678) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %679) #10
  store float 1.000000e+00, ptr %679, align 4, !tbaa !22
  %3352 = getelementptr inbounds float, ptr %679, i64 1
  store float 2.000000e+00, ptr %3352, align 4, !tbaa !22
  %3353 = getelementptr inbounds float, ptr %679, i64 2
  store float 3.000000e+00, ptr %3353, align 4, !tbaa !22
  %3354 = getelementptr inbounds float, ptr %679, i64 3
  store float 4.000000e+00, ptr %3354, align 4, !tbaa !22
  %3355 = getelementptr inbounds %"class.std::initializer_list.14", ptr %678, i32 0, i32 0
  store ptr %679, ptr %3355, align 8, !tbaa !19
  %3356 = getelementptr inbounds %"class.std::initializer_list.14", ptr %678, i32 0, i32 1
  store i64 4, ptr %3356, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %677, ptr noundef nonnull align 8 dereferenceable(16) %678)
  call void @llvm.lifetime.end.p0(i64 16, ptr %679) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %678) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %680) #10
  %3357 = call { <2 x float>, <2 x float> } @_ZN3cgpngIfLi2ELi2EEENS_12matrix_stackIT_XT0_EXT1_EEERKS3_(ptr noundef nonnull align 4 dereferenceable(16) %677)
  %3358 = getelementptr inbounds %"struct.cgp::matrix_stack.20", ptr %680, i32 0, i32 0
  %3359 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %3358, i32 0, i32 0
  %3360 = extractvalue { <2 x float>, <2 x float> } %3357, 0
  store <2 x float> %3360, ptr %3359, align 4
  %3361 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %3358, i32 0, i32 1
  %3362 = extractvalue { <2 x float>, <2 x float> } %3357, 1
  store <2 x float> %3362, ptr %3361, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr %681) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %682) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %683) #10
  store float -1.000000e+00, ptr %683, align 4, !tbaa !22
  %3363 = getelementptr inbounds float, ptr %683, i64 1
  store float -2.000000e+00, ptr %3363, align 4, !tbaa !22
  %3364 = getelementptr inbounds float, ptr %683, i64 2
  store float -3.000000e+00, ptr %3364, align 4, !tbaa !22
  %3365 = getelementptr inbounds float, ptr %683, i64 3
  store float -4.000000e+00, ptr %3365, align 4, !tbaa !22
  %3366 = getelementptr inbounds %"class.std::initializer_list.14", ptr %682, i32 0, i32 0
  store ptr %683, ptr %3366, align 8, !tbaa !19
  %3367 = getelementptr inbounds %"class.std::initializer_list.14", ptr %682, i32 0, i32 1
  store i64 4, ptr %3367, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %681, ptr noundef nonnull align 8 dereferenceable(16) %682)
  %3368 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %680, ptr noundef nonnull align 4 dereferenceable(16) %681)
  %3369 = zext i1 %3368 to i32
  %3370 = icmp eq i32 %3369, 0
  call void @llvm.lifetime.end.p0(i64 16, ptr %683) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %682) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %681) #10
  br i1 %3370, label %3371, label %3401

3371:                                             ; preds = %3351
  call void @llvm.lifetime.start.p0(i64 32, ptr %684) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %685) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %685) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %684, ptr noundef @.str.91, ptr noundef nonnull align 1 dereferenceable(1) %685)
          to label %3372 unwind label %3377

3372:                                             ; preds = %3371
  call void @llvm.lifetime.start.p0(i64 32, ptr %686) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %687) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %687) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %686, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %687)
          to label %3373 unwind label %3381

3373:                                             ; preds = %3372
  call void @llvm.lifetime.start.p0(i64 32, ptr %688) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %689) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %689) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %688, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %689)
          to label %3374 unwind label %3385

3374:                                             ; preds = %3373
  call void @llvm.lifetime.start.p0(i64 32, ptr %690) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %691) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %691) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %690, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %691)
          to label %3375 unwind label %3389

3375:                                             ; preds = %3374
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %684, ptr noundef nonnull align 8 dereferenceable(32) %686, ptr noundef nonnull align 8 dereferenceable(32) %688, ptr noundef nonnull align 8 dereferenceable(32) %690, i32 noundef 189) #11
          to label %3376 unwind label %3393

3376:                                             ; preds = %3375
  unreachable

3377:                                             ; preds = %3371
  %3378 = landingpad { ptr, i32 }
          cleanup
  %3379 = extractvalue { ptr, i32 } %3378, 0
  store ptr %3379, ptr %6, align 8
  %3380 = extractvalue { ptr, i32 } %3378, 1
  store i32 %3380, ptr %7, align 4
  br label %3400

3381:                                             ; preds = %3372
  %3382 = landingpad { ptr, i32 }
          cleanup
  %3383 = extractvalue { ptr, i32 } %3382, 0
  store ptr %3383, ptr %6, align 8
  %3384 = extractvalue { ptr, i32 } %3382, 1
  store i32 %3384, ptr %7, align 4
  br label %3399

3385:                                             ; preds = %3373
  %3386 = landingpad { ptr, i32 }
          cleanup
  %3387 = extractvalue { ptr, i32 } %3386, 0
  store ptr %3387, ptr %6, align 8
  %3388 = extractvalue { ptr, i32 } %3386, 1
  store i32 %3388, ptr %7, align 4
  br label %3398

3389:                                             ; preds = %3374
  %3390 = landingpad { ptr, i32 }
          cleanup
  %3391 = extractvalue { ptr, i32 } %3390, 0
  store ptr %3391, ptr %6, align 8
  %3392 = extractvalue { ptr, i32 } %3390, 1
  store i32 %3392, ptr %7, align 4
  br label %3397

3393:                                             ; preds = %3375
  %3394 = landingpad { ptr, i32 }
          cleanup
  %3395 = extractvalue { ptr, i32 } %3394, 0
  store ptr %3395, ptr %6, align 8
  %3396 = extractvalue { ptr, i32 } %3394, 1
  store i32 %3396, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %690) #10
  br label %3397

3397:                                             ; preds = %3393, %3389
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %691) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %691) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %690) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %688) #10
  br label %3398

3398:                                             ; preds = %3397, %3385
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %689) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %689) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %688) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %686) #10
  br label %3399

3399:                                             ; preds = %3398, %3381
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %687) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %687) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %686) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %684) #10
  br label %3400

3400:                                             ; preds = %3399, %3377
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %685) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %685) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %684) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %680) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %677) #10
  br label %4629

3401:                                             ; preds = %3351
  call void @llvm.lifetime.end.p0(i64 16, ptr %680) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %677) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %692) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %693) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %694) #10
  store i32 1, ptr %694, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %695) #10
  store i32 2, ptr %695, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %696) #10
  store i32 3, ptr %696, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %693, ptr noundef nonnull align 4 dereferenceable(4) %694, ptr noundef nonnull align 4 dereferenceable(4) %695, ptr noundef nonnull align 4 dereferenceable(4) %696)
  call void @_ZN3cgp12matrix_stackIfLi3ELi1EEC2ERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(12) %692, ptr noundef nonnull align 4 dereferenceable(12) %693)
  call void @llvm.lifetime.end.p0(i64 4, ptr %696) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %695) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %694) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %693) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %697) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %698) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %699) #10
  store float 1.000000e+00, ptr %699, align 4, !tbaa !22
  %3402 = getelementptr inbounds float, ptr %699, i64 1
  store float 2.000000e+00, ptr %3402, align 4, !tbaa !22
  %3403 = getelementptr inbounds float, ptr %699, i64 2
  store float 3.000000e+00, ptr %3403, align 4, !tbaa !22
  %3404 = getelementptr inbounds %"class.std::initializer_list.14", ptr %698, i32 0, i32 0
  store ptr %699, ptr %3404, align 8, !tbaa !19
  %3405 = getelementptr inbounds %"class.std::initializer_list.14", ptr %698, i32 0, i32 1
  store i64 3, ptr %3405, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi1EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(12) %697, ptr noundef nonnull align 8 dereferenceable(16) %698)
  %3406 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi1ELi3ELi1EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(12) %692, ptr noundef nonnull align 4 dereferenceable(12) %697)
  %3407 = zext i1 %3406 to i32
  %3408 = icmp eq i32 %3407, 0
  call void @llvm.lifetime.end.p0(i64 12, ptr %699) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %698) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %697) #10
  br i1 %3408, label %3409, label %3439

3409:                                             ; preds = %3401
  call void @llvm.lifetime.start.p0(i64 32, ptr %700) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %701) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %701) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %700, ptr noundef @.str.92, ptr noundef nonnull align 1 dereferenceable(1) %701)
          to label %3410 unwind label %3415

3410:                                             ; preds = %3409
  call void @llvm.lifetime.start.p0(i64 32, ptr %702) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %703) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %703) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %702, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %703)
          to label %3411 unwind label %3419

3411:                                             ; preds = %3410
  call void @llvm.lifetime.start.p0(i64 32, ptr %704) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %705) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %705) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %704, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %705)
          to label %3412 unwind label %3423

3412:                                             ; preds = %3411
  call void @llvm.lifetime.start.p0(i64 32, ptr %706) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %707) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %707) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %706, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %707)
          to label %3413 unwind label %3427

3413:                                             ; preds = %3412
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %700, ptr noundef nonnull align 8 dereferenceable(32) %702, ptr noundef nonnull align 8 dereferenceable(32) %704, ptr noundef nonnull align 8 dereferenceable(32) %706, i32 noundef 198) #11
          to label %3414 unwind label %3431

3414:                                             ; preds = %3413
  unreachable

3415:                                             ; preds = %3409
  %3416 = landingpad { ptr, i32 }
          cleanup
  %3417 = extractvalue { ptr, i32 } %3416, 0
  store ptr %3417, ptr %6, align 8
  %3418 = extractvalue { ptr, i32 } %3416, 1
  store i32 %3418, ptr %7, align 4
  br label %3438

3419:                                             ; preds = %3410
  %3420 = landingpad { ptr, i32 }
          cleanup
  %3421 = extractvalue { ptr, i32 } %3420, 0
  store ptr %3421, ptr %6, align 8
  %3422 = extractvalue { ptr, i32 } %3420, 1
  store i32 %3422, ptr %7, align 4
  br label %3437

3423:                                             ; preds = %3411
  %3424 = landingpad { ptr, i32 }
          cleanup
  %3425 = extractvalue { ptr, i32 } %3424, 0
  store ptr %3425, ptr %6, align 8
  %3426 = extractvalue { ptr, i32 } %3424, 1
  store i32 %3426, ptr %7, align 4
  br label %3436

3427:                                             ; preds = %3412
  %3428 = landingpad { ptr, i32 }
          cleanup
  %3429 = extractvalue { ptr, i32 } %3428, 0
  store ptr %3429, ptr %6, align 8
  %3430 = extractvalue { ptr, i32 } %3428, 1
  store i32 %3430, ptr %7, align 4
  br label %3435

3431:                                             ; preds = %3413
  %3432 = landingpad { ptr, i32 }
          cleanup
  %3433 = extractvalue { ptr, i32 } %3432, 0
  store ptr %3433, ptr %6, align 8
  %3434 = extractvalue { ptr, i32 } %3432, 1
  store i32 %3434, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %706) #10
  br label %3435

3435:                                             ; preds = %3431, %3427
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %707) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %707) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %706) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %704) #10
  br label %3436

3436:                                             ; preds = %3435, %3423
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %705) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %705) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %704) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %702) #10
  br label %3437

3437:                                             ; preds = %3436, %3419
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %703) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %703) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %702) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %700) #10
  br label %3438

3438:                                             ; preds = %3437, %3415
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %701) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %701) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %700) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %692) #10
  br label %4629

3439:                                             ; preds = %3401
  call void @llvm.lifetime.end.p0(i64 12, ptr %692) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %708) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %709) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %710) #10
  store i32 1, ptr %710, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %711) #10
  store i32 2, ptr %711, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %712) #10
  store i32 3, ptr %712, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %709, ptr noundef nonnull align 4 dereferenceable(4) %710, ptr noundef nonnull align 4 dereferenceable(4) %711, ptr noundef nonnull align 4 dereferenceable(4) %712)
  call void @_ZN3cgp12matrix_stackIfLi1ELi3EEC2ERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(12) %708, ptr noundef nonnull align 4 dereferenceable(12) %709)
  call void @llvm.lifetime.end.p0(i64 4, ptr %712) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %711) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %710) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %709) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %713) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %714) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %715) #10
  store float 1.000000e+00, ptr %715, align 4, !tbaa !22
  %3440 = getelementptr inbounds float, ptr %715, i64 1
  store float 2.000000e+00, ptr %3440, align 4, !tbaa !22
  %3441 = getelementptr inbounds float, ptr %715, i64 2
  store float 3.000000e+00, ptr %3441, align 4, !tbaa !22
  %3442 = getelementptr inbounds %"class.std::initializer_list.14", ptr %714, i32 0, i32 0
  store ptr %715, ptr %3442, align 8, !tbaa !19
  %3443 = getelementptr inbounds %"class.std::initializer_list.14", ptr %714, i32 0, i32 1
  store i64 3, ptr %3443, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi1ELi3EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(12) %713, ptr noundef nonnull align 8 dereferenceable(16) %714)
  %3444 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi1ELi3ELi1ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(12) %708, ptr noundef nonnull align 4 dereferenceable(12) %713)
  %3445 = zext i1 %3444 to i32
  %3446 = icmp eq i32 %3445, 0
  call void @llvm.lifetime.end.p0(i64 12, ptr %715) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %714) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %713) #10
  br i1 %3446, label %3447, label %3477

3447:                                             ; preds = %3439
  call void @llvm.lifetime.start.p0(i64 32, ptr %716) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %717) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %717) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %716, ptr noundef @.str.93, ptr noundef nonnull align 1 dereferenceable(1) %717)
          to label %3448 unwind label %3453

3448:                                             ; preds = %3447
  call void @llvm.lifetime.start.p0(i64 32, ptr %718) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %719) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %719) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %718, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %719)
          to label %3449 unwind label %3457

3449:                                             ; preds = %3448
  call void @llvm.lifetime.start.p0(i64 32, ptr %720) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %721) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %721) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %720, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %721)
          to label %3450 unwind label %3461

3450:                                             ; preds = %3449
  call void @llvm.lifetime.start.p0(i64 32, ptr %722) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %723) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %723) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %722, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %723)
          to label %3451 unwind label %3465

3451:                                             ; preds = %3450
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %716, ptr noundef nonnull align 8 dereferenceable(32) %718, ptr noundef nonnull align 8 dereferenceable(32) %720, ptr noundef nonnull align 8 dereferenceable(32) %722, i32 noundef 202) #11
          to label %3452 unwind label %3469

3452:                                             ; preds = %3451
  unreachable

3453:                                             ; preds = %3447
  %3454 = landingpad { ptr, i32 }
          cleanup
  %3455 = extractvalue { ptr, i32 } %3454, 0
  store ptr %3455, ptr %6, align 8
  %3456 = extractvalue { ptr, i32 } %3454, 1
  store i32 %3456, ptr %7, align 4
  br label %3476

3457:                                             ; preds = %3448
  %3458 = landingpad { ptr, i32 }
          cleanup
  %3459 = extractvalue { ptr, i32 } %3458, 0
  store ptr %3459, ptr %6, align 8
  %3460 = extractvalue { ptr, i32 } %3458, 1
  store i32 %3460, ptr %7, align 4
  br label %3475

3461:                                             ; preds = %3449
  %3462 = landingpad { ptr, i32 }
          cleanup
  %3463 = extractvalue { ptr, i32 } %3462, 0
  store ptr %3463, ptr %6, align 8
  %3464 = extractvalue { ptr, i32 } %3462, 1
  store i32 %3464, ptr %7, align 4
  br label %3474

3465:                                             ; preds = %3450
  %3466 = landingpad { ptr, i32 }
          cleanup
  %3467 = extractvalue { ptr, i32 } %3466, 0
  store ptr %3467, ptr %6, align 8
  %3468 = extractvalue { ptr, i32 } %3466, 1
  store i32 %3468, ptr %7, align 4
  br label %3473

3469:                                             ; preds = %3451
  %3470 = landingpad { ptr, i32 }
          cleanup
  %3471 = extractvalue { ptr, i32 } %3470, 0
  store ptr %3471, ptr %6, align 8
  %3472 = extractvalue { ptr, i32 } %3470, 1
  store i32 %3472, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %722) #10
  br label %3473

3473:                                             ; preds = %3469, %3465
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %723) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %723) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %722) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %720) #10
  br label %3474

3474:                                             ; preds = %3473, %3461
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %721) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %721) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %720) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %718) #10
  br label %3475

3475:                                             ; preds = %3474, %3457
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %719) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %719) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %718) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %716) #10
  br label %3476

3476:                                             ; preds = %3475, %3453
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %717) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %717) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %716) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %708) #10
  br label %4629

3477:                                             ; preds = %3439
  call void @llvm.lifetime.end.p0(i64 12, ptr %708) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %724) #10
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1Ev(ptr noundef nonnull align 4 dereferenceable(16) %724)
  %3478 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN3cgp12matrix_stackIfLi2ELi2EE4fillEf(ptr noundef nonnull align 4 dereferenceable(16) %724, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 36, ptr %725) #10
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1Ev(ptr noundef nonnull align 4 dereferenceable(36) %725)
  %3479 = call noundef nonnull align 4 dereferenceable(36) ptr @_ZN3cgp12matrix_stackIfLi3ELi3EE4fillEf(ptr noundef nonnull align 4 dereferenceable(36) %725, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 64, ptr %726) #10
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Ev(ptr noundef nonnull align 4 dereferenceable(64) %726)
  %3480 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE4fillEf(ptr noundef nonnull align 4 dereferenceable(64) %726, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 24, ptr %727) #10
  call void @_ZN3cgp12matrix_stackIfLi2ELi3EEC2Ev(ptr noundef nonnull align 4 dereferenceable(24) %727)
  call void @llvm.lifetime.start.p0(i64 4, ptr %728) #10
  store float 2.000000e+00, ptr %728, align 4, !tbaa !22
  %3481 = call noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgp12matrix_stackIfLi2ELi3EE4fillERKf(ptr noundef nonnull align 4 dereferenceable(24) %727, ptr noundef nonnull align 4 dereferenceable(4) %728)
  call void @llvm.lifetime.end.p0(i64 4, ptr %728) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %729) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %730) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %731) #10
  store float 2.000000e+00, ptr %731, align 4, !tbaa !22
  %3482 = getelementptr inbounds float, ptr %731, i64 1
  store float 2.000000e+00, ptr %3482, align 4, !tbaa !22
  %3483 = getelementptr inbounds float, ptr %731, i64 2
  store float 2.000000e+00, ptr %3483, align 4, !tbaa !22
  %3484 = getelementptr inbounds float, ptr %731, i64 3
  store float 2.000000e+00, ptr %3484, align 4, !tbaa !22
  %3485 = getelementptr inbounds %"class.std::initializer_list.14", ptr %730, i32 0, i32 0
  store ptr %731, ptr %3485, align 8, !tbaa !19
  %3486 = getelementptr inbounds %"class.std::initializer_list.14", ptr %730, i32 0, i32 1
  store i64 4, ptr %3486, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %729, ptr noundef nonnull align 8 dereferenceable(16) %730)
  %3487 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %724, ptr noundef nonnull align 4 dereferenceable(16) %729)
  %3488 = zext i1 %3487 to i32
  %3489 = icmp eq i32 %3488, 0
  call void @llvm.lifetime.end.p0(i64 16, ptr %731) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %730) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %729) #10
  br i1 %3489, label %3490, label %3520

3490:                                             ; preds = %3477
  call void @llvm.lifetime.start.p0(i64 32, ptr %732) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %733) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %733) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %732, ptr noundef @.str.94, ptr noundef nonnull align 1 dereferenceable(1) %733)
          to label %3491 unwind label %3496

3491:                                             ; preds = %3490
  call void @llvm.lifetime.start.p0(i64 32, ptr %734) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %735) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %735) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %734, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %735)
          to label %3492 unwind label %3500

3492:                                             ; preds = %3491
  call void @llvm.lifetime.start.p0(i64 32, ptr %736) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %737) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %737) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %736, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %737)
          to label %3493 unwind label %3504

3493:                                             ; preds = %3492
  call void @llvm.lifetime.start.p0(i64 32, ptr %738) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %739) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %739) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %738, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %739)
          to label %3494 unwind label %3508

3494:                                             ; preds = %3493
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %732, ptr noundef nonnull align 8 dereferenceable(32) %734, ptr noundef nonnull align 8 dereferenceable(32) %736, ptr noundef nonnull align 8 dereferenceable(32) %738, i32 noundef 214) #11
          to label %3495 unwind label %3512

3495:                                             ; preds = %3494
  unreachable

3496:                                             ; preds = %3490
  %3497 = landingpad { ptr, i32 }
          cleanup
  %3498 = extractvalue { ptr, i32 } %3497, 0
  store ptr %3498, ptr %6, align 8
  %3499 = extractvalue { ptr, i32 } %3497, 1
  store i32 %3499, ptr %7, align 4
  br label %3519

3500:                                             ; preds = %3491
  %3501 = landingpad { ptr, i32 }
          cleanup
  %3502 = extractvalue { ptr, i32 } %3501, 0
  store ptr %3502, ptr %6, align 8
  %3503 = extractvalue { ptr, i32 } %3501, 1
  store i32 %3503, ptr %7, align 4
  br label %3518

3504:                                             ; preds = %3492
  %3505 = landingpad { ptr, i32 }
          cleanup
  %3506 = extractvalue { ptr, i32 } %3505, 0
  store ptr %3506, ptr %6, align 8
  %3507 = extractvalue { ptr, i32 } %3505, 1
  store i32 %3507, ptr %7, align 4
  br label %3517

3508:                                             ; preds = %3493
  %3509 = landingpad { ptr, i32 }
          cleanup
  %3510 = extractvalue { ptr, i32 } %3509, 0
  store ptr %3510, ptr %6, align 8
  %3511 = extractvalue { ptr, i32 } %3509, 1
  store i32 %3511, ptr %7, align 4
  br label %3516

3512:                                             ; preds = %3494
  %3513 = landingpad { ptr, i32 }
          cleanup
  %3514 = extractvalue { ptr, i32 } %3513, 0
  store ptr %3514, ptr %6, align 8
  %3515 = extractvalue { ptr, i32 } %3513, 1
  store i32 %3515, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %738) #10
  br label %3516

3516:                                             ; preds = %3512, %3508
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %739) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %739) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %738) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %736) #10
  br label %3517

3517:                                             ; preds = %3516, %3504
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %737) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %737) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %736) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %734) #10
  br label %3518

3518:                                             ; preds = %3517, %3500
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %735) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %735) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %734) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %732) #10
  br label %3519

3519:                                             ; preds = %3518, %3496
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %733) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %733) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %732) #10
  br label %3640

3520:                                             ; preds = %3477
  call void @llvm.lifetime.start.p0(i64 36, ptr %740) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %741) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %742) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %742, ptr align 4 @constinit.95, i64 36, i1 false), !tbaa.struct !18
  %3521 = getelementptr inbounds %"class.std::initializer_list.14", ptr %741, i32 0, i32 0
  store ptr %742, ptr %3521, align 8, !tbaa !19
  %3522 = getelementptr inbounds %"class.std::initializer_list.14", ptr %741, i32 0, i32 1
  store i64 9, ptr %3522, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %740, ptr noundef nonnull align 8 dereferenceable(16) %741)
  %3523 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %725, ptr noundef nonnull align 4 dereferenceable(36) %740)
  %3524 = zext i1 %3523 to i32
  %3525 = icmp eq i32 %3524, 0
  call void @llvm.lifetime.end.p0(i64 36, ptr %742) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %741) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %740) #10
  br i1 %3525, label %3526, label %3556

3526:                                             ; preds = %3520
  call void @llvm.lifetime.start.p0(i64 32, ptr %743) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %744) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %744) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %743, ptr noundef @.str.96, ptr noundef nonnull align 1 dereferenceable(1) %744)
          to label %3527 unwind label %3532

3527:                                             ; preds = %3526
  call void @llvm.lifetime.start.p0(i64 32, ptr %745) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %746) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %746) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %745, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %746)
          to label %3528 unwind label %3536

3528:                                             ; preds = %3527
  call void @llvm.lifetime.start.p0(i64 32, ptr %747) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %748) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %748) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %747, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %748)
          to label %3529 unwind label %3540

3529:                                             ; preds = %3528
  call void @llvm.lifetime.start.p0(i64 32, ptr %749) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %750) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %750) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %749, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %750)
          to label %3530 unwind label %3544

3530:                                             ; preds = %3529
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %743, ptr noundef nonnull align 8 dereferenceable(32) %745, ptr noundef nonnull align 8 dereferenceable(32) %747, ptr noundef nonnull align 8 dereferenceable(32) %749, i32 noundef 215) #11
          to label %3531 unwind label %3548

3531:                                             ; preds = %3530
  unreachable

3532:                                             ; preds = %3526
  %3533 = landingpad { ptr, i32 }
          cleanup
  %3534 = extractvalue { ptr, i32 } %3533, 0
  store ptr %3534, ptr %6, align 8
  %3535 = extractvalue { ptr, i32 } %3533, 1
  store i32 %3535, ptr %7, align 4
  br label %3555

3536:                                             ; preds = %3527
  %3537 = landingpad { ptr, i32 }
          cleanup
  %3538 = extractvalue { ptr, i32 } %3537, 0
  store ptr %3538, ptr %6, align 8
  %3539 = extractvalue { ptr, i32 } %3537, 1
  store i32 %3539, ptr %7, align 4
  br label %3554

3540:                                             ; preds = %3528
  %3541 = landingpad { ptr, i32 }
          cleanup
  %3542 = extractvalue { ptr, i32 } %3541, 0
  store ptr %3542, ptr %6, align 8
  %3543 = extractvalue { ptr, i32 } %3541, 1
  store i32 %3543, ptr %7, align 4
  br label %3553

3544:                                             ; preds = %3529
  %3545 = landingpad { ptr, i32 }
          cleanup
  %3546 = extractvalue { ptr, i32 } %3545, 0
  store ptr %3546, ptr %6, align 8
  %3547 = extractvalue { ptr, i32 } %3545, 1
  store i32 %3547, ptr %7, align 4
  br label %3552

3548:                                             ; preds = %3530
  %3549 = landingpad { ptr, i32 }
          cleanup
  %3550 = extractvalue { ptr, i32 } %3549, 0
  store ptr %3550, ptr %6, align 8
  %3551 = extractvalue { ptr, i32 } %3549, 1
  store i32 %3551, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %749) #10
  br label %3552

3552:                                             ; preds = %3548, %3544
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %750) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %750) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %749) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %747) #10
  br label %3553

3553:                                             ; preds = %3552, %3540
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %748) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %748) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %747) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %745) #10
  br label %3554

3554:                                             ; preds = %3553, %3536
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %746) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %746) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %745) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %743) #10
  br label %3555

3555:                                             ; preds = %3554, %3532
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %744) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %744) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %743) #10
  br label %3640

3556:                                             ; preds = %3520
  call void @llvm.lifetime.start.p0(i64 64, ptr %751) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %752) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %753) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %753, ptr align 4 @constinit.97, i64 64, i1 false), !tbaa.struct !24
  %3557 = getelementptr inbounds %"class.std::initializer_list.14", ptr %752, i32 0, i32 0
  store ptr %753, ptr %3557, align 8, !tbaa !19
  %3558 = getelementptr inbounds %"class.std::initializer_list.14", ptr %752, i32 0, i32 1
  store i64 16, ptr %3558, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %751, ptr noundef nonnull align 8 dereferenceable(16) %752)
  %3559 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %726, ptr noundef nonnull align 4 dereferenceable(64) %751)
  %3560 = zext i1 %3559 to i32
  %3561 = icmp eq i32 %3560, 0
  call void @llvm.lifetime.end.p0(i64 64, ptr %753) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %752) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %751) #10
  br i1 %3561, label %3562, label %3592

3562:                                             ; preds = %3556
  call void @llvm.lifetime.start.p0(i64 32, ptr %754) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %755) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %755) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %754, ptr noundef @.str.98, ptr noundef nonnull align 1 dereferenceable(1) %755)
          to label %3563 unwind label %3568

3563:                                             ; preds = %3562
  call void @llvm.lifetime.start.p0(i64 32, ptr %756) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %757) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %757) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %756, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %757)
          to label %3564 unwind label %3572

3564:                                             ; preds = %3563
  call void @llvm.lifetime.start.p0(i64 32, ptr %758) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %759) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %759) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %758, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %759)
          to label %3565 unwind label %3576

3565:                                             ; preds = %3564
  call void @llvm.lifetime.start.p0(i64 32, ptr %760) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %761) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %761) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %760, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %761)
          to label %3566 unwind label %3580

3566:                                             ; preds = %3565
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %754, ptr noundef nonnull align 8 dereferenceable(32) %756, ptr noundef nonnull align 8 dereferenceable(32) %758, ptr noundef nonnull align 8 dereferenceable(32) %760, i32 noundef 216) #11
          to label %3567 unwind label %3584

3567:                                             ; preds = %3566
  unreachable

3568:                                             ; preds = %3562
  %3569 = landingpad { ptr, i32 }
          cleanup
  %3570 = extractvalue { ptr, i32 } %3569, 0
  store ptr %3570, ptr %6, align 8
  %3571 = extractvalue { ptr, i32 } %3569, 1
  store i32 %3571, ptr %7, align 4
  br label %3591

3572:                                             ; preds = %3563
  %3573 = landingpad { ptr, i32 }
          cleanup
  %3574 = extractvalue { ptr, i32 } %3573, 0
  store ptr %3574, ptr %6, align 8
  %3575 = extractvalue { ptr, i32 } %3573, 1
  store i32 %3575, ptr %7, align 4
  br label %3590

3576:                                             ; preds = %3564
  %3577 = landingpad { ptr, i32 }
          cleanup
  %3578 = extractvalue { ptr, i32 } %3577, 0
  store ptr %3578, ptr %6, align 8
  %3579 = extractvalue { ptr, i32 } %3577, 1
  store i32 %3579, ptr %7, align 4
  br label %3589

3580:                                             ; preds = %3565
  %3581 = landingpad { ptr, i32 }
          cleanup
  %3582 = extractvalue { ptr, i32 } %3581, 0
  store ptr %3582, ptr %6, align 8
  %3583 = extractvalue { ptr, i32 } %3581, 1
  store i32 %3583, ptr %7, align 4
  br label %3588

3584:                                             ; preds = %3566
  %3585 = landingpad { ptr, i32 }
          cleanup
  %3586 = extractvalue { ptr, i32 } %3585, 0
  store ptr %3586, ptr %6, align 8
  %3587 = extractvalue { ptr, i32 } %3585, 1
  store i32 %3587, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %760) #10
  br label %3588

3588:                                             ; preds = %3584, %3580
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %761) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %761) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %760) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %758) #10
  br label %3589

3589:                                             ; preds = %3588, %3576
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %759) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %759) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %758) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %756) #10
  br label %3590

3590:                                             ; preds = %3589, %3572
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %757) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %757) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %756) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %754) #10
  br label %3591

3591:                                             ; preds = %3590, %3568
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %755) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %755) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %754) #10
  br label %3640

3592:                                             ; preds = %3556
  call void @llvm.lifetime.start.p0(i64 24, ptr %762) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %763) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %764) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %764, ptr align 4 @constinit.99, i64 24, i1 false), !tbaa.struct !5
  %3593 = getelementptr inbounds %"class.std::initializer_list.14", ptr %763, i32 0, i32 0
  store ptr %764, ptr %3593, align 8, !tbaa !19
  %3594 = getelementptr inbounds %"class.std::initializer_list.14", ptr %763, i32 0, i32 1
  store i64 6, ptr %3594, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi3EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(24) %762, ptr noundef nonnull align 8 dereferenceable(16) %763)
  %3595 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi3ELi2ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24) %727, ptr noundef nonnull align 4 dereferenceable(24) %762)
  %3596 = zext i1 %3595 to i32
  %3597 = icmp eq i32 %3596, 0
  call void @llvm.lifetime.end.p0(i64 24, ptr %764) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %763) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %762) #10
  br i1 %3597, label %3598, label %3628

3598:                                             ; preds = %3592
  call void @llvm.lifetime.start.p0(i64 32, ptr %765) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %766) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %766) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %765, ptr noundef @.str.100, ptr noundef nonnull align 1 dereferenceable(1) %766)
          to label %3599 unwind label %3604

3599:                                             ; preds = %3598
  call void @llvm.lifetime.start.p0(i64 32, ptr %767) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %768) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %768) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %767, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %768)
          to label %3600 unwind label %3608

3600:                                             ; preds = %3599
  call void @llvm.lifetime.start.p0(i64 32, ptr %769) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %770) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %770) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %769, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %770)
          to label %3601 unwind label %3612

3601:                                             ; preds = %3600
  call void @llvm.lifetime.start.p0(i64 32, ptr %771) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %772) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %772) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %771, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %772)
          to label %3602 unwind label %3616

3602:                                             ; preds = %3601
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %765, ptr noundef nonnull align 8 dereferenceable(32) %767, ptr noundef nonnull align 8 dereferenceable(32) %769, ptr noundef nonnull align 8 dereferenceable(32) %771, i32 noundef 217) #11
          to label %3603 unwind label %3620

3603:                                             ; preds = %3602
  unreachable

3604:                                             ; preds = %3598
  %3605 = landingpad { ptr, i32 }
          cleanup
  %3606 = extractvalue { ptr, i32 } %3605, 0
  store ptr %3606, ptr %6, align 8
  %3607 = extractvalue { ptr, i32 } %3605, 1
  store i32 %3607, ptr %7, align 4
  br label %3627

3608:                                             ; preds = %3599
  %3609 = landingpad { ptr, i32 }
          cleanup
  %3610 = extractvalue { ptr, i32 } %3609, 0
  store ptr %3610, ptr %6, align 8
  %3611 = extractvalue { ptr, i32 } %3609, 1
  store i32 %3611, ptr %7, align 4
  br label %3626

3612:                                             ; preds = %3600
  %3613 = landingpad { ptr, i32 }
          cleanup
  %3614 = extractvalue { ptr, i32 } %3613, 0
  store ptr %3614, ptr %6, align 8
  %3615 = extractvalue { ptr, i32 } %3613, 1
  store i32 %3615, ptr %7, align 4
  br label %3625

3616:                                             ; preds = %3601
  %3617 = landingpad { ptr, i32 }
          cleanup
  %3618 = extractvalue { ptr, i32 } %3617, 0
  store ptr %3618, ptr %6, align 8
  %3619 = extractvalue { ptr, i32 } %3617, 1
  store i32 %3619, ptr %7, align 4
  br label %3624

3620:                                             ; preds = %3602
  %3621 = landingpad { ptr, i32 }
          cleanup
  %3622 = extractvalue { ptr, i32 } %3621, 0
  store ptr %3622, ptr %6, align 8
  %3623 = extractvalue { ptr, i32 } %3621, 1
  store i32 %3623, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %771) #10
  br label %3624

3624:                                             ; preds = %3620, %3616
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %772) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %772) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %771) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %769) #10
  br label %3625

3625:                                             ; preds = %3624, %3612
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %770) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %770) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %769) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %767) #10
  br label %3626

3626:                                             ; preds = %3625, %3608
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %768) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %768) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %767) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %765) #10
  br label %3627

3627:                                             ; preds = %3626, %3604
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %766) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %766) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %765) #10
  br label %3640

3628:                                             ; preds = %3592
  call void @llvm.lifetime.end.p0(i64 24, ptr %727) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %726) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %725) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %724) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %773) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %774) #10
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EE13build_scalingEfff(ptr dead_on_unwind writable sret(%"struct.cgp::matrix_stack.23") align 4 %774, float noundef 5.000000e+00, float noundef 3.000000e+00, float noundef 2.000000e+00)
  %3629 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE21set_block_translationEfff(ptr noundef nonnull align 4 dereferenceable(64) %774, float noundef 1.000000e+00, float noundef 2.000000e+00, float noundef 3.000000e+00)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %773, ptr align 4 %3629, i64 64, i1 false), !tbaa.struct !25
  call void @llvm.lifetime.end.p0(i64 64, ptr %774) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %775) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %776) #10
  store i32 4, ptr %776, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %777) #10
  store i32 8, ptr %777, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %778) #10
  store i32 -1, ptr %778, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %775, ptr noundef nonnull align 4 dereferenceable(4) %776, ptr noundef nonnull align 4 dereferenceable(4) %777, ptr noundef nonnull align 4 dereferenceable(4) %778)
  call void @llvm.lifetime.end.p0(i64 4, ptr %778) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %777) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %776) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %779) #10
  %3630 = call { <2 x float>, float } @_ZNK3cgp12matrix_stackIfLi4ELi4EE18transform_positionERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(64) %773, ptr noundef nonnull align 4 dereferenceable(12) %775)
  store { <2 x float>, float } %3630, ptr %780, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %779, ptr align 8 %780, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 12, ptr %781) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %782) #10
  store i32 21, ptr %782, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %783) #10
  store i32 26, ptr %783, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %784) #10
  store i32 1, ptr %784, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %781, ptr noundef nonnull align 4 dereferenceable(4) %782, ptr noundef nonnull align 4 dereferenceable(4) %783, ptr noundef nonnull align 4 dereferenceable(4) %784)
  %3631 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %779, ptr noundef nonnull align 4 dereferenceable(12) %781)
  %3632 = zext i1 %3631 to i32
  %3633 = icmp eq i32 %3632, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %784) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %783) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %782) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %781) #10
  br i1 %3633, label %3634, label %3665

3634:                                             ; preds = %3628
  call void @llvm.lifetime.start.p0(i64 32, ptr %785) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %786) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %786) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %785, ptr noundef @.str.101, ptr noundef nonnull align 1 dereferenceable(1) %786)
          to label %3635 unwind label %3641

3635:                                             ; preds = %3634
  call void @llvm.lifetime.start.p0(i64 32, ptr %787) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %788) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %788) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %787, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %788)
          to label %3636 unwind label %3645

3636:                                             ; preds = %3635
  call void @llvm.lifetime.start.p0(i64 32, ptr %789) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %790) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %790) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %789, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %790)
          to label %3637 unwind label %3649

3637:                                             ; preds = %3636
  call void @llvm.lifetime.start.p0(i64 32, ptr %791) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %792) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %792) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %791, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %792)
          to label %3638 unwind label %3653

3638:                                             ; preds = %3637
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %785, ptr noundef nonnull align 8 dereferenceable(32) %787, ptr noundef nonnull align 8 dereferenceable(32) %789, ptr noundef nonnull align 8 dereferenceable(32) %791, i32 noundef 227) #11
          to label %3639 unwind label %3657

3639:                                             ; preds = %3638
  unreachable

3640:                                             ; preds = %3627, %3591, %3555, %3519
  call void @llvm.lifetime.end.p0(i64 24, ptr %727) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %726) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %725) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %724) #10
  br label %4629

3641:                                             ; preds = %3634
  %3642 = landingpad { ptr, i32 }
          cleanup
  %3643 = extractvalue { ptr, i32 } %3642, 0
  store ptr %3643, ptr %6, align 8
  %3644 = extractvalue { ptr, i32 } %3642, 1
  store i32 %3644, ptr %7, align 4
  br label %3664

3645:                                             ; preds = %3635
  %3646 = landingpad { ptr, i32 }
          cleanup
  %3647 = extractvalue { ptr, i32 } %3646, 0
  store ptr %3647, ptr %6, align 8
  %3648 = extractvalue { ptr, i32 } %3646, 1
  store i32 %3648, ptr %7, align 4
  br label %3663

3649:                                             ; preds = %3636
  %3650 = landingpad { ptr, i32 }
          cleanup
  %3651 = extractvalue { ptr, i32 } %3650, 0
  store ptr %3651, ptr %6, align 8
  %3652 = extractvalue { ptr, i32 } %3650, 1
  store i32 %3652, ptr %7, align 4
  br label %3662

3653:                                             ; preds = %3637
  %3654 = landingpad { ptr, i32 }
          cleanup
  %3655 = extractvalue { ptr, i32 } %3654, 0
  store ptr %3655, ptr %6, align 8
  %3656 = extractvalue { ptr, i32 } %3654, 1
  store i32 %3656, ptr %7, align 4
  br label %3661

3657:                                             ; preds = %3638
  %3658 = landingpad { ptr, i32 }
          cleanup
  %3659 = extractvalue { ptr, i32 } %3658, 0
  store ptr %3659, ptr %6, align 8
  %3660 = extractvalue { ptr, i32 } %3658, 1
  store i32 %3660, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %791) #10
  br label %3661

3661:                                             ; preds = %3657, %3653
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %792) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %792) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %791) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %789) #10
  br label %3662

3662:                                             ; preds = %3661, %3649
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %790) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %790) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %789) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %787) #10
  br label %3663

3663:                                             ; preds = %3662, %3645
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %788) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %788) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %787) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %785) #10
  br label %3664

3664:                                             ; preds = %3663, %3641
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %786) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %786) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %785) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %779) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %775) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %773) #10
  br label %4629

3665:                                             ; preds = %3628
  call void @llvm.lifetime.end.p0(i64 12, ptr %779) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %775) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %773) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %793) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %794) #10
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EE13build_scalingEfff(ptr dead_on_unwind writable sret(%"struct.cgp::matrix_stack.23") align 4 %794, float noundef 5.000000e+00, float noundef 3.000000e+00, float noundef 2.000000e+00)
  %3666 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE21set_block_translationEfff(ptr noundef nonnull align 4 dereferenceable(64) %794, float noundef 1.000000e+00, float noundef 2.000000e+00, float noundef 3.000000e+00)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %793, ptr align 4 %3666, i64 64, i1 false), !tbaa.struct !25
  call void @llvm.lifetime.end.p0(i64 64, ptr %794) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %795) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %796) #10
  store i32 4, ptr %796, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %797) #10
  store i32 8, ptr %797, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %798) #10
  store i32 -1, ptr %798, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %795, ptr noundef nonnull align 4 dereferenceable(4) %796, ptr noundef nonnull align 4 dereferenceable(4) %797, ptr noundef nonnull align 4 dereferenceable(4) %798)
  call void @llvm.lifetime.end.p0(i64 4, ptr %798) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %797) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %796) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %799) #10
  %3667 = call { <2 x float>, float } @_ZNK3cgp12matrix_stackIfLi4ELi4EE16transform_vectorERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(64) %793, ptr noundef nonnull align 4 dereferenceable(12) %795)
  store { <2 x float>, float } %3667, ptr %800, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %799, ptr align 8 %800, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 12, ptr %801) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %802) #10
  store i32 20, ptr %802, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %803) #10
  store i32 24, ptr %803, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %804) #10
  store i32 -2, ptr %804, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %801, ptr noundef nonnull align 4 dereferenceable(4) %802, ptr noundef nonnull align 4 dereferenceable(4) %803, ptr noundef nonnull align 4 dereferenceable(4) %804)
  %3668 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %799, ptr noundef nonnull align 4 dereferenceable(12) %801)
  %3669 = zext i1 %3668 to i32
  %3670 = icmp eq i32 %3669, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %804) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %803) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %802) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %801) #10
  br i1 %3670, label %3671, label %3701

3671:                                             ; preds = %3665
  call void @llvm.lifetime.start.p0(i64 32, ptr %805) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %806) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %806) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %805, ptr noundef @.str.102, ptr noundef nonnull align 1 dereferenceable(1) %806)
          to label %3672 unwind label %3677

3672:                                             ; preds = %3671
  call void @llvm.lifetime.start.p0(i64 32, ptr %807) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %808) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %808) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %807, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %808)
          to label %3673 unwind label %3681

3673:                                             ; preds = %3672
  call void @llvm.lifetime.start.p0(i64 32, ptr %809) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %810) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %810) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %809, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %810)
          to label %3674 unwind label %3685

3674:                                             ; preds = %3673
  call void @llvm.lifetime.start.p0(i64 32, ptr %811) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %812) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %812) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %811, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %812)
          to label %3675 unwind label %3689

3675:                                             ; preds = %3674
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %805, ptr noundef nonnull align 8 dereferenceable(32) %807, ptr noundef nonnull align 8 dereferenceable(32) %809, ptr noundef nonnull align 8 dereferenceable(32) %811, i32 noundef 233) #11
          to label %3676 unwind label %3693

3676:                                             ; preds = %3675
  unreachable

3677:                                             ; preds = %3671
  %3678 = landingpad { ptr, i32 }
          cleanup
  %3679 = extractvalue { ptr, i32 } %3678, 0
  store ptr %3679, ptr %6, align 8
  %3680 = extractvalue { ptr, i32 } %3678, 1
  store i32 %3680, ptr %7, align 4
  br label %3700

3681:                                             ; preds = %3672
  %3682 = landingpad { ptr, i32 }
          cleanup
  %3683 = extractvalue { ptr, i32 } %3682, 0
  store ptr %3683, ptr %6, align 8
  %3684 = extractvalue { ptr, i32 } %3682, 1
  store i32 %3684, ptr %7, align 4
  br label %3699

3685:                                             ; preds = %3673
  %3686 = landingpad { ptr, i32 }
          cleanup
  %3687 = extractvalue { ptr, i32 } %3686, 0
  store ptr %3687, ptr %6, align 8
  %3688 = extractvalue { ptr, i32 } %3686, 1
  store i32 %3688, ptr %7, align 4
  br label %3698

3689:                                             ; preds = %3674
  %3690 = landingpad { ptr, i32 }
          cleanup
  %3691 = extractvalue { ptr, i32 } %3690, 0
  store ptr %3691, ptr %6, align 8
  %3692 = extractvalue { ptr, i32 } %3690, 1
  store i32 %3692, ptr %7, align 4
  br label %3697

3693:                                             ; preds = %3675
  %3694 = landingpad { ptr, i32 }
          cleanup
  %3695 = extractvalue { ptr, i32 } %3694, 0
  store ptr %3695, ptr %6, align 8
  %3696 = extractvalue { ptr, i32 } %3694, 1
  store i32 %3696, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %811) #10
  br label %3697

3697:                                             ; preds = %3693, %3689
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %812) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %812) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %811) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %809) #10
  br label %3698

3698:                                             ; preds = %3697, %3685
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %810) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %810) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %809) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %807) #10
  br label %3699

3699:                                             ; preds = %3698, %3681
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %808) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %808) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %807) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %805) #10
  br label %3700

3700:                                             ; preds = %3699, %3677
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %806) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %806) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %805) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %799) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %795) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %793) #10
  br label %4629

3701:                                             ; preds = %3665
  call void @llvm.lifetime.end.p0(i64 12, ptr %799) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %795) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %793) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %813) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %814) #10
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EE13build_scalingEfff(ptr dead_on_unwind writable sret(%"struct.cgp::matrix_stack.23") align 4 %814, float noundef 5.000000e+00, float noundef 3.000000e+00, float noundef 2.000000e+00)
  %3702 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE21set_block_translationEfff(ptr noundef nonnull align 4 dereferenceable(64) %814, float noundef 1.000000e+00, float noundef 2.000000e+00, float noundef 3.000000e+00)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %813, ptr align 4 %3702, i64 64, i1 false), !tbaa.struct !25
  call void @llvm.lifetime.end.p0(i64 64, ptr %814) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %815) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %816) #10
  store i32 4, ptr %816, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %817) #10
  store i32 8, ptr %817, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %818) #10
  store i32 -1, ptr %818, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %815, ptr noundef nonnull align 4 dereferenceable(4) %816, ptr noundef nonnull align 4 dereferenceable(4) %817, ptr noundef nonnull align 4 dereferenceable(4) %818)
  call void @llvm.lifetime.end.p0(i64 4, ptr %818) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %817) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %816) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %819) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %820) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %821) #10
  store float 1.000000e+00, ptr %821, align 4, !tbaa !22
  call void @_ZN3cgp14numarray_stackIfLi4EEC2ERKNS0_IfLi3EEERKf(ptr noundef nonnull align 4 dereferenceable(16) %820, ptr noundef nonnull align 4 dereferenceable(12) %815, ptr noundef nonnull align 4 dereferenceable(4) %821)
  %3703 = call { <2 x float>, <2 x float> } @_ZN3cgpmlIfLi4ELi4EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(64) %813, ptr noundef nonnull align 4 dereferenceable(16) %820)
  %3704 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %819, i32 0, i32 0
  %3705 = extractvalue { <2 x float>, <2 x float> } %3703, 0
  store <2 x float> %3705, ptr %3704, align 4
  %3706 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %819, i32 0, i32 1
  %3707 = extractvalue { <2 x float>, <2 x float> } %3703, 1
  store <2 x float> %3707, ptr %3706, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %821) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %820) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %822) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %823) #10
  %3708 = call { <2 x float>, float } @_ZNK3cgp14numarray_stackIfLi4EE3xyzEv(ptr noundef nonnull align 4 dereferenceable(16) %819)
  store { <2 x float>, float } %3708, ptr %824, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %823, ptr align 8 %824, i64 12, i1 false)
  %3709 = getelementptr inbounds %"struct.cgp::numarray_stack.17", ptr %819, i32 0, i32 3
  %3710 = load float, ptr %3709, align 4, !tbaa !26
  %3711 = call { <2 x float>, float } @_ZN3cgpdvERKNS_14numarray_stackIfLi3EEEf(ptr noundef nonnull align 4 dereferenceable(12) %823, float noundef %3710)
  store { <2 x float>, float } %3711, ptr %825, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %822, ptr align 8 %825, i64 12, i1 false)
  call void @llvm.lifetime.end.p0(i64 12, ptr %823) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %826) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %827) #10
  store i32 21, ptr %827, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %828) #10
  store i32 26, ptr %828, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %829) #10
  store i32 1, ptr %829, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %826, ptr noundef nonnull align 4 dereferenceable(4) %827, ptr noundef nonnull align 4 dereferenceable(4) %828, ptr noundef nonnull align 4 dereferenceable(4) %829)
  %3712 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %822, ptr noundef nonnull align 4 dereferenceable(12) %826)
  %3713 = zext i1 %3712 to i32
  %3714 = icmp eq i32 %3713, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %829) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %828) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %827) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %826) #10
  br i1 %3714, label %3715, label %3745

3715:                                             ; preds = %3701
  call void @llvm.lifetime.start.p0(i64 32, ptr %830) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %831) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %831) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %830, ptr noundef @.str.101, ptr noundef nonnull align 1 dereferenceable(1) %831)
          to label %3716 unwind label %3721

3716:                                             ; preds = %3715
  call void @llvm.lifetime.start.p0(i64 32, ptr %832) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %833) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %833) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %832, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %833)
          to label %3717 unwind label %3725

3717:                                             ; preds = %3716
  call void @llvm.lifetime.start.p0(i64 32, ptr %834) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %835) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %835) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %834, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %835)
          to label %3718 unwind label %3729

3718:                                             ; preds = %3717
  call void @llvm.lifetime.start.p0(i64 32, ptr %836) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %837) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %837) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %836, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %837)
          to label %3719 unwind label %3733

3719:                                             ; preds = %3718
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %830, ptr noundef nonnull align 8 dereferenceable(32) %832, ptr noundef nonnull align 8 dereferenceable(32) %834, ptr noundef nonnull align 8 dereferenceable(32) %836, i32 noundef 240) #11
          to label %3720 unwind label %3737

3720:                                             ; preds = %3719
  unreachable

3721:                                             ; preds = %3715
  %3722 = landingpad { ptr, i32 }
          cleanup
  %3723 = extractvalue { ptr, i32 } %3722, 0
  store ptr %3723, ptr %6, align 8
  %3724 = extractvalue { ptr, i32 } %3722, 1
  store i32 %3724, ptr %7, align 4
  br label %3744

3725:                                             ; preds = %3716
  %3726 = landingpad { ptr, i32 }
          cleanup
  %3727 = extractvalue { ptr, i32 } %3726, 0
  store ptr %3727, ptr %6, align 8
  %3728 = extractvalue { ptr, i32 } %3726, 1
  store i32 %3728, ptr %7, align 4
  br label %3743

3729:                                             ; preds = %3717
  %3730 = landingpad { ptr, i32 }
          cleanup
  %3731 = extractvalue { ptr, i32 } %3730, 0
  store ptr %3731, ptr %6, align 8
  %3732 = extractvalue { ptr, i32 } %3730, 1
  store i32 %3732, ptr %7, align 4
  br label %3742

3733:                                             ; preds = %3718
  %3734 = landingpad { ptr, i32 }
          cleanup
  %3735 = extractvalue { ptr, i32 } %3734, 0
  store ptr %3735, ptr %6, align 8
  %3736 = extractvalue { ptr, i32 } %3734, 1
  store i32 %3736, ptr %7, align 4
  br label %3741

3737:                                             ; preds = %3719
  %3738 = landingpad { ptr, i32 }
          cleanup
  %3739 = extractvalue { ptr, i32 } %3738, 0
  store ptr %3739, ptr %6, align 8
  %3740 = extractvalue { ptr, i32 } %3738, 1
  store i32 %3740, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %836) #10
  br label %3741

3741:                                             ; preds = %3737, %3733
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %837) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %837) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %836) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %834) #10
  br label %3742

3742:                                             ; preds = %3741, %3729
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %835) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %835) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %834) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %832) #10
  br label %3743

3743:                                             ; preds = %3742, %3725
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %833) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %833) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %832) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %830) #10
  br label %3744

3744:                                             ; preds = %3743, %3721
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %831) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %831) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %830) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %822) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %819) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %815) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %813) #10
  br label %4629

3745:                                             ; preds = %3701
  call void @llvm.lifetime.end.p0(i64 12, ptr %822) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %819) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %815) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %813) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %838) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %839) #10
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EE13build_scalingEfff(ptr dead_on_unwind writable sret(%"struct.cgp::matrix_stack.23") align 4 %839, float noundef 5.000000e+00, float noundef 3.000000e+00, float noundef 2.000000e+00)
  %3746 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE21set_block_translationEfff(ptr noundef nonnull align 4 dereferenceable(64) %839, float noundef 1.000000e+00, float noundef 2.000000e+00, float noundef 3.000000e+00)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %838, ptr align 4 %3746, i64 64, i1 false), !tbaa.struct !25
  call void @llvm.lifetime.end.p0(i64 64, ptr %839) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %840) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %841) #10
  store i32 4, ptr %841, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %842) #10
  store i32 8, ptr %842, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %843) #10
  store i32 -1, ptr %843, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %840, ptr noundef nonnull align 4 dereferenceable(4) %841, ptr noundef nonnull align 4 dereferenceable(4) %842, ptr noundef nonnull align 4 dereferenceable(4) %843)
  call void @llvm.lifetime.end.p0(i64 4, ptr %843) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %842) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %841) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %844) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %845) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %846) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %847) #10
  store float 0.000000e+00, ptr %847, align 4, !tbaa !22
  call void @_ZN3cgp14numarray_stackIfLi4EEC2ERKNS0_IfLi3EEERKf(ptr noundef nonnull align 4 dereferenceable(16) %846, ptr noundef nonnull align 4 dereferenceable(12) %840, ptr noundef nonnull align 4 dereferenceable(4) %847)
  %3747 = call { <2 x float>, <2 x float> } @_ZN3cgpmlIfLi4ELi4EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(64) %838, ptr noundef nonnull align 4 dereferenceable(16) %846)
  %3748 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %845, i32 0, i32 0
  %3749 = extractvalue { <2 x float>, <2 x float> } %3747, 0
  store <2 x float> %3749, ptr %3748, align 4
  %3750 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %845, i32 0, i32 1
  %3751 = extractvalue { <2 x float>, <2 x float> } %3747, 1
  store <2 x float> %3751, ptr %3750, align 4
  %3752 = call { <2 x float>, float } @_ZNK3cgp14numarray_stackIfLi4EE3xyzEv(ptr noundef nonnull align 4 dereferenceable(16) %845)
  store { <2 x float>, float } %3752, ptr %848, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %844, ptr align 8 %848, i64 12, i1 false)
  call void @llvm.lifetime.end.p0(i64 4, ptr %847) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %846) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %845) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %849) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %850) #10
  store i32 20, ptr %850, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %851) #10
  store i32 24, ptr %851, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %852) #10
  store i32 -2, ptr %852, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %849, ptr noundef nonnull align 4 dereferenceable(4) %850, ptr noundef nonnull align 4 dereferenceable(4) %851, ptr noundef nonnull align 4 dereferenceable(4) %852)
  %3753 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %844, ptr noundef nonnull align 4 dereferenceable(12) %849)
  %3754 = zext i1 %3753 to i32
  %3755 = icmp eq i32 %3754, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %852) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %851) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %850) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %849) #10
  br i1 %3755, label %3756, label %3786

3756:                                             ; preds = %3745
  call void @llvm.lifetime.start.p0(i64 32, ptr %853) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %854) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %854) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %853, ptr noundef @.str.102, ptr noundef nonnull align 1 dereferenceable(1) %854)
          to label %3757 unwind label %3762

3757:                                             ; preds = %3756
  call void @llvm.lifetime.start.p0(i64 32, ptr %855) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %856) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %856) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %855, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %856)
          to label %3758 unwind label %3766

3758:                                             ; preds = %3757
  call void @llvm.lifetime.start.p0(i64 32, ptr %857) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %858) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %858) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %857, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %858)
          to label %3759 unwind label %3770

3759:                                             ; preds = %3758
  call void @llvm.lifetime.start.p0(i64 32, ptr %859) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %860) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %860) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %859, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %860)
          to label %3760 unwind label %3774

3760:                                             ; preds = %3759
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %853, ptr noundef nonnull align 8 dereferenceable(32) %855, ptr noundef nonnull align 8 dereferenceable(32) %857, ptr noundef nonnull align 8 dereferenceable(32) %859, i32 noundef 246) #11
          to label %3761 unwind label %3778

3761:                                             ; preds = %3760
  unreachable

3762:                                             ; preds = %3756
  %3763 = landingpad { ptr, i32 }
          cleanup
  %3764 = extractvalue { ptr, i32 } %3763, 0
  store ptr %3764, ptr %6, align 8
  %3765 = extractvalue { ptr, i32 } %3763, 1
  store i32 %3765, ptr %7, align 4
  br label %3785

3766:                                             ; preds = %3757
  %3767 = landingpad { ptr, i32 }
          cleanup
  %3768 = extractvalue { ptr, i32 } %3767, 0
  store ptr %3768, ptr %6, align 8
  %3769 = extractvalue { ptr, i32 } %3767, 1
  store i32 %3769, ptr %7, align 4
  br label %3784

3770:                                             ; preds = %3758
  %3771 = landingpad { ptr, i32 }
          cleanup
  %3772 = extractvalue { ptr, i32 } %3771, 0
  store ptr %3772, ptr %6, align 8
  %3773 = extractvalue { ptr, i32 } %3771, 1
  store i32 %3773, ptr %7, align 4
  br label %3783

3774:                                             ; preds = %3759
  %3775 = landingpad { ptr, i32 }
          cleanup
  %3776 = extractvalue { ptr, i32 } %3775, 0
  store ptr %3776, ptr %6, align 8
  %3777 = extractvalue { ptr, i32 } %3775, 1
  store i32 %3777, ptr %7, align 4
  br label %3782

3778:                                             ; preds = %3760
  %3779 = landingpad { ptr, i32 }
          cleanup
  %3780 = extractvalue { ptr, i32 } %3779, 0
  store ptr %3780, ptr %6, align 8
  %3781 = extractvalue { ptr, i32 } %3779, 1
  store i32 %3781, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %859) #10
  br label %3782

3782:                                             ; preds = %3778, %3774
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %860) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %860) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %859) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %857) #10
  br label %3783

3783:                                             ; preds = %3782, %3770
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %858) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %858) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %857) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %855) #10
  br label %3784

3784:                                             ; preds = %3783, %3766
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %856) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %856) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %855) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %853) #10
  br label %3785

3785:                                             ; preds = %3784, %3762
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %854) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %854) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %853) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %844) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %840) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %838) #10
  br label %4629

3786:                                             ; preds = %3745
  call void @llvm.lifetime.end.p0(i64 12, ptr %844) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %840) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %838) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %861) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %862) #10
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EE13build_scalingEfff(ptr dead_on_unwind writable sret(%"struct.cgp::matrix_stack.23") align 4 %862, float noundef 5.000000e+00, float noundef 3.000000e+00, float noundef 2.000000e+00)
  %3787 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE21set_block_translationEfff(ptr noundef nonnull align 4 dereferenceable(64) %862, float noundef 1.000000e+00, float noundef 2.000000e+00, float noundef 3.000000e+00)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %861, ptr align 4 %3787, i64 64, i1 false), !tbaa.struct !25
  call void @llvm.lifetime.end.p0(i64 64, ptr %862) #10
  %3788 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EEclEii(ptr noundef nonnull align 4 dereferenceable(64) %861, i32 noundef 3, i32 noundef 3)
  store float 2.000000e+00, ptr %3788, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 12, ptr %863) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %864) #10
  store i32 4, ptr %864, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %865) #10
  store i32 8, ptr %865, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %866) #10
  store i32 -1, ptr %866, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %863, ptr noundef nonnull align 4 dereferenceable(4) %864, ptr noundef nonnull align 4 dereferenceable(4) %865, ptr noundef nonnull align 4 dereferenceable(4) %866)
  call void @llvm.lifetime.end.p0(i64 4, ptr %866) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %865) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %864) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %867) #10
  %3789 = call { <2 x float>, float } @_ZNK3cgp12matrix_stackIfLi4ELi4EE18transform_positionERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(64) %861, ptr noundef nonnull align 4 dereferenceable(12) %863)
  store { <2 x float>, float } %3789, ptr %868, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %867, ptr align 8 %868, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 12, ptr %869) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %870) #10
  store float 1.050000e+01, ptr %870, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr %871) #10
  store float 1.300000e+01, ptr %871, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr %872) #10
  store float 5.000000e-01, ptr %872, align 4, !tbaa !22
  call void @_ZN3cgp14numarray_stackIfLi3EEC2ERKfS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %869, ptr noundef nonnull align 4 dereferenceable(4) %870, ptr noundef nonnull align 4 dereferenceable(4) %871, ptr noundef nonnull align 4 dereferenceable(4) %872)
  %3790 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %867, ptr noundef nonnull align 4 dereferenceable(12) %869)
  %3791 = zext i1 %3790 to i32
  %3792 = icmp eq i32 %3791, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %872) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %871) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %870) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %869) #10
  br i1 %3792, label %3793, label %3823

3793:                                             ; preds = %3786
  call void @llvm.lifetime.start.p0(i64 32, ptr %873) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %874) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %874) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %873, ptr noundef @.str.103, ptr noundef nonnull align 1 dereferenceable(1) %874)
          to label %3794 unwind label %3799

3794:                                             ; preds = %3793
  call void @llvm.lifetime.start.p0(i64 32, ptr %875) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %876) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %876) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %875, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %876)
          to label %3795 unwind label %3803

3795:                                             ; preds = %3794
  call void @llvm.lifetime.start.p0(i64 32, ptr %877) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %878) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %878) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %877, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %878)
          to label %3796 unwind label %3807

3796:                                             ; preds = %3795
  call void @llvm.lifetime.start.p0(i64 32, ptr %879) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %880) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %880) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %879, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %880)
          to label %3797 unwind label %3811

3797:                                             ; preds = %3796
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %873, ptr noundef nonnull align 8 dereferenceable(32) %875, ptr noundef nonnull align 8 dereferenceable(32) %877, ptr noundef nonnull align 8 dereferenceable(32) %879, i32 noundef 254) #11
          to label %3798 unwind label %3815

3798:                                             ; preds = %3797
  unreachable

3799:                                             ; preds = %3793
  %3800 = landingpad { ptr, i32 }
          cleanup
  %3801 = extractvalue { ptr, i32 } %3800, 0
  store ptr %3801, ptr %6, align 8
  %3802 = extractvalue { ptr, i32 } %3800, 1
  store i32 %3802, ptr %7, align 4
  br label %3822

3803:                                             ; preds = %3794
  %3804 = landingpad { ptr, i32 }
          cleanup
  %3805 = extractvalue { ptr, i32 } %3804, 0
  store ptr %3805, ptr %6, align 8
  %3806 = extractvalue { ptr, i32 } %3804, 1
  store i32 %3806, ptr %7, align 4
  br label %3821

3807:                                             ; preds = %3795
  %3808 = landingpad { ptr, i32 }
          cleanup
  %3809 = extractvalue { ptr, i32 } %3808, 0
  store ptr %3809, ptr %6, align 8
  %3810 = extractvalue { ptr, i32 } %3808, 1
  store i32 %3810, ptr %7, align 4
  br label %3820

3811:                                             ; preds = %3796
  %3812 = landingpad { ptr, i32 }
          cleanup
  %3813 = extractvalue { ptr, i32 } %3812, 0
  store ptr %3813, ptr %6, align 8
  %3814 = extractvalue { ptr, i32 } %3812, 1
  store i32 %3814, ptr %7, align 4
  br label %3819

3815:                                             ; preds = %3797
  %3816 = landingpad { ptr, i32 }
          cleanup
  %3817 = extractvalue { ptr, i32 } %3816, 0
  store ptr %3817, ptr %6, align 8
  %3818 = extractvalue { ptr, i32 } %3816, 1
  store i32 %3818, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %879) #10
  br label %3819

3819:                                             ; preds = %3815, %3811
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %880) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %880) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %879) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %877) #10
  br label %3820

3820:                                             ; preds = %3819, %3807
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %878) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %878) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %877) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %875) #10
  br label %3821

3821:                                             ; preds = %3820, %3803
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %876) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %876) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %875) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %873) #10
  br label %3822

3822:                                             ; preds = %3821, %3799
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %874) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %874) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %873) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %867) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %863) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %861) #10
  br label %4629

3823:                                             ; preds = %3786
  call void @llvm.lifetime.end.p0(i64 12, ptr %867) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %863) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %861) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %881) #10
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Effffffffffffffff(ptr noundef nonnull align 4 dereferenceable(64) %881, float noundef 1.000000e+00, float noundef 5.000000e+00, float noundef 8.000000e+00, float noundef 2.000000e+00, float noundef 2.000000e+00, float noundef 1.000000e+00, float noundef -2.000000e+00, float noundef 3.000000e+00, float noundef 5.000000e+00, float noundef 2.000000e+00, float noundef 8.000000e+00, float noundef 4.000000e+00, float noundef 5.000000e-01, float noundef -1.000000e+00, float noundef 2.000000e+00, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 12, ptr %882) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %883) #10
  store i32 4, ptr %883, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %884) #10
  store i32 8, ptr %884, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %885) #10
  store i32 -1, ptr %885, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %882, ptr noundef nonnull align 4 dereferenceable(4) %883, ptr noundef nonnull align 4 dereferenceable(4) %884, ptr noundef nonnull align 4 dereferenceable(4) %885)
  call void @llvm.lifetime.end.p0(i64 4, ptr %885) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %884) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %883) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %886) #10
  %3824 = call { <2 x float>, float } @_ZNK3cgp12matrix_stackIfLi4ELi4EE18transform_positionERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(64) %881, ptr noundef nonnull align 4 dereferenceable(12) %882)
  store { <2 x float>, float } %3824, ptr %887, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %886, ptr align 8 %887, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 12, ptr %888) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %889) #10
  store float 0xC019555560000000, ptr %889, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr %890) #10
  store float -3.500000e+00, ptr %890, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr %891) #10
  store float 0xC015555560000000, ptr %891, align 4, !tbaa !22
  call void @_ZN3cgp14numarray_stackIfLi3EEC2ERKfS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %888, ptr noundef nonnull align 4 dereferenceable(4) %889, ptr noundef nonnull align 4 dereferenceable(4) %890, ptr noundef nonnull align 4 dereferenceable(4) %891)
  %3825 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %886, ptr noundef nonnull align 4 dereferenceable(12) %888)
  %3826 = zext i1 %3825 to i32
  %3827 = icmp eq i32 %3826, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %891) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %890) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %889) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %888) #10
  br i1 %3827, label %3828, label %3858

3828:                                             ; preds = %3823
  call void @llvm.lifetime.start.p0(i64 32, ptr %892) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %893) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %893) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %892, ptr noundef @.str.104, ptr noundef nonnull align 1 dereferenceable(1) %893)
          to label %3829 unwind label %3834

3829:                                             ; preds = %3828
  call void @llvm.lifetime.start.p0(i64 32, ptr %894) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %895) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %895) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %894, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %895)
          to label %3830 unwind label %3838

3830:                                             ; preds = %3829
  call void @llvm.lifetime.start.p0(i64 32, ptr %896) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %897) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %897) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %896, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %897)
          to label %3831 unwind label %3842

3831:                                             ; preds = %3830
  call void @llvm.lifetime.start.p0(i64 32, ptr %898) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %899) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %899) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %898, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %899)
          to label %3832 unwind label %3846

3832:                                             ; preds = %3831
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %892, ptr noundef nonnull align 8 dereferenceable(32) %894, ptr noundef nonnull align 8 dereferenceable(32) %896, ptr noundef nonnull align 8 dereferenceable(32) %898, i32 noundef 264) #11
          to label %3833 unwind label %3850

3833:                                             ; preds = %3832
  unreachable

3834:                                             ; preds = %3828
  %3835 = landingpad { ptr, i32 }
          cleanup
  %3836 = extractvalue { ptr, i32 } %3835, 0
  store ptr %3836, ptr %6, align 8
  %3837 = extractvalue { ptr, i32 } %3835, 1
  store i32 %3837, ptr %7, align 4
  br label %3857

3838:                                             ; preds = %3829
  %3839 = landingpad { ptr, i32 }
          cleanup
  %3840 = extractvalue { ptr, i32 } %3839, 0
  store ptr %3840, ptr %6, align 8
  %3841 = extractvalue { ptr, i32 } %3839, 1
  store i32 %3841, ptr %7, align 4
  br label %3856

3842:                                             ; preds = %3830
  %3843 = landingpad { ptr, i32 }
          cleanup
  %3844 = extractvalue { ptr, i32 } %3843, 0
  store ptr %3844, ptr %6, align 8
  %3845 = extractvalue { ptr, i32 } %3843, 1
  store i32 %3845, ptr %7, align 4
  br label %3855

3846:                                             ; preds = %3831
  %3847 = landingpad { ptr, i32 }
          cleanup
  %3848 = extractvalue { ptr, i32 } %3847, 0
  store ptr %3848, ptr %6, align 8
  %3849 = extractvalue { ptr, i32 } %3847, 1
  store i32 %3849, ptr %7, align 4
  br label %3854

3850:                                             ; preds = %3832
  %3851 = landingpad { ptr, i32 }
          cleanup
  %3852 = extractvalue { ptr, i32 } %3851, 0
  store ptr %3852, ptr %6, align 8
  %3853 = extractvalue { ptr, i32 } %3851, 1
  store i32 %3853, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %898) #10
  br label %3854

3854:                                             ; preds = %3850, %3846
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %899) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %899) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %898) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %896) #10
  br label %3855

3855:                                             ; preds = %3854, %3842
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %897) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %897) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %896) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %894) #10
  br label %3856

3856:                                             ; preds = %3855, %3838
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %895) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %895) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %894) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %892) #10
  br label %3857

3857:                                             ; preds = %3856, %3834
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %893) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %893) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %892) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %886) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %882) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %881) #10
  br label %4629

3858:                                             ; preds = %3823
  call void @llvm.lifetime.end.p0(i64 12, ptr %886) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %882) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %881) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %900) #10
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Ef(ptr noundef nonnull align 4 dereferenceable(64) %900, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 64, ptr %901) #10
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Ef(ptr noundef nonnull align 4 dereferenceable(64) %901, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 64, ptr %902) #10
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Effff(ptr noundef nonnull align 4 dereferenceable(64) %902, float noundef 2.000000e+00, float noundef 3.000000e+00, float noundef 7.000000e+00, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 64, ptr %903) #10
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Effff(ptr noundef nonnull align 4 dereferenceable(64) %903, float noundef 2.000000e+00, float noundef 3.000000e+00, float noundef 7.000000e+00, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 64, ptr %904) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %905) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %906) #10
  call void @llvm.memset.p0.i64(ptr align 4 %906, i8 0, i64 64, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %906, ptr align 4 @constinit.105, i64 64, i1 false), !tbaa.struct !24
  %3859 = getelementptr inbounds %"class.std::initializer_list.14", ptr %905, i32 0, i32 0
  store ptr %906, ptr %3859, align 8, !tbaa !19
  %3860 = getelementptr inbounds %"class.std::initializer_list.14", ptr %905, i32 0, i32 1
  store i64 16, ptr %3860, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %904, ptr noundef nonnull align 8 dereferenceable(16) %905)
  %3861 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %900, ptr noundef nonnull align 4 dereferenceable(64) %904)
  %3862 = zext i1 %3861 to i32
  %3863 = icmp eq i32 %3862, 0
  call void @llvm.lifetime.end.p0(i64 64, ptr %906) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %905) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %904) #10
  br i1 %3863, label %3864, label %3894

3864:                                             ; preds = %3858
  call void @llvm.lifetime.start.p0(i64 32, ptr %907) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %908) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %908) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %907, ptr noundef @.str.106, ptr noundef nonnull align 1 dereferenceable(1) %908)
          to label %3865 unwind label %3870

3865:                                             ; preds = %3864
  call void @llvm.lifetime.start.p0(i64 32, ptr %909) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %910) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %910) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %909, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %910)
          to label %3866 unwind label %3874

3866:                                             ; preds = %3865
  call void @llvm.lifetime.start.p0(i64 32, ptr %911) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %912) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %912) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %911, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %912)
          to label %3867 unwind label %3878

3867:                                             ; preds = %3866
  call void @llvm.lifetime.start.p0(i64 32, ptr %913) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %914) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %914) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %913, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %914)
          to label %3868 unwind label %3882

3868:                                             ; preds = %3867
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %907, ptr noundef nonnull align 8 dereferenceable(32) %909, ptr noundef nonnull align 8 dereferenceable(32) %911, ptr noundef nonnull align 8 dereferenceable(32) %913, i32 noundef 277) #11
          to label %3869 unwind label %3886

3869:                                             ; preds = %3868
  unreachable

3870:                                             ; preds = %3864
  %3871 = landingpad { ptr, i32 }
          cleanup
  %3872 = extractvalue { ptr, i32 } %3871, 0
  store ptr %3872, ptr %6, align 8
  %3873 = extractvalue { ptr, i32 } %3871, 1
  store i32 %3873, ptr %7, align 4
  br label %3893

3874:                                             ; preds = %3865
  %3875 = landingpad { ptr, i32 }
          cleanup
  %3876 = extractvalue { ptr, i32 } %3875, 0
  store ptr %3876, ptr %6, align 8
  %3877 = extractvalue { ptr, i32 } %3875, 1
  store i32 %3877, ptr %7, align 4
  br label %3892

3878:                                             ; preds = %3866
  %3879 = landingpad { ptr, i32 }
          cleanup
  %3880 = extractvalue { ptr, i32 } %3879, 0
  store ptr %3880, ptr %6, align 8
  %3881 = extractvalue { ptr, i32 } %3879, 1
  store i32 %3881, ptr %7, align 4
  br label %3891

3882:                                             ; preds = %3867
  %3883 = landingpad { ptr, i32 }
          cleanup
  %3884 = extractvalue { ptr, i32 } %3883, 0
  store ptr %3884, ptr %6, align 8
  %3885 = extractvalue { ptr, i32 } %3883, 1
  store i32 %3885, ptr %7, align 4
  br label %3890

3886:                                             ; preds = %3868
  %3887 = landingpad { ptr, i32 }
          cleanup
  %3888 = extractvalue { ptr, i32 } %3887, 0
  store ptr %3888, ptr %6, align 8
  %3889 = extractvalue { ptr, i32 } %3887, 1
  store i32 %3889, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %913) #10
  br label %3890

3890:                                             ; preds = %3886, %3882
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %914) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %914) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %913) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %911) #10
  br label %3891

3891:                                             ; preds = %3890, %3878
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %912) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %912) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %911) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %909) #10
  br label %3892

3892:                                             ; preds = %3891, %3874
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %910) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %910) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %909) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %907) #10
  br label %3893

3893:                                             ; preds = %3892, %3870
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %908) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %908) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %907) #10
  br label %4027

3894:                                             ; preds = %3858
  call void @llvm.lifetime.start.p0(i64 64, ptr %915) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %916) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %917) #10
  call void @llvm.memset.p0.i64(ptr align 4 %917, i8 0, i64 64, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %917, ptr align 4 @constinit.107, i64 64, i1 false), !tbaa.struct !24
  %3895 = getelementptr inbounds %"class.std::initializer_list.14", ptr %916, i32 0, i32 0
  store ptr %917, ptr %3895, align 8, !tbaa !19
  %3896 = getelementptr inbounds %"class.std::initializer_list.14", ptr %916, i32 0, i32 1
  store i64 16, ptr %3896, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %915, ptr noundef nonnull align 8 dereferenceable(16) %916)
  %3897 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %901, ptr noundef nonnull align 4 dereferenceable(64) %915)
  %3898 = zext i1 %3897 to i32
  %3899 = icmp eq i32 %3898, 0
  call void @llvm.lifetime.end.p0(i64 64, ptr %917) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %916) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %915) #10
  br i1 %3899, label %3900, label %3930

3900:                                             ; preds = %3894
  call void @llvm.lifetime.start.p0(i64 32, ptr %918) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %919) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %919) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %918, ptr noundef @.str.108, ptr noundef nonnull align 1 dereferenceable(1) %919)
          to label %3901 unwind label %3906

3901:                                             ; preds = %3900
  call void @llvm.lifetime.start.p0(i64 32, ptr %920) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %921) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %921) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %920, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %921)
          to label %3902 unwind label %3910

3902:                                             ; preds = %3901
  call void @llvm.lifetime.start.p0(i64 32, ptr %922) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %923) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %923) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %922, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %923)
          to label %3903 unwind label %3914

3903:                                             ; preds = %3902
  call void @llvm.lifetime.start.p0(i64 32, ptr %924) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %925) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %925) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %924, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %925)
          to label %3904 unwind label %3918

3904:                                             ; preds = %3903
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %918, ptr noundef nonnull align 8 dereferenceable(32) %920, ptr noundef nonnull align 8 dereferenceable(32) %922, ptr noundef nonnull align 8 dereferenceable(32) %924, i32 noundef 278) #11
          to label %3905 unwind label %3922

3905:                                             ; preds = %3904
  unreachable

3906:                                             ; preds = %3900
  %3907 = landingpad { ptr, i32 }
          cleanup
  %3908 = extractvalue { ptr, i32 } %3907, 0
  store ptr %3908, ptr %6, align 8
  %3909 = extractvalue { ptr, i32 } %3907, 1
  store i32 %3909, ptr %7, align 4
  br label %3929

3910:                                             ; preds = %3901
  %3911 = landingpad { ptr, i32 }
          cleanup
  %3912 = extractvalue { ptr, i32 } %3911, 0
  store ptr %3912, ptr %6, align 8
  %3913 = extractvalue { ptr, i32 } %3911, 1
  store i32 %3913, ptr %7, align 4
  br label %3928

3914:                                             ; preds = %3902
  %3915 = landingpad { ptr, i32 }
          cleanup
  %3916 = extractvalue { ptr, i32 } %3915, 0
  store ptr %3916, ptr %6, align 8
  %3917 = extractvalue { ptr, i32 } %3915, 1
  store i32 %3917, ptr %7, align 4
  br label %3927

3918:                                             ; preds = %3903
  %3919 = landingpad { ptr, i32 }
          cleanup
  %3920 = extractvalue { ptr, i32 } %3919, 0
  store ptr %3920, ptr %6, align 8
  %3921 = extractvalue { ptr, i32 } %3919, 1
  store i32 %3921, ptr %7, align 4
  br label %3926

3922:                                             ; preds = %3904
  %3923 = landingpad { ptr, i32 }
          cleanup
  %3924 = extractvalue { ptr, i32 } %3923, 0
  store ptr %3924, ptr %6, align 8
  %3925 = extractvalue { ptr, i32 } %3923, 1
  store i32 %3925, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %924) #10
  br label %3926

3926:                                             ; preds = %3922, %3918
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %925) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %925) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %924) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %922) #10
  br label %3927

3927:                                             ; preds = %3926, %3914
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %923) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %923) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %922) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %920) #10
  br label %3928

3928:                                             ; preds = %3927, %3910
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %921) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %921) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %920) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %918) #10
  br label %3929

3929:                                             ; preds = %3928, %3906
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %919) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %919) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %918) #10
  br label %4027

3930:                                             ; preds = %3894
  call void @llvm.lifetime.start.p0(i64 64, ptr %926) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %927) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %928) #10
  call void @llvm.memset.p0.i64(ptr align 4 %928, i8 0, i64 64, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %928, ptr align 4 @constinit.109, i64 64, i1 false), !tbaa.struct !24
  %3931 = getelementptr inbounds %"class.std::initializer_list.14", ptr %927, i32 0, i32 0
  store ptr %928, ptr %3931, align 8, !tbaa !19
  %3932 = getelementptr inbounds %"class.std::initializer_list.14", ptr %927, i32 0, i32 1
  store i64 16, ptr %3932, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %926, ptr noundef nonnull align 8 dereferenceable(16) %927)
  %3933 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %902, ptr noundef nonnull align 4 dereferenceable(64) %926)
  %3934 = zext i1 %3933 to i32
  %3935 = icmp eq i32 %3934, 0
  call void @llvm.lifetime.end.p0(i64 64, ptr %928) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %927) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %926) #10
  br i1 %3935, label %3936, label %3966

3936:                                             ; preds = %3930
  call void @llvm.lifetime.start.p0(i64 32, ptr %929) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %930) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %930) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %929, ptr noundef @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %930)
          to label %3937 unwind label %3942

3937:                                             ; preds = %3936
  call void @llvm.lifetime.start.p0(i64 32, ptr %931) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %932) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %932) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %931, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %932)
          to label %3938 unwind label %3946

3938:                                             ; preds = %3937
  call void @llvm.lifetime.start.p0(i64 32, ptr %933) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %934) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %934) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %933, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %934)
          to label %3939 unwind label %3950

3939:                                             ; preds = %3938
  call void @llvm.lifetime.start.p0(i64 32, ptr %935) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %936) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %936) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %935, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %936)
          to label %3940 unwind label %3954

3940:                                             ; preds = %3939
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %929, ptr noundef nonnull align 8 dereferenceable(32) %931, ptr noundef nonnull align 8 dereferenceable(32) %933, ptr noundef nonnull align 8 dereferenceable(32) %935, i32 noundef 279) #11
          to label %3941 unwind label %3958

3941:                                             ; preds = %3940
  unreachable

3942:                                             ; preds = %3936
  %3943 = landingpad { ptr, i32 }
          cleanup
  %3944 = extractvalue { ptr, i32 } %3943, 0
  store ptr %3944, ptr %6, align 8
  %3945 = extractvalue { ptr, i32 } %3943, 1
  store i32 %3945, ptr %7, align 4
  br label %3965

3946:                                             ; preds = %3937
  %3947 = landingpad { ptr, i32 }
          cleanup
  %3948 = extractvalue { ptr, i32 } %3947, 0
  store ptr %3948, ptr %6, align 8
  %3949 = extractvalue { ptr, i32 } %3947, 1
  store i32 %3949, ptr %7, align 4
  br label %3964

3950:                                             ; preds = %3938
  %3951 = landingpad { ptr, i32 }
          cleanup
  %3952 = extractvalue { ptr, i32 } %3951, 0
  store ptr %3952, ptr %6, align 8
  %3953 = extractvalue { ptr, i32 } %3951, 1
  store i32 %3953, ptr %7, align 4
  br label %3963

3954:                                             ; preds = %3939
  %3955 = landingpad { ptr, i32 }
          cleanup
  %3956 = extractvalue { ptr, i32 } %3955, 0
  store ptr %3956, ptr %6, align 8
  %3957 = extractvalue { ptr, i32 } %3955, 1
  store i32 %3957, ptr %7, align 4
  br label %3962

3958:                                             ; preds = %3940
  %3959 = landingpad { ptr, i32 }
          cleanup
  %3960 = extractvalue { ptr, i32 } %3959, 0
  store ptr %3960, ptr %6, align 8
  %3961 = extractvalue { ptr, i32 } %3959, 1
  store i32 %3961, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %935) #10
  br label %3962

3962:                                             ; preds = %3958, %3954
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %936) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %936) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %935) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %933) #10
  br label %3963

3963:                                             ; preds = %3962, %3950
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %934) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %934) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %933) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %931) #10
  br label %3964

3964:                                             ; preds = %3963, %3946
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %932) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %932) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %931) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %929) #10
  br label %3965

3965:                                             ; preds = %3964, %3942
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %930) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %930) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %929) #10
  br label %4027

3966:                                             ; preds = %3930
  call void @llvm.lifetime.start.p0(i64 64, ptr %937) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %938) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %939) #10
  call void @llvm.memset.p0.i64(ptr align 4 %939, i8 0, i64 64, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %939, ptr align 4 @constinit.111, i64 64, i1 false), !tbaa.struct !24
  %3967 = getelementptr inbounds %"class.std::initializer_list.14", ptr %938, i32 0, i32 0
  store ptr %939, ptr %3967, align 8, !tbaa !19
  %3968 = getelementptr inbounds %"class.std::initializer_list.14", ptr %938, i32 0, i32 1
  store i64 16, ptr %3968, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %937, ptr noundef nonnull align 8 dereferenceable(16) %938)
  %3969 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %903, ptr noundef nonnull align 4 dereferenceable(64) %937)
  %3970 = zext i1 %3969 to i32
  %3971 = icmp eq i32 %3970, 0
  call void @llvm.lifetime.end.p0(i64 64, ptr %939) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %938) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %937) #10
  br i1 %3971, label %3972, label %4002

3972:                                             ; preds = %3966
  call void @llvm.lifetime.start.p0(i64 32, ptr %940) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %941) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %941) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %940, ptr noundef @.str.112, ptr noundef nonnull align 1 dereferenceable(1) %941)
          to label %3973 unwind label %3978

3973:                                             ; preds = %3972
  call void @llvm.lifetime.start.p0(i64 32, ptr %942) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %943) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %943) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %942, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %943)
          to label %3974 unwind label %3982

3974:                                             ; preds = %3973
  call void @llvm.lifetime.start.p0(i64 32, ptr %944) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %945) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %945) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %944, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %945)
          to label %3975 unwind label %3986

3975:                                             ; preds = %3974
  call void @llvm.lifetime.start.p0(i64 32, ptr %946) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %947) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %947) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %946, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %947)
          to label %3976 unwind label %3990

3976:                                             ; preds = %3975
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %940, ptr noundef nonnull align 8 dereferenceable(32) %942, ptr noundef nonnull align 8 dereferenceable(32) %944, ptr noundef nonnull align 8 dereferenceable(32) %946, i32 noundef 280) #11
          to label %3977 unwind label %3994

3977:                                             ; preds = %3976
  unreachable

3978:                                             ; preds = %3972
  %3979 = landingpad { ptr, i32 }
          cleanup
  %3980 = extractvalue { ptr, i32 } %3979, 0
  store ptr %3980, ptr %6, align 8
  %3981 = extractvalue { ptr, i32 } %3979, 1
  store i32 %3981, ptr %7, align 4
  br label %4001

3982:                                             ; preds = %3973
  %3983 = landingpad { ptr, i32 }
          cleanup
  %3984 = extractvalue { ptr, i32 } %3983, 0
  store ptr %3984, ptr %6, align 8
  %3985 = extractvalue { ptr, i32 } %3983, 1
  store i32 %3985, ptr %7, align 4
  br label %4000

3986:                                             ; preds = %3974
  %3987 = landingpad { ptr, i32 }
          cleanup
  %3988 = extractvalue { ptr, i32 } %3987, 0
  store ptr %3988, ptr %6, align 8
  %3989 = extractvalue { ptr, i32 } %3987, 1
  store i32 %3989, ptr %7, align 4
  br label %3999

3990:                                             ; preds = %3975
  %3991 = landingpad { ptr, i32 }
          cleanup
  %3992 = extractvalue { ptr, i32 } %3991, 0
  store ptr %3992, ptr %6, align 8
  %3993 = extractvalue { ptr, i32 } %3991, 1
  store i32 %3993, ptr %7, align 4
  br label %3998

3994:                                             ; preds = %3976
  %3995 = landingpad { ptr, i32 }
          cleanup
  %3996 = extractvalue { ptr, i32 } %3995, 0
  store ptr %3996, ptr %6, align 8
  %3997 = extractvalue { ptr, i32 } %3995, 1
  store i32 %3997, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %946) #10
  br label %3998

3998:                                             ; preds = %3994, %3990
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %947) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %947) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %946) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %944) #10
  br label %3999

3999:                                             ; preds = %3998, %3986
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %945) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %945) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %944) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %942) #10
  br label %4000

4000:                                             ; preds = %3999, %3982
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %943) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %943) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %942) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %940) #10
  br label %4001

4001:                                             ; preds = %4000, %3978
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %941) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %941) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %940) #10
  br label %4027

4002:                                             ; preds = %3966
  call void @llvm.lifetime.end.p0(i64 64, ptr %903) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %902) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %901) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %900) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %948) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %949) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %950) #10
  store float 1.000000e+00, ptr %950, align 4, !tbaa !22
  %4003 = getelementptr inbounds %"class.std::initializer_list.14", ptr %949, i32 0, i32 0
  store ptr %950, ptr %4003, align 8, !tbaa !19
  %4004 = getelementptr inbounds %"class.std::initializer_list.14", ptr %949, i32 0, i32 1
  store i64 1, ptr %4004, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %948, ptr noundef nonnull align 8 dereferenceable(16) %949)
  call void @llvm.lifetime.end.p0(i64 4, ptr %950) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %949) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %951) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %952) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %953) #10
  store float 2.000000e+00, ptr %953, align 4, !tbaa !22
  %4005 = getelementptr inbounds %"class.std::initializer_list.14", ptr %952, i32 0, i32 0
  store ptr %953, ptr %4005, align 8, !tbaa !19
  %4006 = getelementptr inbounds %"class.std::initializer_list.14", ptr %952, i32 0, i32 1
  store i64 1, ptr %4006, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %951, ptr noundef nonnull align 8 dereferenceable(16) %952)
  call void @llvm.lifetime.end.p0(i64 4, ptr %953) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %952) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %954) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %955) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %956) #10
  store float 2.000000e+00, ptr %956, align 4, !tbaa !22
  %4007 = getelementptr inbounds float, ptr %956, i64 1
  store float 3.000000e+00, ptr %4007, align 4, !tbaa !22
  %4008 = getelementptr inbounds float, ptr %956, i64 2
  store float 7.000000e+00, ptr %4008, align 4, !tbaa !22
  %4009 = getelementptr inbounds %"class.std::initializer_list.14", ptr %955, i32 0, i32 0
  store ptr %956, ptr %4009, align 8, !tbaa !19
  %4010 = getelementptr inbounds %"class.std::initializer_list.14", ptr %955, i32 0, i32 1
  store i64 3, ptr %4010, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %954, ptr noundef nonnull align 8 dereferenceable(16) %955)
  call void @llvm.lifetime.end.p0(i64 12, ptr %956) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %955) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %957) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %958) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %959) #10
  store float 2.000000e+00, ptr %959, align 4, !tbaa !22
  %4011 = getelementptr inbounds float, ptr %959, i64 1
  store float 3.000000e+00, ptr %4011, align 4, !tbaa !22
  %4012 = getelementptr inbounds float, ptr %959, i64 2
  store float 7.000000e+00, ptr %4012, align 4, !tbaa !22
  %4013 = getelementptr inbounds float, ptr %959, i64 3
  store float 2.000000e+00, ptr %4013, align 4, !tbaa !22
  %4014 = getelementptr inbounds %"class.std::initializer_list.14", ptr %958, i32 0, i32 0
  store ptr %959, ptr %4014, align 8, !tbaa !19
  %4015 = getelementptr inbounds %"class.std::initializer_list.14", ptr %958, i32 0, i32 1
  store i64 4, ptr %4015, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %957, ptr noundef nonnull align 8 dereferenceable(16) %958)
  call void @llvm.lifetime.end.p0(i64 16, ptr %959) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %958) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %960) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %961) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %962) #10
  call void @llvm.memset.p0.i64(ptr align 4 %962, i8 0, i64 64, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %962, ptr align 4 @constinit.113, i64 64, i1 false), !tbaa.struct !24
  %4016 = getelementptr inbounds %"class.std::initializer_list.14", ptr %961, i32 0, i32 0
  store ptr %962, ptr %4016, align 8, !tbaa !19
  %4017 = getelementptr inbounds %"class.std::initializer_list.14", ptr %961, i32 0, i32 1
  store i64 16, ptr %4017, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %960, ptr noundef nonnull align 8 dereferenceable(16) %961)
  %4018 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %948, ptr noundef nonnull align 4 dereferenceable(64) %960)
  %4019 = zext i1 %4018 to i32
  %4020 = icmp eq i32 %4019, 0
  call void @llvm.lifetime.end.p0(i64 64, ptr %962) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %961) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %960) #10
  br i1 %4020, label %4021, label %4052

4021:                                             ; preds = %4002
  call void @llvm.lifetime.start.p0(i64 32, ptr %963) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %964) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %964) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %963, ptr noundef @.str.106, ptr noundef nonnull align 1 dereferenceable(1) %964)
          to label %4022 unwind label %4028

4022:                                             ; preds = %4021
  call void @llvm.lifetime.start.p0(i64 32, ptr %965) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %966) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %966) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %965, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %966)
          to label %4023 unwind label %4032

4023:                                             ; preds = %4022
  call void @llvm.lifetime.start.p0(i64 32, ptr %967) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %968) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %968) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %967, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %968)
          to label %4024 unwind label %4036

4024:                                             ; preds = %4023
  call void @llvm.lifetime.start.p0(i64 32, ptr %969) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %970) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %970) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %969, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %970)
          to label %4025 unwind label %4040

4025:                                             ; preds = %4024
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %963, ptr noundef nonnull align 8 dereferenceable(32) %965, ptr noundef nonnull align 8 dereferenceable(32) %967, ptr noundef nonnull align 8 dereferenceable(32) %969, i32 noundef 291) #11
          to label %4026 unwind label %4044

4026:                                             ; preds = %4025
  unreachable

4027:                                             ; preds = %4001, %3965, %3929, %3893
  call void @llvm.lifetime.end.p0(i64 64, ptr %903) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %902) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %901) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %900) #10
  br label %4629

4028:                                             ; preds = %4021
  %4029 = landingpad { ptr, i32 }
          cleanup
  %4030 = extractvalue { ptr, i32 } %4029, 0
  store ptr %4030, ptr %6, align 8
  %4031 = extractvalue { ptr, i32 } %4029, 1
  store i32 %4031, ptr %7, align 4
  br label %4051

4032:                                             ; preds = %4022
  %4033 = landingpad { ptr, i32 }
          cleanup
  %4034 = extractvalue { ptr, i32 } %4033, 0
  store ptr %4034, ptr %6, align 8
  %4035 = extractvalue { ptr, i32 } %4033, 1
  store i32 %4035, ptr %7, align 4
  br label %4050

4036:                                             ; preds = %4023
  %4037 = landingpad { ptr, i32 }
          cleanup
  %4038 = extractvalue { ptr, i32 } %4037, 0
  store ptr %4038, ptr %6, align 8
  %4039 = extractvalue { ptr, i32 } %4037, 1
  store i32 %4039, ptr %7, align 4
  br label %4049

4040:                                             ; preds = %4024
  %4041 = landingpad { ptr, i32 }
          cleanup
  %4042 = extractvalue { ptr, i32 } %4041, 0
  store ptr %4042, ptr %6, align 8
  %4043 = extractvalue { ptr, i32 } %4041, 1
  store i32 %4043, ptr %7, align 4
  br label %4048

4044:                                             ; preds = %4025
  %4045 = landingpad { ptr, i32 }
          cleanup
  %4046 = extractvalue { ptr, i32 } %4045, 0
  store ptr %4046, ptr %6, align 8
  %4047 = extractvalue { ptr, i32 } %4045, 1
  store i32 %4047, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %969) #10
  br label %4048

4048:                                             ; preds = %4044, %4040
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %970) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %970) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %969) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %967) #10
  br label %4049

4049:                                             ; preds = %4048, %4036
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %968) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %968) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %967) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %965) #10
  br label %4050

4050:                                             ; preds = %4049, %4032
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %966) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %966) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %965) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %963) #10
  br label %4051

4051:                                             ; preds = %4050, %4028
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %964) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %964) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %963) #10
  br label %4180

4052:                                             ; preds = %4002
  call void @llvm.lifetime.start.p0(i64 64, ptr %971) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %972) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %973) #10
  call void @llvm.memset.p0.i64(ptr align 4 %973, i8 0, i64 64, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %973, ptr align 4 @constinit.114, i64 64, i1 false), !tbaa.struct !24
  %4053 = getelementptr inbounds %"class.std::initializer_list.14", ptr %972, i32 0, i32 0
  store ptr %973, ptr %4053, align 8, !tbaa !19
  %4054 = getelementptr inbounds %"class.std::initializer_list.14", ptr %972, i32 0, i32 1
  store i64 16, ptr %4054, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %971, ptr noundef nonnull align 8 dereferenceable(16) %972)
  %4055 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %951, ptr noundef nonnull align 4 dereferenceable(64) %971)
  %4056 = zext i1 %4055 to i32
  %4057 = icmp eq i32 %4056, 0
  call void @llvm.lifetime.end.p0(i64 64, ptr %973) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %972) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %971) #10
  br i1 %4057, label %4058, label %4088

4058:                                             ; preds = %4052
  call void @llvm.lifetime.start.p0(i64 32, ptr %974) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %975) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %975) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %974, ptr noundef @.str.108, ptr noundef nonnull align 1 dereferenceable(1) %975)
          to label %4059 unwind label %4064

4059:                                             ; preds = %4058
  call void @llvm.lifetime.start.p0(i64 32, ptr %976) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %977) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %977) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %976, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %977)
          to label %4060 unwind label %4068

4060:                                             ; preds = %4059
  call void @llvm.lifetime.start.p0(i64 32, ptr %978) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %979) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %979) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %978, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %979)
          to label %4061 unwind label %4072

4061:                                             ; preds = %4060
  call void @llvm.lifetime.start.p0(i64 32, ptr %980) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %981) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %981) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %980, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %981)
          to label %4062 unwind label %4076

4062:                                             ; preds = %4061
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %974, ptr noundef nonnull align 8 dereferenceable(32) %976, ptr noundef nonnull align 8 dereferenceable(32) %978, ptr noundef nonnull align 8 dereferenceable(32) %980, i32 noundef 292) #11
          to label %4063 unwind label %4080

4063:                                             ; preds = %4062
  unreachable

4064:                                             ; preds = %4058
  %4065 = landingpad { ptr, i32 }
          cleanup
  %4066 = extractvalue { ptr, i32 } %4065, 0
  store ptr %4066, ptr %6, align 8
  %4067 = extractvalue { ptr, i32 } %4065, 1
  store i32 %4067, ptr %7, align 4
  br label %4087

4068:                                             ; preds = %4059
  %4069 = landingpad { ptr, i32 }
          cleanup
  %4070 = extractvalue { ptr, i32 } %4069, 0
  store ptr %4070, ptr %6, align 8
  %4071 = extractvalue { ptr, i32 } %4069, 1
  store i32 %4071, ptr %7, align 4
  br label %4086

4072:                                             ; preds = %4060
  %4073 = landingpad { ptr, i32 }
          cleanup
  %4074 = extractvalue { ptr, i32 } %4073, 0
  store ptr %4074, ptr %6, align 8
  %4075 = extractvalue { ptr, i32 } %4073, 1
  store i32 %4075, ptr %7, align 4
  br label %4085

4076:                                             ; preds = %4061
  %4077 = landingpad { ptr, i32 }
          cleanup
  %4078 = extractvalue { ptr, i32 } %4077, 0
  store ptr %4078, ptr %6, align 8
  %4079 = extractvalue { ptr, i32 } %4077, 1
  store i32 %4079, ptr %7, align 4
  br label %4084

4080:                                             ; preds = %4062
  %4081 = landingpad { ptr, i32 }
          cleanup
  %4082 = extractvalue { ptr, i32 } %4081, 0
  store ptr %4082, ptr %6, align 8
  %4083 = extractvalue { ptr, i32 } %4081, 1
  store i32 %4083, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %980) #10
  br label %4084

4084:                                             ; preds = %4080, %4076
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %981) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %981) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %980) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %978) #10
  br label %4085

4085:                                             ; preds = %4084, %4072
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %979) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %979) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %978) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %976) #10
  br label %4086

4086:                                             ; preds = %4085, %4068
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %977) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %977) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %976) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %974) #10
  br label %4087

4087:                                             ; preds = %4086, %4064
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %975) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %975) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %974) #10
  br label %4180

4088:                                             ; preds = %4052
  call void @llvm.lifetime.start.p0(i64 64, ptr %982) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %983) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %984) #10
  call void @llvm.memset.p0.i64(ptr align 4 %984, i8 0, i64 64, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %984, ptr align 4 @constinit.115, i64 64, i1 false), !tbaa.struct !24
  %4089 = getelementptr inbounds %"class.std::initializer_list.14", ptr %983, i32 0, i32 0
  store ptr %984, ptr %4089, align 8, !tbaa !19
  %4090 = getelementptr inbounds %"class.std::initializer_list.14", ptr %983, i32 0, i32 1
  store i64 16, ptr %4090, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %982, ptr noundef nonnull align 8 dereferenceable(16) %983)
  %4091 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %954, ptr noundef nonnull align 4 dereferenceable(64) %982)
  %4092 = zext i1 %4091 to i32
  %4093 = icmp eq i32 %4092, 0
  call void @llvm.lifetime.end.p0(i64 64, ptr %984) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %983) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %982) #10
  br i1 %4093, label %4094, label %4124

4094:                                             ; preds = %4088
  call void @llvm.lifetime.start.p0(i64 32, ptr %985) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %986) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %986) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %985, ptr noundef @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %986)
          to label %4095 unwind label %4100

4095:                                             ; preds = %4094
  call void @llvm.lifetime.start.p0(i64 32, ptr %987) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %988) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %988) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %987, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %988)
          to label %4096 unwind label %4104

4096:                                             ; preds = %4095
  call void @llvm.lifetime.start.p0(i64 32, ptr %989) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %990) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %990) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %989, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %990)
          to label %4097 unwind label %4108

4097:                                             ; preds = %4096
  call void @llvm.lifetime.start.p0(i64 32, ptr %991) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %992) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %992) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %991, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %992)
          to label %4098 unwind label %4112

4098:                                             ; preds = %4097
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %985, ptr noundef nonnull align 8 dereferenceable(32) %987, ptr noundef nonnull align 8 dereferenceable(32) %989, ptr noundef nonnull align 8 dereferenceable(32) %991, i32 noundef 293) #11
          to label %4099 unwind label %4116

4099:                                             ; preds = %4098
  unreachable

4100:                                             ; preds = %4094
  %4101 = landingpad { ptr, i32 }
          cleanup
  %4102 = extractvalue { ptr, i32 } %4101, 0
  store ptr %4102, ptr %6, align 8
  %4103 = extractvalue { ptr, i32 } %4101, 1
  store i32 %4103, ptr %7, align 4
  br label %4123

4104:                                             ; preds = %4095
  %4105 = landingpad { ptr, i32 }
          cleanup
  %4106 = extractvalue { ptr, i32 } %4105, 0
  store ptr %4106, ptr %6, align 8
  %4107 = extractvalue { ptr, i32 } %4105, 1
  store i32 %4107, ptr %7, align 4
  br label %4122

4108:                                             ; preds = %4096
  %4109 = landingpad { ptr, i32 }
          cleanup
  %4110 = extractvalue { ptr, i32 } %4109, 0
  store ptr %4110, ptr %6, align 8
  %4111 = extractvalue { ptr, i32 } %4109, 1
  store i32 %4111, ptr %7, align 4
  br label %4121

4112:                                             ; preds = %4097
  %4113 = landingpad { ptr, i32 }
          cleanup
  %4114 = extractvalue { ptr, i32 } %4113, 0
  store ptr %4114, ptr %6, align 8
  %4115 = extractvalue { ptr, i32 } %4113, 1
  store i32 %4115, ptr %7, align 4
  br label %4120

4116:                                             ; preds = %4098
  %4117 = landingpad { ptr, i32 }
          cleanup
  %4118 = extractvalue { ptr, i32 } %4117, 0
  store ptr %4118, ptr %6, align 8
  %4119 = extractvalue { ptr, i32 } %4117, 1
  store i32 %4119, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %991) #10
  br label %4120

4120:                                             ; preds = %4116, %4112
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %992) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %992) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %991) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %989) #10
  br label %4121

4121:                                             ; preds = %4120, %4108
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %990) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %990) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %989) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %987) #10
  br label %4122

4122:                                             ; preds = %4121, %4104
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %988) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %988) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %987) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %985) #10
  br label %4123

4123:                                             ; preds = %4122, %4100
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %986) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %986) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %985) #10
  br label %4180

4124:                                             ; preds = %4088
  call void @llvm.lifetime.start.p0(i64 64, ptr %993) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %994) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %995) #10
  call void @llvm.memset.p0.i64(ptr align 4 %995, i8 0, i64 64, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %995, ptr align 4 @constinit.116, i64 64, i1 false), !tbaa.struct !24
  %4125 = getelementptr inbounds %"class.std::initializer_list.14", ptr %994, i32 0, i32 0
  store ptr %995, ptr %4125, align 8, !tbaa !19
  %4126 = getelementptr inbounds %"class.std::initializer_list.14", ptr %994, i32 0, i32 1
  store i64 16, ptr %4126, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %993, ptr noundef nonnull align 8 dereferenceable(16) %994)
  %4127 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %957, ptr noundef nonnull align 4 dereferenceable(64) %993)
  %4128 = zext i1 %4127 to i32
  %4129 = icmp eq i32 %4128, 0
  call void @llvm.lifetime.end.p0(i64 64, ptr %995) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %994) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %993) #10
  br i1 %4129, label %4130, label %4160

4130:                                             ; preds = %4124
  call void @llvm.lifetime.start.p0(i64 32, ptr %996) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %997) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %997) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %996, ptr noundef @.str.112, ptr noundef nonnull align 1 dereferenceable(1) %997)
          to label %4131 unwind label %4136

4131:                                             ; preds = %4130
  call void @llvm.lifetime.start.p0(i64 32, ptr %998) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %999) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %999) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %998, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %999)
          to label %4132 unwind label %4140

4132:                                             ; preds = %4131
  call void @llvm.lifetime.start.p0(i64 32, ptr %1000) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1001) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1001) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1000, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1001)
          to label %4133 unwind label %4144

4133:                                             ; preds = %4132
  call void @llvm.lifetime.start.p0(i64 32, ptr %1002) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1003) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1003) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1002, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1003)
          to label %4134 unwind label %4148

4134:                                             ; preds = %4133
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %996, ptr noundef nonnull align 8 dereferenceable(32) %998, ptr noundef nonnull align 8 dereferenceable(32) %1000, ptr noundef nonnull align 8 dereferenceable(32) %1002, i32 noundef 294) #11
          to label %4135 unwind label %4152

4135:                                             ; preds = %4134
  unreachable

4136:                                             ; preds = %4130
  %4137 = landingpad { ptr, i32 }
          cleanup
  %4138 = extractvalue { ptr, i32 } %4137, 0
  store ptr %4138, ptr %6, align 8
  %4139 = extractvalue { ptr, i32 } %4137, 1
  store i32 %4139, ptr %7, align 4
  br label %4159

4140:                                             ; preds = %4131
  %4141 = landingpad { ptr, i32 }
          cleanup
  %4142 = extractvalue { ptr, i32 } %4141, 0
  store ptr %4142, ptr %6, align 8
  %4143 = extractvalue { ptr, i32 } %4141, 1
  store i32 %4143, ptr %7, align 4
  br label %4158

4144:                                             ; preds = %4132
  %4145 = landingpad { ptr, i32 }
          cleanup
  %4146 = extractvalue { ptr, i32 } %4145, 0
  store ptr %4146, ptr %6, align 8
  %4147 = extractvalue { ptr, i32 } %4145, 1
  store i32 %4147, ptr %7, align 4
  br label %4157

4148:                                             ; preds = %4133
  %4149 = landingpad { ptr, i32 }
          cleanup
  %4150 = extractvalue { ptr, i32 } %4149, 0
  store ptr %4150, ptr %6, align 8
  %4151 = extractvalue { ptr, i32 } %4149, 1
  store i32 %4151, ptr %7, align 4
  br label %4156

4152:                                             ; preds = %4134
  %4153 = landingpad { ptr, i32 }
          cleanup
  %4154 = extractvalue { ptr, i32 } %4153, 0
  store ptr %4154, ptr %6, align 8
  %4155 = extractvalue { ptr, i32 } %4153, 1
  store i32 %4155, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1002) #10
  br label %4156

4156:                                             ; preds = %4152, %4148
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1003) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1003) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1002) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1000) #10
  br label %4157

4157:                                             ; preds = %4156, %4144
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1001) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1001) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1000) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %998) #10
  br label %4158

4158:                                             ; preds = %4157, %4140
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %999) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %999) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %998) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %996) #10
  br label %4159

4159:                                             ; preds = %4158, %4136
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %997) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %997) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %996) #10
  br label %4180

4160:                                             ; preds = %4124
  call void @llvm.lifetime.end.p0(i64 64, ptr %957) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %954) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %951) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %948) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %1004) #10
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1Ef(ptr noundef nonnull align 4 dereferenceable(36) %1004, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 36, ptr %1005) #10
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1Ef(ptr noundef nonnull align 4 dereferenceable(36) %1005, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 36, ptr %1006) #10
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1Efff(ptr noundef nonnull align 4 dereferenceable(36) %1006, float noundef 2.000000e+00, float noundef 3.000000e+00, float noundef 7.000000e+00)
  call void @llvm.lifetime.start.p0(i64 36, ptr %1007) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1008) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %1009) #10
  store float 1.000000e+00, ptr %1009, align 4, !tbaa !22
  %4161 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1008, i32 0, i32 0
  store ptr %1009, ptr %4161, align 8, !tbaa !19
  %4162 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1008, i32 0, i32 1
  store i64 1, ptr %4162, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %1007, ptr noundef nonnull align 8 dereferenceable(16) %1008)
  call void @llvm.lifetime.end.p0(i64 4, ptr %1009) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1008) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %1010) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1011) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %1012) #10
  store float 2.000000e+00, ptr %1012, align 4, !tbaa !22
  %4163 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1011, i32 0, i32 0
  store ptr %1012, ptr %4163, align 8, !tbaa !19
  %4164 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1011, i32 0, i32 1
  store i64 1, ptr %4164, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %1010, ptr noundef nonnull align 8 dereferenceable(16) %1011)
  call void @llvm.lifetime.end.p0(i64 4, ptr %1012) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1011) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %1013) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1014) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %1015) #10
  store float 2.000000e+00, ptr %1015, align 4, !tbaa !22
  %4165 = getelementptr inbounds float, ptr %1015, i64 1
  store float 3.000000e+00, ptr %4165, align 4, !tbaa !22
  %4166 = getelementptr inbounds float, ptr %1015, i64 2
  store float 7.000000e+00, ptr %4166, align 4, !tbaa !22
  %4167 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1014, i32 0, i32 0
  store ptr %1015, ptr %4167, align 8, !tbaa !19
  %4168 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1014, i32 0, i32 1
  store i64 3, ptr %4168, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %1013, ptr noundef nonnull align 8 dereferenceable(16) %1014)
  call void @llvm.lifetime.end.p0(i64 12, ptr %1015) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1014) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %1016) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1017) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %1018) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1018, ptr align 4 @constinit.117, i64 36, i1 false), !tbaa.struct !18
  %4169 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1017, i32 0, i32 0
  store ptr %1018, ptr %4169, align 8, !tbaa !19
  %4170 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1017, i32 0, i32 1
  store i64 9, ptr %4170, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %1016, ptr noundef nonnull align 8 dereferenceable(16) %1017)
  %4171 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %1004, ptr noundef nonnull align 4 dereferenceable(36) %1016)
  %4172 = zext i1 %4171 to i32
  %4173 = icmp eq i32 %4172, 0
  call void @llvm.lifetime.end.p0(i64 36, ptr %1018) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1017) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %1016) #10
  br i1 %4173, label %4174, label %4205

4174:                                             ; preds = %4160
  call void @llvm.lifetime.start.p0(i64 32, ptr %1019) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1020) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1020) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1019, ptr noundef @.str.118, ptr noundef nonnull align 1 dereferenceable(1) %1020)
          to label %4175 unwind label %4181

4175:                                             ; preds = %4174
  call void @llvm.lifetime.start.p0(i64 32, ptr %1021) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1022) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1022) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1021, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1022)
          to label %4176 unwind label %4185

4176:                                             ; preds = %4175
  call void @llvm.lifetime.start.p0(i64 32, ptr %1023) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1024) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1024) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1023, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1024)
          to label %4177 unwind label %4189

4177:                                             ; preds = %4176
  call void @llvm.lifetime.start.p0(i64 32, ptr %1025) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1026) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1026) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1025, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1026)
          to label %4178 unwind label %4193

4178:                                             ; preds = %4177
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1019, ptr noundef nonnull align 8 dereferenceable(32) %1021, ptr noundef nonnull align 8 dereferenceable(32) %1023, ptr noundef nonnull align 8 dereferenceable(32) %1025, i32 noundef 306) #11
          to label %4179 unwind label %4197

4179:                                             ; preds = %4178
  unreachable

4180:                                             ; preds = %4159, %4123, %4087, %4051
  call void @llvm.lifetime.end.p0(i64 64, ptr %957) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %954) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %951) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %948) #10
  br label %4629

4181:                                             ; preds = %4174
  %4182 = landingpad { ptr, i32 }
          cleanup
  %4183 = extractvalue { ptr, i32 } %4182, 0
  store ptr %4183, ptr %6, align 8
  %4184 = extractvalue { ptr, i32 } %4182, 1
  store i32 %4184, ptr %7, align 4
  br label %4204

4185:                                             ; preds = %4175
  %4186 = landingpad { ptr, i32 }
          cleanup
  %4187 = extractvalue { ptr, i32 } %4186, 0
  store ptr %4187, ptr %6, align 8
  %4188 = extractvalue { ptr, i32 } %4186, 1
  store i32 %4188, ptr %7, align 4
  br label %4203

4189:                                             ; preds = %4176
  %4190 = landingpad { ptr, i32 }
          cleanup
  %4191 = extractvalue { ptr, i32 } %4190, 0
  store ptr %4191, ptr %6, align 8
  %4192 = extractvalue { ptr, i32 } %4190, 1
  store i32 %4192, ptr %7, align 4
  br label %4202

4193:                                             ; preds = %4177
  %4194 = landingpad { ptr, i32 }
          cleanup
  %4195 = extractvalue { ptr, i32 } %4194, 0
  store ptr %4195, ptr %6, align 8
  %4196 = extractvalue { ptr, i32 } %4194, 1
  store i32 %4196, ptr %7, align 4
  br label %4201

4197:                                             ; preds = %4178
  %4198 = landingpad { ptr, i32 }
          cleanup
  %4199 = extractvalue { ptr, i32 } %4198, 0
  store ptr %4199, ptr %6, align 8
  %4200 = extractvalue { ptr, i32 } %4198, 1
  store i32 %4200, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1025) #10
  br label %4201

4201:                                             ; preds = %4197, %4193
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1026) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1026) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1025) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1023) #10
  br label %4202

4202:                                             ; preds = %4201, %4189
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1024) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1024) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1023) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1021) #10
  br label %4203

4203:                                             ; preds = %4202, %4185
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1022) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1022) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1021) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1019) #10
  br label %4204

4204:                                             ; preds = %4203, %4181
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1020) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1020) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1019) #10
  br label %4407

4205:                                             ; preds = %4160
  call void @llvm.lifetime.start.p0(i64 36, ptr %1027) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1028) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %1029) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1029, ptr align 4 @constinit.119, i64 36, i1 false), !tbaa.struct !18
  %4206 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1028, i32 0, i32 0
  store ptr %1029, ptr %4206, align 8, !tbaa !19
  %4207 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1028, i32 0, i32 1
  store i64 9, ptr %4207, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %1027, ptr noundef nonnull align 8 dereferenceable(16) %1028)
  %4208 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %1005, ptr noundef nonnull align 4 dereferenceable(36) %1027)
  %4209 = zext i1 %4208 to i32
  %4210 = icmp eq i32 %4209, 0
  call void @llvm.lifetime.end.p0(i64 36, ptr %1029) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1028) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %1027) #10
  br i1 %4210, label %4211, label %4241

4211:                                             ; preds = %4205
  call void @llvm.lifetime.start.p0(i64 32, ptr %1030) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1031) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1031) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1030, ptr noundef @.str.120, ptr noundef nonnull align 1 dereferenceable(1) %1031)
          to label %4212 unwind label %4217

4212:                                             ; preds = %4211
  call void @llvm.lifetime.start.p0(i64 32, ptr %1032) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1033) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1033) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1032, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1033)
          to label %4213 unwind label %4221

4213:                                             ; preds = %4212
  call void @llvm.lifetime.start.p0(i64 32, ptr %1034) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1035) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1035) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1034, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1035)
          to label %4214 unwind label %4225

4214:                                             ; preds = %4213
  call void @llvm.lifetime.start.p0(i64 32, ptr %1036) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1037) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1037) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1036, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1037)
          to label %4215 unwind label %4229

4215:                                             ; preds = %4214
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1030, ptr noundef nonnull align 8 dereferenceable(32) %1032, ptr noundef nonnull align 8 dereferenceable(32) %1034, ptr noundef nonnull align 8 dereferenceable(32) %1036, i32 noundef 307) #11
          to label %4216 unwind label %4233

4216:                                             ; preds = %4215
  unreachable

4217:                                             ; preds = %4211
  %4218 = landingpad { ptr, i32 }
          cleanup
  %4219 = extractvalue { ptr, i32 } %4218, 0
  store ptr %4219, ptr %6, align 8
  %4220 = extractvalue { ptr, i32 } %4218, 1
  store i32 %4220, ptr %7, align 4
  br label %4240

4221:                                             ; preds = %4212
  %4222 = landingpad { ptr, i32 }
          cleanup
  %4223 = extractvalue { ptr, i32 } %4222, 0
  store ptr %4223, ptr %6, align 8
  %4224 = extractvalue { ptr, i32 } %4222, 1
  store i32 %4224, ptr %7, align 4
  br label %4239

4225:                                             ; preds = %4213
  %4226 = landingpad { ptr, i32 }
          cleanup
  %4227 = extractvalue { ptr, i32 } %4226, 0
  store ptr %4227, ptr %6, align 8
  %4228 = extractvalue { ptr, i32 } %4226, 1
  store i32 %4228, ptr %7, align 4
  br label %4238

4229:                                             ; preds = %4214
  %4230 = landingpad { ptr, i32 }
          cleanup
  %4231 = extractvalue { ptr, i32 } %4230, 0
  store ptr %4231, ptr %6, align 8
  %4232 = extractvalue { ptr, i32 } %4230, 1
  store i32 %4232, ptr %7, align 4
  br label %4237

4233:                                             ; preds = %4215
  %4234 = landingpad { ptr, i32 }
          cleanup
  %4235 = extractvalue { ptr, i32 } %4234, 0
  store ptr %4235, ptr %6, align 8
  %4236 = extractvalue { ptr, i32 } %4234, 1
  store i32 %4236, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1036) #10
  br label %4237

4237:                                             ; preds = %4233, %4229
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1037) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1037) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1036) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1034) #10
  br label %4238

4238:                                             ; preds = %4237, %4225
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1035) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1035) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1034) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1032) #10
  br label %4239

4239:                                             ; preds = %4238, %4221
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1033) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1033) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1032) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1030) #10
  br label %4240

4240:                                             ; preds = %4239, %4217
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1031) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1031) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1030) #10
  br label %4407

4241:                                             ; preds = %4205
  call void @llvm.lifetime.start.p0(i64 36, ptr %1038) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1039) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %1040) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1040, ptr align 4 @constinit.121, i64 36, i1 false), !tbaa.struct !18
  %4242 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1039, i32 0, i32 0
  store ptr %1040, ptr %4242, align 8, !tbaa !19
  %4243 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1039, i32 0, i32 1
  store i64 9, ptr %4243, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %1038, ptr noundef nonnull align 8 dereferenceable(16) %1039)
  %4244 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %1006, ptr noundef nonnull align 4 dereferenceable(36) %1038)
  %4245 = zext i1 %4244 to i32
  %4246 = icmp eq i32 %4245, 0
  call void @llvm.lifetime.end.p0(i64 36, ptr %1040) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1039) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %1038) #10
  br i1 %4246, label %4247, label %4277

4247:                                             ; preds = %4241
  call void @llvm.lifetime.start.p0(i64 32, ptr %1041) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1042) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1042) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1041, ptr noundef @.str.122, ptr noundef nonnull align 1 dereferenceable(1) %1042)
          to label %4248 unwind label %4253

4248:                                             ; preds = %4247
  call void @llvm.lifetime.start.p0(i64 32, ptr %1043) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1044) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1044) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1043, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1044)
          to label %4249 unwind label %4257

4249:                                             ; preds = %4248
  call void @llvm.lifetime.start.p0(i64 32, ptr %1045) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1046) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1046) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1045, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1046)
          to label %4250 unwind label %4261

4250:                                             ; preds = %4249
  call void @llvm.lifetime.start.p0(i64 32, ptr %1047) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1048) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1048) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1047, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1048)
          to label %4251 unwind label %4265

4251:                                             ; preds = %4250
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1041, ptr noundef nonnull align 8 dereferenceable(32) %1043, ptr noundef nonnull align 8 dereferenceable(32) %1045, ptr noundef nonnull align 8 dereferenceable(32) %1047, i32 noundef 308) #11
          to label %4252 unwind label %4269

4252:                                             ; preds = %4251
  unreachable

4253:                                             ; preds = %4247
  %4254 = landingpad { ptr, i32 }
          cleanup
  %4255 = extractvalue { ptr, i32 } %4254, 0
  store ptr %4255, ptr %6, align 8
  %4256 = extractvalue { ptr, i32 } %4254, 1
  store i32 %4256, ptr %7, align 4
  br label %4276

4257:                                             ; preds = %4248
  %4258 = landingpad { ptr, i32 }
          cleanup
  %4259 = extractvalue { ptr, i32 } %4258, 0
  store ptr %4259, ptr %6, align 8
  %4260 = extractvalue { ptr, i32 } %4258, 1
  store i32 %4260, ptr %7, align 4
  br label %4275

4261:                                             ; preds = %4249
  %4262 = landingpad { ptr, i32 }
          cleanup
  %4263 = extractvalue { ptr, i32 } %4262, 0
  store ptr %4263, ptr %6, align 8
  %4264 = extractvalue { ptr, i32 } %4262, 1
  store i32 %4264, ptr %7, align 4
  br label %4274

4265:                                             ; preds = %4250
  %4266 = landingpad { ptr, i32 }
          cleanup
  %4267 = extractvalue { ptr, i32 } %4266, 0
  store ptr %4267, ptr %6, align 8
  %4268 = extractvalue { ptr, i32 } %4266, 1
  store i32 %4268, ptr %7, align 4
  br label %4273

4269:                                             ; preds = %4251
  %4270 = landingpad { ptr, i32 }
          cleanup
  %4271 = extractvalue { ptr, i32 } %4270, 0
  store ptr %4271, ptr %6, align 8
  %4272 = extractvalue { ptr, i32 } %4270, 1
  store i32 %4272, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1047) #10
  br label %4273

4273:                                             ; preds = %4269, %4265
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1048) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1048) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1047) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1045) #10
  br label %4274

4274:                                             ; preds = %4273, %4261
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1046) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1046) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1045) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1043) #10
  br label %4275

4275:                                             ; preds = %4274, %4257
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1044) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1044) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1043) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1041) #10
  br label %4276

4276:                                             ; preds = %4275, %4253
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1042) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1042) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1041) #10
  br label %4407

4277:                                             ; preds = %4241
  call void @llvm.lifetime.start.p0(i64 36, ptr %1049) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1050) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %1051) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1051, ptr align 4 @constinit.123, i64 36, i1 false), !tbaa.struct !18
  %4278 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1050, i32 0, i32 0
  store ptr %1051, ptr %4278, align 8, !tbaa !19
  %4279 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1050, i32 0, i32 1
  store i64 9, ptr %4279, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %1049, ptr noundef nonnull align 8 dereferenceable(16) %1050)
  %4280 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %1007, ptr noundef nonnull align 4 dereferenceable(36) %1049)
  %4281 = zext i1 %4280 to i32
  %4282 = icmp eq i32 %4281, 0
  call void @llvm.lifetime.end.p0(i64 36, ptr %1051) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1050) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %1049) #10
  br i1 %4282, label %4283, label %4313

4283:                                             ; preds = %4277
  call void @llvm.lifetime.start.p0(i64 32, ptr %1052) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1053) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1053) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1052, ptr noundef @.str.124, ptr noundef nonnull align 1 dereferenceable(1) %1053)
          to label %4284 unwind label %4289

4284:                                             ; preds = %4283
  call void @llvm.lifetime.start.p0(i64 32, ptr %1054) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1055) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1055) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1054, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1055)
          to label %4285 unwind label %4293

4285:                                             ; preds = %4284
  call void @llvm.lifetime.start.p0(i64 32, ptr %1056) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1057) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1057) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1056, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1057)
          to label %4286 unwind label %4297

4286:                                             ; preds = %4285
  call void @llvm.lifetime.start.p0(i64 32, ptr %1058) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1059) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1059) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1058, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1059)
          to label %4287 unwind label %4301

4287:                                             ; preds = %4286
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1052, ptr noundef nonnull align 8 dereferenceable(32) %1054, ptr noundef nonnull align 8 dereferenceable(32) %1056, ptr noundef nonnull align 8 dereferenceable(32) %1058, i32 noundef 310) #11
          to label %4288 unwind label %4305

4288:                                             ; preds = %4287
  unreachable

4289:                                             ; preds = %4283
  %4290 = landingpad { ptr, i32 }
          cleanup
  %4291 = extractvalue { ptr, i32 } %4290, 0
  store ptr %4291, ptr %6, align 8
  %4292 = extractvalue { ptr, i32 } %4290, 1
  store i32 %4292, ptr %7, align 4
  br label %4312

4293:                                             ; preds = %4284
  %4294 = landingpad { ptr, i32 }
          cleanup
  %4295 = extractvalue { ptr, i32 } %4294, 0
  store ptr %4295, ptr %6, align 8
  %4296 = extractvalue { ptr, i32 } %4294, 1
  store i32 %4296, ptr %7, align 4
  br label %4311

4297:                                             ; preds = %4285
  %4298 = landingpad { ptr, i32 }
          cleanup
  %4299 = extractvalue { ptr, i32 } %4298, 0
  store ptr %4299, ptr %6, align 8
  %4300 = extractvalue { ptr, i32 } %4298, 1
  store i32 %4300, ptr %7, align 4
  br label %4310

4301:                                             ; preds = %4286
  %4302 = landingpad { ptr, i32 }
          cleanup
  %4303 = extractvalue { ptr, i32 } %4302, 0
  store ptr %4303, ptr %6, align 8
  %4304 = extractvalue { ptr, i32 } %4302, 1
  store i32 %4304, ptr %7, align 4
  br label %4309

4305:                                             ; preds = %4287
  %4306 = landingpad { ptr, i32 }
          cleanup
  %4307 = extractvalue { ptr, i32 } %4306, 0
  store ptr %4307, ptr %6, align 8
  %4308 = extractvalue { ptr, i32 } %4306, 1
  store i32 %4308, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1058) #10
  br label %4309

4309:                                             ; preds = %4305, %4301
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1059) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1059) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1058) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1056) #10
  br label %4310

4310:                                             ; preds = %4309, %4297
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1057) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1057) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1056) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1054) #10
  br label %4311

4311:                                             ; preds = %4310, %4293
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1055) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1055) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1054) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1052) #10
  br label %4312

4312:                                             ; preds = %4311, %4289
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1053) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1053) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1052) #10
  br label %4407

4313:                                             ; preds = %4277
  call void @llvm.lifetime.start.p0(i64 36, ptr %1060) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1061) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %1062) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1062, ptr align 4 @constinit.125, i64 36, i1 false), !tbaa.struct !18
  %4314 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1061, i32 0, i32 0
  store ptr %1062, ptr %4314, align 8, !tbaa !19
  %4315 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1061, i32 0, i32 1
  store i64 9, ptr %4315, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %1060, ptr noundef nonnull align 8 dereferenceable(16) %1061)
  %4316 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %1010, ptr noundef nonnull align 4 dereferenceable(36) %1060)
  %4317 = zext i1 %4316 to i32
  %4318 = icmp eq i32 %4317, 0
  call void @llvm.lifetime.end.p0(i64 36, ptr %1062) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1061) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %1060) #10
  br i1 %4318, label %4319, label %4349

4319:                                             ; preds = %4313
  call void @llvm.lifetime.start.p0(i64 32, ptr %1063) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1064) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1064) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1063, ptr noundef @.str.126, ptr noundef nonnull align 1 dereferenceable(1) %1064)
          to label %4320 unwind label %4325

4320:                                             ; preds = %4319
  call void @llvm.lifetime.start.p0(i64 32, ptr %1065) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1066) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1066) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1065, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1066)
          to label %4321 unwind label %4329

4321:                                             ; preds = %4320
  call void @llvm.lifetime.start.p0(i64 32, ptr %1067) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1068) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1068) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1067, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1068)
          to label %4322 unwind label %4333

4322:                                             ; preds = %4321
  call void @llvm.lifetime.start.p0(i64 32, ptr %1069) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1070) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1070) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1069, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1070)
          to label %4323 unwind label %4337

4323:                                             ; preds = %4322
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1063, ptr noundef nonnull align 8 dereferenceable(32) %1065, ptr noundef nonnull align 8 dereferenceable(32) %1067, ptr noundef nonnull align 8 dereferenceable(32) %1069, i32 noundef 311) #11
          to label %4324 unwind label %4341

4324:                                             ; preds = %4323
  unreachable

4325:                                             ; preds = %4319
  %4326 = landingpad { ptr, i32 }
          cleanup
  %4327 = extractvalue { ptr, i32 } %4326, 0
  store ptr %4327, ptr %6, align 8
  %4328 = extractvalue { ptr, i32 } %4326, 1
  store i32 %4328, ptr %7, align 4
  br label %4348

4329:                                             ; preds = %4320
  %4330 = landingpad { ptr, i32 }
          cleanup
  %4331 = extractvalue { ptr, i32 } %4330, 0
  store ptr %4331, ptr %6, align 8
  %4332 = extractvalue { ptr, i32 } %4330, 1
  store i32 %4332, ptr %7, align 4
  br label %4347

4333:                                             ; preds = %4321
  %4334 = landingpad { ptr, i32 }
          cleanup
  %4335 = extractvalue { ptr, i32 } %4334, 0
  store ptr %4335, ptr %6, align 8
  %4336 = extractvalue { ptr, i32 } %4334, 1
  store i32 %4336, ptr %7, align 4
  br label %4346

4337:                                             ; preds = %4322
  %4338 = landingpad { ptr, i32 }
          cleanup
  %4339 = extractvalue { ptr, i32 } %4338, 0
  store ptr %4339, ptr %6, align 8
  %4340 = extractvalue { ptr, i32 } %4338, 1
  store i32 %4340, ptr %7, align 4
  br label %4345

4341:                                             ; preds = %4323
  %4342 = landingpad { ptr, i32 }
          cleanup
  %4343 = extractvalue { ptr, i32 } %4342, 0
  store ptr %4343, ptr %6, align 8
  %4344 = extractvalue { ptr, i32 } %4342, 1
  store i32 %4344, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1069) #10
  br label %4345

4345:                                             ; preds = %4341, %4337
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1070) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1070) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1069) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1067) #10
  br label %4346

4346:                                             ; preds = %4345, %4333
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1068) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1068) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1067) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1065) #10
  br label %4347

4347:                                             ; preds = %4346, %4329
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1066) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1066) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1065) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1063) #10
  br label %4348

4348:                                             ; preds = %4347, %4325
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1064) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1064) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1063) #10
  br label %4407

4349:                                             ; preds = %4313
  call void @llvm.lifetime.start.p0(i64 36, ptr %1071) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1072) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %1073) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1073, ptr align 4 @constinit.127, i64 36, i1 false), !tbaa.struct !18
  %4350 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1072, i32 0, i32 0
  store ptr %1073, ptr %4350, align 8, !tbaa !19
  %4351 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1072, i32 0, i32 1
  store i64 9, ptr %4351, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %1071, ptr noundef nonnull align 8 dereferenceable(16) %1072)
  %4352 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %1013, ptr noundef nonnull align 4 dereferenceable(36) %1071)
  %4353 = zext i1 %4352 to i32
  %4354 = icmp eq i32 %4353, 0
  call void @llvm.lifetime.end.p0(i64 36, ptr %1073) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1072) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %1071) #10
  br i1 %4354, label %4355, label %4385

4355:                                             ; preds = %4349
  call void @llvm.lifetime.start.p0(i64 32, ptr %1074) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1075) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1075) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1074, ptr noundef @.str.128, ptr noundef nonnull align 1 dereferenceable(1) %1075)
          to label %4356 unwind label %4361

4356:                                             ; preds = %4355
  call void @llvm.lifetime.start.p0(i64 32, ptr %1076) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1077) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1077) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1076, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1077)
          to label %4357 unwind label %4365

4357:                                             ; preds = %4356
  call void @llvm.lifetime.start.p0(i64 32, ptr %1078) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1079) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1079) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1078, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1079)
          to label %4358 unwind label %4369

4358:                                             ; preds = %4357
  call void @llvm.lifetime.start.p0(i64 32, ptr %1080) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1081) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1081) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1080, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1081)
          to label %4359 unwind label %4373

4359:                                             ; preds = %4358
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1074, ptr noundef nonnull align 8 dereferenceable(32) %1076, ptr noundef nonnull align 8 dereferenceable(32) %1078, ptr noundef nonnull align 8 dereferenceable(32) %1080, i32 noundef 312) #11
          to label %4360 unwind label %4377

4360:                                             ; preds = %4359
  unreachable

4361:                                             ; preds = %4355
  %4362 = landingpad { ptr, i32 }
          cleanup
  %4363 = extractvalue { ptr, i32 } %4362, 0
  store ptr %4363, ptr %6, align 8
  %4364 = extractvalue { ptr, i32 } %4362, 1
  store i32 %4364, ptr %7, align 4
  br label %4384

4365:                                             ; preds = %4356
  %4366 = landingpad { ptr, i32 }
          cleanup
  %4367 = extractvalue { ptr, i32 } %4366, 0
  store ptr %4367, ptr %6, align 8
  %4368 = extractvalue { ptr, i32 } %4366, 1
  store i32 %4368, ptr %7, align 4
  br label %4383

4369:                                             ; preds = %4357
  %4370 = landingpad { ptr, i32 }
          cleanup
  %4371 = extractvalue { ptr, i32 } %4370, 0
  store ptr %4371, ptr %6, align 8
  %4372 = extractvalue { ptr, i32 } %4370, 1
  store i32 %4372, ptr %7, align 4
  br label %4382

4373:                                             ; preds = %4358
  %4374 = landingpad { ptr, i32 }
          cleanup
  %4375 = extractvalue { ptr, i32 } %4374, 0
  store ptr %4375, ptr %6, align 8
  %4376 = extractvalue { ptr, i32 } %4374, 1
  store i32 %4376, ptr %7, align 4
  br label %4381

4377:                                             ; preds = %4359
  %4378 = landingpad { ptr, i32 }
          cleanup
  %4379 = extractvalue { ptr, i32 } %4378, 0
  store ptr %4379, ptr %6, align 8
  %4380 = extractvalue { ptr, i32 } %4378, 1
  store i32 %4380, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1080) #10
  br label %4381

4381:                                             ; preds = %4377, %4373
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1081) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1081) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1080) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1078) #10
  br label %4382

4382:                                             ; preds = %4381, %4369
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1079) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1079) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1078) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1076) #10
  br label %4383

4383:                                             ; preds = %4382, %4365
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1077) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1077) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1076) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1074) #10
  br label %4384

4384:                                             ; preds = %4383, %4361
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1075) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1075) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1074) #10
  br label %4407

4385:                                             ; preds = %4349
  call void @llvm.lifetime.end.p0(i64 36, ptr %1013) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %1010) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %1007) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %1006) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %1005) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %1004) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1082) #10
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1Ef(ptr noundef nonnull align 4 dereferenceable(16) %1082, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr %1083) #10
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1Ef(ptr noundef nonnull align 4 dereferenceable(16) %1083, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr %1084) #10
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1Eff(ptr noundef nonnull align 4 dereferenceable(16) %1084, float noundef 2.000000e+00, float noundef 3.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr %1085) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1086) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %1087) #10
  store float 1.000000e+00, ptr %1087, align 4, !tbaa !22
  %4386 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1086, i32 0, i32 0
  store ptr %1087, ptr %4386, align 8, !tbaa !19
  %4387 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1086, i32 0, i32 1
  store i64 1, ptr %4387, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1085, ptr noundef nonnull align 8 dereferenceable(16) %1086)
  call void @llvm.lifetime.end.p0(i64 4, ptr %1087) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1086) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1088) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1089) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %1090) #10
  store float 2.000000e+00, ptr %1090, align 4, !tbaa !22
  %4388 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1089, i32 0, i32 0
  store ptr %1090, ptr %4388, align 8, !tbaa !19
  %4389 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1089, i32 0, i32 1
  store i64 1, ptr %4389, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1088, ptr noundef nonnull align 8 dereferenceable(16) %1089)
  call void @llvm.lifetime.end.p0(i64 4, ptr %1090) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1089) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1091) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1092) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %1093) #10
  store float 2.000000e+00, ptr %1093, align 4, !tbaa !22
  %4390 = getelementptr inbounds float, ptr %1093, i64 1
  store float 3.000000e+00, ptr %4390, align 4, !tbaa !22
  %4391 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1092, i32 0, i32 0
  store ptr %1093, ptr %4391, align 8, !tbaa !19
  %4392 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1092, i32 0, i32 1
  store i64 2, ptr %4392, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1091, ptr noundef nonnull align 8 dereferenceable(16) %1092)
  call void @llvm.lifetime.end.p0(i64 8, ptr %1093) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1092) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1094) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1095) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1096) #10
  store float 1.000000e+00, ptr %1096, align 4, !tbaa !22
  %4393 = getelementptr inbounds float, ptr %1096, i64 1
  store float 0.000000e+00, ptr %4393, align 4, !tbaa !22
  %4394 = getelementptr inbounds float, ptr %1096, i64 2
  store float 0.000000e+00, ptr %4394, align 4, !tbaa !22
  %4395 = getelementptr inbounds float, ptr %1096, i64 3
  store float 1.000000e+00, ptr %4395, align 4, !tbaa !22
  %4396 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1095, i32 0, i32 0
  store ptr %1096, ptr %4396, align 8, !tbaa !19
  %4397 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1095, i32 0, i32 1
  store i64 4, ptr %4397, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1094, ptr noundef nonnull align 8 dereferenceable(16) %1095)
  %4398 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %1082, ptr noundef nonnull align 4 dereferenceable(16) %1094)
  %4399 = zext i1 %4398 to i32
  %4400 = icmp eq i32 %4399, 0
  call void @llvm.lifetime.end.p0(i64 16, ptr %1096) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1095) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1094) #10
  br i1 %4400, label %4401, label %4432

4401:                                             ; preds = %4385
  call void @llvm.lifetime.start.p0(i64 32, ptr %1097) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1098) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1098) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1097, ptr noundef @.str.129, ptr noundef nonnull align 1 dereferenceable(1) %1098)
          to label %4402 unwind label %4408

4402:                                             ; preds = %4401
  call void @llvm.lifetime.start.p0(i64 32, ptr %1099) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1100) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1100) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1099, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1100)
          to label %4403 unwind label %4412

4403:                                             ; preds = %4402
  call void @llvm.lifetime.start.p0(i64 32, ptr %1101) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1102) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1102) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1101, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1102)
          to label %4404 unwind label %4416

4404:                                             ; preds = %4403
  call void @llvm.lifetime.start.p0(i64 32, ptr %1103) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1104) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1104) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1103, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1104)
          to label %4405 unwind label %4420

4405:                                             ; preds = %4404
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1097, ptr noundef nonnull align 8 dereferenceable(32) %1099, ptr noundef nonnull align 8 dereferenceable(32) %1101, ptr noundef nonnull align 8 dereferenceable(32) %1103, i32 noundef 324) #11
          to label %4406 unwind label %4424

4406:                                             ; preds = %4405
  unreachable

4407:                                             ; preds = %4384, %4348, %4312, %4276, %4240, %4204
  call void @llvm.lifetime.end.p0(i64 36, ptr %1013) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %1010) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %1007) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %1006) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %1005) #10
  call void @llvm.lifetime.end.p0(i64 36, ptr %1004) #10
  br label %4629

4408:                                             ; preds = %4401
  %4409 = landingpad { ptr, i32 }
          cleanup
  %4410 = extractvalue { ptr, i32 } %4409, 0
  store ptr %4410, ptr %6, align 8
  %4411 = extractvalue { ptr, i32 } %4409, 1
  store i32 %4411, ptr %7, align 4
  br label %4431

4412:                                             ; preds = %4402
  %4413 = landingpad { ptr, i32 }
          cleanup
  %4414 = extractvalue { ptr, i32 } %4413, 0
  store ptr %4414, ptr %6, align 8
  %4415 = extractvalue { ptr, i32 } %4413, 1
  store i32 %4415, ptr %7, align 4
  br label %4430

4416:                                             ; preds = %4403
  %4417 = landingpad { ptr, i32 }
          cleanup
  %4418 = extractvalue { ptr, i32 } %4417, 0
  store ptr %4418, ptr %6, align 8
  %4419 = extractvalue { ptr, i32 } %4417, 1
  store i32 %4419, ptr %7, align 4
  br label %4429

4420:                                             ; preds = %4404
  %4421 = landingpad { ptr, i32 }
          cleanup
  %4422 = extractvalue { ptr, i32 } %4421, 0
  store ptr %4422, ptr %6, align 8
  %4423 = extractvalue { ptr, i32 } %4421, 1
  store i32 %4423, ptr %7, align 4
  br label %4428

4424:                                             ; preds = %4405
  %4425 = landingpad { ptr, i32 }
          cleanup
  %4426 = extractvalue { ptr, i32 } %4425, 0
  store ptr %4426, ptr %6, align 8
  %4427 = extractvalue { ptr, i32 } %4425, 1
  store i32 %4427, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1103) #10
  br label %4428

4428:                                             ; preds = %4424, %4420
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1104) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1104) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1103) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1101) #10
  br label %4429

4429:                                             ; preds = %4428, %4416
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1102) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1102) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1101) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1099) #10
  br label %4430

4430:                                             ; preds = %4429, %4412
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1100) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1100) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1099) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1097) #10
  br label %4431

4431:                                             ; preds = %4430, %4408
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1098) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1098) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1097) #10
  br label %4628

4432:                                             ; preds = %4385
  call void @llvm.lifetime.start.p0(i64 16, ptr %1105) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1106) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1107) #10
  store float 2.000000e+00, ptr %1107, align 4, !tbaa !22
  %4433 = getelementptr inbounds float, ptr %1107, i64 1
  store float 0.000000e+00, ptr %4433, align 4, !tbaa !22
  %4434 = getelementptr inbounds float, ptr %1107, i64 2
  store float 0.000000e+00, ptr %4434, align 4, !tbaa !22
  %4435 = getelementptr inbounds float, ptr %1107, i64 3
  store float 2.000000e+00, ptr %4435, align 4, !tbaa !22
  %4436 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1106, i32 0, i32 0
  store ptr %1107, ptr %4436, align 8, !tbaa !19
  %4437 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1106, i32 0, i32 1
  store i64 4, ptr %4437, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1105, ptr noundef nonnull align 8 dereferenceable(16) %1106)
  %4438 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %1083, ptr noundef nonnull align 4 dereferenceable(16) %1105)
  %4439 = zext i1 %4438 to i32
  %4440 = icmp eq i32 %4439, 0
  call void @llvm.lifetime.end.p0(i64 16, ptr %1107) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1106) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1105) #10
  br i1 %4440, label %4441, label %4471

4441:                                             ; preds = %4432
  call void @llvm.lifetime.start.p0(i64 32, ptr %1108) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1109) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1109) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1108, ptr noundef @.str.130, ptr noundef nonnull align 1 dereferenceable(1) %1109)
          to label %4442 unwind label %4447

4442:                                             ; preds = %4441
  call void @llvm.lifetime.start.p0(i64 32, ptr %1110) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1111) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1111) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1110, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1111)
          to label %4443 unwind label %4451

4443:                                             ; preds = %4442
  call void @llvm.lifetime.start.p0(i64 32, ptr %1112) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1113) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1113) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1112, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1113)
          to label %4444 unwind label %4455

4444:                                             ; preds = %4443
  call void @llvm.lifetime.start.p0(i64 32, ptr %1114) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1115) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1115) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1114, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1115)
          to label %4445 unwind label %4459

4445:                                             ; preds = %4444
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1108, ptr noundef nonnull align 8 dereferenceable(32) %1110, ptr noundef nonnull align 8 dereferenceable(32) %1112, ptr noundef nonnull align 8 dereferenceable(32) %1114, i32 noundef 325) #11
          to label %4446 unwind label %4463

4446:                                             ; preds = %4445
  unreachable

4447:                                             ; preds = %4441
  %4448 = landingpad { ptr, i32 }
          cleanup
  %4449 = extractvalue { ptr, i32 } %4448, 0
  store ptr %4449, ptr %6, align 8
  %4450 = extractvalue { ptr, i32 } %4448, 1
  store i32 %4450, ptr %7, align 4
  br label %4470

4451:                                             ; preds = %4442
  %4452 = landingpad { ptr, i32 }
          cleanup
  %4453 = extractvalue { ptr, i32 } %4452, 0
  store ptr %4453, ptr %6, align 8
  %4454 = extractvalue { ptr, i32 } %4452, 1
  store i32 %4454, ptr %7, align 4
  br label %4469

4455:                                             ; preds = %4443
  %4456 = landingpad { ptr, i32 }
          cleanup
  %4457 = extractvalue { ptr, i32 } %4456, 0
  store ptr %4457, ptr %6, align 8
  %4458 = extractvalue { ptr, i32 } %4456, 1
  store i32 %4458, ptr %7, align 4
  br label %4468

4459:                                             ; preds = %4444
  %4460 = landingpad { ptr, i32 }
          cleanup
  %4461 = extractvalue { ptr, i32 } %4460, 0
  store ptr %4461, ptr %6, align 8
  %4462 = extractvalue { ptr, i32 } %4460, 1
  store i32 %4462, ptr %7, align 4
  br label %4467

4463:                                             ; preds = %4445
  %4464 = landingpad { ptr, i32 }
          cleanup
  %4465 = extractvalue { ptr, i32 } %4464, 0
  store ptr %4465, ptr %6, align 8
  %4466 = extractvalue { ptr, i32 } %4464, 1
  store i32 %4466, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1114) #10
  br label %4467

4467:                                             ; preds = %4463, %4459
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1115) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1115) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1114) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1112) #10
  br label %4468

4468:                                             ; preds = %4467, %4455
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1113) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1113) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1112) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1110) #10
  br label %4469

4469:                                             ; preds = %4468, %4451
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1111) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1111) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1110) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1108) #10
  br label %4470

4470:                                             ; preds = %4469, %4447
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1109) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1109) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1108) #10
  br label %4628

4471:                                             ; preds = %4432
  call void @llvm.lifetime.start.p0(i64 16, ptr %1116) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1117) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1118) #10
  store float 2.000000e+00, ptr %1118, align 4, !tbaa !22
  %4472 = getelementptr inbounds float, ptr %1118, i64 1
  store float 0.000000e+00, ptr %4472, align 4, !tbaa !22
  %4473 = getelementptr inbounds float, ptr %1118, i64 2
  store float 0.000000e+00, ptr %4473, align 4, !tbaa !22
  %4474 = getelementptr inbounds float, ptr %1118, i64 3
  store float 3.000000e+00, ptr %4474, align 4, !tbaa !22
  %4475 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1117, i32 0, i32 0
  store ptr %1118, ptr %4475, align 8, !tbaa !19
  %4476 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1117, i32 0, i32 1
  store i64 4, ptr %4476, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1116, ptr noundef nonnull align 8 dereferenceable(16) %1117)
  %4477 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %1084, ptr noundef nonnull align 4 dereferenceable(16) %1116)
  %4478 = zext i1 %4477 to i32
  %4479 = icmp eq i32 %4478, 0
  call void @llvm.lifetime.end.p0(i64 16, ptr %1118) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1117) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1116) #10
  br i1 %4479, label %4480, label %4510

4480:                                             ; preds = %4471
  call void @llvm.lifetime.start.p0(i64 32, ptr %1119) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1120) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1120) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1119, ptr noundef @.str.131, ptr noundef nonnull align 1 dereferenceable(1) %1120)
          to label %4481 unwind label %4486

4481:                                             ; preds = %4480
  call void @llvm.lifetime.start.p0(i64 32, ptr %1121) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1122) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1122) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1121, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1122)
          to label %4482 unwind label %4490

4482:                                             ; preds = %4481
  call void @llvm.lifetime.start.p0(i64 32, ptr %1123) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1124) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1124) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1123, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1124)
          to label %4483 unwind label %4494

4483:                                             ; preds = %4482
  call void @llvm.lifetime.start.p0(i64 32, ptr %1125) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1126) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1126) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1125, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1126)
          to label %4484 unwind label %4498

4484:                                             ; preds = %4483
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1119, ptr noundef nonnull align 8 dereferenceable(32) %1121, ptr noundef nonnull align 8 dereferenceable(32) %1123, ptr noundef nonnull align 8 dereferenceable(32) %1125, i32 noundef 326) #11
          to label %4485 unwind label %4502

4485:                                             ; preds = %4484
  unreachable

4486:                                             ; preds = %4480
  %4487 = landingpad { ptr, i32 }
          cleanup
  %4488 = extractvalue { ptr, i32 } %4487, 0
  store ptr %4488, ptr %6, align 8
  %4489 = extractvalue { ptr, i32 } %4487, 1
  store i32 %4489, ptr %7, align 4
  br label %4509

4490:                                             ; preds = %4481
  %4491 = landingpad { ptr, i32 }
          cleanup
  %4492 = extractvalue { ptr, i32 } %4491, 0
  store ptr %4492, ptr %6, align 8
  %4493 = extractvalue { ptr, i32 } %4491, 1
  store i32 %4493, ptr %7, align 4
  br label %4508

4494:                                             ; preds = %4482
  %4495 = landingpad { ptr, i32 }
          cleanup
  %4496 = extractvalue { ptr, i32 } %4495, 0
  store ptr %4496, ptr %6, align 8
  %4497 = extractvalue { ptr, i32 } %4495, 1
  store i32 %4497, ptr %7, align 4
  br label %4507

4498:                                             ; preds = %4483
  %4499 = landingpad { ptr, i32 }
          cleanup
  %4500 = extractvalue { ptr, i32 } %4499, 0
  store ptr %4500, ptr %6, align 8
  %4501 = extractvalue { ptr, i32 } %4499, 1
  store i32 %4501, ptr %7, align 4
  br label %4506

4502:                                             ; preds = %4484
  %4503 = landingpad { ptr, i32 }
          cleanup
  %4504 = extractvalue { ptr, i32 } %4503, 0
  store ptr %4504, ptr %6, align 8
  %4505 = extractvalue { ptr, i32 } %4503, 1
  store i32 %4505, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1125) #10
  br label %4506

4506:                                             ; preds = %4502, %4498
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1126) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1126) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1125) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1123) #10
  br label %4507

4507:                                             ; preds = %4506, %4494
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1124) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1124) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1123) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1121) #10
  br label %4508

4508:                                             ; preds = %4507, %4490
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1122) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1122) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1121) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1119) #10
  br label %4509

4509:                                             ; preds = %4508, %4486
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1120) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1120) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1119) #10
  br label %4628

4510:                                             ; preds = %4471
  call void @llvm.lifetime.start.p0(i64 16, ptr %1127) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1128) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1129) #10
  store float 1.000000e+00, ptr %1129, align 4, !tbaa !22
  %4511 = getelementptr inbounds float, ptr %1129, i64 1
  store float 0.000000e+00, ptr %4511, align 4, !tbaa !22
  %4512 = getelementptr inbounds float, ptr %1129, i64 2
  store float 0.000000e+00, ptr %4512, align 4, !tbaa !22
  %4513 = getelementptr inbounds float, ptr %1129, i64 3
  store float 1.000000e+00, ptr %4513, align 4, !tbaa !22
  %4514 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1128, i32 0, i32 0
  store ptr %1129, ptr %4514, align 8, !tbaa !19
  %4515 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1128, i32 0, i32 1
  store i64 4, ptr %4515, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1127, ptr noundef nonnull align 8 dereferenceable(16) %1128)
  %4516 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %1085, ptr noundef nonnull align 4 dereferenceable(16) %1127)
  %4517 = zext i1 %4516 to i32
  %4518 = icmp eq i32 %4517, 0
  call void @llvm.lifetime.end.p0(i64 16, ptr %1129) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1128) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1127) #10
  br i1 %4518, label %4519, label %4549

4519:                                             ; preds = %4510
  call void @llvm.lifetime.start.p0(i64 32, ptr %1130) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1131) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1131) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1130, ptr noundef @.str.132, ptr noundef nonnull align 1 dereferenceable(1) %1131)
          to label %4520 unwind label %4525

4520:                                             ; preds = %4519
  call void @llvm.lifetime.start.p0(i64 32, ptr %1132) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1133) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1133) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1132, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1133)
          to label %4521 unwind label %4529

4521:                                             ; preds = %4520
  call void @llvm.lifetime.start.p0(i64 32, ptr %1134) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1135) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1135) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1134, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1135)
          to label %4522 unwind label %4533

4522:                                             ; preds = %4521
  call void @llvm.lifetime.start.p0(i64 32, ptr %1136) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1137) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1137) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1136, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1137)
          to label %4523 unwind label %4537

4523:                                             ; preds = %4522
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1130, ptr noundef nonnull align 8 dereferenceable(32) %1132, ptr noundef nonnull align 8 dereferenceable(32) %1134, ptr noundef nonnull align 8 dereferenceable(32) %1136, i32 noundef 328) #11
          to label %4524 unwind label %4541

4524:                                             ; preds = %4523
  unreachable

4525:                                             ; preds = %4519
  %4526 = landingpad { ptr, i32 }
          cleanup
  %4527 = extractvalue { ptr, i32 } %4526, 0
  store ptr %4527, ptr %6, align 8
  %4528 = extractvalue { ptr, i32 } %4526, 1
  store i32 %4528, ptr %7, align 4
  br label %4548

4529:                                             ; preds = %4520
  %4530 = landingpad { ptr, i32 }
          cleanup
  %4531 = extractvalue { ptr, i32 } %4530, 0
  store ptr %4531, ptr %6, align 8
  %4532 = extractvalue { ptr, i32 } %4530, 1
  store i32 %4532, ptr %7, align 4
  br label %4547

4533:                                             ; preds = %4521
  %4534 = landingpad { ptr, i32 }
          cleanup
  %4535 = extractvalue { ptr, i32 } %4534, 0
  store ptr %4535, ptr %6, align 8
  %4536 = extractvalue { ptr, i32 } %4534, 1
  store i32 %4536, ptr %7, align 4
  br label %4546

4537:                                             ; preds = %4522
  %4538 = landingpad { ptr, i32 }
          cleanup
  %4539 = extractvalue { ptr, i32 } %4538, 0
  store ptr %4539, ptr %6, align 8
  %4540 = extractvalue { ptr, i32 } %4538, 1
  store i32 %4540, ptr %7, align 4
  br label %4545

4541:                                             ; preds = %4523
  %4542 = landingpad { ptr, i32 }
          cleanup
  %4543 = extractvalue { ptr, i32 } %4542, 0
  store ptr %4543, ptr %6, align 8
  %4544 = extractvalue { ptr, i32 } %4542, 1
  store i32 %4544, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1136) #10
  br label %4545

4545:                                             ; preds = %4541, %4537
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1137) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1137) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1136) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1134) #10
  br label %4546

4546:                                             ; preds = %4545, %4533
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1135) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1135) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1134) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1132) #10
  br label %4547

4547:                                             ; preds = %4546, %4529
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1133) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1133) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1132) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1130) #10
  br label %4548

4548:                                             ; preds = %4547, %4525
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1131) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1131) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1130) #10
  br label %4628

4549:                                             ; preds = %4510
  call void @llvm.lifetime.start.p0(i64 16, ptr %1138) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1139) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1140) #10
  store float 2.000000e+00, ptr %1140, align 4, !tbaa !22
  %4550 = getelementptr inbounds float, ptr %1140, i64 1
  store float 0.000000e+00, ptr %4550, align 4, !tbaa !22
  %4551 = getelementptr inbounds float, ptr %1140, i64 2
  store float 0.000000e+00, ptr %4551, align 4, !tbaa !22
  %4552 = getelementptr inbounds float, ptr %1140, i64 3
  store float 2.000000e+00, ptr %4552, align 4, !tbaa !22
  %4553 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1139, i32 0, i32 0
  store ptr %1140, ptr %4553, align 8, !tbaa !19
  %4554 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1139, i32 0, i32 1
  store i64 4, ptr %4554, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1138, ptr noundef nonnull align 8 dereferenceable(16) %1139)
  %4555 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %1088, ptr noundef nonnull align 4 dereferenceable(16) %1138)
  %4556 = zext i1 %4555 to i32
  %4557 = icmp eq i32 %4556, 0
  call void @llvm.lifetime.end.p0(i64 16, ptr %1140) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1139) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1138) #10
  br i1 %4557, label %4558, label %4588

4558:                                             ; preds = %4549
  call void @llvm.lifetime.start.p0(i64 32, ptr %1141) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1142) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1142) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1141, ptr noundef @.str.133, ptr noundef nonnull align 1 dereferenceable(1) %1142)
          to label %4559 unwind label %4564

4559:                                             ; preds = %4558
  call void @llvm.lifetime.start.p0(i64 32, ptr %1143) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1144) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1144) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1143, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1144)
          to label %4560 unwind label %4568

4560:                                             ; preds = %4559
  call void @llvm.lifetime.start.p0(i64 32, ptr %1145) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1146) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1146) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1145, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1146)
          to label %4561 unwind label %4572

4561:                                             ; preds = %4560
  call void @llvm.lifetime.start.p0(i64 32, ptr %1147) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1148) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1148) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1147, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1148)
          to label %4562 unwind label %4576

4562:                                             ; preds = %4561
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1141, ptr noundef nonnull align 8 dereferenceable(32) %1143, ptr noundef nonnull align 8 dereferenceable(32) %1145, ptr noundef nonnull align 8 dereferenceable(32) %1147, i32 noundef 329) #11
          to label %4563 unwind label %4580

4563:                                             ; preds = %4562
  unreachable

4564:                                             ; preds = %4558
  %4565 = landingpad { ptr, i32 }
          cleanup
  %4566 = extractvalue { ptr, i32 } %4565, 0
  store ptr %4566, ptr %6, align 8
  %4567 = extractvalue { ptr, i32 } %4565, 1
  store i32 %4567, ptr %7, align 4
  br label %4587

4568:                                             ; preds = %4559
  %4569 = landingpad { ptr, i32 }
          cleanup
  %4570 = extractvalue { ptr, i32 } %4569, 0
  store ptr %4570, ptr %6, align 8
  %4571 = extractvalue { ptr, i32 } %4569, 1
  store i32 %4571, ptr %7, align 4
  br label %4586

4572:                                             ; preds = %4560
  %4573 = landingpad { ptr, i32 }
          cleanup
  %4574 = extractvalue { ptr, i32 } %4573, 0
  store ptr %4574, ptr %6, align 8
  %4575 = extractvalue { ptr, i32 } %4573, 1
  store i32 %4575, ptr %7, align 4
  br label %4585

4576:                                             ; preds = %4561
  %4577 = landingpad { ptr, i32 }
          cleanup
  %4578 = extractvalue { ptr, i32 } %4577, 0
  store ptr %4578, ptr %6, align 8
  %4579 = extractvalue { ptr, i32 } %4577, 1
  store i32 %4579, ptr %7, align 4
  br label %4584

4580:                                             ; preds = %4562
  %4581 = landingpad { ptr, i32 }
          cleanup
  %4582 = extractvalue { ptr, i32 } %4581, 0
  store ptr %4582, ptr %6, align 8
  %4583 = extractvalue { ptr, i32 } %4581, 1
  store i32 %4583, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1147) #10
  br label %4584

4584:                                             ; preds = %4580, %4576
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1148) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1148) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1147) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1145) #10
  br label %4585

4585:                                             ; preds = %4584, %4572
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1146) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1146) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1145) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1143) #10
  br label %4586

4586:                                             ; preds = %4585, %4568
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1144) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1144) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1143) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1141) #10
  br label %4587

4587:                                             ; preds = %4586, %4564
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1142) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1142) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1141) #10
  br label %4628

4588:                                             ; preds = %4549
  call void @llvm.lifetime.start.p0(i64 16, ptr %1149) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1150) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %1151) #10
  store float 2.000000e+00, ptr %1151, align 4, !tbaa !22
  %4589 = getelementptr inbounds float, ptr %1151, i64 1
  store float 0.000000e+00, ptr %4589, align 4, !tbaa !22
  %4590 = getelementptr inbounds float, ptr %1151, i64 2
  store float 0.000000e+00, ptr %4590, align 4, !tbaa !22
  %4591 = getelementptr inbounds float, ptr %1151, i64 3
  store float 3.000000e+00, ptr %4591, align 4, !tbaa !22
  %4592 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1150, i32 0, i32 0
  store ptr %1151, ptr %4592, align 8, !tbaa !19
  %4593 = getelementptr inbounds %"class.std::initializer_list.14", ptr %1150, i32 0, i32 1
  store i64 4, ptr %4593, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1149, ptr noundef nonnull align 8 dereferenceable(16) %1150)
  %4594 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %1091, ptr noundef nonnull align 4 dereferenceable(16) %1149)
  %4595 = zext i1 %4594 to i32
  %4596 = icmp eq i32 %4595, 0
  call void @llvm.lifetime.end.p0(i64 16, ptr %1151) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1150) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1149) #10
  br i1 %4596, label %4597, label %4627

4597:                                             ; preds = %4588
  call void @llvm.lifetime.start.p0(i64 32, ptr %1152) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1153) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1153) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1152, ptr noundef @.str.134, ptr noundef nonnull align 1 dereferenceable(1) %1153)
          to label %4598 unwind label %4603

4598:                                             ; preds = %4597
  call void @llvm.lifetime.start.p0(i64 32, ptr %1154) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1155) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1155) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1154, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1155)
          to label %4599 unwind label %4607

4599:                                             ; preds = %4598
  call void @llvm.lifetime.start.p0(i64 32, ptr %1156) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1157) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1157) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1156, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1157)
          to label %4600 unwind label %4611

4600:                                             ; preds = %4599
  call void @llvm.lifetime.start.p0(i64 32, ptr %1158) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %1159) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1159) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1158, ptr noundef @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1159)
          to label %4601 unwind label %4615

4601:                                             ; preds = %4600
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1152, ptr noundef nonnull align 8 dereferenceable(32) %1154, ptr noundef nonnull align 8 dereferenceable(32) %1156, ptr noundef nonnull align 8 dereferenceable(32) %1158, i32 noundef 330) #11
          to label %4602 unwind label %4619

4602:                                             ; preds = %4601
  unreachable

4603:                                             ; preds = %4597
  %4604 = landingpad { ptr, i32 }
          cleanup
  %4605 = extractvalue { ptr, i32 } %4604, 0
  store ptr %4605, ptr %6, align 8
  %4606 = extractvalue { ptr, i32 } %4604, 1
  store i32 %4606, ptr %7, align 4
  br label %4626

4607:                                             ; preds = %4598
  %4608 = landingpad { ptr, i32 }
          cleanup
  %4609 = extractvalue { ptr, i32 } %4608, 0
  store ptr %4609, ptr %6, align 8
  %4610 = extractvalue { ptr, i32 } %4608, 1
  store i32 %4610, ptr %7, align 4
  br label %4625

4611:                                             ; preds = %4599
  %4612 = landingpad { ptr, i32 }
          cleanup
  %4613 = extractvalue { ptr, i32 } %4612, 0
  store ptr %4613, ptr %6, align 8
  %4614 = extractvalue { ptr, i32 } %4612, 1
  store i32 %4614, ptr %7, align 4
  br label %4624

4615:                                             ; preds = %4600
  %4616 = landingpad { ptr, i32 }
          cleanup
  %4617 = extractvalue { ptr, i32 } %4616, 0
  store ptr %4617, ptr %6, align 8
  %4618 = extractvalue { ptr, i32 } %4616, 1
  store i32 %4618, ptr %7, align 4
  br label %4623

4619:                                             ; preds = %4601
  %4620 = landingpad { ptr, i32 }
          cleanup
  %4621 = extractvalue { ptr, i32 } %4620, 0
  store ptr %4621, ptr %6, align 8
  %4622 = extractvalue { ptr, i32 } %4620, 1
  store i32 %4622, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1158) #10
  br label %4623

4623:                                             ; preds = %4619, %4615
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1159) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1159) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1158) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1156) #10
  br label %4624

4624:                                             ; preds = %4623, %4611
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1157) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1157) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1156) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1154) #10
  br label %4625

4625:                                             ; preds = %4624, %4607
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1155) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1155) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1154) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1152) #10
  br label %4626

4626:                                             ; preds = %4625, %4603
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1153) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %1153) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %1152) #10
  br label %4628

4627:                                             ; preds = %4588
  call void @llvm.lifetime.end.p0(i64 16, ptr %1091) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1088) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1085) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1084) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1083) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1082) #10
  ret void

4628:                                             ; preds = %4626, %4587, %4548, %4509, %4470, %4431
  call void @llvm.lifetime.end.p0(i64 16, ptr %1091) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1088) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1085) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1084) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1083) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %1082) #10
  br label %4629

4629:                                             ; preds = %4628, %4407, %4180, %4027, %3857, %3822, %3785, %3744, %3700, %3664, %3640, %3476, %3438, %3400, %3350, %3305, %3265, %3241, %3145, %3104, %3067, %3027, %2985, %2943, %2919, %2840, %2745, %2709, %2673, %2649, %2526, %2489, %2449, %2425
  %4630 = load ptr, ptr %6, align 8
  %4631 = load i32, ptr %7, align 4
  %4632 = insertvalue { ptr, i32 } poison, ptr %4630, 0
  %4633 = insertvalue { ptr, i32 } %4632, i32 %4631, 1
  resume { ptr, i32 } %4633
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 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 nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEii(ptr noundef nonnull align 4 dereferenceable(24), i32 noundef, i32 noundef) #3 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) #4

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 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 #3 align 2

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24), i32 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEclEi(ptr noundef nonnull align 4 dereferenceable(12), i32 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24), i32 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEixEi(ptr noundef nonnull align 4 dereferenceable(12), i32 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIiLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi0ELi0EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi0ELi1EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi0ELi2EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi1ELi0EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi1ELi1EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi1ELi2EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi0EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi1EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi2EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi3EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi4EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi5EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp3getILi0EiLi2ELi3EEERNS_14numarray_stackIT0_XT2_EEERNS_12matrix_stackIS2_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp3getILi1EiLi2ELi3EEERNS_14numarray_stackIT0_XT2_EEERNS_12matrix_stackIS2_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24)) #3

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIiLi3ELi2EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i64 } @_ZN3cgpmlIiLi2ELi3ELi2EEENS_12matrix_stackIT_XT0_EXT2_EEERKNS1_IS2_XT0_EXT1_EEERKNS1_IS2_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIiiLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIiLi2ELi2EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp22multiply_componentwiseIiLi2ELi3EEENS_12matrix_stackIT_XT0_EXT1_EEERKS3_S5_(ptr dead_on_unwind noalias writable sret(%"struct.cgp::matrix_stack") align 4, ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIiiLi2ELi3ELi2ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local i64 @_ZN3cgpmlIiLi2ELi3EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(12)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIiLi2EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIiLi5ELi4EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(80), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIiiLi4ELi3ELi4ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(48)) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3cgp12matrix_stackIiLi5ELi4EE17remove_row_columnEii(ptr dead_on_unwind noalias writable sret(%"struct.cgp::matrix_stack.9") align 4, ptr noundef nonnull align 4 dereferenceable(80), i32 noundef, i32 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIiLi4ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36), ptr noundef nonnull align 4 dereferenceable(36)) #3

declare void @_ZN3cgp12matrix_stackIfLi3ELi3EE14build_identityEv(ptr dead_on_unwind writable sret(%"struct.cgp::matrix_stack.11") align 4) #7

declare void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi4ELi3ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(48)) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi3ELi4EE14build_identityEv(ptr dead_on_unwind noalias writable sret(%"struct.cgp::matrix_stack.15") align 4) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi3ELi4EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi3ELi4ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(48)) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi4ELi3EE14build_identityEv(ptr dead_on_unwind noalias writable sret(%"struct.cgp::matrix_stack.18") align 4) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi4ELi3EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi2ELi2EEC2ILi3ELi3EEERKNS0_IfXT_EXT0_EEE(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(36)) unnamed_addr #3 align 2

declare void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKNS0_IfLi3ELi3EEE(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(36)) unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) #3

declare void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(64)) #3

declare void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi2ELi2EEC2ILi4ELi4EEERKNS0_IfXT_EXT0_EEE(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(64)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi3ELi3EEC2ILi4ELi4EEERKNS0_IfXT_EXT0_EEE(ptr noundef nonnull align 4 dereferenceable(36), ptr noundef nonnull align 4 dereferenceable(64)) unnamed_addr #3 align 2

declare void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Ev(ptr noundef nonnull align 4 dereferenceable(64)) unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE9set_blockILi2ELi2EEERS1_RKNS0_IfXT_EXT0_EEEii(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIfLi2EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) #3

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN3cgpmlIfLi2ELi2EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(8)) #0

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIfLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) #3

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, float } @_ZN3cgpmlIfLi3ELi3EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(36), ptr noundef nonnull align 4 dereferenceable(12)) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIfLi4EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) #3

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZN3cgpmlIfLi4ELi4EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(16)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgpmIIiLi3ELi2EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_RKS3_(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIiiLi3ELi2ELi3ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgppLIiLi3ELi2EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_RKS3_(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgpmLIiLi2ELi3EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_f(ptr noundef nonnull align 4 dereferenceable(24), float noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi2ELi3EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgpdVIfLi2ELi3EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_f(ptr noundef nonnull align 4 dereferenceable(24), float noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi3ELi2ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(24)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(16) ptr @_ZN3cgpmLIfLi2ELi2EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_f(ptr noundef nonnull align 4 dereferenceable(16), float noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZN3cgpngIfLi2ELi2EEENS_12matrix_stackIT_XT0_EXT1_EEERKS3_(ptr noundef nonnull align 4 dereferenceable(16)) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi3ELi1EEC2ERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi1ELi3ELi1EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi3ELi1EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi1ELi3EEC2ERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIffLi1ELi3ELi1ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi1ELi3EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

declare void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1Ev(ptr noundef nonnull align 4 dereferenceable(16)) unnamed_addr #7

declare noundef nonnull align 4 dereferenceable(16) ptr @_ZN3cgp12matrix_stackIfLi2ELi2EE4fillEf(ptr noundef nonnull align 4 dereferenceable(16), float noundef) #7

declare void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1Ev(ptr noundef nonnull align 4 dereferenceable(36)) unnamed_addr #7

declare noundef nonnull align 4 dereferenceable(36) ptr @_ZN3cgp12matrix_stackIfLi3ELi3EE4fillEf(ptr noundef nonnull align 4 dereferenceable(36), float noundef) #7

declare noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE4fillEf(ptr noundef nonnull align 4 dereferenceable(64), float noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi2ELi3EEC2Ev(ptr noundef nonnull align 4 dereferenceable(24)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgp12matrix_stackIfLi2ELi3EE4fillERKf(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

declare void @_ZN3cgp12matrix_stackIfLi4ELi4EE13build_scalingEfff(ptr dead_on_unwind writable sret(%"struct.cgp::matrix_stack.23") align 4, float noundef, float noundef, float noundef) #7

declare noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE21set_block_translationEfff(ptr noundef nonnull align 4 dereferenceable(64), float noundef, float noundef, float noundef) #7

declare { <2 x float>, float } @_ZNK3cgp12matrix_stackIfLi4ELi4EE18transform_positionERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(12)) #7

declare { <2 x float>, float } @_ZNK3cgp12matrix_stackIfLi4ELi4EE16transform_vectorERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(12)) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp14numarray_stackIfLi4EEC2ERKNS0_IfLi3EEERKf(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { <2 x float>, float } @_ZN3cgpdvERKNS_14numarray_stackIfLi3EEEf(ptr noundef nonnull align 4 dereferenceable(12), float noundef) #9

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, float } @_ZNK3cgp14numarray_stackIfLi4EE3xyzEv(ptr noundef nonnull align 4 dereferenceable(16)) #3 align 2

declare noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EEclEii(ptr noundef nonnull align 4 dereferenceable(64), i32 noundef, i32 noundef) #7

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

declare void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Effffffffffffffff(ptr noundef nonnull align 4 dereferenceable(64), float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef) unnamed_addr #7

declare void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Ef(ptr noundef nonnull align 4 dereferenceable(64), float noundef) unnamed_addr #7

declare void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Effff(ptr noundef nonnull align 4 dereferenceable(64), float noundef, float noundef, float noundef, float noundef) unnamed_addr #7

declare void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1Ef(ptr noundef nonnull align 4 dereferenceable(36), float noundef) unnamed_addr #7

declare void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1Efff(ptr noundef nonnull align 4 dereferenceable(36), float noundef, float noundef, float noundef) unnamed_addr #7

declare void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1Ef(ptr noundef nonnull align 4 dereferenceable(16), float noundef) unnamed_addr #7

declare void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1Eff(ptr noundef nonnull align 4 dereferenceable(16), float noundef, float noundef) unnamed_addr #7

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="64" "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 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { 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 #5 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { "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 #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind }
attributes #11 = { 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 = !{i64 0, i64 24, !6}
!6 = !{!7, !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 = !{!"int", !7, i64 0}
!16 = !{i64 0, i64 80, !6}
!17 = !{i64 0, i64 48, !6}
!18 = !{i64 0, i64 36, !6}
!19 = !{!20, !11, i64 0}
!20 = !{!"_ZTSSt16initializer_listIfE", !11, i64 0, !12, i64 8}
!21 = !{!20, !12, i64 8}
!22 = !{!23, !23, i64 0}
!23 = !{!"float", !7, i64 0}
!24 = !{i64 0, i64 64, !6}
!25 = !{i64 0, i64 4, !22, i64 4, i64 4, !22, i64 8, i64 4, !22, i64 12, i64 4, !22, i64 16, i64 4, !22, i64 20, i64 4, !22, i64 24, i64 4, !22, i64 28, i64 4, !22, i64 32, i64 4, !22, i64 36, i64 4, !22, i64 40, i64 4, !22, i64 44, i64 4, !22, i64 48, i64 4, !22, i64 52, i64 4, !22, i64 56, i64 4, !22, i64 60, i64 4, !22}
!26 = !{!27, !23, i64 12}
!27 = !{!"_ZTSN3cgp14numarray_stackIfLi4EEE", !23, i64 0, !23, i64 4, !23, i64 8, !23, i64 12}


; 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::matrix_stack" = type { %"struct.cgp::numarray_stack" }
%"struct.cgp::numarray_stack" = type { %"struct.cgp::numarray_stack.0", %"struct.cgp::numarray_stack.0" }
%"struct.cgp::numarray_stack.0" = type { i32, i32, i32 }
%"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" = type { i8 }
%"struct.cgp::matrix_stack.1" = type { %"struct.cgp::numarray_stack.2" }
%"struct.cgp::numarray_stack.2" = type { %"struct.cgp::numarray_stack.3", %"struct.cgp::numarray_stack.3", %"struct.cgp::numarray_stack.3" }
%"struct.cgp::numarray_stack.3" = type { i32, i32 }
%"struct.cgp::matrix_stack.4" = type { %"struct.cgp::numarray_stack.5" }
%"struct.cgp::numarray_stack.5" = type { %"struct.cgp::numarray_stack.3", %"struct.cgp::numarray_stack.3" }
%"struct.cgp::matrix_stack.6" = type { %"struct.cgp::numarray_stack.7" }
%"struct.cgp::numarray_stack.7" = type { %"struct.std::array" }
%"struct.std::array" = type { [5 x %"struct.cgp::numarray_stack.8"] }
%"struct.cgp::numarray_stack.8" = type { i32, i32, i32, i32 }
%"struct.cgp::matrix_stack.9" = type { %"struct.cgp::numarray_stack.10" }
%"struct.cgp::numarray_stack.10" = type { %"struct.cgp::numarray_stack.0", %"struct.cgp::numarray_stack.0", %"struct.cgp::numarray_stack.0", %"struct.cgp::numarray_stack.0" }
%"struct.cgp::matrix_stack.11" = type { %"struct.cgp::numarray_stack.12" }
%"struct.cgp::numarray_stack.12" = type { %"struct.cgp::numarray_stack.13", %"struct.cgp::numarray_stack.13", %"struct.cgp::numarray_stack.13" }
%"struct.cgp::numarray_stack.13" = type { float, float, float }
%"class.std::initializer_list.14" = type { ptr, i64 }
%"struct.cgp::matrix_stack.15" = type { %"struct.cgp::numarray_stack.16" }
%"struct.cgp::numarray_stack.16" = type { %"struct.cgp::numarray_stack.17", %"struct.cgp::numarray_stack.17", %"struct.cgp::numarray_stack.17" }
%"struct.cgp::numarray_stack.17" = type { float, float, float, float }
%"struct.cgp::matrix_stack.18" = type { %"struct.cgp::numarray_stack.19" }
%"struct.cgp::numarray_stack.19" = type { %"struct.cgp::numarray_stack.13", %"struct.cgp::numarray_stack.13", %"struct.cgp::numarray_stack.13", %"struct.cgp::numarray_stack.13" }
%"struct.cgp::matrix_stack.20" = type { %"struct.cgp::numarray_stack.21" }
%"struct.cgp::numarray_stack.21" = type { %"struct.cgp::numarray_stack.22", %"struct.cgp::numarray_stack.22" }
%"struct.cgp::numarray_stack.22" = type { float, float }
%"struct.cgp::matrix_stack.23" = type { %"struct.cgp::numarray_stack.24" }
%"struct.cgp::numarray_stack.24" = type { %"struct.cgp::numarray_stack.17", %"struct.cgp::numarray_stack.17", %"struct.cgp::numarray_stack.17", %"struct.cgp::numarray_stack.17" }
%"struct.cgp::matrix_stack.25" = type { %"struct.cgp::numarray_stack.26" }
%"struct.cgp::numarray_stack.26" = type { %"struct.cgp::numarray_stack.13", %"struct.cgp::numarray_stack.13" }
%"struct.cgp::matrix_stack.27" = type { %"struct.cgp::numarray_stack.28" }
%"struct.cgp::numarray_stack.28" = type { %"struct.cgp::numarray_stack.29", %"struct.cgp::numarray_stack.29", %"struct.cgp::numarray_stack.29" }
%"struct.cgp::numarray_stack.29" = type { %"struct.std::array.30" }
%"struct.std::array.30" = type { [1 x float] }
%"struct.cgp::matrix_stack.31" = type { %"struct.cgp::numarray_stack.32" }
%"struct.cgp::numarray_stack.32" = type { %"struct.std::array.33" }
%"struct.std::array.33" = type { [1 x %"struct.cgp::numarray_stack.13"] }

@constinit = external hidden local_unnamed_addr constant [6 x i32], align 4
@.str = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [91 x i8], align 1
@__func__._ZN8cgp_test17test_matrix_stackEv = external hidden unnamed_addr constant [18 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [39 x i8], align 1
@constinit.37 = external hidden local_unnamed_addr constant [6 x i32], align 4
@constinit.38 = external hidden local_unnamed_addr constant [6 x i32], align 4
@.str.39 = external hidden unnamed_addr constant [53 x i8], align 1
@constinit.40 = external hidden local_unnamed_addr constant [6 x i32], align 4
@constinit.41 = external hidden local_unnamed_addr constant [6 x i32], align 4
@constinit.42 = external hidden local_unnamed_addr constant [6 x i32], align 4
@.str.43 = external hidden unnamed_addr constant [59 x i8], align 1
@constinit.44 = external hidden local_unnamed_addr constant [6 x i32], align 4
@.str.45 = external hidden unnamed_addr constant [49 x i8], align 1
@constinit.46 = external hidden local_unnamed_addr constant [20 x i32], align 4
@constinit.47 = external hidden local_unnamed_addr constant [12 x i32], align 4
@.str.48 = external hidden unnamed_addr constant [101 x i8], align 1
@constinit.49 = external hidden local_unnamed_addr constant [12 x i32], align 4
@.str.50 = external hidden unnamed_addr constant [102 x i8], align 1
@constinit.51 = external hidden local_unnamed_addr constant [12 x i32], align 4
@.str.52 = external hidden unnamed_addr constant [98 x i8], align 1
@constinit.53 = external hidden local_unnamed_addr constant [9 x float], align 4
@.str.54 = external hidden unnamed_addr constant [114 x i8], align 1
@constinit.55 = external hidden local_unnamed_addr constant [12 x float], align 4
@.str.56 = external hidden unnamed_addr constant [120 x i8], align 1
@constinit.57 = external hidden local_unnamed_addr constant [12 x float], align 4
@.str.58 = external hidden unnamed_addr constant [121 x i8], align 1
@constinit.59 = external hidden local_unnamed_addr constant [9 x float], align 4
@.str.60 = external hidden unnamed_addr constant [30 x i8], align 1
@constinit.61 = external hidden local_unnamed_addr constant [16 x float], align 4
@.str.62 = external hidden unnamed_addr constant [57 x i8], align 1
@constinit.63 = external hidden local_unnamed_addr constant [16 x float], align 4
@.str.64 = external hidden unnamed_addr constant [30 x i8], align 1
@constinit.65 = external hidden local_unnamed_addr constant [9 x float], align 4
@.str.66 = external hidden unnamed_addr constant [44 x i8], align 1
@constinit.67 = external hidden local_unnamed_addr constant <{ float, float, float, float, float, float, [10 x float] }>, align 4
@.str.68 = external hidden unnamed_addr constant [88 x i8], align 1
@constinit.69 = external hidden local_unnamed_addr constant <{ float, float, float, float, float, float, float, [9 x float] }>, align 4
@.str.70 = external hidden unnamed_addr constant [94 x i8], align 1
@constinit.71 = external hidden local_unnamed_addr constant [16 x float], align 4
@.str.72 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [30 x i8], align 1
@constinit.74 = external hidden local_unnamed_addr constant [9 x float], align 4
@.str.75 = external hidden unnamed_addr constant [34 x i8], align 1
@constinit.76 = external hidden local_unnamed_addr constant [16 x float], align 4
@.str.77 = external hidden unnamed_addr constant [37 x i8], align 1
@constinit.78 = external hidden local_unnamed_addr constant [6 x i32], align 4
@constinit.79 = external hidden local_unnamed_addr constant [6 x i32], align 4
@constinit.80 = external hidden local_unnamed_addr constant [6 x i32], align 4
@.str.81 = external hidden unnamed_addr constant [61 x i8], align 1
@constinit.82 = external hidden local_unnamed_addr constant [6 x i32], align 4
@.str.83 = external hidden unnamed_addr constant [60 x i8], align 1
@constinit.84 = external hidden local_unnamed_addr constant [6 x i32], align 4
@constinit.85 = external hidden local_unnamed_addr constant [6 x i32], align 4
@.str.86 = external hidden unnamed_addr constant [57 x i8], align 1
@constinit.87 = external hidden local_unnamed_addr constant [6 x float], align 4
@constinit.88 = external hidden local_unnamed_addr constant [6 x float], align 4
@.str.89 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [32 x i8], align 1
@constinit.95 = external hidden local_unnamed_addr constant [9 x float], align 4
@.str.96 = external hidden unnamed_addr constant [42 x i8], align 1
@constinit.97 = external hidden local_unnamed_addr constant [16 x float], align 4
@.str.98 = external hidden unnamed_addr constant [57 x i8], align 1
@constinit.99 = external hidden local_unnamed_addr constant [6 x float], align 4
@.str.100 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [48 x i8], align 1
@constinit.105 = external hidden local_unnamed_addr constant [16 x float], align 4
@.str.106 = external hidden unnamed_addr constant [57 x i8], align 1
@constinit.107 = external hidden local_unnamed_addr constant [16 x float], align 4
@.str.108 = external hidden unnamed_addr constant [57 x i8], align 1
@constinit.109 = external hidden local_unnamed_addr constant [16 x float], align 4
@.str.110 = external hidden unnamed_addr constant [57 x i8], align 1
@constinit.111 = external hidden local_unnamed_addr constant [16 x float], align 4
@.str.112 = external hidden unnamed_addr constant [57 x i8], align 1
@constinit.113 = external hidden local_unnamed_addr constant [16 x float], align 4
@constinit.114 = external hidden local_unnamed_addr constant [16 x float], align 4
@constinit.115 = external hidden local_unnamed_addr constant [16 x float], align 4
@constinit.116 = external hidden local_unnamed_addr constant [16 x float], align 4
@constinit.117 = external hidden local_unnamed_addr constant [9 x float], align 4
@.str.118 = external hidden unnamed_addr constant [42 x i8], align 1
@constinit.119 = external hidden local_unnamed_addr constant [9 x float], align 4
@.str.120 = external hidden unnamed_addr constant [42 x i8], align 1
@constinit.121 = external hidden local_unnamed_addr constant [9 x float], align 4
@.str.122 = external hidden unnamed_addr constant [42 x i8], align 1
@constinit.123 = external hidden local_unnamed_addr constant [9 x float], align 4
@.str.124 = external hidden unnamed_addr constant [43 x i8], align 1
@constinit.125 = external hidden local_unnamed_addr constant [9 x float], align 4
@.str.126 = external hidden unnamed_addr constant [43 x i8], align 1
@constinit.127 = external hidden local_unnamed_addr constant [9 x float], align 4
@.str.128 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [32 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8cgp_test17test_matrix_stackEv() local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca %"struct.cgp::matrix_stack", align 4
  %2 = alloca %"class.std::initializer_list", align 8
  %3 = alloca [6 x i32], align 4
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::allocator", align 1
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator", align 1
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator", align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator", align 1
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator", align 1
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator", align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator", align 1
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::allocator", align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator", align 1
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::allocator", align 1
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator", align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator", align 1
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::allocator", align 1
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::allocator", align 1
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator", align 1
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::allocator", align 1
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator", align 1
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::allocator", align 1
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::allocator", align 1
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator", align 1
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::allocator", align 1
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::allocator", align 1
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::allocator", align 1
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::allocator", align 1
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::allocator", align 1
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::allocator", align 1
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::allocator", align 1
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::allocator", align 1
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::allocator", align 1
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::allocator", align 1
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::allocator", align 1
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::allocator", align 1
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::allocator", align 1
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::allocator", align 1
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::allocator", align 1
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::allocator", align 1
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::allocator", align 1
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.std::allocator", align 1
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::allocator", align 1
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::allocator", align 1
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::allocator", align 1
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::allocator", align 1
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::allocator", align 1
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.std::allocator", align 1
  %120 = alloca %"class.std::__cxx11::basic_string", align 8
  %121 = alloca %"class.std::allocator", align 1
  %122 = alloca %"class.std::__cxx11::basic_string", align 8
  %123 = alloca %"class.std::allocator", align 1
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.std::allocator", align 1
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::allocator", align 1
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::allocator", align 1
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca %"class.std::allocator", align 1
  %132 = alloca %"class.std::__cxx11::basic_string", align 8
  %133 = alloca %"class.std::allocator", align 1
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.std::allocator", align 1
  %136 = alloca %"class.std::__cxx11::basic_string", align 8
  %137 = alloca %"class.std::allocator", align 1
  %138 = alloca %"class.std::__cxx11::basic_string", align 8
  %139 = alloca %"class.std::allocator", align 1
  %140 = alloca %"class.std::__cxx11::basic_string", align 8
  %141 = alloca %"class.std::allocator", align 1
  %142 = alloca %"class.std::__cxx11::basic_string", align 8
  %143 = alloca %"class.std::allocator", align 1
  %144 = alloca %"class.std::__cxx11::basic_string", align 8
  %145 = alloca %"class.std::allocator", align 1
  %146 = alloca %"class.std::__cxx11::basic_string", align 8
  %147 = alloca %"class.std::allocator", align 1
  %148 = alloca %"struct.cgp::numarray_stack.0", align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca %"struct.cgp::numarray_stack.0", align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca i32, align 4
  %156 = alloca %"class.std::__cxx11::basic_string", align 8
  %157 = alloca %"class.std::allocator", align 1
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca %"class.std::allocator", align 1
  %160 = alloca %"class.std::__cxx11::basic_string", align 8
  %161 = alloca %"class.std::allocator", align 1
  %162 = alloca %"class.std::__cxx11::basic_string", align 8
  %163 = alloca %"class.std::allocator", align 1
  %164 = alloca %"struct.cgp::numarray_stack.0", align 4
  %165 = alloca i32, align 4
  %166 = alloca i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca %"struct.cgp::numarray_stack.0", align 4
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca i32, align 4
  %172 = alloca %"class.std::__cxx11::basic_string", align 8
  %173 = alloca %"class.std::allocator", align 1
  %174 = alloca %"class.std::__cxx11::basic_string", align 8
  %175 = alloca %"class.std::allocator", align 1
  %176 = alloca %"class.std::__cxx11::basic_string", align 8
  %177 = alloca %"class.std::allocator", align 1
  %178 = alloca %"class.std::__cxx11::basic_string", align 8
  %179 = alloca %"class.std::allocator", align 1
  %180 = alloca i32, align 4
  %181 = alloca %"class.std::__cxx11::basic_string", align 8
  %182 = alloca %"class.std::allocator", align 1
  %183 = alloca %"class.std::__cxx11::basic_string", align 8
  %184 = alloca %"class.std::allocator", align 1
  %185 = alloca %"class.std::__cxx11::basic_string", align 8
  %186 = alloca %"class.std::allocator", align 1
  %187 = alloca %"class.std::__cxx11::basic_string", align 8
  %188 = alloca %"class.std::allocator", align 1
  %189 = alloca i32, align 4
  %190 = alloca %"class.std::__cxx11::basic_string", align 8
  %191 = alloca %"class.std::allocator", align 1
  %192 = alloca %"class.std::__cxx11::basic_string", align 8
  %193 = alloca %"class.std::allocator", align 1
  %194 = alloca %"class.std::__cxx11::basic_string", align 8
  %195 = alloca %"class.std::allocator", align 1
  %196 = alloca %"class.std::__cxx11::basic_string", align 8
  %197 = alloca %"class.std::allocator", align 1
  %198 = alloca i32, align 4
  %199 = alloca %"class.std::__cxx11::basic_string", align 8
  %200 = alloca %"class.std::allocator", align 1
  %201 = alloca %"class.std::__cxx11::basic_string", align 8
  %202 = alloca %"class.std::allocator", align 1
  %203 = alloca %"class.std::__cxx11::basic_string", align 8
  %204 = alloca %"class.std::allocator", align 1
  %205 = alloca %"class.std::__cxx11::basic_string", align 8
  %206 = alloca %"class.std::allocator", align 1
  %207 = alloca i32, align 4
  %208 = alloca %"class.std::__cxx11::basic_string", align 8
  %209 = alloca %"class.std::allocator", align 1
  %210 = alloca %"class.std::__cxx11::basic_string", align 8
  %211 = alloca %"class.std::allocator", align 1
  %212 = alloca %"class.std::__cxx11::basic_string", align 8
  %213 = alloca %"class.std::allocator", align 1
  %214 = alloca %"class.std::__cxx11::basic_string", align 8
  %215 = alloca %"class.std::allocator", align 1
  %216 = alloca i32, align 4
  %217 = alloca %"class.std::__cxx11::basic_string", align 8
  %218 = alloca %"class.std::allocator", align 1
  %219 = alloca %"class.std::__cxx11::basic_string", align 8
  %220 = alloca %"class.std::allocator", align 1
  %221 = alloca %"class.std::__cxx11::basic_string", align 8
  %222 = alloca %"class.std::allocator", align 1
  %223 = alloca %"class.std::__cxx11::basic_string", align 8
  %224 = alloca %"class.std::allocator", align 1
  %225 = alloca i32, align 4
  %226 = alloca %"class.std::__cxx11::basic_string", align 8
  %227 = alloca %"class.std::allocator", align 1
  %228 = alloca %"class.std::__cxx11::basic_string", align 8
  %229 = alloca %"class.std::allocator", align 1
  %230 = alloca %"class.std::__cxx11::basic_string", align 8
  %231 = alloca %"class.std::allocator", align 1
  %232 = alloca %"class.std::__cxx11::basic_string", align 8
  %233 = alloca %"class.std::allocator", align 1
  %234 = alloca i32, align 4
  %235 = alloca %"class.std::__cxx11::basic_string", align 8
  %236 = alloca %"class.std::allocator", align 1
  %237 = alloca %"class.std::__cxx11::basic_string", align 8
  %238 = alloca %"class.std::allocator", align 1
  %239 = alloca %"class.std::__cxx11::basic_string", align 8
  %240 = alloca %"class.std::allocator", align 1
  %241 = alloca %"class.std::__cxx11::basic_string", align 8
  %242 = alloca %"class.std::allocator", align 1
  %243 = alloca i32, align 4
  %244 = alloca %"class.std::__cxx11::basic_string", align 8
  %245 = alloca %"class.std::allocator", align 1
  %246 = alloca %"class.std::__cxx11::basic_string", align 8
  %247 = alloca %"class.std::allocator", align 1
  %248 = alloca %"class.std::__cxx11::basic_string", align 8
  %249 = alloca %"class.std::allocator", align 1
  %250 = alloca %"class.std::__cxx11::basic_string", align 8
  %251 = alloca %"class.std::allocator", align 1
  %252 = alloca i32, align 4
  %253 = alloca %"class.std::__cxx11::basic_string", align 8
  %254 = alloca %"class.std::allocator", align 1
  %255 = alloca %"class.std::__cxx11::basic_string", align 8
  %256 = alloca %"class.std::allocator", align 1
  %257 = alloca %"class.std::__cxx11::basic_string", align 8
  %258 = alloca %"class.std::allocator", align 1
  %259 = alloca %"class.std::__cxx11::basic_string", align 8
  %260 = alloca %"class.std::allocator", align 1
  %261 = alloca i32, align 4
  %262 = alloca %"class.std::__cxx11::basic_string", align 8
  %263 = alloca %"class.std::allocator", align 1
  %264 = alloca %"class.std::__cxx11::basic_string", align 8
  %265 = alloca %"class.std::allocator", align 1
  %266 = alloca %"class.std::__cxx11::basic_string", align 8
  %267 = alloca %"class.std::allocator", align 1
  %268 = alloca %"class.std::__cxx11::basic_string", align 8
  %269 = alloca %"class.std::allocator", align 1
  %270 = alloca i32, align 4
  %271 = alloca %"class.std::__cxx11::basic_string", align 8
  %272 = alloca %"class.std::allocator", align 1
  %273 = alloca %"class.std::__cxx11::basic_string", align 8
  %274 = alloca %"class.std::allocator", align 1
  %275 = alloca %"class.std::__cxx11::basic_string", align 8
  %276 = alloca %"class.std::allocator", align 1
  %277 = alloca %"class.std::__cxx11::basic_string", align 8
  %278 = alloca %"class.std::allocator", align 1
  %279 = alloca i32, align 4
  %280 = alloca %"class.std::__cxx11::basic_string", align 8
  %281 = alloca %"class.std::allocator", align 1
  %282 = alloca %"class.std::__cxx11::basic_string", align 8
  %283 = alloca %"class.std::allocator", align 1
  %284 = alloca %"class.std::__cxx11::basic_string", align 8
  %285 = alloca %"class.std::allocator", align 1
  %286 = alloca %"class.std::__cxx11::basic_string", align 8
  %287 = alloca %"class.std::allocator", align 1
  %288 = alloca %"struct.cgp::numarray_stack.0", align 4
  %289 = alloca i32, align 4
  %290 = alloca i32, align 4
  %291 = alloca i32, align 4
  %292 = alloca %"struct.cgp::numarray_stack.0", align 4
  %293 = alloca i32, align 4
  %294 = alloca i32, align 4
  %295 = alloca i32, align 4
  %296 = alloca %"class.std::__cxx11::basic_string", align 8
  %297 = alloca %"class.std::allocator", align 1
  %298 = alloca %"class.std::__cxx11::basic_string", align 8
  %299 = alloca %"class.std::allocator", align 1
  %300 = alloca %"class.std::__cxx11::basic_string", align 8
  %301 = alloca %"class.std::allocator", align 1
  %302 = alloca %"class.std::__cxx11::basic_string", align 8
  %303 = alloca %"class.std::allocator", align 1
  %304 = alloca %"class.std::__cxx11::basic_string", align 8
  %305 = alloca %"class.std::__cxx11::basic_string", align 8
  %306 = alloca %"class.std::allocator", align 1
  %307 = alloca %"class.std::__cxx11::basic_string", align 8
  %308 = alloca %"class.std::allocator", align 1
  %309 = alloca %"class.std::__cxx11::basic_string", align 8
  %310 = alloca %"class.std::allocator", align 1
  %311 = alloca %"class.std::__cxx11::basic_string", align 8
  %312 = alloca %"class.std::allocator", align 1
  %313 = alloca %"struct.cgp::matrix_stack", align 4
  %314 = alloca %"class.std::initializer_list", align 8
  %315 = alloca [6 x i32], align 4
  %316 = alloca %"struct.cgp::matrix_stack.1", align 4
  %317 = alloca %"class.std::initializer_list", align 8
  %318 = alloca [6 x i32], align 4
  %319 = alloca %"struct.cgp::matrix_stack.4", align 8
  %320 = alloca %"struct.cgp::matrix_stack.4", align 4
  %321 = alloca %"class.std::initializer_list", align 8
  %322 = alloca [4 x i32], align 16
  %323 = alloca %"class.std::__cxx11::basic_string", align 8
  %324 = alloca %"class.std::allocator", align 1
  %325 = alloca %"class.std::__cxx11::basic_string", align 8
  %326 = alloca %"class.std::allocator", align 1
  %327 = alloca %"class.std::__cxx11::basic_string", align 8
  %328 = alloca %"class.std::allocator", align 1
  %329 = alloca %"class.std::__cxx11::basic_string", align 8
  %330 = alloca %"class.std::allocator", align 1
  %331 = alloca %"struct.cgp::matrix_stack", align 4
  %332 = alloca %"class.std::initializer_list", align 8
  %333 = alloca [6 x i32], align 4
  %334 = alloca %"struct.cgp::matrix_stack", align 4
  %335 = alloca %"class.std::initializer_list", align 8
  %336 = alloca [6 x i32], align 4
  %337 = alloca %"struct.cgp::matrix_stack", align 4
  %338 = alloca %"struct.cgp::matrix_stack", align 4
  %339 = alloca %"class.std::initializer_list", align 8
  %340 = alloca [6 x i32], align 4
  %341 = alloca %"class.std::__cxx11::basic_string", align 8
  %342 = alloca %"class.std::allocator", align 1
  %343 = alloca %"class.std::__cxx11::basic_string", align 8
  %344 = alloca %"class.std::allocator", align 1
  %345 = alloca %"class.std::__cxx11::basic_string", align 8
  %346 = alloca %"class.std::allocator", align 1
  %347 = alloca %"class.std::__cxx11::basic_string", align 8
  %348 = alloca %"class.std::allocator", align 1
  %349 = alloca %"struct.cgp::matrix_stack", align 4
  %350 = alloca %"class.std::initializer_list", align 8
  %351 = alloca [6 x i32], align 4
  %352 = alloca %"struct.cgp::numarray_stack.0", align 4
  %353 = alloca i32, align 4
  %354 = alloca i32, align 4
  %355 = alloca i32, align 4
  %356 = alloca %"struct.cgp::numarray_stack.3", align 8
  %357 = alloca %"struct.cgp::numarray_stack.3", align 4
  %358 = alloca i32, align 4
  %359 = alloca i32, align 4
  %360 = alloca %"class.std::__cxx11::basic_string", align 8
  %361 = alloca %"class.std::allocator", align 1
  %362 = alloca %"class.std::__cxx11::basic_string", align 8
  %363 = alloca %"class.std::allocator", align 1
  %364 = alloca %"class.std::__cxx11::basic_string", align 8
  %365 = alloca %"class.std::allocator", align 1
  %366 = alloca %"class.std::__cxx11::basic_string", align 8
  %367 = alloca %"class.std::allocator", align 1
  %368 = alloca %"struct.cgp::matrix_stack.6", align 4
  %369 = alloca %"class.std::initializer_list", align 8
  %370 = alloca [20 x i32], align 4
  %371 = alloca %"struct.cgp::matrix_stack.9", align 4
  %372 = alloca %"struct.cgp::matrix_stack.9", align 4
  %373 = alloca %"class.std::initializer_list", align 8
  %374 = alloca [12 x i32], align 4
  %375 = alloca %"class.std::__cxx11::basic_string", align 8
  %376 = alloca %"class.std::allocator", align 1
  %377 = alloca %"class.std::__cxx11::basic_string", align 8
  %378 = alloca %"class.std::allocator", align 1
  %379 = alloca %"class.std::__cxx11::basic_string", align 8
  %380 = alloca %"class.std::allocator", align 1
  %381 = alloca %"class.std::__cxx11::basic_string", align 8
  %382 = alloca %"class.std::allocator", align 1
  %383 = alloca %"struct.cgp::matrix_stack.9", align 4
  %384 = alloca %"struct.cgp::matrix_stack.9", align 4
  %385 = alloca %"class.std::initializer_list", align 8
  %386 = alloca [12 x i32], align 4
  %387 = alloca %"class.std::__cxx11::basic_string", align 8
  %388 = alloca %"class.std::allocator", align 1
  %389 = alloca %"class.std::__cxx11::basic_string", align 8
  %390 = alloca %"class.std::allocator", align 1
  %391 = alloca %"class.std::__cxx11::basic_string", align 8
  %392 = alloca %"class.std::allocator", align 1
  %393 = alloca %"class.std::__cxx11::basic_string", align 8
  %394 = alloca %"class.std::allocator", align 1
  %395 = alloca %"struct.cgp::matrix_stack.9", align 4
  %396 = alloca %"struct.cgp::matrix_stack.9", align 4
  %397 = alloca %"class.std::initializer_list", align 8
  %398 = alloca [12 x i32], align 4
  %399 = alloca %"class.std::__cxx11::basic_string", align 8
  %400 = alloca %"class.std::allocator", align 1
  %401 = alloca %"class.std::__cxx11::basic_string", align 8
  %402 = alloca %"class.std::allocator", align 1
  %403 = alloca %"class.std::__cxx11::basic_string", align 8
  %404 = alloca %"class.std::allocator", align 1
  %405 = alloca %"class.std::__cxx11::basic_string", align 8
  %406 = alloca %"class.std::allocator", align 1
  %407 = alloca %"struct.cgp::matrix_stack.11", align 4
  %408 = alloca %"struct.cgp::matrix_stack.11", align 4
  %409 = alloca %"class.std::initializer_list.14", align 8
  %410 = alloca [9 x float], align 4
  %411 = alloca %"class.std::__cxx11::basic_string", align 8
  %412 = alloca %"class.std::allocator", align 1
  %413 = alloca %"class.std::__cxx11::basic_string", align 8
  %414 = alloca %"class.std::allocator", align 1
  %415 = alloca %"class.std::__cxx11::basic_string", align 8
  %416 = alloca %"class.std::allocator", align 1
  %417 = alloca %"class.std::__cxx11::basic_string", align 8
  %418 = alloca %"class.std::allocator", align 1
  %419 = alloca %"struct.cgp::matrix_stack.15", align 4
  %420 = alloca %"struct.cgp::matrix_stack.15", align 4
  %421 = alloca %"class.std::initializer_list.14", align 8
  %422 = alloca [12 x float], align 4
  %423 = alloca %"class.std::__cxx11::basic_string", align 8
  %424 = alloca %"class.std::allocator", align 1
  %425 = alloca %"class.std::__cxx11::basic_string", align 8
  %426 = alloca %"class.std::allocator", align 1
  %427 = alloca %"class.std::__cxx11::basic_string", align 8
  %428 = alloca %"class.std::allocator", align 1
  %429 = alloca %"class.std::__cxx11::basic_string", align 8
  %430 = alloca %"class.std::allocator", align 1
  %431 = alloca %"struct.cgp::matrix_stack.18", align 4
  %432 = alloca %"struct.cgp::matrix_stack.18", align 4
  %433 = alloca %"class.std::initializer_list.14", align 8
  %434 = alloca [12 x float], align 4
  %435 = alloca %"class.std::__cxx11::basic_string", align 8
  %436 = alloca %"class.std::allocator", align 1
  %437 = alloca %"class.std::__cxx11::basic_string", align 8
  %438 = alloca %"class.std::allocator", align 1
  %439 = alloca %"class.std::__cxx11::basic_string", align 8
  %440 = alloca %"class.std::allocator", align 1
  %441 = alloca %"class.std::__cxx11::basic_string", align 8
  %442 = alloca %"class.std::allocator", align 1
  %443 = alloca %"struct.cgp::matrix_stack.11", align 4
  %444 = alloca %"class.std::initializer_list.14", align 8
  %445 = alloca [9 x float], align 4
  %446 = alloca %"struct.cgp::matrix_stack.20", align 4
  %447 = alloca %"struct.cgp::matrix_stack.23", align 4
  %448 = alloca %"struct.cgp::matrix_stack.20", align 4
  %449 = alloca %"class.std::initializer_list.14", align 8
  %450 = alloca [4 x float], align 16
  %451 = alloca %"class.std::__cxx11::basic_string", align 8
  %452 = alloca %"class.std::allocator", align 1
  %453 = alloca %"class.std::__cxx11::basic_string", align 8
  %454 = alloca %"class.std::allocator", align 1
  %455 = alloca %"class.std::__cxx11::basic_string", align 8
  %456 = alloca %"class.std::allocator", align 1
  %457 = alloca %"class.std::__cxx11::basic_string", align 8
  %458 = alloca %"class.std::allocator", align 1
  %459 = alloca %"struct.cgp::matrix_stack.23", align 4
  %460 = alloca %"class.std::initializer_list.14", align 8
  %461 = alloca [16 x float], align 4
  %462 = alloca %"class.std::__cxx11::basic_string", align 8
  %463 = alloca %"class.std::allocator", align 1
  %464 = alloca %"class.std::__cxx11::basic_string", align 8
  %465 = alloca %"class.std::allocator", align 1
  %466 = alloca %"class.std::__cxx11::basic_string", align 8
  %467 = alloca %"class.std::allocator", align 1
  %468 = alloca %"class.std::__cxx11::basic_string", align 8
  %469 = alloca %"class.std::allocator", align 1
  %470 = alloca %"struct.cgp::matrix_stack.23", align 4
  %471 = alloca %"class.std::initializer_list.14", align 8
  %472 = alloca [16 x float], align 4
  %473 = alloca %"struct.cgp::matrix_stack.20", align 4
  %474 = alloca %"struct.cgp::matrix_stack.11", align 4
  %475 = alloca %"struct.cgp::matrix_stack.20", align 4
  %476 = alloca %"class.std::initializer_list.14", align 8
  %477 = alloca [4 x float], align 16
  %478 = alloca %"class.std::__cxx11::basic_string", align 8
  %479 = alloca %"class.std::allocator", align 1
  %480 = alloca %"class.std::__cxx11::basic_string", align 8
  %481 = alloca %"class.std::allocator", align 1
  %482 = alloca %"class.std::__cxx11::basic_string", align 8
  %483 = alloca %"class.std::allocator", align 1
  %484 = alloca %"class.std::__cxx11::basic_string", align 8
  %485 = alloca %"class.std::allocator", align 1
  %486 = alloca %"struct.cgp::matrix_stack.11", align 4
  %487 = alloca %"class.std::initializer_list.14", align 8
  %488 = alloca [9 x float], align 4
  %489 = alloca %"class.std::__cxx11::basic_string", align 8
  %490 = alloca %"class.std::allocator", align 1
  %491 = alloca %"class.std::__cxx11::basic_string", align 8
  %492 = alloca %"class.std::allocator", align 1
  %493 = alloca %"class.std::__cxx11::basic_string", align 8
  %494 = alloca %"class.std::allocator", align 1
  %495 = alloca %"class.std::__cxx11::basic_string", align 8
  %496 = alloca %"class.std::allocator", align 1
  %497 = alloca %"struct.cgp::matrix_stack.23", align 4
  %498 = alloca %"struct.cgp::matrix_stack.20", align 4
  %499 = alloca %"class.std::initializer_list.14", align 8
  %500 = alloca [4 x float], align 16
  %501 = alloca %"struct.cgp::matrix_stack.23", align 4
  %502 = alloca %"class.std::initializer_list.14", align 8
  %503 = alloca [16 x float], align 4
  %504 = alloca %"class.std::__cxx11::basic_string", align 8
  %505 = alloca %"class.std::allocator", align 1
  %506 = alloca %"class.std::__cxx11::basic_string", align 8
  %507 = alloca %"class.std::allocator", align 1
  %508 = alloca %"class.std::__cxx11::basic_string", align 8
  %509 = alloca %"class.std::allocator", align 1
  %510 = alloca %"class.std::__cxx11::basic_string", align 8
  %511 = alloca %"class.std::allocator", align 1
  %512 = alloca %"struct.cgp::matrix_stack.23", align 4
  %513 = alloca %"struct.cgp::matrix_stack.20", align 4
  %514 = alloca %"class.std::initializer_list.14", align 8
  %515 = alloca [4 x float], align 16
  %516 = alloca %"struct.cgp::matrix_stack.23", align 4
  %517 = alloca %"class.std::initializer_list.14", align 8
  %518 = alloca [16 x float], align 4
  %519 = alloca %"class.std::__cxx11::basic_string", align 8
  %520 = alloca %"class.std::allocator", align 1
  %521 = alloca %"class.std::__cxx11::basic_string", align 8
  %522 = alloca %"class.std::allocator", align 1
  %523 = alloca %"class.std::__cxx11::basic_string", align 8
  %524 = alloca %"class.std::allocator", align 1
  %525 = alloca %"class.std::__cxx11::basic_string", align 8
  %526 = alloca %"class.std::allocator", align 1
  %527 = alloca %"struct.cgp::matrix_stack.23", align 4
  %528 = alloca %"struct.cgp::matrix_stack.20", align 4
  %529 = alloca %"class.std::initializer_list.14", align 8
  %530 = alloca [4 x float], align 16
  %531 = alloca %"struct.cgp::matrix_stack.23", align 4
  %532 = alloca %"class.std::initializer_list.14", align 8
  %533 = alloca [16 x float], align 4
  %534 = alloca %"class.std::__cxx11::basic_string", align 8
  %535 = alloca %"class.std::allocator", align 1
  %536 = alloca %"class.std::__cxx11::basic_string", align 8
  %537 = alloca %"class.std::allocator", align 1
  %538 = alloca %"class.std::__cxx11::basic_string", align 8
  %539 = alloca %"class.std::allocator", align 1
  %540 = alloca %"class.std::__cxx11::basic_string", align 8
  %541 = alloca %"class.std::allocator", align 1
  %542 = alloca %"struct.cgp::matrix_stack.20", align 4
  %543 = alloca %"class.std::initializer_list.14", align 8
  %544 = alloca [4 x float], align 16
  %545 = alloca %"struct.cgp::numarray_stack.22", align 4
  %546 = alloca i32, align 4
  %547 = alloca i32, align 4
  %548 = alloca %"struct.cgp::numarray_stack.22", align 8
  %549 = alloca %"struct.cgp::numarray_stack.22", align 4
  %550 = alloca i32, align 4
  %551 = alloca i32, align 4
  %552 = alloca %"class.std::__cxx11::basic_string", align 8
  %553 = alloca %"class.std::allocator", align 1
  %554 = alloca %"class.std::__cxx11::basic_string", align 8
  %555 = alloca %"class.std::allocator", align 1
  %556 = alloca %"class.std::__cxx11::basic_string", align 8
  %557 = alloca %"class.std::allocator", align 1
  %558 = alloca %"class.std::__cxx11::basic_string", align 8
  %559 = alloca %"class.std::allocator", align 1
  %560 = alloca %"struct.cgp::matrix_stack.11", align 4
  %561 = alloca %"class.std::initializer_list.14", align 8
  %562 = alloca [9 x float], align 4
  %563 = alloca %"struct.cgp::numarray_stack.13", align 4
  %564 = alloca i32, align 4
  %565 = alloca i32, align 4
  %566 = alloca i32, align 4
  %567 = alloca %"struct.cgp::numarray_stack.13", align 8
  %568 = alloca %"struct.cgp::numarray_stack.13", align 4
  %569 = alloca i32, align 4
  %570 = alloca i32, align 4
  %571 = alloca i32, align 4
  %572 = alloca %"class.std::__cxx11::basic_string", align 8
  %573 = alloca %"class.std::allocator", align 1
  %574 = alloca %"class.std::__cxx11::basic_string", align 8
  %575 = alloca %"class.std::allocator", align 1
  %576 = alloca %"class.std::__cxx11::basic_string", align 8
  %577 = alloca %"class.std::allocator", align 1
  %578 = alloca %"class.std::__cxx11::basic_string", align 8
  %579 = alloca %"class.std::allocator", align 1
  %580 = alloca %"struct.cgp::matrix_stack.23", align 4
  %581 = alloca %"class.std::initializer_list.14", align 8
  %582 = alloca [16 x float], align 4
  %583 = alloca %"struct.cgp::numarray_stack.17", align 4
  %584 = alloca float, align 4
  %585 = alloca float, align 4
  %586 = alloca float, align 4
  %587 = alloca float, align 4
  %588 = alloca %"struct.cgp::numarray_stack.17", align 8
  %589 = alloca %"struct.cgp::numarray_stack.17", align 4
  %590 = alloca float, align 4
  %591 = alloca float, align 4
  %592 = alloca float, align 4
  %593 = alloca float, align 4
  %594 = alloca %"class.std::__cxx11::basic_string", align 8
  %595 = alloca %"class.std::allocator", align 1
  %596 = alloca %"class.std::__cxx11::basic_string", align 8
  %597 = alloca %"class.std::allocator", align 1
  %598 = alloca %"class.std::__cxx11::basic_string", align 8
  %599 = alloca %"class.std::allocator", align 1
  %600 = alloca %"class.std::__cxx11::basic_string", align 8
  %601 = alloca %"class.std::allocator", align 1
  %602 = alloca %"struct.cgp::matrix_stack.1", align 4
  %603 = alloca %"class.std::initializer_list", align 8
  %604 = alloca [6 x i32], align 4
  %605 = alloca %"struct.cgp::matrix_stack.1", align 4
  %606 = alloca %"class.std::initializer_list", align 8
  %607 = alloca [6 x i32], align 4
  %608 = alloca %"struct.cgp::matrix_stack.1", align 4
  %609 = alloca %"class.std::initializer_list", align 8
  %610 = alloca [6 x i32], align 4
  %611 = alloca %"class.std::__cxx11::basic_string", align 8
  %612 = alloca %"class.std::allocator", align 1
  %613 = alloca %"class.std::__cxx11::basic_string", align 8
  %614 = alloca %"class.std::allocator", align 1
  %615 = alloca %"class.std::__cxx11::basic_string", align 8
  %616 = alloca %"class.std::allocator", align 1
  %617 = alloca %"class.std::__cxx11::basic_string", align 8
  %618 = alloca %"class.std::allocator", align 1
  %619 = alloca %"struct.cgp::matrix_stack.1", align 4
  %620 = alloca %"class.std::initializer_list", align 8
  %621 = alloca [6 x i32], align 4
  %622 = alloca %"class.std::__cxx11::basic_string", align 8
  %623 = alloca %"class.std::allocator", align 1
  %624 = alloca %"class.std::__cxx11::basic_string", align 8
  %625 = alloca %"class.std::allocator", align 1
  %626 = alloca %"class.std::__cxx11::basic_string", align 8
  %627 = alloca %"class.std::allocator", align 1
  %628 = alloca %"class.std::__cxx11::basic_string", align 8
  %629 = alloca %"class.std::allocator", align 1
  %630 = alloca %"struct.cgp::matrix_stack", align 4
  %631 = alloca %"class.std::initializer_list", align 8
  %632 = alloca [6 x i32], align 4
  %633 = alloca %"struct.cgp::matrix_stack", align 4
  %634 = alloca %"class.std::initializer_list", align 8
  %635 = alloca [6 x i32], align 4
  %636 = alloca %"class.std::__cxx11::basic_string", align 8
  %637 = alloca %"class.std::allocator", align 1
  %638 = alloca %"class.std::__cxx11::basic_string", align 8
  %639 = alloca %"class.std::allocator", align 1
  %640 = alloca %"class.std::__cxx11::basic_string", align 8
  %641 = alloca %"class.std::allocator", align 1
  %642 = alloca %"class.std::__cxx11::basic_string", align 8
  %643 = alloca %"class.std::allocator", align 1
  %644 = alloca %"struct.cgp::matrix_stack.25", align 4
  %645 = alloca %"class.std::initializer_list.14", align 8
  %646 = alloca [6 x float], align 4
  %647 = alloca %"struct.cgp::matrix_stack.25", align 4
  %648 = alloca %"class.std::initializer_list.14", align 8
  %649 = alloca [6 x float], align 4
  %650 = alloca %"class.std::__cxx11::basic_string", align 8
  %651 = alloca %"class.std::allocator", align 1
  %652 = alloca %"class.std::__cxx11::basic_string", align 8
  %653 = alloca %"class.std::allocator", align 1
  %654 = alloca %"class.std::__cxx11::basic_string", align 8
  %655 = alloca %"class.std::allocator", align 1
  %656 = alloca %"class.std::__cxx11::basic_string", align 8
  %657 = alloca %"class.std::allocator", align 1
  %658 = alloca %"struct.cgp::matrix_stack.20", align 4
  %659 = alloca %"class.std::initializer_list.14", align 8
  %660 = alloca [4 x float], align 16
  %661 = alloca %"struct.cgp::matrix_stack.20", align 4
  %662 = alloca %"class.std::initializer_list.14", align 8
  %663 = alloca [4 x float], align 16
  %664 = alloca %"class.std::__cxx11::basic_string", align 8
  %665 = alloca %"class.std::allocator", align 1
  %666 = alloca %"class.std::__cxx11::basic_string", align 8
  %667 = alloca %"class.std::allocator", align 1
  %668 = alloca %"class.std::__cxx11::basic_string", align 8
  %669 = alloca %"class.std::allocator", align 1
  %670 = alloca %"class.std::__cxx11::basic_string", align 8
  %671 = alloca %"class.std::allocator", align 1
  %672 = alloca %"struct.cgp::matrix_stack.20", align 4
  %673 = alloca %"class.std::initializer_list.14", align 8
  %674 = alloca [4 x float], align 16
  %675 = alloca %"struct.cgp::matrix_stack.20", align 8
  %676 = alloca %"struct.cgp::matrix_stack.20", align 4
  %677 = alloca %"class.std::initializer_list.14", align 8
  %678 = alloca [4 x float], align 16
  %679 = alloca %"class.std::__cxx11::basic_string", align 8
  %680 = alloca %"class.std::allocator", align 1
  %681 = alloca %"class.std::__cxx11::basic_string", align 8
  %682 = alloca %"class.std::allocator", align 1
  %683 = alloca %"class.std::__cxx11::basic_string", align 8
  %684 = alloca %"class.std::allocator", align 1
  %685 = alloca %"class.std::__cxx11::basic_string", align 8
  %686 = alloca %"class.std::allocator", align 1
  %687 = alloca %"struct.cgp::matrix_stack.27", align 4
  %688 = alloca %"struct.cgp::numarray_stack.13", align 4
  %689 = alloca i32, align 4
  %690 = alloca i32, align 4
  %691 = alloca i32, align 4
  %692 = alloca %"struct.cgp::matrix_stack.27", align 4
  %693 = alloca %"class.std::initializer_list.14", align 8
  %694 = alloca [3 x float], align 8
  %695 = alloca %"class.std::__cxx11::basic_string", align 8
  %696 = alloca %"class.std::allocator", align 1
  %697 = alloca %"class.std::__cxx11::basic_string", align 8
  %698 = alloca %"class.std::allocator", align 1
  %699 = alloca %"class.std::__cxx11::basic_string", align 8
  %700 = alloca %"class.std::allocator", align 1
  %701 = alloca %"class.std::__cxx11::basic_string", align 8
  %702 = alloca %"class.std::allocator", align 1
  %703 = alloca %"struct.cgp::matrix_stack.31", align 4
  %704 = alloca %"struct.cgp::numarray_stack.13", align 4
  %705 = alloca i32, align 4
  %706 = alloca i32, align 4
  %707 = alloca i32, align 4
  %708 = alloca %"struct.cgp::matrix_stack.31", align 4
  %709 = alloca %"class.std::initializer_list.14", align 8
  %710 = alloca [3 x float], align 8
  %711 = alloca %"class.std::__cxx11::basic_string", align 8
  %712 = alloca %"class.std::allocator", align 1
  %713 = alloca %"class.std::__cxx11::basic_string", align 8
  %714 = alloca %"class.std::allocator", align 1
  %715 = alloca %"class.std::__cxx11::basic_string", align 8
  %716 = alloca %"class.std::allocator", align 1
  %717 = alloca %"class.std::__cxx11::basic_string", align 8
  %718 = alloca %"class.std::allocator", align 1
  %719 = alloca %"struct.cgp::matrix_stack.20", align 4
  %720 = alloca %"struct.cgp::matrix_stack.11", align 4
  %721 = alloca %"struct.cgp::matrix_stack.23", align 4
  %722 = alloca %"struct.cgp::matrix_stack.25", align 4
  %723 = alloca float, align 4
  %724 = alloca %"struct.cgp::matrix_stack.20", align 4
  %725 = alloca %"class.std::initializer_list.14", align 8
  %726 = alloca [4 x float], align 16
  %727 = alloca %"class.std::__cxx11::basic_string", align 8
  %728 = alloca %"class.std::allocator", align 1
  %729 = alloca %"class.std::__cxx11::basic_string", align 8
  %730 = alloca %"class.std::allocator", align 1
  %731 = alloca %"class.std::__cxx11::basic_string", align 8
  %732 = alloca %"class.std::allocator", align 1
  %733 = alloca %"class.std::__cxx11::basic_string", align 8
  %734 = alloca %"class.std::allocator", align 1
  %735 = alloca %"struct.cgp::matrix_stack.11", align 4
  %736 = alloca %"class.std::initializer_list.14", align 8
  %737 = alloca [9 x float], align 4
  %738 = alloca %"class.std::__cxx11::basic_string", align 8
  %739 = alloca %"class.std::allocator", align 1
  %740 = alloca %"class.std::__cxx11::basic_string", align 8
  %741 = alloca %"class.std::allocator", align 1
  %742 = alloca %"class.std::__cxx11::basic_string", align 8
  %743 = alloca %"class.std::allocator", align 1
  %744 = alloca %"class.std::__cxx11::basic_string", align 8
  %745 = alloca %"class.std::allocator", align 1
  %746 = alloca %"struct.cgp::matrix_stack.23", align 4
  %747 = alloca %"class.std::initializer_list.14", align 8
  %748 = alloca [16 x float], align 4
  %749 = alloca %"class.std::__cxx11::basic_string", align 8
  %750 = alloca %"class.std::allocator", align 1
  %751 = alloca %"class.std::__cxx11::basic_string", align 8
  %752 = alloca %"class.std::allocator", align 1
  %753 = alloca %"class.std::__cxx11::basic_string", align 8
  %754 = alloca %"class.std::allocator", align 1
  %755 = alloca %"class.std::__cxx11::basic_string", align 8
  %756 = alloca %"class.std::allocator", align 1
  %757 = alloca %"struct.cgp::matrix_stack.25", align 4
  %758 = alloca %"class.std::initializer_list.14", align 8
  %759 = alloca [6 x float], align 4
  %760 = alloca %"class.std::__cxx11::basic_string", align 8
  %761 = alloca %"class.std::allocator", align 1
  %762 = alloca %"class.std::__cxx11::basic_string", align 8
  %763 = alloca %"class.std::allocator", align 1
  %764 = alloca %"class.std::__cxx11::basic_string", align 8
  %765 = alloca %"class.std::allocator", align 1
  %766 = alloca %"class.std::__cxx11::basic_string", align 8
  %767 = alloca %"class.std::allocator", align 1
  %768 = alloca %"struct.cgp::matrix_stack.23", align 4
  %769 = alloca %"struct.cgp::matrix_stack.23", align 4
  %770 = alloca %"struct.cgp::numarray_stack.13", align 4
  %771 = alloca i32, align 4
  %772 = alloca i32, align 4
  %773 = alloca i32, align 4
  %774 = alloca %"struct.cgp::numarray_stack.13", align 8
  %775 = alloca %"struct.cgp::numarray_stack.13", align 4
  %776 = alloca i32, align 4
  %777 = alloca i32, align 4
  %778 = alloca i32, align 4
  %779 = alloca %"class.std::__cxx11::basic_string", align 8
  %780 = alloca %"class.std::allocator", align 1
  %781 = alloca %"class.std::__cxx11::basic_string", align 8
  %782 = alloca %"class.std::allocator", align 1
  %783 = alloca %"class.std::__cxx11::basic_string", align 8
  %784 = alloca %"class.std::allocator", align 1
  %785 = alloca %"class.std::__cxx11::basic_string", align 8
  %786 = alloca %"class.std::allocator", align 1
  %787 = alloca %"struct.cgp::matrix_stack.23", align 4
  %788 = alloca %"struct.cgp::matrix_stack.23", align 4
  %789 = alloca %"struct.cgp::numarray_stack.13", align 4
  %790 = alloca i32, align 4
  %791 = alloca i32, align 4
  %792 = alloca i32, align 4
  %793 = alloca %"struct.cgp::numarray_stack.13", align 8
  %794 = alloca %"struct.cgp::numarray_stack.13", align 4
  %795 = alloca i32, align 4
  %796 = alloca i32, align 4
  %797 = alloca i32, align 4
  %798 = alloca %"class.std::__cxx11::basic_string", align 8
  %799 = alloca %"class.std::allocator", align 1
  %800 = alloca %"class.std::__cxx11::basic_string", align 8
  %801 = alloca %"class.std::allocator", align 1
  %802 = alloca %"class.std::__cxx11::basic_string", align 8
  %803 = alloca %"class.std::allocator", align 1
  %804 = alloca %"class.std::__cxx11::basic_string", align 8
  %805 = alloca %"class.std::allocator", align 1
  %806 = alloca %"struct.cgp::matrix_stack.23", align 4
  %807 = alloca %"struct.cgp::matrix_stack.23", align 4
  %808 = alloca %"struct.cgp::numarray_stack.13", align 4
  %809 = alloca i32, align 4
  %810 = alloca i32, align 4
  %811 = alloca i32, align 4
  %812 = alloca %"struct.cgp::numarray_stack.17", align 8
  %813 = alloca %"struct.cgp::numarray_stack.17", align 4
  %814 = alloca float, align 4
  %815 = alloca %"struct.cgp::numarray_stack.13", align 8
  %816 = alloca %"struct.cgp::numarray_stack.13", align 8
  %817 = alloca %"struct.cgp::numarray_stack.13", align 4
  %818 = alloca i32, align 4
  %819 = alloca i32, align 4
  %820 = alloca i32, align 4
  %821 = alloca %"class.std::__cxx11::basic_string", align 8
  %822 = alloca %"class.std::allocator", align 1
  %823 = alloca %"class.std::__cxx11::basic_string", align 8
  %824 = alloca %"class.std::allocator", align 1
  %825 = alloca %"class.std::__cxx11::basic_string", align 8
  %826 = alloca %"class.std::allocator", align 1
  %827 = alloca %"class.std::__cxx11::basic_string", align 8
  %828 = alloca %"class.std::allocator", align 1
  %829 = alloca %"struct.cgp::matrix_stack.23", align 4
  %830 = alloca %"struct.cgp::matrix_stack.23", align 4
  %831 = alloca %"struct.cgp::numarray_stack.13", align 4
  %832 = alloca i32, align 4
  %833 = alloca i32, align 4
  %834 = alloca i32, align 4
  %835 = alloca %"struct.cgp::numarray_stack.13", align 8
  %836 = alloca %"struct.cgp::numarray_stack.17", align 8
  %837 = alloca %"struct.cgp::numarray_stack.17", align 4
  %838 = alloca float, align 4
  %839 = alloca %"struct.cgp::numarray_stack.13", align 4
  %840 = alloca i32, align 4
  %841 = alloca i32, align 4
  %842 = alloca i32, align 4
  %843 = alloca %"class.std::__cxx11::basic_string", align 8
  %844 = alloca %"class.std::allocator", align 1
  %845 = alloca %"class.std::__cxx11::basic_string", align 8
  %846 = alloca %"class.std::allocator", align 1
  %847 = alloca %"class.std::__cxx11::basic_string", align 8
  %848 = alloca %"class.std::allocator", align 1
  %849 = alloca %"class.std::__cxx11::basic_string", align 8
  %850 = alloca %"class.std::allocator", align 1
  %851 = alloca %"struct.cgp::matrix_stack.23", align 4
  %852 = alloca %"struct.cgp::matrix_stack.23", align 4
  %853 = alloca %"struct.cgp::numarray_stack.13", align 4
  %854 = alloca i32, align 4
  %855 = alloca i32, align 4
  %856 = alloca i32, align 4
  %857 = alloca %"struct.cgp::numarray_stack.13", align 8
  %858 = alloca %"struct.cgp::numarray_stack.13", align 4
  %859 = alloca float, align 4
  %860 = alloca float, align 4
  %861 = alloca float, align 4
  %862 = alloca %"class.std::__cxx11::basic_string", align 8
  %863 = alloca %"class.std::allocator", align 1
  %864 = alloca %"class.std::__cxx11::basic_string", align 8
  %865 = alloca %"class.std::allocator", align 1
  %866 = alloca %"class.std::__cxx11::basic_string", align 8
  %867 = alloca %"class.std::allocator", align 1
  %868 = alloca %"class.std::__cxx11::basic_string", align 8
  %869 = alloca %"class.std::allocator", align 1
  %870 = alloca %"struct.cgp::matrix_stack.23", align 4
  %871 = alloca %"struct.cgp::numarray_stack.13", align 4
  %872 = alloca i32, align 4
  %873 = alloca i32, align 4
  %874 = alloca i32, align 4
  %875 = alloca %"struct.cgp::numarray_stack.13", align 8
  %876 = alloca %"struct.cgp::numarray_stack.13", align 4
  %877 = alloca float, align 4
  %878 = alloca float, align 4
  %879 = alloca float, align 4
  %880 = alloca %"class.std::__cxx11::basic_string", align 8
  %881 = alloca %"class.std::allocator", align 1
  %882 = alloca %"class.std::__cxx11::basic_string", align 8
  %883 = alloca %"class.std::allocator", align 1
  %884 = alloca %"class.std::__cxx11::basic_string", align 8
  %885 = alloca %"class.std::allocator", align 1
  %886 = alloca %"class.std::__cxx11::basic_string", align 8
  %887 = alloca %"class.std::allocator", align 1
  %888 = alloca %"struct.cgp::matrix_stack.23", align 4
  %889 = alloca %"struct.cgp::matrix_stack.23", align 4
  %890 = alloca %"struct.cgp::matrix_stack.23", align 4
  %891 = alloca %"struct.cgp::matrix_stack.23", align 4
  %892 = alloca %"struct.cgp::matrix_stack.23", align 4
  %893 = alloca %"class.std::initializer_list.14", align 8
  %894 = alloca [16 x float], align 4
  %895 = alloca %"class.std::__cxx11::basic_string", align 8
  %896 = alloca %"class.std::allocator", align 1
  %897 = alloca %"class.std::__cxx11::basic_string", align 8
  %898 = alloca %"class.std::allocator", align 1
  %899 = alloca %"class.std::__cxx11::basic_string", align 8
  %900 = alloca %"class.std::allocator", align 1
  %901 = alloca %"class.std::__cxx11::basic_string", align 8
  %902 = alloca %"class.std::allocator", align 1
  %903 = alloca %"struct.cgp::matrix_stack.23", align 4
  %904 = alloca %"class.std::initializer_list.14", align 8
  %905 = alloca [16 x float], align 4
  %906 = alloca %"class.std::__cxx11::basic_string", align 8
  %907 = alloca %"class.std::allocator", align 1
  %908 = alloca %"class.std::__cxx11::basic_string", align 8
  %909 = alloca %"class.std::allocator", align 1
  %910 = alloca %"class.std::__cxx11::basic_string", align 8
  %911 = alloca %"class.std::allocator", align 1
  %912 = alloca %"class.std::__cxx11::basic_string", align 8
  %913 = alloca %"class.std::allocator", align 1
  %914 = alloca %"struct.cgp::matrix_stack.23", align 4
  %915 = alloca %"class.std::initializer_list.14", align 8
  %916 = alloca [16 x float], align 4
  %917 = alloca %"class.std::__cxx11::basic_string", align 8
  %918 = alloca %"class.std::allocator", align 1
  %919 = alloca %"class.std::__cxx11::basic_string", align 8
  %920 = alloca %"class.std::allocator", align 1
  %921 = alloca %"class.std::__cxx11::basic_string", align 8
  %922 = alloca %"class.std::allocator", align 1
  %923 = alloca %"class.std::__cxx11::basic_string", align 8
  %924 = alloca %"class.std::allocator", align 1
  %925 = alloca %"struct.cgp::matrix_stack.23", align 4
  %926 = alloca %"class.std::initializer_list.14", align 8
  %927 = alloca [16 x float], align 4
  %928 = alloca %"class.std::__cxx11::basic_string", align 8
  %929 = alloca %"class.std::allocator", align 1
  %930 = alloca %"class.std::__cxx11::basic_string", align 8
  %931 = alloca %"class.std::allocator", align 1
  %932 = alloca %"class.std::__cxx11::basic_string", align 8
  %933 = alloca %"class.std::allocator", align 1
  %934 = alloca %"class.std::__cxx11::basic_string", align 8
  %935 = alloca %"class.std::allocator", align 1
  %936 = alloca %"struct.cgp::matrix_stack.23", align 4
  %937 = alloca %"class.std::initializer_list.14", align 8
  %938 = alloca [1 x float], align 4
  %939 = alloca %"struct.cgp::matrix_stack.23", align 4
  %940 = alloca %"class.std::initializer_list.14", align 8
  %941 = alloca [1 x float], align 4
  %942 = alloca %"struct.cgp::matrix_stack.23", align 4
  %943 = alloca %"class.std::initializer_list.14", align 8
  %944 = alloca [3 x float], align 8
  %945 = alloca %"struct.cgp::matrix_stack.23", align 4
  %946 = alloca %"class.std::initializer_list.14", align 8
  %947 = alloca [4 x float], align 16
  %948 = alloca %"struct.cgp::matrix_stack.23", align 4
  %949 = alloca %"class.std::initializer_list.14", align 8
  %950 = alloca [16 x float], align 4
  %951 = alloca %"class.std::__cxx11::basic_string", align 8
  %952 = alloca %"class.std::allocator", align 1
  %953 = alloca %"class.std::__cxx11::basic_string", align 8
  %954 = alloca %"class.std::allocator", align 1
  %955 = alloca %"class.std::__cxx11::basic_string", align 8
  %956 = alloca %"class.std::allocator", align 1
  %957 = alloca %"class.std::__cxx11::basic_string", align 8
  %958 = alloca %"class.std::allocator", align 1
  %959 = alloca %"struct.cgp::matrix_stack.23", align 4
  %960 = alloca %"class.std::initializer_list.14", align 8
  %961 = alloca [16 x float], align 4
  %962 = alloca %"class.std::__cxx11::basic_string", align 8
  %963 = alloca %"class.std::allocator", align 1
  %964 = alloca %"class.std::__cxx11::basic_string", align 8
  %965 = alloca %"class.std::allocator", align 1
  %966 = alloca %"class.std::__cxx11::basic_string", align 8
  %967 = alloca %"class.std::allocator", align 1
  %968 = alloca %"class.std::__cxx11::basic_string", align 8
  %969 = alloca %"class.std::allocator", align 1
  %970 = alloca %"struct.cgp::matrix_stack.23", align 4
  %971 = alloca %"class.std::initializer_list.14", align 8
  %972 = alloca [16 x float], align 4
  %973 = alloca %"class.std::__cxx11::basic_string", align 8
  %974 = alloca %"class.std::allocator", align 1
  %975 = alloca %"class.std::__cxx11::basic_string", align 8
  %976 = alloca %"class.std::allocator", align 1
  %977 = alloca %"class.std::__cxx11::basic_string", align 8
  %978 = alloca %"class.std::allocator", align 1
  %979 = alloca %"class.std::__cxx11::basic_string", align 8
  %980 = alloca %"class.std::allocator", align 1
  %981 = alloca %"struct.cgp::matrix_stack.23", align 4
  %982 = alloca %"class.std::initializer_list.14", align 8
  %983 = alloca [16 x float], align 4
  %984 = alloca %"class.std::__cxx11::basic_string", align 8
  %985 = alloca %"class.std::allocator", align 1
  %986 = alloca %"class.std::__cxx11::basic_string", align 8
  %987 = alloca %"class.std::allocator", align 1
  %988 = alloca %"class.std::__cxx11::basic_string", align 8
  %989 = alloca %"class.std::allocator", align 1
  %990 = alloca %"class.std::__cxx11::basic_string", align 8
  %991 = alloca %"class.std::allocator", align 1
  %992 = alloca %"struct.cgp::matrix_stack.11", align 4
  %993 = alloca %"struct.cgp::matrix_stack.11", align 4
  %994 = alloca %"struct.cgp::matrix_stack.11", align 4
  %995 = alloca %"struct.cgp::matrix_stack.11", align 4
  %996 = alloca %"class.std::initializer_list.14", align 8
  %997 = alloca [1 x float], align 4
  %998 = alloca %"struct.cgp::matrix_stack.11", align 4
  %999 = alloca %"class.std::initializer_list.14", align 8
  %1000 = alloca [1 x float], align 4
  %1001 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1002 = alloca %"class.std::initializer_list.14", align 8
  %1003 = alloca [3 x float], align 8
  %1004 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1005 = alloca %"class.std::initializer_list.14", align 8
  %1006 = alloca [9 x float], align 4
  %1007 = alloca %"class.std::__cxx11::basic_string", align 8
  %1008 = alloca %"class.std::allocator", align 1
  %1009 = alloca %"class.std::__cxx11::basic_string", align 8
  %1010 = alloca %"class.std::allocator", align 1
  %1011 = alloca %"class.std::__cxx11::basic_string", align 8
  %1012 = alloca %"class.std::allocator", align 1
  %1013 = alloca %"class.std::__cxx11::basic_string", align 8
  %1014 = alloca %"class.std::allocator", align 1
  %1015 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1016 = alloca %"class.std::initializer_list.14", align 8
  %1017 = alloca [9 x float], align 4
  %1018 = alloca %"class.std::__cxx11::basic_string", align 8
  %1019 = alloca %"class.std::allocator", align 1
  %1020 = alloca %"class.std::__cxx11::basic_string", align 8
  %1021 = alloca %"class.std::allocator", align 1
  %1022 = alloca %"class.std::__cxx11::basic_string", align 8
  %1023 = alloca %"class.std::allocator", align 1
  %1024 = alloca %"class.std::__cxx11::basic_string", align 8
  %1025 = alloca %"class.std::allocator", align 1
  %1026 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1027 = alloca %"class.std::initializer_list.14", align 8
  %1028 = alloca [9 x float], align 4
  %1029 = alloca %"class.std::__cxx11::basic_string", align 8
  %1030 = alloca %"class.std::allocator", align 1
  %1031 = alloca %"class.std::__cxx11::basic_string", align 8
  %1032 = alloca %"class.std::allocator", align 1
  %1033 = alloca %"class.std::__cxx11::basic_string", align 8
  %1034 = alloca %"class.std::allocator", align 1
  %1035 = alloca %"class.std::__cxx11::basic_string", align 8
  %1036 = alloca %"class.std::allocator", align 1
  %1037 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1038 = alloca %"class.std::initializer_list.14", align 8
  %1039 = alloca [9 x float], align 4
  %1040 = alloca %"class.std::__cxx11::basic_string", align 8
  %1041 = alloca %"class.std::allocator", align 1
  %1042 = alloca %"class.std::__cxx11::basic_string", align 8
  %1043 = alloca %"class.std::allocator", align 1
  %1044 = alloca %"class.std::__cxx11::basic_string", align 8
  %1045 = alloca %"class.std::allocator", align 1
  %1046 = alloca %"class.std::__cxx11::basic_string", align 8
  %1047 = alloca %"class.std::allocator", align 1
  %1048 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1049 = alloca %"class.std::initializer_list.14", align 8
  %1050 = alloca [9 x float], align 4
  %1051 = alloca %"class.std::__cxx11::basic_string", align 8
  %1052 = alloca %"class.std::allocator", align 1
  %1053 = alloca %"class.std::__cxx11::basic_string", align 8
  %1054 = alloca %"class.std::allocator", align 1
  %1055 = alloca %"class.std::__cxx11::basic_string", align 8
  %1056 = alloca %"class.std::allocator", align 1
  %1057 = alloca %"class.std::__cxx11::basic_string", align 8
  %1058 = alloca %"class.std::allocator", align 1
  %1059 = alloca %"struct.cgp::matrix_stack.11", align 4
  %1060 = alloca %"class.std::initializer_list.14", align 8
  %1061 = alloca [9 x float], align 4
  %1062 = alloca %"class.std::__cxx11::basic_string", align 8
  %1063 = alloca %"class.std::allocator", align 1
  %1064 = alloca %"class.std::__cxx11::basic_string", align 8
  %1065 = alloca %"class.std::allocator", align 1
  %1066 = alloca %"class.std::__cxx11::basic_string", align 8
  %1067 = alloca %"class.std::allocator", align 1
  %1068 = alloca %"class.std::__cxx11::basic_string", align 8
  %1069 = alloca %"class.std::allocator", align 1
  %1070 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1071 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1072 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1073 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1074 = alloca %"class.std::initializer_list.14", align 8
  %1075 = alloca [1 x float], align 4
  %1076 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1077 = alloca %"class.std::initializer_list.14", align 8
  %1078 = alloca [1 x float], align 4
  %1079 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1080 = alloca %"class.std::initializer_list.14", align 8
  %1081 = alloca [2 x float], align 8
  %1082 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1083 = alloca %"class.std::initializer_list.14", align 8
  %1084 = alloca [4 x float], align 16
  %1085 = alloca %"class.std::__cxx11::basic_string", align 8
  %1086 = alloca %"class.std::allocator", align 1
  %1087 = alloca %"class.std::__cxx11::basic_string", align 8
  %1088 = alloca %"class.std::allocator", align 1
  %1089 = alloca %"class.std::__cxx11::basic_string", align 8
  %1090 = alloca %"class.std::allocator", align 1
  %1091 = alloca %"class.std::__cxx11::basic_string", align 8
  %1092 = alloca %"class.std::allocator", align 1
  %1093 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1094 = alloca %"class.std::initializer_list.14", align 8
  %1095 = alloca [4 x float], align 16
  %1096 = alloca %"class.std::__cxx11::basic_string", align 8
  %1097 = alloca %"class.std::allocator", align 1
  %1098 = alloca %"class.std::__cxx11::basic_string", align 8
  %1099 = alloca %"class.std::allocator", align 1
  %1100 = alloca %"class.std::__cxx11::basic_string", align 8
  %1101 = alloca %"class.std::allocator", align 1
  %1102 = alloca %"class.std::__cxx11::basic_string", align 8
  %1103 = alloca %"class.std::allocator", align 1
  %1104 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1105 = alloca %"class.std::initializer_list.14", align 8
  %1106 = alloca [4 x float], align 16
  %1107 = alloca %"class.std::__cxx11::basic_string", align 8
  %1108 = alloca %"class.std::allocator", align 1
  %1109 = alloca %"class.std::__cxx11::basic_string", align 8
  %1110 = alloca %"class.std::allocator", align 1
  %1111 = alloca %"class.std::__cxx11::basic_string", align 8
  %1112 = alloca %"class.std::allocator", align 1
  %1113 = alloca %"class.std::__cxx11::basic_string", align 8
  %1114 = alloca %"class.std::allocator", align 1
  %1115 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1116 = alloca %"class.std::initializer_list.14", align 8
  %1117 = alloca [4 x float], align 16
  %1118 = alloca %"class.std::__cxx11::basic_string", align 8
  %1119 = alloca %"class.std::allocator", align 1
  %1120 = alloca %"class.std::__cxx11::basic_string", align 8
  %1121 = alloca %"class.std::allocator", align 1
  %1122 = alloca %"class.std::__cxx11::basic_string", align 8
  %1123 = alloca %"class.std::allocator", align 1
  %1124 = alloca %"class.std::__cxx11::basic_string", align 8
  %1125 = alloca %"class.std::allocator", align 1
  %1126 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1127 = alloca %"class.std::initializer_list.14", align 8
  %1128 = alloca [4 x float], align 16
  %1129 = alloca %"class.std::__cxx11::basic_string", align 8
  %1130 = alloca %"class.std::allocator", align 1
  %1131 = alloca %"class.std::__cxx11::basic_string", align 8
  %1132 = alloca %"class.std::allocator", align 1
  %1133 = alloca %"class.std::__cxx11::basic_string", align 8
  %1134 = alloca %"class.std::allocator", align 1
  %1135 = alloca %"class.std::__cxx11::basic_string", align 8
  %1136 = alloca %"class.std::allocator", align 1
  %1137 = alloca %"struct.cgp::matrix_stack.20", align 4
  %1138 = alloca %"class.std::initializer_list.14", align 8
  %1139 = alloca [4 x float], align 16
  %1140 = alloca %"class.std::__cxx11::basic_string", align 8
  %1141 = alloca %"class.std::allocator", align 1
  %1142 = alloca %"class.std::__cxx11::basic_string", align 8
  %1143 = alloca %"class.std::allocator", align 1
  %1144 = alloca %"class.std::__cxx11::basic_string", align 8
  %1145 = alloca %"class.std::allocator", align 1
  %1146 = alloca %"class.std::__cxx11::basic_string", align 8
  %1147 = alloca %"class.std::allocator", align 1
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %1) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %3, ptr noundef nonnull align 4 dereferenceable(24) @constinit, i64 24, i1 false), !tbaa.struct !5
  store ptr %3, ptr %2, align 8, !tbaa !9
  %1148 = getelementptr inbounds i8, ptr %2, i64 8
  store i64 6, ptr %1148, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(16) %2)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #9
  %1149 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEii(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0, i32 noundef 0)
  %1150 = load i32, ptr %1149, align 4, !tbaa !14
  %.not = icmp eq i32 %1150, 1
  br i1 %.not, label %1171, label %1151

1151:                                             ; preds = %0
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %1152 unwind label %1157

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

1153:                                             ; preds = %1152
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %1154 unwind label %1161

1154:                                             ; preds = %1153
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %1155 unwind label %1163

1155:                                             ; preds = %1154
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %10, i32 noundef 20) #10
          to label %1156 unwind label %1165

1156:                                             ; preds = %1155
  unreachable

1157:                                             ; preds = %1151
  %1158 = landingpad { ptr, i32 }
          cleanup
  br label %1170

1159:                                             ; preds = %1152
  %1160 = landingpad { ptr, i32 }
          cleanup
  br label %1169

1161:                                             ; preds = %1153
  %1162 = landingpad { ptr, i32 }
          cleanup
  br label %1168

1163:                                             ; preds = %1154
  %1164 = landingpad { ptr, i32 }
          cleanup
  br label %1167

1165:                                             ; preds = %1155
  %1166 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  br label %1167

1167:                                             ; preds = %1165, %1163
  %.pn949 = phi { ptr, i32 } [ %1166, %1165 ], [ %1164, %1163 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  br label %1168

1168:                                             ; preds = %1167, %1161
  %.pn949.pn = phi { ptr, i32 } [ %.pn949, %1167 ], [ %1162, %1161 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #9
  br label %1169

1169:                                             ; preds = %1168, %1159
  %.pn949.pn.pn = phi { ptr, i32 } [ %.pn949.pn, %1168 ], [ %1160, %1159 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  br label %1170

1170:                                             ; preds = %1169, %1157
  %.pn949.pn.pn.pn = phi { ptr, i32 } [ %.pn949.pn.pn, %1169 ], [ %1158, %1157 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  br label %1965

1171:                                             ; preds = %0
  %1172 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEii(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0, i32 noundef 1)
  %1173 = load i32, ptr %1172, align 4, !tbaa !14
  %.not474 = icmp eq i32 %1173, 2
  br i1 %.not474, label %1194, label %1174

1174:                                             ; preds = %1171
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %1175 unwind label %1180

1175:                                             ; preds = %1174
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %1176 unwind label %1182

1176:                                             ; preds = %1175
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %1177 unwind label %1184

1177:                                             ; preds = %1176
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %1178 unwind label %1186

1178:                                             ; preds = %1177
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %18, i32 noundef 20) #10
          to label %1179 unwind label %1188

1179:                                             ; preds = %1178
  unreachable

1180:                                             ; preds = %1174
  %1181 = landingpad { ptr, i32 }
          cleanup
  br label %1193

1182:                                             ; preds = %1175
  %1183 = landingpad { ptr, i32 }
          cleanup
  br label %1192

1184:                                             ; preds = %1176
  %1185 = landingpad { ptr, i32 }
          cleanup
  br label %1191

1186:                                             ; preds = %1177
  %1187 = landingpad { ptr, i32 }
          cleanup
  br label %1190

1188:                                             ; preds = %1178
  %1189 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  br label %1190

1190:                                             ; preds = %1188, %1186
  %.pn944 = phi { ptr, i32 } [ %1189, %1188 ], [ %1187, %1186 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %1191

1191:                                             ; preds = %1190, %1184
  %.pn944.pn = phi { ptr, i32 } [ %.pn944, %1190 ], [ %1185, %1184 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  br label %1192

1192:                                             ; preds = %1191, %1182
  %.pn944.pn.pn = phi { ptr, i32 } [ %.pn944.pn, %1191 ], [ %1183, %1182 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  br label %1193

1193:                                             ; preds = %1192, %1180
  %.pn944.pn.pn.pn = phi { ptr, i32 } [ %.pn944.pn.pn, %1192 ], [ %1181, %1180 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #9
  br label %1965

1194:                                             ; preds = %1171
  %1195 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEii(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0, i32 noundef 2)
  %1196 = load i32, ptr %1195, align 4, !tbaa !14
  %.not475 = icmp eq i32 %1196, 3
  br i1 %.not475, label %1217, label %1197

1197:                                             ; preds = %1194
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %1198 unwind label %1203

1198:                                             ; preds = %1197
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %1199 unwind label %1205

1199:                                             ; preds = %1198
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %1200 unwind label %1207

1200:                                             ; preds = %1199
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %27) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %1201 unwind label %1209

1201:                                             ; preds = %1200
  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 20) #10
          to label %1202 unwind label %1211

1202:                                             ; preds = %1201
  unreachable

1203:                                             ; preds = %1197
  %1204 = landingpad { ptr, i32 }
          cleanup
  br label %1216

1205:                                             ; preds = %1198
  %1206 = landingpad { ptr, i32 }
          cleanup
  br label %1215

1207:                                             ; preds = %1199
  %1208 = landingpad { ptr, i32 }
          cleanup
  br label %1214

1209:                                             ; preds = %1200
  %1210 = landingpad { ptr, i32 }
          cleanup
  br label %1213

1211:                                             ; preds = %1201
  %1212 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  br label %1213

1213:                                             ; preds = %1211, %1209
  %.pn939 = phi { ptr, i32 } [ %1212, %1211 ], [ %1210, %1209 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  br label %1214

1214:                                             ; preds = %1213, %1207
  %.pn939.pn = phi { ptr, i32 } [ %.pn939, %1213 ], [ %1208, %1207 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %1215

1215:                                             ; preds = %1214, %1205
  %.pn939.pn.pn = phi { ptr, i32 } [ %.pn939.pn, %1214 ], [ %1206, %1205 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  br label %1216

1216:                                             ; preds = %1215, %1203
  %.pn939.pn.pn.pn = phi { ptr, i32 } [ %.pn939.pn.pn, %1215 ], [ %1204, %1203 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  br label %1965

1217:                                             ; preds = %1194
  %1218 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEii(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1, i32 noundef 0)
  %1219 = load i32, ptr %1218, align 4, !tbaa !14
  %.not476 = icmp eq i32 %1219, 4
  br i1 %.not476, label %1240, label %1220

1220:                                             ; preds = %1217
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %1221 unwind label %1226

1221:                                             ; preds = %1220
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %1222 unwind label %1228

1222:                                             ; preds = %1221
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %1223 unwind label %1230

1223:                                             ; preds = %1222
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %1224 unwind label %1232

1224:                                             ; preds = %1223
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 21) #10
          to label %1225 unwind label %1234

1225:                                             ; preds = %1224
  unreachable

1226:                                             ; preds = %1220
  %1227 = landingpad { ptr, i32 }
          cleanup
  br label %1239

1228:                                             ; preds = %1221
  %1229 = landingpad { ptr, i32 }
          cleanup
  br label %1238

1230:                                             ; preds = %1222
  %1231 = landingpad { ptr, i32 }
          cleanup
  br label %1237

1232:                                             ; preds = %1223
  %1233 = landingpad { ptr, i32 }
          cleanup
  br label %1236

1234:                                             ; preds = %1224
  %1235 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  br label %1236

1236:                                             ; preds = %1234, %1232
  %.pn934 = phi { ptr, i32 } [ %1235, %1234 ], [ %1233, %1232 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  br label %1237

1237:                                             ; preds = %1236, %1230
  %.pn934.pn = phi { ptr, i32 } [ %.pn934, %1236 ], [ %1231, %1230 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  br label %1238

1238:                                             ; preds = %1237, %1228
  %.pn934.pn.pn = phi { ptr, i32 } [ %.pn934.pn, %1237 ], [ %1229, %1228 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  br label %1239

1239:                                             ; preds = %1238, %1226
  %.pn934.pn.pn.pn = phi { ptr, i32 } [ %.pn934.pn.pn, %1238 ], [ %1227, %1226 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #9
  br label %1965

1240:                                             ; preds = %1217
  %1241 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEii(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1, i32 noundef 1)
  %1242 = load i32, ptr %1241, align 4, !tbaa !14
  %.not477 = icmp eq i32 %1242, 5
  br i1 %.not477, label %1263, label %1243

1243:                                             ; preds = %1240
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %1244 unwind label %1249

1244:                                             ; preds = %1243
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %1245 unwind label %1251

1245:                                             ; preds = %1244
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %41) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %1246 unwind label %1253

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

1247:                                             ; preds = %1246
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(32) %42, i32 noundef 21) #10
          to label %1248 unwind label %1257

1248:                                             ; preds = %1247
  unreachable

1249:                                             ; preds = %1243
  %1250 = landingpad { ptr, i32 }
          cleanup
  br label %1262

1251:                                             ; preds = %1244
  %1252 = landingpad { ptr, i32 }
          cleanup
  br label %1261

1253:                                             ; preds = %1245
  %1254 = landingpad { ptr, i32 }
          cleanup
  br label %1260

1255:                                             ; preds = %1246
  %1256 = landingpad { ptr, i32 }
          cleanup
  br label %1259

1257:                                             ; preds = %1247
  %1258 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  br label %1259

1259:                                             ; preds = %1257, %1255
  %.pn929 = phi { ptr, i32 } [ %1258, %1257 ], [ %1256, %1255 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #9
  br label %1260

1260:                                             ; preds = %1259, %1253
  %.pn929.pn = phi { ptr, i32 } [ %.pn929, %1259 ], [ %1254, %1253 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  br label %1261

1261:                                             ; preds = %1260, %1251
  %.pn929.pn.pn = phi { ptr, i32 } [ %.pn929.pn, %1260 ], [ %1252, %1251 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  br label %1262

1262:                                             ; preds = %1261, %1249
  %.pn929.pn.pn.pn = phi { ptr, i32 } [ %.pn929.pn.pn, %1261 ], [ %1250, %1249 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #9
  br label %1965

1263:                                             ; preds = %1240
  %1264 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEii(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1, i32 noundef 2)
  %1265 = load i32, ptr %1264, align 4, !tbaa !14
  %.not478 = icmp eq i32 %1265, 6
  br i1 %.not478, label %1286, label %1266

1266:                                             ; preds = %1263
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %45) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %1267 unwind label %1272

1267:                                             ; preds = %1266
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %1268 unwind label %1274

1268:                                             ; preds = %1267
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %49) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %1269 unwind label %1276

1269:                                             ; preds = %1268
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %51) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %1270 unwind label %1278

1270:                                             ; preds = %1269
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %50, i32 noundef 21) #10
          to label %1271 unwind label %1280

1271:                                             ; preds = %1270
  unreachable

1272:                                             ; preds = %1266
  %1273 = landingpad { ptr, i32 }
          cleanup
  br label %1285

1274:                                             ; preds = %1267
  %1275 = landingpad { ptr, i32 }
          cleanup
  br label %1284

1276:                                             ; preds = %1268
  %1277 = landingpad { ptr, i32 }
          cleanup
  br label %1283

1278:                                             ; preds = %1269
  %1279 = landingpad { ptr, i32 }
          cleanup
  br label %1282

1280:                                             ; preds = %1270
  %1281 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %1282

1282:                                             ; preds = %1280, %1278
  %.pn924 = phi { ptr, i32 } [ %1281, %1280 ], [ %1279, %1278 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  br label %1283

1283:                                             ; preds = %1282, %1276
  %.pn924.pn = phi { ptr, i32 } [ %.pn924, %1282 ], [ %1277, %1276 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %49) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #9
  br label %1284

1284:                                             ; preds = %1283, %1274
  %.pn924.pn.pn = phi { ptr, i32 } [ %.pn924.pn, %1283 ], [ %1275, %1274 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  br label %1285

1285:                                             ; preds = %1284, %1272
  %.pn924.pn.pn.pn = phi { ptr, i32 } [ %.pn924.pn.pn, %1284 ], [ %1273, %1272 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #9
  br label %1965

1286:                                             ; preds = %1263
  %1287 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0)
  %1288 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEclEi(ptr noundef nonnull align 4 dereferenceable(12) %1287, i32 noundef 0)
  %1289 = load i32, ptr %1288, align 4, !tbaa !14
  %.not479 = icmp eq i32 %1289, 1
  br i1 %.not479, label %1310, label %1290

1290:                                             ; preds = %1286
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %53) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %1291 unwind label %1296

1291:                                             ; preds = %1290
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %55) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %1292 unwind label %1298

1292:                                             ; preds = %1291
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %56) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %57) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %1293 unwind label %1300

1293:                                             ; preds = %1292
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %59) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %1294 unwind label %1302

1294:                                             ; preds = %1293
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %58, i32 noundef 23) #10
          to label %1295 unwind label %1304

1295:                                             ; preds = %1294
  unreachable

1296:                                             ; preds = %1290
  %1297 = landingpad { ptr, i32 }
          cleanup
  br label %1309

1298:                                             ; preds = %1291
  %1299 = landingpad { ptr, i32 }
          cleanup
  br label %1308

1300:                                             ; preds = %1292
  %1301 = landingpad { ptr, i32 }
          cleanup
  br label %1307

1302:                                             ; preds = %1293
  %1303 = landingpad { ptr, i32 }
          cleanup
  br label %1306

1304:                                             ; preds = %1294
  %1305 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #9
  br label %1306

1306:                                             ; preds = %1304, %1302
  %.pn919 = phi { ptr, i32 } [ %1305, %1304 ], [ %1303, %1302 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %59) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  br label %1307

1307:                                             ; preds = %1306, %1300
  %.pn919.pn = phi { ptr, i32 } [ %.pn919, %1306 ], [ %1301, %1300 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #9
  br label %1308

1308:                                             ; preds = %1307, %1298
  %.pn919.pn.pn = phi { ptr, i32 } [ %.pn919.pn, %1307 ], [ %1299, %1298 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %55) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  br label %1309

1309:                                             ; preds = %1308, %1296
  %.pn919.pn.pn.pn = phi { ptr, i32 } [ %.pn919.pn.pn, %1308 ], [ %1297, %1296 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %53) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #9
  br label %1965

1310:                                             ; preds = %1286
  %1311 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0)
  %1312 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEclEi(ptr noundef nonnull align 4 dereferenceable(12) %1311, i32 noundef 1)
  %1313 = load i32, ptr %1312, align 4, !tbaa !14
  %.not480 = icmp eq i32 %1313, 2
  br i1 %.not480, label %1334, label %1314

1314:                                             ; preds = %1310
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %61) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %1315 unwind label %1320

1315:                                             ; preds = %1314
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %63) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %1316 unwind label %1322

1316:                                             ; preds = %1315
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %65) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %1317 unwind label %1324

1317:                                             ; preds = %1316
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %67) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %1318 unwind label %1326

1318:                                             ; preds = %1317
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %66, i32 noundef 23) #10
          to label %1319 unwind label %1328

1319:                                             ; preds = %1318
  unreachable

1320:                                             ; preds = %1314
  %1321 = landingpad { ptr, i32 }
          cleanup
  br label %1333

1322:                                             ; preds = %1315
  %1323 = landingpad { ptr, i32 }
          cleanup
  br label %1332

1324:                                             ; preds = %1316
  %1325 = landingpad { ptr, i32 }
          cleanup
  br label %1331

1326:                                             ; preds = %1317
  %1327 = landingpad { ptr, i32 }
          cleanup
  br label %1330

1328:                                             ; preds = %1318
  %1329 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #9
  br label %1330

1330:                                             ; preds = %1328, %1326
  %.pn914 = phi { ptr, i32 } [ %1329, %1328 ], [ %1327, %1326 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %67) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #9
  br label %1331

1331:                                             ; preds = %1330, %1324
  %.pn914.pn = phi { ptr, i32 } [ %.pn914, %1330 ], [ %1325, %1324 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  br label %1332

1332:                                             ; preds = %1331, %1322
  %.pn914.pn.pn = phi { ptr, i32 } [ %.pn914.pn, %1331 ], [ %1323, %1322 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #9
  br label %1333

1333:                                             ; preds = %1332, %1320
  %.pn914.pn.pn.pn = phi { ptr, i32 } [ %.pn914.pn.pn, %1332 ], [ %1321, %1320 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #9
  br label %1965

1334:                                             ; preds = %1310
  %1335 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0)
  %1336 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEclEi(ptr noundef nonnull align 4 dereferenceable(12) %1335, i32 noundef 2)
  %1337 = load i32, ptr %1336, align 4, !tbaa !14
  %.not481 = icmp eq i32 %1337, 3
  br i1 %.not481, label %1358, label %1338

1338:                                             ; preds = %1334
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %68) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %69) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %69)
          to label %1339 unwind label %1344

1339:                                             ; preds = %1338
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %71) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %1340 unwind label %1346

1340:                                             ; preds = %1339
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %72) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %73) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %73)
          to label %1341 unwind label %1348

1341:                                             ; preds = %1340
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %75) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %1342 unwind label %1350

1342:                                             ; preds = %1341
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %74, i32 noundef 23) #10
          to label %1343 unwind label %1352

1343:                                             ; preds = %1342
  unreachable

1344:                                             ; preds = %1338
  %1345 = landingpad { ptr, i32 }
          cleanup
  br label %1357

1346:                                             ; preds = %1339
  %1347 = landingpad { ptr, i32 }
          cleanup
  br label %1356

1348:                                             ; preds = %1340
  %1349 = landingpad { ptr, i32 }
          cleanup
  br label %1355

1350:                                             ; preds = %1341
  %1351 = landingpad { ptr, i32 }
          cleanup
  br label %1354

1352:                                             ; preds = %1342
  %1353 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  br label %1354

1354:                                             ; preds = %1352, %1350
  %.pn909 = phi { ptr, i32 } [ %1353, %1352 ], [ %1351, %1350 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %75) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  br label %1355

1355:                                             ; preds = %1354, %1348
  %.pn909.pn = phi { ptr, i32 } [ %.pn909, %1354 ], [ %1349, %1348 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  br label %1356

1356:                                             ; preds = %1355, %1346
  %.pn909.pn.pn = phi { ptr, i32 } [ %.pn909.pn, %1355 ], [ %1347, %1346 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %71) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  br label %1357

1357:                                             ; preds = %1356, %1344
  %.pn909.pn.pn.pn = phi { ptr, i32 } [ %.pn909.pn.pn, %1356 ], [ %1345, %1344 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %69) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #9
  br label %1965

1358:                                             ; preds = %1334
  %1359 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1)
  %1360 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEclEi(ptr noundef nonnull align 4 dereferenceable(12) %1359, i32 noundef 0)
  %1361 = load i32, ptr %1360, align 4, !tbaa !14
  %.not482 = icmp eq i32 %1361, 4
  br i1 %.not482, label %1382, label %1362

1362:                                             ; preds = %1358
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %77) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %77)
          to label %1363 unwind label %1368

1363:                                             ; preds = %1362
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %79) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %1364 unwind label %1370

1364:                                             ; preds = %1363
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %80) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %81) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %81)
          to label %1365 unwind label %1372

1365:                                             ; preds = %1364
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %83) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %83)
          to label %1366 unwind label %1374

1366:                                             ; preds = %1365
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull align 8 dereferenceable(32) %82, i32 noundef 24) #10
          to label %1367 unwind label %1376

1367:                                             ; preds = %1366
  unreachable

1368:                                             ; preds = %1362
  %1369 = landingpad { ptr, i32 }
          cleanup
  br label %1381

1370:                                             ; preds = %1363
  %1371 = landingpad { ptr, i32 }
          cleanup
  br label %1380

1372:                                             ; preds = %1364
  %1373 = landingpad { ptr, i32 }
          cleanup
  br label %1379

1374:                                             ; preds = %1365
  %1375 = landingpad { ptr, i32 }
          cleanup
  br label %1378

1376:                                             ; preds = %1366
  %1377 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #9
  br label %1378

1378:                                             ; preds = %1376, %1374
  %.pn904 = phi { ptr, i32 } [ %1377, %1376 ], [ %1375, %1374 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %83) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #9
  br label %1379

1379:                                             ; preds = %1378, %1372
  %.pn904.pn = phi { ptr, i32 } [ %.pn904, %1378 ], [ %1373, %1372 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %81) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  br label %1380

1380:                                             ; preds = %1379, %1370
  %.pn904.pn.pn = phi { ptr, i32 } [ %.pn904.pn, %1379 ], [ %1371, %1370 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  br label %1381

1381:                                             ; preds = %1380, %1368
  %.pn904.pn.pn.pn = phi { ptr, i32 } [ %.pn904.pn.pn, %1380 ], [ %1369, %1368 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %77) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #9
  br label %1965

1382:                                             ; preds = %1358
  %1383 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1)
  %1384 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEclEi(ptr noundef nonnull align 4 dereferenceable(12) %1383, i32 noundef 1)
  %1385 = load i32, ptr %1384, align 4, !tbaa !14
  %.not483 = icmp eq i32 %1385, 5
  br i1 %.not483, label %1406, label %1386

1386:                                             ; preds = %1382
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %84) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %85) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %85)
          to label %1387 unwind label %1392

1387:                                             ; preds = %1386
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %86) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %87) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %87)
          to label %1388 unwind label %1394

1388:                                             ; preds = %1387
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %88) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %89) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %89)
          to label %1389 unwind label %1396

1389:                                             ; preds = %1388
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %90) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %91) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %1390 unwind label %1398

1390:                                             ; preds = %1389
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull align 8 dereferenceable(32) %90, i32 noundef 24) #10
          to label %1391 unwind label %1400

1391:                                             ; preds = %1390
  unreachable

1392:                                             ; preds = %1386
  %1393 = landingpad { ptr, i32 }
          cleanup
  br label %1405

1394:                                             ; preds = %1387
  %1395 = landingpad { ptr, i32 }
          cleanup
  br label %1404

1396:                                             ; preds = %1388
  %1397 = landingpad { ptr, i32 }
          cleanup
  br label %1403

1398:                                             ; preds = %1389
  %1399 = landingpad { ptr, i32 }
          cleanup
  br label %1402

1400:                                             ; preds = %1390
  %1401 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #9
  br label %1402

1402:                                             ; preds = %1400, %1398
  %.pn899 = phi { ptr, i32 } [ %1401, %1400 ], [ %1399, %1398 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %91) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #9
  br label %1403

1403:                                             ; preds = %1402, %1396
  %.pn899.pn = phi { ptr, i32 } [ %.pn899, %1402 ], [ %1397, %1396 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %89) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #9
  br label %1404

1404:                                             ; preds = %1403, %1394
  %.pn899.pn.pn = phi { ptr, i32 } [ %.pn899.pn, %1403 ], [ %1395, %1394 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %87) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #9
  br label %1405

1405:                                             ; preds = %1404, %1392
  %.pn899.pn.pn.pn = phi { ptr, i32 } [ %.pn899.pn.pn, %1404 ], [ %1393, %1392 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %85) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #9
  br label %1965

1406:                                             ; preds = %1382
  %1407 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1)
  %1408 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEclEi(ptr noundef nonnull align 4 dereferenceable(12) %1407, i32 noundef 2)
  %1409 = load i32, ptr %1408, align 4, !tbaa !14
  %.not484 = icmp eq i32 %1409, 6
  br i1 %.not484, label %1430, label %1410

1410:                                             ; preds = %1406
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %92) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %93) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %93)
          to label %1411 unwind label %1416

1411:                                             ; preds = %1410
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %94) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %95) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %95)
          to label %1412 unwind label %1418

1412:                                             ; preds = %1411
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %96) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %97) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %97)
          to label %1413 unwind label %1420

1413:                                             ; preds = %1412
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %98) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %99) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %99)
          to label %1414 unwind label %1422

1414:                                             ; preds = %1413
  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 24) #10
          to label %1415 unwind label %1424

1415:                                             ; preds = %1414
  unreachable

1416:                                             ; preds = %1410
  %1417 = landingpad { ptr, i32 }
          cleanup
  br label %1429

1418:                                             ; preds = %1411
  %1419 = landingpad { ptr, i32 }
          cleanup
  br label %1428

1420:                                             ; preds = %1412
  %1421 = landingpad { ptr, i32 }
          cleanup
  br label %1427

1422:                                             ; preds = %1413
  %1423 = landingpad { ptr, i32 }
          cleanup
  br label %1426

1424:                                             ; preds = %1414
  %1425 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #9
  br label %1426

1426:                                             ; preds = %1424, %1422
  %.pn894 = phi { ptr, i32 } [ %1425, %1424 ], [ %1423, %1422 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %99) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #9
  br label %1427

1427:                                             ; preds = %1426, %1420
  %.pn894.pn = phi { ptr, i32 } [ %.pn894, %1426 ], [ %1421, %1420 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %97) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #9
  br label %1428

1428:                                             ; preds = %1427, %1418
  %.pn894.pn.pn = phi { ptr, i32 } [ %.pn894.pn, %1427 ], [ %1419, %1418 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %95) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #9
  br label %1429

1429:                                             ; preds = %1428, %1416
  %.pn894.pn.pn.pn = phi { ptr, i32 } [ %.pn894.pn.pn, %1428 ], [ %1417, %1416 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %93) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #9
  br label %1965

1430:                                             ; preds = %1406
  %1431 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0)
  %1432 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEixEi(ptr noundef nonnull align 4 dereferenceable(12) %1431, i32 noundef 0)
  %1433 = load i32, ptr %1432, align 4, !tbaa !14
  %.not485 = icmp eq i32 %1433, 1
  br i1 %.not485, label %1454, label %1434

1434:                                             ; preds = %1430
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %100) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %101) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %101)
          to label %1435 unwind label %1440

1435:                                             ; preds = %1434
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %102) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %103) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %103)
          to label %1436 unwind label %1442

1436:                                             ; preds = %1435
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %104) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %105) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %105)
          to label %1437 unwind label %1444

1437:                                             ; preds = %1436
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %106) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %107) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %107)
          to label %1438 unwind label %1446

1438:                                             ; preds = %1437
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull align 8 dereferenceable(32) %106, i32 noundef 26) #10
          to label %1439 unwind label %1448

1439:                                             ; preds = %1438
  unreachable

1440:                                             ; preds = %1434
  %1441 = landingpad { ptr, i32 }
          cleanup
  br label %1453

1442:                                             ; preds = %1435
  %1443 = landingpad { ptr, i32 }
          cleanup
  br label %1452

1444:                                             ; preds = %1436
  %1445 = landingpad { ptr, i32 }
          cleanup
  br label %1451

1446:                                             ; preds = %1437
  %1447 = landingpad { ptr, i32 }
          cleanup
  br label %1450

1448:                                             ; preds = %1438
  %1449 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #9
  br label %1450

1450:                                             ; preds = %1448, %1446
  %.pn889 = phi { ptr, i32 } [ %1449, %1448 ], [ %1447, %1446 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %107) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #9
  br label %1451

1451:                                             ; preds = %1450, %1444
  %.pn889.pn = phi { ptr, i32 } [ %.pn889, %1450 ], [ %1445, %1444 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %105) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %104) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #9
  br label %1452

1452:                                             ; preds = %1451, %1442
  %.pn889.pn.pn = phi { ptr, i32 } [ %.pn889.pn, %1451 ], [ %1443, %1442 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %103) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #9
  br label %1453

1453:                                             ; preds = %1452, %1440
  %.pn889.pn.pn.pn = phi { ptr, i32 } [ %.pn889.pn.pn, %1452 ], [ %1441, %1440 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %101) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #9
  br label %1965

1454:                                             ; preds = %1430
  %1455 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0)
  %1456 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEixEi(ptr noundef nonnull align 4 dereferenceable(12) %1455, i32 noundef 1)
  %1457 = load i32, ptr %1456, align 4, !tbaa !14
  %.not486 = icmp eq i32 %1457, 2
  br i1 %.not486, label %1478, label %1458

1458:                                             ; preds = %1454
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %108) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %109) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %109)
          to label %1459 unwind label %1464

1459:                                             ; preds = %1458
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %110) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %111) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %111)
          to label %1460 unwind label %1466

1460:                                             ; preds = %1459
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %112) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %113) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %113)
          to label %1461 unwind label %1468

1461:                                             ; preds = %1460
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %114) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %115) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %115)
          to label %1462 unwind label %1470

1462:                                             ; preds = %1461
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef nonnull align 8 dereferenceable(32) %114, i32 noundef 26) #10
          to label %1463 unwind label %1472

1463:                                             ; preds = %1462
  unreachable

1464:                                             ; preds = %1458
  %1465 = landingpad { ptr, i32 }
          cleanup
  br label %1477

1466:                                             ; preds = %1459
  %1467 = landingpad { ptr, i32 }
          cleanup
  br label %1476

1468:                                             ; preds = %1460
  %1469 = landingpad { ptr, i32 }
          cleanup
  br label %1475

1470:                                             ; preds = %1461
  %1471 = landingpad { ptr, i32 }
          cleanup
  br label %1474

1472:                                             ; preds = %1462
  %1473 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #9
  br label %1474

1474:                                             ; preds = %1472, %1470
  %.pn884 = phi { ptr, i32 } [ %1473, %1472 ], [ %1471, %1470 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %115) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #9
  br label %1475

1475:                                             ; preds = %1474, %1468
  %.pn884.pn = phi { ptr, i32 } [ %.pn884, %1474 ], [ %1469, %1468 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %113) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #9
  br label %1476

1476:                                             ; preds = %1475, %1466
  %.pn884.pn.pn = phi { ptr, i32 } [ %.pn884.pn, %1475 ], [ %1467, %1466 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %111) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #9
  br label %1477

1477:                                             ; preds = %1476, %1464
  %.pn884.pn.pn.pn = phi { ptr, i32 } [ %.pn884.pn.pn, %1476 ], [ %1465, %1464 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %109) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #9
  br label %1965

1478:                                             ; preds = %1454
  %1479 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0)
  %1480 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEixEi(ptr noundef nonnull align 4 dereferenceable(12) %1479, i32 noundef 2)
  %1481 = load i32, ptr %1480, align 4, !tbaa !14
  %.not487 = icmp eq i32 %1481, 3
  br i1 %.not487, label %1502, label %1482

1482:                                             ; preds = %1478
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %116) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %117) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %117)
          to label %1483 unwind label %1488

1483:                                             ; preds = %1482
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %118) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %119) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %119)
          to label %1484 unwind label %1490

1484:                                             ; preds = %1483
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %120) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %121) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %121)
          to label %1485 unwind label %1492

1485:                                             ; preds = %1484
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %122) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %123) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %123)
          to label %1486 unwind label %1494

1486:                                             ; preds = %1485
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef nonnull align 8 dereferenceable(32) %122, i32 noundef 26) #10
          to label %1487 unwind label %1496

1487:                                             ; preds = %1486
  unreachable

1488:                                             ; preds = %1482
  %1489 = landingpad { ptr, i32 }
          cleanup
  br label %1501

1490:                                             ; preds = %1483
  %1491 = landingpad { ptr, i32 }
          cleanup
  br label %1500

1492:                                             ; preds = %1484
  %1493 = landingpad { ptr, i32 }
          cleanup
  br label %1499

1494:                                             ; preds = %1485
  %1495 = landingpad { ptr, i32 }
          cleanup
  br label %1498

1496:                                             ; preds = %1486
  %1497 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #9
  br label %1498

1498:                                             ; preds = %1496, %1494
  %.pn879 = phi { ptr, i32 } [ %1497, %1496 ], [ %1495, %1494 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %123) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %122) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #9
  br label %1499

1499:                                             ; preds = %1498, %1492
  %.pn879.pn = phi { ptr, i32 } [ %.pn879, %1498 ], [ %1493, %1492 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %121) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %120) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #9
  br label %1500

1500:                                             ; preds = %1499, %1490
  %.pn879.pn.pn = phi { ptr, i32 } [ %.pn879.pn, %1499 ], [ %1491, %1490 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %119) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  br label %1501

1501:                                             ; preds = %1500, %1488
  %.pn879.pn.pn.pn = phi { ptr, i32 } [ %.pn879.pn.pn, %1500 ], [ %1489, %1488 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %117) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #9
  br label %1965

1502:                                             ; preds = %1478
  %1503 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1)
  %1504 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEixEi(ptr noundef nonnull align 4 dereferenceable(12) %1503, i32 noundef 0)
  %1505 = load i32, ptr %1504, align 4, !tbaa !14
  %.not488 = icmp eq i32 %1505, 4
  br i1 %.not488, label %1526, label %1506

1506:                                             ; preds = %1502
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %124) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %125) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %125)
          to label %1507 unwind label %1512

1507:                                             ; preds = %1506
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %126) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %127) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %127)
          to label %1508 unwind label %1514

1508:                                             ; preds = %1507
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %128) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %129) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %129)
          to label %1509 unwind label %1516

1509:                                             ; preds = %1508
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %130) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %131) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %131)
          to label %1510 unwind label %1518

1510:                                             ; preds = %1509
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull align 8 dereferenceable(32) %130, i32 noundef 27) #10
          to label %1511 unwind label %1520

1511:                                             ; preds = %1510
  unreachable

1512:                                             ; preds = %1506
  %1513 = landingpad { ptr, i32 }
          cleanup
  br label %1525

1514:                                             ; preds = %1507
  %1515 = landingpad { ptr, i32 }
          cleanup
  br label %1524

1516:                                             ; preds = %1508
  %1517 = landingpad { ptr, i32 }
          cleanup
  br label %1523

1518:                                             ; preds = %1509
  %1519 = landingpad { ptr, i32 }
          cleanup
  br label %1522

1520:                                             ; preds = %1510
  %1521 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #9
  br label %1522

1522:                                             ; preds = %1520, %1518
  %.pn874 = phi { ptr, i32 } [ %1521, %1520 ], [ %1519, %1518 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %131) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %130) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #9
  br label %1523

1523:                                             ; preds = %1522, %1516
  %.pn874.pn = phi { ptr, i32 } [ %.pn874, %1522 ], [ %1517, %1516 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %129) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #9
  br label %1524

1524:                                             ; preds = %1523, %1514
  %.pn874.pn.pn = phi { ptr, i32 } [ %.pn874.pn, %1523 ], [ %1515, %1514 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %127) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #9
  br label %1525

1525:                                             ; preds = %1524, %1512
  %.pn874.pn.pn.pn = phi { ptr, i32 } [ %.pn874.pn.pn, %1524 ], [ %1513, %1512 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %125) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %125) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #9
  br label %1965

1526:                                             ; preds = %1502
  %1527 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1)
  %1528 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEixEi(ptr noundef nonnull align 4 dereferenceable(12) %1527, i32 noundef 1)
  %1529 = load i32, ptr %1528, align 4, !tbaa !14
  %.not489 = icmp eq i32 %1529, 5
  br i1 %.not489, label %1550, label %1530

1530:                                             ; preds = %1526
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %132) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %133) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %133)
          to label %1531 unwind label %1536

1531:                                             ; preds = %1530
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %134) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %135) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %135)
          to label %1532 unwind label %1538

1532:                                             ; preds = %1531
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %136) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %137) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %137)
          to label %1533 unwind label %1540

1533:                                             ; preds = %1532
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %138) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %139) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %139)
          to label %1534 unwind label %1542

1534:                                             ; preds = %1533
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef nonnull align 8 dereferenceable(32) %138, i32 noundef 27) #10
          to label %1535 unwind label %1544

1535:                                             ; preds = %1534
  unreachable

1536:                                             ; preds = %1530
  %1537 = landingpad { ptr, i32 }
          cleanup
  br label %1549

1538:                                             ; preds = %1531
  %1539 = landingpad { ptr, i32 }
          cleanup
  br label %1548

1540:                                             ; preds = %1532
  %1541 = landingpad { ptr, i32 }
          cleanup
  br label %1547

1542:                                             ; preds = %1533
  %1543 = landingpad { ptr, i32 }
          cleanup
  br label %1546

1544:                                             ; preds = %1534
  %1545 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #9
  br label %1546

1546:                                             ; preds = %1544, %1542
  %.pn869 = phi { ptr, i32 } [ %1545, %1544 ], [ %1543, %1542 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %139) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %138) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #9
  br label %1547

1547:                                             ; preds = %1546, %1540
  %.pn869.pn = phi { ptr, i32 } [ %.pn869, %1546 ], [ %1541, %1540 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %137) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %136) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #9
  br label %1548

1548:                                             ; preds = %1547, %1538
  %.pn869.pn.pn = phi { ptr, i32 } [ %.pn869.pn, %1547 ], [ %1539, %1538 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %135) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %134) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #9
  br label %1549

1549:                                             ; preds = %1548, %1536
  %.pn869.pn.pn.pn = phi { ptr, i32 } [ %.pn869.pn.pn, %1548 ], [ %1537, %1536 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %133) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %132) #9
  br label %1965

1550:                                             ; preds = %1526
  %1551 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1)
  %1552 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEixEi(ptr noundef nonnull align 4 dereferenceable(12) %1551, i32 noundef 2)
  %1553 = load i32, ptr %1552, align 4, !tbaa !14
  %.not490 = icmp eq i32 %1553, 6
  br i1 %.not490, label %1574, label %1554

1554:                                             ; preds = %1550
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %140) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %141) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %141)
          to label %1555 unwind label %1560

1555:                                             ; preds = %1554
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %142) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %143) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %143)
          to label %1556 unwind label %1562

1556:                                             ; preds = %1555
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %144) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %145) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %145)
          to label %1557 unwind label %1564

1557:                                             ; preds = %1556
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %146) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %147) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %147)
          to label %1558 unwind label %1566

1558:                                             ; preds = %1557
  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 27) #10
          to label %1559 unwind label %1568

1559:                                             ; preds = %1558
  unreachable

1560:                                             ; preds = %1554
  %1561 = landingpad { ptr, i32 }
          cleanup
  br label %1573

1562:                                             ; preds = %1555
  %1563 = landingpad { ptr, i32 }
          cleanup
  br label %1572

1564:                                             ; preds = %1556
  %1565 = landingpad { ptr, i32 }
          cleanup
  br label %1571

1566:                                             ; preds = %1557
  %1567 = landingpad { ptr, i32 }
          cleanup
  br label %1570

1568:                                             ; preds = %1558
  %1569 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #9
  br label %1570

1570:                                             ; preds = %1568, %1566
  %.pn864 = phi { ptr, i32 } [ %1569, %1568 ], [ %1567, %1566 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %147) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #9
  br label %1571

1571:                                             ; preds = %1570, %1564
  %.pn864.pn = phi { ptr, i32 } [ %.pn864, %1570 ], [ %1565, %1564 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %145) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %144) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #9
  br label %1572

1572:                                             ; preds = %1571, %1562
  %.pn864.pn.pn = phi { ptr, i32 } [ %.pn864.pn, %1571 ], [ %1563, %1562 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %143) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %142) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #9
  br label %1573

1573:                                             ; preds = %1572, %1560
  %.pn864.pn.pn.pn = phi { ptr, i32 } [ %.pn864.pn.pn, %1572 ], [ %1561, %1560 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %141) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %140) #9
  br label %1965

1574:                                             ; preds = %1550
  %1575 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %148) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %149) #9
  store i32 1, ptr %149, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %150) #9
  store i32 2, ptr %150, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %151) #9
  store i32 3, ptr %151, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIiLi3EEC2ERKiS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %148, ptr noundef nonnull align 4 dereferenceable(4) %149, ptr noundef nonnull align 4 dereferenceable(4) %150, ptr noundef nonnull align 4 dereferenceable(4) %151)
  %1576 = call noundef zeroext i1 @_ZN3cgp8is_equalIiLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %1575, ptr noundef nonnull align 4 dereferenceable(12) %148)
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %152) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %153) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %154) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %155) #9
  br i1 %1576, label %1577, label %.critedge

1577:                                             ; preds = %1574
  %1578 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1)
  store i32 4, ptr %153, align 4, !tbaa !14
  store i32 5, ptr %154, align 4, !tbaa !14
  store i32 6, ptr %155, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIiLi3EEC2ERKiS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %152, ptr noundef nonnull align 4 dereferenceable(4) %153, ptr noundef nonnull align 4 dereferenceable(4) %154, ptr noundef nonnull align 4 dereferenceable(4) %155)
  %1579 = call noundef zeroext i1 @_ZN3cgp8is_equalIiLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %1578, ptr noundef nonnull align 4 dereferenceable(12) %152)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %155) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %154) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %153) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %152) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %151) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %150) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %149) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %148) #9
  br i1 %1579, label %1600, label %1580

.critedge:                                        ; preds = %1574
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %155) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %154) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %153) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %152) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %151) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %150) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %149) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %148) #9
  br label %1580

1580:                                             ; preds = %.critedge, %1577
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %156) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %157) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %157)
          to label %1581 unwind label %1586

1581:                                             ; preds = %1580
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %158) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %159) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %159)
          to label %1582 unwind label %1588

1582:                                             ; preds = %1581
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %160) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %161) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %161)
          to label %1583 unwind label %1590

1583:                                             ; preds = %1582
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %162) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %163) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %162, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %163)
          to label %1584 unwind label %1592

1584:                                             ; preds = %1583
  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 30) #10
          to label %1585 unwind label %1594

1585:                                             ; preds = %1584
  unreachable

1586:                                             ; preds = %1580
  %1587 = landingpad { ptr, i32 }
          cleanup
  br label %1599

1588:                                             ; preds = %1581
  %1589 = landingpad { ptr, i32 }
          cleanup
  br label %1598

1590:                                             ; preds = %1582
  %1591 = landingpad { ptr, i32 }
          cleanup
  br label %1597

1592:                                             ; preds = %1583
  %1593 = landingpad { ptr, i32 }
          cleanup
  br label %1596

1594:                                             ; preds = %1584
  %1595 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #9
  br label %1596

1596:                                             ; preds = %1594, %1592
  %.pn859 = phi { ptr, i32 } [ %1595, %1594 ], [ %1593, %1592 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %163) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %162) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #9
  br label %1597

1597:                                             ; preds = %1596, %1590
  %.pn859.pn = phi { ptr, i32 } [ %.pn859, %1596 ], [ %1591, %1590 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %161) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %160) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #9
  br label %1598

1598:                                             ; preds = %1597, %1588
  %.pn859.pn.pn = phi { ptr, i32 } [ %.pn859.pn, %1597 ], [ %1589, %1588 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %159) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %158) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #9
  br label %1599

1599:                                             ; preds = %1598, %1586
  %.pn859.pn.pn.pn = phi { ptr, i32 } [ %.pn859.pn.pn, %1598 ], [ %1587, %1586 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %157) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %156) #9
  br label %1965

1600:                                             ; preds = %1577
  %1601 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %164) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %165) #9
  store i32 1, ptr %165, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %166) #9
  store i32 2, ptr %166, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %167) #9
  store i32 3, ptr %167, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIiLi3EEC2ERKiS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %164, ptr noundef nonnull align 4 dereferenceable(4) %165, ptr noundef nonnull align 4 dereferenceable(4) %166, ptr noundef nonnull align 4 dereferenceable(4) %167)
  %1602 = call noundef zeroext i1 @_ZN3cgp8is_equalIiLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %1601, ptr noundef nonnull align 4 dereferenceable(12) %164)
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %168) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %169) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %170) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %171) #9
  br i1 %1602, label %1603, label %.critedge957

1603:                                             ; preds = %1600
  %1604 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24) %1, i32 noundef 1)
  store i32 4, ptr %169, align 4, !tbaa !14
  store i32 5, ptr %170, align 4, !tbaa !14
  store i32 6, ptr %171, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIiLi3EEC2ERKiS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %168, ptr noundef nonnull align 4 dereferenceable(4) %169, ptr noundef nonnull align 4 dereferenceable(4) %170, ptr noundef nonnull align 4 dereferenceable(4) %171)
  %1605 = call noundef zeroext i1 @_ZN3cgp8is_equalIiLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %1604, ptr noundef nonnull align 4 dereferenceable(12) %168)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %171) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %170) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %169) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %168) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %167) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %166) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %165) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %164) #9
  br i1 %1605, label %1626, label %1606

.critedge957:                                     ; preds = %1600
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %171) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %170) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %169) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %168) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %167) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %166) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %165) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %164) #9
  br label %1606

1606:                                             ; preds = %.critedge957, %1603
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %172) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %173) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %173)
          to label %1607 unwind label %1612

1607:                                             ; preds = %1606
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %174) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %175) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %175) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %175)
          to label %1608 unwind label %1614

1608:                                             ; preds = %1607
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %176) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %177) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %177) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %176, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %177)
          to label %1609 unwind label %1616

1609:                                             ; preds = %1608
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %178) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %179) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %179)
          to label %1610 unwind label %1618

1610:                                             ; preds = %1609
  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 31) #10
          to label %1611 unwind label %1620

1611:                                             ; preds = %1610
  unreachable

1612:                                             ; preds = %1606
  %1613 = landingpad { ptr, i32 }
          cleanup
  br label %1625

1614:                                             ; preds = %1607
  %1615 = landingpad { ptr, i32 }
          cleanup
  br label %1624

1616:                                             ; preds = %1608
  %1617 = landingpad { ptr, i32 }
          cleanup
  br label %1623

1618:                                             ; preds = %1609
  %1619 = landingpad { ptr, i32 }
          cleanup
  br label %1622

1620:                                             ; preds = %1610
  %1621 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #9
  br label %1622

1622:                                             ; preds = %1620, %1618
  %.pn854 = phi { ptr, i32 } [ %1621, %1620 ], [ %1619, %1618 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %179) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %178) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #9
  br label %1623

1623:                                             ; preds = %1622, %1616
  %.pn854.pn = phi { ptr, i32 } [ %.pn854, %1622 ], [ %1617, %1616 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %177) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %177) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %176) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #9
  br label %1624

1624:                                             ; preds = %1623, %1614
  %.pn854.pn.pn = phi { ptr, i32 } [ %.pn854.pn, %1623 ], [ %1615, %1614 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %175) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %175) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %174) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #9
  br label %1625

1625:                                             ; preds = %1624, %1612
  %.pn854.pn.pn.pn = phi { ptr, i32 } [ %.pn854.pn.pn, %1624 ], [ %1613, %1612 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %173) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %172) #9
  br label %1965

1626:                                             ; preds = %1603
  %1627 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi0ELi0EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %180) #9
  store i32 1, ptr %180, align 4, !tbaa !14
  %1628 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %1627, ptr noundef nonnull align 4 dereferenceable(4) %180)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %180) #9
  br i1 %1628, label %1649, label %1629

1629:                                             ; preds = %1626
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %181) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %182) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %182) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef nonnull @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %182)
          to label %1630 unwind label %1635

1630:                                             ; preds = %1629
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %183) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %184) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %184)
          to label %1631 unwind label %1637

1631:                                             ; preds = %1630
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %185) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %186) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %186) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %185, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %186)
          to label %1632 unwind label %1639

1632:                                             ; preds = %1631
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %187) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %188) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %188) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %187, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %188)
          to label %1633 unwind label %1641

1633:                                             ; preds = %1632
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef nonnull align 8 dereferenceable(32) %185, ptr noundef nonnull align 8 dereferenceable(32) %187, i32 noundef 34) #10
          to label %1634 unwind label %1643

1634:                                             ; preds = %1633
  unreachable

1635:                                             ; preds = %1629
  %1636 = landingpad { ptr, i32 }
          cleanup
  br label %1648

1637:                                             ; preds = %1630
  %1638 = landingpad { ptr, i32 }
          cleanup
  br label %1647

1639:                                             ; preds = %1631
  %1640 = landingpad { ptr, i32 }
          cleanup
  br label %1646

1641:                                             ; preds = %1632
  %1642 = landingpad { ptr, i32 }
          cleanup
  br label %1645

1643:                                             ; preds = %1633
  %1644 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #9
  br label %1645

1645:                                             ; preds = %1643, %1641
  %.pn849 = phi { ptr, i32 } [ %1644, %1643 ], [ %1642, %1641 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %188) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %188) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %187) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #9
  br label %1646

1646:                                             ; preds = %1645, %1639
  %.pn849.pn = phi { ptr, i32 } [ %.pn849, %1645 ], [ %1640, %1639 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %186) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %186) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %185) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #9
  br label %1647

1647:                                             ; preds = %1646, %1637
  %.pn849.pn.pn = phi { ptr, i32 } [ %.pn849.pn, %1646 ], [ %1638, %1637 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %184) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %183) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #9
  br label %1648

1648:                                             ; preds = %1647, %1635
  %.pn849.pn.pn.pn = phi { ptr, i32 } [ %.pn849.pn.pn, %1647 ], [ %1636, %1635 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %182) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %182) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %181) #9
  br label %1965

1649:                                             ; preds = %1626
  %1650 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi0ELi1EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %189) #9
  store i32 2, ptr %189, align 4, !tbaa !14
  %1651 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %1650, ptr noundef nonnull align 4 dereferenceable(4) %189)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %189) #9
  br i1 %1651, label %1672, label %1652

1652:                                             ; preds = %1649
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %190) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %191) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %191) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef nonnull @.str.23, ptr noundef nonnull align 1 dereferenceable(1) %191)
          to label %1653 unwind label %1658

1653:                                             ; preds = %1652
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %192) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %193) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %193)
          to label %1654 unwind label %1660

1654:                                             ; preds = %1653
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %194) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %195) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %195) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %194, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %195)
          to label %1655 unwind label %1662

1655:                                             ; preds = %1654
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %196) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %197) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %197)
          to label %1656 unwind label %1664

1656:                                             ; preds = %1655
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef nonnull align 8 dereferenceable(32) %194, ptr noundef nonnull align 8 dereferenceable(32) %196, i32 noundef 34) #10
          to label %1657 unwind label %1666

1657:                                             ; preds = %1656
  unreachable

1658:                                             ; preds = %1652
  %1659 = landingpad { ptr, i32 }
          cleanup
  br label %1671

1660:                                             ; preds = %1653
  %1661 = landingpad { ptr, i32 }
          cleanup
  br label %1670

1662:                                             ; preds = %1654
  %1663 = landingpad { ptr, i32 }
          cleanup
  br label %1669

1664:                                             ; preds = %1655
  %1665 = landingpad { ptr, i32 }
          cleanup
  br label %1668

1666:                                             ; preds = %1656
  %1667 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #9
  br label %1668

1668:                                             ; preds = %1666, %1664
  %.pn844 = phi { ptr, i32 } [ %1667, %1666 ], [ %1665, %1664 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %197) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %196) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #9
  br label %1669

1669:                                             ; preds = %1668, %1662
  %.pn844.pn = phi { ptr, i32 } [ %.pn844, %1668 ], [ %1663, %1662 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %195) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %195) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %194) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #9
  br label %1670

1670:                                             ; preds = %1669, %1660
  %.pn844.pn.pn = phi { ptr, i32 } [ %.pn844.pn, %1669 ], [ %1661, %1660 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %193) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %192) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #9
  br label %1671

1671:                                             ; preds = %1670, %1658
  %.pn844.pn.pn.pn = phi { ptr, i32 } [ %.pn844.pn.pn, %1670 ], [ %1659, %1658 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %191) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %191) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %190) #9
  br label %1965

1672:                                             ; preds = %1649
  %1673 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi0ELi2EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %198) #9
  store i32 3, ptr %198, align 4, !tbaa !14
  %1674 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %1673, ptr noundef nonnull align 4 dereferenceable(4) %198)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %198) #9
  br i1 %1674, label %1695, label %1675

1675:                                             ; preds = %1672
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %199) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %200) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %200) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef nonnull @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %200)
          to label %1676 unwind label %1681

1676:                                             ; preds = %1675
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %201) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %202) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %202) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %201, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %202)
          to label %1677 unwind label %1683

1677:                                             ; preds = %1676
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %203) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %204) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %204)
          to label %1678 unwind label %1685

1678:                                             ; preds = %1677
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %205) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %206) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %206)
          to label %1679 unwind label %1687

1679:                                             ; preds = %1678
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef nonnull align 8 dereferenceable(32) %201, ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef nonnull align 8 dereferenceable(32) %205, i32 noundef 34) #10
          to label %1680 unwind label %1689

1680:                                             ; preds = %1679
  unreachable

1681:                                             ; preds = %1675
  %1682 = landingpad { ptr, i32 }
          cleanup
  br label %1694

1683:                                             ; preds = %1676
  %1684 = landingpad { ptr, i32 }
          cleanup
  br label %1693

1685:                                             ; preds = %1677
  %1686 = landingpad { ptr, i32 }
          cleanup
  br label %1692

1687:                                             ; preds = %1678
  %1688 = landingpad { ptr, i32 }
          cleanup
  br label %1691

1689:                                             ; preds = %1679
  %1690 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #9
  br label %1691

1691:                                             ; preds = %1689, %1687
  %.pn839 = phi { ptr, i32 } [ %1690, %1689 ], [ %1688, %1687 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %206) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %205) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #9
  br label %1692

1692:                                             ; preds = %1691, %1685
  %.pn839.pn = phi { ptr, i32 } [ %.pn839, %1691 ], [ %1686, %1685 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %204) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %203) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #9
  br label %1693

1693:                                             ; preds = %1692, %1683
  %.pn839.pn.pn = phi { ptr, i32 } [ %.pn839.pn, %1692 ], [ %1684, %1683 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %202) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %202) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %201) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #9
  br label %1694

1694:                                             ; preds = %1693, %1681
  %.pn839.pn.pn.pn = phi { ptr, i32 } [ %.pn839.pn.pn, %1693 ], [ %1682, %1681 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %200) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %200) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %199) #9
  br label %1965

1695:                                             ; preds = %1672
  %1696 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi1ELi0EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %207) #9
  store i32 4, ptr %207, align 4, !tbaa !14
  %1697 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %1696, ptr noundef nonnull align 4 dereferenceable(4) %207)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %207) #9
  br i1 %1697, label %1718, label %1698

1698:                                             ; preds = %1695
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %208) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %209) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %209)
          to label %1699 unwind label %1704

1699:                                             ; preds = %1698
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %210) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %211) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #9
  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 %1700 unwind label %1706

1700:                                             ; preds = %1699
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %212) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %213) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #9
  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 %1701 unwind label %1708

1701:                                             ; preds = %1700
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %214) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %215) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %214, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %215)
          to label %1702 unwind label %1710

1702:                                             ; preds = %1701
  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 35) #10
          to label %1703 unwind label %1712

1703:                                             ; preds = %1702
  unreachable

1704:                                             ; preds = %1698
  %1705 = landingpad { ptr, i32 }
          cleanup
  br label %1717

1706:                                             ; preds = %1699
  %1707 = landingpad { ptr, i32 }
          cleanup
  br label %1716

1708:                                             ; preds = %1700
  %1709 = landingpad { ptr, i32 }
          cleanup
  br label %1715

1710:                                             ; preds = %1701
  %1711 = landingpad { ptr, i32 }
          cleanup
  br label %1714

1712:                                             ; preds = %1702
  %1713 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #9
  br label %1714

1714:                                             ; preds = %1712, %1710
  %.pn834 = phi { ptr, i32 } [ %1713, %1712 ], [ %1711, %1710 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %215) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %214) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #9
  br label %1715

1715:                                             ; preds = %1714, %1708
  %.pn834.pn = phi { ptr, i32 } [ %.pn834, %1714 ], [ %1709, %1708 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %213) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %212) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #9
  br label %1716

1716:                                             ; preds = %1715, %1706
  %.pn834.pn.pn = phi { ptr, i32 } [ %.pn834.pn, %1715 ], [ %1707, %1706 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %211) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %210) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #9
  br label %1717

1717:                                             ; preds = %1716, %1704
  %.pn834.pn.pn.pn = phi { ptr, i32 } [ %.pn834.pn.pn, %1716 ], [ %1705, %1704 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %209) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %208) #9
  br label %1965

1718:                                             ; preds = %1695
  %1719 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi1ELi1EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %216) #9
  store i32 5, ptr %216, align 4, !tbaa !14
  %1720 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %1719, ptr noundef nonnull align 4 dereferenceable(4) %216)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %216) #9
  br i1 %1720, label %1741, label %1721

1721:                                             ; preds = %1718
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %217) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %218) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %218) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %217, ptr noundef nonnull @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %218)
          to label %1722 unwind label %1727

1722:                                             ; preds = %1721
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %219) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %220) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %219, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %220)
          to label %1723 unwind label %1729

1723:                                             ; preds = %1722
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %221) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %222) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %222) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %221, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %222)
          to label %1724 unwind label %1731

1724:                                             ; preds = %1723
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %223) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %224) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %224) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %223, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %224)
          to label %1725 unwind label %1733

1725:                                             ; preds = %1724
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %217, ptr noundef nonnull align 8 dereferenceable(32) %219, ptr noundef nonnull align 8 dereferenceable(32) %221, ptr noundef nonnull align 8 dereferenceable(32) %223, i32 noundef 35) #10
          to label %1726 unwind label %1735

1726:                                             ; preds = %1725
  unreachable

1727:                                             ; preds = %1721
  %1728 = landingpad { ptr, i32 }
          cleanup
  br label %1740

1729:                                             ; preds = %1722
  %1730 = landingpad { ptr, i32 }
          cleanup
  br label %1739

1731:                                             ; preds = %1723
  %1732 = landingpad { ptr, i32 }
          cleanup
  br label %1738

1733:                                             ; preds = %1724
  %1734 = landingpad { ptr, i32 }
          cleanup
  br label %1737

1735:                                             ; preds = %1725
  %1736 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %223) #9
  br label %1737

1737:                                             ; preds = %1735, %1733
  %.pn829 = phi { ptr, i32 } [ %1736, %1735 ], [ %1734, %1733 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %224) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %224) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %223) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #9
  br label %1738

1738:                                             ; preds = %1737, %1731
  %.pn829.pn = phi { ptr, i32 } [ %.pn829, %1737 ], [ %1732, %1731 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %222) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %222) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %221) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #9
  br label %1739

1739:                                             ; preds = %1738, %1729
  %.pn829.pn.pn = phi { ptr, i32 } [ %.pn829.pn, %1738 ], [ %1730, %1729 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %220) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %219) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #9
  br label %1740

1740:                                             ; preds = %1739, %1727
  %.pn829.pn.pn.pn = phi { ptr, i32 } [ %.pn829.pn.pn, %1739 ], [ %1728, %1727 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %218) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %218) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %217) #9
  br label %1965

1741:                                             ; preds = %1718
  %1742 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi1ELi2EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %225) #9
  store i32 6, ptr %225, align 4, !tbaa !14
  %1743 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %1742, ptr noundef nonnull align 4 dereferenceable(4) %225)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %225) #9
  br i1 %1743, label %1764, label %1744

1744:                                             ; preds = %1741
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %226) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %227) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %227) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %226, ptr noundef nonnull @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %227)
          to label %1745 unwind label %1750

1745:                                             ; preds = %1744
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %228) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %229) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %229) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %228, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %229)
          to label %1746 unwind label %1752

1746:                                             ; preds = %1745
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %230) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %231) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %230, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %231)
          to label %1747 unwind label %1754

1747:                                             ; preds = %1746
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %232) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %233) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %233) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %232, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %233)
          to label %1748 unwind label %1756

1748:                                             ; preds = %1747
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %226, ptr noundef nonnull align 8 dereferenceable(32) %228, ptr noundef nonnull align 8 dereferenceable(32) %230, ptr noundef nonnull align 8 dereferenceable(32) %232, i32 noundef 35) #10
          to label %1749 unwind label %1758

1749:                                             ; preds = %1748
  unreachable

1750:                                             ; preds = %1744
  %1751 = landingpad { ptr, i32 }
          cleanup
  br label %1763

1752:                                             ; preds = %1745
  %1753 = landingpad { ptr, i32 }
          cleanup
  br label %1762

1754:                                             ; preds = %1746
  %1755 = landingpad { ptr, i32 }
          cleanup
  br label %1761

1756:                                             ; preds = %1747
  %1757 = landingpad { ptr, i32 }
          cleanup
  br label %1760

1758:                                             ; preds = %1748
  %1759 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #9
  br label %1760

1760:                                             ; preds = %1758, %1756
  %.pn824 = phi { ptr, i32 } [ %1759, %1758 ], [ %1757, %1756 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %233) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %233) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %232) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #9
  br label %1761

1761:                                             ; preds = %1760, %1754
  %.pn824.pn = phi { ptr, i32 } [ %.pn824, %1760 ], [ %1755, %1754 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %231) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %230) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #9
  br label %1762

1762:                                             ; preds = %1761, %1752
  %.pn824.pn.pn = phi { ptr, i32 } [ %.pn824.pn, %1761 ], [ %1753, %1752 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %229) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %229) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %228) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #9
  br label %1763

1763:                                             ; preds = %1762, %1750
  %.pn824.pn.pn.pn = phi { ptr, i32 } [ %.pn824.pn.pn, %1762 ], [ %1751, %1750 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %227) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %227) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %226) #9
  br label %1965

1764:                                             ; preds = %1741
  %1765 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi0EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %234) #9
  store i32 1, ptr %234, align 4, !tbaa !14
  %1766 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %1765, ptr noundef nonnull align 4 dereferenceable(4) %234)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %234) #9
  br i1 %1766, label %1787, label %1767

1767:                                             ; preds = %1764
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %235) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %236) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %236) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %235, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %236)
          to label %1768 unwind label %1773

1768:                                             ; preds = %1767
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %237) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %238) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %238) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %237, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %238)
          to label %1769 unwind label %1775

1769:                                             ; preds = %1768
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %239) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %240) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %240) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %239, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %240)
          to label %1770 unwind label %1777

1770:                                             ; preds = %1769
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %241) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %242) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %242) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %241, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %242)
          to label %1771 unwind label %1779

1771:                                             ; preds = %1770
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %235, ptr noundef nonnull align 8 dereferenceable(32) %237, ptr noundef nonnull align 8 dereferenceable(32) %239, ptr noundef nonnull align 8 dereferenceable(32) %241, i32 noundef 37) #10
          to label %1772 unwind label %1781

1772:                                             ; preds = %1771
  unreachable

1773:                                             ; preds = %1767
  %1774 = landingpad { ptr, i32 }
          cleanup
  br label %1786

1775:                                             ; preds = %1768
  %1776 = landingpad { ptr, i32 }
          cleanup
  br label %1785

1777:                                             ; preds = %1769
  %1778 = landingpad { ptr, i32 }
          cleanup
  br label %1784

1779:                                             ; preds = %1770
  %1780 = landingpad { ptr, i32 }
          cleanup
  br label %1783

1781:                                             ; preds = %1771
  %1782 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #9
  br label %1783

1783:                                             ; preds = %1781, %1779
  %.pn819 = phi { ptr, i32 } [ %1782, %1781 ], [ %1780, %1779 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %242) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %242) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %241) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %239) #9
  br label %1784

1784:                                             ; preds = %1783, %1777
  %.pn819.pn = phi { ptr, i32 } [ %.pn819, %1783 ], [ %1778, %1777 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %240) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %240) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %239) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #9
  br label %1785

1785:                                             ; preds = %1784, %1775
  %.pn819.pn.pn = phi { ptr, i32 } [ %.pn819.pn, %1784 ], [ %1776, %1775 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %238) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %238) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %237) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #9
  br label %1786

1786:                                             ; preds = %1785, %1773
  %.pn819.pn.pn.pn = phi { ptr, i32 } [ %.pn819.pn.pn, %1785 ], [ %1774, %1773 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %236) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %236) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %235) #9
  br label %1965

1787:                                             ; preds = %1764
  %1788 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi1EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %243) #9
  store i32 2, ptr %243, align 4, !tbaa !14
  %1789 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %1788, ptr noundef nonnull align 4 dereferenceable(4) %243)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %243) #9
  br i1 %1789, label %1810, label %1790

1790:                                             ; preds = %1787
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %244) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %245) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %245) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %244, ptr noundef nonnull @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %245)
          to label %1791 unwind label %1796

1791:                                             ; preds = %1790
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %246) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %247) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %246, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %247)
          to label %1792 unwind label %1798

1792:                                             ; preds = %1791
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %248) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %249) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %249) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %248, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %249)
          to label %1793 unwind label %1800

1793:                                             ; preds = %1792
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %250) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %251) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %251) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %250, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %251)
          to label %1794 unwind label %1802

1794:                                             ; preds = %1793
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %244, ptr noundef nonnull align 8 dereferenceable(32) %246, ptr noundef nonnull align 8 dereferenceable(32) %248, ptr noundef nonnull align 8 dereferenceable(32) %250, i32 noundef 37) #10
          to label %1795 unwind label %1804

1795:                                             ; preds = %1794
  unreachable

1796:                                             ; preds = %1790
  %1797 = landingpad { ptr, i32 }
          cleanup
  br label %1809

1798:                                             ; preds = %1791
  %1799 = landingpad { ptr, i32 }
          cleanup
  br label %1808

1800:                                             ; preds = %1792
  %1801 = landingpad { ptr, i32 }
          cleanup
  br label %1807

1802:                                             ; preds = %1793
  %1803 = landingpad { ptr, i32 }
          cleanup
  br label %1806

1804:                                             ; preds = %1794
  %1805 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #9
  br label %1806

1806:                                             ; preds = %1804, %1802
  %.pn814 = phi { ptr, i32 } [ %1805, %1804 ], [ %1803, %1802 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %251) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %251) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %250) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #9
  br label %1807

1807:                                             ; preds = %1806, %1800
  %.pn814.pn = phi { ptr, i32 } [ %.pn814, %1806 ], [ %1801, %1800 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %249) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %249) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %248) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #9
  br label %1808

1808:                                             ; preds = %1807, %1798
  %.pn814.pn.pn = phi { ptr, i32 } [ %.pn814.pn, %1807 ], [ %1799, %1798 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %247) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %246) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %244) #9
  br label %1809

1809:                                             ; preds = %1808, %1796
  %.pn814.pn.pn.pn = phi { ptr, i32 } [ %.pn814.pn.pn, %1808 ], [ %1797, %1796 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %245) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %245) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %244) #9
  br label %1965

1810:                                             ; preds = %1787
  %1811 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi2EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %252) #9
  store i32 3, ptr %252, align 4, !tbaa !14
  %1812 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %1811, ptr noundef nonnull align 4 dereferenceable(4) %252)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %252) #9
  br i1 %1812, label %1833, label %1813

1813:                                             ; preds = %1810
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %253) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %254) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %254) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %253, ptr noundef nonnull @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %254)
          to label %1814 unwind label %1819

1814:                                             ; preds = %1813
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %255) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %256) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %256) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %255, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %256)
          to label %1815 unwind label %1821

1815:                                             ; preds = %1814
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %257) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %258) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %258) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %257, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %258)
          to label %1816 unwind label %1823

1816:                                             ; preds = %1815
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %259) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %260) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %260)
          to label %1817 unwind label %1825

1817:                                             ; preds = %1816
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %253, ptr noundef nonnull align 8 dereferenceable(32) %255, ptr noundef nonnull align 8 dereferenceable(32) %257, ptr noundef nonnull align 8 dereferenceable(32) %259, i32 noundef 37) #10
          to label %1818 unwind label %1827

1818:                                             ; preds = %1817
  unreachable

1819:                                             ; preds = %1813
  %1820 = landingpad { ptr, i32 }
          cleanup
  br label %1832

1821:                                             ; preds = %1814
  %1822 = landingpad { ptr, i32 }
          cleanup
  br label %1831

1823:                                             ; preds = %1815
  %1824 = landingpad { ptr, i32 }
          cleanup
  br label %1830

1825:                                             ; preds = %1816
  %1826 = landingpad { ptr, i32 }
          cleanup
  br label %1829

1827:                                             ; preds = %1817
  %1828 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %259) #9
  br label %1829

1829:                                             ; preds = %1827, %1825
  %.pn809 = phi { ptr, i32 } [ %1828, %1827 ], [ %1826, %1825 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %260) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %259) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %257) #9
  br label %1830

1830:                                             ; preds = %1829, %1823
  %.pn809.pn = phi { ptr, i32 } [ %.pn809, %1829 ], [ %1824, %1823 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %258) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %258) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %257) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #9
  br label %1831

1831:                                             ; preds = %1830, %1821
  %.pn809.pn.pn = phi { ptr, i32 } [ %.pn809.pn, %1830 ], [ %1822, %1821 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %256) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %256) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %255) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #9
  br label %1832

1832:                                             ; preds = %1831, %1819
  %.pn809.pn.pn.pn = phi { ptr, i32 } [ %.pn809.pn.pn, %1831 ], [ %1820, %1819 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %254) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %254) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %253) #9
  br label %1965

1833:                                             ; preds = %1810
  %1834 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi3EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %261) #9
  store i32 4, ptr %261, align 4, !tbaa !14
  %1835 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %1834, ptr noundef nonnull align 4 dereferenceable(4) %261)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %261) #9
  br i1 %1835, label %1856, label %1836

1836:                                             ; preds = %1833
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %262) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %263) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %263) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %262, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %263)
          to label %1837 unwind label %1842

1837:                                             ; preds = %1836
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %264) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %265) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %265) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %264, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %265)
          to label %1838 unwind label %1844

1838:                                             ; preds = %1837
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %266) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %267) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %267) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %266, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %267)
          to label %1839 unwind label %1846

1839:                                             ; preds = %1838
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %268) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %269) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %269) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %268, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %269)
          to label %1840 unwind label %1848

1840:                                             ; preds = %1839
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %262, ptr noundef nonnull align 8 dereferenceable(32) %264, ptr noundef nonnull align 8 dereferenceable(32) %266, ptr noundef nonnull align 8 dereferenceable(32) %268, i32 noundef 38) #10
          to label %1841 unwind label %1850

1841:                                             ; preds = %1840
  unreachable

1842:                                             ; preds = %1836
  %1843 = landingpad { ptr, i32 }
          cleanup
  br label %1855

1844:                                             ; preds = %1837
  %1845 = landingpad { ptr, i32 }
          cleanup
  br label %1854

1846:                                             ; preds = %1838
  %1847 = landingpad { ptr, i32 }
          cleanup
  br label %1853

1848:                                             ; preds = %1839
  %1849 = landingpad { ptr, i32 }
          cleanup
  br label %1852

1850:                                             ; preds = %1840
  %1851 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %268) #9
  br label %1852

1852:                                             ; preds = %1850, %1848
  %.pn804 = phi { ptr, i32 } [ %1851, %1850 ], [ %1849, %1848 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %269) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %269) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %268) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %266) #9
  br label %1853

1853:                                             ; preds = %1852, %1846
  %.pn804.pn = phi { ptr, i32 } [ %.pn804, %1852 ], [ %1847, %1846 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %267) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %267) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %266) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %264) #9
  br label %1854

1854:                                             ; preds = %1853, %1844
  %.pn804.pn.pn = phi { ptr, i32 } [ %.pn804.pn, %1853 ], [ %1845, %1844 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %265) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %265) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %264) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %262) #9
  br label %1855

1855:                                             ; preds = %1854, %1842
  %.pn804.pn.pn.pn = phi { ptr, i32 } [ %.pn804.pn.pn, %1854 ], [ %1843, %1842 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %263) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %263) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %262) #9
  br label %1965

1856:                                             ; preds = %1833
  %1857 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi4EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %270) #9
  store i32 5, ptr %270, align 4, !tbaa !14
  %1858 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %1857, ptr noundef nonnull align 4 dereferenceable(4) %270)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %270) #9
  br i1 %1858, label %1879, label %1859

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

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

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

1862:                                             ; preds = %1861
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %277) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %278) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %278) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %277, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %278)
          to label %1863 unwind label %1871

1863:                                             ; preds = %1862
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %271, ptr noundef nonnull align 8 dereferenceable(32) %273, ptr noundef nonnull align 8 dereferenceable(32) %275, ptr noundef nonnull align 8 dereferenceable(32) %277, i32 noundef 38) #10
          to label %1864 unwind label %1873

1864:                                             ; preds = %1863
  unreachable

1865:                                             ; preds = %1859
  %1866 = landingpad { ptr, i32 }
          cleanup
  br label %1878

1867:                                             ; preds = %1860
  %1868 = landingpad { ptr, i32 }
          cleanup
  br label %1877

1869:                                             ; preds = %1861
  %1870 = landingpad { ptr, i32 }
          cleanup
  br label %1876

1871:                                             ; preds = %1862
  %1872 = landingpad { ptr, i32 }
          cleanup
  br label %1875

1873:                                             ; preds = %1863
  %1874 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #9
  br label %1875

1875:                                             ; preds = %1873, %1871
  %.pn799 = phi { ptr, i32 } [ %1874, %1873 ], [ %1872, %1871 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %278) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %278) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %277) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #9
  br label %1876

1876:                                             ; preds = %1875, %1869
  %.pn799.pn = phi { ptr, i32 } [ %.pn799, %1875 ], [ %1870, %1869 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %276) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %276) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %275) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %273) #9
  br label %1877

1877:                                             ; preds = %1876, %1867
  %.pn799.pn.pn = phi { ptr, i32 } [ %.pn799.pn, %1876 ], [ %1868, %1867 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %274) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %274) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %273) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %271) #9
  br label %1878

1878:                                             ; preds = %1877, %1865
  %.pn799.pn.pn.pn = phi { ptr, i32 } [ %.pn799.pn.pn, %1877 ], [ %1866, %1865 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %272) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %272) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %271) #9
  br label %1965

1879:                                             ; preds = %1856
  %1880 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi5EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %279) #9
  store i32 6, ptr %279, align 4, !tbaa !14
  %1881 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4) %1880, ptr noundef nonnull align 4 dereferenceable(4) %279)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %279) #9
  br i1 %1881, label %1902, label %1882

1882:                                             ; preds = %1879
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %280) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %281) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %281) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %280, ptr noundef nonnull @.str.33, ptr noundef nonnull align 1 dereferenceable(1) %281)
          to label %1883 unwind label %1888

1883:                                             ; preds = %1882
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %282) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %283) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %283) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %282, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %283)
          to label %1884 unwind label %1890

1884:                                             ; preds = %1883
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %284) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %285) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %285) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %285)
          to label %1885 unwind label %1892

1885:                                             ; preds = %1884
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %286) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %287) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %287) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %286, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %287)
          to label %1886 unwind label %1894

1886:                                             ; preds = %1885
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %280, ptr noundef nonnull align 8 dereferenceable(32) %282, ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef nonnull align 8 dereferenceable(32) %286, i32 noundef 38) #10
          to label %1887 unwind label %1896

1887:                                             ; preds = %1886
  unreachable

1888:                                             ; preds = %1882
  %1889 = landingpad { ptr, i32 }
          cleanup
  br label %1901

1890:                                             ; preds = %1883
  %1891 = landingpad { ptr, i32 }
          cleanup
  br label %1900

1892:                                             ; preds = %1884
  %1893 = landingpad { ptr, i32 }
          cleanup
  br label %1899

1894:                                             ; preds = %1885
  %1895 = landingpad { ptr, i32 }
          cleanup
  br label %1898

1896:                                             ; preds = %1886
  %1897 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %286) #9
  br label %1898

1898:                                             ; preds = %1896, %1894
  %.pn794 = phi { ptr, i32 } [ %1897, %1896 ], [ %1895, %1894 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %287) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %287) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %286) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #9
  br label %1899

1899:                                             ; preds = %1898, %1892
  %.pn794.pn = phi { ptr, i32 } [ %.pn794, %1898 ], [ %1893, %1892 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %285) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %285) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %284) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %282) #9
  br label %1900

1900:                                             ; preds = %1899, %1890
  %.pn794.pn.pn = phi { ptr, i32 } [ %.pn794.pn, %1899 ], [ %1891, %1890 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %283) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %283) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %282) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %280) #9
  br label %1901

1901:                                             ; preds = %1900, %1888
  %.pn794.pn.pn.pn = phi { ptr, i32 } [ %.pn794.pn.pn, %1900 ], [ %1889, %1888 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %281) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %281) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %280) #9
  br label %1965

1902:                                             ; preds = %1879
  %1903 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp3getILi0EiLi2ELi3EEERNS_14numarray_stackIT0_XT2_EEERNS_12matrix_stackIS2_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %288) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %289) #9
  store i32 1, ptr %289, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %290) #9
  store i32 2, ptr %290, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %291) #9
  store i32 3, ptr %291, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIiLi3EEC2ERKiS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %288, ptr noundef nonnull align 4 dereferenceable(4) %289, ptr noundef nonnull align 4 dereferenceable(4) %290, ptr noundef nonnull align 4 dereferenceable(4) %291)
  %1904 = call noundef zeroext i1 @_ZN3cgp8is_equalIiLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %1903, ptr noundef nonnull align 4 dereferenceable(12) %288)
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %292) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %293) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %294) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %295) #9
  br i1 %1904, label %1905, label %.critedge959

1905:                                             ; preds = %1902
  %1906 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp3getILi1EiLi2ELi3EEERNS_14numarray_stackIT0_XT2_EEERNS_12matrix_stackIS2_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %1)
  store i32 4, ptr %293, align 4, !tbaa !14
  store i32 5, ptr %294, align 4, !tbaa !14
  store i32 6, ptr %295, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIiLi3EEC2ERKiS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %292, ptr noundef nonnull align 4 dereferenceable(4) %293, ptr noundef nonnull align 4 dereferenceable(4) %294, ptr noundef nonnull align 4 dereferenceable(4) %295)
  %1907 = call noundef zeroext i1 @_ZN3cgp8is_equalIiLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %1906, ptr noundef nonnull align 4 dereferenceable(12) %292)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %295) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %294) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %293) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %292) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %291) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %290) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %289) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %288) #9
  br i1 %1907, label %1928, label %1908

.critedge959:                                     ; preds = %1902
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %295) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %294) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %293) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %292) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %291) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %290) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %289) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %288) #9
  br label %1908

1908:                                             ; preds = %.critedge959, %1905
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %296) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %297) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %297) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %296, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %297)
          to label %1909 unwind label %1914

1909:                                             ; preds = %1908
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %298) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %299) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %299) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %298, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %299)
          to label %1910 unwind label %1916

1910:                                             ; preds = %1909
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %300) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %301) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %301) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %300, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %301)
          to label %1911 unwind label %1918

1911:                                             ; preds = %1910
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %302) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %303) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %303) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %302, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %303)
          to label %1912 unwind label %1920

1912:                                             ; preds = %1911
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %296, ptr noundef nonnull align 8 dereferenceable(32) %298, ptr noundef nonnull align 8 dereferenceable(32) %300, ptr noundef nonnull align 8 dereferenceable(32) %302, i32 noundef 40) #10
          to label %1913 unwind label %1922

1913:                                             ; preds = %1912
  unreachable

1914:                                             ; preds = %1908
  %1915 = landingpad { ptr, i32 }
          cleanup
  br label %1927

1916:                                             ; preds = %1909
  %1917 = landingpad { ptr, i32 }
          cleanup
  br label %1926

1918:                                             ; preds = %1910
  %1919 = landingpad { ptr, i32 }
          cleanup
  br label %1925

1920:                                             ; preds = %1911
  %1921 = landingpad { ptr, i32 }
          cleanup
  br label %1924

1922:                                             ; preds = %1912
  %1923 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %302) #9
  br label %1924

1924:                                             ; preds = %1922, %1920
  %.pn789 = phi { ptr, i32 } [ %1923, %1922 ], [ %1921, %1920 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %303) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %303) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %302) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %300) #9
  br label %1925

1925:                                             ; preds = %1924, %1918
  %.pn789.pn = phi { ptr, i32 } [ %.pn789, %1924 ], [ %1919, %1918 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %301) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %301) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %300) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %298) #9
  br label %1926

1926:                                             ; preds = %1925, %1916
  %.pn789.pn.pn = phi { ptr, i32 } [ %.pn789.pn, %1925 ], [ %1917, %1916 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %299) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %299) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %298) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #9
  br label %1927

1927:                                             ; preds = %1926, %1914
  %.pn789.pn.pn.pn = phi { ptr, i32 } [ %.pn789.pn.pn, %1926 ], [ %1915, %1914 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %297) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %297) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %296) #9
  br label %1965

1928:                                             ; preds = %1905
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %304) #9
  call void @_ZN3cgp8type_strIiLi2ELi3EEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_12matrix_stackIT_XT0_EXT1_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %304, ptr noundef nonnull align 4 dereferenceable(24) %1)
  %1929 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %304, ptr noundef nonnull @.str.35)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %304) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %304) #9
  br i1 %1929, label %1950, label %1930

1930:                                             ; preds = %1928
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %305) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %306) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %306) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %305, ptr noundef nonnull @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %306)
          to label %1931 unwind label %1936

1931:                                             ; preds = %1930
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %307) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %308) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %308) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %307, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %308)
          to label %1932 unwind label %1938

1932:                                             ; preds = %1931
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %309) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %310) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %310) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %309, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %310)
          to label %1933 unwind label %1940

1933:                                             ; preds = %1932
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %311) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %312) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %312) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %311, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %312)
          to label %1934 unwind label %1942

1934:                                             ; preds = %1933
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %305, ptr noundef nonnull align 8 dereferenceable(32) %307, ptr noundef nonnull align 8 dereferenceable(32) %309, ptr noundef nonnull align 8 dereferenceable(32) %311, i32 noundef 42) #10
          to label %1935 unwind label %1944

1935:                                             ; preds = %1934
  unreachable

1936:                                             ; preds = %1930
  %1937 = landingpad { ptr, i32 }
          cleanup
  br label %1949

1938:                                             ; preds = %1931
  %1939 = landingpad { ptr, i32 }
          cleanup
  br label %1948

1940:                                             ; preds = %1932
  %1941 = landingpad { ptr, i32 }
          cleanup
  br label %1947

1942:                                             ; preds = %1933
  %1943 = landingpad { ptr, i32 }
          cleanup
  br label %1946

1944:                                             ; preds = %1934
  %1945 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %311) #9
  br label %1946

1946:                                             ; preds = %1944, %1942
  %.pn784 = phi { ptr, i32 } [ %1945, %1944 ], [ %1943, %1942 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %312) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %312) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %311) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %309) #9
  br label %1947

1947:                                             ; preds = %1946, %1940
  %.pn784.pn = phi { ptr, i32 } [ %.pn784, %1946 ], [ %1941, %1940 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %310) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %310) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %309) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #9
  br label %1948

1948:                                             ; preds = %1947, %1938
  %.pn784.pn.pn = phi { ptr, i32 } [ %.pn784.pn, %1947 ], [ %1939, %1938 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %308) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %308) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %307) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %305) #9
  br label %1949

1949:                                             ; preds = %1948, %1936
  %.pn784.pn.pn.pn = phi { ptr, i32 } [ %.pn784.pn.pn, %1948 ], [ %1937, %1936 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %306) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %306) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %305) #9
  br label %1965

1950:                                             ; preds = %1928
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %313) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %314) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %315) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %315, ptr noundef nonnull align 4 dereferenceable(24) @constinit.37, i64 24, i1 false), !tbaa.struct !5
  store ptr %315, ptr %314, align 8, !tbaa !9
  %1951 = getelementptr inbounds i8, ptr %314, i64 8
  store i64 6, ptr %1951, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %313, ptr noundef nonnull align 8 dereferenceable(16) %314)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %315) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %314) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %316) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %317) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %318) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %318, ptr noundef nonnull align 4 dereferenceable(24) @constinit.38, i64 24, i1 false), !tbaa.struct !5
  store ptr %318, ptr %317, align 8, !tbaa !9
  %1952 = getelementptr inbounds i8, ptr %317, i64 8
  store i64 6, ptr %1952, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi3ELi2EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %316, ptr noundef nonnull align 8 dereferenceable(16) %317)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %318) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %317) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %319) #9
  %1953 = call { i64, i64 } @_ZN3cgpmlIiLi2ELi3ELi2EEENS_12matrix_stackIT_XT0_EXT2_EEERKNS1_IS2_XT0_EXT1_EEERKNS1_IS2_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24) %313, ptr noundef nonnull align 4 dereferenceable(24) %316)
  %1954 = extractvalue { i64, i64 } %1953, 0
  store i64 %1954, ptr %319, align 8
  %1955 = getelementptr inbounds i8, ptr %319, i64 8
  %1956 = extractvalue { i64, i64 } %1953, 1
  store i64 %1956, ptr %1955, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %320) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %321) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %322) #9
  store <4 x i32> <i32 7, i32 21, i32 28, i32 48>, ptr %322, align 16, !tbaa !14
  store ptr %322, ptr %321, align 8, !tbaa !9
  %1957 = getelementptr inbounds i8, ptr %321, i64 8
  store i64 4, ptr %1957, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi2EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(16) %320, ptr noundef nonnull align 8 dereferenceable(16) %321)
  %1958 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %319, ptr noundef nonnull align 4 dereferenceable(16) %320)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %322) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %321) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %320) #9
  br i1 %1958, label %1980, label %1959

1959:                                             ; preds = %1950
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %323) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %324) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %324) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %323, ptr noundef nonnull @.str.39, ptr noundef nonnull align 1 dereferenceable(1) %324)
          to label %1960 unwind label %1966

1960:                                             ; preds = %1959
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %325) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %326) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %326) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %325, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %326)
          to label %1961 unwind label %1968

1961:                                             ; preds = %1960
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %327) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %328) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %328) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %327, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %328)
          to label %1962 unwind label %1970

1962:                                             ; preds = %1961
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %329) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %330) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %329, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %330)
          to label %1963 unwind label %1972

1963:                                             ; preds = %1962
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %323, ptr noundef nonnull align 8 dereferenceable(32) %325, ptr noundef nonnull align 8 dereferenceable(32) %327, ptr noundef nonnull align 8 dereferenceable(32) %329, i32 noundef 51) #10
          to label %1964 unwind label %1974

1964:                                             ; preds = %1963
  unreachable

1965:                                             ; preds = %1949, %1927, %1901, %1878, %1855, %1832, %1809, %1786, %1763, %1740, %1717, %1694, %1671, %1648, %1625, %1599, %1573, %1549, %1525, %1501, %1477, %1453, %1429, %1405, %1381, %1357, %1333, %1309, %1285, %1262, %1239, %1216, %1193, %1170
  %.pn949.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn949.pn.pn.pn, %1170 ], [ %.pn944.pn.pn.pn, %1193 ], [ %.pn939.pn.pn.pn, %1216 ], [ %.pn934.pn.pn.pn, %1239 ], [ %.pn929.pn.pn.pn, %1262 ], [ %.pn924.pn.pn.pn, %1285 ], [ %.pn919.pn.pn.pn, %1309 ], [ %.pn914.pn.pn.pn, %1333 ], [ %.pn909.pn.pn.pn, %1357 ], [ %.pn904.pn.pn.pn, %1381 ], [ %.pn899.pn.pn.pn, %1405 ], [ %.pn894.pn.pn.pn, %1429 ], [ %.pn889.pn.pn.pn, %1453 ], [ %.pn884.pn.pn.pn, %1477 ], [ %.pn879.pn.pn.pn, %1501 ], [ %.pn874.pn.pn.pn, %1525 ], [ %.pn869.pn.pn.pn, %1549 ], [ %.pn864.pn.pn.pn, %1573 ], [ %.pn859.pn.pn.pn, %1599 ], [ %.pn854.pn.pn.pn, %1625 ], [ %.pn849.pn.pn.pn, %1648 ], [ %.pn844.pn.pn.pn, %1671 ], [ %.pn839.pn.pn.pn, %1694 ], [ %.pn834.pn.pn.pn, %1717 ], [ %.pn829.pn.pn.pn, %1740 ], [ %.pn824.pn.pn.pn, %1763 ], [ %.pn819.pn.pn.pn, %1786 ], [ %.pn814.pn.pn.pn, %1809 ], [ %.pn809.pn.pn.pn, %1832 ], [ %.pn804.pn.pn.pn, %1855 ], [ %.pn799.pn.pn.pn, %1878 ], [ %.pn794.pn.pn.pn, %1901 ], [ %.pn789.pn.pn.pn, %1927 ], [ %.pn784.pn.pn.pn, %1949 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1) #9
  br label %3346

1966:                                             ; preds = %1959
  %1967 = landingpad { ptr, i32 }
          cleanup
  br label %1979

1968:                                             ; preds = %1960
  %1969 = landingpad { ptr, i32 }
          cleanup
  br label %1978

1970:                                             ; preds = %1961
  %1971 = landingpad { ptr, i32 }
          cleanup
  br label %1977

1972:                                             ; preds = %1962
  %1973 = landingpad { ptr, i32 }
          cleanup
  br label %1976

1974:                                             ; preds = %1963
  %1975 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #9
  br label %1976

1976:                                             ; preds = %1974, %1972
  %.pn779 = phi { ptr, i32 } [ %1975, %1974 ], [ %1973, %1972 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %330) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %329) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %327) #9
  br label %1977

1977:                                             ; preds = %1976, %1970
  %.pn779.pn = phi { ptr, i32 } [ %.pn779, %1976 ], [ %1971, %1970 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %328) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %328) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %327) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %325) #9
  br label %1978

1978:                                             ; preds = %1977, %1968
  %.pn779.pn.pn = phi { ptr, i32 } [ %.pn779.pn, %1977 ], [ %1969, %1968 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %326) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %326) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %325) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #9
  br label %1979

1979:                                             ; preds = %1978, %1966
  %.pn779.pn.pn.pn = phi { ptr, i32 } [ %.pn779.pn.pn, %1978 ], [ %1967, %1966 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %324) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %324) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %323) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %319) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %316) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %313) #9
  br label %3346

1980:                                             ; preds = %1950
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %319) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %316) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %313) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %331) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %332) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %333) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %333, ptr noundef nonnull align 4 dereferenceable(24) @constinit.40, i64 24, i1 false), !tbaa.struct !5
  store ptr %333, ptr %332, align 8, !tbaa !9
  %1981 = getelementptr inbounds i8, ptr %332, i64 8
  store i64 6, ptr %1981, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %331, ptr noundef nonnull align 8 dereferenceable(16) %332)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %333) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %332) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %334) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %335) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %336) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %336, ptr noundef nonnull align 4 dereferenceable(24) @constinit.41, i64 24, i1 false), !tbaa.struct !5
  store ptr %336, ptr %335, align 8, !tbaa !9
  %1982 = getelementptr inbounds i8, ptr %335, i64 8
  store i64 6, ptr %1982, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %334, ptr noundef nonnull align 8 dereferenceable(16) %335)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %336) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %335) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %337) #9
  call void @_ZN3cgp22multiply_componentwiseIiLi2ELi3EEENS_12matrix_stackIT_XT0_EXT1_EEERKS3_S5_(ptr dead_on_unwind nonnull writable sret(%"struct.cgp::matrix_stack") align 4 %337, ptr noundef nonnull align 4 dereferenceable(24) %331, ptr noundef nonnull align 4 dereferenceable(24) %334)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %338) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %339) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %340) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %340, ptr noundef nonnull align 4 dereferenceable(24) @constinit.42, i64 24, i1 false), !tbaa.struct !5
  store ptr %340, ptr %339, align 8, !tbaa !9
  %1983 = getelementptr inbounds i8, ptr %339, i64 8
  store i64 6, ptr %1983, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %338, ptr noundef nonnull align 8 dereferenceable(16) %339)
  %1984 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiLi2ELi3ELi2ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24) %337, ptr noundef nonnull align 4 dereferenceable(24) %338)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %340) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %339) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %338) #9
  br i1 %1984, label %2005, label %1985

1985:                                             ; preds = %1980
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %341) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %342) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %342) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %341, ptr noundef nonnull @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %342)
          to label %1986 unwind label %1991

1986:                                             ; preds = %1985
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %343) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %344) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %344) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %343, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %344)
          to label %1987 unwind label %1993

1987:                                             ; preds = %1986
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %345) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %346) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %346) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %346)
          to label %1988 unwind label %1995

1988:                                             ; preds = %1987
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %347) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %348) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %348) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %347, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %348)
          to label %1989 unwind label %1997

1989:                                             ; preds = %1988
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %341, ptr noundef nonnull align 8 dereferenceable(32) %343, ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef nonnull align 8 dereferenceable(32) %347, i32 noundef 61) #10
          to label %1990 unwind label %1999

1990:                                             ; preds = %1989
  unreachable

1991:                                             ; preds = %1985
  %1992 = landingpad { ptr, i32 }
          cleanup
  br label %2004

1993:                                             ; preds = %1986
  %1994 = landingpad { ptr, i32 }
          cleanup
  br label %2003

1995:                                             ; preds = %1987
  %1996 = landingpad { ptr, i32 }
          cleanup
  br label %2002

1997:                                             ; preds = %1988
  %1998 = landingpad { ptr, i32 }
          cleanup
  br label %2001

1999:                                             ; preds = %1989
  %2000 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %347) #9
  br label %2001

2001:                                             ; preds = %1999, %1997
  %.pn774 = phi { ptr, i32 } [ %2000, %1999 ], [ %1998, %1997 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %348) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %348) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %347) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %345) #9
  br label %2002

2002:                                             ; preds = %2001, %1995
  %.pn774.pn = phi { ptr, i32 } [ %.pn774, %2001 ], [ %1996, %1995 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %346) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %346) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %345) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %343) #9
  br label %2003

2003:                                             ; preds = %2002, %1993
  %.pn774.pn.pn = phi { ptr, i32 } [ %.pn774.pn, %2002 ], [ %1994, %1993 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %344) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %344) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %343) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %341) #9
  br label %2004

2004:                                             ; preds = %2003, %1991
  %.pn774.pn.pn.pn = phi { ptr, i32 } [ %.pn774.pn.pn, %2003 ], [ %1992, %1991 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %342) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %342) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %341) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %337) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %334) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %331) #9
  br label %3346

2005:                                             ; preds = %1980
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %337) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %334) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %331) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %349) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %350) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %351) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %351, ptr noundef nonnull align 4 dereferenceable(24) @constinit.44, i64 24, i1 false), !tbaa.struct !5
  store ptr %351, ptr %350, align 8, !tbaa !9
  %2006 = getelementptr inbounds i8, ptr %350, i64 8
  store i64 6, ptr %2006, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %349, ptr noundef nonnull align 8 dereferenceable(16) %350)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %351) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %350) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %352) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %353) #9
  store i32 5, ptr %353, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %354) #9
  store i32 -2, ptr %354, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %355) #9
  store i32 3, ptr %355, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIiLi3EEC2ERKiS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %352, ptr noundef nonnull align 4 dereferenceable(4) %353, ptr noundef nonnull align 4 dereferenceable(4) %354, ptr noundef nonnull align 4 dereferenceable(4) %355)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %355) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %354) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %353) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %356) #9
  %2007 = call i64 @_ZN3cgpmlIiLi2ELi3EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(24) %349, ptr noundef nonnull align 4 dereferenceable(12) %352)
  store i64 %2007, ptr %356, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %357) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %358) #9
  store i32 10, ptr %358, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %359) #9
  store i32 28, ptr %359, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIiLi2EEC2ERKiS3_(ptr noundef nonnull align 4 dereferenceable(8) %357, ptr noundef nonnull align 4 dereferenceable(4) %358, ptr noundef nonnull align 4 dereferenceable(4) %359)
  %2008 = call noundef zeroext i1 @_ZN3cgp8is_equalIiLi2EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(8) %356, ptr noundef nonnull align 4 dereferenceable(8) %357)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %359) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %358) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %357) #9
  br i1 %2008, label %2029, label %2009

2009:                                             ; preds = %2005
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %360) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %361) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %361) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %360, ptr noundef nonnull @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %361)
          to label %2010 unwind label %2015

2010:                                             ; preds = %2009
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %362) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %363) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %363) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %362, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %363)
          to label %2011 unwind label %2017

2011:                                             ; preds = %2010
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %364) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %365) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %365) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %364, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %365)
          to label %2012 unwind label %2019

2012:                                             ; preds = %2011
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %366) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %367) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %366, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %367)
          to label %2013 unwind label %2021

2013:                                             ; preds = %2012
  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 69) #10
          to label %2014 unwind label %2023

2014:                                             ; preds = %2013
  unreachable

2015:                                             ; preds = %2009
  %2016 = landingpad { ptr, i32 }
          cleanup
  br label %2028

2017:                                             ; preds = %2010
  %2018 = landingpad { ptr, i32 }
          cleanup
  br label %2027

2019:                                             ; preds = %2011
  %2020 = landingpad { ptr, i32 }
          cleanup
  br label %2026

2021:                                             ; preds = %2012
  %2022 = landingpad { ptr, i32 }
          cleanup
  br label %2025

2023:                                             ; preds = %2013
  %2024 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #9
  br label %2025

2025:                                             ; preds = %2023, %2021
  %.pn769 = phi { ptr, i32 } [ %2024, %2023 ], [ %2022, %2021 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %367) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %366) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #9
  br label %2026

2026:                                             ; preds = %2025, %2019
  %.pn769.pn = phi { ptr, i32 } [ %.pn769, %2025 ], [ %2020, %2019 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %365) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %365) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %364) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %362) #9
  br label %2027

2027:                                             ; preds = %2026, %2017
  %.pn769.pn.pn = phi { ptr, i32 } [ %.pn769.pn, %2026 ], [ %2018, %2017 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %363) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %363) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %362) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %360) #9
  br label %2028

2028:                                             ; preds = %2027, %2015
  %.pn769.pn.pn.pn = phi { ptr, i32 } [ %.pn769.pn.pn, %2027 ], [ %2016, %2015 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %361) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %361) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %360) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %356) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %352) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %349) #9
  br label %3346

2029:                                             ; preds = %2005
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %356) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %352) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %349) #9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %368) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %369) #9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %370) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(80) %370, ptr noundef nonnull align 4 dereferenceable(80) @constinit.46, i64 80, i1 false), !tbaa.struct !16
  store ptr %370, ptr %369, align 8, !tbaa !9
  %2030 = getelementptr inbounds i8, ptr %369, i64 8
  store i64 20, ptr %2030, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi5ELi4EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(80) %368, ptr noundef nonnull align 8 dereferenceable(16) %369)
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %370) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %369) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %371) #9
  call void @_ZNK3cgp12matrix_stackIiLi5ELi4EE17remove_row_columnEii(ptr dead_on_unwind nonnull writable sret(%"struct.cgp::matrix_stack.9") align 4 %371, ptr noundef nonnull align 4 dereferenceable(80) %368, i32 noundef 1, i32 noundef 2)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %372) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %373) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %374) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %374, ptr noundef nonnull align 4 dereferenceable(48) @constinit.47, i64 48, i1 false), !tbaa.struct !17
  store ptr %374, ptr %373, align 8, !tbaa !9
  %2031 = getelementptr inbounds i8, ptr %373, i64 8
  store i64 12, ptr %2031, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi4ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(48) %372, ptr noundef nonnull align 8 dereferenceable(16) %373)
  %2032 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiLi4ELi3ELi4ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(48) %371, ptr noundef nonnull align 4 dereferenceable(48) %372)
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %374) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %373) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %372) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %371) #9
  br i1 %2032, label %2053, label %2033

2033:                                             ; preds = %2029
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %375) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %376) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %376) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %375, ptr noundef nonnull @.str.48, ptr noundef nonnull align 1 dereferenceable(1) %376)
          to label %2034 unwind label %2039

2034:                                             ; preds = %2033
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %377) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %378) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %378) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %377, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %378)
          to label %2035 unwind label %2041

2035:                                             ; preds = %2034
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %379) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %380) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %380) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %379, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %380)
          to label %2036 unwind label %2043

2036:                                             ; preds = %2035
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %381) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %382) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %382) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %381, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %382)
          to label %2037 unwind label %2045

2037:                                             ; preds = %2036
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %375, ptr noundef nonnull align 8 dereferenceable(32) %377, ptr noundef nonnull align 8 dereferenceable(32) %379, ptr noundef nonnull align 8 dereferenceable(32) %381, i32 noundef 77) #10
          to label %2038 unwind label %2047

2038:                                             ; preds = %2037
  unreachable

2039:                                             ; preds = %2033
  %2040 = landingpad { ptr, i32 }
          cleanup
  br label %2052

2041:                                             ; preds = %2034
  %2042 = landingpad { ptr, i32 }
          cleanup
  br label %2051

2043:                                             ; preds = %2035
  %2044 = landingpad { ptr, i32 }
          cleanup
  br label %2050

2045:                                             ; preds = %2036
  %2046 = landingpad { ptr, i32 }
          cleanup
  br label %2049

2047:                                             ; preds = %2037
  %2048 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %381) #9
  br label %2049

2049:                                             ; preds = %2047, %2045
  %.pn763 = phi { ptr, i32 } [ %2048, %2047 ], [ %2046, %2045 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %382) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %382) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %381) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %379) #9
  br label %2050

2050:                                             ; preds = %2049, %2043
  %.pn763.pn = phi { ptr, i32 } [ %.pn763, %2049 ], [ %2044, %2043 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %380) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %380) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %379) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %377) #9
  br label %2051

2051:                                             ; preds = %2050, %2041
  %.pn763.pn.pn = phi { ptr, i32 } [ %.pn763.pn, %2050 ], [ %2042, %2041 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %378) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %378) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %377) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %375) #9
  br label %2052

2052:                                             ; preds = %2051, %2039
  %.pn763.pn.pn.pn = phi { ptr, i32 } [ %.pn763.pn.pn, %2051 ], [ %2040, %2039 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %376) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %376) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %375) #9
  br label %2108

2053:                                             ; preds = %2029
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %383) #9
  call void @_ZNK3cgp12matrix_stackIiLi5ELi4EE17remove_row_columnEii(ptr dead_on_unwind nonnull writable sret(%"struct.cgp::matrix_stack.9") align 4 %383, ptr noundef nonnull align 4 dereferenceable(80) %368, i32 noundef 0, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %384) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %385) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %386) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %386, ptr noundef nonnull align 4 dereferenceable(48) @constinit.49, i64 48, i1 false), !tbaa.struct !17
  store ptr %386, ptr %385, align 8, !tbaa !9
  %2054 = getelementptr inbounds i8, ptr %385, i64 8
  store i64 12, ptr %2054, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi4ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(48) %384, ptr noundef nonnull align 8 dereferenceable(16) %385)
  %2055 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiLi4ELi3ELi4ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(48) %383, ptr noundef nonnull align 4 dereferenceable(48) %384)
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %386) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %385) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %384) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %383) #9
  br i1 %2055, label %2076, label %2056

2056:                                             ; preds = %2053
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %387) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %388) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %388) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %387, ptr noundef nonnull @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %388)
          to label %2057 unwind label %2062

2057:                                             ; preds = %2056
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %389) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %390) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %390) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %389, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %390)
          to label %2058 unwind label %2064

2058:                                             ; preds = %2057
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %391) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %392) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %391, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %392)
          to label %2059 unwind label %2066

2059:                                             ; preds = %2058
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %393) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %394) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %393, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %394)
          to label %2060 unwind label %2068

2060:                                             ; preds = %2059
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %387, ptr noundef nonnull align 8 dereferenceable(32) %389, ptr noundef nonnull align 8 dereferenceable(32) %391, ptr noundef nonnull align 8 dereferenceable(32) %393, i32 noundef 78) #10
          to label %2061 unwind label %2070

2061:                                             ; preds = %2060
  unreachable

2062:                                             ; preds = %2056
  %2063 = landingpad { ptr, i32 }
          cleanup
  br label %2075

2064:                                             ; preds = %2057
  %2065 = landingpad { ptr, i32 }
          cleanup
  br label %2074

2066:                                             ; preds = %2058
  %2067 = landingpad { ptr, i32 }
          cleanup
  br label %2073

2068:                                             ; preds = %2059
  %2069 = landingpad { ptr, i32 }
          cleanup
  br label %2072

2070:                                             ; preds = %2060
  %2071 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %393) #9
  br label %2072

2072:                                             ; preds = %2070, %2068
  %.pn758 = phi { ptr, i32 } [ %2071, %2070 ], [ %2069, %2068 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %394) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %393) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %391) #9
  br label %2073

2073:                                             ; preds = %2072, %2066
  %.pn758.pn = phi { ptr, i32 } [ %.pn758, %2072 ], [ %2067, %2066 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %392) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %391) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %389) #9
  br label %2074

2074:                                             ; preds = %2073, %2064
  %.pn758.pn.pn = phi { ptr, i32 } [ %.pn758.pn, %2073 ], [ %2065, %2064 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %390) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %390) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %389) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %387) #9
  br label %2075

2075:                                             ; preds = %2074, %2062
  %.pn758.pn.pn.pn = phi { ptr, i32 } [ %.pn758.pn.pn, %2074 ], [ %2063, %2062 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %388) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %388) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %387) #9
  br label %2108

2076:                                             ; preds = %2053
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %395) #9
  call void @_ZNK3cgp12matrix_stackIiLi5ELi4EE17remove_row_columnEii(ptr dead_on_unwind nonnull writable sret(%"struct.cgp::matrix_stack.9") align 4 %395, ptr noundef nonnull align 4 dereferenceable(80) %368, i32 noundef 4, i32 noundef 3)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %396) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %397) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %398) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %398, ptr noundef nonnull align 4 dereferenceable(48) @constinit.51, i64 48, i1 false), !tbaa.struct !17
  store ptr %398, ptr %397, align 8, !tbaa !9
  %2077 = getelementptr inbounds i8, ptr %397, i64 8
  store i64 12, ptr %2077, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi4ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(48) %396, ptr noundef nonnull align 8 dereferenceable(16) %397)
  %2078 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiLi4ELi3ELi4ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(48) %395, ptr noundef nonnull align 4 dereferenceable(48) %396)
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %398) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %397) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %396) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %395) #9
  br i1 %2078, label %2099, label %2079

2079:                                             ; preds = %2076
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %399) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %400) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %400) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %399, ptr noundef nonnull @.str.52, ptr noundef nonnull align 1 dereferenceable(1) %400)
          to label %2080 unwind label %2085

2080:                                             ; preds = %2079
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %401) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %402) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %402) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %401, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %402)
          to label %2081 unwind label %2087

2081:                                             ; preds = %2080
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %403) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %404) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %404) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %403, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %404)
          to label %2082 unwind label %2089

2082:                                             ; preds = %2081
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %405) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %406) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %406) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %405, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %406)
          to label %2083 unwind label %2091

2083:                                             ; preds = %2082
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %399, ptr noundef nonnull align 8 dereferenceable(32) %401, ptr noundef nonnull align 8 dereferenceable(32) %403, ptr noundef nonnull align 8 dereferenceable(32) %405, i32 noundef 79) #10
          to label %2084 unwind label %2093

2084:                                             ; preds = %2083
  unreachable

2085:                                             ; preds = %2079
  %2086 = landingpad { ptr, i32 }
          cleanup
  br label %2098

2087:                                             ; preds = %2080
  %2088 = landingpad { ptr, i32 }
          cleanup
  br label %2097

2089:                                             ; preds = %2081
  %2090 = landingpad { ptr, i32 }
          cleanup
  br label %2096

2091:                                             ; preds = %2082
  %2092 = landingpad { ptr, i32 }
          cleanup
  br label %2095

2093:                                             ; preds = %2083
  %2094 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %405) #9
  br label %2095

2095:                                             ; preds = %2093, %2091
  %.pn753 = phi { ptr, i32 } [ %2094, %2093 ], [ %2092, %2091 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %406) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %406) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %405) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %403) #9
  br label %2096

2096:                                             ; preds = %2095, %2089
  %.pn753.pn = phi { ptr, i32 } [ %.pn753, %2095 ], [ %2090, %2089 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %404) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %404) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %403) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %401) #9
  br label %2097

2097:                                             ; preds = %2096, %2087
  %.pn753.pn.pn = phi { ptr, i32 } [ %.pn753.pn, %2096 ], [ %2088, %2087 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %402) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %402) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %401) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %399) #9
  br label %2098

2098:                                             ; preds = %2097, %2085
  %.pn753.pn.pn.pn = phi { ptr, i32 } [ %.pn753.pn.pn, %2097 ], [ %2086, %2085 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %400) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %400) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %399) #9
  br label %2108

2099:                                             ; preds = %2076
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %368) #9
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %407) #9
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EE14build_identityEv(ptr dead_on_unwind nonnull writable sret(%"struct.cgp::matrix_stack.11") align 4 %407)
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %408) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %409) #9
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %410) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %410, ptr noundef nonnull align 4 dereferenceable(36) @constinit.53, i64 36, i1 false), !tbaa.struct !18
  store ptr %410, ptr %409, align 8, !tbaa !19
  %2100 = getelementptr inbounds i8, ptr %409, i64 8
  store i64 9, ptr %2100, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %408, ptr noundef nonnull align 8 dereferenceable(16) %409)
  %2101 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %407, ptr noundef nonnull align 4 dereferenceable(36) %408)
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %410) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %409) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %408) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %407) #9
  br i1 %2101, label %2123, label %2102

2102:                                             ; preds = %2099
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %411) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %412) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %412) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %411, ptr noundef nonnull @.str.54, ptr noundef nonnull align 1 dereferenceable(1) %412)
          to label %2103 unwind label %2109

2103:                                             ; preds = %2102
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %413) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %414) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %414) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %413, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %414)
          to label %2104 unwind label %2111

2104:                                             ; preds = %2103
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %415) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %416) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %416) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %415, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %416)
          to label %2105 unwind label %2113

2105:                                             ; preds = %2104
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %417) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %418) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %418) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %417, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %418)
          to label %2106 unwind label %2115

2106:                                             ; preds = %2105
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %411, ptr noundef nonnull align 8 dereferenceable(32) %413, ptr noundef nonnull align 8 dereferenceable(32) %415, ptr noundef nonnull align 8 dereferenceable(32) %417, i32 noundef 86) #10
          to label %2107 unwind label %2117

2107:                                             ; preds = %2106
  unreachable

2108:                                             ; preds = %2098, %2075, %2052
  %.pn763.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn763.pn.pn.pn, %2052 ], [ %.pn758.pn.pn.pn, %2075 ], [ %.pn753.pn.pn.pn, %2098 ]
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %368) #9
  br label %3346

2109:                                             ; preds = %2102
  %2110 = landingpad { ptr, i32 }
          cleanup
  br label %2122

2111:                                             ; preds = %2103
  %2112 = landingpad { ptr, i32 }
          cleanup
  br label %2121

2113:                                             ; preds = %2104
  %2114 = landingpad { ptr, i32 }
          cleanup
  br label %2120

2115:                                             ; preds = %2105
  %2116 = landingpad { ptr, i32 }
          cleanup
  br label %2119

2117:                                             ; preds = %2106
  %2118 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %417) #9
  br label %2119

2119:                                             ; preds = %2117, %2115
  %.pn748 = phi { ptr, i32 } [ %2118, %2117 ], [ %2116, %2115 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %418) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %418) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %417) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %415) #9
  br label %2120

2120:                                             ; preds = %2119, %2113
  %.pn748.pn = phi { ptr, i32 } [ %.pn748, %2119 ], [ %2114, %2113 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %416) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %416) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %415) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %413) #9
  br label %2121

2121:                                             ; preds = %2120, %2111
  %.pn748.pn.pn = phi { ptr, i32 } [ %.pn748.pn, %2120 ], [ %2112, %2111 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %414) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %414) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %413) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %411) #9
  br label %2122

2122:                                             ; preds = %2121, %2109
  %.pn748.pn.pn.pn = phi { ptr, i32 } [ %.pn748.pn.pn, %2121 ], [ %2110, %2109 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %412) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %412) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %411) #9
  br label %3346

2123:                                             ; preds = %2099
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %419) #9
  call void @_ZN3cgp12matrix_stackIfLi3ELi4EE14build_identityEv(ptr dead_on_unwind nonnull writable sret(%"struct.cgp::matrix_stack.15") align 4 %419)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %420) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %421) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %422) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %422, ptr noundef nonnull align 4 dereferenceable(48) @constinit.55, i64 48, i1 false), !tbaa.struct !17
  store ptr %422, ptr %421, align 8, !tbaa !19
  %2124 = getelementptr inbounds i8, ptr %421, i64 8
  store i64 12, ptr %2124, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi4EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(48) %420, ptr noundef nonnull align 8 dereferenceable(16) %421)
  %2125 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi4ELi3ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(48) %419, ptr noundef nonnull align 4 dereferenceable(48) %420)
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %422) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %421) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %420) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %419) #9
  br i1 %2125, label %2146, label %2126

2126:                                             ; preds = %2123
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %423) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %424) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %424) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %423, ptr noundef nonnull @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %424)
          to label %2127 unwind label %2132

2127:                                             ; preds = %2126
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %425) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %426) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %426) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %425, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %426)
          to label %2128 unwind label %2134

2128:                                             ; preds = %2127
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %427) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %428) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %428) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %427, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %428)
          to label %2129 unwind label %2136

2129:                                             ; preds = %2128
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %429) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %430) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %430) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %429, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %430)
          to label %2130 unwind label %2138

2130:                                             ; preds = %2129
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %423, ptr noundef nonnull align 8 dereferenceable(32) %425, ptr noundef nonnull align 8 dereferenceable(32) %427, ptr noundef nonnull align 8 dereferenceable(32) %429, i32 noundef 87) #10
          to label %2131 unwind label %2140

2131:                                             ; preds = %2130
  unreachable

2132:                                             ; preds = %2126
  %2133 = landingpad { ptr, i32 }
          cleanup
  br label %2145

2134:                                             ; preds = %2127
  %2135 = landingpad { ptr, i32 }
          cleanup
  br label %2144

2136:                                             ; preds = %2128
  %2137 = landingpad { ptr, i32 }
          cleanup
  br label %2143

2138:                                             ; preds = %2129
  %2139 = landingpad { ptr, i32 }
          cleanup
  br label %2142

2140:                                             ; preds = %2130
  %2141 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %429) #9
  br label %2142

2142:                                             ; preds = %2140, %2138
  %.pn743 = phi { ptr, i32 } [ %2141, %2140 ], [ %2139, %2138 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %430) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %430) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %429) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %427) #9
  br label %2143

2143:                                             ; preds = %2142, %2136
  %.pn743.pn = phi { ptr, i32 } [ %.pn743, %2142 ], [ %2137, %2136 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %428) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %428) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %427) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %425) #9
  br label %2144

2144:                                             ; preds = %2143, %2134
  %.pn743.pn.pn = phi { ptr, i32 } [ %.pn743.pn, %2143 ], [ %2135, %2134 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %426) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %426) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %425) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %423) #9
  br label %2145

2145:                                             ; preds = %2144, %2132
  %.pn743.pn.pn.pn = phi { ptr, i32 } [ %.pn743.pn.pn, %2144 ], [ %2133, %2132 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %424) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %424) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %423) #9
  br label %3346

2146:                                             ; preds = %2123
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %431) #9
  call void @_ZN3cgp12matrix_stackIfLi4ELi3EE14build_identityEv(ptr dead_on_unwind nonnull writable sret(%"struct.cgp::matrix_stack.18") align 4 %431)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %432) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %433) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %434) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %434, ptr noundef nonnull align 4 dereferenceable(48) @constinit.57, i64 48, i1 false), !tbaa.struct !17
  store ptr %434, ptr %433, align 8, !tbaa !19
  %2147 = getelementptr inbounds i8, ptr %433, i64 8
  store i64 12, ptr %2147, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi3EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(48) %432, ptr noundef nonnull align 8 dereferenceable(16) %433)
  %2148 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi3ELi4ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(48) %431, ptr noundef nonnull align 4 dereferenceable(48) %432)
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %434) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %433) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %432) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %431) #9
  br i1 %2148, label %2169, label %2149

2149:                                             ; preds = %2146
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %435) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %436) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %436) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %435, ptr noundef nonnull @.str.58, ptr noundef nonnull align 1 dereferenceable(1) %436)
          to label %2150 unwind label %2155

2150:                                             ; preds = %2149
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %437) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %438) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %438) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %437, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %438)
          to label %2151 unwind label %2157

2151:                                             ; preds = %2150
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %439) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %440) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %439, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %440)
          to label %2152 unwind label %2159

2152:                                             ; preds = %2151
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %441) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %442) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %442) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %441, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %442)
          to label %2153 unwind label %2161

2153:                                             ; preds = %2152
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %435, ptr noundef nonnull align 8 dereferenceable(32) %437, ptr noundef nonnull align 8 dereferenceable(32) %439, ptr noundef nonnull align 8 dereferenceable(32) %441, i32 noundef 88) #10
          to label %2154 unwind label %2163

2154:                                             ; preds = %2153
  unreachable

2155:                                             ; preds = %2149
  %2156 = landingpad { ptr, i32 }
          cleanup
  br label %2168

2157:                                             ; preds = %2150
  %2158 = landingpad { ptr, i32 }
          cleanup
  br label %2167

2159:                                             ; preds = %2151
  %2160 = landingpad { ptr, i32 }
          cleanup
  br label %2166

2161:                                             ; preds = %2152
  %2162 = landingpad { ptr, i32 }
          cleanup
  br label %2165

2163:                                             ; preds = %2153
  %2164 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %441) #9
  br label %2165

2165:                                             ; preds = %2163, %2161
  %.pn738 = phi { ptr, i32 } [ %2164, %2163 ], [ %2162, %2161 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %442) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %442) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %441) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #9
  br label %2166

2166:                                             ; preds = %2165, %2159
  %.pn738.pn = phi { ptr, i32 } [ %.pn738, %2165 ], [ %2160, %2159 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %440) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %439) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %437) #9
  br label %2167

2167:                                             ; preds = %2166, %2157
  %.pn738.pn.pn = phi { ptr, i32 } [ %.pn738.pn, %2166 ], [ %2158, %2157 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %438) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %438) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %437) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %435) #9
  br label %2168

2168:                                             ; preds = %2167, %2155
  %.pn738.pn.pn.pn = phi { ptr, i32 } [ %.pn738.pn.pn, %2167 ], [ %2156, %2155 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %436) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %436) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %435) #9
  br label %3346

2169:                                             ; preds = %2146
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %443) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %444) #9
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %445) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %445, ptr noundef nonnull align 4 dereferenceable(36) @constinit.59, i64 36, i1 false), !tbaa.struct !18
  store ptr %445, ptr %444, align 8, !tbaa !19
  %2170 = getelementptr inbounds i8, ptr %444, i64 8
  store i64 9, ptr %2170, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %443, ptr noundef nonnull align 8 dereferenceable(16) %444)
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %445) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %444) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %446) #9
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC2ILi3ELi3EEERKNS0_IfXT_EXT0_EEE(ptr noundef nonnull align 4 dereferenceable(16) %446, ptr noundef nonnull align 4 dereferenceable(36) %443)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %447) #9
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKNS0_IfLi3ELi3EEE(ptr noundef nonnull align 4 dereferenceable(64) %447, ptr noundef nonnull align 4 dereferenceable(36) %443)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %448) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %449) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %450) #9
  store <4 x float> <float 1.000000e+00, float 2.000000e+00, float 4.000000e+00, float 5.000000e+00>, ptr %450, align 16, !tbaa !22
  store ptr %450, ptr %449, align 8, !tbaa !19
  %2171 = getelementptr inbounds i8, ptr %449, i64 8
  store i64 4, ptr %2171, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %448, ptr noundef nonnull align 8 dereferenceable(16) %449)
  %2172 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %446, ptr noundef nonnull align 4 dereferenceable(16) %448)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %450) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %449) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %448) #9
  br i1 %2172, label %2193, label %2173

2173:                                             ; preds = %2169
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %451) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %452) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %452) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %451, ptr noundef nonnull @.str.60, ptr noundef nonnull align 1 dereferenceable(1) %452)
          to label %2174 unwind label %2179

2174:                                             ; preds = %2173
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %453) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %454) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %454) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %453, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %454)
          to label %2175 unwind label %2181

2175:                                             ; preds = %2174
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %455) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %456) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %456) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %455, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %456)
          to label %2176 unwind label %2183

2176:                                             ; preds = %2175
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %457) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %458) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %458) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %457, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %458)
          to label %2177 unwind label %2185

2177:                                             ; preds = %2176
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %451, ptr noundef nonnull align 8 dereferenceable(32) %453, ptr noundef nonnull align 8 dereferenceable(32) %455, ptr noundef nonnull align 8 dereferenceable(32) %457, i32 noundef 100) #10
          to label %2178 unwind label %2187

2178:                                             ; preds = %2177
  unreachable

2179:                                             ; preds = %2173
  %2180 = landingpad { ptr, i32 }
          cleanup
  br label %2192

2181:                                             ; preds = %2174
  %2182 = landingpad { ptr, i32 }
          cleanup
  br label %2191

2183:                                             ; preds = %2175
  %2184 = landingpad { ptr, i32 }
          cleanup
  br label %2190

2185:                                             ; preds = %2176
  %2186 = landingpad { ptr, i32 }
          cleanup
  br label %2189

2187:                                             ; preds = %2177
  %2188 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %457) #9
  br label %2189

2189:                                             ; preds = %2187, %2185
  %.pn732 = phi { ptr, i32 } [ %2188, %2187 ], [ %2186, %2185 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %458) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %458) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %457) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %455) #9
  br label %2190

2190:                                             ; preds = %2189, %2183
  %.pn732.pn = phi { ptr, i32 } [ %.pn732, %2189 ], [ %2184, %2183 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %456) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %456) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %455) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %453) #9
  br label %2191

2191:                                             ; preds = %2190, %2181
  %.pn732.pn.pn = phi { ptr, i32 } [ %.pn732.pn, %2190 ], [ %2182, %2181 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %454) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %454) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %453) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %451) #9
  br label %2192

2192:                                             ; preds = %2191, %2179
  %.pn732.pn.pn.pn = phi { ptr, i32 } [ %.pn732.pn.pn, %2191 ], [ %2180, %2179 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %452) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %452) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %451) #9
  br label %2226

2193:                                             ; preds = %2169
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %459) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %460) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %461) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %461, ptr noundef nonnull align 4 dereferenceable(64) @constinit.61, i64 64, i1 false), !tbaa.struct !24
  store ptr %461, ptr %460, align 8, !tbaa !19
  %2194 = getelementptr inbounds i8, ptr %460, i64 8
  store i64 16, ptr %2194, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %459, ptr noundef nonnull align 8 dereferenceable(16) %460)
  %2195 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %447, ptr noundef nonnull align 4 dereferenceable(64) %459)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %461) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %460) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %459) #9
  br i1 %2195, label %2216, label %2196

2196:                                             ; preds = %2193
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %462) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %463) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %463) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %462, ptr noundef nonnull @.str.62, ptr noundef nonnull align 1 dereferenceable(1) %463)
          to label %2197 unwind label %2202

2197:                                             ; preds = %2196
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %464) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %465) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %465) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %464, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %465)
          to label %2198 unwind label %2204

2198:                                             ; preds = %2197
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %466) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %467) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %467) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %466, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %467)
          to label %2199 unwind label %2206

2199:                                             ; preds = %2198
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %468) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %469) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %469) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %468, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %469)
          to label %2200 unwind label %2208

2200:                                             ; preds = %2199
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %462, ptr noundef nonnull align 8 dereferenceable(32) %464, ptr noundef nonnull align 8 dereferenceable(32) %466, ptr noundef nonnull align 8 dereferenceable(32) %468, i32 noundef 101) #10
          to label %2201 unwind label %2210

2201:                                             ; preds = %2200
  unreachable

2202:                                             ; preds = %2196
  %2203 = landingpad { ptr, i32 }
          cleanup
  br label %2215

2204:                                             ; preds = %2197
  %2205 = landingpad { ptr, i32 }
          cleanup
  br label %2214

2206:                                             ; preds = %2198
  %2207 = landingpad { ptr, i32 }
          cleanup
  br label %2213

2208:                                             ; preds = %2199
  %2209 = landingpad { ptr, i32 }
          cleanup
  br label %2212

2210:                                             ; preds = %2200
  %2211 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %468) #9
  br label %2212

2212:                                             ; preds = %2210, %2208
  %.pn727 = phi { ptr, i32 } [ %2211, %2210 ], [ %2209, %2208 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %469) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %469) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %468) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %466) #9
  br label %2213

2213:                                             ; preds = %2212, %2206
  %.pn727.pn = phi { ptr, i32 } [ %.pn727, %2212 ], [ %2207, %2206 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %467) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %467) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %466) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %464) #9
  br label %2214

2214:                                             ; preds = %2213, %2204
  %.pn727.pn.pn = phi { ptr, i32 } [ %.pn727.pn, %2213 ], [ %2205, %2204 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %465) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %465) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %464) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %462) #9
  br label %2215

2215:                                             ; preds = %2214, %2202
  %.pn727.pn.pn.pn = phi { ptr, i32 } [ %.pn727.pn.pn, %2214 ], [ %2203, %2202 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %463) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %463) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %462) #9
  br label %2226

2216:                                             ; preds = %2193
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %447) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %446) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %443) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %470) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %471) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %472) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %472, ptr noundef nonnull align 4 dereferenceable(64) @constinit.63, i64 64, i1 false), !tbaa.struct !24
  store ptr %472, ptr %471, align 8, !tbaa !19
  %2217 = getelementptr inbounds i8, ptr %471, i64 8
  store i64 16, ptr %2217, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %470, ptr noundef nonnull align 8 dereferenceable(16) %471)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %472) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %471) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %473) #9
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC2ILi4ELi4EEERKNS0_IfXT_EXT0_EEE(ptr noundef nonnull align 4 dereferenceable(16) %473, ptr noundef nonnull align 4 dereferenceable(64) %470)
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %474) #9
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC2ILi4ELi4EEERKNS0_IfXT_EXT0_EEE(ptr noundef nonnull align 4 dereferenceable(36) %474, ptr noundef nonnull align 4 dereferenceable(64) %470)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %475) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %476) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %477) #9
  store <4 x float> <float 1.000000e+00, float 2.000000e+00, float 5.000000e+00, float 6.000000e+00>, ptr %477, align 16, !tbaa !22
  store ptr %477, ptr %476, align 8, !tbaa !19
  %2218 = getelementptr inbounds i8, ptr %476, i64 8
  store i64 4, ptr %2218, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %475, ptr noundef nonnull align 8 dereferenceable(16) %476)
  %2219 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %473, ptr noundef nonnull align 4 dereferenceable(16) %475)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %477) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %476) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %475) #9
  br i1 %2219, label %2241, label %2220

2220:                                             ; preds = %2216
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %478) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %479) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %479) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %478, ptr noundef nonnull @.str.64, ptr noundef nonnull align 1 dereferenceable(1) %479)
          to label %2221 unwind label %2227

2221:                                             ; preds = %2220
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %480) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %481) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %481) #9
  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 %2222 unwind label %2229

2222:                                             ; preds = %2221
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %482) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %483) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %483) #9
  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 %2223 unwind label %2231

2223:                                             ; preds = %2222
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %484) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %485) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %485) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %484, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %485)
          to label %2224 unwind label %2233

2224:                                             ; preds = %2223
  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 111) #10
          to label %2225 unwind label %2235

2225:                                             ; preds = %2224
  unreachable

2226:                                             ; preds = %2215, %2192
  %.pn732.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn732.pn.pn.pn, %2192 ], [ %.pn727.pn.pn.pn, %2215 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %447) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %446) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %443) #9
  br label %3346

2227:                                             ; preds = %2220
  %2228 = landingpad { ptr, i32 }
          cleanup
  br label %2240

2229:                                             ; preds = %2221
  %2230 = landingpad { ptr, i32 }
          cleanup
  br label %2239

2231:                                             ; preds = %2222
  %2232 = landingpad { ptr, i32 }
          cleanup
  br label %2238

2233:                                             ; preds = %2223
  %2234 = landingpad { ptr, i32 }
          cleanup
  br label %2237

2235:                                             ; preds = %2224
  %2236 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %484) #9
  br label %2237

2237:                                             ; preds = %2235, %2233
  %.pn721 = phi { ptr, i32 } [ %2236, %2235 ], [ %2234, %2233 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %485) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %485) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %484) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %482) #9
  br label %2238

2238:                                             ; preds = %2237, %2231
  %.pn721.pn = phi { ptr, i32 } [ %.pn721, %2237 ], [ %2232, %2231 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %483) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %483) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %482) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %480) #9
  br label %2239

2239:                                             ; preds = %2238, %2229
  %.pn721.pn.pn = phi { ptr, i32 } [ %.pn721.pn, %2238 ], [ %2230, %2229 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %481) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %481) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %480) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %478) #9
  br label %2240

2240:                                             ; preds = %2239, %2227
  %.pn721.pn.pn.pn = phi { ptr, i32 } [ %.pn721.pn.pn, %2239 ], [ %2228, %2227 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %479) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %479) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %478) #9
  br label %2275

2241:                                             ; preds = %2216
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %486) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %487) #9
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %488) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %488, ptr noundef nonnull align 4 dereferenceable(36) @constinit.65, i64 36, i1 false), !tbaa.struct !18
  store ptr %488, ptr %487, align 8, !tbaa !19
  %2242 = getelementptr inbounds i8, ptr %487, i64 8
  store i64 9, ptr %2242, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %486, ptr noundef nonnull align 8 dereferenceable(16) %487)
  %2243 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %474, ptr noundef nonnull align 4 dereferenceable(36) %486)
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %488) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %487) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %486) #9
  br i1 %2243, label %2264, label %2244

2244:                                             ; preds = %2241
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %489) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %490) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %490) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %489, ptr noundef nonnull @.str.66, ptr noundef nonnull align 1 dereferenceable(1) %490)
          to label %2245 unwind label %2250

2245:                                             ; preds = %2244
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %491) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %492) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %492) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %491, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %492)
          to label %2246 unwind label %2252

2246:                                             ; preds = %2245
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %493) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %494) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %494) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %493, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %494)
          to label %2247 unwind label %2254

2247:                                             ; preds = %2246
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %495) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %496) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %496) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %495, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %496)
          to label %2248 unwind label %2256

2248:                                             ; preds = %2247
  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 112) #10
          to label %2249 unwind label %2258

2249:                                             ; preds = %2248
  unreachable

2250:                                             ; preds = %2244
  %2251 = landingpad { ptr, i32 }
          cleanup
  br label %2263

2252:                                             ; preds = %2245
  %2253 = landingpad { ptr, i32 }
          cleanup
  br label %2262

2254:                                             ; preds = %2246
  %2255 = landingpad { ptr, i32 }
          cleanup
  br label %2261

2256:                                             ; preds = %2247
  %2257 = landingpad { ptr, i32 }
          cleanup
  br label %2260

2258:                                             ; preds = %2248
  %2259 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %495) #9
  br label %2260

2260:                                             ; preds = %2258, %2256
  %.pn716 = phi { ptr, i32 } [ %2259, %2258 ], [ %2257, %2256 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %496) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %496) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %495) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %493) #9
  br label %2261

2261:                                             ; preds = %2260, %2254
  %.pn716.pn = phi { ptr, i32 } [ %.pn716, %2260 ], [ %2255, %2254 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %494) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %494) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %493) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %491) #9
  br label %2262

2262:                                             ; preds = %2261, %2252
  %.pn716.pn.pn = phi { ptr, i32 } [ %.pn716.pn, %2261 ], [ %2253, %2252 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %492) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %492) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %491) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %489) #9
  br label %2263

2263:                                             ; preds = %2262, %2250
  %.pn716.pn.pn.pn = phi { ptr, i32 } [ %.pn716.pn.pn, %2262 ], [ %2251, %2250 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %490) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %490) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %489) #9
  br label %2275

2264:                                             ; preds = %2241
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %474) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %473) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %470) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %497) #9
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Ev(ptr noundef nonnull align 4 dereferenceable(64) %497)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %498) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %499) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %500) #9
  store <4 x float> <float 1.000000e+00, float 2.000000e+00, float 3.000000e+00, float 4.000000e+00>, ptr %500, align 16, !tbaa !22
  store ptr %500, ptr %499, align 8, !tbaa !19
  %2265 = getelementptr inbounds i8, ptr %499, i64 8
  store i64 4, ptr %2265, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %498, ptr noundef nonnull align 8 dereferenceable(16) %499)
  %2266 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE9set_blockILi2ELi2EEERS1_RKNS0_IfXT_EXT0_EEEii(ptr noundef nonnull align 4 dereferenceable(64) %497, ptr noundef nonnull align 4 dereferenceable(16) %498, i32 noundef 0, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %501) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %502) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %503) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %503, ptr noundef nonnull align 4 dereferenceable(64) @constinit.67, i64 64, i1 false), !tbaa.struct !24
  store ptr %503, ptr %502, align 8, !tbaa !19
  %2267 = getelementptr inbounds i8, ptr %502, i64 8
  store i64 16, ptr %2267, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %501, ptr noundef nonnull align 8 dereferenceable(16) %502)
  %2268 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %2266, ptr noundef nonnull align 4 dereferenceable(64) %501)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %503) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %502) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %501) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %500) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %499) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %498) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %497) #9
  br i1 %2268, label %2290, label %2269

2269:                                             ; preds = %2264
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %504) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %505) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %505) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %504, ptr noundef nonnull @.str.68, ptr noundef nonnull align 1 dereferenceable(1) %505)
          to label %2270 unwind label %2276

2270:                                             ; preds = %2269
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %506) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %507) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %507) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %506, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %507)
          to label %2271 unwind label %2278

2271:                                             ; preds = %2270
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %508) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %509) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %509) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %508, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %509)
          to label %2272 unwind label %2280

2272:                                             ; preds = %2271
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %510) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %511) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %511) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %510, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %511)
          to label %2273 unwind label %2282

2273:                                             ; preds = %2272
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %504, ptr noundef nonnull align 8 dereferenceable(32) %506, ptr noundef nonnull align 8 dereferenceable(32) %508, ptr noundef nonnull align 8 dereferenceable(32) %510, i32 noundef 120) #10
          to label %2274 unwind label %2284

2274:                                             ; preds = %2273
  unreachable

2275:                                             ; preds = %2263, %2240
  %.pn721.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn721.pn.pn.pn, %2240 ], [ %.pn716.pn.pn.pn, %2263 ]
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %474) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %473) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %470) #9
  br label %3346

2276:                                             ; preds = %2269
  %2277 = landingpad { ptr, i32 }
          cleanup
  br label %2289

2278:                                             ; preds = %2270
  %2279 = landingpad { ptr, i32 }
          cleanup
  br label %2288

2280:                                             ; preds = %2271
  %2281 = landingpad { ptr, i32 }
          cleanup
  br label %2287

2282:                                             ; preds = %2272
  %2283 = landingpad { ptr, i32 }
          cleanup
  br label %2286

2284:                                             ; preds = %2273
  %2285 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %510) #9
  br label %2286

2286:                                             ; preds = %2284, %2282
  %.pn711 = phi { ptr, i32 } [ %2285, %2284 ], [ %2283, %2282 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %511) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %511) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %510) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %508) #9
  br label %2287

2287:                                             ; preds = %2286, %2280
  %.pn711.pn = phi { ptr, i32 } [ %.pn711, %2286 ], [ %2281, %2280 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %509) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %509) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %508) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %506) #9
  br label %2288

2288:                                             ; preds = %2287, %2278
  %.pn711.pn.pn = phi { ptr, i32 } [ %.pn711.pn, %2287 ], [ %2279, %2278 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %507) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %507) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %506) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %504) #9
  br label %2289

2289:                                             ; preds = %2288, %2276
  %.pn711.pn.pn.pn = phi { ptr, i32 } [ %.pn711.pn.pn, %2288 ], [ %2277, %2276 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %505) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %505) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %504) #9
  br label %3346

2290:                                             ; preds = %2264
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %512) #9
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Ev(ptr noundef nonnull align 4 dereferenceable(64) %512)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %513) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %514) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %515) #9
  store <4 x float> <float 1.000000e+00, float 2.000000e+00, float 3.000000e+00, float 4.000000e+00>, ptr %515, align 16, !tbaa !22
  store ptr %515, ptr %514, align 8, !tbaa !19
  %2291 = getelementptr inbounds i8, ptr %514, i64 8
  store i64 4, ptr %2291, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %513, ptr noundef nonnull align 8 dereferenceable(16) %514)
  %2292 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE9set_blockILi2ELi2EEERS1_RKNS0_IfXT_EXT0_EEEii(ptr noundef nonnull align 4 dereferenceable(64) %512, ptr noundef nonnull align 4 dereferenceable(16) %513, i32 noundef 0, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %516) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %517) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %518) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %518, ptr noundef nonnull align 4 dereferenceable(64) @constinit.69, i64 64, i1 false), !tbaa.struct !24
  store ptr %518, ptr %517, align 8, !tbaa !19
  %2293 = getelementptr inbounds i8, ptr %517, i64 8
  store i64 16, ptr %2293, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %516, ptr noundef nonnull align 8 dereferenceable(16) %517)
  %2294 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %2292, ptr noundef nonnull align 4 dereferenceable(64) %516)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %518) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %517) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %516) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %515) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %514) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %513) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %512) #9
  br i1 %2294, label %2315, label %2295

2295:                                             ; preds = %2290
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %519) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %520) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %520) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %519, ptr noundef nonnull @.str.70, ptr noundef nonnull align 1 dereferenceable(1) %520)
          to label %2296 unwind label %2301

2296:                                             ; preds = %2295
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %521) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %522) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %522) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %521, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %522)
          to label %2297 unwind label %2303

2297:                                             ; preds = %2296
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %523) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %524) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %524) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %523, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %524)
          to label %2298 unwind label %2305

2298:                                             ; preds = %2297
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %525) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %526) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %526) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %525, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %526)
          to label %2299 unwind label %2307

2299:                                             ; preds = %2298
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %519, ptr noundef nonnull align 8 dereferenceable(32) %521, ptr noundef nonnull align 8 dereferenceable(32) %523, ptr noundef nonnull align 8 dereferenceable(32) %525, i32 noundef 121) #10
          to label %2300 unwind label %2309

2300:                                             ; preds = %2299
  unreachable

2301:                                             ; preds = %2295
  %2302 = landingpad { ptr, i32 }
          cleanup
  br label %2314

2303:                                             ; preds = %2296
  %2304 = landingpad { ptr, i32 }
          cleanup
  br label %2313

2305:                                             ; preds = %2297
  %2306 = landingpad { ptr, i32 }
          cleanup
  br label %2312

2307:                                             ; preds = %2298
  %2308 = landingpad { ptr, i32 }
          cleanup
  br label %2311

2309:                                             ; preds = %2299
  %2310 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %525) #9
  br label %2311

2311:                                             ; preds = %2309, %2307
  %.pn706 = phi { ptr, i32 } [ %2310, %2309 ], [ %2308, %2307 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %526) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %526) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %525) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %523) #9
  br label %2312

2312:                                             ; preds = %2311, %2305
  %.pn706.pn = phi { ptr, i32 } [ %.pn706, %2311 ], [ %2306, %2305 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %524) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %524) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %523) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %521) #9
  br label %2313

2313:                                             ; preds = %2312, %2303
  %.pn706.pn.pn = phi { ptr, i32 } [ %.pn706.pn, %2312 ], [ %2304, %2303 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %522) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %522) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %521) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %519) #9
  br label %2314

2314:                                             ; preds = %2313, %2301
  %.pn706.pn.pn.pn = phi { ptr, i32 } [ %.pn706.pn.pn, %2313 ], [ %2302, %2301 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %520) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %520) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %519) #9
  br label %3346

2315:                                             ; preds = %2290
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %527) #9
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Ev(ptr noundef nonnull align 4 dereferenceable(64) %527)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %528) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %529) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %530) #9
  store <4 x float> <float 1.000000e+00, float 2.000000e+00, float 3.000000e+00, float 4.000000e+00>, ptr %530, align 16, !tbaa !22
  store ptr %530, ptr %529, align 8, !tbaa !19
  %2316 = getelementptr inbounds i8, ptr %529, i64 8
  store i64 4, ptr %2316, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %528, ptr noundef nonnull align 8 dereferenceable(16) %529)
  %2317 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE9set_blockILi2ELi2EEERS1_RKNS0_IfXT_EXT0_EEEii(ptr noundef nonnull align 4 dereferenceable(64) %527, ptr noundef nonnull align 4 dereferenceable(16) %528, i32 noundef 1, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %531) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %532) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %533) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %533, ptr noundef nonnull align 4 dereferenceable(64) @constinit.71, i64 64, i1 false), !tbaa.struct !24
  store ptr %533, ptr %532, align 8, !tbaa !19
  %2318 = getelementptr inbounds i8, ptr %532, i64 8
  store i64 16, ptr %2318, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %531, ptr noundef nonnull align 8 dereferenceable(16) %532)
  %2319 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %2317, ptr noundef nonnull align 4 dereferenceable(64) %531)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %533) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %532) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %531) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %530) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %529) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %528) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %527) #9
  br i1 %2319, label %2340, label %2320

2320:                                             ; preds = %2315
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %534) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %535) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %535) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %534, ptr noundef nonnull @.str.72, ptr noundef nonnull align 1 dereferenceable(1) %535)
          to label %2321 unwind label %2326

2321:                                             ; preds = %2320
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %536) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %537) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %537) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %536, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %537)
          to label %2322 unwind label %2328

2322:                                             ; preds = %2321
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %538) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %539) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %539) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %538, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %539)
          to label %2323 unwind label %2330

2323:                                             ; preds = %2322
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %540) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %541) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %541) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %540, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %541)
          to label %2324 unwind label %2332

2324:                                             ; preds = %2323
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %534, ptr noundef nonnull align 8 dereferenceable(32) %536, ptr noundef nonnull align 8 dereferenceable(32) %538, ptr noundef nonnull align 8 dereferenceable(32) %540, i32 noundef 122) #10
          to label %2325 unwind label %2334

2325:                                             ; preds = %2324
  unreachable

2326:                                             ; preds = %2320
  %2327 = landingpad { ptr, i32 }
          cleanup
  br label %2339

2328:                                             ; preds = %2321
  %2329 = landingpad { ptr, i32 }
          cleanup
  br label %2338

2330:                                             ; preds = %2322
  %2331 = landingpad { ptr, i32 }
          cleanup
  br label %2337

2332:                                             ; preds = %2323
  %2333 = landingpad { ptr, i32 }
          cleanup
  br label %2336

2334:                                             ; preds = %2324
  %2335 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %540) #9
  br label %2336

2336:                                             ; preds = %2334, %2332
  %.pn701 = phi { ptr, i32 } [ %2335, %2334 ], [ %2333, %2332 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %541) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %541) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %540) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %538) #9
  br label %2337

2337:                                             ; preds = %2336, %2330
  %.pn701.pn = phi { ptr, i32 } [ %.pn701, %2336 ], [ %2331, %2330 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %539) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %539) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %538) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %536) #9
  br label %2338

2338:                                             ; preds = %2337, %2328
  %.pn701.pn.pn = phi { ptr, i32 } [ %.pn701.pn, %2337 ], [ %2329, %2328 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %537) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %537) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %536) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %534) #9
  br label %2339

2339:                                             ; preds = %2338, %2326
  %.pn701.pn.pn.pn = phi { ptr, i32 } [ %.pn701.pn.pn, %2338 ], [ %2327, %2326 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %535) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %535) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %534) #9
  br label %3346

2340:                                             ; preds = %2315
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %542) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %543) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %544) #9
  store <4 x float> <float 1.000000e+00, float 2.000000e+00, float 3.000000e+00, float 4.000000e+00>, ptr %544, align 16, !tbaa !22
  store ptr %544, ptr %543, align 8, !tbaa !19
  %2341 = getelementptr inbounds i8, ptr %543, i64 8
  store i64 4, ptr %2341, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %542, ptr noundef nonnull align 8 dereferenceable(16) %543)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %544) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %543) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %545) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %546) #9
  store i32 4, ptr %546, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %547) #9
  store i32 2, ptr %547, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi2EEC2IiiEERKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(8) %545, ptr noundef nonnull align 4 dereferenceable(4) %546, ptr noundef nonnull align 4 dereferenceable(4) %547)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %547) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %546) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %548) #9
  %2342 = call <2 x float> @_ZN3cgpmlIfLi2ELi2EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(16) %542, ptr noundef nonnull align 4 dereferenceable(8) %545)
  store <2 x float> %2342, ptr %548, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %549) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %550) #9
  store i32 8, ptr %550, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %551) #9
  store i32 20, ptr %551, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi2EEC2IiiEERKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(8) %549, ptr noundef nonnull align 4 dereferenceable(4) %550, ptr noundef nonnull align 4 dereferenceable(4) %551)
  %2343 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi2EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(8) %548, ptr noundef nonnull align 4 dereferenceable(8) %549)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %551) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %550) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %549) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %548) #9
  br i1 %2343, label %2364, label %2344

2344:                                             ; preds = %2340
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %552) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %553) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %553) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %552, ptr noundef nonnull @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %553)
          to label %2345 unwind label %2350

2345:                                             ; preds = %2344
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %554) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %555) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %555) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %554, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %555)
          to label %2346 unwind label %2352

2346:                                             ; preds = %2345
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %556) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %557) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %557) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %556, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %557)
          to label %2347 unwind label %2354

2347:                                             ; preds = %2346
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %558) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %559) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %559) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %558, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %559)
          to label %2348 unwind label %2356

2348:                                             ; preds = %2347
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %552, ptr noundef nonnull align 8 dereferenceable(32) %554, ptr noundef nonnull align 8 dereferenceable(32) %556, ptr noundef nonnull align 8 dereferenceable(32) %558, i32 noundef 133) #10
          to label %2349 unwind label %2358

2349:                                             ; preds = %2348
  unreachable

2350:                                             ; preds = %2344
  %2351 = landingpad { ptr, i32 }
          cleanup
  br label %2363

2352:                                             ; preds = %2345
  %2353 = landingpad { ptr, i32 }
          cleanup
  br label %2362

2354:                                             ; preds = %2346
  %2355 = landingpad { ptr, i32 }
          cleanup
  br label %2361

2356:                                             ; preds = %2347
  %2357 = landingpad { ptr, i32 }
          cleanup
  br label %2360

2358:                                             ; preds = %2348
  %2359 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %558) #9
  br label %2360

2360:                                             ; preds = %2358, %2356
  %.pn696 = phi { ptr, i32 } [ %2359, %2358 ], [ %2357, %2356 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %559) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %559) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %558) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %556) #9
  br label %2361

2361:                                             ; preds = %2360, %2354
  %.pn696.pn = phi { ptr, i32 } [ %.pn696, %2360 ], [ %2355, %2354 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %557) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %557) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %556) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %554) #9
  br label %2362

2362:                                             ; preds = %2361, %2352
  %.pn696.pn.pn = phi { ptr, i32 } [ %.pn696.pn, %2361 ], [ %2353, %2352 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %555) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %555) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %554) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %552) #9
  br label %2363

2363:                                             ; preds = %2362, %2350
  %.pn696.pn.pn.pn = phi { ptr, i32 } [ %.pn696.pn.pn, %2362 ], [ %2351, %2350 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %553) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %553) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %552) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %545) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %542) #9
  br label %3346

2364:                                             ; preds = %2340
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %545) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %542) #9
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %560) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %561) #9
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %562) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %562, ptr noundef nonnull align 4 dereferenceable(36) @constinit.74, i64 36, i1 false), !tbaa.struct !18
  store ptr %562, ptr %561, align 8, !tbaa !19
  %2365 = getelementptr inbounds i8, ptr %561, i64 8
  store i64 9, ptr %2365, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %560, ptr noundef nonnull align 8 dereferenceable(16) %561)
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %562) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %561) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %563) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %564) #9
  store i32 4, ptr %564, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %565) #9
  store i32 2, ptr %565, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %566) #9
  store i32 6, ptr %566, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %563, ptr noundef nonnull align 4 dereferenceable(4) %564, ptr noundef nonnull align 4 dereferenceable(4) %565, ptr noundef nonnull align 4 dereferenceable(4) %566)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %566) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %565) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %564) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %567) #9
  %2366 = call { <2 x float>, float } @_ZN3cgpmlIfLi3ELi3EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(36) %560, ptr noundef nonnull align 4 dereferenceable(12) %563)
  %.fca.0.extract25 = extractvalue { <2 x float>, float } %2366, 0
  %.fca.1.extract26 = extractvalue { <2 x float>, float } %2366, 1
  store <2 x float> %.fca.0.extract25, ptr %567, align 8
  %.sroa.228.0..sroa_idx = getelementptr inbounds i8, ptr %567, i64 8
  store float %.fca.1.extract26, ptr %.sroa.228.0..sroa_idx, align 8
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %568) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %569) #9
  store i32 14, ptr %569, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %570) #9
  store i32 50, ptr %570, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %571) #9
  store i32 50, ptr %571, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %568, ptr noundef nonnull align 4 dereferenceable(4) %569, ptr noundef nonnull align 4 dereferenceable(4) %570, ptr noundef nonnull align 4 dereferenceable(4) %571)
  %2367 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %567, ptr noundef nonnull align 4 dereferenceable(12) %568)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %571) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %570) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %569) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %568) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %567) #9
  br i1 %2367, label %2388, label %2368

2368:                                             ; preds = %2364
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %572) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %573) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %573) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %572, ptr noundef nonnull @.str.75, ptr noundef nonnull align 1 dereferenceable(1) %573)
          to label %2369 unwind label %2374

2369:                                             ; preds = %2368
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %574) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %575) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %575) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %574, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %575)
          to label %2370 unwind label %2376

2370:                                             ; preds = %2369
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %576) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %577) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %577) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %576, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %577)
          to label %2371 unwind label %2378

2371:                                             ; preds = %2370
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %578) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %579) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %579) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %578, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %579)
          to label %2372 unwind label %2380

2372:                                             ; preds = %2371
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %572, ptr noundef nonnull align 8 dereferenceable(32) %574, ptr noundef nonnull align 8 dereferenceable(32) %576, ptr noundef nonnull align 8 dereferenceable(32) %578, i32 noundef 139) #10
          to label %2373 unwind label %2382

2373:                                             ; preds = %2372
  unreachable

2374:                                             ; preds = %2368
  %2375 = landingpad { ptr, i32 }
          cleanup
  br label %2387

2376:                                             ; preds = %2369
  %2377 = landingpad { ptr, i32 }
          cleanup
  br label %2386

2378:                                             ; preds = %2370
  %2379 = landingpad { ptr, i32 }
          cleanup
  br label %2385

2380:                                             ; preds = %2371
  %2381 = landingpad { ptr, i32 }
          cleanup
  br label %2384

2382:                                             ; preds = %2372
  %2383 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %578) #9
  br label %2384

2384:                                             ; preds = %2382, %2380
  %.pn691 = phi { ptr, i32 } [ %2383, %2382 ], [ %2381, %2380 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %579) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %579) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %578) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %576) #9
  br label %2385

2385:                                             ; preds = %2384, %2378
  %.pn691.pn = phi { ptr, i32 } [ %.pn691, %2384 ], [ %2379, %2378 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %577) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %577) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %576) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %574) #9
  br label %2386

2386:                                             ; preds = %2385, %2376
  %.pn691.pn.pn = phi { ptr, i32 } [ %.pn691.pn, %2385 ], [ %2377, %2376 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %575) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %575) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %574) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %572) #9
  br label %2387

2387:                                             ; preds = %2386, %2374
  %.pn691.pn.pn.pn = phi { ptr, i32 } [ %.pn691.pn.pn, %2386 ], [ %2375, %2374 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %573) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %573) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %572) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %563) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %560) #9
  br label %3346

2388:                                             ; preds = %2364
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %563) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %560) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %580) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %581) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %582) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %582, ptr noundef nonnull align 4 dereferenceable(64) @constinit.76, i64 64, i1 false), !tbaa.struct !24
  store ptr %582, ptr %581, align 8, !tbaa !19
  %2389 = getelementptr inbounds i8, ptr %581, i64 8
  store i64 16, ptr %2389, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %580, ptr noundef nonnull align 8 dereferenceable(16) %581)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %582) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %581) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %583) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %584) #9
  store float 4.000000e+00, ptr %584, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %585) #9
  store float 2.000000e+00, ptr %585, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %586) #9
  store float 6.000000e+00, ptr %586, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %587) #9
  store float 3.000000e+00, ptr %587, align 4, !tbaa !22
  call void @_ZN3cgp14numarray_stackIfLi4EEC2ERKfS3_S3_S3_(ptr noundef nonnull align 4 dereferenceable(16) %583, ptr noundef nonnull align 4 dereferenceable(4) %584, ptr noundef nonnull align 4 dereferenceable(4) %585, ptr noundef nonnull align 4 dereferenceable(4) %586, ptr noundef nonnull align 4 dereferenceable(4) %587)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %587) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %586) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %585) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %584) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %588) #9
  %2390 = call { <2 x float>, <2 x float> } @_ZN3cgpmlIfLi4ELi4EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(64) %580, ptr noundef nonnull align 4 dereferenceable(16) %583)
  %2391 = extractvalue { <2 x float>, <2 x float> } %2390, 0
  store <2 x float> %2391, ptr %588, align 8
  %2392 = getelementptr inbounds i8, ptr %588, i64 8
  %2393 = extractvalue { <2 x float>, <2 x float> } %2390, 1
  store <2 x float> %2393, ptr %2392, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %589) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %590) #9
  store float 2.900000e+01, ptr %590, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %591) #9
  store float 4.400000e+01, ptr %591, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %592) #9
  store float 5.900000e+01, ptr %592, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %593) #9
  store float 6.700000e+01, ptr %593, align 4, !tbaa !22
  call void @_ZN3cgp14numarray_stackIfLi4EEC2ERKfS3_S3_S3_(ptr noundef nonnull align 4 dereferenceable(16) %589, ptr noundef nonnull align 4 dereferenceable(4) %590, ptr noundef nonnull align 4 dereferenceable(4) %591, ptr noundef nonnull align 4 dereferenceable(4) %592, ptr noundef nonnull align 4 dereferenceable(4) %593)
  %2394 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi4EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(16) %588, ptr noundef nonnull align 4 dereferenceable(16) %589)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %593) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %592) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %591) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %590) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %589) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %588) #9
  br i1 %2394, label %2415, label %2395

2395:                                             ; preds = %2388
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %594) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %595) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %595) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %594, ptr noundef nonnull @.str.77, ptr noundef nonnull align 1 dereferenceable(1) %595)
          to label %2396 unwind label %2401

2396:                                             ; preds = %2395
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %596) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %597) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %597) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %596, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %597)
          to label %2397 unwind label %2403

2397:                                             ; preds = %2396
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %598) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %599) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %599) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %598, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %599)
          to label %2398 unwind label %2405

2398:                                             ; preds = %2397
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %600) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %601) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %601) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %600, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %601)
          to label %2399 unwind label %2407

2399:                                             ; preds = %2398
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %594, ptr noundef nonnull align 8 dereferenceable(32) %596, ptr noundef nonnull align 8 dereferenceable(32) %598, ptr noundef nonnull align 8 dereferenceable(32) %600, i32 noundef 145) #10
          to label %2400 unwind label %2409

2400:                                             ; preds = %2399
  unreachable

2401:                                             ; preds = %2395
  %2402 = landingpad { ptr, i32 }
          cleanup
  br label %2414

2403:                                             ; preds = %2396
  %2404 = landingpad { ptr, i32 }
          cleanup
  br label %2413

2405:                                             ; preds = %2397
  %2406 = landingpad { ptr, i32 }
          cleanup
  br label %2412

2407:                                             ; preds = %2398
  %2408 = landingpad { ptr, i32 }
          cleanup
  br label %2411

2409:                                             ; preds = %2399
  %2410 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %600) #9
  br label %2411

2411:                                             ; preds = %2409, %2407
  %.pn686 = phi { ptr, i32 } [ %2410, %2409 ], [ %2408, %2407 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %601) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %601) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %600) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %598) #9
  br label %2412

2412:                                             ; preds = %2411, %2405
  %.pn686.pn = phi { ptr, i32 } [ %.pn686, %2411 ], [ %2406, %2405 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %599) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %599) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %598) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %596) #9
  br label %2413

2413:                                             ; preds = %2412, %2403
  %.pn686.pn.pn = phi { ptr, i32 } [ %.pn686.pn, %2412 ], [ %2404, %2403 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %597) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %597) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %596) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %594) #9
  br label %2414

2414:                                             ; preds = %2413, %2401
  %.pn686.pn.pn.pn = phi { ptr, i32 } [ %.pn686.pn.pn, %2413 ], [ %2402, %2401 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %595) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %595) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %594) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %583) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %580) #9
  br label %3346

2415:                                             ; preds = %2388
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %583) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %580) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %602) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %603) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %604) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %604, ptr noundef nonnull align 4 dereferenceable(24) @constinit.78, i64 24, i1 false), !tbaa.struct !5
  store ptr %604, ptr %603, align 8, !tbaa !9
  %2416 = getelementptr inbounds i8, ptr %603, i64 8
  store i64 6, ptr %2416, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi3ELi2EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %602, ptr noundef nonnull align 8 dereferenceable(16) %603)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %604) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %603) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %605) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %606) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %607) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %607, ptr noundef nonnull align 4 dereferenceable(24) @constinit.79, i64 24, i1 false), !tbaa.struct !5
  store ptr %607, ptr %606, align 8, !tbaa !9
  %2417 = getelementptr inbounds i8, ptr %606, i64 8
  store i64 6, ptr %2417, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi3ELi2EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %605, ptr noundef nonnull align 8 dereferenceable(16) %606)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %607) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %606) #9
  %2418 = call noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgpmIIiLi3ELi2EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_RKS3_(ptr noundef nonnull align 4 dereferenceable(24) %602, ptr noundef nonnull align 4 dereferenceable(24) %605)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %608) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %609) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %610) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %610, ptr noundef nonnull align 4 dereferenceable(24) @constinit.80, i64 24, i1 false), !tbaa.struct !5
  store ptr %610, ptr %609, align 8, !tbaa !9
  %2419 = getelementptr inbounds i8, ptr %609, i64 8
  store i64 6, ptr %2419, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi3ELi2EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %608, ptr noundef nonnull align 8 dereferenceable(16) %609)
  %2420 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiLi3ELi2ELi3ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24) %602, ptr noundef nonnull align 4 dereferenceable(24) %608)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %610) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %609) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %608) #9
  br i1 %2420, label %2441, label %2421

2421:                                             ; preds = %2415
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %611) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %612) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %612) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %611, ptr noundef nonnull @.str.81, ptr noundef nonnull align 1 dereferenceable(1) %612)
          to label %2422 unwind label %2427

2422:                                             ; preds = %2421
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %613) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %614) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %614) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %613, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %614)
          to label %2423 unwind label %2429

2423:                                             ; preds = %2422
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %615) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %616) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %616) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %615, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %616)
          to label %2424 unwind label %2431

2424:                                             ; preds = %2423
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %617) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %618) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %618) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %617, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %618)
          to label %2425 unwind label %2433

2425:                                             ; preds = %2424
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %611, ptr noundef nonnull align 8 dereferenceable(32) %613, ptr noundef nonnull align 8 dereferenceable(32) %615, ptr noundef nonnull align 8 dereferenceable(32) %617, i32 noundef 157) #10
          to label %2426 unwind label %2435

2426:                                             ; preds = %2425
  unreachable

2427:                                             ; preds = %2421
  %2428 = landingpad { ptr, i32 }
          cleanup
  br label %2440

2429:                                             ; preds = %2422
  %2430 = landingpad { ptr, i32 }
          cleanup
  br label %2439

2431:                                             ; preds = %2423
  %2432 = landingpad { ptr, i32 }
          cleanup
  br label %2438

2433:                                             ; preds = %2424
  %2434 = landingpad { ptr, i32 }
          cleanup
  br label %2437

2435:                                             ; preds = %2425
  %2436 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %617) #9
  br label %2437

2437:                                             ; preds = %2435, %2433
  %.pn680 = phi { ptr, i32 } [ %2436, %2435 ], [ %2434, %2433 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %618) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %618) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %617) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %615) #9
  br label %2438

2438:                                             ; preds = %2437, %2431
  %.pn680.pn = phi { ptr, i32 } [ %.pn680, %2437 ], [ %2432, %2431 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %616) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %616) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %615) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %613) #9
  br label %2439

2439:                                             ; preds = %2438, %2429
  %.pn680.pn.pn = phi { ptr, i32 } [ %.pn680.pn, %2438 ], [ %2430, %2429 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %614) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %614) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %613) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %611) #9
  br label %2440

2440:                                             ; preds = %2439, %2427
  %.pn680.pn.pn.pn = phi { ptr, i32 } [ %.pn680.pn.pn, %2439 ], [ %2428, %2427 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %612) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %612) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %611) #9
  br label %2476

2441:                                             ; preds = %2415
  %2442 = call noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgppLIiLi3ELi2EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_RKS3_(ptr noundef nonnull align 4 dereferenceable(24) %602, ptr noundef nonnull align 4 dereferenceable(24) %605)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %619) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %620) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %621) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %621, ptr noundef nonnull align 4 dereferenceable(24) @constinit.82, i64 24, i1 false), !tbaa.struct !5
  store ptr %621, ptr %620, align 8, !tbaa !9
  %2443 = getelementptr inbounds i8, ptr %620, i64 8
  store i64 6, ptr %2443, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi3ELi2EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %619, ptr noundef nonnull align 8 dereferenceable(16) %620)
  %2444 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiLi3ELi2ELi3ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24) %602, ptr noundef nonnull align 4 dereferenceable(24) %619)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %621) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %620) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %619) #9
  br i1 %2444, label %2465, label %2445

2445:                                             ; preds = %2441
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %622) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %623) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %623) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %622, ptr noundef nonnull @.str.83, ptr noundef nonnull align 1 dereferenceable(1) %623)
          to label %2446 unwind label %2451

2446:                                             ; preds = %2445
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %624) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %625) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %625) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %624, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %625)
          to label %2447 unwind label %2453

2447:                                             ; preds = %2446
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %626) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %627) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %627) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %626, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %627)
          to label %2448 unwind label %2455

2448:                                             ; preds = %2447
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %628) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %629) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %629) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %628, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %629)
          to label %2449 unwind label %2457

2449:                                             ; preds = %2448
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %622, ptr noundef nonnull align 8 dereferenceable(32) %624, ptr noundef nonnull align 8 dereferenceable(32) %626, ptr noundef nonnull align 8 dereferenceable(32) %628, i32 noundef 159) #10
          to label %2450 unwind label %2459

2450:                                             ; preds = %2449
  unreachable

2451:                                             ; preds = %2445
  %2452 = landingpad { ptr, i32 }
          cleanup
  br label %2464

2453:                                             ; preds = %2446
  %2454 = landingpad { ptr, i32 }
          cleanup
  br label %2463

2455:                                             ; preds = %2447
  %2456 = landingpad { ptr, i32 }
          cleanup
  br label %2462

2457:                                             ; preds = %2448
  %2458 = landingpad { ptr, i32 }
          cleanup
  br label %2461

2459:                                             ; preds = %2449
  %2460 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %628) #9
  br label %2461

2461:                                             ; preds = %2459, %2457
  %.pn675 = phi { ptr, i32 } [ %2460, %2459 ], [ %2458, %2457 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %629) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %629) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %628) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %626) #9
  br label %2462

2462:                                             ; preds = %2461, %2455
  %.pn675.pn = phi { ptr, i32 } [ %.pn675, %2461 ], [ %2456, %2455 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %627) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %627) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %626) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %624) #9
  br label %2463

2463:                                             ; preds = %2462, %2453
  %.pn675.pn.pn = phi { ptr, i32 } [ %.pn675.pn, %2462 ], [ %2454, %2453 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %625) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %625) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %624) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %622) #9
  br label %2464

2464:                                             ; preds = %2463, %2451
  %.pn675.pn.pn.pn = phi { ptr, i32 } [ %.pn675.pn.pn, %2463 ], [ %2452, %2451 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %623) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %623) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %622) #9
  br label %2476

2465:                                             ; preds = %2441
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %605) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %602) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %630) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %631) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %632) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %632, ptr noundef nonnull align 4 dereferenceable(24) @constinit.84, i64 24, i1 false), !tbaa.struct !5
  store ptr %632, ptr %631, align 8, !tbaa !9
  %2466 = getelementptr inbounds i8, ptr %631, i64 8
  store i64 6, ptr %2466, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %630, ptr noundef nonnull align 8 dereferenceable(16) %631)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %632) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %631) #9
  %2467 = call noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgpmLIiLi2ELi3EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_f(ptr noundef nonnull align 4 dereferenceable(24) %630, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %633) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %634) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %635) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %635, ptr noundef nonnull align 4 dereferenceable(24) @constinit.85, i64 24, i1 false), !tbaa.struct !5
  store ptr %635, ptr %634, align 8, !tbaa !9
  %2468 = getelementptr inbounds i8, ptr %634, i64 8
  store i64 6, ptr %2468, align 8, !tbaa !13
  call void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24) %633, ptr noundef nonnull align 8 dereferenceable(16) %634)
  %2469 = call noundef zeroext i1 @_ZN3cgp8is_equalIiiLi2ELi3ELi2ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24) %630, ptr noundef nonnull align 4 dereferenceable(24) %633)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %635) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %634) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %633) #9
  br i1 %2469, label %2491, label %2470

2470:                                             ; preds = %2465
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %636) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %637) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %637) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %636, ptr noundef nonnull @.str.86, ptr noundef nonnull align 1 dereferenceable(1) %637)
          to label %2471 unwind label %2477

2471:                                             ; preds = %2470
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %638) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %639) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %639) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %638, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %639)
          to label %2472 unwind label %2479

2472:                                             ; preds = %2471
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %640) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %641) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %641) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %640, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %641)
          to label %2473 unwind label %2481

2473:                                             ; preds = %2472
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %642) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %643) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %643) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %642, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %643)
          to label %2474 unwind label %2483

2474:                                             ; preds = %2473
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %636, ptr noundef nonnull align 8 dereferenceable(32) %638, ptr noundef nonnull align 8 dereferenceable(32) %640, ptr noundef nonnull align 8 dereferenceable(32) %642, i32 noundef 166) #10
          to label %2475 unwind label %2485

2475:                                             ; preds = %2474
  unreachable

2476:                                             ; preds = %2464, %2440
  %.pn680.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn680.pn.pn.pn, %2440 ], [ %.pn675.pn.pn.pn, %2464 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %605) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %602) #9
  br label %3346

2477:                                             ; preds = %2470
  %2478 = landingpad { ptr, i32 }
          cleanup
  br label %2490

2479:                                             ; preds = %2471
  %2480 = landingpad { ptr, i32 }
          cleanup
  br label %2489

2481:                                             ; preds = %2472
  %2482 = landingpad { ptr, i32 }
          cleanup
  br label %2488

2483:                                             ; preds = %2473
  %2484 = landingpad { ptr, i32 }
          cleanup
  br label %2487

2485:                                             ; preds = %2474
  %2486 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %642) #9
  br label %2487

2487:                                             ; preds = %2485, %2483
  %.pn670 = phi { ptr, i32 } [ %2486, %2485 ], [ %2484, %2483 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %643) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %643) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %642) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %640) #9
  br label %2488

2488:                                             ; preds = %2487, %2481
  %.pn670.pn = phi { ptr, i32 } [ %.pn670, %2487 ], [ %2482, %2481 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %641) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %641) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %640) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %638) #9
  br label %2489

2489:                                             ; preds = %2488, %2479
  %.pn670.pn.pn = phi { ptr, i32 } [ %.pn670.pn, %2488 ], [ %2480, %2479 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %639) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %639) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %638) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %636) #9
  br label %2490

2490:                                             ; preds = %2489, %2477
  %.pn670.pn.pn.pn = phi { ptr, i32 } [ %.pn670.pn.pn, %2489 ], [ %2478, %2477 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %637) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %637) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %636) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %630) #9
  br label %3346

2491:                                             ; preds = %2465
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %630) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %644) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %645) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %646) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %646, ptr noundef nonnull align 4 dereferenceable(24) @constinit.87, i64 24, i1 false), !tbaa.struct !5
  store ptr %646, ptr %645, align 8, !tbaa !19
  %2492 = getelementptr inbounds i8, ptr %645, i64 8
  store i64 6, ptr %2492, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi3EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(24) %644, ptr noundef nonnull align 8 dereferenceable(16) %645)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %646) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %645) #9
  %2493 = call noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgpdVIfLi2ELi3EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_f(ptr noundef nonnull align 4 dereferenceable(24) %644, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %647) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %648) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %649) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %649, ptr noundef nonnull align 4 dereferenceable(24) @constinit.88, i64 24, i1 false), !tbaa.struct !5
  store ptr %649, ptr %648, align 8, !tbaa !19
  %2494 = getelementptr inbounds i8, ptr %648, i64 8
  store i64 6, ptr %2494, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi3EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(24) %647, ptr noundef nonnull align 8 dereferenceable(16) %648)
  %2495 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi3ELi2ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24) %644, ptr noundef nonnull align 4 dereferenceable(24) %647)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %649) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %648) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %647) #9
  br i1 %2495, label %2516, label %2496

2496:                                             ; preds = %2491
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %650) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %651) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %651) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %650, ptr noundef nonnull @.str.89, ptr noundef nonnull align 1 dereferenceable(1) %651)
          to label %2497 unwind label %2502

2497:                                             ; preds = %2496
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %652) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %653) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %653) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %652, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %653)
          to label %2498 unwind label %2504

2498:                                             ; preds = %2497
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %654) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %655) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %655) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %654, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %655)
          to label %2499 unwind label %2506

2499:                                             ; preds = %2498
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %656) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %657) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %657) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %656, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %657)
          to label %2500 unwind label %2508

2500:                                             ; preds = %2499
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %650, ptr noundef nonnull align 8 dereferenceable(32) %652, ptr noundef nonnull align 8 dereferenceable(32) %654, ptr noundef nonnull align 8 dereferenceable(32) %656, i32 noundef 173) #10
          to label %2501 unwind label %2510

2501:                                             ; preds = %2500
  unreachable

2502:                                             ; preds = %2496
  %2503 = landingpad { ptr, i32 }
          cleanup
  br label %2515

2504:                                             ; preds = %2497
  %2505 = landingpad { ptr, i32 }
          cleanup
  br label %2514

2506:                                             ; preds = %2498
  %2507 = landingpad { ptr, i32 }
          cleanup
  br label %2513

2508:                                             ; preds = %2499
  %2509 = landingpad { ptr, i32 }
          cleanup
  br label %2512

2510:                                             ; preds = %2500
  %2511 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %656) #9
  br label %2512

2512:                                             ; preds = %2510, %2508
  %.pn665 = phi { ptr, i32 } [ %2511, %2510 ], [ %2509, %2508 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %657) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %657) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %656) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %654) #9
  br label %2513

2513:                                             ; preds = %2512, %2506
  %.pn665.pn = phi { ptr, i32 } [ %.pn665, %2512 ], [ %2507, %2506 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %655) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %655) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %654) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %652) #9
  br label %2514

2514:                                             ; preds = %2513, %2504
  %.pn665.pn.pn = phi { ptr, i32 } [ %.pn665.pn, %2513 ], [ %2505, %2504 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %653) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %653) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %652) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %650) #9
  br label %2515

2515:                                             ; preds = %2514, %2502
  %.pn665.pn.pn.pn = phi { ptr, i32 } [ %.pn665.pn.pn, %2514 ], [ %2503, %2502 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %651) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %651) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %650) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %644) #9
  br label %3346

2516:                                             ; preds = %2491
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %644) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %658) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %659) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %660) #9
  store <4 x float> <float 1.000000e+00, float 2.000000e+00, float 3.000000e+00, float 4.000000e+00>, ptr %660, align 16, !tbaa !22
  store ptr %660, ptr %659, align 8, !tbaa !19
  %2517 = getelementptr inbounds i8, ptr %659, i64 8
  store i64 4, ptr %2517, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %658, ptr noundef nonnull align 8 dereferenceable(16) %659)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %660) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %659) #9
  %2518 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN3cgpmLIfLi2ELi2EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_f(ptr noundef nonnull align 4 dereferenceable(16) %658, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %661) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %662) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %663) #9
  store <4 x float> <float 2.000000e+00, float 4.000000e+00, float 6.000000e+00, float 8.000000e+00>, ptr %663, align 16, !tbaa !22
  store ptr %663, ptr %662, align 8, !tbaa !19
  %2519 = getelementptr inbounds i8, ptr %662, i64 8
  store i64 4, ptr %2519, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %661, ptr noundef nonnull align 8 dereferenceable(16) %662)
  %2520 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %658, ptr noundef nonnull align 4 dereferenceable(16) %661)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %663) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %662) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %661) #9
  br i1 %2520, label %2541, label %2521

2521:                                             ; preds = %2516
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %664) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %665) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %665) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %664, ptr noundef nonnull @.str.90, ptr noundef nonnull align 1 dereferenceable(1) %665)
          to label %2522 unwind label %2527

2522:                                             ; preds = %2521
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %666) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %667) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %667) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %666, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %667)
          to label %2523 unwind label %2529

2523:                                             ; preds = %2522
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %668) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %669) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %669) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %668, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %669)
          to label %2524 unwind label %2531

2524:                                             ; preds = %2523
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %670) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %671) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %671) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %670, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %671)
          to label %2525 unwind label %2533

2525:                                             ; preds = %2524
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %664, ptr noundef nonnull align 8 dereferenceable(32) %666, ptr noundef nonnull align 8 dereferenceable(32) %668, ptr noundef nonnull align 8 dereferenceable(32) %670, i32 noundef 184) #10
          to label %2526 unwind label %2535

2526:                                             ; preds = %2525
  unreachable

2527:                                             ; preds = %2521
  %2528 = landingpad { ptr, i32 }
          cleanup
  br label %2540

2529:                                             ; preds = %2522
  %2530 = landingpad { ptr, i32 }
          cleanup
  br label %2539

2531:                                             ; preds = %2523
  %2532 = landingpad { ptr, i32 }
          cleanup
  br label %2538

2533:                                             ; preds = %2524
  %2534 = landingpad { ptr, i32 }
          cleanup
  br label %2537

2535:                                             ; preds = %2525
  %2536 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %670) #9
  br label %2537

2537:                                             ; preds = %2535, %2533
  %.pn660 = phi { ptr, i32 } [ %2536, %2535 ], [ %2534, %2533 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %671) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %671) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %670) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %668) #9
  br label %2538

2538:                                             ; preds = %2537, %2531
  %.pn660.pn = phi { ptr, i32 } [ %.pn660, %2537 ], [ %2532, %2531 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %669) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %669) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %668) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %666) #9
  br label %2539

2539:                                             ; preds = %2538, %2529
  %.pn660.pn.pn = phi { ptr, i32 } [ %.pn660.pn, %2538 ], [ %2530, %2529 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %667) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %667) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %666) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %664) #9
  br label %2540

2540:                                             ; preds = %2539, %2527
  %.pn660.pn.pn.pn = phi { ptr, i32 } [ %.pn660.pn.pn, %2539 ], [ %2528, %2527 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %665) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %665) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %664) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %658) #9
  br label %3346

2541:                                             ; preds = %2516
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %658) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %672) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %673) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %674) #9
  store <4 x float> <float 1.000000e+00, float 2.000000e+00, float 3.000000e+00, float 4.000000e+00>, ptr %674, align 16, !tbaa !22
  store ptr %674, ptr %673, align 8, !tbaa !19
  %2542 = getelementptr inbounds i8, ptr %673, i64 8
  store i64 4, ptr %2542, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %672, ptr noundef nonnull align 8 dereferenceable(16) %673)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %674) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %673) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %675) #9
  %2543 = call { <2 x float>, <2 x float> } @_ZN3cgpngIfLi2ELi2EEENS_12matrix_stackIT_XT0_EXT1_EEERKS3_(ptr noundef nonnull align 4 dereferenceable(16) %672)
  %2544 = extractvalue { <2 x float>, <2 x float> } %2543, 0
  store <2 x float> %2544, ptr %675, align 8
  %2545 = getelementptr inbounds i8, ptr %675, i64 8
  %2546 = extractvalue { <2 x float>, <2 x float> } %2543, 1
  store <2 x float> %2546, ptr %2545, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %676) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %677) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %678) #9
  store <4 x float> <float -1.000000e+00, float -2.000000e+00, float -3.000000e+00, float -4.000000e+00>, ptr %678, align 16, !tbaa !22
  store ptr %678, ptr %677, align 8, !tbaa !19
  %2547 = getelementptr inbounds i8, ptr %677, i64 8
  store i64 4, ptr %2547, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %676, ptr noundef nonnull align 8 dereferenceable(16) %677)
  %2548 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %675, ptr noundef nonnull align 4 dereferenceable(16) %676)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %678) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %677) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %676) #9
  br i1 %2548, label %2569, label %2549

2549:                                             ; preds = %2541
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %679) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %680) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %680) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %679, ptr noundef nonnull @.str.91, ptr noundef nonnull align 1 dereferenceable(1) %680)
          to label %2550 unwind label %2555

2550:                                             ; preds = %2549
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %681) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %682) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %682) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %682)
          to label %2551 unwind label %2557

2551:                                             ; preds = %2550
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %683) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %684) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %684) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %683, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %684)
          to label %2552 unwind label %2559

2552:                                             ; preds = %2551
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %685) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %686) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %686) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %685, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %686)
          to label %2553 unwind label %2561

2553:                                             ; preds = %2552
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %679, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %683, ptr noundef nonnull align 8 dereferenceable(32) %685, i32 noundef 189) #10
          to label %2554 unwind label %2563

2554:                                             ; preds = %2553
  unreachable

2555:                                             ; preds = %2549
  %2556 = landingpad { ptr, i32 }
          cleanup
  br label %2568

2557:                                             ; preds = %2550
  %2558 = landingpad { ptr, i32 }
          cleanup
  br label %2567

2559:                                             ; preds = %2551
  %2560 = landingpad { ptr, i32 }
          cleanup
  br label %2566

2561:                                             ; preds = %2552
  %2562 = landingpad { ptr, i32 }
          cleanup
  br label %2565

2563:                                             ; preds = %2553
  %2564 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %685) #9
  br label %2565

2565:                                             ; preds = %2563, %2561
  %.pn655 = phi { ptr, i32 } [ %2564, %2563 ], [ %2562, %2561 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %686) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %686) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %685) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %683) #9
  br label %2566

2566:                                             ; preds = %2565, %2559
  %.pn655.pn = phi { ptr, i32 } [ %.pn655, %2565 ], [ %2560, %2559 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %684) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %684) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %683) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %681) #9
  br label %2567

2567:                                             ; preds = %2566, %2557
  %.pn655.pn.pn = phi { ptr, i32 } [ %.pn655.pn, %2566 ], [ %2558, %2557 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %682) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %682) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %681) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %679) #9
  br label %2568

2568:                                             ; preds = %2567, %2555
  %.pn655.pn.pn.pn = phi { ptr, i32 } [ %.pn655.pn.pn, %2567 ], [ %2556, %2555 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %680) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %680) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %679) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %675) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %672) #9
  br label %3346

2569:                                             ; preds = %2541
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %675) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %672) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %687) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %688) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %689) #9
  store i32 1, ptr %689, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %690) #9
  store i32 2, ptr %690, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %691) #9
  store i32 3, ptr %691, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %688, ptr noundef nonnull align 4 dereferenceable(4) %689, ptr noundef nonnull align 4 dereferenceable(4) %690, ptr noundef nonnull align 4 dereferenceable(4) %691)
  call void @_ZN3cgp12matrix_stackIfLi3ELi1EEC2ERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(12) %687, ptr noundef nonnull align 4 dereferenceable(12) %688)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %691) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %690) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %689) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %688) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %692) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %693) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %694) #9
  store <2 x float> <float 1.000000e+00, float 2.000000e+00>, ptr %694, align 8, !tbaa !22
  %2570 = getelementptr inbounds i8, ptr %694, i64 8
  store float 3.000000e+00, ptr %2570, align 8, !tbaa !22
  store ptr %694, ptr %693, align 8, !tbaa !19
  %2571 = getelementptr inbounds i8, ptr %693, i64 8
  store i64 3, ptr %2571, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi1EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(12) %692, ptr noundef nonnull align 8 dereferenceable(16) %693)
  %2572 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi1ELi3ELi1EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(12) %687, ptr noundef nonnull align 4 dereferenceable(12) %692)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %694) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %693) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %692) #9
  br i1 %2572, label %2593, label %2573

2573:                                             ; preds = %2569
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %695) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %696) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %696) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %695, ptr noundef nonnull @.str.92, ptr noundef nonnull align 1 dereferenceable(1) %696)
          to label %2574 unwind label %2579

2574:                                             ; preds = %2573
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %697) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %698) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %698) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %697, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %698)
          to label %2575 unwind label %2581

2575:                                             ; preds = %2574
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %699) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %700) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %700) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %699, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %700)
          to label %2576 unwind label %2583

2576:                                             ; preds = %2575
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %701) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %702) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %702) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %701, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %702)
          to label %2577 unwind label %2585

2577:                                             ; preds = %2576
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %695, ptr noundef nonnull align 8 dereferenceable(32) %697, ptr noundef nonnull align 8 dereferenceable(32) %699, ptr noundef nonnull align 8 dereferenceable(32) %701, i32 noundef 198) #10
          to label %2578 unwind label %2587

2578:                                             ; preds = %2577
  unreachable

2579:                                             ; preds = %2573
  %2580 = landingpad { ptr, i32 }
          cleanup
  br label %2592

2581:                                             ; preds = %2574
  %2582 = landingpad { ptr, i32 }
          cleanup
  br label %2591

2583:                                             ; preds = %2575
  %2584 = landingpad { ptr, i32 }
          cleanup
  br label %2590

2585:                                             ; preds = %2576
  %2586 = landingpad { ptr, i32 }
          cleanup
  br label %2589

2587:                                             ; preds = %2577
  %2588 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %701) #9
  br label %2589

2589:                                             ; preds = %2587, %2585
  %.pn650 = phi { ptr, i32 } [ %2588, %2587 ], [ %2586, %2585 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %702) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %702) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %701) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %699) #9
  br label %2590

2590:                                             ; preds = %2589, %2583
  %.pn650.pn = phi { ptr, i32 } [ %.pn650, %2589 ], [ %2584, %2583 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %700) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %700) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %699) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %697) #9
  br label %2591

2591:                                             ; preds = %2590, %2581
  %.pn650.pn.pn = phi { ptr, i32 } [ %.pn650.pn, %2590 ], [ %2582, %2581 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %698) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %698) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %697) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %695) #9
  br label %2592

2592:                                             ; preds = %2591, %2579
  %.pn650.pn.pn.pn = phi { ptr, i32 } [ %.pn650.pn.pn, %2591 ], [ %2580, %2579 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %696) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %696) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %695) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %687) #9
  br label %3346

2593:                                             ; preds = %2569
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %687) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %703) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %704) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %705) #9
  store i32 1, ptr %705, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %706) #9
  store i32 2, ptr %706, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %707) #9
  store i32 3, ptr %707, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %704, ptr noundef nonnull align 4 dereferenceable(4) %705, ptr noundef nonnull align 4 dereferenceable(4) %706, ptr noundef nonnull align 4 dereferenceable(4) %707)
  call void @_ZN3cgp12matrix_stackIfLi1ELi3EEC2ERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(12) %703, ptr noundef nonnull align 4 dereferenceable(12) %704)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %707) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %706) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %705) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %704) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %708) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %709) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %710) #9
  store <2 x float> <float 1.000000e+00, float 2.000000e+00>, ptr %710, align 8, !tbaa !22
  %2594 = getelementptr inbounds i8, ptr %710, i64 8
  store float 3.000000e+00, ptr %2594, align 8, !tbaa !22
  store ptr %710, ptr %709, align 8, !tbaa !19
  %2595 = getelementptr inbounds i8, ptr %709, i64 8
  store i64 3, ptr %2595, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi1ELi3EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(12) %708, ptr noundef nonnull align 8 dereferenceable(16) %709)
  %2596 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi1ELi3ELi1ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(12) %703, ptr noundef nonnull align 4 dereferenceable(12) %708)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %710) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %709) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %708) #9
  br i1 %2596, label %2617, label %2597

2597:                                             ; preds = %2593
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %711) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %712) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %712) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %711, ptr noundef nonnull @.str.93, ptr noundef nonnull align 1 dereferenceable(1) %712)
          to label %2598 unwind label %2603

2598:                                             ; preds = %2597
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %713) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %714) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %714) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %713, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %714)
          to label %2599 unwind label %2605

2599:                                             ; preds = %2598
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %715) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %716) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %716) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %715, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %716)
          to label %2600 unwind label %2607

2600:                                             ; preds = %2599
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %717) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %718) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %718) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %717, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %718)
          to label %2601 unwind label %2609

2601:                                             ; preds = %2600
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %711, ptr noundef nonnull align 8 dereferenceable(32) %713, ptr noundef nonnull align 8 dereferenceable(32) %715, ptr noundef nonnull align 8 dereferenceable(32) %717, i32 noundef 202) #10
          to label %2602 unwind label %2611

2602:                                             ; preds = %2601
  unreachable

2603:                                             ; preds = %2597
  %2604 = landingpad { ptr, i32 }
          cleanup
  br label %2616

2605:                                             ; preds = %2598
  %2606 = landingpad { ptr, i32 }
          cleanup
  br label %2615

2607:                                             ; preds = %2599
  %2608 = landingpad { ptr, i32 }
          cleanup
  br label %2614

2609:                                             ; preds = %2600
  %2610 = landingpad { ptr, i32 }
          cleanup
  br label %2613

2611:                                             ; preds = %2601
  %2612 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %717) #9
  br label %2613

2613:                                             ; preds = %2611, %2609
  %.pn645 = phi { ptr, i32 } [ %2612, %2611 ], [ %2610, %2609 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %718) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %718) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %717) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %715) #9
  br label %2614

2614:                                             ; preds = %2613, %2607
  %.pn645.pn = phi { ptr, i32 } [ %.pn645, %2613 ], [ %2608, %2607 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %716) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %716) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %715) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %713) #9
  br label %2615

2615:                                             ; preds = %2614, %2605
  %.pn645.pn.pn = phi { ptr, i32 } [ %.pn645.pn, %2614 ], [ %2606, %2605 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %714) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %714) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %713) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %711) #9
  br label %2616

2616:                                             ; preds = %2615, %2603
  %.pn645.pn.pn.pn = phi { ptr, i32 } [ %.pn645.pn.pn, %2615 ], [ %2604, %2603 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %712) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %712) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %711) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %703) #9
  br label %3346

2617:                                             ; preds = %2593
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %703) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %719) #9
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1Ev(ptr noundef nonnull align 4 dereferenceable(16) %719)
  %2618 = call noundef nonnull align 4 dereferenceable(16) ptr @_ZN3cgp12matrix_stackIfLi2ELi2EE4fillEf(ptr noundef nonnull align 4 dereferenceable(16) %719, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %720) #9
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1Ev(ptr noundef nonnull align 4 dereferenceable(36) %720)
  %2619 = call noundef nonnull align 4 dereferenceable(36) ptr @_ZN3cgp12matrix_stackIfLi3ELi3EE4fillEf(ptr noundef nonnull align 4 dereferenceable(36) %720, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %721) #9
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Ev(ptr noundef nonnull align 4 dereferenceable(64) %721)
  %2620 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE4fillEf(ptr noundef nonnull align 4 dereferenceable(64) %721, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %722) #9
  call void @_ZN3cgp12matrix_stackIfLi2ELi3EEC2Ev(ptr noundef nonnull align 4 dereferenceable(24) %722)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %723) #9
  store float 2.000000e+00, ptr %723, align 4, !tbaa !22
  %2621 = call noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgp12matrix_stackIfLi2ELi3EE4fillERKf(ptr noundef nonnull align 4 dereferenceable(24) %722, ptr noundef nonnull align 4 dereferenceable(4) %723)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %723) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %724) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %725) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %726) #9
  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, ptr %726, align 16, !tbaa !22
  store ptr %726, ptr %725, align 8, !tbaa !19
  %2622 = getelementptr inbounds i8, ptr %725, i64 8
  store i64 4, ptr %2622, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %724, ptr noundef nonnull align 8 dereferenceable(16) %725)
  %2623 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %719, ptr noundef nonnull align 4 dereferenceable(16) %724)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %726) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %725) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %724) #9
  br i1 %2623, label %2644, label %2624

2624:                                             ; preds = %2617
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %727) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %728) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %728) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %727, ptr noundef nonnull @.str.94, ptr noundef nonnull align 1 dereferenceable(1) %728)
          to label %2625 unwind label %2630

2625:                                             ; preds = %2624
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %729) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %730) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %730) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %729, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %730)
          to label %2626 unwind label %2632

2626:                                             ; preds = %2625
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %731) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %732) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %732) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %731, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %732)
          to label %2627 unwind label %2634

2627:                                             ; preds = %2626
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %733) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %734) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %734) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %733, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %734)
          to label %2628 unwind label %2636

2628:                                             ; preds = %2627
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %727, ptr noundef nonnull align 8 dereferenceable(32) %729, ptr noundef nonnull align 8 dereferenceable(32) %731, ptr noundef nonnull align 8 dereferenceable(32) %733, i32 noundef 214) #10
          to label %2629 unwind label %2638

2629:                                             ; preds = %2628
  unreachable

2630:                                             ; preds = %2624
  %2631 = landingpad { ptr, i32 }
          cleanup
  br label %2643

2632:                                             ; preds = %2625
  %2633 = landingpad { ptr, i32 }
          cleanup
  br label %2642

2634:                                             ; preds = %2626
  %2635 = landingpad { ptr, i32 }
          cleanup
  br label %2641

2636:                                             ; preds = %2627
  %2637 = landingpad { ptr, i32 }
          cleanup
  br label %2640

2638:                                             ; preds = %2628
  %2639 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %733) #9
  br label %2640

2640:                                             ; preds = %2638, %2636
  %.pn639 = phi { ptr, i32 } [ %2639, %2638 ], [ %2637, %2636 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %734) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %734) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %733) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %731) #9
  br label %2641

2641:                                             ; preds = %2640, %2634
  %.pn639.pn = phi { ptr, i32 } [ %.pn639, %2640 ], [ %2635, %2634 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %732) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %732) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %731) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %729) #9
  br label %2642

2642:                                             ; preds = %2641, %2632
  %.pn639.pn.pn = phi { ptr, i32 } [ %.pn639.pn, %2641 ], [ %2633, %2632 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %730) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %730) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %729) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %727) #9
  br label %2643

2643:                                             ; preds = %2642, %2630
  %.pn639.pn.pn.pn = phi { ptr, i32 } [ %.pn639.pn.pn, %2642 ], [ %2631, %2630 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %728) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %728) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %727) #9
  br label %2723

2644:                                             ; preds = %2617
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %735) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %736) #9
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %737) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %737, ptr noundef nonnull align 4 dereferenceable(36) @constinit.95, i64 36, i1 false), !tbaa.struct !18
  store ptr %737, ptr %736, align 8, !tbaa !19
  %2645 = getelementptr inbounds i8, ptr %736, i64 8
  store i64 9, ptr %2645, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %735, ptr noundef nonnull align 8 dereferenceable(16) %736)
  %2646 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %720, ptr noundef nonnull align 4 dereferenceable(36) %735)
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %737) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %736) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %735) #9
  br i1 %2646, label %2667, label %2647

2647:                                             ; preds = %2644
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %738) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %739) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %739) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %738, ptr noundef nonnull @.str.96, ptr noundef nonnull align 1 dereferenceable(1) %739)
          to label %2648 unwind label %2653

2648:                                             ; preds = %2647
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %740) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %741) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %741) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %740, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %741)
          to label %2649 unwind label %2655

2649:                                             ; preds = %2648
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %742) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %743) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %743) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %742, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %743)
          to label %2650 unwind label %2657

2650:                                             ; preds = %2649
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %744) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %745) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %745) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %744, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %745)
          to label %2651 unwind label %2659

2651:                                             ; preds = %2650
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %738, ptr noundef nonnull align 8 dereferenceable(32) %740, ptr noundef nonnull align 8 dereferenceable(32) %742, ptr noundef nonnull align 8 dereferenceable(32) %744, i32 noundef 215) #10
          to label %2652 unwind label %2661

2652:                                             ; preds = %2651
  unreachable

2653:                                             ; preds = %2647
  %2654 = landingpad { ptr, i32 }
          cleanup
  br label %2666

2655:                                             ; preds = %2648
  %2656 = landingpad { ptr, i32 }
          cleanup
  br label %2665

2657:                                             ; preds = %2649
  %2658 = landingpad { ptr, i32 }
          cleanup
  br label %2664

2659:                                             ; preds = %2650
  %2660 = landingpad { ptr, i32 }
          cleanup
  br label %2663

2661:                                             ; preds = %2651
  %2662 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %744) #9
  br label %2663

2663:                                             ; preds = %2661, %2659
  %.pn634 = phi { ptr, i32 } [ %2662, %2661 ], [ %2660, %2659 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %745) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %745) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %744) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %742) #9
  br label %2664

2664:                                             ; preds = %2663, %2657
  %.pn634.pn = phi { ptr, i32 } [ %.pn634, %2663 ], [ %2658, %2657 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %743) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %743) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %742) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %740) #9
  br label %2665

2665:                                             ; preds = %2664, %2655
  %.pn634.pn.pn = phi { ptr, i32 } [ %.pn634.pn, %2664 ], [ %2656, %2655 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %741) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %741) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %740) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %738) #9
  br label %2666

2666:                                             ; preds = %2665, %2653
  %.pn634.pn.pn.pn = phi { ptr, i32 } [ %.pn634.pn.pn, %2665 ], [ %2654, %2653 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %739) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %739) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %738) #9
  br label %2723

2667:                                             ; preds = %2644
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %746) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %747) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %748) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %748, ptr noundef nonnull align 4 dereferenceable(64) @constinit.97, i64 64, i1 false), !tbaa.struct !24
  store ptr %748, ptr %747, align 8, !tbaa !19
  %2668 = getelementptr inbounds i8, ptr %747, i64 8
  store i64 16, ptr %2668, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %746, ptr noundef nonnull align 8 dereferenceable(16) %747)
  %2669 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %721, ptr noundef nonnull align 4 dereferenceable(64) %746)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %748) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %747) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %746) #9
  br i1 %2669, label %2690, label %2670

2670:                                             ; preds = %2667
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %749) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %750) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %750) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %749, ptr noundef nonnull @.str.98, ptr noundef nonnull align 1 dereferenceable(1) %750)
          to label %2671 unwind label %2676

2671:                                             ; preds = %2670
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %751) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %752) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %752) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %751, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %752)
          to label %2672 unwind label %2678

2672:                                             ; preds = %2671
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %753) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %754) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %754) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %753, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %754)
          to label %2673 unwind label %2680

2673:                                             ; preds = %2672
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %755) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %756) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %756) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %755, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %756)
          to label %2674 unwind label %2682

2674:                                             ; preds = %2673
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %749, ptr noundef nonnull align 8 dereferenceable(32) %751, ptr noundef nonnull align 8 dereferenceable(32) %753, ptr noundef nonnull align 8 dereferenceable(32) %755, i32 noundef 216) #10
          to label %2675 unwind label %2684

2675:                                             ; preds = %2674
  unreachable

2676:                                             ; preds = %2670
  %2677 = landingpad { ptr, i32 }
          cleanup
  br label %2689

2678:                                             ; preds = %2671
  %2679 = landingpad { ptr, i32 }
          cleanup
  br label %2688

2680:                                             ; preds = %2672
  %2681 = landingpad { ptr, i32 }
          cleanup
  br label %2687

2682:                                             ; preds = %2673
  %2683 = landingpad { ptr, i32 }
          cleanup
  br label %2686

2684:                                             ; preds = %2674
  %2685 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %755) #9
  br label %2686

2686:                                             ; preds = %2684, %2682
  %.pn629 = phi { ptr, i32 } [ %2685, %2684 ], [ %2683, %2682 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %756) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %756) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %755) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %753) #9
  br label %2687

2687:                                             ; preds = %2686, %2680
  %.pn629.pn = phi { ptr, i32 } [ %.pn629, %2686 ], [ %2681, %2680 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %754) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %754) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %753) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %751) #9
  br label %2688

2688:                                             ; preds = %2687, %2678
  %.pn629.pn.pn = phi { ptr, i32 } [ %.pn629.pn, %2687 ], [ %2679, %2678 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %752) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %752) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %751) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %749) #9
  br label %2689

2689:                                             ; preds = %2688, %2676
  %.pn629.pn.pn.pn = phi { ptr, i32 } [ %.pn629.pn.pn, %2688 ], [ %2677, %2676 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %750) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %750) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %749) #9
  br label %2723

2690:                                             ; preds = %2667
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %757) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %758) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %759) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %759, ptr noundef nonnull align 4 dereferenceable(24) @constinit.99, i64 24, i1 false), !tbaa.struct !5
  store ptr %759, ptr %758, align 8, !tbaa !19
  %2691 = getelementptr inbounds i8, ptr %758, i64 8
  store i64 6, ptr %2691, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi3EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(24) %757, ptr noundef nonnull align 8 dereferenceable(16) %758)
  %2692 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi3ELi2ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24) %722, ptr noundef nonnull align 4 dereferenceable(24) %757)
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %759) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %758) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %757) #9
  br i1 %2692, label %2713, label %2693

2693:                                             ; preds = %2690
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %760) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %761) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %761) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %760, ptr noundef nonnull @.str.100, ptr noundef nonnull align 1 dereferenceable(1) %761)
          to label %2694 unwind label %2699

2694:                                             ; preds = %2693
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %762) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %763) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %763) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %762, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %763)
          to label %2695 unwind label %2701

2695:                                             ; preds = %2694
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %764) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %765) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %765) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %764, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %765)
          to label %2696 unwind label %2703

2696:                                             ; preds = %2695
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %766) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %767) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %767) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %766, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %767)
          to label %2697 unwind label %2705

2697:                                             ; preds = %2696
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %760, ptr noundef nonnull align 8 dereferenceable(32) %762, ptr noundef nonnull align 8 dereferenceable(32) %764, ptr noundef nonnull align 8 dereferenceable(32) %766, i32 noundef 217) #10
          to label %2698 unwind label %2707

2698:                                             ; preds = %2697
  unreachable

2699:                                             ; preds = %2693
  %2700 = landingpad { ptr, i32 }
          cleanup
  br label %2712

2701:                                             ; preds = %2694
  %2702 = landingpad { ptr, i32 }
          cleanup
  br label %2711

2703:                                             ; preds = %2695
  %2704 = landingpad { ptr, i32 }
          cleanup
  br label %2710

2705:                                             ; preds = %2696
  %2706 = landingpad { ptr, i32 }
          cleanup
  br label %2709

2707:                                             ; preds = %2697
  %2708 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %766) #9
  br label %2709

2709:                                             ; preds = %2707, %2705
  %.pn624 = phi { ptr, i32 } [ %2708, %2707 ], [ %2706, %2705 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %767) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %767) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %766) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %764) #9
  br label %2710

2710:                                             ; preds = %2709, %2703
  %.pn624.pn = phi { ptr, i32 } [ %.pn624, %2709 ], [ %2704, %2703 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %765) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %765) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %764) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %762) #9
  br label %2711

2711:                                             ; preds = %2710, %2701
  %.pn624.pn.pn = phi { ptr, i32 } [ %.pn624.pn, %2710 ], [ %2702, %2701 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %763) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %763) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %762) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %760) #9
  br label %2712

2712:                                             ; preds = %2711, %2699
  %.pn624.pn.pn.pn = phi { ptr, i32 } [ %.pn624.pn.pn, %2711 ], [ %2700, %2699 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %761) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %761) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %760) #9
  br label %2723

2713:                                             ; preds = %2690
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %722) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %721) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %720) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %719) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %768) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %769) #9
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EE13build_scalingEfff(ptr dead_on_unwind nonnull writable sret(%"struct.cgp::matrix_stack.23") align 4 %769, float noundef 5.000000e+00, float noundef 3.000000e+00, float noundef 2.000000e+00)
  %2714 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE21set_block_translationEfff(ptr noundef nonnull align 4 dereferenceable(64) %769, float noundef 1.000000e+00, float noundef 2.000000e+00, float noundef 3.000000e+00)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %768, ptr noundef nonnull align 4 dereferenceable(64) %2714, i64 64, i1 false), !tbaa.struct !25
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %769) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %770) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %771) #9
  store i32 4, ptr %771, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %772) #9
  store i32 8, ptr %772, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %773) #9
  store i32 -1, ptr %773, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %770, ptr noundef nonnull align 4 dereferenceable(4) %771, ptr noundef nonnull align 4 dereferenceable(4) %772, ptr noundef nonnull align 4 dereferenceable(4) %773)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %773) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %772) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %771) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %774) #9
  %2715 = call { <2 x float>, float } @_ZNK3cgp12matrix_stackIfLi4ELi4EE18transform_positionERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(64) %768, ptr noundef nonnull align 4 dereferenceable(12) %770)
  %.fca.0.extract21 = extractvalue { <2 x float>, float } %2715, 0
  %.fca.1.extract22 = extractvalue { <2 x float>, float } %2715, 1
  store <2 x float> %.fca.0.extract21, ptr %774, align 8
  %.sroa.224.0..sroa_idx = getelementptr inbounds i8, ptr %774, i64 8
  store float %.fca.1.extract22, ptr %.sroa.224.0..sroa_idx, align 8
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %775) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %776) #9
  store i32 21, ptr %776, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %777) #9
  store i32 26, ptr %777, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %778) #9
  store i32 1, ptr %778, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %775, ptr noundef nonnull align 4 dereferenceable(4) %776, ptr noundef nonnull align 4 dereferenceable(4) %777, ptr noundef nonnull align 4 dereferenceable(4) %778)
  %2716 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %774, ptr noundef nonnull align 4 dereferenceable(12) %775)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %778) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %777) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %776) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %775) #9
  br i1 %2716, label %2738, label %2717

2717:                                             ; preds = %2713
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %779) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %780) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %780) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %779, ptr noundef nonnull @.str.101, ptr noundef nonnull align 1 dereferenceable(1) %780)
          to label %2718 unwind label %2724

2718:                                             ; preds = %2717
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %781) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %782) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %782) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %781, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %782)
          to label %2719 unwind label %2726

2719:                                             ; preds = %2718
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %783) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %784) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %784) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %783, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %784)
          to label %2720 unwind label %2728

2720:                                             ; preds = %2719
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %785) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %786) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %786) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %785, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %786)
          to label %2721 unwind label %2730

2721:                                             ; preds = %2720
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %779, ptr noundef nonnull align 8 dereferenceable(32) %781, ptr noundef nonnull align 8 dereferenceable(32) %783, ptr noundef nonnull align 8 dereferenceable(32) %785, i32 noundef 227) #10
          to label %2722 unwind label %2732

2722:                                             ; preds = %2721
  unreachable

2723:                                             ; preds = %2712, %2689, %2666, %2643
  %.pn639.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn639.pn.pn.pn, %2643 ], [ %.pn634.pn.pn.pn, %2666 ], [ %.pn629.pn.pn.pn, %2689 ], [ %.pn624.pn.pn.pn, %2712 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %722) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %721) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %720) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %719) #9
  br label %3346

2724:                                             ; preds = %2717
  %2725 = landingpad { ptr, i32 }
          cleanup
  br label %2737

2726:                                             ; preds = %2718
  %2727 = landingpad { ptr, i32 }
          cleanup
  br label %2736

2728:                                             ; preds = %2719
  %2729 = landingpad { ptr, i32 }
          cleanup
  br label %2735

2730:                                             ; preds = %2720
  %2731 = landingpad { ptr, i32 }
          cleanup
  br label %2734

2732:                                             ; preds = %2721
  %2733 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %785) #9
  br label %2734

2734:                                             ; preds = %2732, %2730
  %.pn619 = phi { ptr, i32 } [ %2733, %2732 ], [ %2731, %2730 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %786) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %786) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %785) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %783) #9
  br label %2735

2735:                                             ; preds = %2734, %2728
  %.pn619.pn = phi { ptr, i32 } [ %.pn619, %2734 ], [ %2729, %2728 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %784) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %784) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %783) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %781) #9
  br label %2736

2736:                                             ; preds = %2735, %2726
  %.pn619.pn.pn = phi { ptr, i32 } [ %.pn619.pn, %2735 ], [ %2727, %2726 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %782) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %782) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %781) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %779) #9
  br label %2737

2737:                                             ; preds = %2736, %2724
  %.pn619.pn.pn.pn = phi { ptr, i32 } [ %.pn619.pn.pn, %2736 ], [ %2725, %2724 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %780) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %780) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %779) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %774) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %770) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %768) #9
  br label %3346

2738:                                             ; preds = %2713
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %774) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %770) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %768) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %787) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %788) #9
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EE13build_scalingEfff(ptr dead_on_unwind nonnull writable sret(%"struct.cgp::matrix_stack.23") align 4 %788, float noundef 5.000000e+00, float noundef 3.000000e+00, float noundef 2.000000e+00)
  %2739 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE21set_block_translationEfff(ptr noundef nonnull align 4 dereferenceable(64) %788, float noundef 1.000000e+00, float noundef 2.000000e+00, float noundef 3.000000e+00)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %787, ptr noundef nonnull align 4 dereferenceable(64) %2739, i64 64, i1 false), !tbaa.struct !25
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %788) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %789) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %790) #9
  store i32 4, ptr %790, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %791) #9
  store i32 8, ptr %791, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %792) #9
  store i32 -1, ptr %792, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %789, ptr noundef nonnull align 4 dereferenceable(4) %790, ptr noundef nonnull align 4 dereferenceable(4) %791, ptr noundef nonnull align 4 dereferenceable(4) %792)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %792) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %791) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %790) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %793) #9
  %2740 = call { <2 x float>, float } @_ZNK3cgp12matrix_stackIfLi4ELi4EE16transform_vectorERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(64) %787, ptr noundef nonnull align 4 dereferenceable(12) %789)
  %.fca.0.extract17 = extractvalue { <2 x float>, float } %2740, 0
  %.fca.1.extract18 = extractvalue { <2 x float>, float } %2740, 1
  store <2 x float> %.fca.0.extract17, ptr %793, align 8
  %.sroa.220.0..sroa_idx = getelementptr inbounds i8, ptr %793, i64 8
  store float %.fca.1.extract18, ptr %.sroa.220.0..sroa_idx, align 8
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %794) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %795) #9
  store i32 20, ptr %795, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %796) #9
  store i32 24, ptr %796, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %797) #9
  store i32 -2, ptr %797, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %794, ptr noundef nonnull align 4 dereferenceable(4) %795, ptr noundef nonnull align 4 dereferenceable(4) %796, ptr noundef nonnull align 4 dereferenceable(4) %797)
  %2741 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %793, ptr noundef nonnull align 4 dereferenceable(12) %794)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %797) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %796) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %795) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %794) #9
  br i1 %2741, label %2762, label %2742

2742:                                             ; preds = %2738
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %798) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %799) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %799) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %798, ptr noundef nonnull @.str.102, ptr noundef nonnull align 1 dereferenceable(1) %799)
          to label %2743 unwind label %2748

2743:                                             ; preds = %2742
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %800) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %801) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %801) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %800, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %801)
          to label %2744 unwind label %2750

2744:                                             ; preds = %2743
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %802) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %803) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %803) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %802, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %803)
          to label %2745 unwind label %2752

2745:                                             ; preds = %2744
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %804) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %805) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %805) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %804, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %805)
          to label %2746 unwind label %2754

2746:                                             ; preds = %2745
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %798, ptr noundef nonnull align 8 dereferenceable(32) %800, ptr noundef nonnull align 8 dereferenceable(32) %802, ptr noundef nonnull align 8 dereferenceable(32) %804, i32 noundef 233) #10
          to label %2747 unwind label %2756

2747:                                             ; preds = %2746
  unreachable

2748:                                             ; preds = %2742
  %2749 = landingpad { ptr, i32 }
          cleanup
  br label %2761

2750:                                             ; preds = %2743
  %2751 = landingpad { ptr, i32 }
          cleanup
  br label %2760

2752:                                             ; preds = %2744
  %2753 = landingpad { ptr, i32 }
          cleanup
  br label %2759

2754:                                             ; preds = %2745
  %2755 = landingpad { ptr, i32 }
          cleanup
  br label %2758

2756:                                             ; preds = %2746
  %2757 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %804) #9
  br label %2758

2758:                                             ; preds = %2756, %2754
  %.pn614 = phi { ptr, i32 } [ %2757, %2756 ], [ %2755, %2754 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %805) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %805) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %804) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %802) #9
  br label %2759

2759:                                             ; preds = %2758, %2752
  %.pn614.pn = phi { ptr, i32 } [ %.pn614, %2758 ], [ %2753, %2752 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %803) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %803) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %802) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %800) #9
  br label %2760

2760:                                             ; preds = %2759, %2750
  %.pn614.pn.pn = phi { ptr, i32 } [ %.pn614.pn, %2759 ], [ %2751, %2750 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %801) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %801) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %800) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %798) #9
  br label %2761

2761:                                             ; preds = %2760, %2748
  %.pn614.pn.pn.pn = phi { ptr, i32 } [ %.pn614.pn.pn, %2760 ], [ %2749, %2748 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %799) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %799) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %798) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %793) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %789) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %787) #9
  br label %3346

2762:                                             ; preds = %2738
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %793) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %789) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %787) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %806) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %807) #9
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EE13build_scalingEfff(ptr dead_on_unwind nonnull writable sret(%"struct.cgp::matrix_stack.23") align 4 %807, float noundef 5.000000e+00, float noundef 3.000000e+00, float noundef 2.000000e+00)
  %2763 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE21set_block_translationEfff(ptr noundef nonnull align 4 dereferenceable(64) %807, float noundef 1.000000e+00, float noundef 2.000000e+00, float noundef 3.000000e+00)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %806, ptr noundef nonnull align 4 dereferenceable(64) %2763, i64 64, i1 false), !tbaa.struct !25
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %807) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %808) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %809) #9
  store i32 4, ptr %809, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %810) #9
  store i32 8, ptr %810, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %811) #9
  store i32 -1, ptr %811, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %808, ptr noundef nonnull align 4 dereferenceable(4) %809, ptr noundef nonnull align 4 dereferenceable(4) %810, ptr noundef nonnull align 4 dereferenceable(4) %811)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %811) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %810) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %809) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %812) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %813) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %814) #9
  store float 1.000000e+00, ptr %814, align 4, !tbaa !22
  call void @_ZN3cgp14numarray_stackIfLi4EEC2ERKNS0_IfLi3EEERKf(ptr noundef nonnull align 4 dereferenceable(16) %813, ptr noundef nonnull align 4 dereferenceable(12) %808, ptr noundef nonnull align 4 dereferenceable(4) %814)
  %2764 = call { <2 x float>, <2 x float> } @_ZN3cgpmlIfLi4ELi4EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(64) %806, ptr noundef nonnull align 4 dereferenceable(16) %813)
  %2765 = extractvalue { <2 x float>, <2 x float> } %2764, 0
  store <2 x float> %2765, ptr %812, align 8
  %2766 = getelementptr inbounds i8, ptr %812, i64 8
  %2767 = extractvalue { <2 x float>, <2 x float> } %2764, 1
  store <2 x float> %2767, ptr %2766, align 8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %814) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %813) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %815) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %816) #9
  %2768 = call { <2 x float>, float } @_ZNK3cgp14numarray_stackIfLi4EE3xyzEv(ptr noundef nonnull align 4 dereferenceable(16) %812)
  %.fca.0.extract13 = extractvalue { <2 x float>, float } %2768, 0
  %.fca.1.extract14 = extractvalue { <2 x float>, float } %2768, 1
  store <2 x float> %.fca.0.extract13, ptr %816, align 8
  %.sroa.216.0..sroa_idx = getelementptr inbounds i8, ptr %816, i64 8
  store float %.fca.1.extract14, ptr %.sroa.216.0..sroa_idx, align 8
  %2769 = getelementptr inbounds i8, ptr %812, i64 12
  %2770 = load float, ptr %2769, align 4, !tbaa !26
  %2771 = call { <2 x float>, float } @_ZN3cgpdvERKNS_14numarray_stackIfLi3EEEf(ptr noundef nonnull align 4 dereferenceable(12) %816, float noundef %2770)
  %.fca.0.extract9 = extractvalue { <2 x float>, float } %2771, 0
  %.fca.1.extract10 = extractvalue { <2 x float>, float } %2771, 1
  store <2 x float> %.fca.0.extract9, ptr %815, align 8
  %.sroa.212.0..sroa_idx = getelementptr inbounds i8, ptr %815, i64 8
  store float %.fca.1.extract10, ptr %.sroa.212.0..sroa_idx, align 8
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %816) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %817) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %818) #9
  store i32 21, ptr %818, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %819) #9
  store i32 26, ptr %819, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %820) #9
  store i32 1, ptr %820, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %817, ptr noundef nonnull align 4 dereferenceable(4) %818, ptr noundef nonnull align 4 dereferenceable(4) %819, ptr noundef nonnull align 4 dereferenceable(4) %820)
  %2772 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %815, ptr noundef nonnull align 4 dereferenceable(12) %817)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %820) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %819) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %818) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %817) #9
  br i1 %2772, label %2793, label %2773

2773:                                             ; preds = %2762
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %821) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %822) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %822) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %821, ptr noundef nonnull @.str.101, ptr noundef nonnull align 1 dereferenceable(1) %822)
          to label %2774 unwind label %2779

2774:                                             ; preds = %2773
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %823) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %824) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %824) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %823, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %824)
          to label %2775 unwind label %2781

2775:                                             ; preds = %2774
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %825) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %826) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %826) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %825, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %826)
          to label %2776 unwind label %2783

2776:                                             ; preds = %2775
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %827) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %828) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %828) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %827, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %828)
          to label %2777 unwind label %2785

2777:                                             ; preds = %2776
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %821, ptr noundef nonnull align 8 dereferenceable(32) %823, ptr noundef nonnull align 8 dereferenceable(32) %825, ptr noundef nonnull align 8 dereferenceable(32) %827, i32 noundef 240) #10
          to label %2778 unwind label %2787

2778:                                             ; preds = %2777
  unreachable

2779:                                             ; preds = %2773
  %2780 = landingpad { ptr, i32 }
          cleanup
  br label %2792

2781:                                             ; preds = %2774
  %2782 = landingpad { ptr, i32 }
          cleanup
  br label %2791

2783:                                             ; preds = %2775
  %2784 = landingpad { ptr, i32 }
          cleanup
  br label %2790

2785:                                             ; preds = %2776
  %2786 = landingpad { ptr, i32 }
          cleanup
  br label %2789

2787:                                             ; preds = %2777
  %2788 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %827) #9
  br label %2789

2789:                                             ; preds = %2787, %2785
  %.pn609 = phi { ptr, i32 } [ %2788, %2787 ], [ %2786, %2785 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %828) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %828) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %827) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %825) #9
  br label %2790

2790:                                             ; preds = %2789, %2783
  %.pn609.pn = phi { ptr, i32 } [ %.pn609, %2789 ], [ %2784, %2783 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %826) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %826) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %825) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %823) #9
  br label %2791

2791:                                             ; preds = %2790, %2781
  %.pn609.pn.pn = phi { ptr, i32 } [ %.pn609.pn, %2790 ], [ %2782, %2781 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %824) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %824) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %823) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %821) #9
  br label %2792

2792:                                             ; preds = %2791, %2779
  %.pn609.pn.pn.pn = phi { ptr, i32 } [ %.pn609.pn.pn, %2791 ], [ %2780, %2779 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %822) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %822) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %821) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %815) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %812) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %808) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %806) #9
  br label %3346

2793:                                             ; preds = %2762
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %815) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %812) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %808) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %806) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %829) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %830) #9
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EE13build_scalingEfff(ptr dead_on_unwind nonnull writable sret(%"struct.cgp::matrix_stack.23") align 4 %830, float noundef 5.000000e+00, float noundef 3.000000e+00, float noundef 2.000000e+00)
  %2794 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE21set_block_translationEfff(ptr noundef nonnull align 4 dereferenceable(64) %830, float noundef 1.000000e+00, float noundef 2.000000e+00, float noundef 3.000000e+00)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %829, ptr noundef nonnull align 4 dereferenceable(64) %2794, i64 64, i1 false), !tbaa.struct !25
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %830) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %831) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %832) #9
  store i32 4, ptr %832, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %833) #9
  store i32 8, ptr %833, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %834) #9
  store i32 -1, ptr %834, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %831, ptr noundef nonnull align 4 dereferenceable(4) %832, ptr noundef nonnull align 4 dereferenceable(4) %833, ptr noundef nonnull align 4 dereferenceable(4) %834)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %834) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %833) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %832) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %835) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %836) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %837) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %838) #9
  store float 0.000000e+00, ptr %838, align 4, !tbaa !22
  call void @_ZN3cgp14numarray_stackIfLi4EEC2ERKNS0_IfLi3EEERKf(ptr noundef nonnull align 4 dereferenceable(16) %837, ptr noundef nonnull align 4 dereferenceable(12) %831, ptr noundef nonnull align 4 dereferenceable(4) %838)
  %2795 = call { <2 x float>, <2 x float> } @_ZN3cgpmlIfLi4ELi4EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(64) %829, ptr noundef nonnull align 4 dereferenceable(16) %837)
  %2796 = extractvalue { <2 x float>, <2 x float> } %2795, 0
  store <2 x float> %2796, ptr %836, align 8
  %2797 = getelementptr inbounds i8, ptr %836, i64 8
  %2798 = extractvalue { <2 x float>, <2 x float> } %2795, 1
  store <2 x float> %2798, ptr %2797, align 8
  %2799 = call { <2 x float>, float } @_ZNK3cgp14numarray_stackIfLi4EE3xyzEv(ptr noundef nonnull align 4 dereferenceable(16) %836)
  %.fca.0.extract5 = extractvalue { <2 x float>, float } %2799, 0
  %.fca.1.extract6 = extractvalue { <2 x float>, float } %2799, 1
  store <2 x float> %.fca.0.extract5, ptr %835, align 8
  %.sroa.28.0..sroa_idx = getelementptr inbounds i8, ptr %835, i64 8
  store float %.fca.1.extract6, ptr %.sroa.28.0..sroa_idx, align 8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %838) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %837) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %836) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %839) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %840) #9
  store i32 20, ptr %840, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %841) #9
  store i32 24, ptr %841, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %842) #9
  store i32 -2, ptr %842, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %839, ptr noundef nonnull align 4 dereferenceable(4) %840, ptr noundef nonnull align 4 dereferenceable(4) %841, ptr noundef nonnull align 4 dereferenceable(4) %842)
  %2800 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %835, ptr noundef nonnull align 4 dereferenceable(12) %839)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %842) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %841) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %840) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %839) #9
  br i1 %2800, label %2821, label %2801

2801:                                             ; preds = %2793
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %843) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %844) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %844) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %843, ptr noundef nonnull @.str.102, ptr noundef nonnull align 1 dereferenceable(1) %844)
          to label %2802 unwind label %2807

2802:                                             ; preds = %2801
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %845) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %846) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %846) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %845, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %846)
          to label %2803 unwind label %2809

2803:                                             ; preds = %2802
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %847) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %848) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %848) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %847, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %848)
          to label %2804 unwind label %2811

2804:                                             ; preds = %2803
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %849) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %850) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %850) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %849, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %850)
          to label %2805 unwind label %2813

2805:                                             ; preds = %2804
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %843, ptr noundef nonnull align 8 dereferenceable(32) %845, ptr noundef nonnull align 8 dereferenceable(32) %847, ptr noundef nonnull align 8 dereferenceable(32) %849, i32 noundef 246) #10
          to label %2806 unwind label %2815

2806:                                             ; preds = %2805
  unreachable

2807:                                             ; preds = %2801
  %2808 = landingpad { ptr, i32 }
          cleanup
  br label %2820

2809:                                             ; preds = %2802
  %2810 = landingpad { ptr, i32 }
          cleanup
  br label %2819

2811:                                             ; preds = %2803
  %2812 = landingpad { ptr, i32 }
          cleanup
  br label %2818

2813:                                             ; preds = %2804
  %2814 = landingpad { ptr, i32 }
          cleanup
  br label %2817

2815:                                             ; preds = %2805
  %2816 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %849) #9
  br label %2817

2817:                                             ; preds = %2815, %2813
  %.pn604 = phi { ptr, i32 } [ %2816, %2815 ], [ %2814, %2813 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %850) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %850) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %849) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %847) #9
  br label %2818

2818:                                             ; preds = %2817, %2811
  %.pn604.pn = phi { ptr, i32 } [ %.pn604, %2817 ], [ %2812, %2811 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %848) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %848) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %847) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %845) #9
  br label %2819

2819:                                             ; preds = %2818, %2809
  %.pn604.pn.pn = phi { ptr, i32 } [ %.pn604.pn, %2818 ], [ %2810, %2809 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %846) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %846) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %845) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %843) #9
  br label %2820

2820:                                             ; preds = %2819, %2807
  %.pn604.pn.pn.pn = phi { ptr, i32 } [ %.pn604.pn.pn, %2819 ], [ %2808, %2807 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %844) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %844) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %843) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %835) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %831) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %829) #9
  br label %3346

2821:                                             ; preds = %2793
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %835) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %831) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %829) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %851) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %852) #9
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EE13build_scalingEfff(ptr dead_on_unwind nonnull writable sret(%"struct.cgp::matrix_stack.23") align 4 %852, float noundef 5.000000e+00, float noundef 3.000000e+00, float noundef 2.000000e+00)
  %2822 = call noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE21set_block_translationEfff(ptr noundef nonnull align 4 dereferenceable(64) %852, float noundef 1.000000e+00, float noundef 2.000000e+00, float noundef 3.000000e+00)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %851, ptr noundef nonnull align 4 dereferenceable(64) %2822, i64 64, i1 false), !tbaa.struct !25
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %852) #9
  %2823 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EEclEii(ptr noundef nonnull align 4 dereferenceable(64) %851, i32 noundef 3, i32 noundef 3)
  store float 2.000000e+00, ptr %2823, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %853) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %854) #9
  store i32 4, ptr %854, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %855) #9
  store i32 8, ptr %855, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %856) #9
  store i32 -1, ptr %856, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %853, ptr noundef nonnull align 4 dereferenceable(4) %854, ptr noundef nonnull align 4 dereferenceable(4) %855, ptr noundef nonnull align 4 dereferenceable(4) %856)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %856) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %855) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %854) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %857) #9
  %2824 = call { <2 x float>, float } @_ZNK3cgp12matrix_stackIfLi4ELi4EE18transform_positionERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(64) %851, ptr noundef nonnull align 4 dereferenceable(12) %853)
  %.fca.0.extract1 = extractvalue { <2 x float>, float } %2824, 0
  %.fca.1.extract2 = extractvalue { <2 x float>, float } %2824, 1
  store <2 x float> %.fca.0.extract1, ptr %857, align 8
  %.sroa.24.0..sroa_idx = getelementptr inbounds i8, ptr %857, i64 8
  store float %.fca.1.extract2, ptr %.sroa.24.0..sroa_idx, align 8
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %858) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %859) #9
  store float 1.050000e+01, ptr %859, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %860) #9
  store float 1.300000e+01, ptr %860, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %861) #9
  store float 5.000000e-01, ptr %861, align 4, !tbaa !22
  call void @_ZN3cgp14numarray_stackIfLi3EEC2ERKfS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %858, ptr noundef nonnull align 4 dereferenceable(4) %859, ptr noundef nonnull align 4 dereferenceable(4) %860, ptr noundef nonnull align 4 dereferenceable(4) %861)
  %2825 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %857, ptr noundef nonnull align 4 dereferenceable(12) %858)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %861) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %860) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %859) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %858) #9
  br i1 %2825, label %2846, label %2826

2826:                                             ; preds = %2821
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %862) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %863) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %863) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %862, ptr noundef nonnull @.str.103, ptr noundef nonnull align 1 dereferenceable(1) %863)
          to label %2827 unwind label %2832

2827:                                             ; preds = %2826
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %864) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %865) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %865) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %864, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %865)
          to label %2828 unwind label %2834

2828:                                             ; preds = %2827
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %866) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %867) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %867) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %866, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %867)
          to label %2829 unwind label %2836

2829:                                             ; preds = %2828
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %868) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %869) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %869) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %868, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %869)
          to label %2830 unwind label %2838

2830:                                             ; preds = %2829
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %862, ptr noundef nonnull align 8 dereferenceable(32) %864, ptr noundef nonnull align 8 dereferenceable(32) %866, ptr noundef nonnull align 8 dereferenceable(32) %868, i32 noundef 254) #10
          to label %2831 unwind label %2840

2831:                                             ; preds = %2830
  unreachable

2832:                                             ; preds = %2826
  %2833 = landingpad { ptr, i32 }
          cleanup
  br label %2845

2834:                                             ; preds = %2827
  %2835 = landingpad { ptr, i32 }
          cleanup
  br label %2844

2836:                                             ; preds = %2828
  %2837 = landingpad { ptr, i32 }
          cleanup
  br label %2843

2838:                                             ; preds = %2829
  %2839 = landingpad { ptr, i32 }
          cleanup
  br label %2842

2840:                                             ; preds = %2830
  %2841 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %868) #9
  br label %2842

2842:                                             ; preds = %2840, %2838
  %.pn599 = phi { ptr, i32 } [ %2841, %2840 ], [ %2839, %2838 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %869) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %869) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %868) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %866) #9
  br label %2843

2843:                                             ; preds = %2842, %2836
  %.pn599.pn = phi { ptr, i32 } [ %.pn599, %2842 ], [ %2837, %2836 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %867) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %867) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %866) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %864) #9
  br label %2844

2844:                                             ; preds = %2843, %2834
  %.pn599.pn.pn = phi { ptr, i32 } [ %.pn599.pn, %2843 ], [ %2835, %2834 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %865) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %865) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %864) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %862) #9
  br label %2845

2845:                                             ; preds = %2844, %2832
  %.pn599.pn.pn.pn = phi { ptr, i32 } [ %.pn599.pn.pn, %2844 ], [ %2833, %2832 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %863) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %863) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %862) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %857) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %853) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %851) #9
  br label %3346

2846:                                             ; preds = %2821
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %857) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %853) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %851) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %870) #9
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Effffffffffffffff(ptr noundef nonnull align 4 dereferenceable(64) %870, float noundef 1.000000e+00, float noundef 5.000000e+00, float noundef 8.000000e+00, float noundef 2.000000e+00, float noundef 2.000000e+00, float noundef 1.000000e+00, float noundef -2.000000e+00, float noundef 3.000000e+00, float noundef 5.000000e+00, float noundef 2.000000e+00, float noundef 8.000000e+00, float noundef 4.000000e+00, float noundef 5.000000e-01, float noundef -1.000000e+00, float noundef 2.000000e+00, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %871) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %872) #9
  store i32 4, ptr %872, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %873) #9
  store i32 8, ptr %873, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %874) #9
  store i32 -1, ptr %874, align 4, !tbaa !14
  call void @_ZN3cgp14numarray_stackIfLi3EEC2IiiiEERKT_RKT0_RKT1_(ptr noundef nonnull align 4 dereferenceable(12) %871, ptr noundef nonnull align 4 dereferenceable(4) %872, ptr noundef nonnull align 4 dereferenceable(4) %873, ptr noundef nonnull align 4 dereferenceable(4) %874)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %874) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %873) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %872) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %875) #9
  %2847 = call { <2 x float>, float } @_ZNK3cgp12matrix_stackIfLi4ELi4EE18transform_positionERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(64) %870, ptr noundef nonnull align 4 dereferenceable(12) %871)
  %.fca.0.extract = extractvalue { <2 x float>, float } %2847, 0
  %.fca.1.extract = extractvalue { <2 x float>, float } %2847, 1
  store <2 x float> %.fca.0.extract, ptr %875, align 8
  %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %875, i64 8
  store float %.fca.1.extract, ptr %.sroa.2.0..sroa_idx, align 8
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %876) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %877) #9
  store float 0xC019555560000000, ptr %877, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %878) #9
  store float -3.500000e+00, ptr %878, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %879) #9
  store float 0xC015555560000000, ptr %879, align 4, !tbaa !22
  call void @_ZN3cgp14numarray_stackIfLi3EEC2ERKfS3_S3_(ptr noundef nonnull align 4 dereferenceable(12) %876, ptr noundef nonnull align 4 dereferenceable(4) %877, ptr noundef nonnull align 4 dereferenceable(4) %878, ptr noundef nonnull align 4 dereferenceable(4) %879)
  %2848 = call noundef zeroext i1 @_ZN3cgp8is_equalIfLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12) %875, ptr noundef nonnull align 4 dereferenceable(12) %876)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %879) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %878) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %877) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %876) #9
  br i1 %2848, label %2869, label %2849

2849:                                             ; preds = %2846
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %880) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %881) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %881) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %880, ptr noundef nonnull @.str.104, ptr noundef nonnull align 1 dereferenceable(1) %881)
          to label %2850 unwind label %2855

2850:                                             ; preds = %2849
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %882) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %883) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %883) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %882, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %883)
          to label %2851 unwind label %2857

2851:                                             ; preds = %2850
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %884) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %885) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %885) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %884, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %885)
          to label %2852 unwind label %2859

2852:                                             ; preds = %2851
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %886) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %887) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %887) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %886, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %887)
          to label %2853 unwind label %2861

2853:                                             ; preds = %2852
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %880, ptr noundef nonnull align 8 dereferenceable(32) %882, ptr noundef nonnull align 8 dereferenceable(32) %884, ptr noundef nonnull align 8 dereferenceable(32) %886, i32 noundef 264) #10
          to label %2854 unwind label %2863

2854:                                             ; preds = %2853
  unreachable

2855:                                             ; preds = %2849
  %2856 = landingpad { ptr, i32 }
          cleanup
  br label %2868

2857:                                             ; preds = %2850
  %2858 = landingpad { ptr, i32 }
          cleanup
  br label %2867

2859:                                             ; preds = %2851
  %2860 = landingpad { ptr, i32 }
          cleanup
  br label %2866

2861:                                             ; preds = %2852
  %2862 = landingpad { ptr, i32 }
          cleanup
  br label %2865

2863:                                             ; preds = %2853
  %2864 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %886) #9
  br label %2865

2865:                                             ; preds = %2863, %2861
  %.pn594 = phi { ptr, i32 } [ %2864, %2863 ], [ %2862, %2861 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %887) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %887) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %886) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %884) #9
  br label %2866

2866:                                             ; preds = %2865, %2859
  %.pn594.pn = phi { ptr, i32 } [ %.pn594, %2865 ], [ %2860, %2859 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %885) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %885) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %884) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %882) #9
  br label %2867

2867:                                             ; preds = %2866, %2857
  %.pn594.pn.pn = phi { ptr, i32 } [ %.pn594.pn, %2866 ], [ %2858, %2857 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %883) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %883) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %882) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %880) #9
  br label %2868

2868:                                             ; preds = %2867, %2855
  %.pn594.pn.pn.pn = phi { ptr, i32 } [ %.pn594.pn.pn, %2867 ], [ %2856, %2855 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %881) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %881) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %880) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %875) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %871) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %870) #9
  br label %3346

2869:                                             ; preds = %2846
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %875) #9
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %871) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %870) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %888) #9
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Ef(ptr noundef nonnull align 4 dereferenceable(64) %888, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %889) #9
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Ef(ptr noundef nonnull align 4 dereferenceable(64) %889, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %890) #9
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Effff(ptr noundef nonnull align 4 dereferenceable(64) %890, float noundef 2.000000e+00, float noundef 3.000000e+00, float noundef 7.000000e+00, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %891) #9
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Effff(ptr noundef nonnull align 4 dereferenceable(64) %891, float noundef 2.000000e+00, float noundef 3.000000e+00, float noundef 7.000000e+00, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %892) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %893) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %894) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %894, ptr noundef nonnull align 4 dereferenceable(64) @constinit.105, i64 64, i1 false), !tbaa.struct !24
  store ptr %894, ptr %893, align 8, !tbaa !19
  %2870 = getelementptr inbounds i8, ptr %893, i64 8
  store i64 16, ptr %2870, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %892, ptr noundef nonnull align 8 dereferenceable(16) %893)
  %2871 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %888, ptr noundef nonnull align 4 dereferenceable(64) %892)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %894) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %893) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %892) #9
  br i1 %2871, label %2892, label %2872

2872:                                             ; preds = %2869
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %895) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %896) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %896) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %895, ptr noundef nonnull @.str.106, ptr noundef nonnull align 1 dereferenceable(1) %896)
          to label %2873 unwind label %2878

2873:                                             ; preds = %2872
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %897) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %898) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %898) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %897, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %898)
          to label %2874 unwind label %2880

2874:                                             ; preds = %2873
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %899) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %900) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %900) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %899, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %900)
          to label %2875 unwind label %2882

2875:                                             ; preds = %2874
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %901) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %902) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %902) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %901, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %902)
          to label %2876 unwind label %2884

2876:                                             ; preds = %2875
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %895, ptr noundef nonnull align 8 dereferenceable(32) %897, ptr noundef nonnull align 8 dereferenceable(32) %899, ptr noundef nonnull align 8 dereferenceable(32) %901, i32 noundef 277) #10
          to label %2877 unwind label %2886

2877:                                             ; preds = %2876
  unreachable

2878:                                             ; preds = %2872
  %2879 = landingpad { ptr, i32 }
          cleanup
  br label %2891

2880:                                             ; preds = %2873
  %2881 = landingpad { ptr, i32 }
          cleanup
  br label %2890

2882:                                             ; preds = %2874
  %2883 = landingpad { ptr, i32 }
          cleanup
  br label %2889

2884:                                             ; preds = %2875
  %2885 = landingpad { ptr, i32 }
          cleanup
  br label %2888

2886:                                             ; preds = %2876
  %2887 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %901) #9
  br label %2888

2888:                                             ; preds = %2886, %2884
  %.pn588 = phi { ptr, i32 } [ %2887, %2886 ], [ %2885, %2884 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %902) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %902) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %901) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %899) #9
  br label %2889

2889:                                             ; preds = %2888, %2882
  %.pn588.pn = phi { ptr, i32 } [ %.pn588, %2888 ], [ %2883, %2882 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %900) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %900) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %899) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %897) #9
  br label %2890

2890:                                             ; preds = %2889, %2880
  %.pn588.pn.pn = phi { ptr, i32 } [ %.pn588.pn, %2889 ], [ %2881, %2880 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %898) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %898) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %897) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %895) #9
  br label %2891

2891:                                             ; preds = %2890, %2878
  %.pn588.pn.pn.pn = phi { ptr, i32 } [ %.pn588.pn.pn, %2890 ], [ %2879, %2878 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %896) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %896) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %895) #9
  br label %2975

2892:                                             ; preds = %2869
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %903) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %904) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %905) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %905, ptr noundef nonnull align 4 dereferenceable(64) @constinit.107, i64 64, i1 false), !tbaa.struct !24
  store ptr %905, ptr %904, align 8, !tbaa !19
  %2893 = getelementptr inbounds i8, ptr %904, i64 8
  store i64 16, ptr %2893, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %903, ptr noundef nonnull align 8 dereferenceable(16) %904)
  %2894 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %889, ptr noundef nonnull align 4 dereferenceable(64) %903)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %905) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %904) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %903) #9
  br i1 %2894, label %2915, label %2895

2895:                                             ; preds = %2892
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %906) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %907) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %907) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %906, ptr noundef nonnull @.str.108, ptr noundef nonnull align 1 dereferenceable(1) %907)
          to label %2896 unwind label %2901

2896:                                             ; preds = %2895
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %908) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %909) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %909) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %908, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %909)
          to label %2897 unwind label %2903

2897:                                             ; preds = %2896
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %910) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %911) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %911) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %910, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %911)
          to label %2898 unwind label %2905

2898:                                             ; preds = %2897
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %912) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %913) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %913) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %912, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %913)
          to label %2899 unwind label %2907

2899:                                             ; preds = %2898
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %906, ptr noundef nonnull align 8 dereferenceable(32) %908, ptr noundef nonnull align 8 dereferenceable(32) %910, ptr noundef nonnull align 8 dereferenceable(32) %912, i32 noundef 278) #10
          to label %2900 unwind label %2909

2900:                                             ; preds = %2899
  unreachable

2901:                                             ; preds = %2895
  %2902 = landingpad { ptr, i32 }
          cleanup
  br label %2914

2903:                                             ; preds = %2896
  %2904 = landingpad { ptr, i32 }
          cleanup
  br label %2913

2905:                                             ; preds = %2897
  %2906 = landingpad { ptr, i32 }
          cleanup
  br label %2912

2907:                                             ; preds = %2898
  %2908 = landingpad { ptr, i32 }
          cleanup
  br label %2911

2909:                                             ; preds = %2899
  %2910 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %912) #9
  br label %2911

2911:                                             ; preds = %2909, %2907
  %.pn583 = phi { ptr, i32 } [ %2910, %2909 ], [ %2908, %2907 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %913) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %913) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %912) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %910) #9
  br label %2912

2912:                                             ; preds = %2911, %2905
  %.pn583.pn = phi { ptr, i32 } [ %.pn583, %2911 ], [ %2906, %2905 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %911) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %911) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %910) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %908) #9
  br label %2913

2913:                                             ; preds = %2912, %2903
  %.pn583.pn.pn = phi { ptr, i32 } [ %.pn583.pn, %2912 ], [ %2904, %2903 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %909) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %909) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %908) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %906) #9
  br label %2914

2914:                                             ; preds = %2913, %2901
  %.pn583.pn.pn.pn = phi { ptr, i32 } [ %.pn583.pn.pn, %2913 ], [ %2902, %2901 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %907) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %907) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %906) #9
  br label %2975

2915:                                             ; preds = %2892
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %914) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %915) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %916) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %916, ptr noundef nonnull align 4 dereferenceable(64) @constinit.109, i64 64, i1 false), !tbaa.struct !24
  store ptr %916, ptr %915, align 8, !tbaa !19
  %2916 = getelementptr inbounds i8, ptr %915, i64 8
  store i64 16, ptr %2916, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %914, ptr noundef nonnull align 8 dereferenceable(16) %915)
  %2917 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %890, ptr noundef nonnull align 4 dereferenceable(64) %914)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %916) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %915) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %914) #9
  br i1 %2917, label %2938, label %2918

2918:                                             ; preds = %2915
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %917) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %918) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %918) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %917, ptr noundef nonnull @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %918)
          to label %2919 unwind label %2924

2919:                                             ; preds = %2918
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %919) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %920) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %920) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %919, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %920)
          to label %2920 unwind label %2926

2920:                                             ; preds = %2919
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %921) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %922) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %922) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %921, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %922)
          to label %2921 unwind label %2928

2921:                                             ; preds = %2920
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %923) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %924) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %924) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %923, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %924)
          to label %2922 unwind label %2930

2922:                                             ; preds = %2921
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %917, ptr noundef nonnull align 8 dereferenceable(32) %919, ptr noundef nonnull align 8 dereferenceable(32) %921, ptr noundef nonnull align 8 dereferenceable(32) %923, i32 noundef 279) #10
          to label %2923 unwind label %2932

2923:                                             ; preds = %2922
  unreachable

2924:                                             ; preds = %2918
  %2925 = landingpad { ptr, i32 }
          cleanup
  br label %2937

2926:                                             ; preds = %2919
  %2927 = landingpad { ptr, i32 }
          cleanup
  br label %2936

2928:                                             ; preds = %2920
  %2929 = landingpad { ptr, i32 }
          cleanup
  br label %2935

2930:                                             ; preds = %2921
  %2931 = landingpad { ptr, i32 }
          cleanup
  br label %2934

2932:                                             ; preds = %2922
  %2933 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %923) #9
  br label %2934

2934:                                             ; preds = %2932, %2930
  %.pn578 = phi { ptr, i32 } [ %2933, %2932 ], [ %2931, %2930 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %924) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %924) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %923) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %921) #9
  br label %2935

2935:                                             ; preds = %2934, %2928
  %.pn578.pn = phi { ptr, i32 } [ %.pn578, %2934 ], [ %2929, %2928 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %922) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %922) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %921) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %919) #9
  br label %2936

2936:                                             ; preds = %2935, %2926
  %.pn578.pn.pn = phi { ptr, i32 } [ %.pn578.pn, %2935 ], [ %2927, %2926 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %920) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %920) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %919) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %917) #9
  br label %2937

2937:                                             ; preds = %2936, %2924
  %.pn578.pn.pn.pn = phi { ptr, i32 } [ %.pn578.pn.pn, %2936 ], [ %2925, %2924 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %918) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %918) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %917) #9
  br label %2975

2938:                                             ; preds = %2915
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %925) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %926) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %927) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %927, ptr noundef nonnull align 4 dereferenceable(64) @constinit.111, i64 64, i1 false), !tbaa.struct !24
  store ptr %927, ptr %926, align 8, !tbaa !19
  %2939 = getelementptr inbounds i8, ptr %926, i64 8
  store i64 16, ptr %2939, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %925, ptr noundef nonnull align 8 dereferenceable(16) %926)
  %2940 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %891, ptr noundef nonnull align 4 dereferenceable(64) %925)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %927) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %926) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %925) #9
  br i1 %2940, label %2961, label %2941

2941:                                             ; preds = %2938
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %928) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %929) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %929) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %928, ptr noundef nonnull @.str.112, ptr noundef nonnull align 1 dereferenceable(1) %929)
          to label %2942 unwind label %2947

2942:                                             ; preds = %2941
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %930) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %931) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %931) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %930, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %931)
          to label %2943 unwind label %2949

2943:                                             ; preds = %2942
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %932) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %933) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %933) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %932, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %933)
          to label %2944 unwind label %2951

2944:                                             ; preds = %2943
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %934) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %935) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %935) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %934, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %935)
          to label %2945 unwind label %2953

2945:                                             ; preds = %2944
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %928, ptr noundef nonnull align 8 dereferenceable(32) %930, ptr noundef nonnull align 8 dereferenceable(32) %932, ptr noundef nonnull align 8 dereferenceable(32) %934, i32 noundef 280) #10
          to label %2946 unwind label %2955

2946:                                             ; preds = %2945
  unreachable

2947:                                             ; preds = %2941
  %2948 = landingpad { ptr, i32 }
          cleanup
  br label %2960

2949:                                             ; preds = %2942
  %2950 = landingpad { ptr, i32 }
          cleanup
  br label %2959

2951:                                             ; preds = %2943
  %2952 = landingpad { ptr, i32 }
          cleanup
  br label %2958

2953:                                             ; preds = %2944
  %2954 = landingpad { ptr, i32 }
          cleanup
  br label %2957

2955:                                             ; preds = %2945
  %2956 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %934) #9
  br label %2957

2957:                                             ; preds = %2955, %2953
  %.pn573 = phi { ptr, i32 } [ %2956, %2955 ], [ %2954, %2953 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %935) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %935) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %934) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %932) #9
  br label %2958

2958:                                             ; preds = %2957, %2951
  %.pn573.pn = phi { ptr, i32 } [ %.pn573, %2957 ], [ %2952, %2951 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %933) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %933) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %932) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %930) #9
  br label %2959

2959:                                             ; preds = %2958, %2949
  %.pn573.pn.pn = phi { ptr, i32 } [ %.pn573.pn, %2958 ], [ %2950, %2949 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %931) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %931) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %930) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %928) #9
  br label %2960

2960:                                             ; preds = %2959, %2947
  %.pn573.pn.pn.pn = phi { ptr, i32 } [ %.pn573.pn.pn, %2959 ], [ %2948, %2947 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %929) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %929) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %928) #9
  br label %2975

2961:                                             ; preds = %2938
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %891) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %890) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %889) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %888) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %936) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %937) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %938) #9
  store float 1.000000e+00, ptr %938, align 4, !tbaa !22
  store ptr %938, ptr %937, align 8, !tbaa !19
  %2962 = getelementptr inbounds i8, ptr %937, i64 8
  store i64 1, ptr %2962, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %936, ptr noundef nonnull align 8 dereferenceable(16) %937)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %938) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %937) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %939) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %940) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %941) #9
  store float 2.000000e+00, ptr %941, align 4, !tbaa !22
  store ptr %941, ptr %940, align 8, !tbaa !19
  %2963 = getelementptr inbounds i8, ptr %940, i64 8
  store i64 1, ptr %2963, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %939, ptr noundef nonnull align 8 dereferenceable(16) %940)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %941) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %940) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %942) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %943) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %944) #9
  store <2 x float> <float 2.000000e+00, float 3.000000e+00>, ptr %944, align 8, !tbaa !22
  %2964 = getelementptr inbounds i8, ptr %944, i64 8
  store float 7.000000e+00, ptr %2964, align 8, !tbaa !22
  store ptr %944, ptr %943, align 8, !tbaa !19
  %2965 = getelementptr inbounds i8, ptr %943, i64 8
  store i64 3, ptr %2965, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %942, ptr noundef nonnull align 8 dereferenceable(16) %943)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %944) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %943) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %945) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %946) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %947) #9
  store <4 x float> <float 2.000000e+00, float 3.000000e+00, float 7.000000e+00, float 2.000000e+00>, ptr %947, align 16, !tbaa !22
  store ptr %947, ptr %946, align 8, !tbaa !19
  %2966 = getelementptr inbounds i8, ptr %946, i64 8
  store i64 4, ptr %2966, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %945, ptr noundef nonnull align 8 dereferenceable(16) %946)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %947) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %946) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %948) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %949) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %950) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %950, ptr noundef nonnull align 4 dereferenceable(64) @constinit.113, i64 64, i1 false), !tbaa.struct !24
  store ptr %950, ptr %949, align 8, !tbaa !19
  %2967 = getelementptr inbounds i8, ptr %949, i64 8
  store i64 16, ptr %2967, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %948, ptr noundef nonnull align 8 dereferenceable(16) %949)
  %2968 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %936, ptr noundef nonnull align 4 dereferenceable(64) %948)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %950) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %949) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %948) #9
  br i1 %2968, label %2990, label %2969

2969:                                             ; preds = %2961
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %951) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %952) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %952) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %951, ptr noundef nonnull @.str.106, ptr noundef nonnull align 1 dereferenceable(1) %952)
          to label %2970 unwind label %2976

2970:                                             ; preds = %2969
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %953) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %954) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %954) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %953, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %954)
          to label %2971 unwind label %2978

2971:                                             ; preds = %2970
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %955) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %956) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %956) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %955, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %956)
          to label %2972 unwind label %2980

2972:                                             ; preds = %2971
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %957) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %958) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %958) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %957, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %958)
          to label %2973 unwind label %2982

2973:                                             ; preds = %2972
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %951, ptr noundef nonnull align 8 dereferenceable(32) %953, ptr noundef nonnull align 8 dereferenceable(32) %955, ptr noundef nonnull align 8 dereferenceable(32) %957, i32 noundef 291) #10
          to label %2974 unwind label %2984

2974:                                             ; preds = %2973
  unreachable

2975:                                             ; preds = %2960, %2937, %2914, %2891
  %.pn588.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn588.pn.pn.pn, %2891 ], [ %.pn583.pn.pn.pn, %2914 ], [ %.pn578.pn.pn.pn, %2937 ], [ %.pn573.pn.pn.pn, %2960 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %891) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %890) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %889) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %888) #9
  br label %3346

2976:                                             ; preds = %2969
  %2977 = landingpad { ptr, i32 }
          cleanup
  br label %2989

2978:                                             ; preds = %2970
  %2979 = landingpad { ptr, i32 }
          cleanup
  br label %2988

2980:                                             ; preds = %2971
  %2981 = landingpad { ptr, i32 }
          cleanup
  br label %2987

2982:                                             ; preds = %2972
  %2983 = landingpad { ptr, i32 }
          cleanup
  br label %2986

2984:                                             ; preds = %2973
  %2985 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %957) #9
  br label %2986

2986:                                             ; preds = %2984, %2982
  %.pn567 = phi { ptr, i32 } [ %2985, %2984 ], [ %2983, %2982 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %958) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %958) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %957) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %955) #9
  br label %2987

2987:                                             ; preds = %2986, %2980
  %.pn567.pn = phi { ptr, i32 } [ %.pn567, %2986 ], [ %2981, %2980 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %956) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %956) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %955) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %953) #9
  br label %2988

2988:                                             ; preds = %2987, %2978
  %.pn567.pn.pn = phi { ptr, i32 } [ %.pn567.pn, %2987 ], [ %2979, %2978 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %954) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %954) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %953) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %951) #9
  br label %2989

2989:                                             ; preds = %2988, %2976
  %.pn567.pn.pn.pn = phi { ptr, i32 } [ %.pn567.pn.pn, %2988 ], [ %2977, %2976 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %952) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %952) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %951) #9
  br label %3072

2990:                                             ; preds = %2961
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %959) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %960) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %961) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %961, ptr noundef nonnull align 4 dereferenceable(64) @constinit.114, i64 64, i1 false), !tbaa.struct !24
  store ptr %961, ptr %960, align 8, !tbaa !19
  %2991 = getelementptr inbounds i8, ptr %960, i64 8
  store i64 16, ptr %2991, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %959, ptr noundef nonnull align 8 dereferenceable(16) %960)
  %2992 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %939, ptr noundef nonnull align 4 dereferenceable(64) %959)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %961) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %960) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %959) #9
  br i1 %2992, label %3013, label %2993

2993:                                             ; preds = %2990
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %962) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %963) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %963) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %962, ptr noundef nonnull @.str.108, ptr noundef nonnull align 1 dereferenceable(1) %963)
          to label %2994 unwind label %2999

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

2995:                                             ; preds = %2994
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %966) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %967) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %967) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %966, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %967)
          to label %2996 unwind label %3003

2996:                                             ; preds = %2995
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %968) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %969) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %969) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %968, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %969)
          to label %2997 unwind label %3005

2997:                                             ; preds = %2996
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %962, ptr noundef nonnull align 8 dereferenceable(32) %964, ptr noundef nonnull align 8 dereferenceable(32) %966, ptr noundef nonnull align 8 dereferenceable(32) %968, i32 noundef 292) #10
          to label %2998 unwind label %3007

2998:                                             ; preds = %2997
  unreachable

2999:                                             ; preds = %2993
  %3000 = landingpad { ptr, i32 }
          cleanup
  br label %3012

3001:                                             ; preds = %2994
  %3002 = landingpad { ptr, i32 }
          cleanup
  br label %3011

3003:                                             ; preds = %2995
  %3004 = landingpad { ptr, i32 }
          cleanup
  br label %3010

3005:                                             ; preds = %2996
  %3006 = landingpad { ptr, i32 }
          cleanup
  br label %3009

3007:                                             ; preds = %2997
  %3008 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %968) #9
  br label %3009

3009:                                             ; preds = %3007, %3005
  %.pn562 = phi { ptr, i32 } [ %3008, %3007 ], [ %3006, %3005 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %969) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %969) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %968) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %966) #9
  br label %3010

3010:                                             ; preds = %3009, %3003
  %.pn562.pn = phi { ptr, i32 } [ %.pn562, %3009 ], [ %3004, %3003 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %967) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %967) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %966) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %964) #9
  br label %3011

3011:                                             ; preds = %3010, %3001
  %.pn562.pn.pn = phi { ptr, i32 } [ %.pn562.pn, %3010 ], [ %3002, %3001 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %965) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %965) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %964) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %962) #9
  br label %3012

3012:                                             ; preds = %3011, %2999
  %.pn562.pn.pn.pn = phi { ptr, i32 } [ %.pn562.pn.pn, %3011 ], [ %3000, %2999 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %963) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %963) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %962) #9
  br label %3072

3013:                                             ; preds = %2990
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %970) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %971) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %972) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %972, ptr noundef nonnull align 4 dereferenceable(64) @constinit.115, i64 64, i1 false), !tbaa.struct !24
  store ptr %972, ptr %971, align 8, !tbaa !19
  %3014 = getelementptr inbounds i8, ptr %971, i64 8
  store i64 16, ptr %3014, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %970, ptr noundef nonnull align 8 dereferenceable(16) %971)
  %3015 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %942, ptr noundef nonnull align 4 dereferenceable(64) %970)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %972) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %971) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %970) #9
  br i1 %3015, label %3036, label %3016

3016:                                             ; preds = %3013
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %973) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %974) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %974) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %973, ptr noundef nonnull @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %974)
          to label %3017 unwind label %3022

3017:                                             ; preds = %3016
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %975) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %976) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %976) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %975, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %976)
          to label %3018 unwind label %3024

3018:                                             ; preds = %3017
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %977) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %978) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %978) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %977, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %978)
          to label %3019 unwind label %3026

3019:                                             ; preds = %3018
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %979) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %980) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %980) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %979, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %980)
          to label %3020 unwind label %3028

3020:                                             ; preds = %3019
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %973, ptr noundef nonnull align 8 dereferenceable(32) %975, ptr noundef nonnull align 8 dereferenceable(32) %977, ptr noundef nonnull align 8 dereferenceable(32) %979, i32 noundef 293) #10
          to label %3021 unwind label %3030

3021:                                             ; preds = %3020
  unreachable

3022:                                             ; preds = %3016
  %3023 = landingpad { ptr, i32 }
          cleanup
  br label %3035

3024:                                             ; preds = %3017
  %3025 = landingpad { ptr, i32 }
          cleanup
  br label %3034

3026:                                             ; preds = %3018
  %3027 = landingpad { ptr, i32 }
          cleanup
  br label %3033

3028:                                             ; preds = %3019
  %3029 = landingpad { ptr, i32 }
          cleanup
  br label %3032

3030:                                             ; preds = %3020
  %3031 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %979) #9
  br label %3032

3032:                                             ; preds = %3030, %3028
  %.pn557 = phi { ptr, i32 } [ %3031, %3030 ], [ %3029, %3028 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %980) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %980) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %979) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %977) #9
  br label %3033

3033:                                             ; preds = %3032, %3026
  %.pn557.pn = phi { ptr, i32 } [ %.pn557, %3032 ], [ %3027, %3026 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %978) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %978) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %977) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %975) #9
  br label %3034

3034:                                             ; preds = %3033, %3024
  %.pn557.pn.pn = phi { ptr, i32 } [ %.pn557.pn, %3033 ], [ %3025, %3024 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %976) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %976) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %975) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %973) #9
  br label %3035

3035:                                             ; preds = %3034, %3022
  %.pn557.pn.pn.pn = phi { ptr, i32 } [ %.pn557.pn.pn, %3034 ], [ %3023, %3022 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %974) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %974) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %973) #9
  br label %3072

3036:                                             ; preds = %3013
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %981) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %982) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %983) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %983, ptr noundef nonnull align 4 dereferenceable(64) @constinit.116, i64 64, i1 false), !tbaa.struct !24
  store ptr %983, ptr %982, align 8, !tbaa !19
  %3037 = getelementptr inbounds i8, ptr %982, i64 8
  store i64 16, ptr %3037, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64) %981, ptr noundef nonnull align 8 dereferenceable(16) %982)
  %3038 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64) %945, ptr noundef nonnull align 4 dereferenceable(64) %981)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %983) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %982) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %981) #9
  br i1 %3038, label %3059, label %3039

3039:                                             ; preds = %3036
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %984) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %985) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %985) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %984, ptr noundef nonnull @.str.112, ptr noundef nonnull align 1 dereferenceable(1) %985)
          to label %3040 unwind label %3045

3040:                                             ; preds = %3039
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %986) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %987) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %987) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %986, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %987)
          to label %3041 unwind label %3047

3041:                                             ; preds = %3040
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %988) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %989) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %989) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %988, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %989)
          to label %3042 unwind label %3049

3042:                                             ; preds = %3041
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %990) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %991) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %991) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %990, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %991)
          to label %3043 unwind label %3051

3043:                                             ; preds = %3042
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %984, ptr noundef nonnull align 8 dereferenceable(32) %986, ptr noundef nonnull align 8 dereferenceable(32) %988, ptr noundef nonnull align 8 dereferenceable(32) %990, i32 noundef 294) #10
          to label %3044 unwind label %3053

3044:                                             ; preds = %3043
  unreachable

3045:                                             ; preds = %3039
  %3046 = landingpad { ptr, i32 }
          cleanup
  br label %3058

3047:                                             ; preds = %3040
  %3048 = landingpad { ptr, i32 }
          cleanup
  br label %3057

3049:                                             ; preds = %3041
  %3050 = landingpad { ptr, i32 }
          cleanup
  br label %3056

3051:                                             ; preds = %3042
  %3052 = landingpad { ptr, i32 }
          cleanup
  br label %3055

3053:                                             ; preds = %3043
  %3054 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %990) #9
  br label %3055

3055:                                             ; preds = %3053, %3051
  %.pn552 = phi { ptr, i32 } [ %3054, %3053 ], [ %3052, %3051 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %991) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %991) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %990) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %988) #9
  br label %3056

3056:                                             ; preds = %3055, %3049
  %.pn552.pn = phi { ptr, i32 } [ %.pn552, %3055 ], [ %3050, %3049 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %989) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %989) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %988) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %986) #9
  br label %3057

3057:                                             ; preds = %3056, %3047
  %.pn552.pn.pn = phi { ptr, i32 } [ %.pn552.pn, %3056 ], [ %3048, %3047 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %987) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %987) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %986) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %984) #9
  br label %3058

3058:                                             ; preds = %3057, %3045
  %.pn552.pn.pn.pn = phi { ptr, i32 } [ %.pn552.pn.pn, %3057 ], [ %3046, %3045 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %985) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %985) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %984) #9
  br label %3072

3059:                                             ; preds = %3036
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %945) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %942) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %939) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %936) #9
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %992) #9
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1Ef(ptr noundef nonnull align 4 dereferenceable(36) %992, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %993) #9
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1Ef(ptr noundef nonnull align 4 dereferenceable(36) %993, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %994) #9
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1Efff(ptr noundef nonnull align 4 dereferenceable(36) %994, float noundef 2.000000e+00, float noundef 3.000000e+00, float noundef 7.000000e+00)
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %995) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %996) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %997) #9
  store float 1.000000e+00, ptr %997, align 4, !tbaa !22
  store ptr %997, ptr %996, align 8, !tbaa !19
  %3060 = getelementptr inbounds i8, ptr %996, i64 8
  store i64 1, ptr %3060, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %995, ptr noundef nonnull align 8 dereferenceable(16) %996)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %997) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %996) #9
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %998) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %999) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %1000) #9
  store float 2.000000e+00, ptr %1000, align 4, !tbaa !22
  store ptr %1000, ptr %999, align 8, !tbaa !19
  %3061 = getelementptr inbounds i8, ptr %999, i64 8
  store i64 1, ptr %3061, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %998, ptr noundef nonnull align 8 dereferenceable(16) %999)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1000) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %999) #9
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %1001) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1002) #9
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %1003) #9
  store <2 x float> <float 2.000000e+00, float 3.000000e+00>, ptr %1003, align 8, !tbaa !22
  %3062 = getelementptr inbounds i8, ptr %1003, i64 8
  store float 7.000000e+00, ptr %3062, align 8, !tbaa !22
  store ptr %1003, ptr %1002, align 8, !tbaa !19
  %3063 = getelementptr inbounds i8, ptr %1002, i64 8
  store i64 3, ptr %3063, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %1001, ptr noundef nonnull align 8 dereferenceable(16) %1002)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %1003) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1002) #9
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %1004) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1005) #9
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %1006) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %1006, ptr noundef nonnull align 4 dereferenceable(36) @constinit.117, i64 36, i1 false), !tbaa.struct !18
  store ptr %1006, ptr %1005, align 8, !tbaa !19
  %3064 = getelementptr inbounds i8, ptr %1005, i64 8
  store i64 9, ptr %3064, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %1004, ptr noundef nonnull align 8 dereferenceable(16) %1005)
  %3065 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %992, ptr noundef nonnull align 4 dereferenceable(36) %1004)
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %1006) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1005) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %1004) #9
  br i1 %3065, label %3087, label %3066

3066:                                             ; preds = %3059
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1007) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1008) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1008) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1007, ptr noundef nonnull @.str.118, ptr noundef nonnull align 1 dereferenceable(1) %1008)
          to label %3067 unwind label %3073

3067:                                             ; preds = %3066
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1009) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1010) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1010) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1009, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1010)
          to label %3068 unwind label %3075

3068:                                             ; preds = %3067
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1011) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1012) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1012) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1011, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1012)
          to label %3069 unwind label %3077

3069:                                             ; preds = %3068
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1013) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1014) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1014) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1013, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1014)
          to label %3070 unwind label %3079

3070:                                             ; preds = %3069
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1007, ptr noundef nonnull align 8 dereferenceable(32) %1009, ptr noundef nonnull align 8 dereferenceable(32) %1011, ptr noundef nonnull align 8 dereferenceable(32) %1013, i32 noundef 306) #10
          to label %3071 unwind label %3081

3071:                                             ; preds = %3070
  unreachable

3072:                                             ; preds = %3058, %3035, %3012, %2989
  %.pn567.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn567.pn.pn.pn, %2989 ], [ %.pn562.pn.pn.pn, %3012 ], [ %.pn557.pn.pn.pn, %3035 ], [ %.pn552.pn.pn.pn, %3058 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %945) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %942) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %939) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %936) #9
  br label %3346

3073:                                             ; preds = %3066
  %3074 = landingpad { ptr, i32 }
          cleanup
  br label %3086

3075:                                             ; preds = %3067
  %3076 = landingpad { ptr, i32 }
          cleanup
  br label %3085

3077:                                             ; preds = %3068
  %3078 = landingpad { ptr, i32 }
          cleanup
  br label %3084

3079:                                             ; preds = %3069
  %3080 = landingpad { ptr, i32 }
          cleanup
  br label %3083

3081:                                             ; preds = %3070
  %3082 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1013) #9
  br label %3083

3083:                                             ; preds = %3081, %3079
  %.pn546 = phi { ptr, i32 } [ %3082, %3081 ], [ %3080, %3079 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1014) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1014) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1013) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1011) #9
  br label %3084

3084:                                             ; preds = %3083, %3077
  %.pn546.pn = phi { ptr, i32 } [ %.pn546, %3083 ], [ %3078, %3077 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1012) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1012) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1011) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1009) #9
  br label %3085

3085:                                             ; preds = %3084, %3075
  %.pn546.pn.pn = phi { ptr, i32 } [ %.pn546.pn, %3084 ], [ %3076, %3075 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1010) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1010) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1009) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1007) #9
  br label %3086

3086:                                             ; preds = %3085, %3073
  %.pn546.pn.pn.pn = phi { ptr, i32 } [ %.pn546.pn.pn, %3085 ], [ %3074, %3073 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1008) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1008) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1007) #9
  br label %3214

3087:                                             ; preds = %3059
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %1015) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1016) #9
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %1017) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %1017, ptr noundef nonnull align 4 dereferenceable(36) @constinit.119, i64 36, i1 false), !tbaa.struct !18
  store ptr %1017, ptr %1016, align 8, !tbaa !19
  %3088 = getelementptr inbounds i8, ptr %1016, i64 8
  store i64 9, ptr %3088, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %1015, ptr noundef nonnull align 8 dereferenceable(16) %1016)
  %3089 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %993, ptr noundef nonnull align 4 dereferenceable(36) %1015)
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %1017) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1016) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %1015) #9
  br i1 %3089, label %3110, label %3090

3090:                                             ; preds = %3087
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1018) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1019) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1019) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1018, ptr noundef nonnull @.str.120, ptr noundef nonnull align 1 dereferenceable(1) %1019)
          to label %3091 unwind label %3096

3091:                                             ; preds = %3090
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1020) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1021) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1021) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1020, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1021)
          to label %3092 unwind label %3098

3092:                                             ; preds = %3091
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1022) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1023) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1023) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1022, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1023)
          to label %3093 unwind label %3100

3093:                                             ; preds = %3092
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1024) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1025) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1025) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1024, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1025)
          to label %3094 unwind label %3102

3094:                                             ; preds = %3093
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1018, ptr noundef nonnull align 8 dereferenceable(32) %1020, ptr noundef nonnull align 8 dereferenceable(32) %1022, ptr noundef nonnull align 8 dereferenceable(32) %1024, i32 noundef 307) #10
          to label %3095 unwind label %3104

3095:                                             ; preds = %3094
  unreachable

3096:                                             ; preds = %3090
  %3097 = landingpad { ptr, i32 }
          cleanup
  br label %3109

3098:                                             ; preds = %3091
  %3099 = landingpad { ptr, i32 }
          cleanup
  br label %3108

3100:                                             ; preds = %3092
  %3101 = landingpad { ptr, i32 }
          cleanup
  br label %3107

3102:                                             ; preds = %3093
  %3103 = landingpad { ptr, i32 }
          cleanup
  br label %3106

3104:                                             ; preds = %3094
  %3105 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1024) #9
  br label %3106

3106:                                             ; preds = %3104, %3102
  %.pn541 = phi { ptr, i32 } [ %3105, %3104 ], [ %3103, %3102 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1025) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1025) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1024) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1022) #9
  br label %3107

3107:                                             ; preds = %3106, %3100
  %.pn541.pn = phi { ptr, i32 } [ %.pn541, %3106 ], [ %3101, %3100 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1023) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1023) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1022) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1020) #9
  br label %3108

3108:                                             ; preds = %3107, %3098
  %.pn541.pn.pn = phi { ptr, i32 } [ %.pn541.pn, %3107 ], [ %3099, %3098 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1021) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1021) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1020) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1018) #9
  br label %3109

3109:                                             ; preds = %3108, %3096
  %.pn541.pn.pn.pn = phi { ptr, i32 } [ %.pn541.pn.pn, %3108 ], [ %3097, %3096 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1019) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1019) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1018) #9
  br label %3214

3110:                                             ; preds = %3087
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %1026) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1027) #9
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %1028) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %1028, ptr noundef nonnull align 4 dereferenceable(36) @constinit.121, i64 36, i1 false), !tbaa.struct !18
  store ptr %1028, ptr %1027, align 8, !tbaa !19
  %3111 = getelementptr inbounds i8, ptr %1027, i64 8
  store i64 9, ptr %3111, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %1026, ptr noundef nonnull align 8 dereferenceable(16) %1027)
  %3112 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %994, ptr noundef nonnull align 4 dereferenceable(36) %1026)
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %1028) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1027) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %1026) #9
  br i1 %3112, label %3133, label %3113

3113:                                             ; preds = %3110
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1029) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1030) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1030) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1029, ptr noundef nonnull @.str.122, ptr noundef nonnull align 1 dereferenceable(1) %1030)
          to label %3114 unwind label %3119

3114:                                             ; preds = %3113
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1031) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1032) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1032) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1031, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1032)
          to label %3115 unwind label %3121

3115:                                             ; preds = %3114
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1033) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1034) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1034) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1033, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1034)
          to label %3116 unwind label %3123

3116:                                             ; preds = %3115
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1035) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1036) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1036) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1035, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1036)
          to label %3117 unwind label %3125

3117:                                             ; preds = %3116
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1029, ptr noundef nonnull align 8 dereferenceable(32) %1031, ptr noundef nonnull align 8 dereferenceable(32) %1033, ptr noundef nonnull align 8 dereferenceable(32) %1035, i32 noundef 308) #10
          to label %3118 unwind label %3127

3118:                                             ; preds = %3117
  unreachable

3119:                                             ; preds = %3113
  %3120 = landingpad { ptr, i32 }
          cleanup
  br label %3132

3121:                                             ; preds = %3114
  %3122 = landingpad { ptr, i32 }
          cleanup
  br label %3131

3123:                                             ; preds = %3115
  %3124 = landingpad { ptr, i32 }
          cleanup
  br label %3130

3125:                                             ; preds = %3116
  %3126 = landingpad { ptr, i32 }
          cleanup
  br label %3129

3127:                                             ; preds = %3117
  %3128 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1035) #9
  br label %3129

3129:                                             ; preds = %3127, %3125
  %.pn536 = phi { ptr, i32 } [ %3128, %3127 ], [ %3126, %3125 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1036) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1036) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1035) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1033) #9
  br label %3130

3130:                                             ; preds = %3129, %3123
  %.pn536.pn = phi { ptr, i32 } [ %.pn536, %3129 ], [ %3124, %3123 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1034) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1034) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1033) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1031) #9
  br label %3131

3131:                                             ; preds = %3130, %3121
  %.pn536.pn.pn = phi { ptr, i32 } [ %.pn536.pn, %3130 ], [ %3122, %3121 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1032) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1032) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1031) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1029) #9
  br label %3132

3132:                                             ; preds = %3131, %3119
  %.pn536.pn.pn.pn = phi { ptr, i32 } [ %.pn536.pn.pn, %3131 ], [ %3120, %3119 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1030) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1030) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1029) #9
  br label %3214

3133:                                             ; preds = %3110
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %1037) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1038) #9
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %1039) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %1039, ptr noundef nonnull align 4 dereferenceable(36) @constinit.123, i64 36, i1 false), !tbaa.struct !18
  store ptr %1039, ptr %1038, align 8, !tbaa !19
  %3134 = getelementptr inbounds i8, ptr %1038, i64 8
  store i64 9, ptr %3134, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %1037, ptr noundef nonnull align 8 dereferenceable(16) %1038)
  %3135 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %995, ptr noundef nonnull align 4 dereferenceable(36) %1037)
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %1039) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1038) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %1037) #9
  br i1 %3135, label %3156, label %3136

3136:                                             ; preds = %3133
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1040) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1041) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1041) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1040, ptr noundef nonnull @.str.124, ptr noundef nonnull align 1 dereferenceable(1) %1041)
          to label %3137 unwind label %3142

3137:                                             ; preds = %3136
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1042) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1043) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1043) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1042, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1043)
          to label %3138 unwind label %3144

3138:                                             ; preds = %3137
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1044) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1045) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1045) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1044, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1045)
          to label %3139 unwind label %3146

3139:                                             ; preds = %3138
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1046) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1047) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1047) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1046, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1047)
          to label %3140 unwind label %3148

3140:                                             ; preds = %3139
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1040, ptr noundef nonnull align 8 dereferenceable(32) %1042, ptr noundef nonnull align 8 dereferenceable(32) %1044, ptr noundef nonnull align 8 dereferenceable(32) %1046, i32 noundef 310) #10
          to label %3141 unwind label %3150

3141:                                             ; preds = %3140
  unreachable

3142:                                             ; preds = %3136
  %3143 = landingpad { ptr, i32 }
          cleanup
  br label %3155

3144:                                             ; preds = %3137
  %3145 = landingpad { ptr, i32 }
          cleanup
  br label %3154

3146:                                             ; preds = %3138
  %3147 = landingpad { ptr, i32 }
          cleanup
  br label %3153

3148:                                             ; preds = %3139
  %3149 = landingpad { ptr, i32 }
          cleanup
  br label %3152

3150:                                             ; preds = %3140
  %3151 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1046) #9
  br label %3152

3152:                                             ; preds = %3150, %3148
  %.pn531 = phi { ptr, i32 } [ %3151, %3150 ], [ %3149, %3148 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1047) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1047) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1046) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1044) #9
  br label %3153

3153:                                             ; preds = %3152, %3146
  %.pn531.pn = phi { ptr, i32 } [ %.pn531, %3152 ], [ %3147, %3146 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1045) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1045) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1044) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1042) #9
  br label %3154

3154:                                             ; preds = %3153, %3144
  %.pn531.pn.pn = phi { ptr, i32 } [ %.pn531.pn, %3153 ], [ %3145, %3144 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1043) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1043) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1042) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1040) #9
  br label %3155

3155:                                             ; preds = %3154, %3142
  %.pn531.pn.pn.pn = phi { ptr, i32 } [ %.pn531.pn.pn, %3154 ], [ %3143, %3142 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1041) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1041) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1040) #9
  br label %3214

3156:                                             ; preds = %3133
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %1048) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1049) #9
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %1050) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %1050, ptr noundef nonnull align 4 dereferenceable(36) @constinit.125, i64 36, i1 false), !tbaa.struct !18
  store ptr %1050, ptr %1049, align 8, !tbaa !19
  %3157 = getelementptr inbounds i8, ptr %1049, i64 8
  store i64 9, ptr %3157, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %1048, ptr noundef nonnull align 8 dereferenceable(16) %1049)
  %3158 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %998, ptr noundef nonnull align 4 dereferenceable(36) %1048)
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %1050) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1049) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %1048) #9
  br i1 %3158, label %3179, label %3159

3159:                                             ; preds = %3156
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1051) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1052) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1052) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1051, ptr noundef nonnull @.str.126, ptr noundef nonnull align 1 dereferenceable(1) %1052)
          to label %3160 unwind label %3165

3160:                                             ; preds = %3159
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1053) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1054) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1054) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1053, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1054)
          to label %3161 unwind label %3167

3161:                                             ; preds = %3160
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1055) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1056) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1056) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1055, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1056)
          to label %3162 unwind label %3169

3162:                                             ; preds = %3161
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1057) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1058) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1058) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1057, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1058)
          to label %3163 unwind label %3171

3163:                                             ; preds = %3162
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1051, ptr noundef nonnull align 8 dereferenceable(32) %1053, ptr noundef nonnull align 8 dereferenceable(32) %1055, ptr noundef nonnull align 8 dereferenceable(32) %1057, i32 noundef 311) #10
          to label %3164 unwind label %3173

3164:                                             ; preds = %3163
  unreachable

3165:                                             ; preds = %3159
  %3166 = landingpad { ptr, i32 }
          cleanup
  br label %3178

3167:                                             ; preds = %3160
  %3168 = landingpad { ptr, i32 }
          cleanup
  br label %3177

3169:                                             ; preds = %3161
  %3170 = landingpad { ptr, i32 }
          cleanup
  br label %3176

3171:                                             ; preds = %3162
  %3172 = landingpad { ptr, i32 }
          cleanup
  br label %3175

3173:                                             ; preds = %3163
  %3174 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1057) #9
  br label %3175

3175:                                             ; preds = %3173, %3171
  %.pn526 = phi { ptr, i32 } [ %3174, %3173 ], [ %3172, %3171 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1058) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1058) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1057) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1055) #9
  br label %3176

3176:                                             ; preds = %3175, %3169
  %.pn526.pn = phi { ptr, i32 } [ %.pn526, %3175 ], [ %3170, %3169 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1056) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1056) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1055) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1053) #9
  br label %3177

3177:                                             ; preds = %3176, %3167
  %.pn526.pn.pn = phi { ptr, i32 } [ %.pn526.pn, %3176 ], [ %3168, %3167 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1054) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1054) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1053) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1051) #9
  br label %3178

3178:                                             ; preds = %3177, %3165
  %.pn526.pn.pn.pn = phi { ptr, i32 } [ %.pn526.pn.pn, %3177 ], [ %3166, %3165 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1052) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1052) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1051) #9
  br label %3214

3179:                                             ; preds = %3156
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %1059) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1060) #9
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %1061) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(36) %1061, ptr noundef nonnull align 4 dereferenceable(36) @constinit.127, i64 36, i1 false), !tbaa.struct !18
  store ptr %1061, ptr %1060, align 8, !tbaa !19
  %3180 = getelementptr inbounds i8, ptr %1060, i64 8
  store i64 9, ptr %3180, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36) %1059, ptr noundef nonnull align 8 dereferenceable(16) %1060)
  %3181 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36) %1001, ptr noundef nonnull align 4 dereferenceable(36) %1059)
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %1061) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1060) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %1059) #9
  br i1 %3181, label %3202, label %3182

3182:                                             ; preds = %3179
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1062) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1063) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1063) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1062, ptr noundef nonnull @.str.128, ptr noundef nonnull align 1 dereferenceable(1) %1063)
          to label %3183 unwind label %3188

3183:                                             ; preds = %3182
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1064) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1065) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1065) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1064, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1065)
          to label %3184 unwind label %3190

3184:                                             ; preds = %3183
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1066) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1067) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1067) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1066, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1067)
          to label %3185 unwind label %3192

3185:                                             ; preds = %3184
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1068) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1069) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1069) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1068, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1069)
          to label %3186 unwind label %3194

3186:                                             ; preds = %3185
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1062, ptr noundef nonnull align 8 dereferenceable(32) %1064, ptr noundef nonnull align 8 dereferenceable(32) %1066, ptr noundef nonnull align 8 dereferenceable(32) %1068, i32 noundef 312) #10
          to label %3187 unwind label %3196

3187:                                             ; preds = %3186
  unreachable

3188:                                             ; preds = %3182
  %3189 = landingpad { ptr, i32 }
          cleanup
  br label %3201

3190:                                             ; preds = %3183
  %3191 = landingpad { ptr, i32 }
          cleanup
  br label %3200

3192:                                             ; preds = %3184
  %3193 = landingpad { ptr, i32 }
          cleanup
  br label %3199

3194:                                             ; preds = %3185
  %3195 = landingpad { ptr, i32 }
          cleanup
  br label %3198

3196:                                             ; preds = %3186
  %3197 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1068) #9
  br label %3198

3198:                                             ; preds = %3196, %3194
  %.pn521 = phi { ptr, i32 } [ %3197, %3196 ], [ %3195, %3194 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1069) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1069) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1068) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1066) #9
  br label %3199

3199:                                             ; preds = %3198, %3192
  %.pn521.pn = phi { ptr, i32 } [ %.pn521, %3198 ], [ %3193, %3192 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1067) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1067) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1066) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1064) #9
  br label %3200

3200:                                             ; preds = %3199, %3190
  %.pn521.pn.pn = phi { ptr, i32 } [ %.pn521.pn, %3199 ], [ %3191, %3190 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1065) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1065) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1064) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1062) #9
  br label %3201

3201:                                             ; preds = %3200, %3188
  %.pn521.pn.pn.pn = phi { ptr, i32 } [ %.pn521.pn.pn, %3200 ], [ %3189, %3188 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1063) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1063) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1062) #9
  br label %3214

3202:                                             ; preds = %3179
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %1001) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %998) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %995) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %994) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %993) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %992) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1070) #9
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1Ef(ptr noundef nonnull align 4 dereferenceable(16) %1070, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1071) #9
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1Ef(ptr noundef nonnull align 4 dereferenceable(16) %1071, float noundef 2.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1072) #9
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1Eff(ptr noundef nonnull align 4 dereferenceable(16) %1072, float noundef 2.000000e+00, float noundef 3.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1073) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1074) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %1075) #9
  store float 1.000000e+00, ptr %1075, align 4, !tbaa !22
  store ptr %1075, ptr %1074, align 8, !tbaa !19
  %3203 = getelementptr inbounds i8, ptr %1074, i64 8
  store i64 1, ptr %3203, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1073, ptr noundef nonnull align 8 dereferenceable(16) %1074)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1075) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1074) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1076) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1077) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %1078) #9
  store float 2.000000e+00, ptr %1078, align 4, !tbaa !22
  store ptr %1078, ptr %1077, align 8, !tbaa !19
  %3204 = getelementptr inbounds i8, ptr %1077, i64 8
  store i64 1, ptr %3204, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1076, ptr noundef nonnull align 8 dereferenceable(16) %1077)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1078) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1077) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1079) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1080) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1081) #9
  store <2 x float> <float 2.000000e+00, float 3.000000e+00>, ptr %1081, align 8, !tbaa !22
  store ptr %1081, ptr %1080, align 8, !tbaa !19
  %3205 = getelementptr inbounds i8, ptr %1080, i64 8
  store i64 2, ptr %3205, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1079, ptr noundef nonnull align 8 dereferenceable(16) %1080)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1081) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1080) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1082) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1083) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1084) #9
  store <4 x float> <float 1.000000e+00, float 0.000000e+00, float 0.000000e+00, float 1.000000e+00>, ptr %1084, align 16, !tbaa !22
  store ptr %1084, ptr %1083, align 8, !tbaa !19
  %3206 = getelementptr inbounds i8, ptr %1083, i64 8
  store i64 4, ptr %3206, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1082, ptr noundef nonnull align 8 dereferenceable(16) %1083)
  %3207 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %1070, ptr noundef nonnull align 4 dereferenceable(16) %1082)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1084) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1083) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1082) #9
  br i1 %3207, label %3229, label %3208

3208:                                             ; preds = %3202
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1085) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1086) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1086) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1085, ptr noundef nonnull @.str.129, ptr noundef nonnull align 1 dereferenceable(1) %1086)
          to label %3209 unwind label %3215

3209:                                             ; preds = %3208
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1087) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1088) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1088) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1087, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1088)
          to label %3210 unwind label %3217

3210:                                             ; preds = %3209
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1089) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1090) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1090) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1089, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1090)
          to label %3211 unwind label %3219

3211:                                             ; preds = %3210
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1091) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1092) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1092) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1091, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1092)
          to label %3212 unwind label %3221

3212:                                             ; preds = %3211
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1085, ptr noundef nonnull align 8 dereferenceable(32) %1087, ptr noundef nonnull align 8 dereferenceable(32) %1089, ptr noundef nonnull align 8 dereferenceable(32) %1091, i32 noundef 324) #10
          to label %3213 unwind label %3223

3213:                                             ; preds = %3212
  unreachable

3214:                                             ; preds = %3201, %3178, %3155, %3132, %3109, %3086
  %.pn546.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn546.pn.pn.pn, %3086 ], [ %.pn541.pn.pn.pn, %3109 ], [ %.pn536.pn.pn.pn, %3132 ], [ %.pn531.pn.pn.pn, %3155 ], [ %.pn526.pn.pn.pn, %3178 ], [ %.pn521.pn.pn.pn, %3201 ]
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %1001) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %998) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %995) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %994) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %993) #9
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %992) #9
  br label %3346

3215:                                             ; preds = %3208
  %3216 = landingpad { ptr, i32 }
          cleanup
  br label %3228

3217:                                             ; preds = %3209
  %3218 = landingpad { ptr, i32 }
          cleanup
  br label %3227

3219:                                             ; preds = %3210
  %3220 = landingpad { ptr, i32 }
          cleanup
  br label %3226

3221:                                             ; preds = %3211
  %3222 = landingpad { ptr, i32 }
          cleanup
  br label %3225

3223:                                             ; preds = %3212
  %3224 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1091) #9
  br label %3225

3225:                                             ; preds = %3223, %3221
  %.pn515 = phi { ptr, i32 } [ %3224, %3223 ], [ %3222, %3221 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1092) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1092) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1091) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1089) #9
  br label %3226

3226:                                             ; preds = %3225, %3219
  %.pn515.pn = phi { ptr, i32 } [ %.pn515, %3225 ], [ %3220, %3219 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1090) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1090) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1089) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1087) #9
  br label %3227

3227:                                             ; preds = %3226, %3217
  %.pn515.pn.pn = phi { ptr, i32 } [ %.pn515.pn, %3226 ], [ %3218, %3217 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1088) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1088) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1087) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1085) #9
  br label %3228

3228:                                             ; preds = %3227, %3215
  %.pn515.pn.pn.pn = phi { ptr, i32 } [ %.pn515.pn.pn, %3227 ], [ %3216, %3215 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1086) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1086) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1085) #9
  br label %3345

3229:                                             ; preds = %3202
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1093) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1094) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1095) #9
  store <4 x float> <float 2.000000e+00, float 0.000000e+00, float 0.000000e+00, float 2.000000e+00>, ptr %1095, align 16, !tbaa !22
  store ptr %1095, ptr %1094, align 8, !tbaa !19
  %3230 = getelementptr inbounds i8, ptr %1094, i64 8
  store i64 4, ptr %3230, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1093, ptr noundef nonnull align 8 dereferenceable(16) %1094)
  %3231 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %1071, ptr noundef nonnull align 4 dereferenceable(16) %1093)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1095) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1094) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1093) #9
  br i1 %3231, label %3252, label %3232

3232:                                             ; preds = %3229
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1096) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1097) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1097) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1096, ptr noundef nonnull @.str.130, ptr noundef nonnull align 1 dereferenceable(1) %1097)
          to label %3233 unwind label %3238

3233:                                             ; preds = %3232
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1098) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1099) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1099) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1098, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1099)
          to label %3234 unwind label %3240

3234:                                             ; preds = %3233
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1100) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1101) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1101) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1100, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1101)
          to label %3235 unwind label %3242

3235:                                             ; preds = %3234
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1102) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1103) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1103) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1102, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1103)
          to label %3236 unwind label %3244

3236:                                             ; preds = %3235
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1096, ptr noundef nonnull align 8 dereferenceable(32) %1098, ptr noundef nonnull align 8 dereferenceable(32) %1100, ptr noundef nonnull align 8 dereferenceable(32) %1102, i32 noundef 325) #10
          to label %3237 unwind label %3246

3237:                                             ; preds = %3236
  unreachable

3238:                                             ; preds = %3232
  %3239 = landingpad { ptr, i32 }
          cleanup
  br label %3251

3240:                                             ; preds = %3233
  %3241 = landingpad { ptr, i32 }
          cleanup
  br label %3250

3242:                                             ; preds = %3234
  %3243 = landingpad { ptr, i32 }
          cleanup
  br label %3249

3244:                                             ; preds = %3235
  %3245 = landingpad { ptr, i32 }
          cleanup
  br label %3248

3246:                                             ; preds = %3236
  %3247 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1102) #9
  br label %3248

3248:                                             ; preds = %3246, %3244
  %.pn510 = phi { ptr, i32 } [ %3247, %3246 ], [ %3245, %3244 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1103) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1103) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1102) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1100) #9
  br label %3249

3249:                                             ; preds = %3248, %3242
  %.pn510.pn = phi { ptr, i32 } [ %.pn510, %3248 ], [ %3243, %3242 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1101) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1101) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1100) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1098) #9
  br label %3250

3250:                                             ; preds = %3249, %3240
  %.pn510.pn.pn = phi { ptr, i32 } [ %.pn510.pn, %3249 ], [ %3241, %3240 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1099) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1099) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1098) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1096) #9
  br label %3251

3251:                                             ; preds = %3250, %3238
  %.pn510.pn.pn.pn = phi { ptr, i32 } [ %.pn510.pn.pn, %3250 ], [ %3239, %3238 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1097) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1097) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1096) #9
  br label %3345

3252:                                             ; preds = %3229
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1104) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1105) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1106) #9
  store <4 x float> <float 2.000000e+00, float 0.000000e+00, float 0.000000e+00, float 3.000000e+00>, ptr %1106, align 16, !tbaa !22
  store ptr %1106, ptr %1105, align 8, !tbaa !19
  %3253 = getelementptr inbounds i8, ptr %1105, i64 8
  store i64 4, ptr %3253, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1104, ptr noundef nonnull align 8 dereferenceable(16) %1105)
  %3254 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %1072, ptr noundef nonnull align 4 dereferenceable(16) %1104)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1106) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1105) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1104) #9
  br i1 %3254, label %3275, label %3255

3255:                                             ; preds = %3252
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1107) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1108) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1108) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1107, ptr noundef nonnull @.str.131, ptr noundef nonnull align 1 dereferenceable(1) %1108)
          to label %3256 unwind label %3261

3256:                                             ; preds = %3255
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1109) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1110) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1110) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1109, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1110)
          to label %3257 unwind label %3263

3257:                                             ; preds = %3256
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1111) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1112) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1112) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1111, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1112)
          to label %3258 unwind label %3265

3258:                                             ; preds = %3257
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1113) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1114) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1114) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1113, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1114)
          to label %3259 unwind label %3267

3259:                                             ; preds = %3258
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1107, ptr noundef nonnull align 8 dereferenceable(32) %1109, ptr noundef nonnull align 8 dereferenceable(32) %1111, ptr noundef nonnull align 8 dereferenceable(32) %1113, i32 noundef 326) #10
          to label %3260 unwind label %3269

3260:                                             ; preds = %3259
  unreachable

3261:                                             ; preds = %3255
  %3262 = landingpad { ptr, i32 }
          cleanup
  br label %3274

3263:                                             ; preds = %3256
  %3264 = landingpad { ptr, i32 }
          cleanup
  br label %3273

3265:                                             ; preds = %3257
  %3266 = landingpad { ptr, i32 }
          cleanup
  br label %3272

3267:                                             ; preds = %3258
  %3268 = landingpad { ptr, i32 }
          cleanup
  br label %3271

3269:                                             ; preds = %3259
  %3270 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1113) #9
  br label %3271

3271:                                             ; preds = %3269, %3267
  %.pn505 = phi { ptr, i32 } [ %3270, %3269 ], [ %3268, %3267 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1114) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1114) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1113) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1111) #9
  br label %3272

3272:                                             ; preds = %3271, %3265
  %.pn505.pn = phi { ptr, i32 } [ %.pn505, %3271 ], [ %3266, %3265 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1112) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1112) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1111) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1109) #9
  br label %3273

3273:                                             ; preds = %3272, %3263
  %.pn505.pn.pn = phi { ptr, i32 } [ %.pn505.pn, %3272 ], [ %3264, %3263 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1110) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1110) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1109) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1107) #9
  br label %3274

3274:                                             ; preds = %3273, %3261
  %.pn505.pn.pn.pn = phi { ptr, i32 } [ %.pn505.pn.pn, %3273 ], [ %3262, %3261 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1108) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1108) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1107) #9
  br label %3345

3275:                                             ; preds = %3252
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1115) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1116) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1117) #9
  store <4 x float> <float 1.000000e+00, float 0.000000e+00, float 0.000000e+00, float 1.000000e+00>, ptr %1117, align 16, !tbaa !22
  store ptr %1117, ptr %1116, align 8, !tbaa !19
  %3276 = getelementptr inbounds i8, ptr %1116, i64 8
  store i64 4, ptr %3276, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1115, ptr noundef nonnull align 8 dereferenceable(16) %1116)
  %3277 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %1073, ptr noundef nonnull align 4 dereferenceable(16) %1115)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1117) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1116) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1115) #9
  br i1 %3277, label %3298, label %3278

3278:                                             ; preds = %3275
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1118) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1119) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1119) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1118, ptr noundef nonnull @.str.132, ptr noundef nonnull align 1 dereferenceable(1) %1119)
          to label %3279 unwind label %3284

3279:                                             ; preds = %3278
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1120) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1121) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1121) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1120, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1121)
          to label %3280 unwind label %3286

3280:                                             ; preds = %3279
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1122) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1123) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1123) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1122, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1123)
          to label %3281 unwind label %3288

3281:                                             ; preds = %3280
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1124) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1125) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1125) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1124, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1125)
          to label %3282 unwind label %3290

3282:                                             ; preds = %3281
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1118, ptr noundef nonnull align 8 dereferenceable(32) %1120, ptr noundef nonnull align 8 dereferenceable(32) %1122, ptr noundef nonnull align 8 dereferenceable(32) %1124, i32 noundef 328) #10
          to label %3283 unwind label %3292

3283:                                             ; preds = %3282
  unreachable

3284:                                             ; preds = %3278
  %3285 = landingpad { ptr, i32 }
          cleanup
  br label %3297

3286:                                             ; preds = %3279
  %3287 = landingpad { ptr, i32 }
          cleanup
  br label %3296

3288:                                             ; preds = %3280
  %3289 = landingpad { ptr, i32 }
          cleanup
  br label %3295

3290:                                             ; preds = %3281
  %3291 = landingpad { ptr, i32 }
          cleanup
  br label %3294

3292:                                             ; preds = %3282
  %3293 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1124) #9
  br label %3294

3294:                                             ; preds = %3292, %3290
  %.pn500 = phi { ptr, i32 } [ %3293, %3292 ], [ %3291, %3290 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1125) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1125) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1124) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1122) #9
  br label %3295

3295:                                             ; preds = %3294, %3288
  %.pn500.pn = phi { ptr, i32 } [ %.pn500, %3294 ], [ %3289, %3288 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1123) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1123) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1122) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1120) #9
  br label %3296

3296:                                             ; preds = %3295, %3286
  %.pn500.pn.pn = phi { ptr, i32 } [ %.pn500.pn, %3295 ], [ %3287, %3286 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1121) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1121) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1120) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1118) #9
  br label %3297

3297:                                             ; preds = %3296, %3284
  %.pn500.pn.pn.pn = phi { ptr, i32 } [ %.pn500.pn.pn, %3296 ], [ %3285, %3284 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1119) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1119) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1118) #9
  br label %3345

3298:                                             ; preds = %3275
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1126) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1127) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1128) #9
  store <4 x float> <float 2.000000e+00, float 0.000000e+00, float 0.000000e+00, float 2.000000e+00>, ptr %1128, align 16, !tbaa !22
  store ptr %1128, ptr %1127, align 8, !tbaa !19
  %3299 = getelementptr inbounds i8, ptr %1127, i64 8
  store i64 4, ptr %3299, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1126, ptr noundef nonnull align 8 dereferenceable(16) %1127)
  %3300 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %1076, ptr noundef nonnull align 4 dereferenceable(16) %1126)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1128) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1127) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1126) #9
  br i1 %3300, label %3321, label %3301

3301:                                             ; preds = %3298
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1129) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1130) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1130) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1129, ptr noundef nonnull @.str.133, ptr noundef nonnull align 1 dereferenceable(1) %1130)
          to label %3302 unwind label %3307

3302:                                             ; preds = %3301
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1131) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1132) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1132) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1131, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1132)
          to label %3303 unwind label %3309

3303:                                             ; preds = %3302
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1133) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1134) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1134) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1133, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1134)
          to label %3304 unwind label %3311

3304:                                             ; preds = %3303
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1135) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1136) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1136) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1135, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1136)
          to label %3305 unwind label %3313

3305:                                             ; preds = %3304
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1129, ptr noundef nonnull align 8 dereferenceable(32) %1131, ptr noundef nonnull align 8 dereferenceable(32) %1133, ptr noundef nonnull align 8 dereferenceable(32) %1135, i32 noundef 329) #10
          to label %3306 unwind label %3315

3306:                                             ; preds = %3305
  unreachable

3307:                                             ; preds = %3301
  %3308 = landingpad { ptr, i32 }
          cleanup
  br label %3320

3309:                                             ; preds = %3302
  %3310 = landingpad { ptr, i32 }
          cleanup
  br label %3319

3311:                                             ; preds = %3303
  %3312 = landingpad { ptr, i32 }
          cleanup
  br label %3318

3313:                                             ; preds = %3304
  %3314 = landingpad { ptr, i32 }
          cleanup
  br label %3317

3315:                                             ; preds = %3305
  %3316 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1135) #9
  br label %3317

3317:                                             ; preds = %3315, %3313
  %.pn495 = phi { ptr, i32 } [ %3316, %3315 ], [ %3314, %3313 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1136) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1136) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1135) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1133) #9
  br label %3318

3318:                                             ; preds = %3317, %3311
  %.pn495.pn = phi { ptr, i32 } [ %.pn495, %3317 ], [ %3312, %3311 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1134) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1134) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1133) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1131) #9
  br label %3319

3319:                                             ; preds = %3318, %3309
  %.pn495.pn.pn = phi { ptr, i32 } [ %.pn495.pn, %3318 ], [ %3310, %3309 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1132) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1132) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1131) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1129) #9
  br label %3320

3320:                                             ; preds = %3319, %3307
  %.pn495.pn.pn.pn = phi { ptr, i32 } [ %.pn495.pn.pn, %3319 ], [ %3308, %3307 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1130) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1130) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1129) #9
  br label %3345

3321:                                             ; preds = %3298
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1137) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1138) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1139) #9
  store <4 x float> <float 2.000000e+00, float 0.000000e+00, float 0.000000e+00, float 3.000000e+00>, ptr %1139, align 16, !tbaa !22
  store ptr %1139, ptr %1138, align 8, !tbaa !19
  %3322 = getelementptr inbounds i8, ptr %1138, i64 8
  store i64 4, ptr %3322, align 8, !tbaa !21
  call void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16) %1137, ptr noundef nonnull align 8 dereferenceable(16) %1138)
  %3323 = call noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16) %1079, ptr noundef nonnull align 4 dereferenceable(16) %1137)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1139) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1138) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1137) #9
  br i1 %3323, label %3344, label %3324

3324:                                             ; preds = %3321
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1140) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1141) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1141) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1140, ptr noundef nonnull @.str.134, ptr noundef nonnull align 1 dereferenceable(1) %1141)
          to label %3325 unwind label %3330

3325:                                             ; preds = %3324
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1142) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1143) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1143) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1142, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %1143)
          to label %3326 unwind label %3332

3326:                                             ; preds = %3325
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1144) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1145) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1145) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1144, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %1145)
          to label %3327 unwind label %3334

3327:                                             ; preds = %3326
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1146) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1147) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1147) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1146, ptr noundef nonnull @__func__._ZN8cgp_test17test_matrix_stackEv, ptr noundef nonnull align 1 dereferenceable(1) %1147)
          to label %3328 unwind label %3336

3328:                                             ; preds = %3327
  invoke void @_ZN3cgp10call_errorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_i(ptr noundef nonnull align 8 dereferenceable(32) %1140, ptr noundef nonnull align 8 dereferenceable(32) %1142, ptr noundef nonnull align 8 dereferenceable(32) %1144, ptr noundef nonnull align 8 dereferenceable(32) %1146, i32 noundef 330) #10
          to label %3329 unwind label %3338

3329:                                             ; preds = %3328
  unreachable

3330:                                             ; preds = %3324
  %3331 = landingpad { ptr, i32 }
          cleanup
  br label %3343

3332:                                             ; preds = %3325
  %3333 = landingpad { ptr, i32 }
          cleanup
  br label %3342

3334:                                             ; preds = %3326
  %3335 = landingpad { ptr, i32 }
          cleanup
  br label %3341

3336:                                             ; preds = %3327
  %3337 = landingpad { ptr, i32 }
          cleanup
  br label %3340

3338:                                             ; preds = %3328
  %3339 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1146) #9
  br label %3340

3340:                                             ; preds = %3338, %3336
  %.pn = phi { ptr, i32 } [ %3339, %3338 ], [ %3337, %3336 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1147) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1147) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1146) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1144) #9
  br label %3341

3341:                                             ; preds = %3340, %3334
  %.pn.pn = phi { ptr, i32 } [ %.pn, %3340 ], [ %3335, %3334 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1145) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1145) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1144) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1142) #9
  br label %3342

3342:                                             ; preds = %3341, %3332
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %3341 ], [ %3333, %3332 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1143) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1143) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1142) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1140) #9
  br label %3343

3343:                                             ; preds = %3342, %3330
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %3342 ], [ %3331, %3330 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1141) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1141) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1140) #9
  br label %3345

3344:                                             ; preds = %3321
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1079) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1076) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1073) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1072) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1071) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1070) #9
  ret void

3345:                                             ; preds = %3343, %3320, %3297, %3274, %3251, %3228
  %.pn515.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn515.pn.pn.pn, %3228 ], [ %.pn510.pn.pn.pn, %3251 ], [ %.pn505.pn.pn.pn, %3274 ], [ %.pn500.pn.pn.pn, %3297 ], [ %.pn495.pn.pn.pn, %3320 ], [ %.pn.pn.pn.pn, %3343 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1079) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1076) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1073) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1072) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1071) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1070) #9
  br label %3346

3346:                                             ; preds = %3345, %3214, %3072, %2975, %2868, %2845, %2820, %2792, %2761, %2737, %2723, %2616, %2592, %2568, %2540, %2515, %2490, %2476, %2414, %2387, %2363, %2339, %2314, %2289, %2275, %2226, %2168, %2145, %2122, %2108, %2028, %2004, %1979, %1965
  %.pn949.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn949.pn.pn.pn.pn, %1965 ], [ %.pn779.pn.pn.pn, %1979 ], [ %.pn774.pn.pn.pn, %2004 ], [ %.pn769.pn.pn.pn, %2028 ], [ %.pn763.pn.pn.pn.pn, %2108 ], [ %.pn748.pn.pn.pn, %2122 ], [ %.pn743.pn.pn.pn, %2145 ], [ %.pn738.pn.pn.pn, %2168 ], [ %.pn732.pn.pn.pn.pn, %2226 ], [ %.pn721.pn.pn.pn.pn, %2275 ], [ %.pn711.pn.pn.pn, %2289 ], [ %.pn706.pn.pn.pn, %2314 ], [ %.pn701.pn.pn.pn, %2339 ], [ %.pn696.pn.pn.pn, %2363 ], [ %.pn691.pn.pn.pn, %2387 ], [ %.pn686.pn.pn.pn, %2414 ], [ %.pn680.pn.pn.pn.pn, %2476 ], [ %.pn670.pn.pn.pn, %2490 ], [ %.pn665.pn.pn.pn, %2515 ], [ %.pn660.pn.pn.pn, %2540 ], [ %.pn655.pn.pn.pn, %2568 ], [ %.pn650.pn.pn.pn, %2592 ], [ %.pn645.pn.pn.pn, %2616 ], [ %.pn639.pn.pn.pn.pn, %2723 ], [ %.pn619.pn.pn.pn, %2737 ], [ %.pn614.pn.pn.pn, %2761 ], [ %.pn609.pn.pn.pn, %2792 ], [ %.pn604.pn.pn.pn, %2820 ], [ %.pn599.pn.pn.pn, %2845 ], [ %.pn594.pn.pn.pn, %2868 ], [ %.pn588.pn.pn.pn.pn, %2975 ], [ %.pn567.pn.pn.pn.pn, %3072 ], [ %.pn546.pn.pn.pn.pn, %3214 ], [ %.pn515.pn.pn.pn.pn, %3345 ]
  resume { ptr, i32 } %.pn949.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 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) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIiLi2ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 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 nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEii(ptr noundef nonnull align 4 dereferenceable(24), i32 noundef, i32 noundef) local_unnamed_addr #3 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 #4

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 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 #3 align 2

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEclEi(ptr noundef nonnull align 4 dereferenceable(24), i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEclEi(ptr noundef nonnull align 4 dereferenceable(12), i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp12matrix_stackIiLi2ELi3EEixEi(ptr noundef nonnull align 4 dereferenceable(24), i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp14numarray_stackIiLi3EEixEi(ptr noundef nonnull align 4 dereferenceable(12), i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIiLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIiiEEbRKT_RKT0_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi0ELi0EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi0ELi1EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi0ELi2EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi1ELi0EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi1ELi1EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp3getILi1ELi2EiLi2ELi3EEERT1_RNS_12matrix_stackIS1_XT2_EXT3_EEE(ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi0EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi1EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi2EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi3EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi4EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp10get_offsetILi5EiLi2ELi3EEERT0_RNS_12matrix_stackIS1_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp3getILi0EiLi2ELi3EEERNS_14numarray_stackIT0_XT2_EEERNS_12matrix_stackIS2_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN3cgp3getILi1EiLi2ELi3EEERNS_14numarray_stackIT0_XT2_EEERNS_12matrix_stackIS2_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIiLi3ELi2EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i64 } @_ZN3cgpmlIiLi2ELi3ELi2EEENS_12matrix_stackIT_XT0_EXT2_EEERKNS1_IS2_XT0_EXT1_EEERKNS1_IS2_XT1_EXT2_EEE(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIiiLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIiLi2ELi2EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp22multiply_componentwiseIiLi2ELi3EEENS_12matrix_stackIT_XT0_EXT1_EEERKS3_S5_(ptr dead_on_unwind noalias writable sret(%"struct.cgp::matrix_stack") align 4, ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIiiLi2ELi3ELi2ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local i64 @_ZN3cgpmlIiLi2ELi3EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIiLi2EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIiLi5ELi4EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(80), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIiiLi4ELi3ELi4ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(48)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3cgp12matrix_stackIiLi5ELi4EE17remove_row_columnEii(ptr dead_on_unwind noalias writable sret(%"struct.cgp::matrix_stack.9") align 4, ptr noundef nonnull align 4 dereferenceable(80), i32 noundef, i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIiLi4ELi3EEC2ERKSt16initializer_listIiE(ptr noundef nonnull align 4 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi3ELi3ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(36), ptr noundef nonnull align 4 dereferenceable(36)) local_unnamed_addr #3

declare void @_ZN3cgp12matrix_stackIfLi3ELi3EE14build_identityEv(ptr dead_on_unwind writable sret(%"struct.cgp::matrix_stack.11") align 4) local_unnamed_addr #7

declare void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi4ELi3ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(48)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi3ELi4EE14build_identityEv(ptr dead_on_unwind noalias writable sret(%"struct.cgp::matrix_stack.15") align 4) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi3ELi4EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi3ELi4ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(48)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi4ELi3EE14build_identityEv(ptr dead_on_unwind noalias writable sret(%"struct.cgp::matrix_stack.18") align 4) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi4ELi3EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi2ELi2EEC2ILi3ELi3EEERKNS0_IfXT_EXT0_EEE(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(36)) unnamed_addr #3 align 2

declare void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKNS0_IfLi3ELi3EEE(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(36)) unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi2ELi2ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #3

declare void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIffLi4ELi4ELi4ELi4EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(64)) local_unnamed_addr #3

declare void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi2ELi2EEC2ILi4ELi4EEERKNS0_IfXT_EXT0_EEE(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(64)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi3ELi3EEC2ILi4ELi4EEERKNS0_IfXT_EXT0_EEE(ptr noundef nonnull align 4 dereferenceable(36), ptr noundef nonnull align 4 dereferenceable(64)) unnamed_addr #3 align 2

declare void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Ev(ptr noundef nonnull align 4 dereferenceable(64)) unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE9set_blockILi2ELi2EEERS1_RKNS0_IfXT_EXT0_EEEii(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIfLi2EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN3cgpmlIfLi2ELi2EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #0

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIfLi3EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, float } @_ZN3cgpmlIfLi3ELi3EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(36), ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIfLi4EEEbRKNS_14numarray_stackIT_XT0_EEES5_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZN3cgpmlIfLi4ELi4EEENS_14numarray_stackIT_XT0_EEERKNS_12matrix_stackIS2_XT0_EXT1_EEERKNS1_IS2_XT1_EEE(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgpmIIiLi3ELi2EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_RKS3_(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIiiLi3ELi2ELi3ELi2EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgppLIiLi3ELi2EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_RKS3_(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgpmLIiLi2ELi3EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_f(ptr noundef nonnull align 4 dereferenceable(24), float noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi2ELi3EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgpdVIfLi2ELi3EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_f(ptr noundef nonnull align 4 dereferenceable(24), float noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIffLi2ELi3ELi2ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(16) ptr @_ZN3cgpmLIfLi2ELi2EEERNS_12matrix_stackIT_XT0_EXT1_EEES4_f(ptr noundef nonnull align 4 dereferenceable(16), float noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZN3cgpngIfLi2ELi2EEENS_12matrix_stackIT_XT0_EXT1_EEERKS3_(ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi3ELi1EEC2ERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIffLi3ELi1ELi3ELi1EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi3ELi1EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi1ELi3EEC2ERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cgp8is_equalIffLi1ELi3ELi1ELi3EEEbRKNS_12matrix_stackIT_XT1_EXT2_EEERKNS1_IT0_XT3_EXT4_EEE(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi1ELi3EEC2ERKSt16initializer_listIfE(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

declare void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1Ev(ptr noundef nonnull align 4 dereferenceable(16)) unnamed_addr #7

declare noundef nonnull align 4 dereferenceable(16) ptr @_ZN3cgp12matrix_stackIfLi2ELi2EE4fillEf(ptr noundef nonnull align 4 dereferenceable(16), float noundef) local_unnamed_addr #7

declare void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1Ev(ptr noundef nonnull align 4 dereferenceable(36)) unnamed_addr #7

declare noundef nonnull align 4 dereferenceable(36) ptr @_ZN3cgp12matrix_stackIfLi3ELi3EE4fillEf(ptr noundef nonnull align 4 dereferenceable(36), float noundef) local_unnamed_addr #7

declare noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE4fillEf(ptr noundef nonnull align 4 dereferenceable(64), float noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp12matrix_stackIfLi2ELi3EEC2Ev(ptr noundef nonnull align 4 dereferenceable(24)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(24) ptr @_ZN3cgp12matrix_stackIfLi2ELi3EE4fillERKf(ptr noundef nonnull align 4 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

declare void @_ZN3cgp12matrix_stackIfLi4ELi4EE13build_scalingEfff(ptr dead_on_unwind writable sret(%"struct.cgp::matrix_stack.23") align 4, float noundef, float noundef, float noundef) local_unnamed_addr #7

declare noundef nonnull align 4 dereferenceable(64) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EE21set_block_translationEfff(ptr noundef nonnull align 4 dereferenceable(64), float noundef, float noundef, float noundef) local_unnamed_addr #7

declare { <2 x float>, float } @_ZNK3cgp12matrix_stackIfLi4ELi4EE18transform_positionERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #7

declare { <2 x float>, float } @_ZNK3cgp12matrix_stackIfLi4ELi4EE16transform_vectorERKNS_14numarray_stackIfLi3EEE(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3cgp14numarray_stackIfLi4EEC2ERKNS0_IfLi3EEERKf(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { <2 x float>, float } @_ZN3cgpdvERKNS_14numarray_stackIfLi3EEEf(ptr noundef nonnull align 4 dereferenceable(12), float noundef) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, float } @_ZNK3cgp14numarray_stackIfLi4EE3xyzEv(ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #3 align 2

declare noundef nonnull align 4 dereferenceable(4) ptr @_ZN3cgp12matrix_stackIfLi4ELi4EEclEii(ptr noundef nonnull align 4 dereferenceable(64), i32 noundef, i32 noundef) local_unnamed_addr #7

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

declare void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Effffffffffffffff(ptr noundef nonnull align 4 dereferenceable(64), float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef) unnamed_addr #7

declare void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Ef(ptr noundef nonnull align 4 dereferenceable(64), float noundef) unnamed_addr #7

declare void @_ZN3cgp12matrix_stackIfLi4ELi4EEC1Effff(ptr noundef nonnull align 4 dereferenceable(64), float noundef, float noundef, float noundef, float noundef) unnamed_addr #7

declare void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1Ef(ptr noundef nonnull align 4 dereferenceable(36), float noundef) unnamed_addr #7

declare void @_ZN3cgp12matrix_stackIfLi3ELi3EEC1Efff(ptr noundef nonnull align 4 dereferenceable(36), float noundef, float noundef, float noundef) unnamed_addr #7

declare void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1Ef(ptr noundef nonnull align 4 dereferenceable(16), float noundef) unnamed_addr #7

declare void @_ZN3cgp12matrix_stackIfLi2ELi2EEC1Eff(ptr noundef nonnull align 4 dereferenceable(16), float noundef, float noundef) unnamed_addr #7

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="64" "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 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { 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 #5 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { "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 #8 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { 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 = !{i64 0, i64 24, !6}
!6 = !{!7, !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 = !{!"int", !7, i64 0}
!16 = !{i64 0, i64 80, !6}
!17 = !{i64 0, i64 48, !6}
!18 = !{i64 0, i64 36, !6}
!19 = !{!20, !11, i64 0}
!20 = !{!"_ZTSSt16initializer_listIfE", !11, i64 0, !12, i64 8}
!21 = !{!20, !12, i64 8}
!22 = !{!23, !23, i64 0}
!23 = !{!"float", !7, i64 0}
!24 = !{i64 0, i64 64, !6}
!25 = !{i64 0, i64 4, !22, i64 4, i64 4, !22, i64 8, i64 4, !22, i64 12, i64 4, !22, i64 16, i64 4, !22, i64 20, i64 4, !22, i64 24, i64 4, !22, i64 28, i64 4, !22, i64 32, i64 4, !22, i64 36, i64 4, !22, i64 40, i64 4, !22, i64 44, i64 4, !22, i64 48, i64 4, !22, i64 52, i64 4, !22, i64 56, i64 4, !22, i64 60, i64 4, !22}
!26 = !{!27, !23, i64 12}
!27 = !{!"_ZTSN3cgp14numarray_stackIfLi4EEE", !23, i64 0, !23, i64 4, !23, i64 8, !23, i64 12}


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