; LLVM IR from OAID/AutoKernel :: AutoSearch/src/adams2019 (test)

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%"struct.Halide::MachineParams" = type <{ i32, [4 x i8], i64, float, [4 x i8] }>
%"struct.Halide::Target" = type { i32, i32, i32, %"class.std::bitset" }
%"class.std::bitset" = type { %"struct.std::_Base_bitset" }
%"struct.std::_Base_bitset" = type { [2 x i64] }
%"class.Halide::Var" = type { %"class.std::__cxx11::basic_string" }
%"class.Halide::Func" = type { %"class.Halide::Internal::Function", %"class.Halide::Pipeline" }
%"class.Halide::Internal::Function" = type { %"struct.Halide::Internal::FunctionPtr" }
%"struct.Halide::Internal::FunctionPtr" = type <{ %"struct.Halide::Internal::IntrusivePtr", ptr, i32, [4 x i8] }>
%"struct.Halide::Internal::IntrusivePtr" = type { ptr }
%"class.Halide::Pipeline" = type { %"struct.Halide::Internal::IntrusivePtr.0" }
%"struct.Halide::Internal::IntrusivePtr.0" = type { ptr }
%"class.Halide::Stage" = type { %"class.Halide::Internal::Function", %"class.Halide::Internal::Definition", i64, %"class.std::vector" }
%"class.Halide::Internal::Definition" = type { %"struct.Halide::Internal::IntrusivePtr.1" }
%"struct.Halide::Internal::IntrusivePtr.1" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Halide::Var, std::allocator<Halide::Var>>::_Vector_impl" }
%"struct.std::_Vector_base<Halide::Var, std::allocator<Halide::Var>>::_Vector_impl" = type { %"struct.std::_Vector_base<Halide::Var, std::allocator<Halide::Var>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Halide::Var, std::allocator<Halide::Var>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.Halide::Expr" = type { %"struct.Halide::Internal::IRHandle" }
%"struct.Halide::Internal::IRHandle" = type { %"struct.Halide::Internal::IntrusivePtr.5" }
%"struct.Halide::Internal::IntrusivePtr.5" = type { ptr }
%"class.Halide::FuncRef" = type { %"class.Halide::Internal::Function", i32, i32, %"class.std::vector.6" }
%"class.std::vector.6" = type { %"struct.std::_Vector_base.7" }
%"struct.std::_Vector_base.7" = type { %"struct.std::_Vector_base<Halide::Expr, std::allocator<Halide::Expr>>::_Vector_impl" }
%"struct.std::_Vector_base<Halide::Expr, std::allocator<Halide::Expr>>::_Vector_impl" = type { %"struct.std::_Vector_base<Halide::Expr, std::allocator<Halide::Expr>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Halide::Expr, std::allocator<Halide::Expr>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.Halide::AutoSchedulerResults" = type { %"class.std::__cxx11::basic_string", %"struct.Halide::Target", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::vector.11" }
%"class.std::vector.11" = type { %"struct.std::_Vector_base.12" }
%"struct.std::_Vector_base.12" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Halide::Buffer" = type { ptr, %"struct.Halide::Internal::IntrusivePtr.16" }
%"struct.Halide::Internal::IntrusivePtr.16" = type { ptr }
%"class.Halide::RDom" = type { %"class.Halide::Internal::ReductionDomain", %"class.Halide::RVar", %"class.Halide::RVar", %"class.Halide::RVar", %"class.Halide::RVar" }
%"class.Halide::Internal::ReductionDomain" = type { %"struct.Halide::Internal::IntrusivePtr.17" }
%"struct.Halide::Internal::IntrusivePtr.17" = type { ptr }
%"class.Halide::RVar" = type <{ %"class.std::__cxx11::basic_string", %"class.Halide::Internal::ReductionDomain", i32, [4 x i8] }>
%"class.Halide::Buffer.18" = type { ptr, %"struct.Halide::Internal::IntrusivePtr.16" }
%"class.std::vector.19" = type { %"struct.std::_Vector_base.20" }
%"struct.std::_Vector_base.20" = type { %"struct.std::_Vector_base<Halide::Func, std::allocator<Halide::Func>>::_Vector_impl" }
%"struct.std::_Vector_base<Halide::Func, std::allocator<Halide::Func>>::_Vector_impl" = type { %"struct.std::_Vector_base<Halide::Func, std::allocator<Halide::Func>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Halide::Func, std::allocator<Halide::Func>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"class.std::allocator.21" = type { i8 }
%"class.Halide::ImageParam" = type { %"class.Halide::OutputImageParam" }
%"class.Halide::OutputImageParam" = type { %"class.Halide::Internal::Parameter", i32, %"class.Halide::Func" }
%"class.Halide::Internal::Parameter" = type { ptr, %"struct.Halide::Internal::IntrusivePtr.24" }
%"struct.Halide::Internal::IntrusivePtr.24" = type { ptr }
%"struct.Halide::Type" = type { %struct.halide_type_t, ptr }
%struct.halide_type_t = type { i8, i8, i16 }
%"class.std::vector.25" = type { %"struct.std::_Vector_base.26" }
%"struct.std::_Vector_base.26" = type { %"struct.std::_Vector_base<Halide::Range, std::allocator<Halide::Range>>::_Vector_impl" }
%"struct.std::_Vector_base<Halide::Range, std::allocator<Halide::Range>>::_Vector_impl" = type { %"struct.std::_Vector_base<Halide::Range, std::allocator<Halide::Range>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Halide::Range, std::allocator<Halide::Range>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list.30" = type { ptr, i64 }
%"struct.Halide::Range" = type { %"struct.Halide::Expr", %"struct.Halide::Expr" }
%"class.std::allocator.27" = type { i8 }

@stderr = external global ptr, align 8
@.str = external hidden unnamed_addr constant [31 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator", align 1
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca %"struct.Halide::MachineParams", align 8
  %11 = alloca %"struct.Halide::Target", align 8
  %12 = alloca %"class.Halide::Var", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca %"class.Halide::Var", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca %"class.Halide::Func", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator", align 1
  %21 = alloca %"class.Halide::Func", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca %"class.Halide::Func", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %"class.Halide::Stage", align 8
  %28 = alloca %"struct.Halide::Expr", align 8
  %29 = alloca %"struct.Halide::Expr", align 8
  %30 = alloca %"struct.Halide::Expr", align 8
  %31 = alloca %"struct.Halide::Expr", align 8
  %32 = alloca %"struct.Halide::Expr", align 8
  %33 = alloca %"struct.Halide::Expr", align 8
  %34 = alloca %"struct.Halide::Expr", align 8
  %35 = alloca %"class.Halide::FuncRef", align 8
  %36 = alloca %"class.Halide::Stage", align 8
  %37 = alloca %"struct.Halide::Expr", align 8
  %38 = alloca %"struct.Halide::Expr", align 8
  %39 = alloca %"struct.Halide::Expr", align 8
  %40 = alloca %"class.Halide::FuncRef", align 8
  %41 = alloca %"class.Halide::FuncRef", align 8
  %42 = alloca %"class.Halide::Stage", align 8
  %43 = alloca %"struct.Halide::Expr", align 8
  %44 = alloca %"struct.Halide::Expr", align 8
  %45 = alloca %"struct.Halide::Expr", align 8
  %46 = alloca %"class.Halide::FuncRef", align 8
  %47 = alloca %"class.Halide::FuncRef", align 8
  %48 = alloca %"class.Halide::Var", align 8
  %49 = alloca %"struct.Halide::Expr", align 8
  %50 = alloca %"struct.Halide::Expr", align 8
  %51 = alloca %"class.Halide::Var", align 8
  %52 = alloca %"struct.Halide::Expr", align 8
  %53 = alloca %"struct.Halide::Expr", align 8
  %54 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %55 = alloca %"class.Halide::Pipeline", align 8
  %56 = alloca %"class.Halide::Func", align 8
  %57 = alloca %"class.Halide::Func", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator", align 1
  %60 = alloca %"class.Halide::Func", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::allocator", align 1
  %63 = alloca %"class.Halide::Func", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator", align 1
  %66 = alloca %"class.Halide::Stage", align 8
  %67 = alloca %"struct.Halide::Expr", align 8
  %68 = alloca %"struct.Halide::Expr", align 8
  %69 = alloca %"struct.Halide::Expr", align 8
  %70 = alloca %"struct.Halide::Expr", align 8
  %71 = alloca %"struct.Halide::Expr", align 8
  %72 = alloca %"struct.Halide::Expr", align 8
  %73 = alloca %"struct.Halide::Expr", align 8
  %74 = alloca %"struct.Halide::Expr", align 8
  %75 = alloca %"struct.Halide::Expr", align 8
  %76 = alloca %"struct.Halide::Expr", align 8
  %77 = alloca %"struct.Halide::Expr", align 8
  %78 = alloca %"struct.Halide::Expr", align 8
  %79 = alloca %"struct.Halide::Expr", align 8
  %80 = alloca %"struct.Halide::Expr", align 8
  %81 = alloca %"struct.Halide::Expr", align 8
  %82 = alloca %"struct.Halide::Expr", align 8
  %83 = alloca %"struct.Halide::Expr", align 8
  %84 = alloca %"struct.Halide::Expr", align 8
  %85 = alloca %"struct.Halide::Expr", align 8
  %86 = alloca %"struct.Halide::Expr", align 8
  %87 = alloca %"struct.Halide::Expr", align 8
  %88 = alloca %"struct.Halide::Expr", align 8
  %89 = alloca %"struct.Halide::Expr", align 8
  %90 = alloca %"class.Halide::FuncRef", align 8
  %91 = alloca %"struct.Halide::Expr", align 8
  %92 = alloca i32, align 4
  %93 = alloca %"struct.Halide::Expr", align 8
  %94 = alloca %"class.Halide::FuncRef", align 8
  %95 = alloca %"struct.Halide::Expr", align 8
  %96 = alloca %"struct.Halide::Expr", align 8
  %97 = alloca %"struct.Halide::Expr", align 8
  %98 = alloca %"struct.Halide::Expr", align 8
  %99 = alloca %"class.Halide::Stage", align 8
  %100 = alloca %"struct.Halide::Expr", align 8
  %101 = alloca %"class.Halide::FuncRef", align 8
  %102 = alloca %"struct.Halide::Expr", align 8
  %103 = alloca i32, align 4
  %104 = alloca %"struct.Halide::Expr", align 8
  %105 = alloca %"class.Halide::FuncRef", align 8
  %106 = alloca %"struct.Halide::Expr", align 8
  %107 = alloca %"struct.Halide::Expr", align 8
  %108 = alloca %"struct.Halide::Expr", align 8
  %109 = alloca %"struct.Halide::Expr", align 8
  %110 = alloca %"class.Halide::Stage", align 8
  %111 = alloca %"struct.Halide::Expr", align 8
  %112 = alloca %"class.Halide::FuncRef", align 8
  %113 = alloca %"class.Halide::Var", align 8
  %114 = alloca %"struct.Halide::Expr", align 8
  %115 = alloca %"struct.Halide::Expr", align 8
  %116 = alloca %"class.Halide::Var", align 8
  %117 = alloca %"struct.Halide::Expr", align 8
  %118 = alloca %"struct.Halide::Expr", align 8
  %119 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %120 = alloca %"class.Halide::Pipeline", align 8
  %121 = alloca %"class.Halide::Func", align 8
  %122 = alloca %"class.Halide::Func", align 8
  %123 = alloca %"class.std::__cxx11::basic_string", align 8
  %124 = alloca %"class.std::allocator", align 1
  %125 = alloca %"class.Halide::Func", align 8
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::allocator", align 1
  %128 = alloca %"class.Halide::Stage", align 8
  %129 = alloca %"struct.Halide::Expr", align 8
  %130 = alloca %"struct.Halide::Expr", align 8
  %131 = alloca %"struct.Halide::Expr", align 8
  %132 = alloca %"struct.Halide::Expr", align 8
  %133 = alloca %"struct.Halide::Expr", align 8
  %134 = alloca %"struct.Halide::Expr", align 8
  %135 = alloca %"struct.Halide::Expr", align 8
  %136 = alloca %"struct.Halide::Expr", align 8
  %137 = alloca %"struct.Halide::Expr", align 8
  %138 = alloca %"struct.Halide::Expr", align 8
  %139 = alloca %"struct.Halide::Expr", align 8
  %140 = alloca %"struct.Halide::Expr", align 8
  %141 = alloca %"struct.Halide::Expr", align 8
  %142 = alloca %"class.Halide::FuncRef", align 8
  %143 = alloca %"class.Halide::Stage", align 8
  %144 = alloca %"struct.Halide::Expr", align 8
  %145 = alloca %"struct.Halide::Expr", align 8
  %146 = alloca %"struct.Halide::Expr", align 8
  %147 = alloca %"struct.Halide::Expr", align 8
  %148 = alloca %"struct.Halide::Expr", align 8
  %149 = alloca %"struct.Halide::Expr", align 8
  %150 = alloca %"struct.Halide::Expr", align 8
  %151 = alloca %"struct.Halide::Expr", align 8
  %152 = alloca %"struct.Halide::Expr", align 8
  %153 = alloca %"class.Halide::FuncRef", align 8
  %154 = alloca %"struct.Halide::Expr", align 8
  %155 = alloca %"struct.Halide::Expr", align 8
  %156 = alloca %"struct.Halide::Expr", align 8
  %157 = alloca %"struct.Halide::Expr", align 8
  %158 = alloca %"struct.Halide::Expr", align 8
  %159 = alloca %"class.Halide::FuncRef", align 8
  %160 = alloca %"struct.Halide::Expr", align 8
  %161 = alloca %"struct.Halide::Expr", align 8
  %162 = alloca %"struct.Halide::Expr", align 8
  %163 = alloca %"struct.Halide::Expr", align 8
  %164 = alloca %"class.Halide::FuncRef", align 8
  %165 = alloca %"struct.Halide::Expr", align 8
  %166 = alloca %"struct.Halide::Expr", align 8
  %167 = alloca %"struct.Halide::Expr", align 8
  %168 = alloca %"struct.Halide::Expr", align 8
  %169 = alloca %"struct.Halide::Expr", align 8
  %170 = alloca %"class.Halide::FuncRef", align 8
  %171 = alloca %"struct.Halide::Expr", align 8
  %172 = alloca %"struct.Halide::Expr", align 8
  %173 = alloca %"struct.Halide::Expr", align 8
  %174 = alloca %"class.Halide::FuncRef", align 8
  %175 = alloca %"struct.Halide::Expr", align 8
  %176 = alloca %"class.Halide::FuncRef", align 8
  %177 = alloca %"struct.Halide::Expr", align 8
  %178 = alloca %"struct.Halide::Expr", align 8
  %179 = alloca %"struct.Halide::Expr", align 8
  %180 = alloca %"class.Halide::FuncRef", align 8
  %181 = alloca %"struct.Halide::Expr", align 8
  %182 = alloca %"struct.Halide::Expr", align 8
  %183 = alloca %"struct.Halide::Expr", align 8
  %184 = alloca %"struct.Halide::Expr", align 8
  %185 = alloca %"struct.Halide::Expr", align 8
  %186 = alloca %"class.Halide::FuncRef", align 8
  %187 = alloca %"struct.Halide::Expr", align 8
  %188 = alloca %"struct.Halide::Expr", align 8
  %189 = alloca %"struct.Halide::Expr", align 8
  %190 = alloca %"struct.Halide::Expr", align 8
  %191 = alloca %"class.Halide::FuncRef", align 8
  %192 = alloca %"struct.Halide::Expr", align 8
  %193 = alloca %"struct.Halide::Expr", align 8
  %194 = alloca %"struct.Halide::Expr", align 8
  %195 = alloca %"struct.Halide::Expr", align 8
  %196 = alloca %"class.Halide::FuncRef", align 8
  %197 = alloca %"class.Halide::Var", align 8
  %198 = alloca %"struct.Halide::Expr", align 8
  %199 = alloca %"struct.Halide::Expr", align 8
  %200 = alloca %"class.Halide::Var", align 8
  %201 = alloca %"struct.Halide::Expr", align 8
  %202 = alloca %"struct.Halide::Expr", align 8
  %203 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %204 = alloca %"class.Halide::Pipeline", align 8
  %205 = alloca %"class.Halide::Func", align 8
  %206 = alloca %"class.Halide::Func", align 8
  %207 = alloca %"class.std::__cxx11::basic_string", align 8
  %208 = alloca %"class.std::allocator", align 1
  %209 = alloca %"class.Halide::Func", align 8
  %210 = alloca %"class.std::__cxx11::basic_string", align 8
  %211 = alloca %"class.std::allocator", align 1
  %212 = alloca %"class.Halide::Func", align 8
  %213 = alloca %"class.std::__cxx11::basic_string", align 8
  %214 = alloca %"class.std::allocator", align 1
  %215 = alloca %"class.Halide::Stage", align 8
  %216 = alloca %"struct.Halide::Expr", align 8
  %217 = alloca %"struct.Halide::Expr", align 8
  %218 = alloca %"struct.Halide::Expr", align 8
  %219 = alloca %"struct.Halide::Expr", align 8
  %220 = alloca %"struct.Halide::Expr", align 8
  %221 = alloca %"struct.Halide::Expr", align 8
  %222 = alloca %"struct.Halide::Expr", align 8
  %223 = alloca %"struct.Halide::Expr", align 8
  %224 = alloca %"struct.Halide::Expr", align 8
  %225 = alloca %"struct.Halide::Expr", align 8
  %226 = alloca %"struct.Halide::Expr", align 8
  %227 = alloca %"struct.Halide::Expr", align 8
  %228 = alloca %"struct.Halide::Expr", align 8
  %229 = alloca %"class.Halide::FuncRef", align 8
  %230 = alloca %"class.Halide::Stage", align 8
  %231 = alloca %"struct.Halide::Expr", align 8
  %232 = alloca %"struct.Halide::Expr", align 8
  %233 = alloca %"struct.Halide::Expr", align 8
  %234 = alloca %"struct.Halide::Expr", align 8
  %235 = alloca %"struct.Halide::Expr", align 8
  %236 = alloca %"struct.Halide::Expr", align 8
  %237 = alloca %"struct.Halide::Expr", align 8
  %238 = alloca %"struct.Halide::Expr", align 8
  %239 = alloca %"struct.Halide::Expr", align 8
  %240 = alloca %"class.Halide::FuncRef", align 8
  %241 = alloca %"struct.Halide::Expr", align 8
  %242 = alloca %"struct.Halide::Expr", align 8
  %243 = alloca %"struct.Halide::Expr", align 8
  %244 = alloca %"struct.Halide::Expr", align 8
  %245 = alloca %"struct.Halide::Expr", align 8
  %246 = alloca %"class.Halide::FuncRef", align 8
  %247 = alloca %"struct.Halide::Expr", align 8
  %248 = alloca %"struct.Halide::Expr", align 8
  %249 = alloca %"struct.Halide::Expr", align 8
  %250 = alloca %"struct.Halide::Expr", align 8
  %251 = alloca %"class.Halide::FuncRef", align 8
  %252 = alloca %"struct.Halide::Expr", align 8
  %253 = alloca %"struct.Halide::Expr", align 8
  %254 = alloca %"struct.Halide::Expr", align 8
  %255 = alloca %"struct.Halide::Expr", align 8
  %256 = alloca %"struct.Halide::Expr", align 8
  %257 = alloca %"class.Halide::FuncRef", align 8
  %258 = alloca %"struct.Halide::Expr", align 8
  %259 = alloca %"struct.Halide::Expr", align 8
  %260 = alloca %"struct.Halide::Expr", align 8
  %261 = alloca %"class.Halide::FuncRef", align 8
  %262 = alloca %"struct.Halide::Expr", align 8
  %263 = alloca %"class.Halide::FuncRef", align 8
  %264 = alloca %"struct.Halide::Expr", align 8
  %265 = alloca %"struct.Halide::Expr", align 8
  %266 = alloca %"struct.Halide::Expr", align 8
  %267 = alloca %"class.Halide::FuncRef", align 8
  %268 = alloca %"struct.Halide::Expr", align 8
  %269 = alloca %"struct.Halide::Expr", align 8
  %270 = alloca %"struct.Halide::Expr", align 8
  %271 = alloca %"struct.Halide::Expr", align 8
  %272 = alloca %"struct.Halide::Expr", align 8
  %273 = alloca %"class.Halide::FuncRef", align 8
  %274 = alloca %"struct.Halide::Expr", align 8
  %275 = alloca %"struct.Halide::Expr", align 8
  %276 = alloca %"struct.Halide::Expr", align 8
  %277 = alloca %"struct.Halide::Expr", align 8
  %278 = alloca %"class.Halide::FuncRef", align 8
  %279 = alloca %"struct.Halide::Expr", align 8
  %280 = alloca %"struct.Halide::Expr", align 8
  %281 = alloca %"struct.Halide::Expr", align 8
  %282 = alloca %"struct.Halide::Expr", align 8
  %283 = alloca %"class.Halide::FuncRef", align 8
  %284 = alloca %"class.Halide::Var", align 8
  %285 = alloca %"struct.Halide::Expr", align 8
  %286 = alloca %"struct.Halide::Expr", align 8
  %287 = alloca %"class.Halide::Var", align 8
  %288 = alloca %"struct.Halide::Expr", align 8
  %289 = alloca %"struct.Halide::Expr", align 8
  %290 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %291 = alloca %"class.Halide::Pipeline", align 8
  %292 = alloca %"class.Halide::Func", align 8
  %293 = alloca i32, align 4
  %294 = alloca [8 x %"class.Halide::Func"], align 16
  %295 = alloca %"class.Halide::Stage", align 8
  %296 = alloca %"struct.Halide::Expr", align 8
  %297 = alloca %"struct.Halide::Expr", align 8
  %298 = alloca %"struct.Halide::Expr", align 8
  %299 = alloca %"struct.Halide::Expr", align 8
  %300 = alloca %"struct.Halide::Expr", align 8
  %301 = alloca %"struct.Halide::Expr", align 8
  %302 = alloca %"struct.Halide::Expr", align 8
  %303 = alloca %"struct.Halide::Expr", align 8
  %304 = alloca %"struct.Halide::Expr", align 8
  %305 = alloca %"struct.Halide::Expr", align 8
  %306 = alloca %"struct.Halide::Expr", align 8
  %307 = alloca %"struct.Halide::Expr", align 8
  %308 = alloca %"struct.Halide::Expr", align 8
  %309 = alloca %"class.Halide::FuncRef", align 8
  %310 = alloca i32, align 4
  %311 = alloca i32, align 4
  %312 = alloca %"struct.Halide::Expr", align 8
  %313 = alloca i32, align 4
  %314 = alloca i32, align 4
  %315 = alloca %"struct.Halide::Expr", align 8
  %316 = alloca %"class.Halide::FuncRef", align 8
  %317 = alloca %"struct.Halide::Expr", align 8
  %318 = alloca %"struct.Halide::Expr", align 8
  %319 = alloca %"struct.Halide::Expr", align 8
  %320 = alloca %"struct.Halide::Expr", align 8
  %321 = alloca %"class.Halide::Stage", align 8
  %322 = alloca %"struct.Halide::Expr", align 8
  %323 = alloca %"class.Halide::FuncRef", align 8
  %324 = alloca %"class.Halide::Var", align 8
  %325 = alloca %"struct.Halide::Expr", align 8
  %326 = alloca %"struct.Halide::Expr", align 8
  %327 = alloca %"class.Halide::Var", align 8
  %328 = alloca %"struct.Halide::Expr", align 8
  %329 = alloca %"struct.Halide::Expr", align 8
  %330 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %331 = alloca %"class.Halide::Pipeline", align 8
  %332 = alloca %"class.Halide::Func", align 8
  %333 = alloca %"class.Halide::Buffer", align 8
  %334 = alloca %"class.Halide::Buffer", align 8
  %335 = alloca %"class.Halide::Func", align 8
  %336 = alloca %"class.Halide::Stage", align 8
  %337 = alloca %"struct.Halide::Expr", align 8
  %338 = alloca %"struct.Halide::Expr", align 8
  %339 = alloca %"struct.Halide::Expr", align 8
  %340 = alloca %"struct.Halide::Expr", align 8
  %341 = alloca %"struct.Halide::Expr", align 8
  %342 = alloca %"class.Halide::FuncRef", align 8
  %343 = alloca %"class.Halide::Var", align 8
  %344 = alloca %"struct.Halide::Expr", align 8
  %345 = alloca %"struct.Halide::Expr", align 8
  %346 = alloca %"class.Halide::Var", align 8
  %347 = alloca %"struct.Halide::Expr", align 8
  %348 = alloca %"struct.Halide::Expr", align 8
  %349 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %350 = alloca %"class.Halide::Pipeline", align 8
  %351 = alloca %"class.Halide::Func", align 8
  %352 = alloca %"class.Halide::Buffer", align 8
  %353 = alloca %"class.Halide::Var", align 8
  %354 = alloca %"class.Halide::Func", align 8
  %355 = alloca %"class.std::__cxx11::basic_string", align 8
  %356 = alloca %"class.std::allocator", align 1
  %357 = alloca %"class.Halide::Func", align 8
  %358 = alloca %"class.std::__cxx11::basic_string", align 8
  %359 = alloca %"class.std::allocator", align 1
  %360 = alloca %"class.Halide::Func", align 8
  %361 = alloca %"class.std::__cxx11::basic_string", align 8
  %362 = alloca %"class.std::allocator", align 1
  %363 = alloca %"class.Halide::Func", align 8
  %364 = alloca %"class.std::__cxx11::basic_string", align 8
  %365 = alloca %"class.std::allocator", align 1
  %366 = alloca %"struct.Halide::Expr", align 8
  %367 = alloca i32, align 4
  %368 = alloca %"struct.Halide::Expr", align 8
  %369 = alloca %"struct.Halide::Expr", align 8
  %370 = alloca %"class.Halide::Stage", align 8
  %371 = alloca %"struct.Halide::Expr", align 8
  %372 = alloca %"class.Halide::FuncRef", align 8
  %373 = alloca %"class.Halide::Stage", align 8
  %374 = alloca %"struct.Halide::Expr", align 8
  %375 = alloca %"struct.Halide::Expr", align 8
  %376 = alloca %"struct.Halide::Expr", align 8
  %377 = alloca %"struct.Halide::Expr", align 8
  %378 = alloca %"class.Halide::FuncRef", align 8
  %379 = alloca %"struct.Halide::Expr", align 8
  %380 = alloca %"class.Halide::FuncRef", align 8
  %381 = alloca %"struct.Halide::Expr", align 8
  %382 = alloca %"struct.Halide::Expr", align 8
  %383 = alloca %"struct.Halide::Expr", align 8
  %384 = alloca %"struct.Halide::Expr", align 8
  %385 = alloca %"class.Halide::FuncRef", align 8
  %386 = alloca %"struct.Halide::Expr", align 8
  %387 = alloca %"struct.Halide::Expr", align 8
  %388 = alloca %"class.Halide::FuncRef", align 8
  %389 = alloca %"struct.Halide::Expr", align 8
  %390 = alloca %"struct.Halide::Expr", align 8
  %391 = alloca %"struct.Halide::Expr", align 8
  %392 = alloca %"struct.Halide::Expr", align 8
  %393 = alloca %"class.Halide::FuncRef", align 8
  %394 = alloca %"class.Halide::FuncRef", align 8
  %395 = alloca %"class.Halide::Stage", align 8
  %396 = alloca %"struct.Halide::Expr", align 8
  %397 = alloca %"struct.Halide::Expr", align 8
  %398 = alloca %"struct.Halide::Expr", align 8
  %399 = alloca %"struct.Halide::Expr", align 8
  %400 = alloca %"class.Halide::FuncRef", align 8
  %401 = alloca %"struct.Halide::Expr", align 8
  %402 = alloca %"struct.Halide::Expr", align 8
  %403 = alloca %"struct.Halide::Expr", align 8
  %404 = alloca %"struct.Halide::Expr", align 8
  %405 = alloca %"struct.Halide::Expr", align 8
  %406 = alloca %"class.Halide::FuncRef", align 8
  %407 = alloca %"struct.Halide::Expr", align 8
  %408 = alloca %"struct.Halide::Expr", align 8
  %409 = alloca %"struct.Halide::Expr", align 8
  %410 = alloca %"struct.Halide::Expr", align 8
  %411 = alloca %"class.Halide::FuncRef", align 8
  %412 = alloca %"struct.Halide::Expr", align 8
  %413 = alloca %"struct.Halide::Expr", align 8
  %414 = alloca %"struct.Halide::Expr", align 8
  %415 = alloca %"struct.Halide::Expr", align 8
  %416 = alloca %"struct.Halide::Expr", align 8
  %417 = alloca %"class.Halide::FuncRef", align 8
  %418 = alloca %"struct.Halide::Expr", align 8
  %419 = alloca %"struct.Halide::Expr", align 8
  %420 = alloca %"struct.Halide::Expr", align 8
  %421 = alloca %"struct.Halide::Expr", align 8
  %422 = alloca %"class.Halide::FuncRef", align 8
  %423 = alloca %"class.Halide::Stage", align 8
  %424 = alloca %"struct.Halide::Expr", align 8
  %425 = alloca %"struct.Halide::Expr", align 8
  %426 = alloca %"struct.Halide::Expr", align 8
  %427 = alloca %"struct.Halide::Expr", align 8
  %428 = alloca %"class.Halide::FuncRef", align 8
  %429 = alloca %"struct.Halide::Expr", align 8
  %430 = alloca %"struct.Halide::Expr", align 8
  %431 = alloca %"struct.Halide::Expr", align 8
  %432 = alloca %"struct.Halide::Expr", align 8
  %433 = alloca %"class.Halide::FuncRef", align 8
  %434 = alloca %"struct.Halide::Expr", align 8
  %435 = alloca %"struct.Halide::Expr", align 8
  %436 = alloca %"struct.Halide::Expr", align 8
  %437 = alloca %"class.Halide::FuncRef", align 8
  %438 = alloca %"struct.Halide::Expr", align 8
  %439 = alloca %"struct.Halide::Expr", align 8
  %440 = alloca %"struct.Halide::Expr", align 8
  %441 = alloca %"struct.Halide::Expr", align 8
  %442 = alloca %"class.Halide::FuncRef", align 8
  %443 = alloca %"struct.Halide::Expr", align 8
  %444 = alloca %"struct.Halide::Expr", align 8
  %445 = alloca %"struct.Halide::Expr", align 8
  %446 = alloca %"class.Halide::FuncRef", align 8
  %447 = alloca %"class.Halide::Var", align 8
  %448 = alloca %"struct.Halide::Expr", align 8
  %449 = alloca %"struct.Halide::Expr", align 8
  %450 = alloca %"class.Halide::Var", align 8
  %451 = alloca %"struct.Halide::Expr", align 8
  %452 = alloca %"struct.Halide::Expr", align 8
  %453 = alloca %"class.Halide::Var", align 8
  %454 = alloca %"struct.Halide::Expr", align 8
  %455 = alloca %"struct.Halide::Expr", align 8
  %456 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %457 = alloca %"class.Halide::Pipeline", align 8
  %458 = alloca %"class.Halide::Func", align 8
  %459 = alloca %"class.Halide::Buffer", align 8
  %460 = alloca %"class.Halide::Func", align 8
  %461 = alloca %"class.std::__cxx11::basic_string", align 8
  %462 = alloca %"class.std::allocator", align 1
  %463 = alloca %"class.Halide::Func", align 8
  %464 = alloca %"class.std::__cxx11::basic_string", align 8
  %465 = alloca %"class.std::allocator", align 1
  %466 = alloca %"class.Halide::Func", align 8
  %467 = alloca %"class.std::__cxx11::basic_string", align 8
  %468 = alloca %"class.std::allocator", align 1
  %469 = alloca %"class.Halide::Var", align 8
  %470 = alloca %"class.Halide::Var", align 8
  %471 = alloca %"class.Halide::Stage", align 8
  %472 = alloca %"struct.Halide::Expr", align 8
  %473 = alloca %"struct.Halide::Expr", align 8
  %474 = alloca %"struct.Halide::Expr", align 8
  %475 = alloca %"class.Halide::FuncRef", align 8
  %476 = alloca %"class.Halide::Stage", align 8
  %477 = alloca %"struct.Halide::Expr", align 8
  %478 = alloca %"struct.Halide::Expr", align 8
  %479 = alloca %"struct.Halide::Expr", align 8
  %480 = alloca %"class.Halide::Var", align 8
  %481 = alloca %"class.Halide::FuncRef", align 8
  %482 = alloca %"class.Halide::Stage", align 8
  %483 = alloca %"struct.Halide::Expr", align 8
  %484 = alloca %"class.Halide::FuncRef", align 8
  %485 = alloca %"class.Halide::RDom", align 8
  %486 = alloca %"struct.Halide::Expr", align 8
  %487 = alloca %"struct.Halide::Expr", align 8
  %488 = alloca %"class.Halide::Stage", align 8
  %489 = alloca %"struct.Halide::Expr", align 8
  %490 = alloca %"struct.Halide::Expr", align 8
  %491 = alloca %"struct.Halide::Expr", align 8
  %492 = alloca %"class.Halide::FuncRef", align 8
  %493 = alloca %"class.Halide::FuncRef", align 8
  %494 = alloca %"class.Halide::Stage", align 8
  %495 = alloca %"struct.Halide::Expr", align 8
  %496 = alloca %"class.Halide::FuncRef", align 8
  %497 = alloca %"class.Halide::Stage", align 8
  %498 = alloca %"struct.Halide::Expr", align 8
  %499 = alloca %"class.Halide::FuncRef", align 8
  %500 = alloca %"struct.Halide::Expr", align 8
  %501 = alloca %"class.Halide::Stage", align 8
  %502 = alloca %"struct.Halide::Expr", align 8
  %503 = alloca %"struct.Halide::Expr", align 8
  %504 = alloca %"class.Halide::FuncRef", align 8
  %505 = alloca %"struct.Halide::Expr", align 8
  %506 = alloca %"struct.Halide::Expr", align 8
  %507 = alloca %"struct.Halide::Expr", align 8
  %508 = alloca %"struct.Halide::Expr", align 8
  %509 = alloca %"struct.Halide::Expr", align 8
  %510 = alloca %"class.Halide::FuncRef", align 8
  %511 = alloca %"struct.Halide::Expr", align 8
  %512 = alloca %"struct.Halide::Expr", align 8
  %513 = alloca %"struct.Halide::Expr", align 8
  %514 = alloca %"struct.Halide::Expr", align 8
  %515 = alloca %"class.Halide::FuncRef", align 8
  %516 = alloca %"class.Halide::Var", align 8
  %517 = alloca %"struct.Halide::Expr", align 8
  %518 = alloca %"struct.Halide::Expr", align 8
  %519 = alloca %"class.Halide::Var", align 8
  %520 = alloca %"struct.Halide::Expr", align 8
  %521 = alloca %"struct.Halide::Expr", align 8
  %522 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %523 = alloca %"class.Halide::Pipeline", align 8
  %524 = alloca %"class.Halide::Func", align 8
  %525 = alloca %"class.Halide::Buffer", align 8
  %526 = alloca [5 x %"class.Halide::Func"], align 16
  %527 = alloca [5 x %"class.Halide::Func"], align 16
  %528 = alloca %"class.Halide::Func", align 8
  %529 = alloca %"class.std::__cxx11::basic_string", align 8
  %530 = alloca %"class.std::allocator", align 1
  %531 = alloca %"class.Halide::Var", align 8
  %532 = alloca %"class.Halide::Var", align 8
  %533 = alloca %"class.Halide::Stage", align 8
  %534 = alloca %"struct.Halide::Expr", align 8
  %535 = alloca %"struct.Halide::Expr", align 8
  %536 = alloca %"struct.Halide::Expr", align 8
  %537 = alloca %"class.Halide::FuncRef", align 8
  %538 = alloca i32, align 4
  %539 = alloca %"class.Halide::Stage", align 8
  %540 = alloca %"struct.Halide::Expr", align 8
  %541 = alloca %"struct.Halide::Expr", align 8
  %542 = alloca %"class.Halide::FuncRef", align 8
  %543 = alloca %"class.Halide::FuncRef", align 8
  %544 = alloca %"class.Halide::RDom", align 8
  %545 = alloca %"struct.Halide::Expr", align 8
  %546 = alloca %"struct.Halide::Expr", align 8
  %547 = alloca %"class.Halide::Stage", align 8
  %548 = alloca %"class.Halide::FuncRef", align 8
  %549 = alloca %"class.Halide::FuncRef", align 8
  %550 = alloca %"class.Halide::Stage", align 8
  %551 = alloca %"class.Halide::FuncRef", align 8
  %552 = alloca %"struct.Halide::Expr", align 8
  %553 = alloca %"struct.Halide::Expr", align 8
  %554 = alloca %"class.Halide::FuncRef", align 8
  %555 = alloca %"struct.Halide::Expr", align 8
  %556 = alloca %"class.Halide::Stage", align 8
  %557 = alloca %"struct.Halide::Expr", align 8
  %558 = alloca %"struct.Halide::Expr", align 8
  %559 = alloca %"class.Halide::FuncRef", align 8
  %560 = alloca %"struct.Halide::Expr", align 8
  %561 = alloca %"class.Halide::FuncRef", align 8
  %562 = alloca %"struct.Halide::Expr", align 8
  %563 = alloca %"struct.Halide::Expr", align 8
  %564 = alloca %"struct.Halide::Expr", align 8
  %565 = alloca %"class.Halide::FuncRef", align 8
  %566 = alloca i32, align 4
  %567 = alloca %"class.Halide::Stage", align 8
  %568 = alloca %"struct.Halide::Expr", align 8
  %569 = alloca %"struct.Halide::Expr", align 8
  %570 = alloca %"class.Halide::FuncRef", align 8
  %571 = alloca %"class.Halide::FuncRef", align 8
  %572 = alloca %"class.Halide::Var", align 8
  %573 = alloca %"struct.Halide::Expr", align 8
  %574 = alloca %"struct.Halide::Expr", align 8
  %575 = alloca %"class.Halide::Var", align 8
  %576 = alloca %"struct.Halide::Expr", align 8
  %577 = alloca %"struct.Halide::Expr", align 8
  %578 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %579 = alloca %"class.Halide::Pipeline", align 8
  %580 = alloca %"class.Halide::Func", align 8
  %581 = alloca %"class.Halide::Func", align 8
  %582 = alloca %"class.std::__cxx11::basic_string", align 8
  %583 = alloca %"class.std::allocator", align 1
  %584 = alloca %"class.Halide::Func", align 8
  %585 = alloca %"class.std::__cxx11::basic_string", align 8
  %586 = alloca %"class.std::allocator", align 1
  %587 = alloca %"class.Halide::Func", align 8
  %588 = alloca %"class.std::__cxx11::basic_string", align 8
  %589 = alloca %"class.std::allocator", align 1
  %590 = alloca %"class.Halide::Buffer.18", align 8
  %591 = alloca %"class.Halide::Var", align 8
  %592 = alloca %"class.Halide::Stage", align 8
  %593 = alloca %"struct.Halide::Expr", align 8
  %594 = alloca %"struct.Halide::Expr", align 8
  %595 = alloca %"struct.Halide::Expr", align 8
  %596 = alloca %"struct.Halide::Expr", align 8
  %597 = alloca %"struct.Halide::Expr", align 8
  %598 = alloca %"struct.Halide::Expr", align 8
  %599 = alloca %"struct.Halide::Expr", align 8
  %600 = alloca %"struct.Halide::Expr", align 8
  %601 = alloca %"struct.Halide::Expr", align 8
  %602 = alloca %"struct.Halide::Expr", align 8
  %603 = alloca %"struct.Halide::Expr", align 8
  %604 = alloca %"struct.Halide::Expr", align 8
  %605 = alloca %"struct.Halide::Expr", align 8
  %606 = alloca %"struct.Halide::Expr", align 8
  %607 = alloca %"struct.Halide::Expr", align 8
  %608 = alloca %"struct.Halide::Expr", align 8
  %609 = alloca %"struct.Halide::Expr", align 8
  %610 = alloca %"struct.Halide::Expr", align 8
  %611 = alloca %"struct.Halide::Expr", align 8
  %612 = alloca %"struct.Halide::Expr", align 8
  %613 = alloca %"struct.Halide::Expr", align 8
  %614 = alloca %"struct.Halide::Expr", align 8
  %615 = alloca %"struct.Halide::Expr", align 8
  %616 = alloca %"struct.Halide::Expr", align 8
  %617 = alloca %"struct.Halide::Expr", align 8
  %618 = alloca %"struct.Halide::Expr", align 8
  %619 = alloca %"class.Halide::FuncRef", align 8
  %620 = alloca %"class.Halide::Stage", align 8
  %621 = alloca %"struct.Halide::Expr", align 8
  %622 = alloca %"struct.Halide::Expr", align 8
  %623 = alloca %"struct.Halide::Expr", align 8
  %624 = alloca %"class.Halide::FuncRef", align 8
  %625 = alloca %"class.Halide::FuncRef", align 8
  %626 = alloca %"class.Halide::Stage", align 8
  %627 = alloca %"struct.Halide::Expr", align 8
  %628 = alloca %"struct.Halide::Expr", align 8
  %629 = alloca %"class.Halide::FuncRef", align 8
  %630 = alloca %"class.Halide::FuncRef", align 8
  %631 = alloca %"class.Halide::Var", align 8
  %632 = alloca %"struct.Halide::Expr", align 8
  %633 = alloca %"struct.Halide::Expr", align 8
  %634 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %635 = alloca %"class.Halide::Pipeline", align 8
  %636 = alloca %"class.Halide::Func", align 8
  %637 = alloca %"class.Halide::Buffer", align 8
  %638 = alloca %"class.Halide::Buffer", align 8
  %639 = alloca float, align 4
  %640 = alloca float, align 4
  %641 = alloca %"class.Halide::Func", align 8
  %642 = alloca %"class.std::__cxx11::basic_string", align 8
  %643 = alloca %"class.std::allocator", align 1
  %644 = alloca %"class.Halide::Func", align 8
  %645 = alloca %"class.std::__cxx11::basic_string", align 8
  %646 = alloca %"class.std::allocator", align 1
  %647 = alloca %"class.Halide::Func", align 8
  %648 = alloca %"class.std::__cxx11::basic_string", align 8
  %649 = alloca %"class.std::allocator", align 1
  %650 = alloca %"class.Halide::Var", align 8
  %651 = alloca %"class.Halide::Var", align 8
  %652 = alloca %"class.Halide::Stage", align 8
  %653 = alloca %"struct.Halide::Expr", align 8
  %654 = alloca %"struct.Halide::Expr", align 8
  %655 = alloca %"class.Halide::Var", align 8
  %656 = alloca %"class.Halide::FuncRef", align 8
  %657 = alloca %"class.Halide::Stage", align 8
  %658 = alloca %"struct.Halide::Expr", align 8
  %659 = alloca %"struct.Halide::Expr", align 8
  %660 = alloca %"class.Halide::Var", align 8
  %661 = alloca %"class.Halide::FuncRef", align 8
  %662 = alloca %"class.Halide::RDom", align 8
  %663 = alloca %"struct.Halide::Expr", align 8
  %664 = alloca %"struct.Halide::Expr", align 8
  %665 = alloca %"class.Halide::Stage", align 8
  %666 = alloca %"struct.Halide::Expr", align 8
  %667 = alloca %"struct.Halide::Expr", align 8
  %668 = alloca %"class.Halide::FuncRef", align 8
  %669 = alloca %"struct.Halide::Expr", align 8
  %670 = alloca %"struct.Halide::Expr", align 8
  %671 = alloca %"class.Halide::FuncRef", align 8
  %672 = alloca %"struct.Halide::Expr", align 8
  %673 = alloca %"class.Halide::FuncRef", align 8
  %674 = alloca %"class.Halide::Func", align 8
  %675 = alloca %"class.std::__cxx11::basic_string", align 8
  %676 = alloca %"class.std::allocator", align 1
  %677 = alloca %"class.Halide::Stage", align 8
  %678 = alloca %"class.Halide::FuncRef", align 8
  %679 = alloca %"class.Halide::FuncRef", align 8
  %680 = alloca %"class.Halide::Var", align 8
  %681 = alloca %"struct.Halide::Expr", align 8
  %682 = alloca %"struct.Halide::Expr", align 8
  %683 = alloca %"class.Halide::Var", align 8
  %684 = alloca %"struct.Halide::Expr", align 8
  %685 = alloca %"struct.Halide::Expr", align 8
  %686 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %687 = alloca %"class.Halide::Pipeline", align 8
  %688 = alloca %"class.Halide::Func", align 8
  %689 = alloca i32, align 4
  %690 = alloca %"class.Halide::Buffer", align 8
  %691 = alloca [3 x %"class.Halide::Func"], align 16
  %692 = alloca [3 x %"class.Halide::Func"], align 16
  %693 = alloca [3 x %"class.Halide::Func"], align 16
  %694 = alloca %"class.Halide::Func", align 8
  %695 = alloca %"class.std::__cxx11::basic_string", align 8
  %696 = alloca %"class.std::allocator", align 1
  %697 = alloca %"class.Halide::Var", align 8
  %698 = alloca %"class.Halide::Var", align 8
  %699 = alloca %"class.Halide::Stage", align 8
  %700 = alloca %"struct.Halide::Expr", align 8
  %701 = alloca %"struct.Halide::Expr", align 8
  %702 = alloca %"struct.Halide::Expr", align 8
  %703 = alloca %"class.Halide::FuncRef", align 8
  %704 = alloca i32, align 4
  %705 = alloca %"class.Halide::Stage", align 8
  %706 = alloca %"struct.Halide::Expr", align 8
  %707 = alloca %"struct.Halide::Expr", align 8
  %708 = alloca %"class.Halide::FuncRef", align 8
  %709 = alloca %"class.Halide::FuncRef", align 8
  %710 = alloca %"class.Halide::RDom", align 8
  %711 = alloca %"struct.Halide::Expr", align 8
  %712 = alloca %"struct.Halide::Expr", align 8
  %713 = alloca %"class.Halide::Stage", align 8
  %714 = alloca %"class.Halide::FuncRef", align 8
  %715 = alloca %"class.Halide::FuncRef", align 8
  %716 = alloca %"class.Halide::Stage", align 8
  %717 = alloca %"class.Halide::FuncRef", align 8
  %718 = alloca %"struct.Halide::Expr", align 8
  %719 = alloca %"struct.Halide::Expr", align 8
  %720 = alloca %"class.Halide::FuncRef", align 8
  %721 = alloca %"struct.Halide::Expr", align 8
  %722 = alloca %"class.Halide::Stage", align 8
  %723 = alloca %"class.Halide::FuncRef", align 8
  %724 = alloca %"class.Halide::FuncRef", align 8
  %725 = alloca i32, align 4
  %726 = alloca %"class.Halide::Stage", align 8
  %727 = alloca %"struct.Halide::Expr", align 8
  %728 = alloca %"struct.Halide::Expr", align 8
  %729 = alloca %"class.Halide::FuncRef", align 8
  %730 = alloca %"class.Halide::FuncRef", align 8
  %731 = alloca %"class.Halide::Func", align 8
  %732 = alloca %"class.std::__cxx11::basic_string", align 8
  %733 = alloca %"class.std::allocator", align 1
  %734 = alloca %"class.Halide::Stage", align 8
  %735 = alloca %"class.Halide::FuncRef", align 8
  %736 = alloca %"struct.Halide::Expr", align 8
  %737 = alloca %"struct.Halide::Expr", align 8
  %738 = alloca %"struct.Halide::Expr", align 8
  %739 = alloca %"class.Halide::FuncRef", align 8
  %740 = alloca %"class.Halide::Stage", align 8
  %741 = alloca %"class.Halide::FuncRef", align 8
  %742 = alloca %"class.Halide::FuncRef", align 8
  %743 = alloca i32, align 4
  %744 = alloca %"class.Halide::Stage", align 8
  %745 = alloca %"struct.Halide::Expr", align 8
  %746 = alloca %"struct.Halide::Expr", align 8
  %747 = alloca %"class.Halide::FuncRef", align 8
  %748 = alloca %"class.Halide::FuncRef", align 8
  %749 = alloca %"class.Halide::Var", align 8
  %750 = alloca %"struct.Halide::Expr", align 8
  %751 = alloca %"struct.Halide::Expr", align 8
  %752 = alloca %"class.Halide::Var", align 8
  %753 = alloca %"struct.Halide::Expr", align 8
  %754 = alloca %"struct.Halide::Expr", align 8
  %755 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %756 = alloca %"class.Halide::Pipeline", align 8
  %757 = alloca %"class.Halide::Func", align 8
  %758 = alloca %"class.Halide::Func", align 8
  %759 = alloca %"class.std::__cxx11::basic_string", align 8
  %760 = alloca %"class.std::allocator", align 1
  %761 = alloca %"class.Halide::Var", align 8
  %762 = alloca %"class.Halide::Stage", align 8
  %763 = alloca %"struct.Halide::Expr", align 8
  %764 = alloca %"struct.Halide::Expr", align 8
  %765 = alloca %"struct.Halide::Expr", align 8
  %766 = alloca %"struct.Halide::Expr", align 8
  %767 = alloca %"struct.Halide::Expr", align 8
  %768 = alloca %"struct.Halide::Expr", align 8
  %769 = alloca %"struct.Halide::Expr", align 8
  %770 = alloca %"struct.Halide::Expr", align 8
  %771 = alloca %"struct.Halide::Expr", align 8
  %772 = alloca %"struct.Halide::Expr", align 8
  %773 = alloca %"struct.Halide::Expr", align 8
  %774 = alloca %"struct.Halide::Expr", align 8
  %775 = alloca %"struct.Halide::Expr", align 8
  %776 = alloca %"struct.Halide::Expr", align 8
  %777 = alloca %"struct.Halide::Expr", align 8
  %778 = alloca %"struct.Halide::Expr", align 8
  %779 = alloca %"struct.Halide::Expr", align 8
  %780 = alloca %"class.Halide::FuncRef", align 8
  %781 = alloca %"class.Halide::Func", align 8
  %782 = alloca %"class.std::__cxx11::basic_string", align 8
  %783 = alloca %"class.std::allocator", align 1
  %784 = alloca %"class.Halide::Stage", align 8
  %785 = alloca %"struct.Halide::Expr", align 8
  %786 = alloca %"struct.Halide::Expr", align 8
  %787 = alloca %"struct.Halide::Expr", align 8
  %788 = alloca %"struct.Halide::Expr", align 8
  %789 = alloca %"class.Halide::FuncRef", align 8
  %790 = alloca %"class.Halide::Func", align 8
  %791 = alloca %"class.std::__cxx11::basic_string", align 8
  %792 = alloca %"class.std::allocator", align 1
  %793 = alloca %"class.Halide::Stage", align 8
  %794 = alloca %"class.Halide::FuncRef", align 8
  %795 = alloca %"struct.Halide::Expr", align 8
  %796 = alloca %"struct.Halide::Expr", align 8
  %797 = alloca %"class.Halide::FuncRef", align 8
  %798 = alloca %"struct.Halide::Expr", align 8
  %799 = alloca %"struct.Halide::Expr", align 8
  %800 = alloca %"class.Halide::FuncRef", align 8
  %801 = alloca %"class.Halide::Var", align 8
  %802 = alloca %"struct.Halide::Expr", align 8
  %803 = alloca %"struct.Halide::Expr", align 8
  %804 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %805 = alloca %"class.Halide::Pipeline", align 8
  %806 = alloca %"class.Halide::Func", align 8
  %807 = alloca %"class.Halide::Func", align 8
  %808 = alloca %"class.std::__cxx11::basic_string", align 8
  %809 = alloca %"class.std::allocator", align 1
  %810 = alloca %"class.Halide::Func", align 8
  %811 = alloca %"class.std::__cxx11::basic_string", align 8
  %812 = alloca %"class.std::allocator", align 1
  %813 = alloca %"class.Halide::Stage", align 8
  %814 = alloca %"struct.Halide::Expr", align 8
  %815 = alloca %"class.Halide::FuncRef", align 8
  %816 = alloca %"class.Halide::Stage", align 8
  %817 = alloca %"struct.Halide::Expr", align 8
  %818 = alloca %"class.Halide::FuncRef", align 8
  %819 = alloca %"class.Halide::RDom", align 8
  %820 = alloca %"struct.Halide::Expr", align 8
  %821 = alloca %"struct.Halide::Expr", align 8
  %822 = alloca %"class.Halide::Stage", align 8
  %823 = alloca %"struct.Halide::Expr", align 8
  %824 = alloca %"class.Halide::FuncRef", align 8
  %825 = alloca %"class.Halide::Stage", align 8
  %826 = alloca %"class.Halide::FuncRef", align 8
  %827 = alloca %"struct.Halide::Expr", align 8
  %828 = alloca %"struct.Halide::Expr", align 8
  %829 = alloca %"struct.Halide::Expr", align 8
  %830 = alloca %"struct.Halide::Expr", align 8
  %831 = alloca %"struct.Halide::Expr", align 8
  %832 = alloca %"class.Halide::FuncRef", align 8
  %833 = alloca %"class.Halide::Var", align 8
  %834 = alloca %"struct.Halide::Expr", align 8
  %835 = alloca %"struct.Halide::Expr", align 8
  %836 = alloca %"class.Halide::Var", align 8
  %837 = alloca %"struct.Halide::Expr", align 8
  %838 = alloca %"struct.Halide::Expr", align 8
  %839 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %840 = alloca %"class.Halide::Pipeline", align 8
  %841 = alloca %"class.Halide::Func", align 8
  %842 = alloca %"class.Halide::Func", align 8
  %843 = alloca %"class.std::__cxx11::basic_string", align 8
  %844 = alloca %"class.std::allocator", align 1
  %845 = alloca %"class.Halide::Func", align 8
  %846 = alloca %"class.std::__cxx11::basic_string", align 8
  %847 = alloca %"class.std::allocator", align 1
  %848 = alloca %"class.Halide::Func", align 8
  %849 = alloca %"class.std::__cxx11::basic_string", align 8
  %850 = alloca %"class.std::allocator", align 1
  %851 = alloca %"class.Halide::Stage", align 8
  %852 = alloca %"struct.Halide::Expr", align 8
  %853 = alloca %"struct.Halide::Expr", align 8
  %854 = alloca %"struct.Halide::Expr", align 8
  %855 = alloca %"class.Halide::FuncRef", align 8
  %856 = alloca %"class.Halide::RDom", align 8
  %857 = alloca %"struct.Halide::Expr", align 8
  %858 = alloca %"struct.Halide::Expr", align 8
  %859 = alloca i32, align 4
  %860 = alloca i32, align 4
  %861 = alloca %"class.Halide::Stage", align 8
  %862 = alloca %"class.Halide::FuncRef", align 8
  %863 = alloca %"struct.Halide::Expr", align 8
  %864 = alloca %"struct.Halide::Expr", align 8
  %865 = alloca %"struct.Halide::Expr", align 8
  %866 = alloca %"struct.Halide::Expr", align 8
  %867 = alloca %"struct.Halide::Expr", align 8
  %868 = alloca %"struct.Halide::Expr", align 8
  %869 = alloca %"class.Halide::FuncRef", align 8
  %870 = alloca %"class.Halide::Stage", align 8
  %871 = alloca %"class.Halide::FuncRef", align 8
  %872 = alloca %"struct.Halide::Expr", align 8
  %873 = alloca %"struct.Halide::Expr", align 8
  %874 = alloca %"struct.Halide::Expr", align 8
  %875 = alloca %"struct.Halide::Expr", align 8
  %876 = alloca %"struct.Halide::Expr", align 8
  %877 = alloca %"struct.Halide::Expr", align 8
  %878 = alloca %"class.Halide::FuncRef", align 8
  %879 = alloca %"class.Halide::Var", align 8
  %880 = alloca %"struct.Halide::Expr", align 8
  %881 = alloca %"struct.Halide::Expr", align 8
  %882 = alloca %"class.Halide::Var", align 8
  %883 = alloca %"struct.Halide::Expr", align 8
  %884 = alloca %"struct.Halide::Expr", align 8
  %885 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %886 = alloca %"class.Halide::Pipeline", align 8
  %887 = alloca %"class.Halide::Func", align 8
  %888 = alloca %"class.Halide::Func", align 8
  %889 = alloca %"class.std::__cxx11::basic_string", align 8
  %890 = alloca %"class.std::allocator", align 1
  %891 = alloca %"class.Halide::Func", align 8
  %892 = alloca %"class.std::__cxx11::basic_string", align 8
  %893 = alloca %"class.std::allocator", align 1
  %894 = alloca %"class.Halide::Func", align 8
  %895 = alloca %"class.std::__cxx11::basic_string", align 8
  %896 = alloca %"class.std::allocator", align 1
  %897 = alloca %"class.Halide::Stage", align 8
  %898 = alloca %"struct.Halide::Expr", align 8
  %899 = alloca %"struct.Halide::Expr", align 8
  %900 = alloca %"struct.Halide::Expr", align 8
  %901 = alloca %"struct.Halide::Expr", align 8
  %902 = alloca %"struct.Halide::Expr", align 8
  %903 = alloca %"struct.Halide::Expr", align 8
  %904 = alloca %"struct.Halide::Expr", align 8
  %905 = alloca %"class.Halide::FuncRef", align 8
  %906 = alloca %"class.Halide::RDom", align 8
  %907 = alloca %"struct.Halide::Expr", align 8
  %908 = alloca %"struct.Halide::Expr", align 8
  %909 = alloca i32, align 4
  %910 = alloca i32, align 4
  %911 = alloca %"class.Halide::Stage", align 8
  %912 = alloca %"class.Halide::FuncRef", align 8
  %913 = alloca %"struct.Halide::Expr", align 8
  %914 = alloca %"struct.Halide::Expr", align 8
  %915 = alloca %"struct.Halide::Expr", align 8
  %916 = alloca %"struct.Halide::Expr", align 8
  %917 = alloca %"struct.Halide::Expr", align 8
  %918 = alloca %"struct.Halide::Expr", align 8
  %919 = alloca %"class.Halide::FuncRef", align 8
  %920 = alloca %"class.Halide::Stage", align 8
  %921 = alloca %"class.Halide::FuncRef", align 8
  %922 = alloca %"struct.Halide::Expr", align 8
  %923 = alloca %"struct.Halide::Expr", align 8
  %924 = alloca %"struct.Halide::Expr", align 8
  %925 = alloca %"struct.Halide::Expr", align 8
  %926 = alloca %"struct.Halide::Expr", align 8
  %927 = alloca %"struct.Halide::Expr", align 8
  %928 = alloca %"class.Halide::FuncRef", align 8
  %929 = alloca %"class.Halide::Var", align 8
  %930 = alloca %"struct.Halide::Expr", align 8
  %931 = alloca %"struct.Halide::Expr", align 8
  %932 = alloca %"class.Halide::Var", align 8
  %933 = alloca %"struct.Halide::Expr", align 8
  %934 = alloca %"struct.Halide::Expr", align 8
  %935 = alloca %"class.Halide::Var", align 8
  %936 = alloca %"struct.Halide::Expr", align 8
  %937 = alloca %"struct.Halide::Expr", align 8
  %938 = alloca %"class.Halide::Var", align 8
  %939 = alloca %"struct.Halide::Expr", align 8
  %940 = alloca %"struct.Halide::Expr", align 8
  %941 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %942 = alloca %"class.Halide::Pipeline", align 8
  %943 = alloca %"class.std::vector.19", align 8
  %944 = alloca %"class.std::initializer_list", align 8
  %945 = alloca [2 x %"class.Halide::Func"], align 8
  %946 = alloca %"class.std::allocator.21", align 1
  %947 = alloca %"class.Halide::ImageParam", align 8
  %948 = alloca %"struct.Halide::Type", align 8
  %949 = alloca %"class.Halide::Func", align 8
  %950 = alloca %"class.std::__cxx11::basic_string", align 8
  %951 = alloca %"class.std::allocator", align 1
  %952 = alloca %"class.Halide::Func", align 8
  %953 = alloca %"class.std::__cxx11::basic_string", align 8
  %954 = alloca %"class.std::allocator", align 1
  %955 = alloca %"class.Halide::Stage", align 8
  %956 = alloca %"struct.Halide::Expr", align 8
  %957 = alloca %"class.Halide::FuncRef", align 8
  %958 = alloca %"class.Halide::Stage", align 8
  %959 = alloca %"class.Halide::FuncRef", align 8
  %960 = alloca %"class.Halide::FuncRef", align 8
  %961 = alloca %"class.Halide::Var", align 8
  %962 = alloca %"struct.Halide::Expr", align 8
  %963 = alloca %"struct.Halide::Expr", align 8
  %964 = alloca %"class.Halide::Var", align 8
  %965 = alloca %"struct.Halide::Expr", align 8
  %966 = alloca %"struct.Halide::Expr", align 8
  %967 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %968 = alloca %"class.Halide::Pipeline", align 8
  %969 = alloca %"class.Halide::Func", align 8
  %970 = alloca %"class.Halide::ImageParam", align 8
  %971 = alloca %"struct.Halide::Type", align 8
  %972 = alloca %"class.Halide::Func", align 8
  %973 = alloca %"class.std::__cxx11::basic_string", align 8
  %974 = alloca %"class.std::allocator", align 1
  %975 = alloca %"class.Halide::Stage", align 8
  %976 = alloca %"struct.Halide::Expr", align 8
  %977 = alloca %"struct.Halide::Expr", align 8
  %978 = alloca %"class.Halide::FuncRef", align 8
  %979 = alloca %"class.Halide::Var", align 8
  %980 = alloca %"struct.Halide::Expr", align 8
  %981 = alloca %"struct.Halide::Expr", align 8
  %982 = alloca %"class.Halide::Var", align 8
  %983 = alloca %"struct.Halide::Expr", align 8
  %984 = alloca %"struct.Halide::Expr", align 8
  %985 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %986 = alloca %"class.Halide::Pipeline", align 8
  %987 = alloca %"class.Halide::Func", align 8
  %988 = alloca %"class.Halide::ImageParam", align 8
  %989 = alloca %"struct.Halide::Type", align 8
  %990 = alloca %"class.Halide::Func", align 8
  %991 = alloca %"class.std::__cxx11::basic_string", align 8
  %992 = alloca %"class.std::allocator", align 1
  %993 = alloca %"class.Halide::Var", align 8
  %994 = alloca %"class.Halide::Var", align 8
  %995 = alloca %"class.Halide::Var", align 8
  %996 = alloca %"class.Halide::Var", align 8
  %997 = alloca %"class.Halide::Var", align 8
  %998 = alloca %"class.Halide::Stage", align 8
  %999 = alloca %"struct.Halide::Expr", align 8
  %1000 = alloca %"struct.Halide::Expr", align 8
  %1001 = alloca %"class.Halide::FuncRef", align 8
  %1002 = alloca %"class.Halide::Var", align 8
  %1003 = alloca %"struct.Halide::Expr", align 8
  %1004 = alloca %"struct.Halide::Expr", align 8
  %1005 = alloca %"class.Halide::Var", align 8
  %1006 = alloca %"struct.Halide::Expr", align 8
  %1007 = alloca %"struct.Halide::Expr", align 8
  %1008 = alloca %"class.Halide::Var", align 8
  %1009 = alloca %"struct.Halide::Expr", align 8
  %1010 = alloca %"struct.Halide::Expr", align 8
  %1011 = alloca %"class.Halide::Var", align 8
  %1012 = alloca %"struct.Halide::Expr", align 8
  %1013 = alloca %"struct.Halide::Expr", align 8
  %1014 = alloca %"class.Halide::Var", align 8
  %1015 = alloca %"struct.Halide::Expr", align 8
  %1016 = alloca %"struct.Halide::Expr", align 8
  %1017 = alloca %"class.Halide::Var", align 8
  %1018 = alloca %"struct.Halide::Expr", align 8
  %1019 = alloca %"struct.Halide::Expr", align 8
  %1020 = alloca %"class.Halide::Var", align 8
  %1021 = alloca %"struct.Halide::Expr", align 8
  %1022 = alloca %"struct.Halide::Expr", align 8
  %1023 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %1024 = alloca %"class.Halide::Pipeline", align 8
  %1025 = alloca %"class.Halide::Func", align 8
  %1026 = alloca %"class.Halide::ImageParam", align 8
  %1027 = alloca %"struct.Halide::Type", align 8
  %1028 = alloca %"class.Halide::Func", align 8
  %1029 = alloca %"class.std::__cxx11::basic_string", align 8
  %1030 = alloca %"class.std::allocator", align 1
  %1031 = alloca %"class.Halide::Func", align 8
  %1032 = alloca %"class.std::__cxx11::basic_string", align 8
  %1033 = alloca %"class.std::allocator", align 1
  %1034 = alloca %"class.Halide::Func", align 8
  %1035 = alloca %"class.std::__cxx11::basic_string", align 8
  %1036 = alloca %"class.std::allocator", align 1
  %1037 = alloca %"class.Halide::Stage", align 8
  %1038 = alloca %"struct.Halide::Expr", align 8
  %1039 = alloca %"struct.Halide::Expr", align 8
  %1040 = alloca %"struct.Halide::Expr", align 8
  %1041 = alloca %"struct.Halide::Expr", align 8
  %1042 = alloca %"struct.Halide::Expr", align 8
  %1043 = alloca %"struct.Halide::Expr", align 8
  %1044 = alloca %"struct.Halide::Expr", align 8
  %1045 = alloca %"class.Halide::FuncRef", align 8
  %1046 = alloca %"class.Halide::Stage", align 8
  %1047 = alloca %"class.Halide::FuncRef", align 8
  %1048 = alloca %"struct.Halide::Expr", align 8
  %1049 = alloca %"struct.Halide::Expr", align 8
  %1050 = alloca %"struct.Halide::Expr", align 8
  %1051 = alloca %"struct.Halide::Expr", align 8
  %1052 = alloca %"struct.Halide::Expr", align 8
  %1053 = alloca %"struct.Halide::Expr", align 8
  %1054 = alloca %"class.Halide::FuncRef", align 8
  %1055 = alloca %"class.Halide::Stage", align 8
  %1056 = alloca %"class.Halide::FuncRef", align 8
  %1057 = alloca %"struct.Halide::Expr", align 8
  %1058 = alloca %"struct.Halide::Expr", align 8
  %1059 = alloca %"struct.Halide::Expr", align 8
  %1060 = alloca %"struct.Halide::Expr", align 8
  %1061 = alloca %"struct.Halide::Expr", align 8
  %1062 = alloca %"struct.Halide::Expr", align 8
  %1063 = alloca %"class.Halide::FuncRef", align 8
  %1064 = alloca %"class.Halide::Func", align 8
  %1065 = alloca %"class.std::__cxx11::basic_string", align 8
  %1066 = alloca %"class.std::allocator", align 1
  %1067 = alloca %"class.Halide::Func", align 8
  %1068 = alloca %"class.std::__cxx11::basic_string", align 8
  %1069 = alloca %"class.std::allocator", align 1
  %1070 = alloca %"class.Halide::Stage", align 8
  %1071 = alloca %"struct.Halide::Expr", align 8
  %1072 = alloca %"struct.Halide::Expr", align 8
  %1073 = alloca %"struct.Halide::Expr", align 8
  %1074 = alloca %"class.Halide::FuncRef", align 8
  %1075 = alloca %"struct.Halide::Expr", align 8
  %1076 = alloca %"class.Halide::FuncRef", align 8
  %1077 = alloca %"struct.Halide::Expr", align 8
  %1078 = alloca %"class.Halide::FuncRef", align 8
  %1079 = alloca %"class.Halide::FuncRef", align 8
  %1080 = alloca %"class.Halide::Stage", align 8
  %1081 = alloca %"struct.Halide::Expr", align 8
  %1082 = alloca %"struct.Halide::Expr", align 8
  %1083 = alloca %"struct.Halide::Expr", align 8
  %1084 = alloca %"class.Halide::FuncRef", align 8
  %1085 = alloca %"struct.Halide::Expr", align 8
  %1086 = alloca %"class.Halide::FuncRef", align 8
  %1087 = alloca %"struct.Halide::Expr", align 8
  %1088 = alloca %"class.Halide::FuncRef", align 8
  %1089 = alloca %"class.Halide::FuncRef", align 8
  %1090 = alloca %"class.Halide::Var", align 8
  %1091 = alloca %"struct.Halide::Expr", align 8
  %1092 = alloca %"struct.Halide::Expr", align 8
  %1093 = alloca %"class.Halide::Var", align 8
  %1094 = alloca %"struct.Halide::Expr", align 8
  %1095 = alloca %"struct.Halide::Expr", align 8
  %1096 = alloca %"class.Halide::Var", align 8
  %1097 = alloca %"struct.Halide::Expr", align 8
  %1098 = alloca %"struct.Halide::Expr", align 8
  %1099 = alloca %"class.Halide::Var", align 8
  %1100 = alloca %"struct.Halide::Expr", align 8
  %1101 = alloca %"struct.Halide::Expr", align 8
  %1102 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %1103 = alloca %"class.Halide::Pipeline", align 8
  %1104 = alloca %"class.std::vector.19", align 8
  %1105 = alloca %"class.std::initializer_list", align 8
  %1106 = alloca [2 x %"class.Halide::Func"], align 8
  %1107 = alloca %"class.std::allocator.21", align 1
  %1108 = alloca %"class.Halide::ImageParam", align 8
  %1109 = alloca %"struct.Halide::Type", align 8
  %1110 = alloca i32, align 4
  %1111 = alloca [8 x %"class.Halide::Func"], align 16
  %1112 = alloca %"class.Halide::Func", align 8
  %1113 = alloca %"class.std::__cxx11::basic_string", align 8
  %1114 = alloca %"class.std::allocator", align 1
  %1115 = alloca %"class.Halide::Stage", align 8
  %1116 = alloca %"struct.Halide::Expr", align 8
  %1117 = alloca %"class.Halide::FuncRef", align 8
  %1118 = alloca i32, align 4
  %1119 = alloca %"struct.Halide::Expr", align 8
  %1120 = alloca i32, align 4
  %1121 = alloca i32, align 4
  %1122 = alloca %"struct.Halide::Expr", align 8
  %1123 = alloca %"class.Halide::FuncRef", align 8
  %1124 = alloca %"struct.Halide::Expr", align 8
  %1125 = alloca %"struct.Halide::Expr", align 8
  %1126 = alloca %"struct.Halide::Expr", align 8
  %1127 = alloca %"struct.Halide::Expr", align 8
  %1128 = alloca %"class.Halide::Stage", align 8
  %1129 = alloca %"struct.Halide::Expr", align 8
  %1130 = alloca %"class.Halide::FuncRef", align 8
  %1131 = alloca %"class.Halide::Func", align 8
  %1132 = alloca %"class.std::__cxx11::basic_string", align 8
  %1133 = alloca %"class.std::allocator", align 1
  %1134 = alloca %"class.Halide::Stage", align 8
  %1135 = alloca %"struct.Halide::Expr", align 8
  %1136 = alloca %"struct.Halide::Expr", align 8
  %1137 = alloca %"class.Halide::FuncRef", align 8
  %1138 = alloca %"struct.Halide::Expr", align 8
  %1139 = alloca %"class.Halide::FuncRef", align 8
  %1140 = alloca %"struct.Halide::Expr", align 8
  %1141 = alloca %"struct.Halide::Expr", align 8
  %1142 = alloca %"struct.Halide::Expr", align 8
  %1143 = alloca %"struct.Halide::Expr", align 8
  %1144 = alloca %"struct.Halide::Expr", align 8
  %1145 = alloca %"struct.Halide::Expr", align 8
  %1146 = alloca %"struct.Halide::Expr", align 8
  %1147 = alloca %"struct.Halide::Expr", align 8
  %1148 = alloca %"struct.Halide::Expr", align 8
  %1149 = alloca %"struct.Halide::Expr", align 8
  %1150 = alloca %"struct.Halide::Expr", align 8
  %1151 = alloca %"struct.Halide::Expr", align 8
  %1152 = alloca %"struct.Halide::Expr", align 8
  %1153 = alloca %"struct.Halide::Expr", align 8
  %1154 = alloca %"struct.Halide::Expr", align 8
  %1155 = alloca %"struct.Halide::Expr", align 8
  %1156 = alloca %"class.Halide::FuncRef", align 8
  %1157 = alloca %"class.Halide::Var", align 8
  %1158 = alloca %"struct.Halide::Expr", align 8
  %1159 = alloca %"struct.Halide::Expr", align 8
  %1160 = alloca %"class.Halide::Var", align 8
  %1161 = alloca %"struct.Halide::Expr", align 8
  %1162 = alloca %"struct.Halide::Expr", align 8
  %1163 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %1164 = alloca %"class.Halide::Pipeline", align 8
  %1165 = alloca %"class.Halide::Func", align 8
  %1166 = alloca %"class.Halide::Func", align 8
  %1167 = alloca %"class.std::__cxx11::basic_string", align 8
  %1168 = alloca %"class.std::allocator", align 1
  %1169 = alloca %"class.Halide::Func", align 8
  %1170 = alloca %"class.std::__cxx11::basic_string", align 8
  %1171 = alloca %"class.std::allocator", align 1
  %1172 = alloca %"class.Halide::Func", align 8
  %1173 = alloca %"class.std::__cxx11::basic_string", align 8
  %1174 = alloca %"class.std::allocator", align 1
  %1175 = alloca %"class.Halide::Stage", align 8
  %1176 = alloca %"struct.Halide::Expr", align 8
  %1177 = alloca %"struct.Halide::Expr", align 8
  %1178 = alloca %"struct.Halide::Expr", align 8
  %1179 = alloca %"class.Halide::FuncRef", align 8
  %1180 = alloca %"class.Halide::Stage", align 8
  %1181 = alloca %"class.Halide::FuncRef", align 8
  %1182 = alloca %"struct.Halide::Expr", align 8
  %1183 = alloca i32, align 4
  %1184 = alloca %"class.Halide::FuncRef", align 8
  %1185 = alloca %"class.Halide::RDom", align 8
  %1186 = alloca %"struct.Halide::Expr", align 8
  %1187 = alloca %"struct.Halide::Expr", align 8
  %1188 = alloca %"class.Halide::Stage", align 8
  %1189 = alloca %"struct.Halide::Expr", align 8
  %1190 = alloca %"class.Halide::FuncRef", align 8
  %1191 = alloca %"class.Halide::Stage", align 8
  %1192 = alloca %"struct.Halide::Expr", align 8
  %1193 = alloca %"struct.Halide::Expr", align 8
  %1194 = alloca %"struct.Halide::Expr", align 8
  %1195 = alloca %"class.Halide::FuncRef", align 8
  %1196 = alloca %"struct.Halide::Expr", align 8
  %1197 = alloca %"struct.Halide::Expr", align 8
  %1198 = alloca %"class.Halide::FuncRef", align 8
  %1199 = alloca %"class.Halide::Var", align 8
  %1200 = alloca %"struct.Halide::Expr", align 8
  %1201 = alloca %"struct.Halide::Expr", align 8
  %1202 = alloca %"class.Halide::Var", align 8
  %1203 = alloca %"struct.Halide::Expr", align 8
  %1204 = alloca %"struct.Halide::Expr", align 8
  %1205 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %1206 = alloca %"class.Halide::Pipeline", align 8
  %1207 = alloca %"class.Halide::Func", align 8
  %1208 = alloca %"class.Halide::Func", align 8
  %1209 = alloca %"class.std::__cxx11::basic_string", align 8
  %1210 = alloca %"class.std::allocator", align 1
  %1211 = alloca %"class.Halide::Func", align 8
  %1212 = alloca %"class.std::__cxx11::basic_string", align 8
  %1213 = alloca %"class.std::allocator", align 1
  %1214 = alloca %"class.Halide::Stage", align 8
  %1215 = alloca %"struct.Halide::Expr", align 8
  %1216 = alloca %"struct.Halide::Expr", align 8
  %1217 = alloca %"struct.Halide::Expr", align 8
  %1218 = alloca %"class.Halide::FuncRef", align 8
  %1219 = alloca %"class.Halide::RDom", align 8
  %1220 = alloca %"struct.Halide::Expr", align 8
  %1221 = alloca %"struct.Halide::Expr", align 8
  %1222 = alloca %"class.Halide::Stage", align 8
  %1223 = alloca %"struct.Halide::Expr", align 8
  %1224 = alloca %"struct.Halide::Expr", align 8
  %1225 = alloca %"class.Halide::FuncRef", align 8
  %1226 = alloca %"struct.Halide::Expr", align 8
  %1227 = alloca %"class.Halide::FuncRef", align 8
  %1228 = alloca %"class.Halide::Stage", align 8
  %1229 = alloca %"class.Halide::FuncRef", align 8
  %1230 = alloca %"class.Halide::FuncRef", align 8
  %1231 = alloca %"class.Halide::Var", align 8
  %1232 = alloca %"struct.Halide::Expr", align 8
  %1233 = alloca %"struct.Halide::Expr", align 8
  %1234 = alloca %"class.Halide::Var", align 8
  %1235 = alloca %"struct.Halide::Expr", align 8
  %1236 = alloca %"struct.Halide::Expr", align 8
  %1237 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %1238 = alloca %"class.Halide::Pipeline", align 8
  %1239 = alloca %"class.Halide::Func", align 8
  %1240 = alloca %"class.Halide::ImageParam", align 8
  %1241 = alloca %"struct.Halide::Type", align 8
  %1242 = alloca [8 x %"class.Halide::Func"], align 16
  %1243 = alloca [8 x %"class.Halide::Func"], align 16
  %1244 = alloca i32, align 4
  %1245 = alloca %"class.Halide::Func", align 8
  %1246 = alloca %"class.std::__cxx11::basic_string", align 8
  %1247 = alloca %"class.std::allocator", align 1
  %1248 = alloca %"class.Halide::Stage", align 8
  %1249 = alloca %"struct.Halide::Expr", align 8
  %1250 = alloca %"class.Halide::FuncRef", align 8
  %1251 = alloca i32, align 4
  %1252 = alloca i32, align 4
  %1253 = alloca %"class.Halide::Func", align 8
  %1254 = alloca %"class.std::__cxx11::basic_string", align 8
  %1255 = alloca %"class.std::__cxx11::basic_string", align 8
  %1256 = alloca %"class.Halide::Func", align 8
  %1257 = alloca %"class.std::__cxx11::basic_string", align 8
  %1258 = alloca %"class.std::__cxx11::basic_string", align 8
  %1259 = alloca %"class.Halide::Stage", align 8
  %1260 = alloca %"struct.Halide::Expr", align 8
  %1261 = alloca %"struct.Halide::Expr", align 8
  %1262 = alloca %"class.Halide::FuncRef", align 8
  %1263 = alloca %"struct.Halide::Expr", align 8
  %1264 = alloca %"struct.Halide::Expr", align 8
  %1265 = alloca %"struct.Halide::Expr", align 8
  %1266 = alloca %"struct.Halide::Expr", align 8
  %1267 = alloca %"struct.Halide::Expr", align 8
  %1268 = alloca %"struct.Halide::Expr", align 8
  %1269 = alloca %"struct.Halide::Expr", align 8
  %1270 = alloca %"class.Halide::FuncRef", align 8
  %1271 = alloca %"struct.Halide::Expr", align 8
  %1272 = alloca %"struct.Halide::Expr", align 8
  %1273 = alloca %"struct.Halide::Expr", align 8
  %1274 = alloca %"struct.Halide::Expr", align 8
  %1275 = alloca %"struct.Halide::Expr", align 8
  %1276 = alloca %"struct.Halide::Expr", align 8
  %1277 = alloca %"class.Halide::FuncRef", align 8
  %1278 = alloca %"class.Halide::Func", align 8
  %1279 = alloca %"class.std::vector.25", align 8
  %1280 = alloca %"class.std::initializer_list.30", align 8
  %1281 = alloca [2 x %"struct.Halide::Range"], align 8
  %1282 = alloca ptr, align 8
  %1283 = alloca %"struct.Halide::Expr", align 8
  %1284 = alloca %"struct.Halide::Expr", align 8
  %1285 = alloca %"struct.Halide::Expr", align 8
  %1286 = alloca %"struct.Halide::Expr", align 8
  %1287 = alloca i1, align 1
  %1288 = alloca %"class.std::allocator.27", align 1
  %1289 = alloca i32, align 4
  %1290 = alloca %"class.Halide::Stage", align 8
  %1291 = alloca %"struct.Halide::Expr", align 8
  %1292 = alloca %"struct.Halide::Expr", align 8
  %1293 = alloca %"struct.Halide::Expr", align 8
  %1294 = alloca %"class.Halide::FuncRef", align 8
  %1295 = alloca %"struct.Halide::Expr", align 8
  %1296 = alloca %"struct.Halide::Expr", align 8
  %1297 = alloca %"struct.Halide::Expr", align 8
  %1298 = alloca %"struct.Halide::Expr", align 8
  %1299 = alloca %"struct.Halide::Expr", align 8
  %1300 = alloca %"struct.Halide::Expr", align 8
  %1301 = alloca %"struct.Halide::Expr", align 8
  %1302 = alloca %"class.Halide::FuncRef", align 8
  %1303 = alloca %"struct.Halide::Expr", align 8
  %1304 = alloca %"struct.Halide::Expr", align 8
  %1305 = alloca %"struct.Halide::Expr", align 8
  %1306 = alloca %"struct.Halide::Expr", align 8
  %1307 = alloca %"struct.Halide::Expr", align 8
  %1308 = alloca %"struct.Halide::Expr", align 8
  %1309 = alloca %"struct.Halide::Expr", align 8
  %1310 = alloca %"class.Halide::FuncRef", align 8
  %1311 = alloca %"class.Halide::FuncRef", align 8
  %1312 = alloca %"class.Halide::Func", align 8
  %1313 = alloca %"class.Halide::Stage", align 8
  %1314 = alloca %"class.Halide::FuncRef", align 8
  %1315 = alloca %"class.Halide::FuncRef", align 8
  %1316 = alloca %"class.Halide::Var", align 8
  %1317 = alloca %"struct.Halide::Expr", align 8
  %1318 = alloca %"struct.Halide::Expr", align 8
  %1319 = alloca %"class.Halide::Var", align 8
  %1320 = alloca %"struct.Halide::Expr", align 8
  %1321 = alloca %"struct.Halide::Expr", align 8
  %1322 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %1323 = alloca %"class.Halide::Pipeline", align 8
  %1324 = alloca %"class.Halide::Func", align 8
  %1325 = alloca %"class.Halide::ImageParam", align 8
  %1326 = alloca %"struct.Halide::Type", align 8
  %1327 = alloca %"class.Halide::Func", align 8
  %1328 = alloca %"class.std::__cxx11::basic_string", align 8
  %1329 = alloca %"class.std::allocator", align 1
  %1330 = alloca %"class.Halide::Stage", align 8
  %1331 = alloca %"struct.Halide::Expr", align 8
  %1332 = alloca %"class.Halide::FuncRef", align 8
  %1333 = alloca %"class.Halide::Func", align 8
  %1334 = alloca %"class.std::__cxx11::basic_string", align 8
  %1335 = alloca %"class.std::allocator", align 1
  %1336 = alloca %"class.Halide::Stage", align 8
  %1337 = alloca %"class.Halide::FuncRef", align 8
  %1338 = alloca %"class.Halide::FuncRef", align 8
  %1339 = alloca %"class.Halide::RDom", align 8
  %1340 = alloca %"struct.Halide::Expr", align 8
  %1341 = alloca %"struct.Halide::Expr", align 8
  %1342 = alloca %"class.Halide::Stage", align 8
  %1343 = alloca %"class.Halide::FuncRef", align 8
  %1344 = alloca %"struct.Halide::Expr", align 8
  %1345 = alloca %"struct.Halide::Expr", align 8
  %1346 = alloca %"struct.Halide::Expr", align 8
  %1347 = alloca %"class.Halide::FuncRef", align 8
  %1348 = alloca %"struct.Halide::Expr", align 8
  %1349 = alloca %"class.Halide::Stage", align 8
  %1350 = alloca %"class.Halide::FuncRef", align 8
  %1351 = alloca %"struct.Halide::Expr", align 8
  %1352 = alloca %"struct.Halide::Expr", align 8
  %1353 = alloca %"struct.Halide::Expr", align 8
  %1354 = alloca %"class.Halide::FuncRef", align 8
  %1355 = alloca %"struct.Halide::Expr", align 8
  %1356 = alloca %"struct.Halide::Expr", align 8
  %1357 = alloca %"struct.Halide::Expr", align 8
  %1358 = alloca %"class.Halide::Func", align 8
  %1359 = alloca %"class.std::__cxx11::basic_string", align 8
  %1360 = alloca %"class.std::allocator", align 1
  %1361 = alloca %"class.Halide::Stage", align 8
  %1362 = alloca %"class.Halide::FuncRef", align 8
  %1363 = alloca %"class.Halide::FuncRef", align 8
  %1364 = alloca %"class.Halide::Var", align 8
  %1365 = alloca %"struct.Halide::Expr", align 8
  %1366 = alloca %"struct.Halide::Expr", align 8
  %1367 = alloca %"class.Halide::Var", align 8
  %1368 = alloca %"struct.Halide::Expr", align 8
  %1369 = alloca %"struct.Halide::Expr", align 8
  %1370 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %1371 = alloca %"class.Halide::Pipeline", align 8
  %1372 = alloca %"class.Halide::Func", align 8
  %1373 = alloca %"class.Halide::ImageParam", align 8
  %1374 = alloca %"struct.Halide::Type", align 8
  %1375 = alloca %"class.Halide::Func", align 8
  %1376 = alloca %"class.std::__cxx11::basic_string", align 8
  %1377 = alloca %"class.std::allocator", align 1
  %1378 = alloca %"class.Halide::Func", align 8
  %1379 = alloca %"class.std::__cxx11::basic_string", align 8
  %1380 = alloca %"class.std::allocator", align 1
  %1381 = alloca %"class.Halide::Func", align 8
  %1382 = alloca %"class.std::__cxx11::basic_string", align 8
  %1383 = alloca %"class.std::allocator", align 1
  %1384 = alloca %"class.Halide::Var", align 8
  %1385 = alloca %"class.std::__cxx11::basic_string", align 8
  %1386 = alloca %"class.std::allocator", align 1
  %1387 = alloca %"class.Halide::Stage", align 8
  %1388 = alloca %"struct.Halide::Expr", align 8
  %1389 = alloca %"struct.Halide::Expr", align 8
  %1390 = alloca %"struct.Halide::Expr", align 8
  %1391 = alloca %"struct.Halide::Expr", align 8
  %1392 = alloca %"class.Halide::FuncRef", align 8
  %1393 = alloca %"class.Halide::RDom", align 8
  %1394 = alloca %"struct.Halide::Expr", align 8
  %1395 = alloca %"struct.Halide::Expr", align 8
  %1396 = alloca i32, align 4
  %1397 = alloca i32, align 4
  %1398 = alloca %"class.Halide::Stage", align 8
  %1399 = alloca %"struct.Halide::Expr", align 8
  %1400 = alloca %"struct.Halide::Expr", align 8
  %1401 = alloca %"class.Halide::FuncRef", align 8
  %1402 = alloca %"class.Halide::Stage", align 8
  %1403 = alloca %"struct.Halide::Expr", align 8
  %1404 = alloca %"struct.Halide::Expr", align 8
  %1405 = alloca %"class.Halide::FuncRef", align 8
  %1406 = alloca %"struct.Halide::Expr", align 8
  %1407 = alloca %"class.Halide::FuncRef", align 8
  %1408 = alloca %"struct.Halide::Expr", align 8
  %1409 = alloca %"class.Halide::Stage", align 8
  %1410 = alloca %"class.Halide::FuncRef", align 8
  %1411 = alloca %"class.Halide::FuncRef", align 8
  %1412 = alloca %"class.Halide::Var", align 8
  %1413 = alloca %"struct.Halide::Expr", align 8
  %1414 = alloca %"struct.Halide::Expr", align 8
  %1415 = alloca %"class.Halide::Var", align 8
  %1416 = alloca %"struct.Halide::Expr", align 8
  %1417 = alloca %"struct.Halide::Expr", align 8
  %1418 = alloca %"class.Halide::Var", align 8
  %1419 = alloca %"struct.Halide::Expr", align 8
  %1420 = alloca %"struct.Halide::Expr", align 8
  %1421 = alloca %"struct.Halide::AutoSchedulerResults", align 8
  %1422 = alloca %"class.Halide::Pipeline", align 8
  %1423 = alloca %"class.Halide::Func", align 8
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  %1424 = load i32, ptr %4, align 4, !tbaa !5
  %1425 = icmp ne i32 %1424, 2
  br i1 %1425, label %1426, label %1432

1426:                                             ; preds = %2
  %1427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1428 = load ptr, ptr %5, align 8, !tbaa !9
  %1429 = getelementptr inbounds ptr, ptr %1428, i64 0
  %1430 = load ptr, ptr %1429, align 8, !tbaa !9
  %1431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1427, ptr noundef @.str, ptr noundef %1430) #9
  store i32 1, ptr %3, align 4
  br label %9783

1432:                                             ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr %6) #9
  %1433 = load ptr, ptr %5, align 8, !tbaa !9
  %1434 = getelementptr inbounds ptr, ptr %1433, i64 1
  %1435 = load ptr, ptr %1434, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 %1435, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %1436 unwind label %1517

1436:                                             ; preds = %1432
  invoke void @_ZN6Halide11load_pluginERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %1437 unwind label %1521

1437:                                             ; preds = %1436
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #9
  call void @_ZN6Halide13MachineParamsC2Eimf(ptr noundef nonnull align 8 dereferenceable(20) %10, i32 noundef 32, i64 noundef 16000000, float noundef 4.000000e+01)
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #9
  call void @_ZN6Halide6TargetC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.2)
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %1438 unwind label %1526

1438:                                             ; preds = %1437
  invoke void @_ZN6Halide3VarC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %1439 unwind label %1530

1439:                                             ; preds = %1438
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %1440 unwind label %1535

1440:                                             ; preds = %1439
  invoke void @_ZN6Halide3VarC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %1441 unwind label %1539

1441:                                             ; preds = %1440
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %1442 unwind label %1544

1442:                                             ; preds = %1441
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %1443 unwind label %1548

1443:                                             ; preds = %1442
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %1444 unwind label %1553

1444:                                             ; preds = %1443
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %1445 unwind label %1557

1445:                                             ; preds = %1444
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %1446 unwind label %1562

1446:                                             ; preds = %1445
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %1447 unwind label %1566

1447:                                             ; preds = %1446
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1448 unwind label %1571

1448:                                             ; preds = %1447
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %31, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1449 unwind label %1575

1449:                                             ; preds = %1448
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %29, ptr noundef %30, ptr noundef %31)
          to label %1450 unwind label %1579

1450:                                             ; preds = %1449
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1451 unwind label %1583

1451:                                             ; preds = %1450
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1452 unwind label %1587

1452:                                             ; preds = %1451
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %32, ptr noundef %33, ptr noundef %34)
          to label %1453 unwind label %1591

1453:                                             ; preds = %1452
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %28, ptr noundef %29, ptr noundef %32)
          to label %1454 unwind label %1595

1454:                                             ; preds = %1453
  call void @llvm.lifetime.start.p0(i64 56, ptr %35) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1455 unwind label %1599

1455:                                             ; preds = %1454
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %27, ptr noundef nonnull align 8 dereferenceable(56) %35, ptr noundef %28)
          to label %1456 unwind label %1603

1456:                                             ; preds = %1455
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %27) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %35) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %35) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %40) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %40, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1457 unwind label %1614

1457:                                             ; preds = %1456
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %39, ptr noundef nonnull align 8 dereferenceable(56) %40)
          to label %1458 unwind label %1618

1458:                                             ; preds = %1457
  invoke void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %38, ptr noundef nonnull align 8 dereferenceable(8) %39, i32 noundef 2)
          to label %1459 unwind label %1622

1459:                                             ; preds = %1458
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %37, ptr noundef %38, i32 noundef 1)
          to label %1460 unwind label %1626

1460:                                             ; preds = %1459
  call void @llvm.lifetime.start.p0(i64 56, ptr %41) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1461 unwind label %1630

1461:                                             ; preds = %1460
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %36, ptr noundef nonnull align 8 dereferenceable(56) %41, ptr noundef %37)
          to label %1462 unwind label %1634

1462:                                             ; preds = %1461
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %36) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %41) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %41) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %40) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %46) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1463 unwind label %1643

1463:                                             ; preds = %1462
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %45, ptr noundef nonnull align 8 dereferenceable(56) %46)
          to label %1464 unwind label %1647

1464:                                             ; preds = %1463
  invoke void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %44, ptr noundef nonnull align 8 dereferenceable(8) %45, i32 noundef 2)
          to label %1465 unwind label %1651

1465:                                             ; preds = %1464
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %43, ptr noundef %44, i32 noundef 1)
          to label %1466 unwind label %1655

1466:                                             ; preds = %1465
  call void @llvm.lifetime.start.p0(i64 56, ptr %47) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1467 unwind label %1659

1467:                                             ; preds = %1466
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %42, ptr noundef nonnull align 8 dereferenceable(56) %47, ptr noundef %43)
          to label %1468 unwind label %1663

1468:                                             ; preds = %1467
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %42) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %47) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %47) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %46) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1469 unwind label %1571

1469:                                             ; preds = %1468
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %49, i32 noundef 0)
          to label %1470 unwind label %1672

1470:                                             ; preds = %1469
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %50, i32 noundef 1000)
          to label %1471 unwind label %1676

1471:                                             ; preds = %1470
  %1472 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef %48, ptr noundef %49, ptr noundef %50)
          to label %1473 unwind label %1680

1473:                                             ; preds = %1471
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1474 unwind label %1680

1474:                                             ; preds = %1473
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %52, i32 noundef 0)
          to label %1475 unwind label %1684

1475:                                             ; preds = %1474
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %53, i32 noundef 1000)
          to label %1476 unwind label %1688

1476:                                             ; preds = %1475
  %1477 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1472, ptr noundef %51, ptr noundef %52, ptr noundef %53)
          to label %1478 unwind label %1692

1478:                                             ; preds = %1476
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef %56)
          to label %1479 unwind label %1701

1479:                                             ; preds = %1478
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %54, ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %1480 unwind label %1705

1480:                                             ; preds = %1479
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %54) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %1481 unwind label %1714

1481:                                             ; preds = %1480
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %1482 unwind label %1718

1482:                                             ; preds = %1481
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %1483 unwind label %1723

1483:                                             ; preds = %1482
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %1484 unwind label %1727

1484:                                             ; preds = %1483
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %1485 unwind label %1732

1485:                                             ; preds = %1484
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(32) %64)
          to label %1486 unwind label %1736

1486:                                             ; preds = %1485
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %72, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1487 unwind label %1741

1487:                                             ; preds = %1486
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %73, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1488 unwind label %1745

1488:                                             ; preds = %1487
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %71, ptr noundef %72, ptr noundef %73)
          to label %1489 unwind label %1749

1489:                                             ; preds = %1488
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %75, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1490 unwind label %1753

1490:                                             ; preds = %1489
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %77, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1491 unwind label %1757

1491:                                             ; preds = %1490
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %76, i32 noundef 2, ptr noundef %77)
          to label %1492 unwind label %1761

1492:                                             ; preds = %1491
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %74, ptr noundef %75, ptr noundef %76)
          to label %1493 unwind label %1765

1493:                                             ; preds = %1492
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %70, ptr noundef %71, ptr noundef %74)
          to label %1494 unwind label %1769

1494:                                             ; preds = %1493
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %79, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1495 unwind label %1773

1495:                                             ; preds = %1494
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %81, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1496 unwind label %1777

1496:                                             ; preds = %1495
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %80, i32 noundef 3, ptr noundef %81)
          to label %1497 unwind label %1781

1497:                                             ; preds = %1496
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %78, ptr noundef %79, ptr noundef %80)
          to label %1498 unwind label %1785

1498:                                             ; preds = %1497
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %69, ptr noundef %70, ptr noundef %78)
          to label %1499 unwind label %1789

1499:                                             ; preds = %1498
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %83, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1500 unwind label %1793

1500:                                             ; preds = %1499
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %85, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1501 unwind label %1797

1501:                                             ; preds = %1500
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %84, i32 noundef 4, ptr noundef %85)
          to label %1502 unwind label %1801

1502:                                             ; preds = %1501
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %82, ptr noundef %83, ptr noundef %84)
          to label %1503 unwind label %1805

1503:                                             ; preds = %1502
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %68, ptr noundef %69, ptr noundef %82)
          to label %1504 unwind label %1809

1504:                                             ; preds = %1503
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %87, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1505 unwind label %1813

1505:                                             ; preds = %1504
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %89, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1506 unwind label %1817

1506:                                             ; preds = %1505
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %88, i32 noundef 5, ptr noundef %89)
          to label %1507 unwind label %1821

1507:                                             ; preds = %1506
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %86, ptr noundef %87, ptr noundef %88)
          to label %1508 unwind label %1825

1508:                                             ; preds = %1507
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %67, ptr noundef %68, ptr noundef %86)
          to label %1509 unwind label %1829

1509:                                             ; preds = %1508
  call void @llvm.lifetime.start.p0(i64 56, ptr %90) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %90, ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1510 unwind label %1833

1510:                                             ; preds = %1509
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %66, ptr noundef nonnull align 8 dereferenceable(56) %90, ptr noundef %67)
          to label %1511 unwind label %1837

1511:                                             ; preds = %1510
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %66) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %90) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %90) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %77) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %91, i32 noundef 0)
          to label %1512 unwind label %1864

1512:                                             ; preds = %1511
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #9
  store i32 0, ptr %92, align 4, !tbaa !5
  br label %1513

1513:                                             ; preds = %1881, %1512
  %1514 = load i32, ptr %92, align 4, !tbaa !5
  %1515 = icmp slt i32 %1514, 100
  br i1 %1515, label %1868, label %1516

1516:                                             ; preds = %1513
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %1918

1517:                                             ; preds = %1432
  %1518 = landingpad { ptr, i32 }
          cleanup
  %1519 = extractvalue { ptr, i32 } %1518, 0
  store ptr %1519, ptr %8, align 8
  %1520 = extractvalue { ptr, i32 } %1518, 1
  store i32 %1520, ptr %9, align 4
  br label %1525

1521:                                             ; preds = %1436
  %1522 = landingpad { ptr, i32 }
          cleanup
  %1523 = extractvalue { ptr, i32 } %1522, 0
  store ptr %1523, ptr %8, align 8
  %1524 = extractvalue { ptr, i32 } %1522, 1
  store i32 %1524, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #9
  br label %1525

1525:                                             ; preds = %1521, %1517
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #9
  br label %9785

1526:                                             ; preds = %1437
  %1527 = landingpad { ptr, i32 }
          cleanup
  %1528 = extractvalue { ptr, i32 } %1527, 0
  store ptr %1528, ptr %8, align 8
  %1529 = extractvalue { ptr, i32 } %1527, 1
  store i32 %1529, ptr %9, align 4
  br label %1534

1530:                                             ; preds = %1438
  %1531 = landingpad { ptr, i32 }
          cleanup
  %1532 = extractvalue { ptr, i32 } %1531, 0
  store ptr %1532, ptr %8, align 8
  %1533 = extractvalue { ptr, i32 } %1531, 1
  store i32 %1533, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  br label %1534

1534:                                             ; preds = %1530, %1526
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #9
  br label %9782

1535:                                             ; preds = %1439
  %1536 = landingpad { ptr, i32 }
          cleanup
  %1537 = extractvalue { ptr, i32 } %1536, 0
  store ptr %1537, ptr %8, align 8
  %1538 = extractvalue { ptr, i32 } %1536, 1
  store i32 %1538, ptr %9, align 4
  br label %1543

1539:                                             ; preds = %1440
  %1540 = landingpad { ptr, i32 }
          cleanup
  %1541 = extractvalue { ptr, i32 } %1540, 0
  store ptr %1541, ptr %8, align 8
  %1542 = extractvalue { ptr, i32 } %1540, 1
  store i32 %1542, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %1543

1543:                                             ; preds = %1539, %1535
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #9
  br label %9781

1544:                                             ; preds = %1441
  %1545 = landingpad { ptr, i32 }
          cleanup
  %1546 = extractvalue { ptr, i32 } %1545, 0
  store ptr %1546, ptr %8, align 8
  %1547 = extractvalue { ptr, i32 } %1545, 1
  store i32 %1547, ptr %9, align 4
  br label %1552

1548:                                             ; preds = %1442
  %1549 = landingpad { ptr, i32 }
          cleanup
  %1550 = extractvalue { ptr, i32 } %1549, 0
  store ptr %1550, ptr %8, align 8
  %1551 = extractvalue { ptr, i32 } %1549, 1
  store i32 %1551, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  br label %1552

1552:                                             ; preds = %1548, %1544
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #9
  br label %1713

1553:                                             ; preds = %1443
  %1554 = landingpad { ptr, i32 }
          cleanup
  %1555 = extractvalue { ptr, i32 } %1554, 0
  store ptr %1555, ptr %8, align 8
  %1556 = extractvalue { ptr, i32 } %1554, 1
  store i32 %1556, ptr %9, align 4
  br label %1561

1557:                                             ; preds = %1444
  %1558 = landingpad { ptr, i32 }
          cleanup
  %1559 = extractvalue { ptr, i32 } %1558, 0
  store ptr %1559, ptr %8, align 8
  %1560 = extractvalue { ptr, i32 } %1558, 1
  store i32 %1560, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %1561

1561:                                             ; preds = %1557, %1553
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #9
  br label %1712

1562:                                             ; preds = %1445
  %1563 = landingpad { ptr, i32 }
          cleanup
  %1564 = extractvalue { ptr, i32 } %1563, 0
  store ptr %1564, ptr %8, align 8
  %1565 = extractvalue { ptr, i32 } %1563, 1
  store i32 %1565, ptr %9, align 4
  br label %1570

1566:                                             ; preds = %1446
  %1567 = landingpad { ptr, i32 }
          cleanup
  %1568 = extractvalue { ptr, i32 } %1567, 0
  store ptr %1568, ptr %8, align 8
  %1569 = extractvalue { ptr, i32 } %1567, 1
  store i32 %1569, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  br label %1570

1570:                                             ; preds = %1566, %1562
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #9
  br label %1711

1571:                                             ; preds = %1468, %1447
  %1572 = landingpad { ptr, i32 }
          cleanup
  %1573 = extractvalue { ptr, i32 } %1572, 0
  store ptr %1573, ptr %8, align 8
  %1574 = extractvalue { ptr, i32 } %1572, 1
  store i32 %1574, ptr %9, align 4
  br label %1710

1575:                                             ; preds = %1448
  %1576 = landingpad { ptr, i32 }
          cleanup
  %1577 = extractvalue { ptr, i32 } %1576, 0
  store ptr %1577, ptr %8, align 8
  %1578 = extractvalue { ptr, i32 } %1576, 1
  store i32 %1578, ptr %9, align 4
  br label %1613

1579:                                             ; preds = %1449
  %1580 = landingpad { ptr, i32 }
          cleanup
  %1581 = extractvalue { ptr, i32 } %1580, 0
  store ptr %1581, ptr %8, align 8
  %1582 = extractvalue { ptr, i32 } %1580, 1
  store i32 %1582, ptr %9, align 4
  br label %1612

1583:                                             ; preds = %1450
  %1584 = landingpad { ptr, i32 }
          cleanup
  %1585 = extractvalue { ptr, i32 } %1584, 0
  store ptr %1585, ptr %8, align 8
  %1586 = extractvalue { ptr, i32 } %1584, 1
  store i32 %1586, ptr %9, align 4
  br label %1611

1587:                                             ; preds = %1451
  %1588 = landingpad { ptr, i32 }
          cleanup
  %1589 = extractvalue { ptr, i32 } %1588, 0
  store ptr %1589, ptr %8, align 8
  %1590 = extractvalue { ptr, i32 } %1588, 1
  store i32 %1590, ptr %9, align 4
  br label %1610

1591:                                             ; preds = %1452
  %1592 = landingpad { ptr, i32 }
          cleanup
  %1593 = extractvalue { ptr, i32 } %1592, 0
  store ptr %1593, ptr %8, align 8
  %1594 = extractvalue { ptr, i32 } %1592, 1
  store i32 %1594, ptr %9, align 4
  br label %1609

1595:                                             ; preds = %1453
  %1596 = landingpad { ptr, i32 }
          cleanup
  %1597 = extractvalue { ptr, i32 } %1596, 0
  store ptr %1597, ptr %8, align 8
  %1598 = extractvalue { ptr, i32 } %1596, 1
  store i32 %1598, ptr %9, align 4
  br label %1608

1599:                                             ; preds = %1454
  %1600 = landingpad { ptr, i32 }
          cleanup
  %1601 = extractvalue { ptr, i32 } %1600, 0
  store ptr %1601, ptr %8, align 8
  %1602 = extractvalue { ptr, i32 } %1600, 1
  store i32 %1602, ptr %9, align 4
  br label %1607

1603:                                             ; preds = %1455
  %1604 = landingpad { ptr, i32 }
          cleanup
  %1605 = extractvalue { ptr, i32 } %1604, 0
  store ptr %1605, ptr %8, align 8
  %1606 = extractvalue { ptr, i32 } %1604, 1
  store i32 %1606, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %35) #9
  br label %1607

1607:                                             ; preds = %1603, %1599
  call void @llvm.lifetime.end.p0(i64 56, ptr %35) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #9
  br label %1608

1608:                                             ; preds = %1607, %1595
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #9
  br label %1609

1609:                                             ; preds = %1608, %1591
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #9
  br label %1610

1610:                                             ; preds = %1609, %1587
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #9
  br label %1611

1611:                                             ; preds = %1610, %1583
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #9
  br label %1612

1612:                                             ; preds = %1611, %1579
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #9
  br label %1613

1613:                                             ; preds = %1612, %1575
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #9
  br label %1710

1614:                                             ; preds = %1456
  %1615 = landingpad { ptr, i32 }
          cleanup
  %1616 = extractvalue { ptr, i32 } %1615, 0
  store ptr %1616, ptr %8, align 8
  %1617 = extractvalue { ptr, i32 } %1615, 1
  store i32 %1617, ptr %9, align 4
  br label %1642

1618:                                             ; preds = %1457
  %1619 = landingpad { ptr, i32 }
          cleanup
  %1620 = extractvalue { ptr, i32 } %1619, 0
  store ptr %1620, ptr %8, align 8
  %1621 = extractvalue { ptr, i32 } %1619, 1
  store i32 %1621, ptr %9, align 4
  br label %1641

1622:                                             ; preds = %1458
  %1623 = landingpad { ptr, i32 }
          cleanup
  %1624 = extractvalue { ptr, i32 } %1623, 0
  store ptr %1624, ptr %8, align 8
  %1625 = extractvalue { ptr, i32 } %1623, 1
  store i32 %1625, ptr %9, align 4
  br label %1640

1626:                                             ; preds = %1459
  %1627 = landingpad { ptr, i32 }
          cleanup
  %1628 = extractvalue { ptr, i32 } %1627, 0
  store ptr %1628, ptr %8, align 8
  %1629 = extractvalue { ptr, i32 } %1627, 1
  store i32 %1629, ptr %9, align 4
  br label %1639

1630:                                             ; preds = %1460
  %1631 = landingpad { ptr, i32 }
          cleanup
  %1632 = extractvalue { ptr, i32 } %1631, 0
  store ptr %1632, ptr %8, align 8
  %1633 = extractvalue { ptr, i32 } %1631, 1
  store i32 %1633, ptr %9, align 4
  br label %1638

1634:                                             ; preds = %1461
  %1635 = landingpad { ptr, i32 }
          cleanup
  %1636 = extractvalue { ptr, i32 } %1635, 0
  store ptr %1636, ptr %8, align 8
  %1637 = extractvalue { ptr, i32 } %1635, 1
  store i32 %1637, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %41) #9
  br label %1638

1638:                                             ; preds = %1634, %1630
  call void @llvm.lifetime.end.p0(i64 56, ptr %41) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37) #9
  br label %1639

1639:                                             ; preds = %1638, %1626
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #9
  br label %1640

1640:                                             ; preds = %1639, %1622
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #9
  br label %1641

1641:                                             ; preds = %1640, %1618
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %40) #9
  br label %1642

1642:                                             ; preds = %1641, %1614
  call void @llvm.lifetime.end.p0(i64 56, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  br label %1710

1643:                                             ; preds = %1462
  %1644 = landingpad { ptr, i32 }
          cleanup
  %1645 = extractvalue { ptr, i32 } %1644, 0
  store ptr %1645, ptr %8, align 8
  %1646 = extractvalue { ptr, i32 } %1644, 1
  store i32 %1646, ptr %9, align 4
  br label %1671

1647:                                             ; preds = %1463
  %1648 = landingpad { ptr, i32 }
          cleanup
  %1649 = extractvalue { ptr, i32 } %1648, 0
  store ptr %1649, ptr %8, align 8
  %1650 = extractvalue { ptr, i32 } %1648, 1
  store i32 %1650, ptr %9, align 4
  br label %1670

1651:                                             ; preds = %1464
  %1652 = landingpad { ptr, i32 }
          cleanup
  %1653 = extractvalue { ptr, i32 } %1652, 0
  store ptr %1653, ptr %8, align 8
  %1654 = extractvalue { ptr, i32 } %1652, 1
  store i32 %1654, ptr %9, align 4
  br label %1669

1655:                                             ; preds = %1465
  %1656 = landingpad { ptr, i32 }
          cleanup
  %1657 = extractvalue { ptr, i32 } %1656, 0
  store ptr %1657, ptr %8, align 8
  %1658 = extractvalue { ptr, i32 } %1656, 1
  store i32 %1658, ptr %9, align 4
  br label %1668

1659:                                             ; preds = %1466
  %1660 = landingpad { ptr, i32 }
          cleanup
  %1661 = extractvalue { ptr, i32 } %1660, 0
  store ptr %1661, ptr %8, align 8
  %1662 = extractvalue { ptr, i32 } %1660, 1
  store i32 %1662, ptr %9, align 4
  br label %1667

1663:                                             ; preds = %1467
  %1664 = landingpad { ptr, i32 }
          cleanup
  %1665 = extractvalue { ptr, i32 } %1664, 0
  store ptr %1665, ptr %8, align 8
  %1666 = extractvalue { ptr, i32 } %1664, 1
  store i32 %1666, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %47) #9
  br label %1667

1667:                                             ; preds = %1663, %1659
  call void @llvm.lifetime.end.p0(i64 56, ptr %47) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #9
  br label %1668

1668:                                             ; preds = %1667, %1655
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #9
  br label %1669

1669:                                             ; preds = %1668, %1651
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #9
  br label %1670

1670:                                             ; preds = %1669, %1647
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %46) #9
  br label %1671

1671:                                             ; preds = %1670, %1643
  call void @llvm.lifetime.end.p0(i64 56, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  br label %1710

1672:                                             ; preds = %1469
  %1673 = landingpad { ptr, i32 }
          cleanup
  %1674 = extractvalue { ptr, i32 } %1673, 0
  store ptr %1674, ptr %8, align 8
  %1675 = extractvalue { ptr, i32 } %1673, 1
  store i32 %1675, ptr %9, align 4
  br label %1700

1676:                                             ; preds = %1470
  %1677 = landingpad { ptr, i32 }
          cleanup
  %1678 = extractvalue { ptr, i32 } %1677, 0
  store ptr %1678, ptr %8, align 8
  %1679 = extractvalue { ptr, i32 } %1677, 1
  store i32 %1679, ptr %9, align 4
  br label %1699

1680:                                             ; preds = %1473, %1471
  %1681 = landingpad { ptr, i32 }
          cleanup
  %1682 = extractvalue { ptr, i32 } %1681, 0
  store ptr %1682, ptr %8, align 8
  %1683 = extractvalue { ptr, i32 } %1681, 1
  store i32 %1683, ptr %9, align 4
  br label %1698

1684:                                             ; preds = %1474
  %1685 = landingpad { ptr, i32 }
          cleanup
  %1686 = extractvalue { ptr, i32 } %1685, 0
  store ptr %1686, ptr %8, align 8
  %1687 = extractvalue { ptr, i32 } %1685, 1
  store i32 %1687, ptr %9, align 4
  br label %1697

1688:                                             ; preds = %1475
  %1689 = landingpad { ptr, i32 }
          cleanup
  %1690 = extractvalue { ptr, i32 } %1689, 0
  store ptr %1690, ptr %8, align 8
  %1691 = extractvalue { ptr, i32 } %1689, 1
  store i32 %1691, ptr %9, align 4
  br label %1696

1692:                                             ; preds = %1476
  %1693 = landingpad { ptr, i32 }
          cleanup
  %1694 = extractvalue { ptr, i32 } %1693, 0
  store ptr %1694, ptr %8, align 8
  %1695 = extractvalue { ptr, i32 } %1693, 1
  store i32 %1695, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #9
  br label %1696

1696:                                             ; preds = %1692, %1688
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #9
  br label %1697

1697:                                             ; preds = %1696, %1684
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  br label %1698

1698:                                             ; preds = %1697, %1680
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #9
  br label %1699

1699:                                             ; preds = %1698, %1676
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #9
  br label %1700

1700:                                             ; preds = %1699, %1672
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  br label %1710

1701:                                             ; preds = %1478
  %1702 = landingpad { ptr, i32 }
          cleanup
  %1703 = extractvalue { ptr, i32 } %1702, 0
  store ptr %1703, ptr %8, align 8
  %1704 = extractvalue { ptr, i32 } %1702, 1
  store i32 %1704, ptr %9, align 4
  br label %1709

1705:                                             ; preds = %1479
  %1706 = landingpad { ptr, i32 }
          cleanup
  %1707 = extractvalue { ptr, i32 } %1706, 0
  store ptr %1707, ptr %8, align 8
  %1708 = extractvalue { ptr, i32 } %1706, 1
  store i32 %1708, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #9
  br label %1709

1709:                                             ; preds = %1705, %1701
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  br label %1710

1710:                                             ; preds = %1709, %1700, %1671, %1642, %1613, %1571
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  br label %1711

1711:                                             ; preds = %1710, %1570
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  br label %1712

1712:                                             ; preds = %1711, %1561
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  br label %1713

1713:                                             ; preds = %1712, %1552
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #9
  br label %9780

1714:                                             ; preds = %1480
  %1715 = landingpad { ptr, i32 }
          cleanup
  %1716 = extractvalue { ptr, i32 } %1715, 0
  store ptr %1716, ptr %8, align 8
  %1717 = extractvalue { ptr, i32 } %1715, 1
  store i32 %1717, ptr %9, align 4
  br label %1722

1718:                                             ; preds = %1481
  %1719 = landingpad { ptr, i32 }
          cleanup
  %1720 = extractvalue { ptr, i32 } %1719, 0
  store ptr %1720, ptr %8, align 8
  %1721 = extractvalue { ptr, i32 } %1719, 1
  store i32 %1721, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #9
  br label %1722

1722:                                             ; preds = %1718, %1714
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #9
  br label %2261

1723:                                             ; preds = %1482
  %1724 = landingpad { ptr, i32 }
          cleanup
  %1725 = extractvalue { ptr, i32 } %1724, 0
  store ptr %1725, ptr %8, align 8
  %1726 = extractvalue { ptr, i32 } %1724, 1
  store i32 %1726, ptr %9, align 4
  br label %1731

1727:                                             ; preds = %1483
  %1728 = landingpad { ptr, i32 }
          cleanup
  %1729 = extractvalue { ptr, i32 } %1728, 0
  store ptr %1729, ptr %8, align 8
  %1730 = extractvalue { ptr, i32 } %1728, 1
  store i32 %1730, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #9
  br label %1731

1731:                                             ; preds = %1727, %1723
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #9
  br label %2260

1732:                                             ; preds = %1484
  %1733 = landingpad { ptr, i32 }
          cleanup
  %1734 = extractvalue { ptr, i32 } %1733, 0
  store ptr %1734, ptr %8, align 8
  %1735 = extractvalue { ptr, i32 } %1733, 1
  store i32 %1735, ptr %9, align 4
  br label %1740

1736:                                             ; preds = %1485
  %1737 = landingpad { ptr, i32 }
          cleanup
  %1738 = extractvalue { ptr, i32 } %1737, 0
  store ptr %1738, ptr %8, align 8
  %1739 = extractvalue { ptr, i32 } %1737, 1
  store i32 %1739, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #9
  br label %1740

1740:                                             ; preds = %1736, %1732
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #9
  br label %2259

1741:                                             ; preds = %1486
  %1742 = landingpad { ptr, i32 }
          cleanup
  %1743 = extractvalue { ptr, i32 } %1742, 0
  store ptr %1743, ptr %8, align 8
  %1744 = extractvalue { ptr, i32 } %1742, 1
  store i32 %1744, ptr %9, align 4
  br label %2258

1745:                                             ; preds = %1487
  %1746 = landingpad { ptr, i32 }
          cleanup
  %1747 = extractvalue { ptr, i32 } %1746, 0
  store ptr %1747, ptr %8, align 8
  %1748 = extractvalue { ptr, i32 } %1746, 1
  store i32 %1748, ptr %9, align 4
  br label %1863

1749:                                             ; preds = %1488
  %1750 = landingpad { ptr, i32 }
          cleanup
  %1751 = extractvalue { ptr, i32 } %1750, 0
  store ptr %1751, ptr %8, align 8
  %1752 = extractvalue { ptr, i32 } %1750, 1
  store i32 %1752, ptr %9, align 4
  br label %1862

1753:                                             ; preds = %1489
  %1754 = landingpad { ptr, i32 }
          cleanup
  %1755 = extractvalue { ptr, i32 } %1754, 0
  store ptr %1755, ptr %8, align 8
  %1756 = extractvalue { ptr, i32 } %1754, 1
  store i32 %1756, ptr %9, align 4
  br label %1861

1757:                                             ; preds = %1490
  %1758 = landingpad { ptr, i32 }
          cleanup
  %1759 = extractvalue { ptr, i32 } %1758, 0
  store ptr %1759, ptr %8, align 8
  %1760 = extractvalue { ptr, i32 } %1758, 1
  store i32 %1760, ptr %9, align 4
  br label %1860

1761:                                             ; preds = %1491
  %1762 = landingpad { ptr, i32 }
          cleanup
  %1763 = extractvalue { ptr, i32 } %1762, 0
  store ptr %1763, ptr %8, align 8
  %1764 = extractvalue { ptr, i32 } %1762, 1
  store i32 %1764, ptr %9, align 4
  br label %1859

1765:                                             ; preds = %1492
  %1766 = landingpad { ptr, i32 }
          cleanup
  %1767 = extractvalue { ptr, i32 } %1766, 0
  store ptr %1767, ptr %8, align 8
  %1768 = extractvalue { ptr, i32 } %1766, 1
  store i32 %1768, ptr %9, align 4
  br label %1858

1769:                                             ; preds = %1493
  %1770 = landingpad { ptr, i32 }
          cleanup
  %1771 = extractvalue { ptr, i32 } %1770, 0
  store ptr %1771, ptr %8, align 8
  %1772 = extractvalue { ptr, i32 } %1770, 1
  store i32 %1772, ptr %9, align 4
  br label %1857

1773:                                             ; preds = %1494
  %1774 = landingpad { ptr, i32 }
          cleanup
  %1775 = extractvalue { ptr, i32 } %1774, 0
  store ptr %1775, ptr %8, align 8
  %1776 = extractvalue { ptr, i32 } %1774, 1
  store i32 %1776, ptr %9, align 4
  br label %1856

1777:                                             ; preds = %1495
  %1778 = landingpad { ptr, i32 }
          cleanup
  %1779 = extractvalue { ptr, i32 } %1778, 0
  store ptr %1779, ptr %8, align 8
  %1780 = extractvalue { ptr, i32 } %1778, 1
  store i32 %1780, ptr %9, align 4
  br label %1855

1781:                                             ; preds = %1496
  %1782 = landingpad { ptr, i32 }
          cleanup
  %1783 = extractvalue { ptr, i32 } %1782, 0
  store ptr %1783, ptr %8, align 8
  %1784 = extractvalue { ptr, i32 } %1782, 1
  store i32 %1784, ptr %9, align 4
  br label %1854

1785:                                             ; preds = %1497
  %1786 = landingpad { ptr, i32 }
          cleanup
  %1787 = extractvalue { ptr, i32 } %1786, 0
  store ptr %1787, ptr %8, align 8
  %1788 = extractvalue { ptr, i32 } %1786, 1
  store i32 %1788, ptr %9, align 4
  br label %1853

1789:                                             ; preds = %1498
  %1790 = landingpad { ptr, i32 }
          cleanup
  %1791 = extractvalue { ptr, i32 } %1790, 0
  store ptr %1791, ptr %8, align 8
  %1792 = extractvalue { ptr, i32 } %1790, 1
  store i32 %1792, ptr %9, align 4
  br label %1852

1793:                                             ; preds = %1499
  %1794 = landingpad { ptr, i32 }
          cleanup
  %1795 = extractvalue { ptr, i32 } %1794, 0
  store ptr %1795, ptr %8, align 8
  %1796 = extractvalue { ptr, i32 } %1794, 1
  store i32 %1796, ptr %9, align 4
  br label %1851

1797:                                             ; preds = %1500
  %1798 = landingpad { ptr, i32 }
          cleanup
  %1799 = extractvalue { ptr, i32 } %1798, 0
  store ptr %1799, ptr %8, align 8
  %1800 = extractvalue { ptr, i32 } %1798, 1
  store i32 %1800, ptr %9, align 4
  br label %1850

1801:                                             ; preds = %1501
  %1802 = landingpad { ptr, i32 }
          cleanup
  %1803 = extractvalue { ptr, i32 } %1802, 0
  store ptr %1803, ptr %8, align 8
  %1804 = extractvalue { ptr, i32 } %1802, 1
  store i32 %1804, ptr %9, align 4
  br label %1849

1805:                                             ; preds = %1502
  %1806 = landingpad { ptr, i32 }
          cleanup
  %1807 = extractvalue { ptr, i32 } %1806, 0
  store ptr %1807, ptr %8, align 8
  %1808 = extractvalue { ptr, i32 } %1806, 1
  store i32 %1808, ptr %9, align 4
  br label %1848

1809:                                             ; preds = %1503
  %1810 = landingpad { ptr, i32 }
          cleanup
  %1811 = extractvalue { ptr, i32 } %1810, 0
  store ptr %1811, ptr %8, align 8
  %1812 = extractvalue { ptr, i32 } %1810, 1
  store i32 %1812, ptr %9, align 4
  br label %1847

1813:                                             ; preds = %1504
  %1814 = landingpad { ptr, i32 }
          cleanup
  %1815 = extractvalue { ptr, i32 } %1814, 0
  store ptr %1815, ptr %8, align 8
  %1816 = extractvalue { ptr, i32 } %1814, 1
  store i32 %1816, ptr %9, align 4
  br label %1846

1817:                                             ; preds = %1505
  %1818 = landingpad { ptr, i32 }
          cleanup
  %1819 = extractvalue { ptr, i32 } %1818, 0
  store ptr %1819, ptr %8, align 8
  %1820 = extractvalue { ptr, i32 } %1818, 1
  store i32 %1820, ptr %9, align 4
  br label %1845

1821:                                             ; preds = %1506
  %1822 = landingpad { ptr, i32 }
          cleanup
  %1823 = extractvalue { ptr, i32 } %1822, 0
  store ptr %1823, ptr %8, align 8
  %1824 = extractvalue { ptr, i32 } %1822, 1
  store i32 %1824, ptr %9, align 4
  br label %1844

1825:                                             ; preds = %1507
  %1826 = landingpad { ptr, i32 }
          cleanup
  %1827 = extractvalue { ptr, i32 } %1826, 0
  store ptr %1827, ptr %8, align 8
  %1828 = extractvalue { ptr, i32 } %1826, 1
  store i32 %1828, ptr %9, align 4
  br label %1843

1829:                                             ; preds = %1508
  %1830 = landingpad { ptr, i32 }
          cleanup
  %1831 = extractvalue { ptr, i32 } %1830, 0
  store ptr %1831, ptr %8, align 8
  %1832 = extractvalue { ptr, i32 } %1830, 1
  store i32 %1832, ptr %9, align 4
  br label %1842

1833:                                             ; preds = %1509
  %1834 = landingpad { ptr, i32 }
          cleanup
  %1835 = extractvalue { ptr, i32 } %1834, 0
  store ptr %1835, ptr %8, align 8
  %1836 = extractvalue { ptr, i32 } %1834, 1
  store i32 %1836, ptr %9, align 4
  br label %1841

1837:                                             ; preds = %1510
  %1838 = landingpad { ptr, i32 }
          cleanup
  %1839 = extractvalue { ptr, i32 } %1838, 0
  store ptr %1839, ptr %8, align 8
  %1840 = extractvalue { ptr, i32 } %1838, 1
  store i32 %1840, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %90) #9
  br label %1841

1841:                                             ; preds = %1837, %1833
  call void @llvm.lifetime.end.p0(i64 56, ptr %90) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #9
  br label %1842

1842:                                             ; preds = %1841, %1829
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #9
  br label %1843

1843:                                             ; preds = %1842, %1825
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #9
  br label %1844

1844:                                             ; preds = %1843, %1821
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #9
  br label %1845

1845:                                             ; preds = %1844, %1817
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #9
  br label %1846

1846:                                             ; preds = %1845, %1813
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #9
  br label %1847

1847:                                             ; preds = %1846, %1809
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #9
  br label %1848

1848:                                             ; preds = %1847, %1805
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #9
  br label %1849

1849:                                             ; preds = %1848, %1801
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #9
  br label %1850

1850:                                             ; preds = %1849, %1797
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #9
  br label %1851

1851:                                             ; preds = %1850, %1793
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #9
  br label %1852

1852:                                             ; preds = %1851, %1789
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #9
  br label %1853

1853:                                             ; preds = %1852, %1785
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #9
  br label %1854

1854:                                             ; preds = %1853, %1781
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #9
  br label %1855

1855:                                             ; preds = %1854, %1777
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #9
  br label %1856

1856:                                             ; preds = %1855, %1773
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #9
  br label %1857

1857:                                             ; preds = %1856, %1769
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #9
  br label %1858

1858:                                             ; preds = %1857, %1765
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #9
  br label %1859

1859:                                             ; preds = %1858, %1761
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %77) #9
  br label %1860

1860:                                             ; preds = %1859, %1757
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #9
  br label %1861

1861:                                             ; preds = %1860, %1753
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #9
  br label %1862

1862:                                             ; preds = %1861, %1749
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #9
  br label %1863

1863:                                             ; preds = %1862, %1745
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #9
  br label %2258

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

1868:                                             ; preds = %1513
  call void @llvm.lifetime.start.p0(i64 56, ptr %94) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %96, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1869 unwind label %1884

1869:                                             ; preds = %1868
  %1870 = load i32, ptr %92, align 4, !tbaa !5
  %1871 = mul nsw i32 %1870, 10
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %95, ptr noundef %96, i32 noundef %1871)
          to label %1872 unwind label %1888

1872:                                             ; preds = %1869
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %98, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1873 unwind label %1892

1873:                                             ; preds = %1872
  %1874 = load i32, ptr %92, align 4, !tbaa !5
  %1875 = mul nsw i32 %1874, 10
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %97, ptr noundef %98, i32 noundef %1875)
          to label %1876 unwind label %1896

1876:                                             ; preds = %1873
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %94, ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef %95, ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %1877 unwind label %1900

1877:                                             ; preds = %1876
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %93, ptr noundef nonnull align 8 dereferenceable(56) %94)
          to label %1878 unwind label %1904

1878:                                             ; preds = %1877
  %1879 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef %93)
          to label %1880 unwind label %1908

1880:                                             ; preds = %1878
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %94) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %94) #9
  br label %1881

1881:                                             ; preds = %1880
  %1882 = load i32, ptr %92, align 4, !tbaa !5
  %1883 = add nsw i32 %1882, 1
  store i32 %1883, ptr %92, align 4, !tbaa !5
  br label %1513, !llvm.loop !11

1884:                                             ; preds = %1868
  %1885 = landingpad { ptr, i32 }
          cleanup
  %1886 = extractvalue { ptr, i32 } %1885, 0
  store ptr %1886, ptr %8, align 8
  %1887 = extractvalue { ptr, i32 } %1885, 1
  store i32 %1887, ptr %9, align 4
  br label %1917

1888:                                             ; preds = %1869
  %1889 = landingpad { ptr, i32 }
          cleanup
  %1890 = extractvalue { ptr, i32 } %1889, 0
  store ptr %1890, ptr %8, align 8
  %1891 = extractvalue { ptr, i32 } %1889, 1
  store i32 %1891, ptr %9, align 4
  br label %1916

1892:                                             ; preds = %1872
  %1893 = landingpad { ptr, i32 }
          cleanup
  %1894 = extractvalue { ptr, i32 } %1893, 0
  store ptr %1894, ptr %8, align 8
  %1895 = extractvalue { ptr, i32 } %1893, 1
  store i32 %1895, ptr %9, align 4
  br label %1915

1896:                                             ; preds = %1873
  %1897 = landingpad { ptr, i32 }
          cleanup
  %1898 = extractvalue { ptr, i32 } %1897, 0
  store ptr %1898, ptr %8, align 8
  %1899 = extractvalue { ptr, i32 } %1897, 1
  store i32 %1899, ptr %9, align 4
  br label %1914

1900:                                             ; preds = %1876
  %1901 = landingpad { ptr, i32 }
          cleanup
  %1902 = extractvalue { ptr, i32 } %1901, 0
  store ptr %1902, ptr %8, align 8
  %1903 = extractvalue { ptr, i32 } %1901, 1
  store i32 %1903, ptr %9, align 4
  br label %1913

1904:                                             ; preds = %1877
  %1905 = landingpad { ptr, i32 }
          cleanup
  %1906 = extractvalue { ptr, i32 } %1905, 0
  store ptr %1906, ptr %8, align 8
  %1907 = extractvalue { ptr, i32 } %1905, 1
  store i32 %1907, ptr %9, align 4
  br label %1912

1908:                                             ; preds = %1878
  %1909 = landingpad { ptr, i32 }
          cleanup
  %1910 = extractvalue { ptr, i32 } %1909, 0
  store ptr %1910, ptr %8, align 8
  %1911 = extractvalue { ptr, i32 } %1909, 1
  store i32 %1911, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #9
  br label %1912

1912:                                             ; preds = %1908, %1904
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %94) #9
  br label %1913

1913:                                             ; preds = %1912, %1900
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #9
  br label %1914

1914:                                             ; preds = %1913, %1896
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %98) #9
  br label %1915

1915:                                             ; preds = %1914, %1892
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #9
  br label %1916

1916:                                             ; preds = %1915, %1888
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #9
  br label %1917

1917:                                             ; preds = %1916, %1884
  call void @llvm.lifetime.end.p0(i64 56, ptr %94) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %2256

1918:                                             ; preds = %1516
  call void @_ZN6Halide4ExprC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef nonnull align 8 dereferenceable(8) %91) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %101) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %101, ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1919 unwind label %1927

1919:                                             ; preds = %1918
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %99, ptr noundef nonnull align 8 dereferenceable(56) %101, ptr noundef %100)
          to label %1920 unwind label %1931

1920:                                             ; preds = %1919
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %99) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %101) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %101) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %102, i32 noundef 0)
          to label %1921 unwind label %1936

1921:                                             ; preds = %1920
  %1922 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6Halide4ExpraSEOS0_(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef nonnull align 8 dereferenceable(8) %102) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #9
  store i32 0, ptr %103, align 4, !tbaa !5
  br label %1923

1923:                                             ; preds = %1953, %1921
  %1924 = load i32, ptr %103, align 4, !tbaa !5
  %1925 = icmp slt i32 %1924, 100
  br i1 %1925, label %1940, label %1926

1926:                                             ; preds = %1923
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #9
  br label %1990

1927:                                             ; preds = %1918
  %1928 = landingpad { ptr, i32 }
          cleanup
  %1929 = extractvalue { ptr, i32 } %1928, 0
  store ptr %1929, ptr %8, align 8
  %1930 = extractvalue { ptr, i32 } %1928, 1
  store i32 %1930, ptr %9, align 4
  br label %1935

1931:                                             ; preds = %1919
  %1932 = landingpad { ptr, i32 }
          cleanup
  %1933 = extractvalue { ptr, i32 } %1932, 0
  store ptr %1933, ptr %8, align 8
  %1934 = extractvalue { ptr, i32 } %1932, 1
  store i32 %1934, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %101) #9
  br label %1935

1935:                                             ; preds = %1931, %1927
  call void @llvm.lifetime.end.p0(i64 56, ptr %101) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #9
  br label %2256

1936:                                             ; preds = %1920
  %1937 = landingpad { ptr, i32 }
          cleanup
  %1938 = extractvalue { ptr, i32 } %1937, 0
  store ptr %1938, ptr %8, align 8
  %1939 = extractvalue { ptr, i32 } %1937, 1
  store i32 %1939, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  br label %2256

1940:                                             ; preds = %1923
  call void @llvm.lifetime.start.p0(i64 56, ptr %105) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %107, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1941 unwind label %1956

1941:                                             ; preds = %1940
  %1942 = load i32, ptr %103, align 4, !tbaa !5
  %1943 = mul nsw i32 %1942, 10
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %106, ptr noundef %107, i32 noundef %1943)
          to label %1944 unwind label %1960

1944:                                             ; preds = %1941
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %109, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1945 unwind label %1964

1945:                                             ; preds = %1944
  %1946 = load i32, ptr %103, align 4, !tbaa !5
  %1947 = mul nsw i32 %1946, 10
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %108, ptr noundef %109, i32 noundef %1947)
          to label %1948 unwind label %1968

1948:                                             ; preds = %1945
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %105, ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef %106, ptr noundef nonnull align 8 dereferenceable(8) %108)
          to label %1949 unwind label %1972

1949:                                             ; preds = %1948
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %104, ptr noundef nonnull align 8 dereferenceable(56) %105)
          to label %1950 unwind label %1976

1950:                                             ; preds = %1949
  %1951 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef %104)
          to label %1952 unwind label %1980

1952:                                             ; preds = %1950
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %105) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %108) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %106) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %107) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %105) #9
  br label %1953

1953:                                             ; preds = %1952
  %1954 = load i32, ptr %103, align 4, !tbaa !5
  %1955 = add nsw i32 %1954, 1
  store i32 %1955, ptr %103, align 4, !tbaa !5
  br label %1923, !llvm.loop !13

1956:                                             ; preds = %1940
  %1957 = landingpad { ptr, i32 }
          cleanup
  %1958 = extractvalue { ptr, i32 } %1957, 0
  store ptr %1958, ptr %8, align 8
  %1959 = extractvalue { ptr, i32 } %1957, 1
  store i32 %1959, ptr %9, align 4
  br label %1989

1960:                                             ; preds = %1941
  %1961 = landingpad { ptr, i32 }
          cleanup
  %1962 = extractvalue { ptr, i32 } %1961, 0
  store ptr %1962, ptr %8, align 8
  %1963 = extractvalue { ptr, i32 } %1961, 1
  store i32 %1963, ptr %9, align 4
  br label %1988

1964:                                             ; preds = %1944
  %1965 = landingpad { ptr, i32 }
          cleanup
  %1966 = extractvalue { ptr, i32 } %1965, 0
  store ptr %1966, ptr %8, align 8
  %1967 = extractvalue { ptr, i32 } %1965, 1
  store i32 %1967, ptr %9, align 4
  br label %1987

1968:                                             ; preds = %1945
  %1969 = landingpad { ptr, i32 }
          cleanup
  %1970 = extractvalue { ptr, i32 } %1969, 0
  store ptr %1970, ptr %8, align 8
  %1971 = extractvalue { ptr, i32 } %1969, 1
  store i32 %1971, ptr %9, align 4
  br label %1986

1972:                                             ; preds = %1948
  %1973 = landingpad { ptr, i32 }
          cleanup
  %1974 = extractvalue { ptr, i32 } %1973, 0
  store ptr %1974, ptr %8, align 8
  %1975 = extractvalue { ptr, i32 } %1973, 1
  store i32 %1975, ptr %9, align 4
  br label %1985

1976:                                             ; preds = %1949
  %1977 = landingpad { ptr, i32 }
          cleanup
  %1978 = extractvalue { ptr, i32 } %1977, 0
  store ptr %1978, ptr %8, align 8
  %1979 = extractvalue { ptr, i32 } %1977, 1
  store i32 %1979, ptr %9, align 4
  br label %1984

1980:                                             ; preds = %1950
  %1981 = landingpad { ptr, i32 }
          cleanup
  %1982 = extractvalue { ptr, i32 } %1981, 0
  store ptr %1982, ptr %8, align 8
  %1983 = extractvalue { ptr, i32 } %1981, 1
  store i32 %1983, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #9
  br label %1984

1984:                                             ; preds = %1980, %1976
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %105) #9
  br label %1985

1985:                                             ; preds = %1984, %1972
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %108) #9
  br label %1986

1986:                                             ; preds = %1985, %1968
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #9
  br label %1987

1987:                                             ; preds = %1986, %1964
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %106) #9
  br label %1988

1988:                                             ; preds = %1987, %1960
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %107) #9
  br label %1989

1989:                                             ; preds = %1988, %1956
  call void @llvm.lifetime.end.p0(i64 56, ptr %105) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #9
  br label %2256

1990:                                             ; preds = %1926
  call void @_ZN6Halide4ExprC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %111, ptr noundef nonnull align 8 dereferenceable(8) %91) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %112) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %112, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1991 unwind label %2205

1991:                                             ; preds = %1990
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %110, ptr noundef nonnull align 8 dereferenceable(56) %112, ptr noundef %111)
          to label %1992 unwind label %2209

1992:                                             ; preds = %1991
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %110) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %112) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %112) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %1993 unwind label %2214

1993:                                             ; preds = %1992
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %114, i32 noundef 0)
          to label %1994 unwind label %2218

1994:                                             ; preds = %1993
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %115, i32 noundef 1000)
          to label %1995 unwind label %2222

1995:                                             ; preds = %1994
  %1996 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef %113, ptr noundef %114, ptr noundef %115)
          to label %1997 unwind label %2226

1997:                                             ; preds = %1995
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %1998 unwind label %2226

1998:                                             ; preds = %1997
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %117, i32 noundef 0)
          to label %1999 unwind label %2230

1999:                                             ; preds = %1998
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %118, i32 noundef 1000)
          to label %2000 unwind label %2234

2000:                                             ; preds = %1999
  %2001 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1996, ptr noundef %116, ptr noundef %117, ptr noundef %118)
          to label %2002 unwind label %2238

2002:                                             ; preds = %2000
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %118) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %117) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %114) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %121, ptr noundef nonnull align 8 dereferenceable(32) %63) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %120, ptr noundef %121)
          to label %2003 unwind label %2247

2003:                                             ; preds = %2002
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %119, ptr noundef nonnull align 8 dereferenceable(8) %120, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %2004 unwind label %2251

2004:                                             ; preds = %2003
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %119) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %120) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %122) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %123) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %124) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %124)
          to label %2005 unwind label %2262

2005:                                             ; preds = %2004
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull align 8 dereferenceable(32) %123)
          to label %2006 unwind label %2266

2006:                                             ; preds = %2005
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %124) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %125) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %126) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %127)
          to label %2007 unwind label %2271

2007:                                             ; preds = %2006
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %2008 unwind label %2275

2008:                                             ; preds = %2007
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %127) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %132, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2009 unwind label %2280

2009:                                             ; preds = %2008
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %133, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2010 unwind label %2284

2010:                                             ; preds = %2009
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %131, ptr noundef %132, ptr noundef %133)
          to label %2011 unwind label %2288

2011:                                             ; preds = %2010
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %135, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2012 unwind label %2292

2012:                                             ; preds = %2011
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %137, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2013 unwind label %2296

2013:                                             ; preds = %2012
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %136, i32 noundef 2, ptr noundef %137)
          to label %2014 unwind label %2300

2014:                                             ; preds = %2013
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %134, ptr noundef %135, ptr noundef %136)
          to label %2015 unwind label %2304

2015:                                             ; preds = %2014
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %130, ptr noundef %131, ptr noundef %134)
          to label %2016 unwind label %2308

2016:                                             ; preds = %2015
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %139, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2017 unwind label %2312

2017:                                             ; preds = %2016
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %141, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2018 unwind label %2316

2018:                                             ; preds = %2017
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %140, i32 noundef 3, ptr noundef %141)
          to label %2019 unwind label %2320

2019:                                             ; preds = %2018
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %138, ptr noundef %139, ptr noundef %140)
          to label %2020 unwind label %2324

2020:                                             ; preds = %2019
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %129, ptr noundef %130, ptr noundef %138)
          to label %2021 unwind label %2328

2021:                                             ; preds = %2020
  call void @llvm.lifetime.start.p0(i64 56, ptr %142) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %142, ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2022 unwind label %2332

2022:                                             ; preds = %2021
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %128, ptr noundef nonnull align 8 dereferenceable(56) %142, ptr noundef %129)
          to label %2023 unwind label %2336

2023:                                             ; preds = %2022
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %128) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %142) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %142) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %129) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %138) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %141) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %139) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %130) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %134) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %136) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %137) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %135) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %131) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %133) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %132) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %153) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %155, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2024 unwind label %2353

2024:                                             ; preds = %2023
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %154, ptr noundef %155, i32 noundef 9)
          to label %2025 unwind label %2357

2025:                                             ; preds = %2024
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %157, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2026 unwind label %2361

2026:                                             ; preds = %2025
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %156, ptr noundef %157, i32 noundef 9)
          to label %2027 unwind label %2365

2027:                                             ; preds = %2026
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %153, ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef %154, ptr noundef nonnull align 8 dereferenceable(8) %156)
          to label %2028 unwind label %2369

2028:                                             ; preds = %2027
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %152, ptr noundef nonnull align 8 dereferenceable(56) %153)
          to label %2029 unwind label %2373

2029:                                             ; preds = %2028
  call void @llvm.lifetime.start.p0(i64 56, ptr %159) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %160, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2030 unwind label %2377

2030:                                             ; preds = %2029
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %162, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2031 unwind label %2381

2031:                                             ; preds = %2030
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %161, ptr noundef %162, i32 noundef 9)
          to label %2032 unwind label %2385

2032:                                             ; preds = %2031
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %159, ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef %160, ptr noundef nonnull align 8 dereferenceable(8) %161)
          to label %2033 unwind label %2389

2033:                                             ; preds = %2032
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %158, ptr noundef nonnull align 8 dereferenceable(56) %159)
          to label %2034 unwind label %2393

2034:                                             ; preds = %2033
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %151, ptr noundef %152, ptr noundef %158)
          to label %2035 unwind label %2397

2035:                                             ; preds = %2034
  call void @llvm.lifetime.start.p0(i64 56, ptr %164) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %166, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2036 unwind label %2401

2036:                                             ; preds = %2035
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %165, ptr noundef %166, i32 noundef 9)
          to label %2037 unwind label %2405

2037:                                             ; preds = %2036
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %168, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2038 unwind label %2409

2038:                                             ; preds = %2037
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %167, ptr noundef %168, i32 noundef 9)
          to label %2039 unwind label %2413

2039:                                             ; preds = %2038
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %164, ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef %165, ptr noundef nonnull align 8 dereferenceable(8) %167)
          to label %2040 unwind label %2417

2040:                                             ; preds = %2039
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %163, ptr noundef nonnull align 8 dereferenceable(56) %164)
          to label %2041 unwind label %2421

2041:                                             ; preds = %2040
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %150, ptr noundef %151, ptr noundef %163)
          to label %2042 unwind label %2425

2042:                                             ; preds = %2041
  call void @llvm.lifetime.start.p0(i64 56, ptr %170) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %172, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2043 unwind label %2429

2043:                                             ; preds = %2042
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %171, ptr noundef %172, i32 noundef 9)
          to label %2044 unwind label %2433

2044:                                             ; preds = %2043
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %170, ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef %171, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2045 unwind label %2437

2045:                                             ; preds = %2044
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %169, ptr noundef nonnull align 8 dereferenceable(56) %170)
          to label %2046 unwind label %2441

2046:                                             ; preds = %2045
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %149, ptr noundef %150, ptr noundef %169)
          to label %2047 unwind label %2445

2047:                                             ; preds = %2046
  call void @llvm.lifetime.start.p0(i64 56, ptr %174) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %174, ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2048 unwind label %2449

2048:                                             ; preds = %2047
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %173, ptr noundef nonnull align 8 dereferenceable(56) %174)
          to label %2049 unwind label %2453

2049:                                             ; preds = %2048
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %148, ptr noundef %149, ptr noundef %173)
          to label %2050 unwind label %2457

2050:                                             ; preds = %2049
  call void @llvm.lifetime.start.p0(i64 56, ptr %176) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %178, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2051 unwind label %2461

2051:                                             ; preds = %2050
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %177, ptr noundef %178, i32 noundef 9)
          to label %2052 unwind label %2465

2052:                                             ; preds = %2051
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %176, ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef %177, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2053 unwind label %2469

2053:                                             ; preds = %2052
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %175, ptr noundef nonnull align 8 dereferenceable(56) %176)
          to label %2054 unwind label %2473

2054:                                             ; preds = %2053
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %147, ptr noundef %148, ptr noundef %175)
          to label %2055 unwind label %2477

2055:                                             ; preds = %2054
  call void @llvm.lifetime.start.p0(i64 56, ptr %180) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %182, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2056 unwind label %2481

2056:                                             ; preds = %2055
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %181, ptr noundef %182, i32 noundef 9)
          to label %2057 unwind label %2485

2057:                                             ; preds = %2056
  call void @llvm.lifetime.start.p0(i64 8, ptr %183) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %184, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2058 unwind label %2489

2058:                                             ; preds = %2057
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %183, ptr noundef %184, i32 noundef 9)
          to label %2059 unwind label %2493

2059:                                             ; preds = %2058
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %180, ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef %181, ptr noundef nonnull align 8 dereferenceable(8) %183)
          to label %2060 unwind label %2497

2060:                                             ; preds = %2059
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %179, ptr noundef nonnull align 8 dereferenceable(56) %180)
          to label %2061 unwind label %2501

2061:                                             ; preds = %2060
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %146, ptr noundef %147, ptr noundef %179)
          to label %2062 unwind label %2505

2062:                                             ; preds = %2061
  call void @llvm.lifetime.start.p0(i64 56, ptr %186) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %187, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2063 unwind label %2509

2063:                                             ; preds = %2062
  call void @llvm.lifetime.start.p0(i64 8, ptr %188) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %189, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2064 unwind label %2513

2064:                                             ; preds = %2063
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %188, ptr noundef %189, i32 noundef 9)
          to label %2065 unwind label %2517

2065:                                             ; preds = %2064
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %186, ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef %187, ptr noundef nonnull align 8 dereferenceable(8) %188)
          to label %2066 unwind label %2521

2066:                                             ; preds = %2065
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %185, ptr noundef nonnull align 8 dereferenceable(56) %186)
          to label %2067 unwind label %2525

2067:                                             ; preds = %2066
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %145, ptr noundef %146, ptr noundef %185)
          to label %2068 unwind label %2529

2068:                                             ; preds = %2067
  call void @llvm.lifetime.start.p0(i64 56, ptr %191) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %193, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2069 unwind label %2533

2069:                                             ; preds = %2068
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %192, ptr noundef %193, i32 noundef 9)
          to label %2070 unwind label %2537

2070:                                             ; preds = %2069
  call void @llvm.lifetime.start.p0(i64 8, ptr %194) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %195, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2071 unwind label %2541

2071:                                             ; preds = %2070
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %194, ptr noundef %195, i32 noundef 9)
          to label %2072 unwind label %2545

2072:                                             ; preds = %2071
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %191, ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef %192, ptr noundef nonnull align 8 dereferenceable(8) %194)
          to label %2073 unwind label %2549

2073:                                             ; preds = %2072
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %190, ptr noundef nonnull align 8 dereferenceable(56) %191)
          to label %2074 unwind label %2553

2074:                                             ; preds = %2073
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %144, ptr noundef %145, ptr noundef %190)
          to label %2075 unwind label %2557

2075:                                             ; preds = %2074
  call void @llvm.lifetime.start.p0(i64 56, ptr %196) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %196, ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2076 unwind label %2561

2076:                                             ; preds = %2075
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %143, ptr noundef nonnull align 8 dereferenceable(56) %196, ptr noundef %144)
          to label %2077 unwind label %2565

2077:                                             ; preds = %2076
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %143) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %196) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %196) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %144) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %190) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %191) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %194) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %195) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %192) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %193) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %191) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %145) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %185) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %186) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %188) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %189) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %187) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %186) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %146) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %179) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %180) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %183) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %184) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %183) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %181) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %182) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %180) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %147) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %175) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %176) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %177) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %178) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %176) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %148) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %173) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %174) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %174) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %149) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %169) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %170) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %171) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %172) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %170) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %150) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %163) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %164) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %167) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %168) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %165) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %166) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %164) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %151) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %158) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %159) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %161) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %162) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %160) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %159) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %152) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %153) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %156) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %157) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %154) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %155) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %153) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2078 unwind label %2280

2078:                                             ; preds = %2077
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %198, i32 noundef 0)
          to label %2079 unwind label %2622

2079:                                             ; preds = %2078
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %199, i32 noundef 2048)
          to label %2080 unwind label %2626

2080:                                             ; preds = %2079
  %2081 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef %197, ptr noundef %198, ptr noundef %199)
          to label %2082 unwind label %2630

2082:                                             ; preds = %2080
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %200, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2083 unwind label %2630

2083:                                             ; preds = %2082
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %201, i32 noundef 0)
          to label %2084 unwind label %2634

2084:                                             ; preds = %2083
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %202, i32 noundef 2048)
          to label %2085 unwind label %2638

2085:                                             ; preds = %2084
  %2086 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %2081, ptr noundef %200, ptr noundef %201, ptr noundef %202)
          to label %2087 unwind label %2642

2087:                                             ; preds = %2085
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %202) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %201) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %199) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %198) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %204) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef nonnull align 8 dereferenceable(32) %125) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %204, ptr noundef %205)
          to label %2088 unwind label %2651

2088:                                             ; preds = %2087
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %203, ptr noundef nonnull align 8 dereferenceable(8) %204, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %2089 unwind label %2655

2089:                                             ; preds = %2088
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %203) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %204) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %204) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %206) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %207) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %208) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %208) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %207, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %208)
          to label %2090 unwind label %2663

2090:                                             ; preds = %2089
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef nonnull align 8 dereferenceable(32) %207)
          to label %2091 unwind label %2667

2091:                                             ; preds = %2090
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %208) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %208) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %207) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %209) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %210) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %211)
          to label %2092 unwind label %2672

2092:                                             ; preds = %2091
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %209, ptr noundef nonnull align 8 dereferenceable(32) %210)
          to label %2093 unwind label %2676

2093:                                             ; preds = %2092
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %211) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %210) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %212) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %213) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %214) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %214) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %213, ptr noundef @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %214)
          to label %2094 unwind label %2681

2094:                                             ; preds = %2093
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef nonnull align 8 dereferenceable(32) %213)
          to label %2095 unwind label %2685

2095:                                             ; preds = %2094
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %214) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %214) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %213) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %219, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2096 unwind label %2690

2096:                                             ; preds = %2095
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %220, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2097 unwind label %2694

2097:                                             ; preds = %2096
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %218, ptr noundef %219, ptr noundef %220)
          to label %2098 unwind label %2698

2098:                                             ; preds = %2097
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %222, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2099 unwind label %2702

2099:                                             ; preds = %2098
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %224, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2100 unwind label %2706

2100:                                             ; preds = %2099
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %223, i32 noundef 2, ptr noundef %224)
          to label %2101 unwind label %2710

2101:                                             ; preds = %2100
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %221, ptr noundef %222, ptr noundef %223)
          to label %2102 unwind label %2714

2102:                                             ; preds = %2101
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %217, ptr noundef %218, ptr noundef %221)
          to label %2103 unwind label %2718

2103:                                             ; preds = %2102
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %226, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2104 unwind label %2722

2104:                                             ; preds = %2103
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %228, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2105 unwind label %2726

2105:                                             ; preds = %2104
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %227, i32 noundef 3, ptr noundef %228)
          to label %2106 unwind label %2730

2106:                                             ; preds = %2105
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %225, ptr noundef %226, ptr noundef %227)
          to label %2107 unwind label %2734

2107:                                             ; preds = %2106
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %216, ptr noundef %217, ptr noundef %225)
          to label %2108 unwind label %2738

2108:                                             ; preds = %2107
  call void @llvm.lifetime.start.p0(i64 56, ptr %229) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %229, ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2109 unwind label %2742

2109:                                             ; preds = %2108
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %215, ptr noundef nonnull align 8 dereferenceable(56) %229, ptr noundef %216)
          to label %2110 unwind label %2746

2110:                                             ; preds = %2109
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %215) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %229) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %229) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %216) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %225) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %227) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %228) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %226) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %217) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %221) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %223) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %224) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %222) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %218) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %220) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %219) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %240) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %242, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2111 unwind label %2763

2111:                                             ; preds = %2110
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %241, ptr noundef %242, i32 noundef 1)
          to label %2112 unwind label %2767

2112:                                             ; preds = %2111
  call void @llvm.lifetime.start.p0(i64 8, ptr %243) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %244, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2113 unwind label %2771

2113:                                             ; preds = %2112
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %243, ptr noundef %244, i32 noundef 1)
          to label %2114 unwind label %2775

2114:                                             ; preds = %2113
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %240, ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef %241, ptr noundef nonnull align 8 dereferenceable(8) %243)
          to label %2115 unwind label %2779

2115:                                             ; preds = %2114
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %239, ptr noundef nonnull align 8 dereferenceable(56) %240)
          to label %2116 unwind label %2783

2116:                                             ; preds = %2115
  call void @llvm.lifetime.start.p0(i64 56, ptr %246) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %247, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2117 unwind label %2787

2117:                                             ; preds = %2116
  call void @llvm.lifetime.start.p0(i64 8, ptr %248) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %249, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2118 unwind label %2791

2118:                                             ; preds = %2117
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %248, ptr noundef %249, i32 noundef 1)
          to label %2119 unwind label %2795

2119:                                             ; preds = %2118
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %246, ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef %247, ptr noundef nonnull align 8 dereferenceable(8) %248)
          to label %2120 unwind label %2799

2120:                                             ; preds = %2119
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %245, ptr noundef nonnull align 8 dereferenceable(56) %246)
          to label %2121 unwind label %2803

2121:                                             ; preds = %2120
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %238, ptr noundef %239, ptr noundef %245)
          to label %2122 unwind label %2807

2122:                                             ; preds = %2121
  call void @llvm.lifetime.start.p0(i64 56, ptr %251) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %253, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2123 unwind label %2811

2123:                                             ; preds = %2122
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %252, ptr noundef %253, i32 noundef 1)
          to label %2124 unwind label %2815

2124:                                             ; preds = %2123
  call void @llvm.lifetime.start.p0(i64 8, ptr %254) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %255, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2125 unwind label %2819

2125:                                             ; preds = %2124
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %254, ptr noundef %255, i32 noundef 1)
          to label %2126 unwind label %2823

2126:                                             ; preds = %2125
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %251, ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef %252, ptr noundef nonnull align 8 dereferenceable(8) %254)
          to label %2127 unwind label %2827

2127:                                             ; preds = %2126
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %250, ptr noundef nonnull align 8 dereferenceable(56) %251)
          to label %2128 unwind label %2831

2128:                                             ; preds = %2127
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %237, ptr noundef %238, ptr noundef %250)
          to label %2129 unwind label %2835

2129:                                             ; preds = %2128
  call void @llvm.lifetime.start.p0(i64 56, ptr %257) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %259, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2130 unwind label %2839

2130:                                             ; preds = %2129
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %258, ptr noundef %259, i32 noundef 1)
          to label %2131 unwind label %2843

2131:                                             ; preds = %2130
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %257, ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef %258, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2132 unwind label %2847

2132:                                             ; preds = %2131
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %256, ptr noundef nonnull align 8 dereferenceable(56) %257)
          to label %2133 unwind label %2851

2133:                                             ; preds = %2132
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %236, ptr noundef %237, ptr noundef %256)
          to label %2134 unwind label %2855

2134:                                             ; preds = %2133
  call void @llvm.lifetime.start.p0(i64 56, ptr %261) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %261, ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2135 unwind label %2859

2135:                                             ; preds = %2134
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %260, ptr noundef nonnull align 8 dereferenceable(56) %261)
          to label %2136 unwind label %2863

2136:                                             ; preds = %2135
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %235, ptr noundef %236, ptr noundef %260)
          to label %2137 unwind label %2867

2137:                                             ; preds = %2136
  call void @llvm.lifetime.start.p0(i64 56, ptr %263) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %265, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2138 unwind label %2871

2138:                                             ; preds = %2137
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %264, ptr noundef %265, i32 noundef 1)
          to label %2139 unwind label %2875

2139:                                             ; preds = %2138
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %263, ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef %264, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2140 unwind label %2879

2140:                                             ; preds = %2139
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %262, ptr noundef nonnull align 8 dereferenceable(56) %263)
          to label %2141 unwind label %2883

2141:                                             ; preds = %2140
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %234, ptr noundef %235, ptr noundef %262)
          to label %2142 unwind label %2887

2142:                                             ; preds = %2141
  call void @llvm.lifetime.start.p0(i64 56, ptr %267) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %269, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2143 unwind label %2891

2143:                                             ; preds = %2142
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %268, ptr noundef %269, i32 noundef 1)
          to label %2144 unwind label %2895

2144:                                             ; preds = %2143
  call void @llvm.lifetime.start.p0(i64 8, ptr %270) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %271, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2145 unwind label %2899

2145:                                             ; preds = %2144
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %270, ptr noundef %271, i32 noundef 1)
          to label %2146 unwind label %2903

2146:                                             ; preds = %2145
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %267, ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef %268, ptr noundef nonnull align 8 dereferenceable(8) %270)
          to label %2147 unwind label %2907

2147:                                             ; preds = %2146
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %266, ptr noundef nonnull align 8 dereferenceable(56) %267)
          to label %2148 unwind label %2911

2148:                                             ; preds = %2147
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %233, ptr noundef %234, ptr noundef %266)
          to label %2149 unwind label %2915

2149:                                             ; preds = %2148
  call void @llvm.lifetime.start.p0(i64 56, ptr %273) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %274, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2150 unwind label %2919

2150:                                             ; preds = %2149
  call void @llvm.lifetime.start.p0(i64 8, ptr %275) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %276, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2151 unwind label %2923

2151:                                             ; preds = %2150
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %275, ptr noundef %276, i32 noundef 1)
          to label %2152 unwind label %2927

2152:                                             ; preds = %2151
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %273, ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef %274, ptr noundef nonnull align 8 dereferenceable(8) %275)
          to label %2153 unwind label %2931

2153:                                             ; preds = %2152
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %272, ptr noundef nonnull align 8 dereferenceable(56) %273)
          to label %2154 unwind label %2935

2154:                                             ; preds = %2153
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %232, ptr noundef %233, ptr noundef %272)
          to label %2155 unwind label %2939

2155:                                             ; preds = %2154
  call void @llvm.lifetime.start.p0(i64 56, ptr %278) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %280, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2156 unwind label %2943

2156:                                             ; preds = %2155
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %279, ptr noundef %280, i32 noundef 1)
          to label %2157 unwind label %2947

2157:                                             ; preds = %2156
  call void @llvm.lifetime.start.p0(i64 8, ptr %281) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %282, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2158 unwind label %2951

2158:                                             ; preds = %2157
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %281, ptr noundef %282, i32 noundef 1)
          to label %2159 unwind label %2955

2159:                                             ; preds = %2158
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %278, ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef %279, ptr noundef nonnull align 8 dereferenceable(8) %281)
          to label %2160 unwind label %2959

2160:                                             ; preds = %2159
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %277, ptr noundef nonnull align 8 dereferenceable(56) %278)
          to label %2161 unwind label %2963

2161:                                             ; preds = %2160
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %231, ptr noundef %232, ptr noundef %277)
          to label %2162 unwind label %2967

2162:                                             ; preds = %2161
  call void @llvm.lifetime.start.p0(i64 56, ptr %283) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %283, ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2163 unwind label %2971

2163:                                             ; preds = %2162
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %230, ptr noundef nonnull align 8 dereferenceable(56) %283, ptr noundef %231)
          to label %2164 unwind label %2975

2164:                                             ; preds = %2163
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %230) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %283) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %283) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %231) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %277) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %278) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %281) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %282) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %281) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %279) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %280) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %278) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %232) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %272) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %273) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %275) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %276) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %275) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %274) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %273) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %233) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %266) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %267) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %270) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %271) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %270) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %268) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %269) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %267) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %234) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %262) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %263) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %264) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %265) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %263) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %235) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %260) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %261) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %261) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %236) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %256) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %257) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %258) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %259) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %257) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %237) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %250) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %251) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %254) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %255) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %254) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %252) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %253) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %251) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %238) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %245) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %246) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %248) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %249) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %248) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %247) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %246) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %239) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %240) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %243) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %244) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %243) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %241) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %242) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %240) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2165 unwind label %2690

2165:                                             ; preds = %2164
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %285, i32 noundef 0)
          to label %2166 unwind label %3032

2166:                                             ; preds = %2165
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %286, i32 noundef 2048)
          to label %2167 unwind label %3036

2167:                                             ; preds = %2166
  %2168 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef %284, ptr noundef %285, ptr noundef %286)
          to label %2169 unwind label %3040

2169:                                             ; preds = %2167
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %287, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2170 unwind label %3040

2170:                                             ; preds = %2169
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %288, i32 noundef 0)
          to label %2171 unwind label %3044

2171:                                             ; preds = %2170
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %289, i32 noundef 2048)
          to label %2172 unwind label %3048

2172:                                             ; preds = %2171
  %2173 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %2168, ptr noundef %287, ptr noundef %288, ptr noundef %289)
          to label %2174 unwind label %3052

2174:                                             ; preds = %2172
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %289) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %288) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %287) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %286) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %285) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %291) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %292, ptr noundef nonnull align 8 dereferenceable(32) %212) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %291, ptr noundef %292)
          to label %2175 unwind label %3061

2175:                                             ; preds = %2174
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %290, ptr noundef nonnull align 8 dereferenceable(8) %291, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %2176 unwind label %3065

2176:                                             ; preds = %2175
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %290) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %291) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %212) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %209) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %293) #9
  store i32 8, ptr %293, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 256, ptr %294) #9
  %2177 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %294, i32 0, i32 0
  %2178 = getelementptr inbounds %"class.Halide::Func", ptr %2177, i64 8
  br label %2179

2179:                                             ; preds = %2181, %2176
  %2180 = phi ptr [ %2177, %2176 ], [ %2182, %2181 ]
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %2180)
          to label %2181 unwind label %3074

2181:                                             ; preds = %2179
  %2182 = getelementptr inbounds %"class.Halide::Func", ptr %2180, i64 1
  %2183 = icmp eq ptr %2182, %2178
  br i1 %2183, label %2184, label %2179

2184:                                             ; preds = %2181
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %299, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2185 unwind label %3084

2185:                                             ; preds = %2184
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %300, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2186 unwind label %3088

2186:                                             ; preds = %2185
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %298, ptr noundef %299, ptr noundef %300)
          to label %2187 unwind label %3092

2187:                                             ; preds = %2186
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %302, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2188 unwind label %3096

2188:                                             ; preds = %2187
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %304, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2189 unwind label %3100

2189:                                             ; preds = %2188
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %303, i32 noundef 2, ptr noundef %304)
          to label %2190 unwind label %3104

2190:                                             ; preds = %2189
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %301, ptr noundef %302, ptr noundef %303)
          to label %2191 unwind label %3108

2191:                                             ; preds = %2190
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %297, ptr noundef %298, ptr noundef %301)
          to label %2192 unwind label %3112

2192:                                             ; preds = %2191
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %306, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %2193 unwind label %3116

2193:                                             ; preds = %2192
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %308, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2194 unwind label %3120

2194:                                             ; preds = %2193
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %307, i32 noundef 3, ptr noundef %308)
          to label %2195 unwind label %3124

2195:                                             ; preds = %2194
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %305, ptr noundef %306, ptr noundef %307)
          to label %2196 unwind label %3128

2196:                                             ; preds = %2195
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %296, ptr noundef %297, ptr noundef %305)
          to label %2197 unwind label %3132

2197:                                             ; preds = %2196
  call void @llvm.lifetime.start.p0(i64 56, ptr %309) #9
  %2198 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %294, i64 0, i64 0
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %309, ptr noundef nonnull align 8 dereferenceable(32) %2198, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %2199 unwind label %3136

2199:                                             ; preds = %2197
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %295, ptr noundef nonnull align 8 dereferenceable(56) %309, ptr noundef %296)
          to label %2200 unwind label %3140

2200:                                             ; preds = %2199
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %295) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %309) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %309) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %296) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %305) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %307) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %308) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %306) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %297) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %301) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %303) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %304) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %302) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %298) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %300) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %299) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %310) #9
  store i32 1, ptr %310, align 4, !tbaa !5
  br label %2201

2201:                                             ; preds = %3234, %2200
  %2202 = load i32, ptr %310, align 4, !tbaa !5
  %2203 = icmp slt i32 %2202, 8
  br i1 %2203, label %3157, label %2204

2204:                                             ; preds = %2201
  store i32 8, ptr %311, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %310) #9
  br label %3248

2205:                                             ; preds = %1990
  %2206 = landingpad { ptr, i32 }
          cleanup
  %2207 = extractvalue { ptr, i32 } %2206, 0
  store ptr %2207, ptr %8, align 8
  %2208 = extractvalue { ptr, i32 } %2206, 1
  store i32 %2208, ptr %9, align 4
  br label %2213

2209:                                             ; preds = %1991
  %2210 = landingpad { ptr, i32 }
          cleanup
  %2211 = extractvalue { ptr, i32 } %2210, 0
  store ptr %2211, ptr %8, align 8
  %2212 = extractvalue { ptr, i32 } %2210, 1
  store i32 %2212, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %112) #9
  br label %2213

2213:                                             ; preds = %2209, %2205
  call void @llvm.lifetime.end.p0(i64 56, ptr %112) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #9
  br label %2256

2214:                                             ; preds = %1992
  %2215 = landingpad { ptr, i32 }
          cleanup
  %2216 = extractvalue { ptr, i32 } %2215, 0
  store ptr %2216, ptr %8, align 8
  %2217 = extractvalue { ptr, i32 } %2215, 1
  store i32 %2217, ptr %9, align 4
  br label %2256

2218:                                             ; preds = %1993
  %2219 = landingpad { ptr, i32 }
          cleanup
  %2220 = extractvalue { ptr, i32 } %2219, 0
  store ptr %2220, ptr %8, align 8
  %2221 = extractvalue { ptr, i32 } %2219, 1
  store i32 %2221, ptr %9, align 4
  br label %2246

2222:                                             ; preds = %1994
  %2223 = landingpad { ptr, i32 }
          cleanup
  %2224 = extractvalue { ptr, i32 } %2223, 0
  store ptr %2224, ptr %8, align 8
  %2225 = extractvalue { ptr, i32 } %2223, 1
  store i32 %2225, ptr %9, align 4
  br label %2245

2226:                                             ; preds = %1997, %1995
  %2227 = landingpad { ptr, i32 }
          cleanup
  %2228 = extractvalue { ptr, i32 } %2227, 0
  store ptr %2228, ptr %8, align 8
  %2229 = extractvalue { ptr, i32 } %2227, 1
  store i32 %2229, ptr %9, align 4
  br label %2244

2230:                                             ; preds = %1998
  %2231 = landingpad { ptr, i32 }
          cleanup
  %2232 = extractvalue { ptr, i32 } %2231, 0
  store ptr %2232, ptr %8, align 8
  %2233 = extractvalue { ptr, i32 } %2231, 1
  store i32 %2233, ptr %9, align 4
  br label %2243

2234:                                             ; preds = %1999
  %2235 = landingpad { ptr, i32 }
          cleanup
  %2236 = extractvalue { ptr, i32 } %2235, 0
  store ptr %2236, ptr %8, align 8
  %2237 = extractvalue { ptr, i32 } %2235, 1
  store i32 %2237, ptr %9, align 4
  br label %2242

2238:                                             ; preds = %2000
  %2239 = landingpad { ptr, i32 }
          cleanup
  %2240 = extractvalue { ptr, i32 } %2239, 0
  store ptr %2240, ptr %8, align 8
  %2241 = extractvalue { ptr, i32 } %2239, 1
  store i32 %2241, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %118) #9
  br label %2242

2242:                                             ; preds = %2238, %2234
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %117) #9
  br label %2243

2243:                                             ; preds = %2242, %2230
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  br label %2244

2244:                                             ; preds = %2243, %2226
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %115) #9
  br label %2245

2245:                                             ; preds = %2244, %2222
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %114) #9
  br label %2246

2246:                                             ; preds = %2245, %2218
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #9
  br label %2256

2247:                                             ; preds = %2002
  %2248 = landingpad { ptr, i32 }
          cleanup
  %2249 = extractvalue { ptr, i32 } %2248, 0
  store ptr %2249, ptr %8, align 8
  %2250 = extractvalue { ptr, i32 } %2248, 1
  store i32 %2250, ptr %9, align 4
  br label %2255

2251:                                             ; preds = %2003
  %2252 = landingpad { ptr, i32 }
          cleanup
  %2253 = extractvalue { ptr, i32 } %2252, 0
  store ptr %2253, ptr %8, align 8
  %2254 = extractvalue { ptr, i32 } %2252, 1
  store i32 %2254, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %120) #9
  br label %2255

2255:                                             ; preds = %2251, %2247
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #9
  br label %2256

2256:                                             ; preds = %2255, %2246, %2214, %2213, %1989, %1936, %1935, %1917
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #9
  br label %2257

2257:                                             ; preds = %2256, %1864
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #9
  br label %2258

2258:                                             ; preds = %2257, %1863, %1741
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #9
  br label %2259

2259:                                             ; preds = %2258, %1740
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #9
  br label %2260

2260:                                             ; preds = %2259, %1731
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  br label %2261

2261:                                             ; preds = %2260, %1722
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #9
  br label %9780

2262:                                             ; preds = %2004
  %2263 = landingpad { ptr, i32 }
          cleanup
  %2264 = extractvalue { ptr, i32 } %2263, 0
  store ptr %2264, ptr %8, align 8
  %2265 = extractvalue { ptr, i32 } %2263, 1
  store i32 %2265, ptr %9, align 4
  br label %2270

2266:                                             ; preds = %2005
  %2267 = landingpad { ptr, i32 }
          cleanup
  %2268 = extractvalue { ptr, i32 } %2267, 0
  store ptr %2268, ptr %8, align 8
  %2269 = extractvalue { ptr, i32 } %2267, 1
  store i32 %2269, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #9
  br label %2270

2270:                                             ; preds = %2266, %2262
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %124) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #9
  br label %2662

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

2275:                                             ; preds = %2007
  %2276 = landingpad { ptr, i32 }
          cleanup
  %2277 = extractvalue { ptr, i32 } %2276, 0
  store ptr %2277, ptr %8, align 8
  %2278 = extractvalue { ptr, i32 } %2276, 1
  store i32 %2278, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #9
  br label %2279

2279:                                             ; preds = %2275, %2271
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %127) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #9
  br label %2661

2280:                                             ; preds = %2077, %2008
  %2281 = landingpad { ptr, i32 }
          cleanup
  %2282 = extractvalue { ptr, i32 } %2281, 0
  store ptr %2282, ptr %8, align 8
  %2283 = extractvalue { ptr, i32 } %2281, 1
  store i32 %2283, ptr %9, align 4
  br label %2660

2284:                                             ; preds = %2009
  %2285 = landingpad { ptr, i32 }
          cleanup
  %2286 = extractvalue { ptr, i32 } %2285, 0
  store ptr %2286, ptr %8, align 8
  %2287 = extractvalue { ptr, i32 } %2285, 1
  store i32 %2287, ptr %9, align 4
  br label %2352

2288:                                             ; preds = %2010
  %2289 = landingpad { ptr, i32 }
          cleanup
  %2290 = extractvalue { ptr, i32 } %2289, 0
  store ptr %2290, ptr %8, align 8
  %2291 = extractvalue { ptr, i32 } %2289, 1
  store i32 %2291, ptr %9, align 4
  br label %2351

2292:                                             ; preds = %2011
  %2293 = landingpad { ptr, i32 }
          cleanup
  %2294 = extractvalue { ptr, i32 } %2293, 0
  store ptr %2294, ptr %8, align 8
  %2295 = extractvalue { ptr, i32 } %2293, 1
  store i32 %2295, ptr %9, align 4
  br label %2350

2296:                                             ; preds = %2012
  %2297 = landingpad { ptr, i32 }
          cleanup
  %2298 = extractvalue { ptr, i32 } %2297, 0
  store ptr %2298, ptr %8, align 8
  %2299 = extractvalue { ptr, i32 } %2297, 1
  store i32 %2299, ptr %9, align 4
  br label %2349

2300:                                             ; preds = %2013
  %2301 = landingpad { ptr, i32 }
          cleanup
  %2302 = extractvalue { ptr, i32 } %2301, 0
  store ptr %2302, ptr %8, align 8
  %2303 = extractvalue { ptr, i32 } %2301, 1
  store i32 %2303, ptr %9, align 4
  br label %2348

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

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

2312:                                             ; preds = %2016
  %2313 = landingpad { ptr, i32 }
          cleanup
  %2314 = extractvalue { ptr, i32 } %2313, 0
  store ptr %2314, ptr %8, align 8
  %2315 = extractvalue { ptr, i32 } %2313, 1
  store i32 %2315, ptr %9, align 4
  br label %2345

2316:                                             ; preds = %2017
  %2317 = landingpad { ptr, i32 }
          cleanup
  %2318 = extractvalue { ptr, i32 } %2317, 0
  store ptr %2318, ptr %8, align 8
  %2319 = extractvalue { ptr, i32 } %2317, 1
  store i32 %2319, ptr %9, align 4
  br label %2344

2320:                                             ; preds = %2018
  %2321 = landingpad { ptr, i32 }
          cleanup
  %2322 = extractvalue { ptr, i32 } %2321, 0
  store ptr %2322, ptr %8, align 8
  %2323 = extractvalue { ptr, i32 } %2321, 1
  store i32 %2323, ptr %9, align 4
  br label %2343

2324:                                             ; preds = %2019
  %2325 = landingpad { ptr, i32 }
          cleanup
  %2326 = extractvalue { ptr, i32 } %2325, 0
  store ptr %2326, ptr %8, align 8
  %2327 = extractvalue { ptr, i32 } %2325, 1
  store i32 %2327, ptr %9, align 4
  br label %2342

2328:                                             ; preds = %2020
  %2329 = landingpad { ptr, i32 }
          cleanup
  %2330 = extractvalue { ptr, i32 } %2329, 0
  store ptr %2330, ptr %8, align 8
  %2331 = extractvalue { ptr, i32 } %2329, 1
  store i32 %2331, ptr %9, align 4
  br label %2341

2332:                                             ; preds = %2021
  %2333 = landingpad { ptr, i32 }
          cleanup
  %2334 = extractvalue { ptr, i32 } %2333, 0
  store ptr %2334, ptr %8, align 8
  %2335 = extractvalue { ptr, i32 } %2333, 1
  store i32 %2335, ptr %9, align 4
  br label %2340

2336:                                             ; preds = %2022
  %2337 = landingpad { ptr, i32 }
          cleanup
  %2338 = extractvalue { ptr, i32 } %2337, 0
  store ptr %2338, ptr %8, align 8
  %2339 = extractvalue { ptr, i32 } %2337, 1
  store i32 %2339, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %142) #9
  br label %2340

2340:                                             ; preds = %2336, %2332
  call void @llvm.lifetime.end.p0(i64 56, ptr %142) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %129) #9
  br label %2341

2341:                                             ; preds = %2340, %2328
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %138) #9
  br label %2342

2342:                                             ; preds = %2341, %2324
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #9
  br label %2343

2343:                                             ; preds = %2342, %2320
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %141) #9
  br label %2344

2344:                                             ; preds = %2343, %2316
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %139) #9
  br label %2345

2345:                                             ; preds = %2344, %2312
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %130) #9
  br label %2346

2346:                                             ; preds = %2345, %2308
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %134) #9
  br label %2347

2347:                                             ; preds = %2346, %2304
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %136) #9
  br label %2348

2348:                                             ; preds = %2347, %2300
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %137) #9
  br label %2349

2349:                                             ; preds = %2348, %2296
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %135) #9
  br label %2350

2350:                                             ; preds = %2349, %2292
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %131) #9
  br label %2351

2351:                                             ; preds = %2350, %2288
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %133) #9
  br label %2352

2352:                                             ; preds = %2351, %2284
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %132) #9
  br label %2660

2353:                                             ; preds = %2023
  %2354 = landingpad { ptr, i32 }
          cleanup
  %2355 = extractvalue { ptr, i32 } %2354, 0
  store ptr %2355, ptr %8, align 8
  %2356 = extractvalue { ptr, i32 } %2354, 1
  store i32 %2356, ptr %9, align 4
  br label %2621

2357:                                             ; preds = %2024
  %2358 = landingpad { ptr, i32 }
          cleanup
  %2359 = extractvalue { ptr, i32 } %2358, 0
  store ptr %2359, ptr %8, align 8
  %2360 = extractvalue { ptr, i32 } %2358, 1
  store i32 %2360, ptr %9, align 4
  br label %2620

2361:                                             ; preds = %2025
  %2362 = landingpad { ptr, i32 }
          cleanup
  %2363 = extractvalue { ptr, i32 } %2362, 0
  store ptr %2363, ptr %8, align 8
  %2364 = extractvalue { ptr, i32 } %2362, 1
  store i32 %2364, ptr %9, align 4
  br label %2619

2365:                                             ; preds = %2026
  %2366 = landingpad { ptr, i32 }
          cleanup
  %2367 = extractvalue { ptr, i32 } %2366, 0
  store ptr %2367, ptr %8, align 8
  %2368 = extractvalue { ptr, i32 } %2366, 1
  store i32 %2368, ptr %9, align 4
  br label %2618

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

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

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

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

2385:                                             ; preds = %2031
  %2386 = landingpad { ptr, i32 }
          cleanup
  %2387 = extractvalue { ptr, i32 } %2386, 0
  store ptr %2387, ptr %8, align 8
  %2388 = extractvalue { ptr, i32 } %2386, 1
  store i32 %2388, ptr %9, align 4
  br label %2613

2389:                                             ; preds = %2032
  %2390 = landingpad { ptr, i32 }
          cleanup
  %2391 = extractvalue { ptr, i32 } %2390, 0
  store ptr %2391, ptr %8, align 8
  %2392 = extractvalue { ptr, i32 } %2390, 1
  store i32 %2392, ptr %9, align 4
  br label %2612

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

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

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

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

2409:                                             ; preds = %2037
  %2410 = landingpad { ptr, i32 }
          cleanup
  %2411 = extractvalue { ptr, i32 } %2410, 0
  store ptr %2411, ptr %8, align 8
  %2412 = extractvalue { ptr, i32 } %2410, 1
  store i32 %2412, ptr %9, align 4
  br label %2607

2413:                                             ; preds = %2038
  %2414 = landingpad { ptr, i32 }
          cleanup
  %2415 = extractvalue { ptr, i32 } %2414, 0
  store ptr %2415, ptr %8, align 8
  %2416 = extractvalue { ptr, i32 } %2414, 1
  store i32 %2416, ptr %9, align 4
  br label %2606

2417:                                             ; preds = %2039
  %2418 = landingpad { ptr, i32 }
          cleanup
  %2419 = extractvalue { ptr, i32 } %2418, 0
  store ptr %2419, ptr %8, align 8
  %2420 = extractvalue { ptr, i32 } %2418, 1
  store i32 %2420, ptr %9, align 4
  br label %2605

2421:                                             ; preds = %2040
  %2422 = landingpad { ptr, i32 }
          cleanup
  %2423 = extractvalue { ptr, i32 } %2422, 0
  store ptr %2423, ptr %8, align 8
  %2424 = extractvalue { ptr, i32 } %2422, 1
  store i32 %2424, ptr %9, align 4
  br label %2604

2425:                                             ; preds = %2041
  %2426 = landingpad { ptr, i32 }
          cleanup
  %2427 = extractvalue { ptr, i32 } %2426, 0
  store ptr %2427, ptr %8, align 8
  %2428 = extractvalue { ptr, i32 } %2426, 1
  store i32 %2428, ptr %9, align 4
  br label %2603

2429:                                             ; preds = %2042
  %2430 = landingpad { ptr, i32 }
          cleanup
  %2431 = extractvalue { ptr, i32 } %2430, 0
  store ptr %2431, ptr %8, align 8
  %2432 = extractvalue { ptr, i32 } %2430, 1
  store i32 %2432, ptr %9, align 4
  br label %2602

2433:                                             ; preds = %2043
  %2434 = landingpad { ptr, i32 }
          cleanup
  %2435 = extractvalue { ptr, i32 } %2434, 0
  store ptr %2435, ptr %8, align 8
  %2436 = extractvalue { ptr, i32 } %2434, 1
  store i32 %2436, ptr %9, align 4
  br label %2601

2437:                                             ; preds = %2044
  %2438 = landingpad { ptr, i32 }
          cleanup
  %2439 = extractvalue { ptr, i32 } %2438, 0
  store ptr %2439, ptr %8, align 8
  %2440 = extractvalue { ptr, i32 } %2438, 1
  store i32 %2440, ptr %9, align 4
  br label %2600

2441:                                             ; preds = %2045
  %2442 = landingpad { ptr, i32 }
          cleanup
  %2443 = extractvalue { ptr, i32 } %2442, 0
  store ptr %2443, ptr %8, align 8
  %2444 = extractvalue { ptr, i32 } %2442, 1
  store i32 %2444, ptr %9, align 4
  br label %2599

2445:                                             ; preds = %2046
  %2446 = landingpad { ptr, i32 }
          cleanup
  %2447 = extractvalue { ptr, i32 } %2446, 0
  store ptr %2447, ptr %8, align 8
  %2448 = extractvalue { ptr, i32 } %2446, 1
  store i32 %2448, ptr %9, align 4
  br label %2598

2449:                                             ; preds = %2047
  %2450 = landingpad { ptr, i32 }
          cleanup
  %2451 = extractvalue { ptr, i32 } %2450, 0
  store ptr %2451, ptr %8, align 8
  %2452 = extractvalue { ptr, i32 } %2450, 1
  store i32 %2452, ptr %9, align 4
  br label %2597

2453:                                             ; preds = %2048
  %2454 = landingpad { ptr, i32 }
          cleanup
  %2455 = extractvalue { ptr, i32 } %2454, 0
  store ptr %2455, ptr %8, align 8
  %2456 = extractvalue { ptr, i32 } %2454, 1
  store i32 %2456, ptr %9, align 4
  br label %2596

2457:                                             ; preds = %2049
  %2458 = landingpad { ptr, i32 }
          cleanup
  %2459 = extractvalue { ptr, i32 } %2458, 0
  store ptr %2459, ptr %8, align 8
  %2460 = extractvalue { ptr, i32 } %2458, 1
  store i32 %2460, ptr %9, align 4
  br label %2595

2461:                                             ; preds = %2050
  %2462 = landingpad { ptr, i32 }
          cleanup
  %2463 = extractvalue { ptr, i32 } %2462, 0
  store ptr %2463, ptr %8, align 8
  %2464 = extractvalue { ptr, i32 } %2462, 1
  store i32 %2464, ptr %9, align 4
  br label %2594

2465:                                             ; preds = %2051
  %2466 = landingpad { ptr, i32 }
          cleanup
  %2467 = extractvalue { ptr, i32 } %2466, 0
  store ptr %2467, ptr %8, align 8
  %2468 = extractvalue { ptr, i32 } %2466, 1
  store i32 %2468, ptr %9, align 4
  br label %2593

2469:                                             ; preds = %2052
  %2470 = landingpad { ptr, i32 }
          cleanup
  %2471 = extractvalue { ptr, i32 } %2470, 0
  store ptr %2471, ptr %8, align 8
  %2472 = extractvalue { ptr, i32 } %2470, 1
  store i32 %2472, ptr %9, align 4
  br label %2592

2473:                                             ; preds = %2053
  %2474 = landingpad { ptr, i32 }
          cleanup
  %2475 = extractvalue { ptr, i32 } %2474, 0
  store ptr %2475, ptr %8, align 8
  %2476 = extractvalue { ptr, i32 } %2474, 1
  store i32 %2476, ptr %9, align 4
  br label %2591

2477:                                             ; preds = %2054
  %2478 = landingpad { ptr, i32 }
          cleanup
  %2479 = extractvalue { ptr, i32 } %2478, 0
  store ptr %2479, ptr %8, align 8
  %2480 = extractvalue { ptr, i32 } %2478, 1
  store i32 %2480, ptr %9, align 4
  br label %2590

2481:                                             ; preds = %2055
  %2482 = landingpad { ptr, i32 }
          cleanup
  %2483 = extractvalue { ptr, i32 } %2482, 0
  store ptr %2483, ptr %8, align 8
  %2484 = extractvalue { ptr, i32 } %2482, 1
  store i32 %2484, ptr %9, align 4
  br label %2589

2485:                                             ; preds = %2056
  %2486 = landingpad { ptr, i32 }
          cleanup
  %2487 = extractvalue { ptr, i32 } %2486, 0
  store ptr %2487, ptr %8, align 8
  %2488 = extractvalue { ptr, i32 } %2486, 1
  store i32 %2488, ptr %9, align 4
  br label %2588

2489:                                             ; preds = %2057
  %2490 = landingpad { ptr, i32 }
          cleanup
  %2491 = extractvalue { ptr, i32 } %2490, 0
  store ptr %2491, ptr %8, align 8
  %2492 = extractvalue { ptr, i32 } %2490, 1
  store i32 %2492, ptr %9, align 4
  br label %2587

2493:                                             ; preds = %2058
  %2494 = landingpad { ptr, i32 }
          cleanup
  %2495 = extractvalue { ptr, i32 } %2494, 0
  store ptr %2495, ptr %8, align 8
  %2496 = extractvalue { ptr, i32 } %2494, 1
  store i32 %2496, ptr %9, align 4
  br label %2586

2497:                                             ; preds = %2059
  %2498 = landingpad { ptr, i32 }
          cleanup
  %2499 = extractvalue { ptr, i32 } %2498, 0
  store ptr %2499, ptr %8, align 8
  %2500 = extractvalue { ptr, i32 } %2498, 1
  store i32 %2500, ptr %9, align 4
  br label %2585

2501:                                             ; preds = %2060
  %2502 = landingpad { ptr, i32 }
          cleanup
  %2503 = extractvalue { ptr, i32 } %2502, 0
  store ptr %2503, ptr %8, align 8
  %2504 = extractvalue { ptr, i32 } %2502, 1
  store i32 %2504, ptr %9, align 4
  br label %2584

2505:                                             ; preds = %2061
  %2506 = landingpad { ptr, i32 }
          cleanup
  %2507 = extractvalue { ptr, i32 } %2506, 0
  store ptr %2507, ptr %8, align 8
  %2508 = extractvalue { ptr, i32 } %2506, 1
  store i32 %2508, ptr %9, align 4
  br label %2583

2509:                                             ; preds = %2062
  %2510 = landingpad { ptr, i32 }
          cleanup
  %2511 = extractvalue { ptr, i32 } %2510, 0
  store ptr %2511, ptr %8, align 8
  %2512 = extractvalue { ptr, i32 } %2510, 1
  store i32 %2512, ptr %9, align 4
  br label %2582

2513:                                             ; preds = %2063
  %2514 = landingpad { ptr, i32 }
          cleanup
  %2515 = extractvalue { ptr, i32 } %2514, 0
  store ptr %2515, ptr %8, align 8
  %2516 = extractvalue { ptr, i32 } %2514, 1
  store i32 %2516, ptr %9, align 4
  br label %2581

2517:                                             ; preds = %2064
  %2518 = landingpad { ptr, i32 }
          cleanup
  %2519 = extractvalue { ptr, i32 } %2518, 0
  store ptr %2519, ptr %8, align 8
  %2520 = extractvalue { ptr, i32 } %2518, 1
  store i32 %2520, ptr %9, align 4
  br label %2580

2521:                                             ; preds = %2065
  %2522 = landingpad { ptr, i32 }
          cleanup
  %2523 = extractvalue { ptr, i32 } %2522, 0
  store ptr %2523, ptr %8, align 8
  %2524 = extractvalue { ptr, i32 } %2522, 1
  store i32 %2524, ptr %9, align 4
  br label %2579

2525:                                             ; preds = %2066
  %2526 = landingpad { ptr, i32 }
          cleanup
  %2527 = extractvalue { ptr, i32 } %2526, 0
  store ptr %2527, ptr %8, align 8
  %2528 = extractvalue { ptr, i32 } %2526, 1
  store i32 %2528, ptr %9, align 4
  br label %2578

2529:                                             ; preds = %2067
  %2530 = landingpad { ptr, i32 }
          cleanup
  %2531 = extractvalue { ptr, i32 } %2530, 0
  store ptr %2531, ptr %8, align 8
  %2532 = extractvalue { ptr, i32 } %2530, 1
  store i32 %2532, ptr %9, align 4
  br label %2577

2533:                                             ; preds = %2068
  %2534 = landingpad { ptr, i32 }
          cleanup
  %2535 = extractvalue { ptr, i32 } %2534, 0
  store ptr %2535, ptr %8, align 8
  %2536 = extractvalue { ptr, i32 } %2534, 1
  store i32 %2536, ptr %9, align 4
  br label %2576

2537:                                             ; preds = %2069
  %2538 = landingpad { ptr, i32 }
          cleanup
  %2539 = extractvalue { ptr, i32 } %2538, 0
  store ptr %2539, ptr %8, align 8
  %2540 = extractvalue { ptr, i32 } %2538, 1
  store i32 %2540, ptr %9, align 4
  br label %2575

2541:                                             ; preds = %2070
  %2542 = landingpad { ptr, i32 }
          cleanup
  %2543 = extractvalue { ptr, i32 } %2542, 0
  store ptr %2543, ptr %8, align 8
  %2544 = extractvalue { ptr, i32 } %2542, 1
  store i32 %2544, ptr %9, align 4
  br label %2574

2545:                                             ; preds = %2071
  %2546 = landingpad { ptr, i32 }
          cleanup
  %2547 = extractvalue { ptr, i32 } %2546, 0
  store ptr %2547, ptr %8, align 8
  %2548 = extractvalue { ptr, i32 } %2546, 1
  store i32 %2548, ptr %9, align 4
  br label %2573

2549:                                             ; preds = %2072
  %2550 = landingpad { ptr, i32 }
          cleanup
  %2551 = extractvalue { ptr, i32 } %2550, 0
  store ptr %2551, ptr %8, align 8
  %2552 = extractvalue { ptr, i32 } %2550, 1
  store i32 %2552, ptr %9, align 4
  br label %2572

2553:                                             ; preds = %2073
  %2554 = landingpad { ptr, i32 }
          cleanup
  %2555 = extractvalue { ptr, i32 } %2554, 0
  store ptr %2555, ptr %8, align 8
  %2556 = extractvalue { ptr, i32 } %2554, 1
  store i32 %2556, ptr %9, align 4
  br label %2571

2557:                                             ; preds = %2074
  %2558 = landingpad { ptr, i32 }
          cleanup
  %2559 = extractvalue { ptr, i32 } %2558, 0
  store ptr %2559, ptr %8, align 8
  %2560 = extractvalue { ptr, i32 } %2558, 1
  store i32 %2560, ptr %9, align 4
  br label %2570

2561:                                             ; preds = %2075
  %2562 = landingpad { ptr, i32 }
          cleanup
  %2563 = extractvalue { ptr, i32 } %2562, 0
  store ptr %2563, ptr %8, align 8
  %2564 = extractvalue { ptr, i32 } %2562, 1
  store i32 %2564, ptr %9, align 4
  br label %2569

2565:                                             ; preds = %2076
  %2566 = landingpad { ptr, i32 }
          cleanup
  %2567 = extractvalue { ptr, i32 } %2566, 0
  store ptr %2567, ptr %8, align 8
  %2568 = extractvalue { ptr, i32 } %2566, 1
  store i32 %2568, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %196) #9
  br label %2569

2569:                                             ; preds = %2565, %2561
  call void @llvm.lifetime.end.p0(i64 56, ptr %196) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %144) #9
  br label %2570

2570:                                             ; preds = %2569, %2557
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %190) #9
  br label %2571

2571:                                             ; preds = %2570, %2553
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %191) #9
  br label %2572

2572:                                             ; preds = %2571, %2549
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %194) #9
  br label %2573

2573:                                             ; preds = %2572, %2545
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %195) #9
  br label %2574

2574:                                             ; preds = %2573, %2541
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %192) #9
  br label %2575

2575:                                             ; preds = %2574, %2537
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %193) #9
  br label %2576

2576:                                             ; preds = %2575, %2533
  call void @llvm.lifetime.end.p0(i64 56, ptr %191) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %145) #9
  br label %2577

2577:                                             ; preds = %2576, %2529
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %185) #9
  br label %2578

2578:                                             ; preds = %2577, %2525
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %186) #9
  br label %2579

2579:                                             ; preds = %2578, %2521
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %188) #9
  br label %2580

2580:                                             ; preds = %2579, %2517
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %189) #9
  br label %2581

2581:                                             ; preds = %2580, %2513
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %187) #9
  br label %2582

2582:                                             ; preds = %2581, %2509
  call void @llvm.lifetime.end.p0(i64 56, ptr %186) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %146) #9
  br label %2583

2583:                                             ; preds = %2582, %2505
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %179) #9
  br label %2584

2584:                                             ; preds = %2583, %2501
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %180) #9
  br label %2585

2585:                                             ; preds = %2584, %2497
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %183) #9
  br label %2586

2586:                                             ; preds = %2585, %2493
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %184) #9
  br label %2587

2587:                                             ; preds = %2586, %2489
  call void @llvm.lifetime.end.p0(i64 8, ptr %183) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %181) #9
  br label %2588

2588:                                             ; preds = %2587, %2485
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %182) #9
  br label %2589

2589:                                             ; preds = %2588, %2481
  call void @llvm.lifetime.end.p0(i64 56, ptr %180) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %147) #9
  br label %2590

2590:                                             ; preds = %2589, %2477
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %175) #9
  br label %2591

2591:                                             ; preds = %2590, %2473
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %176) #9
  br label %2592

2592:                                             ; preds = %2591, %2469
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %177) #9
  br label %2593

2593:                                             ; preds = %2592, %2465
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %178) #9
  br label %2594

2594:                                             ; preds = %2593, %2461
  call void @llvm.lifetime.end.p0(i64 56, ptr %176) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %148) #9
  br label %2595

2595:                                             ; preds = %2594, %2457
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %173) #9
  br label %2596

2596:                                             ; preds = %2595, %2453
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %174) #9
  br label %2597

2597:                                             ; preds = %2596, %2449
  call void @llvm.lifetime.end.p0(i64 56, ptr %174) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %149) #9
  br label %2598

2598:                                             ; preds = %2597, %2445
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %169) #9
  br label %2599

2599:                                             ; preds = %2598, %2441
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %170) #9
  br label %2600

2600:                                             ; preds = %2599, %2437
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %171) #9
  br label %2601

2601:                                             ; preds = %2600, %2433
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %172) #9
  br label %2602

2602:                                             ; preds = %2601, %2429
  call void @llvm.lifetime.end.p0(i64 56, ptr %170) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %150) #9
  br label %2603

2603:                                             ; preds = %2602, %2425
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %163) #9
  br label %2604

2604:                                             ; preds = %2603, %2421
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %164) #9
  br label %2605

2605:                                             ; preds = %2604, %2417
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %167) #9
  br label %2606

2606:                                             ; preds = %2605, %2413
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %168) #9
  br label %2607

2607:                                             ; preds = %2606, %2409
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %165) #9
  br label %2608

2608:                                             ; preds = %2607, %2405
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %166) #9
  br label %2609

2609:                                             ; preds = %2608, %2401
  call void @llvm.lifetime.end.p0(i64 56, ptr %164) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %151) #9
  br label %2610

2610:                                             ; preds = %2609, %2397
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %158) #9
  br label %2611

2611:                                             ; preds = %2610, %2393
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %159) #9
  br label %2612

2612:                                             ; preds = %2611, %2389
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %161) #9
  br label %2613

2613:                                             ; preds = %2612, %2385
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %162) #9
  br label %2614

2614:                                             ; preds = %2613, %2381
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %160) #9
  br label %2615

2615:                                             ; preds = %2614, %2377
  call void @llvm.lifetime.end.p0(i64 56, ptr %159) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %152) #9
  br label %2616

2616:                                             ; preds = %2615, %2373
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %153) #9
  br label %2617

2617:                                             ; preds = %2616, %2369
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %156) #9
  br label %2618

2618:                                             ; preds = %2617, %2365
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %157) #9
  br label %2619

2619:                                             ; preds = %2618, %2361
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %154) #9
  br label %2620

2620:                                             ; preds = %2619, %2357
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %155) #9
  br label %2621

2621:                                             ; preds = %2620, %2353
  call void @llvm.lifetime.end.p0(i64 56, ptr %153) #9
  br label %2660

2622:                                             ; preds = %2078
  %2623 = landingpad { ptr, i32 }
          cleanup
  %2624 = extractvalue { ptr, i32 } %2623, 0
  store ptr %2624, ptr %8, align 8
  %2625 = extractvalue { ptr, i32 } %2623, 1
  store i32 %2625, ptr %9, align 4
  br label %2650

2626:                                             ; preds = %2079
  %2627 = landingpad { ptr, i32 }
          cleanup
  %2628 = extractvalue { ptr, i32 } %2627, 0
  store ptr %2628, ptr %8, align 8
  %2629 = extractvalue { ptr, i32 } %2627, 1
  store i32 %2629, ptr %9, align 4
  br label %2649

2630:                                             ; preds = %2082, %2080
  %2631 = landingpad { ptr, i32 }
          cleanup
  %2632 = extractvalue { ptr, i32 } %2631, 0
  store ptr %2632, ptr %8, align 8
  %2633 = extractvalue { ptr, i32 } %2631, 1
  store i32 %2633, ptr %9, align 4
  br label %2648

2634:                                             ; preds = %2083
  %2635 = landingpad { ptr, i32 }
          cleanup
  %2636 = extractvalue { ptr, i32 } %2635, 0
  store ptr %2636, ptr %8, align 8
  %2637 = extractvalue { ptr, i32 } %2635, 1
  store i32 %2637, ptr %9, align 4
  br label %2647

2638:                                             ; preds = %2084
  %2639 = landingpad { ptr, i32 }
          cleanup
  %2640 = extractvalue { ptr, i32 } %2639, 0
  store ptr %2640, ptr %8, align 8
  %2641 = extractvalue { ptr, i32 } %2639, 1
  store i32 %2641, ptr %9, align 4
  br label %2646

2642:                                             ; preds = %2085
  %2643 = landingpad { ptr, i32 }
          cleanup
  %2644 = extractvalue { ptr, i32 } %2643, 0
  store ptr %2644, ptr %8, align 8
  %2645 = extractvalue { ptr, i32 } %2643, 1
  store i32 %2645, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %202) #9
  br label %2646

2646:                                             ; preds = %2642, %2638
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %201) #9
  br label %2647

2647:                                             ; preds = %2646, %2634
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #9
  br label %2648

2648:                                             ; preds = %2647, %2630
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %199) #9
  br label %2649

2649:                                             ; preds = %2648, %2626
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %198) #9
  br label %2650

2650:                                             ; preds = %2649, %2622
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #9
  br label %2660

2651:                                             ; preds = %2087
  %2652 = landingpad { ptr, i32 }
          cleanup
  %2653 = extractvalue { ptr, i32 } %2652, 0
  store ptr %2653, ptr %8, align 8
  %2654 = extractvalue { ptr, i32 } %2652, 1
  store i32 %2654, ptr %9, align 4
  br label %2659

2655:                                             ; preds = %2088
  %2656 = landingpad { ptr, i32 }
          cleanup
  %2657 = extractvalue { ptr, i32 } %2656, 0
  store ptr %2657, ptr %8, align 8
  %2658 = extractvalue { ptr, i32 } %2656, 1
  store i32 %2658, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %204) #9
  br label %2659

2659:                                             ; preds = %2655, %2651
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %204) #9
  br label %2660

2660:                                             ; preds = %2659, %2650, %2621, %2352, %2280
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #9
  br label %2661

2661:                                             ; preds = %2660, %2279
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #9
  br label %2662

2662:                                             ; preds = %2661, %2270
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #9
  br label %9780

2663:                                             ; preds = %2089
  %2664 = landingpad { ptr, i32 }
          cleanup
  %2665 = extractvalue { ptr, i32 } %2664, 0
  store ptr %2665, ptr %8, align 8
  %2666 = extractvalue { ptr, i32 } %2664, 1
  store i32 %2666, ptr %9, align 4
  br label %2671

2667:                                             ; preds = %2090
  %2668 = landingpad { ptr, i32 }
          cleanup
  %2669 = extractvalue { ptr, i32 } %2668, 0
  store ptr %2669, ptr %8, align 8
  %2670 = extractvalue { ptr, i32 } %2668, 1
  store i32 %2670, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #9
  br label %2671

2671:                                             ; preds = %2667, %2663
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %208) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %208) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %207) #9
  br label %3073

2672:                                             ; preds = %2091
  %2673 = landingpad { ptr, i32 }
          cleanup
  %2674 = extractvalue { ptr, i32 } %2673, 0
  store ptr %2674, ptr %8, align 8
  %2675 = extractvalue { ptr, i32 } %2673, 1
  store i32 %2675, ptr %9, align 4
  br label %2680

2676:                                             ; preds = %2092
  %2677 = landingpad { ptr, i32 }
          cleanup
  %2678 = extractvalue { ptr, i32 } %2677, 0
  store ptr %2678, ptr %8, align 8
  %2679 = extractvalue { ptr, i32 } %2677, 1
  store i32 %2679, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #9
  br label %2680

2680:                                             ; preds = %2676, %2672
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %211) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %210) #9
  br label %3072

2681:                                             ; preds = %2093
  %2682 = landingpad { ptr, i32 }
          cleanup
  %2683 = extractvalue { ptr, i32 } %2682, 0
  store ptr %2683, ptr %8, align 8
  %2684 = extractvalue { ptr, i32 } %2682, 1
  store i32 %2684, ptr %9, align 4
  br label %2689

2685:                                             ; preds = %2094
  %2686 = landingpad { ptr, i32 }
          cleanup
  %2687 = extractvalue { ptr, i32 } %2686, 0
  store ptr %2687, ptr %8, align 8
  %2688 = extractvalue { ptr, i32 } %2686, 1
  store i32 %2688, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #9
  br label %2689

2689:                                             ; preds = %2685, %2681
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %214) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %214) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %213) #9
  br label %3071

2690:                                             ; preds = %2164, %2095
  %2691 = landingpad { ptr, i32 }
          cleanup
  %2692 = extractvalue { ptr, i32 } %2691, 0
  store ptr %2692, ptr %8, align 8
  %2693 = extractvalue { ptr, i32 } %2691, 1
  store i32 %2693, ptr %9, align 4
  br label %3070

2694:                                             ; preds = %2096
  %2695 = landingpad { ptr, i32 }
          cleanup
  %2696 = extractvalue { ptr, i32 } %2695, 0
  store ptr %2696, ptr %8, align 8
  %2697 = extractvalue { ptr, i32 } %2695, 1
  store i32 %2697, ptr %9, align 4
  br label %2762

2698:                                             ; preds = %2097
  %2699 = landingpad { ptr, i32 }
          cleanup
  %2700 = extractvalue { ptr, i32 } %2699, 0
  store ptr %2700, ptr %8, align 8
  %2701 = extractvalue { ptr, i32 } %2699, 1
  store i32 %2701, ptr %9, align 4
  br label %2761

2702:                                             ; preds = %2098
  %2703 = landingpad { ptr, i32 }
          cleanup
  %2704 = extractvalue { ptr, i32 } %2703, 0
  store ptr %2704, ptr %8, align 8
  %2705 = extractvalue { ptr, i32 } %2703, 1
  store i32 %2705, ptr %9, align 4
  br label %2760

2706:                                             ; preds = %2099
  %2707 = landingpad { ptr, i32 }
          cleanup
  %2708 = extractvalue { ptr, i32 } %2707, 0
  store ptr %2708, ptr %8, align 8
  %2709 = extractvalue { ptr, i32 } %2707, 1
  store i32 %2709, ptr %9, align 4
  br label %2759

2710:                                             ; preds = %2100
  %2711 = landingpad { ptr, i32 }
          cleanup
  %2712 = extractvalue { ptr, i32 } %2711, 0
  store ptr %2712, ptr %8, align 8
  %2713 = extractvalue { ptr, i32 } %2711, 1
  store i32 %2713, ptr %9, align 4
  br label %2758

2714:                                             ; preds = %2101
  %2715 = landingpad { ptr, i32 }
          cleanup
  %2716 = extractvalue { ptr, i32 } %2715, 0
  store ptr %2716, ptr %8, align 8
  %2717 = extractvalue { ptr, i32 } %2715, 1
  store i32 %2717, ptr %9, align 4
  br label %2757

2718:                                             ; preds = %2102
  %2719 = landingpad { ptr, i32 }
          cleanup
  %2720 = extractvalue { ptr, i32 } %2719, 0
  store ptr %2720, ptr %8, align 8
  %2721 = extractvalue { ptr, i32 } %2719, 1
  store i32 %2721, ptr %9, align 4
  br label %2756

2722:                                             ; preds = %2103
  %2723 = landingpad { ptr, i32 }
          cleanup
  %2724 = extractvalue { ptr, i32 } %2723, 0
  store ptr %2724, ptr %8, align 8
  %2725 = extractvalue { ptr, i32 } %2723, 1
  store i32 %2725, ptr %9, align 4
  br label %2755

2726:                                             ; preds = %2104
  %2727 = landingpad { ptr, i32 }
          cleanup
  %2728 = extractvalue { ptr, i32 } %2727, 0
  store ptr %2728, ptr %8, align 8
  %2729 = extractvalue { ptr, i32 } %2727, 1
  store i32 %2729, ptr %9, align 4
  br label %2754

2730:                                             ; preds = %2105
  %2731 = landingpad { ptr, i32 }
          cleanup
  %2732 = extractvalue { ptr, i32 } %2731, 0
  store ptr %2732, ptr %8, align 8
  %2733 = extractvalue { ptr, i32 } %2731, 1
  store i32 %2733, ptr %9, align 4
  br label %2753

2734:                                             ; preds = %2106
  %2735 = landingpad { ptr, i32 }
          cleanup
  %2736 = extractvalue { ptr, i32 } %2735, 0
  store ptr %2736, ptr %8, align 8
  %2737 = extractvalue { ptr, i32 } %2735, 1
  store i32 %2737, ptr %9, align 4
  br label %2752

2738:                                             ; preds = %2107
  %2739 = landingpad { ptr, i32 }
          cleanup
  %2740 = extractvalue { ptr, i32 } %2739, 0
  store ptr %2740, ptr %8, align 8
  %2741 = extractvalue { ptr, i32 } %2739, 1
  store i32 %2741, ptr %9, align 4
  br label %2751

2742:                                             ; preds = %2108
  %2743 = landingpad { ptr, i32 }
          cleanup
  %2744 = extractvalue { ptr, i32 } %2743, 0
  store ptr %2744, ptr %8, align 8
  %2745 = extractvalue { ptr, i32 } %2743, 1
  store i32 %2745, ptr %9, align 4
  br label %2750

2746:                                             ; preds = %2109
  %2747 = landingpad { ptr, i32 }
          cleanup
  %2748 = extractvalue { ptr, i32 } %2747, 0
  store ptr %2748, ptr %8, align 8
  %2749 = extractvalue { ptr, i32 } %2747, 1
  store i32 %2749, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %229) #9
  br label %2750

2750:                                             ; preds = %2746, %2742
  call void @llvm.lifetime.end.p0(i64 56, ptr %229) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %216) #9
  br label %2751

2751:                                             ; preds = %2750, %2738
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %225) #9
  br label %2752

2752:                                             ; preds = %2751, %2734
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %227) #9
  br label %2753

2753:                                             ; preds = %2752, %2730
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %228) #9
  br label %2754

2754:                                             ; preds = %2753, %2726
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %226) #9
  br label %2755

2755:                                             ; preds = %2754, %2722
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %217) #9
  br label %2756

2756:                                             ; preds = %2755, %2718
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %221) #9
  br label %2757

2757:                                             ; preds = %2756, %2714
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %223) #9
  br label %2758

2758:                                             ; preds = %2757, %2710
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %224) #9
  br label %2759

2759:                                             ; preds = %2758, %2706
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %222) #9
  br label %2760

2760:                                             ; preds = %2759, %2702
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %218) #9
  br label %2761

2761:                                             ; preds = %2760, %2698
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %220) #9
  br label %2762

2762:                                             ; preds = %2761, %2694
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %219) #9
  br label %3070

2763:                                             ; preds = %2110
  %2764 = landingpad { ptr, i32 }
          cleanup
  %2765 = extractvalue { ptr, i32 } %2764, 0
  store ptr %2765, ptr %8, align 8
  %2766 = extractvalue { ptr, i32 } %2764, 1
  store i32 %2766, ptr %9, align 4
  br label %3031

2767:                                             ; preds = %2111
  %2768 = landingpad { ptr, i32 }
          cleanup
  %2769 = extractvalue { ptr, i32 } %2768, 0
  store ptr %2769, ptr %8, align 8
  %2770 = extractvalue { ptr, i32 } %2768, 1
  store i32 %2770, ptr %9, align 4
  br label %3030

2771:                                             ; preds = %2112
  %2772 = landingpad { ptr, i32 }
          cleanup
  %2773 = extractvalue { ptr, i32 } %2772, 0
  store ptr %2773, ptr %8, align 8
  %2774 = extractvalue { ptr, i32 } %2772, 1
  store i32 %2774, ptr %9, align 4
  br label %3029

2775:                                             ; preds = %2113
  %2776 = landingpad { ptr, i32 }
          cleanup
  %2777 = extractvalue { ptr, i32 } %2776, 0
  store ptr %2777, ptr %8, align 8
  %2778 = extractvalue { ptr, i32 } %2776, 1
  store i32 %2778, ptr %9, align 4
  br label %3028

2779:                                             ; preds = %2114
  %2780 = landingpad { ptr, i32 }
          cleanup
  %2781 = extractvalue { ptr, i32 } %2780, 0
  store ptr %2781, ptr %8, align 8
  %2782 = extractvalue { ptr, i32 } %2780, 1
  store i32 %2782, ptr %9, align 4
  br label %3027

2783:                                             ; preds = %2115
  %2784 = landingpad { ptr, i32 }
          cleanup
  %2785 = extractvalue { ptr, i32 } %2784, 0
  store ptr %2785, ptr %8, align 8
  %2786 = extractvalue { ptr, i32 } %2784, 1
  store i32 %2786, ptr %9, align 4
  br label %3026

2787:                                             ; preds = %2116
  %2788 = landingpad { ptr, i32 }
          cleanup
  %2789 = extractvalue { ptr, i32 } %2788, 0
  store ptr %2789, ptr %8, align 8
  %2790 = extractvalue { ptr, i32 } %2788, 1
  store i32 %2790, ptr %9, align 4
  br label %3025

2791:                                             ; preds = %2117
  %2792 = landingpad { ptr, i32 }
          cleanup
  %2793 = extractvalue { ptr, i32 } %2792, 0
  store ptr %2793, ptr %8, align 8
  %2794 = extractvalue { ptr, i32 } %2792, 1
  store i32 %2794, ptr %9, align 4
  br label %3024

2795:                                             ; preds = %2118
  %2796 = landingpad { ptr, i32 }
          cleanup
  %2797 = extractvalue { ptr, i32 } %2796, 0
  store ptr %2797, ptr %8, align 8
  %2798 = extractvalue { ptr, i32 } %2796, 1
  store i32 %2798, ptr %9, align 4
  br label %3023

2799:                                             ; preds = %2119
  %2800 = landingpad { ptr, i32 }
          cleanup
  %2801 = extractvalue { ptr, i32 } %2800, 0
  store ptr %2801, ptr %8, align 8
  %2802 = extractvalue { ptr, i32 } %2800, 1
  store i32 %2802, ptr %9, align 4
  br label %3022

2803:                                             ; preds = %2120
  %2804 = landingpad { ptr, i32 }
          cleanup
  %2805 = extractvalue { ptr, i32 } %2804, 0
  store ptr %2805, ptr %8, align 8
  %2806 = extractvalue { ptr, i32 } %2804, 1
  store i32 %2806, ptr %9, align 4
  br label %3021

2807:                                             ; preds = %2121
  %2808 = landingpad { ptr, i32 }
          cleanup
  %2809 = extractvalue { ptr, i32 } %2808, 0
  store ptr %2809, ptr %8, align 8
  %2810 = extractvalue { ptr, i32 } %2808, 1
  store i32 %2810, ptr %9, align 4
  br label %3020

2811:                                             ; preds = %2122
  %2812 = landingpad { ptr, i32 }
          cleanup
  %2813 = extractvalue { ptr, i32 } %2812, 0
  store ptr %2813, ptr %8, align 8
  %2814 = extractvalue { ptr, i32 } %2812, 1
  store i32 %2814, ptr %9, align 4
  br label %3019

2815:                                             ; preds = %2123
  %2816 = landingpad { ptr, i32 }
          cleanup
  %2817 = extractvalue { ptr, i32 } %2816, 0
  store ptr %2817, ptr %8, align 8
  %2818 = extractvalue { ptr, i32 } %2816, 1
  store i32 %2818, ptr %9, align 4
  br label %3018

2819:                                             ; preds = %2124
  %2820 = landingpad { ptr, i32 }
          cleanup
  %2821 = extractvalue { ptr, i32 } %2820, 0
  store ptr %2821, ptr %8, align 8
  %2822 = extractvalue { ptr, i32 } %2820, 1
  store i32 %2822, ptr %9, align 4
  br label %3017

2823:                                             ; preds = %2125
  %2824 = landingpad { ptr, i32 }
          cleanup
  %2825 = extractvalue { ptr, i32 } %2824, 0
  store ptr %2825, ptr %8, align 8
  %2826 = extractvalue { ptr, i32 } %2824, 1
  store i32 %2826, ptr %9, align 4
  br label %3016

2827:                                             ; preds = %2126
  %2828 = landingpad { ptr, i32 }
          cleanup
  %2829 = extractvalue { ptr, i32 } %2828, 0
  store ptr %2829, ptr %8, align 8
  %2830 = extractvalue { ptr, i32 } %2828, 1
  store i32 %2830, ptr %9, align 4
  br label %3015

2831:                                             ; preds = %2127
  %2832 = landingpad { ptr, i32 }
          cleanup
  %2833 = extractvalue { ptr, i32 } %2832, 0
  store ptr %2833, ptr %8, align 8
  %2834 = extractvalue { ptr, i32 } %2832, 1
  store i32 %2834, ptr %9, align 4
  br label %3014

2835:                                             ; preds = %2128
  %2836 = landingpad { ptr, i32 }
          cleanup
  %2837 = extractvalue { ptr, i32 } %2836, 0
  store ptr %2837, ptr %8, align 8
  %2838 = extractvalue { ptr, i32 } %2836, 1
  store i32 %2838, ptr %9, align 4
  br label %3013

2839:                                             ; preds = %2129
  %2840 = landingpad { ptr, i32 }
          cleanup
  %2841 = extractvalue { ptr, i32 } %2840, 0
  store ptr %2841, ptr %8, align 8
  %2842 = extractvalue { ptr, i32 } %2840, 1
  store i32 %2842, ptr %9, align 4
  br label %3012

2843:                                             ; preds = %2130
  %2844 = landingpad { ptr, i32 }
          cleanup
  %2845 = extractvalue { ptr, i32 } %2844, 0
  store ptr %2845, ptr %8, align 8
  %2846 = extractvalue { ptr, i32 } %2844, 1
  store i32 %2846, ptr %9, align 4
  br label %3011

2847:                                             ; preds = %2131
  %2848 = landingpad { ptr, i32 }
          cleanup
  %2849 = extractvalue { ptr, i32 } %2848, 0
  store ptr %2849, ptr %8, align 8
  %2850 = extractvalue { ptr, i32 } %2848, 1
  store i32 %2850, ptr %9, align 4
  br label %3010

2851:                                             ; preds = %2132
  %2852 = landingpad { ptr, i32 }
          cleanup
  %2853 = extractvalue { ptr, i32 } %2852, 0
  store ptr %2853, ptr %8, align 8
  %2854 = extractvalue { ptr, i32 } %2852, 1
  store i32 %2854, ptr %9, align 4
  br label %3009

2855:                                             ; preds = %2133
  %2856 = landingpad { ptr, i32 }
          cleanup
  %2857 = extractvalue { ptr, i32 } %2856, 0
  store ptr %2857, ptr %8, align 8
  %2858 = extractvalue { ptr, i32 } %2856, 1
  store i32 %2858, ptr %9, align 4
  br label %3008

2859:                                             ; preds = %2134
  %2860 = landingpad { ptr, i32 }
          cleanup
  %2861 = extractvalue { ptr, i32 } %2860, 0
  store ptr %2861, ptr %8, align 8
  %2862 = extractvalue { ptr, i32 } %2860, 1
  store i32 %2862, ptr %9, align 4
  br label %3007

2863:                                             ; preds = %2135
  %2864 = landingpad { ptr, i32 }
          cleanup
  %2865 = extractvalue { ptr, i32 } %2864, 0
  store ptr %2865, ptr %8, align 8
  %2866 = extractvalue { ptr, i32 } %2864, 1
  store i32 %2866, ptr %9, align 4
  br label %3006

2867:                                             ; preds = %2136
  %2868 = landingpad { ptr, i32 }
          cleanup
  %2869 = extractvalue { ptr, i32 } %2868, 0
  store ptr %2869, ptr %8, align 8
  %2870 = extractvalue { ptr, i32 } %2868, 1
  store i32 %2870, ptr %9, align 4
  br label %3005

2871:                                             ; preds = %2137
  %2872 = landingpad { ptr, i32 }
          cleanup
  %2873 = extractvalue { ptr, i32 } %2872, 0
  store ptr %2873, ptr %8, align 8
  %2874 = extractvalue { ptr, i32 } %2872, 1
  store i32 %2874, ptr %9, align 4
  br label %3004

2875:                                             ; preds = %2138
  %2876 = landingpad { ptr, i32 }
          cleanup
  %2877 = extractvalue { ptr, i32 } %2876, 0
  store ptr %2877, ptr %8, align 8
  %2878 = extractvalue { ptr, i32 } %2876, 1
  store i32 %2878, ptr %9, align 4
  br label %3003

2879:                                             ; preds = %2139
  %2880 = landingpad { ptr, i32 }
          cleanup
  %2881 = extractvalue { ptr, i32 } %2880, 0
  store ptr %2881, ptr %8, align 8
  %2882 = extractvalue { ptr, i32 } %2880, 1
  store i32 %2882, ptr %9, align 4
  br label %3002

2883:                                             ; preds = %2140
  %2884 = landingpad { ptr, i32 }
          cleanup
  %2885 = extractvalue { ptr, i32 } %2884, 0
  store ptr %2885, ptr %8, align 8
  %2886 = extractvalue { ptr, i32 } %2884, 1
  store i32 %2886, ptr %9, align 4
  br label %3001

2887:                                             ; preds = %2141
  %2888 = landingpad { ptr, i32 }
          cleanup
  %2889 = extractvalue { ptr, i32 } %2888, 0
  store ptr %2889, ptr %8, align 8
  %2890 = extractvalue { ptr, i32 } %2888, 1
  store i32 %2890, ptr %9, align 4
  br label %3000

2891:                                             ; preds = %2142
  %2892 = landingpad { ptr, i32 }
          cleanup
  %2893 = extractvalue { ptr, i32 } %2892, 0
  store ptr %2893, ptr %8, align 8
  %2894 = extractvalue { ptr, i32 } %2892, 1
  store i32 %2894, ptr %9, align 4
  br label %2999

2895:                                             ; preds = %2143
  %2896 = landingpad { ptr, i32 }
          cleanup
  %2897 = extractvalue { ptr, i32 } %2896, 0
  store ptr %2897, ptr %8, align 8
  %2898 = extractvalue { ptr, i32 } %2896, 1
  store i32 %2898, ptr %9, align 4
  br label %2998

2899:                                             ; preds = %2144
  %2900 = landingpad { ptr, i32 }
          cleanup
  %2901 = extractvalue { ptr, i32 } %2900, 0
  store ptr %2901, ptr %8, align 8
  %2902 = extractvalue { ptr, i32 } %2900, 1
  store i32 %2902, ptr %9, align 4
  br label %2997

2903:                                             ; preds = %2145
  %2904 = landingpad { ptr, i32 }
          cleanup
  %2905 = extractvalue { ptr, i32 } %2904, 0
  store ptr %2905, ptr %8, align 8
  %2906 = extractvalue { ptr, i32 } %2904, 1
  store i32 %2906, ptr %9, align 4
  br label %2996

2907:                                             ; preds = %2146
  %2908 = landingpad { ptr, i32 }
          cleanup
  %2909 = extractvalue { ptr, i32 } %2908, 0
  store ptr %2909, ptr %8, align 8
  %2910 = extractvalue { ptr, i32 } %2908, 1
  store i32 %2910, ptr %9, align 4
  br label %2995

2911:                                             ; preds = %2147
  %2912 = landingpad { ptr, i32 }
          cleanup
  %2913 = extractvalue { ptr, i32 } %2912, 0
  store ptr %2913, ptr %8, align 8
  %2914 = extractvalue { ptr, i32 } %2912, 1
  store i32 %2914, ptr %9, align 4
  br label %2994

2915:                                             ; preds = %2148
  %2916 = landingpad { ptr, i32 }
          cleanup
  %2917 = extractvalue { ptr, i32 } %2916, 0
  store ptr %2917, ptr %8, align 8
  %2918 = extractvalue { ptr, i32 } %2916, 1
  store i32 %2918, ptr %9, align 4
  br label %2993

2919:                                             ; preds = %2149
  %2920 = landingpad { ptr, i32 }
          cleanup
  %2921 = extractvalue { ptr, i32 } %2920, 0
  store ptr %2921, ptr %8, align 8
  %2922 = extractvalue { ptr, i32 } %2920, 1
  store i32 %2922, ptr %9, align 4
  br label %2992

2923:                                             ; preds = %2150
  %2924 = landingpad { ptr, i32 }
          cleanup
  %2925 = extractvalue { ptr, i32 } %2924, 0
  store ptr %2925, ptr %8, align 8
  %2926 = extractvalue { ptr, i32 } %2924, 1
  store i32 %2926, ptr %9, align 4
  br label %2991

2927:                                             ; preds = %2151
  %2928 = landingpad { ptr, i32 }
          cleanup
  %2929 = extractvalue { ptr, i32 } %2928, 0
  store ptr %2929, ptr %8, align 8
  %2930 = extractvalue { ptr, i32 } %2928, 1
  store i32 %2930, ptr %9, align 4
  br label %2990

2931:                                             ; preds = %2152
  %2932 = landingpad { ptr, i32 }
          cleanup
  %2933 = extractvalue { ptr, i32 } %2932, 0
  store ptr %2933, ptr %8, align 8
  %2934 = extractvalue { ptr, i32 } %2932, 1
  store i32 %2934, ptr %9, align 4
  br label %2989

2935:                                             ; preds = %2153
  %2936 = landingpad { ptr, i32 }
          cleanup
  %2937 = extractvalue { ptr, i32 } %2936, 0
  store ptr %2937, ptr %8, align 8
  %2938 = extractvalue { ptr, i32 } %2936, 1
  store i32 %2938, ptr %9, align 4
  br label %2988

2939:                                             ; preds = %2154
  %2940 = landingpad { ptr, i32 }
          cleanup
  %2941 = extractvalue { ptr, i32 } %2940, 0
  store ptr %2941, ptr %8, align 8
  %2942 = extractvalue { ptr, i32 } %2940, 1
  store i32 %2942, ptr %9, align 4
  br label %2987

2943:                                             ; preds = %2155
  %2944 = landingpad { ptr, i32 }
          cleanup
  %2945 = extractvalue { ptr, i32 } %2944, 0
  store ptr %2945, ptr %8, align 8
  %2946 = extractvalue { ptr, i32 } %2944, 1
  store i32 %2946, ptr %9, align 4
  br label %2986

2947:                                             ; preds = %2156
  %2948 = landingpad { ptr, i32 }
          cleanup
  %2949 = extractvalue { ptr, i32 } %2948, 0
  store ptr %2949, ptr %8, align 8
  %2950 = extractvalue { ptr, i32 } %2948, 1
  store i32 %2950, ptr %9, align 4
  br label %2985

2951:                                             ; preds = %2157
  %2952 = landingpad { ptr, i32 }
          cleanup
  %2953 = extractvalue { ptr, i32 } %2952, 0
  store ptr %2953, ptr %8, align 8
  %2954 = extractvalue { ptr, i32 } %2952, 1
  store i32 %2954, ptr %9, align 4
  br label %2984

2955:                                             ; preds = %2158
  %2956 = landingpad { ptr, i32 }
          cleanup
  %2957 = extractvalue { ptr, i32 } %2956, 0
  store ptr %2957, ptr %8, align 8
  %2958 = extractvalue { ptr, i32 } %2956, 1
  store i32 %2958, ptr %9, align 4
  br label %2983

2959:                                             ; preds = %2159
  %2960 = landingpad { ptr, i32 }
          cleanup
  %2961 = extractvalue { ptr, i32 } %2960, 0
  store ptr %2961, ptr %8, align 8
  %2962 = extractvalue { ptr, i32 } %2960, 1
  store i32 %2962, ptr %9, align 4
  br label %2982

2963:                                             ; preds = %2160
  %2964 = landingpad { ptr, i32 }
          cleanup
  %2965 = extractvalue { ptr, i32 } %2964, 0
  store ptr %2965, ptr %8, align 8
  %2966 = extractvalue { ptr, i32 } %2964, 1
  store i32 %2966, ptr %9, align 4
  br label %2981

2967:                                             ; preds = %2161
  %2968 = landingpad { ptr, i32 }
          cleanup
  %2969 = extractvalue { ptr, i32 } %2968, 0
  store ptr %2969, ptr %8, align 8
  %2970 = extractvalue { ptr, i32 } %2968, 1
  store i32 %2970, ptr %9, align 4
  br label %2980

2971:                                             ; preds = %2162
  %2972 = landingpad { ptr, i32 }
          cleanup
  %2973 = extractvalue { ptr, i32 } %2972, 0
  store ptr %2973, ptr %8, align 8
  %2974 = extractvalue { ptr, i32 } %2972, 1
  store i32 %2974, ptr %9, align 4
  br label %2979

2975:                                             ; preds = %2163
  %2976 = landingpad { ptr, i32 }
          cleanup
  %2977 = extractvalue { ptr, i32 } %2976, 0
  store ptr %2977, ptr %8, align 8
  %2978 = extractvalue { ptr, i32 } %2976, 1
  store i32 %2978, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %283) #9
  br label %2979

2979:                                             ; preds = %2975, %2971
  call void @llvm.lifetime.end.p0(i64 56, ptr %283) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %231) #9
  br label %2980

2980:                                             ; preds = %2979, %2967
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %277) #9
  br label %2981

2981:                                             ; preds = %2980, %2963
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %278) #9
  br label %2982

2982:                                             ; preds = %2981, %2959
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %281) #9
  br label %2983

2983:                                             ; preds = %2982, %2955
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %282) #9
  br label %2984

2984:                                             ; preds = %2983, %2951
  call void @llvm.lifetime.end.p0(i64 8, ptr %281) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %279) #9
  br label %2985

2985:                                             ; preds = %2984, %2947
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %280) #9
  br label %2986

2986:                                             ; preds = %2985, %2943
  call void @llvm.lifetime.end.p0(i64 56, ptr %278) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %232) #9
  br label %2987

2987:                                             ; preds = %2986, %2939
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %272) #9
  br label %2988

2988:                                             ; preds = %2987, %2935
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %273) #9
  br label %2989

2989:                                             ; preds = %2988, %2931
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %275) #9
  br label %2990

2990:                                             ; preds = %2989, %2927
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %276) #9
  br label %2991

2991:                                             ; preds = %2990, %2923
  call void @llvm.lifetime.end.p0(i64 8, ptr %275) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %274) #9
  br label %2992

2992:                                             ; preds = %2991, %2919
  call void @llvm.lifetime.end.p0(i64 56, ptr %273) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %233) #9
  br label %2993

2993:                                             ; preds = %2992, %2915
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %266) #9
  br label %2994

2994:                                             ; preds = %2993, %2911
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %267) #9
  br label %2995

2995:                                             ; preds = %2994, %2907
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %270) #9
  br label %2996

2996:                                             ; preds = %2995, %2903
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %271) #9
  br label %2997

2997:                                             ; preds = %2996, %2899
  call void @llvm.lifetime.end.p0(i64 8, ptr %270) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %268) #9
  br label %2998

2998:                                             ; preds = %2997, %2895
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %269) #9
  br label %2999

2999:                                             ; preds = %2998, %2891
  call void @llvm.lifetime.end.p0(i64 56, ptr %267) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %234) #9
  br label %3000

3000:                                             ; preds = %2999, %2887
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %262) #9
  br label %3001

3001:                                             ; preds = %3000, %2883
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %263) #9
  br label %3002

3002:                                             ; preds = %3001, %2879
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %264) #9
  br label %3003

3003:                                             ; preds = %3002, %2875
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %265) #9
  br label %3004

3004:                                             ; preds = %3003, %2871
  call void @llvm.lifetime.end.p0(i64 56, ptr %263) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %235) #9
  br label %3005

3005:                                             ; preds = %3004, %2867
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %260) #9
  br label %3006

3006:                                             ; preds = %3005, %2863
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %261) #9
  br label %3007

3007:                                             ; preds = %3006, %2859
  call void @llvm.lifetime.end.p0(i64 56, ptr %261) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %236) #9
  br label %3008

3008:                                             ; preds = %3007, %2855
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %256) #9
  br label %3009

3009:                                             ; preds = %3008, %2851
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %257) #9
  br label %3010

3010:                                             ; preds = %3009, %2847
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %258) #9
  br label %3011

3011:                                             ; preds = %3010, %2843
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %259) #9
  br label %3012

3012:                                             ; preds = %3011, %2839
  call void @llvm.lifetime.end.p0(i64 56, ptr %257) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %237) #9
  br label %3013

3013:                                             ; preds = %3012, %2835
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %250) #9
  br label %3014

3014:                                             ; preds = %3013, %2831
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %251) #9
  br label %3015

3015:                                             ; preds = %3014, %2827
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %254) #9
  br label %3016

3016:                                             ; preds = %3015, %2823
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %255) #9
  br label %3017

3017:                                             ; preds = %3016, %2819
  call void @llvm.lifetime.end.p0(i64 8, ptr %254) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %252) #9
  br label %3018

3018:                                             ; preds = %3017, %2815
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %253) #9
  br label %3019

3019:                                             ; preds = %3018, %2811
  call void @llvm.lifetime.end.p0(i64 56, ptr %251) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %238) #9
  br label %3020

3020:                                             ; preds = %3019, %2807
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %245) #9
  br label %3021

3021:                                             ; preds = %3020, %2803
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %246) #9
  br label %3022

3022:                                             ; preds = %3021, %2799
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %248) #9
  br label %3023

3023:                                             ; preds = %3022, %2795
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %249) #9
  br label %3024

3024:                                             ; preds = %3023, %2791
  call void @llvm.lifetime.end.p0(i64 8, ptr %248) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %247) #9
  br label %3025

3025:                                             ; preds = %3024, %2787
  call void @llvm.lifetime.end.p0(i64 56, ptr %246) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %239) #9
  br label %3026

3026:                                             ; preds = %3025, %2783
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %240) #9
  br label %3027

3027:                                             ; preds = %3026, %2779
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %243) #9
  br label %3028

3028:                                             ; preds = %3027, %2775
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %244) #9
  br label %3029

3029:                                             ; preds = %3028, %2771
  call void @llvm.lifetime.end.p0(i64 8, ptr %243) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %241) #9
  br label %3030

3030:                                             ; preds = %3029, %2767
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %242) #9
  br label %3031

3031:                                             ; preds = %3030, %2763
  call void @llvm.lifetime.end.p0(i64 56, ptr %240) #9
  br label %3070

3032:                                             ; preds = %2165
  %3033 = landingpad { ptr, i32 }
          cleanup
  %3034 = extractvalue { ptr, i32 } %3033, 0
  store ptr %3034, ptr %8, align 8
  %3035 = extractvalue { ptr, i32 } %3033, 1
  store i32 %3035, ptr %9, align 4
  br label %3060

3036:                                             ; preds = %2166
  %3037 = landingpad { ptr, i32 }
          cleanup
  %3038 = extractvalue { ptr, i32 } %3037, 0
  store ptr %3038, ptr %8, align 8
  %3039 = extractvalue { ptr, i32 } %3037, 1
  store i32 %3039, ptr %9, align 4
  br label %3059

3040:                                             ; preds = %2169, %2167
  %3041 = landingpad { ptr, i32 }
          cleanup
  %3042 = extractvalue { ptr, i32 } %3041, 0
  store ptr %3042, ptr %8, align 8
  %3043 = extractvalue { ptr, i32 } %3041, 1
  store i32 %3043, ptr %9, align 4
  br label %3058

3044:                                             ; preds = %2170
  %3045 = landingpad { ptr, i32 }
          cleanup
  %3046 = extractvalue { ptr, i32 } %3045, 0
  store ptr %3046, ptr %8, align 8
  %3047 = extractvalue { ptr, i32 } %3045, 1
  store i32 %3047, ptr %9, align 4
  br label %3057

3048:                                             ; preds = %2171
  %3049 = landingpad { ptr, i32 }
          cleanup
  %3050 = extractvalue { ptr, i32 } %3049, 0
  store ptr %3050, ptr %8, align 8
  %3051 = extractvalue { ptr, i32 } %3049, 1
  store i32 %3051, ptr %9, align 4
  br label %3056

3052:                                             ; preds = %2172
  %3053 = landingpad { ptr, i32 }
          cleanup
  %3054 = extractvalue { ptr, i32 } %3053, 0
  store ptr %3054, ptr %8, align 8
  %3055 = extractvalue { ptr, i32 } %3053, 1
  store i32 %3055, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %289) #9
  br label %3056

3056:                                             ; preds = %3052, %3048
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %288) #9
  br label %3057

3057:                                             ; preds = %3056, %3044
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %287) #9
  br label %3058

3058:                                             ; preds = %3057, %3040
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %286) #9
  br label %3059

3059:                                             ; preds = %3058, %3036
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %285) #9
  br label %3060

3060:                                             ; preds = %3059, %3032
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #9
  br label %3070

3061:                                             ; preds = %2174
  %3062 = landingpad { ptr, i32 }
          cleanup
  %3063 = extractvalue { ptr, i32 } %3062, 0
  store ptr %3063, ptr %8, align 8
  %3064 = extractvalue { ptr, i32 } %3062, 1
  store i32 %3064, ptr %9, align 4
  br label %3069

3065:                                             ; preds = %2175
  %3066 = landingpad { ptr, i32 }
          cleanup
  %3067 = extractvalue { ptr, i32 } %3066, 0
  store ptr %3067, ptr %8, align 8
  %3068 = extractvalue { ptr, i32 } %3066, 1
  store i32 %3068, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %291) #9
  br label %3069

3069:                                             ; preds = %3065, %3061
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #9
  br label %3070

3070:                                             ; preds = %3069, %3060, %3031, %2762, %2690
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #9
  br label %3071

3071:                                             ; preds = %3070, %2689
  call void @llvm.lifetime.end.p0(i64 32, ptr %212) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #9
  br label %3072

3072:                                             ; preds = %3071, %2680
  call void @llvm.lifetime.end.p0(i64 32, ptr %209) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #9
  br label %3073

3073:                                             ; preds = %3072, %2671
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #9
  br label %9780

3074:                                             ; preds = %2179
  %3075 = landingpad { ptr, i32 }
          cleanup
  %3076 = extractvalue { ptr, i32 } %3075, 0
  store ptr %3076, ptr %8, align 8
  %3077 = extractvalue { ptr, i32 } %3075, 1
  store i32 %3077, ptr %9, align 4
  %3078 = icmp eq ptr %2177, %2180
  br i1 %3078, label %3083, label %3079

3079:                                             ; preds = %3079, %3074
  %3080 = phi ptr [ %2180, %3074 ], [ %3081, %3079 ]
  %3081 = getelementptr inbounds %"class.Halide::Func", ptr %3080, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3081) #9
  %3082 = icmp eq ptr %3081, %2177
  br i1 %3082, label %3083, label %3079

3083:                                             ; preds = %3079, %3074
  br label %3353

3084:                                             ; preds = %3248, %2184
  %3085 = landingpad { ptr, i32 }
          cleanup
  %3086 = extractvalue { ptr, i32 } %3085, 0
  store ptr %3086, ptr %8, align 8
  %3087 = extractvalue { ptr, i32 } %3085, 1
  store i32 %3087, ptr %9, align 4
  br label %3345

3088:                                             ; preds = %2185
  %3089 = landingpad { ptr, i32 }
          cleanup
  %3090 = extractvalue { ptr, i32 } %3089, 0
  store ptr %3090, ptr %8, align 8
  %3091 = extractvalue { ptr, i32 } %3089, 1
  store i32 %3091, ptr %9, align 4
  br label %3156

3092:                                             ; preds = %2186
  %3093 = landingpad { ptr, i32 }
          cleanup
  %3094 = extractvalue { ptr, i32 } %3093, 0
  store ptr %3094, ptr %8, align 8
  %3095 = extractvalue { ptr, i32 } %3093, 1
  store i32 %3095, ptr %9, align 4
  br label %3155

3096:                                             ; preds = %2187
  %3097 = landingpad { ptr, i32 }
          cleanup
  %3098 = extractvalue { ptr, i32 } %3097, 0
  store ptr %3098, ptr %8, align 8
  %3099 = extractvalue { ptr, i32 } %3097, 1
  store i32 %3099, ptr %9, align 4
  br label %3154

3100:                                             ; preds = %2188
  %3101 = landingpad { ptr, i32 }
          cleanup
  %3102 = extractvalue { ptr, i32 } %3101, 0
  store ptr %3102, ptr %8, align 8
  %3103 = extractvalue { ptr, i32 } %3101, 1
  store i32 %3103, ptr %9, align 4
  br label %3153

3104:                                             ; preds = %2189
  %3105 = landingpad { ptr, i32 }
          cleanup
  %3106 = extractvalue { ptr, i32 } %3105, 0
  store ptr %3106, ptr %8, align 8
  %3107 = extractvalue { ptr, i32 } %3105, 1
  store i32 %3107, ptr %9, align 4
  br label %3152

3108:                                             ; preds = %2190
  %3109 = landingpad { ptr, i32 }
          cleanup
  %3110 = extractvalue { ptr, i32 } %3109, 0
  store ptr %3110, ptr %8, align 8
  %3111 = extractvalue { ptr, i32 } %3109, 1
  store i32 %3111, ptr %9, align 4
  br label %3151

3112:                                             ; preds = %2191
  %3113 = landingpad { ptr, i32 }
          cleanup
  %3114 = extractvalue { ptr, i32 } %3113, 0
  store ptr %3114, ptr %8, align 8
  %3115 = extractvalue { ptr, i32 } %3113, 1
  store i32 %3115, ptr %9, align 4
  br label %3150

3116:                                             ; preds = %2192
  %3117 = landingpad { ptr, i32 }
          cleanup
  %3118 = extractvalue { ptr, i32 } %3117, 0
  store ptr %3118, ptr %8, align 8
  %3119 = extractvalue { ptr, i32 } %3117, 1
  store i32 %3119, ptr %9, align 4
  br label %3149

3120:                                             ; preds = %2193
  %3121 = landingpad { ptr, i32 }
          cleanup
  %3122 = extractvalue { ptr, i32 } %3121, 0
  store ptr %3122, ptr %8, align 8
  %3123 = extractvalue { ptr, i32 } %3121, 1
  store i32 %3123, ptr %9, align 4
  br label %3148

3124:                                             ; preds = %2194
  %3125 = landingpad { ptr, i32 }
          cleanup
  %3126 = extractvalue { ptr, i32 } %3125, 0
  store ptr %3126, ptr %8, align 8
  %3127 = extractvalue { ptr, i32 } %3125, 1
  store i32 %3127, ptr %9, align 4
  br label %3147

3128:                                             ; preds = %2195
  %3129 = landingpad { ptr, i32 }
          cleanup
  %3130 = extractvalue { ptr, i32 } %3129, 0
  store ptr %3130, ptr %8, align 8
  %3131 = extractvalue { ptr, i32 } %3129, 1
  store i32 %3131, ptr %9, align 4
  br label %3146

3132:                                             ; preds = %2196
  %3133 = landingpad { ptr, i32 }
          cleanup
  %3134 = extractvalue { ptr, i32 } %3133, 0
  store ptr %3134, ptr %8, align 8
  %3135 = extractvalue { ptr, i32 } %3133, 1
  store i32 %3135, ptr %9, align 4
  br label %3145

3136:                                             ; preds = %2197
  %3137 = landingpad { ptr, i32 }
          cleanup
  %3138 = extractvalue { ptr, i32 } %3137, 0
  store ptr %3138, ptr %8, align 8
  %3139 = extractvalue { ptr, i32 } %3137, 1
  store i32 %3139, ptr %9, align 4
  br label %3144

3140:                                             ; preds = %2199
  %3141 = landingpad { ptr, i32 }
          cleanup
  %3142 = extractvalue { ptr, i32 } %3141, 0
  store ptr %3142, ptr %8, align 8
  %3143 = extractvalue { ptr, i32 } %3141, 1
  store i32 %3143, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %309) #9
  br label %3144

3144:                                             ; preds = %3140, %3136
  call void @llvm.lifetime.end.p0(i64 56, ptr %309) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %296) #9
  br label %3145

3145:                                             ; preds = %3144, %3132
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %305) #9
  br label %3146

3146:                                             ; preds = %3145, %3128
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %307) #9
  br label %3147

3147:                                             ; preds = %3146, %3124
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %308) #9
  br label %3148

3148:                                             ; preds = %3147, %3120
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %306) #9
  br label %3149

3149:                                             ; preds = %3148, %3116
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %297) #9
  br label %3150

3150:                                             ; preds = %3149, %3112
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %301) #9
  br label %3151

3151:                                             ; preds = %3150, %3108
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %303) #9
  br label %3152

3152:                                             ; preds = %3151, %3104
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %304) #9
  br label %3153

3153:                                             ; preds = %3152, %3100
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %302) #9
  br label %3154

3154:                                             ; preds = %3153, %3096
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %298) #9
  br label %3155

3155:                                             ; preds = %3154, %3092
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %300) #9
  br label %3156

3156:                                             ; preds = %3155, %3088
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %299) #9
  br label %3345

3157:                                             ; preds = %2201
  call void @llvm.lifetime.start.p0(i64 8, ptr %312) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %312, i32 noundef 0)
          to label %3158 unwind label %3163

3158:                                             ; preds = %3157
  call void @llvm.lifetime.start.p0(i64 4, ptr %313) #9
  store i32 -2, ptr %313, align 4, !tbaa !5
  br label %3159

3159:                                             ; preds = %3225, %3158
  %3160 = load i32, ptr %313, align 4, !tbaa !5
  %3161 = icmp sle i32 %3160, 2
  br i1 %3161, label %3167, label %3162

3162:                                             ; preds = %3159
  store i32 11, ptr %311, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %313) #9
  br label %3228

3163:                                             ; preds = %3157
  %3164 = landingpad { ptr, i32 }
          cleanup
  %3165 = extractvalue { ptr, i32 } %3164, 0
  store ptr %3165, ptr %8, align 8
  %3166 = extractvalue { ptr, i32 } %3164, 1
  store i32 %3166, ptr %9, align 4
  br label %3247

3167:                                             ; preds = %3159
  call void @llvm.lifetime.start.p0(i64 4, ptr %314) #9
  store i32 -2, ptr %314, align 4, !tbaa !5
  br label %3168

3168:                                             ; preds = %3187, %3167
  %3169 = load i32, ptr %314, align 4, !tbaa !5
  %3170 = icmp sle i32 %3169, 2
  br i1 %3170, label %3172, label %3171

3171:                                             ; preds = %3168
  store i32 14, ptr %311, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #9
  br label %3224

3172:                                             ; preds = %3168
  call void @llvm.lifetime.start.p0(i64 56, ptr %316) #9
  %3173 = load i32, ptr %310, align 4, !tbaa !5
  %3174 = sub nsw i32 %3173, 1
  %3175 = sext i32 %3174 to i64
  %3176 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %294, i64 0, i64 %3175
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %318, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3177 unwind label %3190

3177:                                             ; preds = %3172
  %3178 = load i32, ptr %314, align 4, !tbaa !5
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %317, ptr noundef %318, i32 noundef %3178)
          to label %3179 unwind label %3194

3179:                                             ; preds = %3177
  call void @llvm.lifetime.start.p0(i64 8, ptr %319) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %320, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %3180 unwind label %3198

3180:                                             ; preds = %3179
  %3181 = load i32, ptr %313, align 4, !tbaa !5
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %319, ptr noundef %320, i32 noundef %3181)
          to label %3182 unwind label %3202

3182:                                             ; preds = %3180
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %316, ptr noundef nonnull align 8 dereferenceable(32) %3176, ptr noundef %317, ptr noundef nonnull align 8 dereferenceable(8) %319)
          to label %3183 unwind label %3206

3183:                                             ; preds = %3182
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %315, ptr noundef nonnull align 8 dereferenceable(56) %316)
          to label %3184 unwind label %3210

3184:                                             ; preds = %3183
  %3185 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %312, ptr noundef %315)
          to label %3186 unwind label %3214

3186:                                             ; preds = %3184
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %315) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %316) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %319) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %320) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %319) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %317) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %318) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %316) #9
  br label %3187

3187:                                             ; preds = %3186
  %3188 = load i32, ptr %314, align 4, !tbaa !5
  %3189 = add nsw i32 %3188, 1
  store i32 %3189, ptr %314, align 4, !tbaa !5
  br label %3168, !llvm.loop !14

3190:                                             ; preds = %3172
  %3191 = landingpad { ptr, i32 }
          cleanup
  %3192 = extractvalue { ptr, i32 } %3191, 0
  store ptr %3192, ptr %8, align 8
  %3193 = extractvalue { ptr, i32 } %3191, 1
  store i32 %3193, ptr %9, align 4
  br label %3223

3194:                                             ; preds = %3177
  %3195 = landingpad { ptr, i32 }
          cleanup
  %3196 = extractvalue { ptr, i32 } %3195, 0
  store ptr %3196, ptr %8, align 8
  %3197 = extractvalue { ptr, i32 } %3195, 1
  store i32 %3197, ptr %9, align 4
  br label %3222

3198:                                             ; preds = %3179
  %3199 = landingpad { ptr, i32 }
          cleanup
  %3200 = extractvalue { ptr, i32 } %3199, 0
  store ptr %3200, ptr %8, align 8
  %3201 = extractvalue { ptr, i32 } %3199, 1
  store i32 %3201, ptr %9, align 4
  br label %3221

3202:                                             ; preds = %3180
  %3203 = landingpad { ptr, i32 }
          cleanup
  %3204 = extractvalue { ptr, i32 } %3203, 0
  store ptr %3204, ptr %8, align 8
  %3205 = extractvalue { ptr, i32 } %3203, 1
  store i32 %3205, ptr %9, align 4
  br label %3220

3206:                                             ; preds = %3182
  %3207 = landingpad { ptr, i32 }
          cleanup
  %3208 = extractvalue { ptr, i32 } %3207, 0
  store ptr %3208, ptr %8, align 8
  %3209 = extractvalue { ptr, i32 } %3207, 1
  store i32 %3209, ptr %9, align 4
  br label %3219

3210:                                             ; preds = %3183
  %3211 = landingpad { ptr, i32 }
          cleanup
  %3212 = extractvalue { ptr, i32 } %3211, 0
  store ptr %3212, ptr %8, align 8
  %3213 = extractvalue { ptr, i32 } %3211, 1
  store i32 %3213, ptr %9, align 4
  br label %3218

3214:                                             ; preds = %3184
  %3215 = landingpad { ptr, i32 }
          cleanup
  %3216 = extractvalue { ptr, i32 } %3215, 0
  store ptr %3216, ptr %8, align 8
  %3217 = extractvalue { ptr, i32 } %3215, 1
  store i32 %3217, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %315) #9
  br label %3218

3218:                                             ; preds = %3214, %3210
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %316) #9
  br label %3219

3219:                                             ; preds = %3218, %3206
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %319) #9
  br label %3220

3220:                                             ; preds = %3219, %3202
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %320) #9
  br label %3221

3221:                                             ; preds = %3220, %3198
  call void @llvm.lifetime.end.p0(i64 8, ptr %319) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %317) #9
  br label %3222

3222:                                             ; preds = %3221, %3194
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %318) #9
  br label %3223

3223:                                             ; preds = %3222, %3190
  call void @llvm.lifetime.end.p0(i64 56, ptr %316) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %313) #9
  br label %3246

3224:                                             ; preds = %3171
  br label %3225

3225:                                             ; preds = %3224
  %3226 = load i32, ptr %313, align 4, !tbaa !5
  %3227 = add nsw i32 %3226, 1
  store i32 %3227, ptr %313, align 4, !tbaa !5
  br label %3159, !llvm.loop !15

3228:                                             ; preds = %3162
  call void @_ZN6Halide4ExprC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %322, ptr noundef nonnull align 8 dereferenceable(8) %312) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %323) #9
  %3229 = load i32, ptr %310, align 4, !tbaa !5
  %3230 = sext i32 %3229 to i64
  %3231 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %294, i64 0, i64 %3230
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %323, ptr noundef nonnull align 8 dereferenceable(32) %3231, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %3232 unwind label %3237

3232:                                             ; preds = %3228
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %321, ptr noundef nonnull align 8 dereferenceable(56) %323, ptr noundef %322)
          to label %3233 unwind label %3241

3233:                                             ; preds = %3232
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %321) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %323) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %323) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %322) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %312) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %312) #9
  br label %3234

3234:                                             ; preds = %3233
  %3235 = load i32, ptr %310, align 4, !tbaa !5
  %3236 = add nsw i32 %3235, 1
  store i32 %3236, ptr %310, align 4, !tbaa !5
  br label %2201, !llvm.loop !16

3237:                                             ; preds = %3228
  %3238 = landingpad { ptr, i32 }
          cleanup
  %3239 = extractvalue { ptr, i32 } %3238, 0
  store ptr %3239, ptr %8, align 8
  %3240 = extractvalue { ptr, i32 } %3238, 1
  store i32 %3240, ptr %9, align 4
  br label %3245

3241:                                             ; preds = %3232
  %3242 = landingpad { ptr, i32 }
          cleanup
  %3243 = extractvalue { ptr, i32 } %3242, 0
  store ptr %3243, ptr %8, align 8
  %3244 = extractvalue { ptr, i32 } %3242, 1
  store i32 %3244, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %323) #9
  br label %3245

3245:                                             ; preds = %3241, %3237
  call void @llvm.lifetime.end.p0(i64 56, ptr %323) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %322) #9
  br label %3246

3246:                                             ; preds = %3245, %3223
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %312) #9
  br label %3247

3247:                                             ; preds = %3246, %3163
  call void @llvm.lifetime.end.p0(i64 8, ptr %312) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %310) #9
  br label %3345

3248:                                             ; preds = %2204
  %3249 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %294, i64 0, i64 7
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %324, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3250 unwind label %3084

3250:                                             ; preds = %3248
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %325, i32 noundef 0)
          to label %3251 unwind label %3307

3251:                                             ; preds = %3250
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %326, i32 noundef 2048)
          to label %3252 unwind label %3311

3252:                                             ; preds = %3251
  %3253 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %3249, ptr noundef %324, ptr noundef %325, ptr noundef %326)
          to label %3254 unwind label %3315

3254:                                             ; preds = %3252
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %327, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %3255 unwind label %3315

3255:                                             ; preds = %3254
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %328, i32 noundef 0)
          to label %3256 unwind label %3319

3256:                                             ; preds = %3255
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %329, i32 noundef 2048)
          to label %3257 unwind label %3323

3257:                                             ; preds = %3256
  %3258 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %3253, ptr noundef %327, ptr noundef %328, ptr noundef %329)
          to label %3259 unwind label %3327

3259:                                             ; preds = %3257
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %329) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %328) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %327) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %326) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %325) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %331) #9
  %3260 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %294, i64 0, i64 7
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %332, ptr noundef nonnull align 8 dereferenceable(32) %3260) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %331, ptr noundef %332)
          to label %3261 unwind label %3336

3261:                                             ; preds = %3259
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %330, ptr noundef nonnull align 8 dereferenceable(8) %331, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %3262 unwind label %3340

3262:                                             ; preds = %3261
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %330) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %331) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %332) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %331) #9
  %3263 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %294, i32 0, i32 0
  %3264 = getelementptr inbounds %"class.Halide::Func", ptr %3263, i64 8
  br label %3265

3265:                                             ; preds = %3265, %3262
  %3266 = phi ptr [ %3264, %3262 ], [ %3267, %3265 ]
  %3267 = getelementptr inbounds %"class.Halide::Func", ptr %3266, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3267) #9
  %3268 = icmp eq ptr %3267, %3263
  br i1 %3268, label %3269, label %3265

3269:                                             ; preds = %3265
  call void @llvm.lifetime.end.p0(i64 256, ptr %294) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %293) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %333) #9
  invoke void @_ZN6Halide6BufferIfEC2IJEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %333, i32 noundef 2048)
          to label %3270 unwind label %3354

3270:                                             ; preds = %3269
  call void @llvm.lifetime.start.p0(i64 16, ptr %334) #9
  invoke void @_ZN6Halide6BufferIfEC2IJEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %334, i32 noundef 2048)
          to label %3271 unwind label %3358

3271:                                             ; preds = %3270
  call void @llvm.lifetime.start.p0(i64 32, ptr %335) #9
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %335)
          to label %3272 unwind label %3362

3272:                                             ; preds = %3271
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %339, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3273 unwind label %3366

3273:                                             ; preds = %3272
  invoke void @_ZNK6Halide6BufferIfEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %338, ptr noundef nonnull align 8 dereferenceable(16) %333, ptr noundef %339)
          to label %3274 unwind label %3370

3274:                                             ; preds = %3273
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %341, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %3275 unwind label %3374

3275:                                             ; preds = %3274
  invoke void @_ZNK6Halide6BufferIfEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %340, ptr noundef nonnull align 8 dereferenceable(16) %334, ptr noundef %341)
          to label %3276 unwind label %3378

3276:                                             ; preds = %3275
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %337, ptr noundef %338, ptr noundef %340)
          to label %3277 unwind label %3382

3277:                                             ; preds = %3276
  call void @llvm.lifetime.start.p0(i64 56, ptr %342) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %342, ptr noundef nonnull align 8 dereferenceable(32) %335, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %3278 unwind label %3386

3278:                                             ; preds = %3277
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %336, ptr noundef nonnull align 8 dereferenceable(56) %342, ptr noundef %337)
          to label %3279 unwind label %3390

3279:                                             ; preds = %3278
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %336) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %342) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %342) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %337) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %340) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %341) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %338) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %339) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %343, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3280 unwind label %3366

3280:                                             ; preds = %3279
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %344, i32 noundef 0)
          to label %3281 unwind label %3399

3281:                                             ; preds = %3280
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %345, i32 noundef 2048)
          to label %3282 unwind label %3403

3282:                                             ; preds = %3281
  %3283 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %335, ptr noundef %343, ptr noundef %344, ptr noundef %345)
          to label %3284 unwind label %3407

3284:                                             ; preds = %3282
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %346, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %3285 unwind label %3407

3285:                                             ; preds = %3284
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %347, i32 noundef 0)
          to label %3286 unwind label %3411

3286:                                             ; preds = %3285
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %348, i32 noundef 2048)
          to label %3287 unwind label %3415

3287:                                             ; preds = %3286
  %3288 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %3283, ptr noundef %346, ptr noundef %347, ptr noundef %348)
          to label %3289 unwind label %3419

3289:                                             ; preds = %3287
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %348) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %347) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %346) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %345) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %344) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %343) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %350) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %351, ptr noundef nonnull align 8 dereferenceable(32) %335) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %350, ptr noundef %351)
          to label %3290 unwind label %3428

3290:                                             ; preds = %3289
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %349, ptr noundef nonnull align 8 dereferenceable(8) %350, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %3291 unwind label %3432

3291:                                             ; preds = %3290
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %349) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %350) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %350) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %335) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %335) #9
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %334) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %334) #9
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %333) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %333) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %352) #9
  invoke void @_ZN6Halide6BufferIfEC2IJiEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %352, i32 noundef 2048, i32 noundef 2048)
          to label %3292 unwind label %3441

3292:                                             ; preds = %3291
  call void @llvm.lifetime.start.p0(i64 32, ptr %353) #9
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %353)
          to label %3293 unwind label %3445

3293:                                             ; preds = %3292
  call void @llvm.lifetime.start.p0(i64 32, ptr %354) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %355) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %356) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %356) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %355, ptr noundef @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %356)
          to label %3294 unwind label %3449

3294:                                             ; preds = %3293
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %354, ptr noundef nonnull align 8 dereferenceable(32) %355)
          to label %3295 unwind label %3453

3295:                                             ; preds = %3294
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %355) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %356) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %356) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %355) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %357) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %358) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %359) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %359) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %358, ptr noundef @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %359)
          to label %3296 unwind label %3458

3296:                                             ; preds = %3295
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %357, ptr noundef nonnull align 8 dereferenceable(32) %358)
          to label %3297 unwind label %3462

3297:                                             ; preds = %3296
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %358) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %359) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %359) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %358) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %360) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %361) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %362) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %362) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %361, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %362)
          to label %3298 unwind label %3467

3298:                                             ; preds = %3297
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %360, ptr noundef nonnull align 8 dereferenceable(32) %361)
          to label %3299 unwind label %3471

3299:                                             ; preds = %3298
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %362) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %362) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %361) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %363) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %364) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %365)
          to label %3300 unwind label %3476

3300:                                             ; preds = %3299
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %363, ptr noundef nonnull align 8 dereferenceable(32) %364)
          to label %3301 unwind label %3480

3301:                                             ; preds = %3300
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %365) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %365) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %364) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %366) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %366, i32 noundef 0)
          to label %3302 unwind label %3485

3302:                                             ; preds = %3301
  call void @llvm.lifetime.start.p0(i64 4, ptr %367) #9
  store i32 0, ptr %367, align 4, !tbaa !5
  br label %3303

3303:                                             ; preds = %3495, %3302
  %3304 = load i32, ptr %367, align 4, !tbaa !5
  %3305 = icmp slt i32 %3304, 100
  br i1 %3305, label %3489, label %3306

3306:                                             ; preds = %3303
  store i32 17, ptr %311, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %367) #9
  br label %3511

3307:                                             ; preds = %3250
  %3308 = landingpad { ptr, i32 }
          cleanup
  %3309 = extractvalue { ptr, i32 } %3308, 0
  store ptr %3309, ptr %8, align 8
  %3310 = extractvalue { ptr, i32 } %3308, 1
  store i32 %3310, ptr %9, align 4
  br label %3335

3311:                                             ; preds = %3251
  %3312 = landingpad { ptr, i32 }
          cleanup
  %3313 = extractvalue { ptr, i32 } %3312, 0
  store ptr %3313, ptr %8, align 8
  %3314 = extractvalue { ptr, i32 } %3312, 1
  store i32 %3314, ptr %9, align 4
  br label %3334

3315:                                             ; preds = %3254, %3252
  %3316 = landingpad { ptr, i32 }
          cleanup
  %3317 = extractvalue { ptr, i32 } %3316, 0
  store ptr %3317, ptr %8, align 8
  %3318 = extractvalue { ptr, i32 } %3316, 1
  store i32 %3318, ptr %9, align 4
  br label %3333

3319:                                             ; preds = %3255
  %3320 = landingpad { ptr, i32 }
          cleanup
  %3321 = extractvalue { ptr, i32 } %3320, 0
  store ptr %3321, ptr %8, align 8
  %3322 = extractvalue { ptr, i32 } %3320, 1
  store i32 %3322, ptr %9, align 4
  br label %3332

3323:                                             ; preds = %3256
  %3324 = landingpad { ptr, i32 }
          cleanup
  %3325 = extractvalue { ptr, i32 } %3324, 0
  store ptr %3325, ptr %8, align 8
  %3326 = extractvalue { ptr, i32 } %3324, 1
  store i32 %3326, ptr %9, align 4
  br label %3331

3327:                                             ; preds = %3257
  %3328 = landingpad { ptr, i32 }
          cleanup
  %3329 = extractvalue { ptr, i32 } %3328, 0
  store ptr %3329, ptr %8, align 8
  %3330 = extractvalue { ptr, i32 } %3328, 1
  store i32 %3330, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %329) #9
  br label %3331

3331:                                             ; preds = %3327, %3323
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %328) #9
  br label %3332

3332:                                             ; preds = %3331, %3319
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %327) #9
  br label %3333

3333:                                             ; preds = %3332, %3315
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %326) #9
  br label %3334

3334:                                             ; preds = %3333, %3311
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %325) #9
  br label %3335

3335:                                             ; preds = %3334, %3307
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #9
  br label %3345

3336:                                             ; preds = %3259
  %3337 = landingpad { ptr, i32 }
          cleanup
  %3338 = extractvalue { ptr, i32 } %3337, 0
  store ptr %3338, ptr %8, align 8
  %3339 = extractvalue { ptr, i32 } %3337, 1
  store i32 %3339, ptr %9, align 4
  br label %3344

3340:                                             ; preds = %3261
  %3341 = landingpad { ptr, i32 }
          cleanup
  %3342 = extractvalue { ptr, i32 } %3341, 0
  store ptr %3342, ptr %8, align 8
  %3343 = extractvalue { ptr, i32 } %3341, 1
  store i32 %3343, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %331) #9
  br label %3344

3344:                                             ; preds = %3340, %3336
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %332) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %331) #9
  br label %3345

3345:                                             ; preds = %3344, %3335, %3247, %3156, %3084
  %3346 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %294, i32 0, i32 0
  %3347 = getelementptr inbounds %"class.Halide::Func", ptr %3346, i64 8
  br label %3348

3348:                                             ; preds = %3348, %3345
  %3349 = phi ptr [ %3347, %3345 ], [ %3350, %3348 ]
  %3350 = getelementptr inbounds %"class.Halide::Func", ptr %3349, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3350) #9
  %3351 = icmp eq ptr %3350, %3346
  br i1 %3351, label %3352, label %3348

3352:                                             ; preds = %3348
  br label %3353

3353:                                             ; preds = %3352, %3083
  call void @llvm.lifetime.end.p0(i64 256, ptr %294) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %293) #9
  br label %9780

3354:                                             ; preds = %3269
  %3355 = landingpad { ptr, i32 }
          cleanup
  %3356 = extractvalue { ptr, i32 } %3355, 0
  store ptr %3356, ptr %8, align 8
  %3357 = extractvalue { ptr, i32 } %3355, 1
  store i32 %3357, ptr %9, align 4
  br label %3440

3358:                                             ; preds = %3270
  %3359 = landingpad { ptr, i32 }
          cleanup
  %3360 = extractvalue { ptr, i32 } %3359, 0
  store ptr %3360, ptr %8, align 8
  %3361 = extractvalue { ptr, i32 } %3359, 1
  store i32 %3361, ptr %9, align 4
  br label %3439

3362:                                             ; preds = %3271
  %3363 = landingpad { ptr, i32 }
          cleanup
  %3364 = extractvalue { ptr, i32 } %3363, 0
  store ptr %3364, ptr %8, align 8
  %3365 = extractvalue { ptr, i32 } %3363, 1
  store i32 %3365, ptr %9, align 4
  br label %3438

3366:                                             ; preds = %3279, %3272
  %3367 = landingpad { ptr, i32 }
          cleanup
  %3368 = extractvalue { ptr, i32 } %3367, 0
  store ptr %3368, ptr %8, align 8
  %3369 = extractvalue { ptr, i32 } %3367, 1
  store i32 %3369, ptr %9, align 4
  br label %3437

3370:                                             ; preds = %3273
  %3371 = landingpad { ptr, i32 }
          cleanup
  %3372 = extractvalue { ptr, i32 } %3371, 0
  store ptr %3372, ptr %8, align 8
  %3373 = extractvalue { ptr, i32 } %3371, 1
  store i32 %3373, ptr %9, align 4
  br label %3398

3374:                                             ; preds = %3274
  %3375 = landingpad { ptr, i32 }
          cleanup
  %3376 = extractvalue { ptr, i32 } %3375, 0
  store ptr %3376, ptr %8, align 8
  %3377 = extractvalue { ptr, i32 } %3375, 1
  store i32 %3377, ptr %9, align 4
  br label %3397

3378:                                             ; preds = %3275
  %3379 = landingpad { ptr, i32 }
          cleanup
  %3380 = extractvalue { ptr, i32 } %3379, 0
  store ptr %3380, ptr %8, align 8
  %3381 = extractvalue { ptr, i32 } %3379, 1
  store i32 %3381, ptr %9, align 4
  br label %3396

3382:                                             ; preds = %3276
  %3383 = landingpad { ptr, i32 }
          cleanup
  %3384 = extractvalue { ptr, i32 } %3383, 0
  store ptr %3384, ptr %8, align 8
  %3385 = extractvalue { ptr, i32 } %3383, 1
  store i32 %3385, ptr %9, align 4
  br label %3395

3386:                                             ; preds = %3277
  %3387 = landingpad { ptr, i32 }
          cleanup
  %3388 = extractvalue { ptr, i32 } %3387, 0
  store ptr %3388, ptr %8, align 8
  %3389 = extractvalue { ptr, i32 } %3387, 1
  store i32 %3389, ptr %9, align 4
  br label %3394

3390:                                             ; preds = %3278
  %3391 = landingpad { ptr, i32 }
          cleanup
  %3392 = extractvalue { ptr, i32 } %3391, 0
  store ptr %3392, ptr %8, align 8
  %3393 = extractvalue { ptr, i32 } %3391, 1
  store i32 %3393, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %342) #9
  br label %3394

3394:                                             ; preds = %3390, %3386
  call void @llvm.lifetime.end.p0(i64 56, ptr %342) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %337) #9
  br label %3395

3395:                                             ; preds = %3394, %3382
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %340) #9
  br label %3396

3396:                                             ; preds = %3395, %3378
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %341) #9
  br label %3397

3397:                                             ; preds = %3396, %3374
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %338) #9
  br label %3398

3398:                                             ; preds = %3397, %3370
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %339) #9
  br label %3437

3399:                                             ; preds = %3280
  %3400 = landingpad { ptr, i32 }
          cleanup
  %3401 = extractvalue { ptr, i32 } %3400, 0
  store ptr %3401, ptr %8, align 8
  %3402 = extractvalue { ptr, i32 } %3400, 1
  store i32 %3402, ptr %9, align 4
  br label %3427

3403:                                             ; preds = %3281
  %3404 = landingpad { ptr, i32 }
          cleanup
  %3405 = extractvalue { ptr, i32 } %3404, 0
  store ptr %3405, ptr %8, align 8
  %3406 = extractvalue { ptr, i32 } %3404, 1
  store i32 %3406, ptr %9, align 4
  br label %3426

3407:                                             ; preds = %3284, %3282
  %3408 = landingpad { ptr, i32 }
          cleanup
  %3409 = extractvalue { ptr, i32 } %3408, 0
  store ptr %3409, ptr %8, align 8
  %3410 = extractvalue { ptr, i32 } %3408, 1
  store i32 %3410, ptr %9, align 4
  br label %3425

3411:                                             ; preds = %3285
  %3412 = landingpad { ptr, i32 }
          cleanup
  %3413 = extractvalue { ptr, i32 } %3412, 0
  store ptr %3413, ptr %8, align 8
  %3414 = extractvalue { ptr, i32 } %3412, 1
  store i32 %3414, ptr %9, align 4
  br label %3424

3415:                                             ; preds = %3286
  %3416 = landingpad { ptr, i32 }
          cleanup
  %3417 = extractvalue { ptr, i32 } %3416, 0
  store ptr %3417, ptr %8, align 8
  %3418 = extractvalue { ptr, i32 } %3416, 1
  store i32 %3418, ptr %9, align 4
  br label %3423

3419:                                             ; preds = %3287
  %3420 = landingpad { ptr, i32 }
          cleanup
  %3421 = extractvalue { ptr, i32 } %3420, 0
  store ptr %3421, ptr %8, align 8
  %3422 = extractvalue { ptr, i32 } %3420, 1
  store i32 %3422, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %348) #9
  br label %3423

3423:                                             ; preds = %3419, %3415
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %347) #9
  br label %3424

3424:                                             ; preds = %3423, %3411
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %346) #9
  br label %3425

3425:                                             ; preds = %3424, %3407
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %345) #9
  br label %3426

3426:                                             ; preds = %3425, %3403
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %344) #9
  br label %3427

3427:                                             ; preds = %3426, %3399
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %343) #9
  br label %3437

3428:                                             ; preds = %3289
  %3429 = landingpad { ptr, i32 }
          cleanup
  %3430 = extractvalue { ptr, i32 } %3429, 0
  store ptr %3430, ptr %8, align 8
  %3431 = extractvalue { ptr, i32 } %3429, 1
  store i32 %3431, ptr %9, align 4
  br label %3436

3432:                                             ; preds = %3290
  %3433 = landingpad { ptr, i32 }
          cleanup
  %3434 = extractvalue { ptr, i32 } %3433, 0
  store ptr %3434, ptr %8, align 8
  %3435 = extractvalue { ptr, i32 } %3433, 1
  store i32 %3435, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %350) #9
  br label %3436

3436:                                             ; preds = %3432, %3428
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %350) #9
  br label %3437

3437:                                             ; preds = %3436, %3427, %3398, %3366
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %335) #9
  br label %3438

3438:                                             ; preds = %3437, %3362
  call void @llvm.lifetime.end.p0(i64 32, ptr %335) #9
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %334) #9
  br label %3439

3439:                                             ; preds = %3438, %3358
  call void @llvm.lifetime.end.p0(i64 16, ptr %334) #9
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %333) #9
  br label %3440

3440:                                             ; preds = %3439, %3354
  call void @llvm.lifetime.end.p0(i64 16, ptr %333) #9
  br label %9780

3441:                                             ; preds = %3291
  %3442 = landingpad { ptr, i32 }
          cleanup
  %3443 = extractvalue { ptr, i32 } %3442, 0
  store ptr %3443, ptr %8, align 8
  %3444 = extractvalue { ptr, i32 } %3442, 1
  store i32 %3444, ptr %9, align 4
  br label %4142

3445:                                             ; preds = %3292
  %3446 = landingpad { ptr, i32 }
          cleanup
  %3447 = extractvalue { ptr, i32 } %3446, 0
  store ptr %3447, ptr %8, align 8
  %3448 = extractvalue { ptr, i32 } %3446, 1
  store i32 %3448, ptr %9, align 4
  br label %4141

3449:                                             ; preds = %3293
  %3450 = landingpad { ptr, i32 }
          cleanup
  %3451 = extractvalue { ptr, i32 } %3450, 0
  store ptr %3451, ptr %8, align 8
  %3452 = extractvalue { ptr, i32 } %3450, 1
  store i32 %3452, ptr %9, align 4
  br label %3457

3453:                                             ; preds = %3294
  %3454 = landingpad { ptr, i32 }
          cleanup
  %3455 = extractvalue { ptr, i32 } %3454, 0
  store ptr %3455, ptr %8, align 8
  %3456 = extractvalue { ptr, i32 } %3454, 1
  store i32 %3456, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %355) #9
  br label %3457

3457:                                             ; preds = %3453, %3449
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %356) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %356) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %355) #9
  br label %4140

3458:                                             ; preds = %3295
  %3459 = landingpad { ptr, i32 }
          cleanup
  %3460 = extractvalue { ptr, i32 } %3459, 0
  store ptr %3460, ptr %8, align 8
  %3461 = extractvalue { ptr, i32 } %3459, 1
  store i32 %3461, ptr %9, align 4
  br label %3466

3462:                                             ; preds = %3296
  %3463 = landingpad { ptr, i32 }
          cleanup
  %3464 = extractvalue { ptr, i32 } %3463, 0
  store ptr %3464, ptr %8, align 8
  %3465 = extractvalue { ptr, i32 } %3463, 1
  store i32 %3465, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %358) #9
  br label %3466

3466:                                             ; preds = %3462, %3458
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %359) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %359) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %358) #9
  br label %4139

3467:                                             ; preds = %3297
  %3468 = landingpad { ptr, i32 }
          cleanup
  %3469 = extractvalue { ptr, i32 } %3468, 0
  store ptr %3469, ptr %8, align 8
  %3470 = extractvalue { ptr, i32 } %3468, 1
  store i32 %3470, ptr %9, align 4
  br label %3475

3471:                                             ; preds = %3298
  %3472 = landingpad { ptr, i32 }
          cleanup
  %3473 = extractvalue { ptr, i32 } %3472, 0
  store ptr %3473, ptr %8, align 8
  %3474 = extractvalue { ptr, i32 } %3472, 1
  store i32 %3474, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #9
  br label %3475

3475:                                             ; preds = %3471, %3467
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %362) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %362) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %361) #9
  br label %4138

3476:                                             ; preds = %3299
  %3477 = landingpad { ptr, i32 }
          cleanup
  %3478 = extractvalue { ptr, i32 } %3477, 0
  store ptr %3478, ptr %8, align 8
  %3479 = extractvalue { ptr, i32 } %3477, 1
  store i32 %3479, ptr %9, align 4
  br label %3484

3480:                                             ; preds = %3300
  %3481 = landingpad { ptr, i32 }
          cleanup
  %3482 = extractvalue { ptr, i32 } %3481, 0
  store ptr %3482, ptr %8, align 8
  %3483 = extractvalue { ptr, i32 } %3481, 1
  store i32 %3483, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #9
  br label %3484

3484:                                             ; preds = %3480, %3476
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %365) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %365) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %364) #9
  br label %4137

3485:                                             ; preds = %3301
  %3486 = landingpad { ptr, i32 }
          cleanup
  %3487 = extractvalue { ptr, i32 } %3486, 0
  store ptr %3487, ptr %8, align 8
  %3488 = extractvalue { ptr, i32 } %3486, 1
  store i32 %3488, ptr %9, align 4
  br label %4136

3489:                                             ; preds = %3303
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %368, i32 noundef 1)
          to label %3490 unwind label %3498

3490:                                             ; preds = %3489
  %3491 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %366, ptr noundef %368)
          to label %3492 unwind label %3502

3492:                                             ; preds = %3490
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %368) #9
  call void @_ZN6Halide4ExprC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %369, ptr noundef nonnull align 8 dereferenceable(8) %366) #9
  %3493 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidemLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %366, ptr noundef %369)
          to label %3494 unwind label %3506

3494:                                             ; preds = %3492
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %369) #9
  br label %3495

3495:                                             ; preds = %3494
  %3496 = load i32, ptr %367, align 4, !tbaa !5
  %3497 = add nsw i32 %3496, 1
  store i32 %3497, ptr %367, align 4, !tbaa !5
  br label %3303, !llvm.loop !17

3498:                                             ; preds = %3489
  %3499 = landingpad { ptr, i32 }
          cleanup
  %3500 = extractvalue { ptr, i32 } %3499, 0
  store ptr %3500, ptr %8, align 8
  %3501 = extractvalue { ptr, i32 } %3499, 1
  store i32 %3501, ptr %9, align 4
  br label %3510

3502:                                             ; preds = %3490
  %3503 = landingpad { ptr, i32 }
          cleanup
  %3504 = extractvalue { ptr, i32 } %3503, 0
  store ptr %3504, ptr %8, align 8
  %3505 = extractvalue { ptr, i32 } %3503, 1
  store i32 %3505, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %368) #9
  br label %3510

3506:                                             ; preds = %3492
  %3507 = landingpad { ptr, i32 }
          cleanup
  %3508 = extractvalue { ptr, i32 } %3507, 0
  store ptr %3508, ptr %8, align 8
  %3509 = extractvalue { ptr, i32 } %3507, 1
  store i32 %3509, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %369) #9
  br label %3510

3510:                                             ; preds = %3506, %3502, %3498
  call void @llvm.lifetime.end.p0(i64 4, ptr %367) #9
  br label %4135

3511:                                             ; preds = %3306
  call void @_ZN6Halide4ExprC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %371, ptr noundef nonnull align 8 dereferenceable(8) %366) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %372) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %372, ptr noundef nonnull align 8 dereferenceable(32) %354, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %3512 unwind label %3702

3512:                                             ; preds = %3511
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %370, ptr noundef nonnull align 8 dereferenceable(56) %372, ptr noundef %371)
          to label %3513 unwind label %3706

3513:                                             ; preds = %3512
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %370) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %372) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %372) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %371) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %378) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %378, ptr noundef nonnull align 8 dereferenceable(32) %354, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %3514 unwind label %3711

3514:                                             ; preds = %3513
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %377, ptr noundef nonnull align 8 dereferenceable(56) %378)
          to label %3515 unwind label %3715

3515:                                             ; preds = %3514
  call void @llvm.lifetime.start.p0(i64 56, ptr %380) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %380, ptr noundef nonnull align 8 dereferenceable(32) %354, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %3516 unwind label %3719

3516:                                             ; preds = %3515
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %379, ptr noundef nonnull align 8 dereferenceable(56) %380)
          to label %3517 unwind label %3723

3517:                                             ; preds = %3516
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %376, ptr noundef %377, ptr noundef %379)
          to label %3518 unwind label %3727

3518:                                             ; preds = %3517
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %383, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3519 unwind label %3731

3519:                                             ; preds = %3518
  call void @llvm.lifetime.start.p0(i64 56, ptr %385) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %385, ptr noundef nonnull align 8 dereferenceable(32) %354, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %3520 unwind label %3735

3520:                                             ; preds = %3519
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %384, ptr noundef nonnull align 8 dereferenceable(56) %385)
          to label %3521 unwind label %3739

3521:                                             ; preds = %3520
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %382, ptr noundef %383, ptr noundef %384)
          to label %3522 unwind label %3743

3522:                                             ; preds = %3521
  call void @llvm.lifetime.start.p0(i64 56, ptr %388) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %388, ptr noundef nonnull align 8 dereferenceable(32) %354, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %3523 unwind label %3747

3523:                                             ; preds = %3522
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %387, ptr noundef nonnull align 8 dereferenceable(56) %388)
          to label %3524 unwind label %3751

3524:                                             ; preds = %3523
  invoke void @_ZN6HalideplEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %386, i32 noundef 1, ptr noundef %387)
          to label %3525 unwind label %3755

3525:                                             ; preds = %3524
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %381, ptr noundef %382, ptr noundef %386)
          to label %3526 unwind label %3759

3526:                                             ; preds = %3525
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %375, ptr noundef %376, ptr noundef %381)
          to label %3527 unwind label %3763

3527:                                             ; preds = %3526
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %391, ptr noundef nonnull align 8 dereferenceable(32) %353)
          to label %3528 unwind label %3767

3528:                                             ; preds = %3527
  call void @llvm.lifetime.start.p0(i64 56, ptr %393) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %393, ptr noundef nonnull align 8 dereferenceable(32) %354, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %3529 unwind label %3771

3529:                                             ; preds = %3528
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %392, ptr noundef nonnull align 8 dereferenceable(56) %393)
          to label %3530 unwind label %3775

3530:                                             ; preds = %3529
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %390, ptr noundef %391, ptr noundef %392)
          to label %3531 unwind label %3779

3531:                                             ; preds = %3530
  invoke void @_ZN6Halide4sqrtENS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %389, ptr noundef %390)
          to label %3532 unwind label %3783

3532:                                             ; preds = %3531
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %374, ptr noundef %375, ptr noundef %389)
          to label %3533 unwind label %3787

3533:                                             ; preds = %3532
  call void @llvm.lifetime.start.p0(i64 56, ptr %394) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_S3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %394, ptr noundef nonnull align 8 dereferenceable(32) %357, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %353)
          to label %3534 unwind label %3791

3534:                                             ; preds = %3533
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %373, ptr noundef nonnull align 8 dereferenceable(56) %394, ptr noundef %374)
          to label %3535 unwind label %3795

3535:                                             ; preds = %3534
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %373) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %394) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %394) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %374) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %389) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %390) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %392) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %393) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %393) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %391) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %375) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %381) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %386) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %387) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %388) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %388) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %382) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %384) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %385) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %385) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %383) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %376) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %379) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %380) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %380) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %377) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %378) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %378) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %400) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %401, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3536 unwind label %3820

3536:                                             ; preds = %3535
  call void @llvm.lifetime.start.p0(i64 8, ptr %402) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %404, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %3537 unwind label %3824

3537:                                             ; preds = %3536
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %403, i32 noundef 2, ptr noundef %404)
          to label %3538 unwind label %3828

3538:                                             ; preds = %3537
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %402, ptr noundef %403, i32 noundef 1)
          to label %3539 unwind label %3832

3539:                                             ; preds = %3538
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprERNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %400, ptr noundef nonnull align 8 dereferenceable(32) %357, ptr noundef %401, ptr noundef nonnull align 8 dereferenceable(8) %402, ptr noundef nonnull align 8 dereferenceable(32) %353)
          to label %3540 unwind label %3836

3540:                                             ; preds = %3539
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %399, ptr noundef nonnull align 8 dereferenceable(56) %400)
          to label %3541 unwind label %3840

3541:                                             ; preds = %3540
  call void @llvm.lifetime.start.p0(i64 56, ptr %406) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %407, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3542 unwind label %3844

3542:                                             ; preds = %3541
  call void @llvm.lifetime.start.p0(i64 8, ptr %408) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %409, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %3543 unwind label %3848

3543:                                             ; preds = %3542
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %408, i32 noundef 2, ptr noundef %409)
          to label %3544 unwind label %3852

3544:                                             ; preds = %3543
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprERNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %406, ptr noundef nonnull align 8 dereferenceable(32) %357, ptr noundef %407, ptr noundef nonnull align 8 dereferenceable(8) %408, ptr noundef nonnull align 8 dereferenceable(32) %353)
          to label %3545 unwind label %3856

3545:                                             ; preds = %3544
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %405, ptr noundef nonnull align 8 dereferenceable(56) %406)
          to label %3546 unwind label %3860

3546:                                             ; preds = %3545
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %398, ptr noundef %399, ptr noundef %405)
          to label %3547 unwind label %3864

3547:                                             ; preds = %3546
  call void @llvm.lifetime.start.p0(i64 56, ptr %411) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %412, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3548 unwind label %3868

3548:                                             ; preds = %3547
  call void @llvm.lifetime.start.p0(i64 8, ptr %413) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %415, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %3549 unwind label %3872

3549:                                             ; preds = %3548
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %414, i32 noundef 2, ptr noundef %415)
          to label %3550 unwind label %3876

3550:                                             ; preds = %3549
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %413, ptr noundef %414, i32 noundef 1)
          to label %3551 unwind label %3880

3551:                                             ; preds = %3550
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprERNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %411, ptr noundef nonnull align 8 dereferenceable(32) %357, ptr noundef %412, ptr noundef nonnull align 8 dereferenceable(8) %413, ptr noundef nonnull align 8 dereferenceable(32) %353)
          to label %3552 unwind label %3884

3552:                                             ; preds = %3551
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %410, ptr noundef nonnull align 8 dereferenceable(56) %411)
          to label %3553 unwind label %3888

3553:                                             ; preds = %3552
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %397, ptr noundef %398, ptr noundef %410)
          to label %3554 unwind label %3892

3554:                                             ; preds = %3553
  call void @llvm.lifetime.start.p0(i64 56, ptr %417) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %418, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3555 unwind label %3896

3555:                                             ; preds = %3554
  call void @llvm.lifetime.start.p0(i64 8, ptr %419) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %421, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %3556 unwind label %3900

3556:                                             ; preds = %3555
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %420, i32 noundef 2, ptr noundef %421)
          to label %3557 unwind label %3904

3557:                                             ; preds = %3556
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %419, ptr noundef %420, i32 noundef 2)
          to label %3558 unwind label %3908

3558:                                             ; preds = %3557
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprERNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %417, ptr noundef nonnull align 8 dereferenceable(32) %357, ptr noundef %418, ptr noundef nonnull align 8 dereferenceable(8) %419, ptr noundef nonnull align 8 dereferenceable(32) %353)
          to label %3559 unwind label %3912

3559:                                             ; preds = %3558
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %416, ptr noundef nonnull align 8 dereferenceable(56) %417)
          to label %3560 unwind label %3916

3560:                                             ; preds = %3559
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %396, ptr noundef %397, ptr noundef %416)
          to label %3561 unwind label %3920

3561:                                             ; preds = %3560
  call void @llvm.lifetime.start.p0(i64 56, ptr %422) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_S3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %422, ptr noundef nonnull align 8 dereferenceable(32) %360, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %353)
          to label %3562 unwind label %3924

3562:                                             ; preds = %3561
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %395, ptr noundef nonnull align 8 dereferenceable(56) %422, ptr noundef %396)
          to label %3563 unwind label %3928

3563:                                             ; preds = %3562
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %395) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %422) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %422) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %396) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %416) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %417) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %419) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %420) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %421) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %419) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %418) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %417) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %397) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %410) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %411) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %413) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %414) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %415) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %413) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %412) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %411) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %398) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %405) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %406) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %408) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %409) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %408) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %407) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %406) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %399) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %400) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %402) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %403) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %404) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %402) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %401) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %400) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %428) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %431, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3564 unwind label %3959

3564:                                             ; preds = %3563
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %430, i32 noundef 2, ptr noundef %431)
          to label %3565 unwind label %3963

3565:                                             ; preds = %3564
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %429, ptr noundef %430, i32 noundef 1)
          to label %3566 unwind label %3967

3566:                                             ; preds = %3565
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %428, ptr noundef nonnull align 8 dereferenceable(32) %360, ptr noundef %429, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %353)
          to label %3567 unwind label %3971

3567:                                             ; preds = %3566
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %427, ptr noundef nonnull align 8 dereferenceable(56) %428)
          to label %3568 unwind label %3975

3568:                                             ; preds = %3567
  call void @llvm.lifetime.start.p0(i64 56, ptr %433) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %435, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3569 unwind label %3979

3569:                                             ; preds = %3568
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %434, i32 noundef 2, ptr noundef %435)
          to label %3570 unwind label %3983

3570:                                             ; preds = %3569
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %433, ptr noundef nonnull align 8 dereferenceable(32) %360, ptr noundef %434, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %353)
          to label %3571 unwind label %3987

3571:                                             ; preds = %3570
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %432, ptr noundef nonnull align 8 dereferenceable(56) %433)
          to label %3572 unwind label %3991

3572:                                             ; preds = %3571
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %426, ptr noundef %427, ptr noundef %432)
          to label %3573 unwind label %3995

3573:                                             ; preds = %3572
  call void @llvm.lifetime.start.p0(i64 56, ptr %437) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %440, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3574 unwind label %3999

3574:                                             ; preds = %3573
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %439, i32 noundef 2, ptr noundef %440)
          to label %3575 unwind label %4003

3575:                                             ; preds = %3574
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %438, ptr noundef %439, i32 noundef 1)
          to label %3576 unwind label %4007

3576:                                             ; preds = %3575
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %437, ptr noundef nonnull align 8 dereferenceable(32) %360, ptr noundef %438, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %353)
          to label %3577 unwind label %4011

3577:                                             ; preds = %3576
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %436, ptr noundef nonnull align 8 dereferenceable(56) %437)
          to label %3578 unwind label %4015

3578:                                             ; preds = %3577
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %425, ptr noundef %426, ptr noundef %436)
          to label %3579 unwind label %4019

3579:                                             ; preds = %3578
  call void @llvm.lifetime.start.p0(i64 56, ptr %442) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %445, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3580 unwind label %4023

3580:                                             ; preds = %3579
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %444, i32 noundef 2, ptr noundef %445)
          to label %3581 unwind label %4027

3581:                                             ; preds = %3580
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %443, ptr noundef %444, i32 noundef 2)
          to label %3582 unwind label %4031

3582:                                             ; preds = %3581
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %442, ptr noundef nonnull align 8 dereferenceable(32) %360, ptr noundef %443, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %353)
          to label %3583 unwind label %4035

3583:                                             ; preds = %3582
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %441, ptr noundef nonnull align 8 dereferenceable(56) %442)
          to label %3584 unwind label %4039

3584:                                             ; preds = %3583
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %424, ptr noundef %425, ptr noundef %441)
          to label %3585 unwind label %4043

3585:                                             ; preds = %3584
  call void @llvm.lifetime.start.p0(i64 56, ptr %446) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_S3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %446, ptr noundef nonnull align 8 dereferenceable(32) %363, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %353)
          to label %3586 unwind label %4047

3586:                                             ; preds = %3585
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %423, ptr noundef nonnull align 8 dereferenceable(56) %446, ptr noundef %424)
          to label %3587 unwind label %4051

3587:                                             ; preds = %3586
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %423) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %446) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %446) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %424) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %441) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %442) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %443) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %444) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %445) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %442) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %425) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %436) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %437) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %438) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %439) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %440) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %437) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %426) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %432) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %433) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %434) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %435) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %433) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %427) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %428) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %429) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %430) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %431) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %428) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %447, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %3588 unwind label %4078

3588:                                             ; preds = %3587
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %448, i32 noundef 1)
          to label %3589 unwind label %4082

3589:                                             ; preds = %3588
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %449, i32 noundef 1022)
          to label %3590 unwind label %4086

3590:                                             ; preds = %3589
  %3591 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %363, ptr noundef %447, ptr noundef %448, ptr noundef %449)
          to label %3592 unwind label %4090

3592:                                             ; preds = %3590
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %450, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %3593 unwind label %4090

3593:                                             ; preds = %3592
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %451, i32 noundef 1)
          to label %3594 unwind label %4094

3594:                                             ; preds = %3593
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %452, i32 noundef 1022)
          to label %3595 unwind label %4098

3595:                                             ; preds = %3594
  %3596 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %3591, ptr noundef %450, ptr noundef %451, ptr noundef %452)
          to label %3597 unwind label %4102

3597:                                             ; preds = %3595
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %453, ptr noundef nonnull align 8 dereferenceable(32) %353)
          to label %3598 unwind label %4102

3598:                                             ; preds = %3597
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %454, i32 noundef 0)
          to label %3599 unwind label %4106

3599:                                             ; preds = %3598
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %455, i32 noundef 256)
          to label %3600 unwind label %4110

3600:                                             ; preds = %3599
  %3601 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %3596, ptr noundef %453, ptr noundef %454, ptr noundef %455)
          to label %3602 unwind label %4114

3602:                                             ; preds = %3600
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %455) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %454) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %453) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %452) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %451) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %450) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %449) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %448) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %447) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %457) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %458, ptr noundef nonnull align 8 dereferenceable(32) %363) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %457, ptr noundef %458)
          to label %3603 unwind label %4126

3603:                                             ; preds = %3602
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %456, ptr noundef nonnull align 8 dereferenceable(8) %457, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %3604 unwind label %4130

3604:                                             ; preds = %3603
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %456) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %457) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %458) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %457) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %366) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %366) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %363) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %363) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %360) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %360) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %357) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %357) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %354) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %353) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %353) #9
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %352) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %352) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %459) #9
  invoke void @_ZN6Halide6BufferIfEC2IJiEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %459, i32 noundef 1024, i32 noundef 1024)
          to label %3605 unwind label %4143

3605:                                             ; preds = %3604
  call void @llvm.lifetime.start.p0(i64 32, ptr %460) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %461) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %462) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %462) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %461, ptr noundef @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %462)
          to label %3606 unwind label %4147

3606:                                             ; preds = %3605
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %460, ptr noundef nonnull align 8 dereferenceable(32) %461)
          to label %3607 unwind label %4151

3607:                                             ; preds = %3606
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %461) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %462) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %462) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %461) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %463) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %464) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %465)
          to label %3608 unwind label %4156

3608:                                             ; preds = %3607
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %463, ptr noundef nonnull align 8 dereferenceable(32) %464)
          to label %3609 unwind label %4160

3609:                                             ; preds = %3608
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %464) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %465) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %465) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %464) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %466) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %467) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %468) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %468) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %467, ptr noundef @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %468)
          to label %3610 unwind label %4165

3610:                                             ; preds = %3609
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %466, ptr noundef nonnull align 8 dereferenceable(32) %467)
          to label %3611 unwind label %4169

3611:                                             ; preds = %3610
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %467) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %468) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %468) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %467) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %469) #9
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %469)
          to label %3612 unwind label %4174

3612:                                             ; preds = %3611
  call void @llvm.lifetime.start.p0(i64 32, ptr %470) #9
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %470)
          to label %3613 unwind label %4178

3613:                                             ; preds = %3612
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %473, ptr noundef nonnull align 8 dereferenceable(32) %469)
          to label %3614 unwind label %4182

3614:                                             ; preds = %3613
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %474, ptr noundef nonnull align 8 dereferenceable(32) %470)
          to label %3615 unwind label %4186

3615:                                             ; preds = %3614
  invoke void @_ZN6Halide3powENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %472, ptr noundef %473, ptr noundef %474)
          to label %3616 unwind label %4190

3616:                                             ; preds = %3615
  call void @llvm.lifetime.start.p0(i64 56, ptr %475) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %475, ptr noundef nonnull align 8 dereferenceable(32) %466, ptr noundef nonnull align 8 dereferenceable(32) %469, ptr noundef nonnull align 8 dereferenceable(32) %470)
          to label %3617 unwind label %4194

3617:                                             ; preds = %3616
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %471, ptr noundef nonnull align 8 dereferenceable(56) %475, ptr noundef %472)
          to label %3618 unwind label %4198

3618:                                             ; preds = %3617
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %471) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %475) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %475) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %472) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %474) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %473) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %478) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %479, ptr noundef nonnull align 8 dereferenceable(32) %469)
          to label %3619 unwind label %4205

3619:                                             ; preds = %3618
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %480, ptr noundef nonnull align 8 dereferenceable(32) %470)
          to label %3620 unwind label %4209

3620:                                             ; preds = %3619
  invoke void @_ZNK6Halide6BufferIfEclIJNS_3VarEEEENS_4ExprES4_DpT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %478, ptr noundef nonnull align 8 dereferenceable(16) %459, ptr noundef %479, ptr noundef %480)
          to label %3621 unwind label %4213

3621:                                             ; preds = %3620
  invoke void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %477, ptr noundef nonnull align 8 dereferenceable(8) %478, i32 noundef 2)
          to label %3622 unwind label %4217

3622:                                             ; preds = %3621
  call void @llvm.lifetime.start.p0(i64 56, ptr %481) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %481, ptr noundef nonnull align 8 dereferenceable(32) %460, ptr noundef nonnull align 8 dereferenceable(32) %469, ptr noundef nonnull align 8 dereferenceable(32) %470)
          to label %3623 unwind label %4221

3623:                                             ; preds = %3622
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %476, ptr noundef nonnull align 8 dereferenceable(56) %481, ptr noundef %477)
          to label %3624 unwind label %4225

3624:                                             ; preds = %3623
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %476) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %481) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %481) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %477) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %478) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %480) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %479) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %478) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %483, i32 noundef 17)
          to label %3625 unwind label %4182

3625:                                             ; preds = %3624
  call void @llvm.lifetime.start.p0(i64 56, ptr %484) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %484, ptr noundef nonnull align 8 dereferenceable(32) %460, ptr noundef nonnull align 8 dereferenceable(32) %469, ptr noundef nonnull align 8 dereferenceable(32) %470)
          to label %3626 unwind label %4234

3626:                                             ; preds = %3625
  invoke void @_ZN6Halide7FuncRefpLENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %482, ptr noundef nonnull align 8 dereferenceable(56) %484, ptr noundef %483)
          to label %3627 unwind label %4238

3627:                                             ; preds = %3626
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %482) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %484) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %484) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %483) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr %485) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %486, i32 noundef 0)
          to label %3628 unwind label %4243

3628:                                             ; preds = %3627
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %487, i32 noundef 10)
          to label %3629 unwind label %4247

3629:                                             ; preds = %3628
  invoke void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %485, ptr noundef %486, ptr noundef %487)
          to label %3630 unwind label %4251

3630:                                             ; preds = %3629
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %487) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %486) #9
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %490, ptr noundef nonnull align 8 dereferenceable(200) %485)
          to label %3631 unwind label %4256

3631:                                             ; preds = %3630
  call void @llvm.lifetime.start.p0(i64 56, ptr %492) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %492, ptr noundef nonnull align 8 dereferenceable(32) %466, ptr noundef nonnull align 8 dereferenceable(32) %469, ptr noundef nonnull align 8 dereferenceable(32) %470)
          to label %3632 unwind label %4260

3632:                                             ; preds = %3631
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %491, ptr noundef nonnull align 8 dereferenceable(56) %492)
          to label %3633 unwind label %4264

3633:                                             ; preds = %3632
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %489, ptr noundef %490, ptr noundef %491)
          to label %3634 unwind label %4268

3634:                                             ; preds = %3633
  call void @llvm.lifetime.start.p0(i64 56, ptr %493) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %493, ptr noundef nonnull align 8 dereferenceable(32) %460, ptr noundef nonnull align 8 dereferenceable(32) %469, ptr noundef nonnull align 8 dereferenceable(32) %470)
          to label %3635 unwind label %4272

3635:                                             ; preds = %3634
  invoke void @_ZN6Halide7FuncRefpLENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %488, ptr noundef nonnull align 8 dereferenceable(56) %493, ptr noundef %489)
          to label %3636 unwind label %4276

3636:                                             ; preds = %3635
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %488) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %493) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %493) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %489) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %491) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %492) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %492) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %490) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %495, i32 noundef 2)
          to label %3637 unwind label %4256

3637:                                             ; preds = %3636
  call void @llvm.lifetime.start.p0(i64 56, ptr %496) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %496, ptr noundef nonnull align 8 dereferenceable(32) %460, ptr noundef nonnull align 8 dereferenceable(32) %469, ptr noundef nonnull align 8 dereferenceable(32) %470)
          to label %3638 unwind label %4284

3638:                                             ; preds = %3637
  invoke void @_ZN6Halide7FuncRefmLENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %494, ptr noundef nonnull align 8 dereferenceable(56) %496, ptr noundef %495)
          to label %3639 unwind label %4288

3639:                                             ; preds = %3638
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %494) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %496) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %496) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %495) #9
  invoke void @_ZN6Halide4ExprC2Ef(ptr noundef nonnull align 8 dereferenceable(8) %498, float noundef 2.300000e+01)
          to label %3640 unwind label %4256

3640:                                             ; preds = %3639
  call void @llvm.lifetime.start.p0(i64 56, ptr %499) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %500, i32 noundef 0)
          to label %3641 unwind label %4293

3641:                                             ; preds = %3640
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %499, ptr noundef nonnull align 8 dereferenceable(32) %460, ptr noundef %500, ptr noundef nonnull align 8 dereferenceable(32) %470)
          to label %3642 unwind label %4297

3642:                                             ; preds = %3641
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %497, ptr noundef nonnull align 8 dereferenceable(56) %499, ptr noundef %498)
          to label %3643 unwind label %4301

3643:                                             ; preds = %3642
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %497) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %499) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %500) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %499) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %498) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %504) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %506, ptr noundef nonnull align 8 dereferenceable(32) %469)
          to label %3644 unwind label %4307

3644:                                             ; preds = %3643
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %505, ptr noundef %506, i32 noundef 1)
          to label %3645 unwind label %4311

3645:                                             ; preds = %3644
  call void @llvm.lifetime.start.p0(i64 8, ptr %507) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %508, ptr noundef nonnull align 8 dereferenceable(32) %470)
          to label %3646 unwind label %4315

3646:                                             ; preds = %3645
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %507, ptr noundef %508, i32 noundef 1)
          to label %3647 unwind label %4319

3647:                                             ; preds = %3646
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %504, ptr noundef nonnull align 8 dereferenceable(32) %460, ptr noundef %505, ptr noundef nonnull align 8 dereferenceable(8) %507)
          to label %3648 unwind label %4323

3648:                                             ; preds = %3647
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %503, ptr noundef nonnull align 8 dereferenceable(56) %504)
          to label %3649 unwind label %4327

3649:                                             ; preds = %3648
  call void @llvm.lifetime.start.p0(i64 56, ptr %510) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %512, ptr noundef nonnull align 8 dereferenceable(32) %469)
          to label %3650 unwind label %4331

3650:                                             ; preds = %3649
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %511, ptr noundef %512, i32 noundef 1)
          to label %3651 unwind label %4335

3651:                                             ; preds = %3650
  call void @llvm.lifetime.start.p0(i64 8, ptr %513) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %514, ptr noundef nonnull align 8 dereferenceable(32) %470)
          to label %3652 unwind label %4339

3652:                                             ; preds = %3651
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %513, ptr noundef %514, i32 noundef 1)
          to label %3653 unwind label %4343

3653:                                             ; preds = %3652
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %510, ptr noundef nonnull align 8 dereferenceable(32) %460, ptr noundef %511, ptr noundef nonnull align 8 dereferenceable(8) %513)
          to label %3654 unwind label %4347

3654:                                             ; preds = %3653
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %509, ptr noundef nonnull align 8 dereferenceable(56) %510)
          to label %3655 unwind label %4351

3655:                                             ; preds = %3654
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %502, ptr noundef %503, ptr noundef %509)
          to label %3656 unwind label %4355

3656:                                             ; preds = %3655
  call void @llvm.lifetime.start.p0(i64 56, ptr %515) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %515, ptr noundef nonnull align 8 dereferenceable(32) %463, ptr noundef nonnull align 8 dereferenceable(32) %469, ptr noundef nonnull align 8 dereferenceable(32) %470)
          to label %3657 unwind label %4359

3657:                                             ; preds = %3656
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %501, ptr noundef nonnull align 8 dereferenceable(56) %515, ptr noundef %502)
          to label %3658 unwind label %4363

3658:                                             ; preds = %3657
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %501) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %515) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %515) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %502) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %509) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %510) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %513) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %514) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %513) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %511) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %512) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %510) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %503) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %504) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %507) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %508) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %507) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %505) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %506) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %504) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %516, ptr noundef nonnull align 8 dereferenceable(32) %469)
          to label %3659 unwind label %4256

3659:                                             ; preds = %3658
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %517, i32 noundef 1)
          to label %3660 unwind label %4381

3660:                                             ; preds = %3659
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %518, i32 noundef 1022)
          to label %3661 unwind label %4385

3661:                                             ; preds = %3660
  %3662 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %463, ptr noundef %516, ptr noundef %517, ptr noundef %518)
          to label %3663 unwind label %4389

3663:                                             ; preds = %3661
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %519, ptr noundef nonnull align 8 dereferenceable(32) %470)
          to label %3664 unwind label %4389

3664:                                             ; preds = %3663
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %520, i32 noundef 1)
          to label %3665 unwind label %4393

3665:                                             ; preds = %3664
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %521, i32 noundef 1022)
          to label %3666 unwind label %4397

3666:                                             ; preds = %3665
  %3667 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %3662, ptr noundef %519, ptr noundef %520, ptr noundef %521)
          to label %3668 unwind label %4401

3668:                                             ; preds = %3666
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %521) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %520) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %519) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %518) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %517) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %516) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %523) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %524, ptr noundef nonnull align 8 dereferenceable(32) %463) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %523, ptr noundef %524)
          to label %3669 unwind label %4410

3669:                                             ; preds = %3668
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %522, ptr noundef nonnull align 8 dereferenceable(8) %523, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %3670 unwind label %4414

3670:                                             ; preds = %3669
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %522) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %523) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %524) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %523) #9
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %485) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %485) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %470) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %470) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %469) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %469) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %466) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %466) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %463) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %463) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %460) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %460) #9
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %459) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %459) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %525) #9
  invoke void @_ZN6Halide6BufferIfEC2IJiEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %525, i32 noundef 1024, i32 noundef 1024)
          to label %3671 unwind label %4428

3671:                                             ; preds = %3670
  call void @llvm.lifetime.start.p0(i64 160, ptr %526) #9
  %3672 = getelementptr inbounds [5 x %"class.Halide::Func"], ptr %526, i32 0, i32 0
  %3673 = getelementptr inbounds %"class.Halide::Func", ptr %3672, i64 5
  br label %3674

3674:                                             ; preds = %3676, %3671
  %3675 = phi ptr [ %3672, %3671 ], [ %3677, %3676 ]
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %3675)
          to label %3676 unwind label %4432

3676:                                             ; preds = %3674
  %3677 = getelementptr inbounds %"class.Halide::Func", ptr %3675, i64 1
  %3678 = icmp eq ptr %3677, %3673
  br i1 %3678, label %3679, label %3674

3679:                                             ; preds = %3676
  call void @llvm.lifetime.start.p0(i64 160, ptr %527) #9
  %3680 = getelementptr inbounds [5 x %"class.Halide::Func"], ptr %527, i32 0, i32 0
  %3681 = getelementptr inbounds %"class.Halide::Func", ptr %3680, i64 5
  br label %3682

3682:                                             ; preds = %3684, %3679
  %3683 = phi ptr [ %3680, %3679 ], [ %3685, %3684 ]
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %3683)
          to label %3684 unwind label %4442

3684:                                             ; preds = %3682
  %3685 = getelementptr inbounds %"class.Halide::Func", ptr %3683, i64 1
  %3686 = icmp eq ptr %3685, %3681
  br i1 %3686, label %3687, label %3682

3687:                                             ; preds = %3684
  call void @llvm.lifetime.start.p0(i64 32, ptr %528) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %529) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %530) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %530) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %529, ptr noundef @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %530)
          to label %3688 unwind label %4452

3688:                                             ; preds = %3687
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %528, ptr noundef nonnull align 8 dereferenceable(32) %529)
          to label %3689 unwind label %4456

3689:                                             ; preds = %3688
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %529) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %530) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %530) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %529) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %531) #9
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %531)
          to label %3690 unwind label %4461

3690:                                             ; preds = %3689
  call void @llvm.lifetime.start.p0(i64 32, ptr %532) #9
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %532)
          to label %3691 unwind label %4465

3691:                                             ; preds = %3690
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %535, ptr noundef nonnull align 8 dereferenceable(32) %531)
          to label %3692 unwind label %4469

3692:                                             ; preds = %3691
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %536, ptr noundef nonnull align 8 dereferenceable(32) %532)
          to label %3693 unwind label %4473

3693:                                             ; preds = %3692
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %534, ptr noundef %535, ptr noundef %536)
          to label %3694 unwind label %4477

3694:                                             ; preds = %3693
  call void @llvm.lifetime.start.p0(i64 56, ptr %537) #9
  %3695 = getelementptr inbounds [5 x %"class.Halide::Func"], ptr %526, i64 0, i64 0
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %537, ptr noundef nonnull align 8 dereferenceable(32) %3695, ptr noundef nonnull align 8 dereferenceable(32) %531, ptr noundef nonnull align 8 dereferenceable(32) %532)
          to label %3696 unwind label %4481

3696:                                             ; preds = %3694
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %533, ptr noundef nonnull align 8 dereferenceable(56) %537, ptr noundef %534)
          to label %3697 unwind label %4485

3697:                                             ; preds = %3696
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %533) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %537) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %537) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %534) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %536) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %535) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %538) #9
  store i32 1, ptr %538, align 4, !tbaa !5
  br label %3698

3698:                                             ; preds = %4505, %3697
  %3699 = load i32, ptr %538, align 4, !tbaa !5
  %3700 = icmp slt i32 %3699, 5
  br i1 %3700, label %4492, label %3701

3701:                                             ; preds = %3698
  store i32 20, ptr %311, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %538) #9
  br label %4532

3702:                                             ; preds = %3511
  %3703 = landingpad { ptr, i32 }
          cleanup
  %3704 = extractvalue { ptr, i32 } %3703, 0
  store ptr %3704, ptr %8, align 8
  %3705 = extractvalue { ptr, i32 } %3703, 1
  store i32 %3705, ptr %9, align 4
  br label %3710

3706:                                             ; preds = %3512
  %3707 = landingpad { ptr, i32 }
          cleanup
  %3708 = extractvalue { ptr, i32 } %3707, 0
  store ptr %3708, ptr %8, align 8
  %3709 = extractvalue { ptr, i32 } %3707, 1
  store i32 %3709, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %372) #9
  br label %3710

3710:                                             ; preds = %3706, %3702
  call void @llvm.lifetime.end.p0(i64 56, ptr %372) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %371) #9
  br label %4135

3711:                                             ; preds = %3513
  %3712 = landingpad { ptr, i32 }
          cleanup
  %3713 = extractvalue { ptr, i32 } %3712, 0
  store ptr %3713, ptr %8, align 8
  %3714 = extractvalue { ptr, i32 } %3712, 1
  store i32 %3714, ptr %9, align 4
  br label %3819

3715:                                             ; preds = %3514
  %3716 = landingpad { ptr, i32 }
          cleanup
  %3717 = extractvalue { ptr, i32 } %3716, 0
  store ptr %3717, ptr %8, align 8
  %3718 = extractvalue { ptr, i32 } %3716, 1
  store i32 %3718, ptr %9, align 4
  br label %3818

3719:                                             ; preds = %3515
  %3720 = landingpad { ptr, i32 }
          cleanup
  %3721 = extractvalue { ptr, i32 } %3720, 0
  store ptr %3721, ptr %8, align 8
  %3722 = extractvalue { ptr, i32 } %3720, 1
  store i32 %3722, ptr %9, align 4
  br label %3817

3723:                                             ; preds = %3516
  %3724 = landingpad { ptr, i32 }
          cleanup
  %3725 = extractvalue { ptr, i32 } %3724, 0
  store ptr %3725, ptr %8, align 8
  %3726 = extractvalue { ptr, i32 } %3724, 1
  store i32 %3726, ptr %9, align 4
  br label %3816

3727:                                             ; preds = %3517
  %3728 = landingpad { ptr, i32 }
          cleanup
  %3729 = extractvalue { ptr, i32 } %3728, 0
  store ptr %3729, ptr %8, align 8
  %3730 = extractvalue { ptr, i32 } %3728, 1
  store i32 %3730, ptr %9, align 4
  br label %3815

3731:                                             ; preds = %3518
  %3732 = landingpad { ptr, i32 }
          cleanup
  %3733 = extractvalue { ptr, i32 } %3732, 0
  store ptr %3733, ptr %8, align 8
  %3734 = extractvalue { ptr, i32 } %3732, 1
  store i32 %3734, ptr %9, align 4
  br label %3814

3735:                                             ; preds = %3519
  %3736 = landingpad { ptr, i32 }
          cleanup
  %3737 = extractvalue { ptr, i32 } %3736, 0
  store ptr %3737, ptr %8, align 8
  %3738 = extractvalue { ptr, i32 } %3736, 1
  store i32 %3738, ptr %9, align 4
  br label %3813

3739:                                             ; preds = %3520
  %3740 = landingpad { ptr, i32 }
          cleanup
  %3741 = extractvalue { ptr, i32 } %3740, 0
  store ptr %3741, ptr %8, align 8
  %3742 = extractvalue { ptr, i32 } %3740, 1
  store i32 %3742, ptr %9, align 4
  br label %3812

3743:                                             ; preds = %3521
  %3744 = landingpad { ptr, i32 }
          cleanup
  %3745 = extractvalue { ptr, i32 } %3744, 0
  store ptr %3745, ptr %8, align 8
  %3746 = extractvalue { ptr, i32 } %3744, 1
  store i32 %3746, ptr %9, align 4
  br label %3811

3747:                                             ; preds = %3522
  %3748 = landingpad { ptr, i32 }
          cleanup
  %3749 = extractvalue { ptr, i32 } %3748, 0
  store ptr %3749, ptr %8, align 8
  %3750 = extractvalue { ptr, i32 } %3748, 1
  store i32 %3750, ptr %9, align 4
  br label %3810

3751:                                             ; preds = %3523
  %3752 = landingpad { ptr, i32 }
          cleanup
  %3753 = extractvalue { ptr, i32 } %3752, 0
  store ptr %3753, ptr %8, align 8
  %3754 = extractvalue { ptr, i32 } %3752, 1
  store i32 %3754, ptr %9, align 4
  br label %3809

3755:                                             ; preds = %3524
  %3756 = landingpad { ptr, i32 }
          cleanup
  %3757 = extractvalue { ptr, i32 } %3756, 0
  store ptr %3757, ptr %8, align 8
  %3758 = extractvalue { ptr, i32 } %3756, 1
  store i32 %3758, ptr %9, align 4
  br label %3808

3759:                                             ; preds = %3525
  %3760 = landingpad { ptr, i32 }
          cleanup
  %3761 = extractvalue { ptr, i32 } %3760, 0
  store ptr %3761, ptr %8, align 8
  %3762 = extractvalue { ptr, i32 } %3760, 1
  store i32 %3762, ptr %9, align 4
  br label %3807

3763:                                             ; preds = %3526
  %3764 = landingpad { ptr, i32 }
          cleanup
  %3765 = extractvalue { ptr, i32 } %3764, 0
  store ptr %3765, ptr %8, align 8
  %3766 = extractvalue { ptr, i32 } %3764, 1
  store i32 %3766, ptr %9, align 4
  br label %3806

3767:                                             ; preds = %3527
  %3768 = landingpad { ptr, i32 }
          cleanup
  %3769 = extractvalue { ptr, i32 } %3768, 0
  store ptr %3769, ptr %8, align 8
  %3770 = extractvalue { ptr, i32 } %3768, 1
  store i32 %3770, ptr %9, align 4
  br label %3805

3771:                                             ; preds = %3528
  %3772 = landingpad { ptr, i32 }
          cleanup
  %3773 = extractvalue { ptr, i32 } %3772, 0
  store ptr %3773, ptr %8, align 8
  %3774 = extractvalue { ptr, i32 } %3772, 1
  store i32 %3774, ptr %9, align 4
  br label %3804

3775:                                             ; preds = %3529
  %3776 = landingpad { ptr, i32 }
          cleanup
  %3777 = extractvalue { ptr, i32 } %3776, 0
  store ptr %3777, ptr %8, align 8
  %3778 = extractvalue { ptr, i32 } %3776, 1
  store i32 %3778, ptr %9, align 4
  br label %3803

3779:                                             ; preds = %3530
  %3780 = landingpad { ptr, i32 }
          cleanup
  %3781 = extractvalue { ptr, i32 } %3780, 0
  store ptr %3781, ptr %8, align 8
  %3782 = extractvalue { ptr, i32 } %3780, 1
  store i32 %3782, ptr %9, align 4
  br label %3802

3783:                                             ; preds = %3531
  %3784 = landingpad { ptr, i32 }
          cleanup
  %3785 = extractvalue { ptr, i32 } %3784, 0
  store ptr %3785, ptr %8, align 8
  %3786 = extractvalue { ptr, i32 } %3784, 1
  store i32 %3786, ptr %9, align 4
  br label %3801

3787:                                             ; preds = %3532
  %3788 = landingpad { ptr, i32 }
          cleanup
  %3789 = extractvalue { ptr, i32 } %3788, 0
  store ptr %3789, ptr %8, align 8
  %3790 = extractvalue { ptr, i32 } %3788, 1
  store i32 %3790, ptr %9, align 4
  br label %3800

3791:                                             ; preds = %3533
  %3792 = landingpad { ptr, i32 }
          cleanup
  %3793 = extractvalue { ptr, i32 } %3792, 0
  store ptr %3793, ptr %8, align 8
  %3794 = extractvalue { ptr, i32 } %3792, 1
  store i32 %3794, ptr %9, align 4
  br label %3799

3795:                                             ; preds = %3534
  %3796 = landingpad { ptr, i32 }
          cleanup
  %3797 = extractvalue { ptr, i32 } %3796, 0
  store ptr %3797, ptr %8, align 8
  %3798 = extractvalue { ptr, i32 } %3796, 1
  store i32 %3798, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %394) #9
  br label %3799

3799:                                             ; preds = %3795, %3791
  call void @llvm.lifetime.end.p0(i64 56, ptr %394) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %374) #9
  br label %3800

3800:                                             ; preds = %3799, %3787
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %389) #9
  br label %3801

3801:                                             ; preds = %3800, %3783
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %390) #9
  br label %3802

3802:                                             ; preds = %3801, %3779
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %392) #9
  br label %3803

3803:                                             ; preds = %3802, %3775
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %393) #9
  br label %3804

3804:                                             ; preds = %3803, %3771
  call void @llvm.lifetime.end.p0(i64 56, ptr %393) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %391) #9
  br label %3805

3805:                                             ; preds = %3804, %3767
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %375) #9
  br label %3806

3806:                                             ; preds = %3805, %3763
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %381) #9
  br label %3807

3807:                                             ; preds = %3806, %3759
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %386) #9
  br label %3808

3808:                                             ; preds = %3807, %3755
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %387) #9
  br label %3809

3809:                                             ; preds = %3808, %3751
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %388) #9
  br label %3810

3810:                                             ; preds = %3809, %3747
  call void @llvm.lifetime.end.p0(i64 56, ptr %388) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %382) #9
  br label %3811

3811:                                             ; preds = %3810, %3743
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %384) #9
  br label %3812

3812:                                             ; preds = %3811, %3739
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %385) #9
  br label %3813

3813:                                             ; preds = %3812, %3735
  call void @llvm.lifetime.end.p0(i64 56, ptr %385) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %383) #9
  br label %3814

3814:                                             ; preds = %3813, %3731
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %376) #9
  br label %3815

3815:                                             ; preds = %3814, %3727
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %379) #9
  br label %3816

3816:                                             ; preds = %3815, %3723
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %380) #9
  br label %3817

3817:                                             ; preds = %3816, %3719
  call void @llvm.lifetime.end.p0(i64 56, ptr %380) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %377) #9
  br label %3818

3818:                                             ; preds = %3817, %3715
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %378) #9
  br label %3819

3819:                                             ; preds = %3818, %3711
  call void @llvm.lifetime.end.p0(i64 56, ptr %378) #9
  br label %4135

3820:                                             ; preds = %3535
  %3821 = landingpad { ptr, i32 }
          cleanup
  %3822 = extractvalue { ptr, i32 } %3821, 0
  store ptr %3822, ptr %8, align 8
  %3823 = extractvalue { ptr, i32 } %3821, 1
  store i32 %3823, ptr %9, align 4
  br label %3958

3824:                                             ; preds = %3536
  %3825 = landingpad { ptr, i32 }
          cleanup
  %3826 = extractvalue { ptr, i32 } %3825, 0
  store ptr %3826, ptr %8, align 8
  %3827 = extractvalue { ptr, i32 } %3825, 1
  store i32 %3827, ptr %9, align 4
  br label %3957

3828:                                             ; preds = %3537
  %3829 = landingpad { ptr, i32 }
          cleanup
  %3830 = extractvalue { ptr, i32 } %3829, 0
  store ptr %3830, ptr %8, align 8
  %3831 = extractvalue { ptr, i32 } %3829, 1
  store i32 %3831, ptr %9, align 4
  br label %3956

3832:                                             ; preds = %3538
  %3833 = landingpad { ptr, i32 }
          cleanup
  %3834 = extractvalue { ptr, i32 } %3833, 0
  store ptr %3834, ptr %8, align 8
  %3835 = extractvalue { ptr, i32 } %3833, 1
  store i32 %3835, ptr %9, align 4
  br label %3955

3836:                                             ; preds = %3539
  %3837 = landingpad { ptr, i32 }
          cleanup
  %3838 = extractvalue { ptr, i32 } %3837, 0
  store ptr %3838, ptr %8, align 8
  %3839 = extractvalue { ptr, i32 } %3837, 1
  store i32 %3839, ptr %9, align 4
  br label %3954

3840:                                             ; preds = %3540
  %3841 = landingpad { ptr, i32 }
          cleanup
  %3842 = extractvalue { ptr, i32 } %3841, 0
  store ptr %3842, ptr %8, align 8
  %3843 = extractvalue { ptr, i32 } %3841, 1
  store i32 %3843, ptr %9, align 4
  br label %3953

3844:                                             ; preds = %3541
  %3845 = landingpad { ptr, i32 }
          cleanup
  %3846 = extractvalue { ptr, i32 } %3845, 0
  store ptr %3846, ptr %8, align 8
  %3847 = extractvalue { ptr, i32 } %3845, 1
  store i32 %3847, ptr %9, align 4
  br label %3952

3848:                                             ; preds = %3542
  %3849 = landingpad { ptr, i32 }
          cleanup
  %3850 = extractvalue { ptr, i32 } %3849, 0
  store ptr %3850, ptr %8, align 8
  %3851 = extractvalue { ptr, i32 } %3849, 1
  store i32 %3851, ptr %9, align 4
  br label %3951

3852:                                             ; preds = %3543
  %3853 = landingpad { ptr, i32 }
          cleanup
  %3854 = extractvalue { ptr, i32 } %3853, 0
  store ptr %3854, ptr %8, align 8
  %3855 = extractvalue { ptr, i32 } %3853, 1
  store i32 %3855, ptr %9, align 4
  br label %3950

3856:                                             ; preds = %3544
  %3857 = landingpad { ptr, i32 }
          cleanup
  %3858 = extractvalue { ptr, i32 } %3857, 0
  store ptr %3858, ptr %8, align 8
  %3859 = extractvalue { ptr, i32 } %3857, 1
  store i32 %3859, ptr %9, align 4
  br label %3949

3860:                                             ; preds = %3545
  %3861 = landingpad { ptr, i32 }
          cleanup
  %3862 = extractvalue { ptr, i32 } %3861, 0
  store ptr %3862, ptr %8, align 8
  %3863 = extractvalue { ptr, i32 } %3861, 1
  store i32 %3863, ptr %9, align 4
  br label %3948

3864:                                             ; preds = %3546
  %3865 = landingpad { ptr, i32 }
          cleanup
  %3866 = extractvalue { ptr, i32 } %3865, 0
  store ptr %3866, ptr %8, align 8
  %3867 = extractvalue { ptr, i32 } %3865, 1
  store i32 %3867, ptr %9, align 4
  br label %3947

3868:                                             ; preds = %3547
  %3869 = landingpad { ptr, i32 }
          cleanup
  %3870 = extractvalue { ptr, i32 } %3869, 0
  store ptr %3870, ptr %8, align 8
  %3871 = extractvalue { ptr, i32 } %3869, 1
  store i32 %3871, ptr %9, align 4
  br label %3946

3872:                                             ; preds = %3548
  %3873 = landingpad { ptr, i32 }
          cleanup
  %3874 = extractvalue { ptr, i32 } %3873, 0
  store ptr %3874, ptr %8, align 8
  %3875 = extractvalue { ptr, i32 } %3873, 1
  store i32 %3875, ptr %9, align 4
  br label %3945

3876:                                             ; preds = %3549
  %3877 = landingpad { ptr, i32 }
          cleanup
  %3878 = extractvalue { ptr, i32 } %3877, 0
  store ptr %3878, ptr %8, align 8
  %3879 = extractvalue { ptr, i32 } %3877, 1
  store i32 %3879, ptr %9, align 4
  br label %3944

3880:                                             ; preds = %3550
  %3881 = landingpad { ptr, i32 }
          cleanup
  %3882 = extractvalue { ptr, i32 } %3881, 0
  store ptr %3882, ptr %8, align 8
  %3883 = extractvalue { ptr, i32 } %3881, 1
  store i32 %3883, ptr %9, align 4
  br label %3943

3884:                                             ; preds = %3551
  %3885 = landingpad { ptr, i32 }
          cleanup
  %3886 = extractvalue { ptr, i32 } %3885, 0
  store ptr %3886, ptr %8, align 8
  %3887 = extractvalue { ptr, i32 } %3885, 1
  store i32 %3887, ptr %9, align 4
  br label %3942

3888:                                             ; preds = %3552
  %3889 = landingpad { ptr, i32 }
          cleanup
  %3890 = extractvalue { ptr, i32 } %3889, 0
  store ptr %3890, ptr %8, align 8
  %3891 = extractvalue { ptr, i32 } %3889, 1
  store i32 %3891, ptr %9, align 4
  br label %3941

3892:                                             ; preds = %3553
  %3893 = landingpad { ptr, i32 }
          cleanup
  %3894 = extractvalue { ptr, i32 } %3893, 0
  store ptr %3894, ptr %8, align 8
  %3895 = extractvalue { ptr, i32 } %3893, 1
  store i32 %3895, ptr %9, align 4
  br label %3940

3896:                                             ; preds = %3554
  %3897 = landingpad { ptr, i32 }
          cleanup
  %3898 = extractvalue { ptr, i32 } %3897, 0
  store ptr %3898, ptr %8, align 8
  %3899 = extractvalue { ptr, i32 } %3897, 1
  store i32 %3899, ptr %9, align 4
  br label %3939

3900:                                             ; preds = %3555
  %3901 = landingpad { ptr, i32 }
          cleanup
  %3902 = extractvalue { ptr, i32 } %3901, 0
  store ptr %3902, ptr %8, align 8
  %3903 = extractvalue { ptr, i32 } %3901, 1
  store i32 %3903, ptr %9, align 4
  br label %3938

3904:                                             ; preds = %3556
  %3905 = landingpad { ptr, i32 }
          cleanup
  %3906 = extractvalue { ptr, i32 } %3905, 0
  store ptr %3906, ptr %8, align 8
  %3907 = extractvalue { ptr, i32 } %3905, 1
  store i32 %3907, ptr %9, align 4
  br label %3937

3908:                                             ; preds = %3557
  %3909 = landingpad { ptr, i32 }
          cleanup
  %3910 = extractvalue { ptr, i32 } %3909, 0
  store ptr %3910, ptr %8, align 8
  %3911 = extractvalue { ptr, i32 } %3909, 1
  store i32 %3911, ptr %9, align 4
  br label %3936

3912:                                             ; preds = %3558
  %3913 = landingpad { ptr, i32 }
          cleanup
  %3914 = extractvalue { ptr, i32 } %3913, 0
  store ptr %3914, ptr %8, align 8
  %3915 = extractvalue { ptr, i32 } %3913, 1
  store i32 %3915, ptr %9, align 4
  br label %3935

3916:                                             ; preds = %3559
  %3917 = landingpad { ptr, i32 }
          cleanup
  %3918 = extractvalue { ptr, i32 } %3917, 0
  store ptr %3918, ptr %8, align 8
  %3919 = extractvalue { ptr, i32 } %3917, 1
  store i32 %3919, ptr %9, align 4
  br label %3934

3920:                                             ; preds = %3560
  %3921 = landingpad { ptr, i32 }
          cleanup
  %3922 = extractvalue { ptr, i32 } %3921, 0
  store ptr %3922, ptr %8, align 8
  %3923 = extractvalue { ptr, i32 } %3921, 1
  store i32 %3923, ptr %9, align 4
  br label %3933

3924:                                             ; preds = %3561
  %3925 = landingpad { ptr, i32 }
          cleanup
  %3926 = extractvalue { ptr, i32 } %3925, 0
  store ptr %3926, ptr %8, align 8
  %3927 = extractvalue { ptr, i32 } %3925, 1
  store i32 %3927, ptr %9, align 4
  br label %3932

3928:                                             ; preds = %3562
  %3929 = landingpad { ptr, i32 }
          cleanup
  %3930 = extractvalue { ptr, i32 } %3929, 0
  store ptr %3930, ptr %8, align 8
  %3931 = extractvalue { ptr, i32 } %3929, 1
  store i32 %3931, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %422) #9
  br label %3932

3932:                                             ; preds = %3928, %3924
  call void @llvm.lifetime.end.p0(i64 56, ptr %422) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %396) #9
  br label %3933

3933:                                             ; preds = %3932, %3920
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %416) #9
  br label %3934

3934:                                             ; preds = %3933, %3916
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %417) #9
  br label %3935

3935:                                             ; preds = %3934, %3912
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %419) #9
  br label %3936

3936:                                             ; preds = %3935, %3908
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %420) #9
  br label %3937

3937:                                             ; preds = %3936, %3904
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %421) #9
  br label %3938

3938:                                             ; preds = %3937, %3900
  call void @llvm.lifetime.end.p0(i64 8, ptr %419) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %418) #9
  br label %3939

3939:                                             ; preds = %3938, %3896
  call void @llvm.lifetime.end.p0(i64 56, ptr %417) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %397) #9
  br label %3940

3940:                                             ; preds = %3939, %3892
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %410) #9
  br label %3941

3941:                                             ; preds = %3940, %3888
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %411) #9
  br label %3942

3942:                                             ; preds = %3941, %3884
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %413) #9
  br label %3943

3943:                                             ; preds = %3942, %3880
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %414) #9
  br label %3944

3944:                                             ; preds = %3943, %3876
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %415) #9
  br label %3945

3945:                                             ; preds = %3944, %3872
  call void @llvm.lifetime.end.p0(i64 8, ptr %413) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %412) #9
  br label %3946

3946:                                             ; preds = %3945, %3868
  call void @llvm.lifetime.end.p0(i64 56, ptr %411) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %398) #9
  br label %3947

3947:                                             ; preds = %3946, %3864
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %405) #9
  br label %3948

3948:                                             ; preds = %3947, %3860
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %406) #9
  br label %3949

3949:                                             ; preds = %3948, %3856
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %408) #9
  br label %3950

3950:                                             ; preds = %3949, %3852
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %409) #9
  br label %3951

3951:                                             ; preds = %3950, %3848
  call void @llvm.lifetime.end.p0(i64 8, ptr %408) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %407) #9
  br label %3952

3952:                                             ; preds = %3951, %3844
  call void @llvm.lifetime.end.p0(i64 56, ptr %406) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %399) #9
  br label %3953

3953:                                             ; preds = %3952, %3840
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %400) #9
  br label %3954

3954:                                             ; preds = %3953, %3836
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %402) #9
  br label %3955

3955:                                             ; preds = %3954, %3832
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %403) #9
  br label %3956

3956:                                             ; preds = %3955, %3828
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %404) #9
  br label %3957

3957:                                             ; preds = %3956, %3824
  call void @llvm.lifetime.end.p0(i64 8, ptr %402) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %401) #9
  br label %3958

3958:                                             ; preds = %3957, %3820
  call void @llvm.lifetime.end.p0(i64 56, ptr %400) #9
  br label %4135

3959:                                             ; preds = %3563
  %3960 = landingpad { ptr, i32 }
          cleanup
  %3961 = extractvalue { ptr, i32 } %3960, 0
  store ptr %3961, ptr %8, align 8
  %3962 = extractvalue { ptr, i32 } %3960, 1
  store i32 %3962, ptr %9, align 4
  br label %4077

3963:                                             ; preds = %3564
  %3964 = landingpad { ptr, i32 }
          cleanup
  %3965 = extractvalue { ptr, i32 } %3964, 0
  store ptr %3965, ptr %8, align 8
  %3966 = extractvalue { ptr, i32 } %3964, 1
  store i32 %3966, ptr %9, align 4
  br label %4076

3967:                                             ; preds = %3565
  %3968 = landingpad { ptr, i32 }
          cleanup
  %3969 = extractvalue { ptr, i32 } %3968, 0
  store ptr %3969, ptr %8, align 8
  %3970 = extractvalue { ptr, i32 } %3968, 1
  store i32 %3970, ptr %9, align 4
  br label %4075

3971:                                             ; preds = %3566
  %3972 = landingpad { ptr, i32 }
          cleanup
  %3973 = extractvalue { ptr, i32 } %3972, 0
  store ptr %3973, ptr %8, align 8
  %3974 = extractvalue { ptr, i32 } %3972, 1
  store i32 %3974, ptr %9, align 4
  br label %4074

3975:                                             ; preds = %3567
  %3976 = landingpad { ptr, i32 }
          cleanup
  %3977 = extractvalue { ptr, i32 } %3976, 0
  store ptr %3977, ptr %8, align 8
  %3978 = extractvalue { ptr, i32 } %3976, 1
  store i32 %3978, ptr %9, align 4
  br label %4073

3979:                                             ; preds = %3568
  %3980 = landingpad { ptr, i32 }
          cleanup
  %3981 = extractvalue { ptr, i32 } %3980, 0
  store ptr %3981, ptr %8, align 8
  %3982 = extractvalue { ptr, i32 } %3980, 1
  store i32 %3982, ptr %9, align 4
  br label %4072

3983:                                             ; preds = %3569
  %3984 = landingpad { ptr, i32 }
          cleanup
  %3985 = extractvalue { ptr, i32 } %3984, 0
  store ptr %3985, ptr %8, align 8
  %3986 = extractvalue { ptr, i32 } %3984, 1
  store i32 %3986, ptr %9, align 4
  br label %4071

3987:                                             ; preds = %3570
  %3988 = landingpad { ptr, i32 }
          cleanup
  %3989 = extractvalue { ptr, i32 } %3988, 0
  store ptr %3989, ptr %8, align 8
  %3990 = extractvalue { ptr, i32 } %3988, 1
  store i32 %3990, ptr %9, align 4
  br label %4070

3991:                                             ; preds = %3571
  %3992 = landingpad { ptr, i32 }
          cleanup
  %3993 = extractvalue { ptr, i32 } %3992, 0
  store ptr %3993, ptr %8, align 8
  %3994 = extractvalue { ptr, i32 } %3992, 1
  store i32 %3994, ptr %9, align 4
  br label %4069

3995:                                             ; preds = %3572
  %3996 = landingpad { ptr, i32 }
          cleanup
  %3997 = extractvalue { ptr, i32 } %3996, 0
  store ptr %3997, ptr %8, align 8
  %3998 = extractvalue { ptr, i32 } %3996, 1
  store i32 %3998, ptr %9, align 4
  br label %4068

3999:                                             ; preds = %3573
  %4000 = landingpad { ptr, i32 }
          cleanup
  %4001 = extractvalue { ptr, i32 } %4000, 0
  store ptr %4001, ptr %8, align 8
  %4002 = extractvalue { ptr, i32 } %4000, 1
  store i32 %4002, ptr %9, align 4
  br label %4067

4003:                                             ; preds = %3574
  %4004 = landingpad { ptr, i32 }
          cleanup
  %4005 = extractvalue { ptr, i32 } %4004, 0
  store ptr %4005, ptr %8, align 8
  %4006 = extractvalue { ptr, i32 } %4004, 1
  store i32 %4006, ptr %9, align 4
  br label %4066

4007:                                             ; preds = %3575
  %4008 = landingpad { ptr, i32 }
          cleanup
  %4009 = extractvalue { ptr, i32 } %4008, 0
  store ptr %4009, ptr %8, align 8
  %4010 = extractvalue { ptr, i32 } %4008, 1
  store i32 %4010, ptr %9, align 4
  br label %4065

4011:                                             ; preds = %3576
  %4012 = landingpad { ptr, i32 }
          cleanup
  %4013 = extractvalue { ptr, i32 } %4012, 0
  store ptr %4013, ptr %8, align 8
  %4014 = extractvalue { ptr, i32 } %4012, 1
  store i32 %4014, ptr %9, align 4
  br label %4064

4015:                                             ; preds = %3577
  %4016 = landingpad { ptr, i32 }
          cleanup
  %4017 = extractvalue { ptr, i32 } %4016, 0
  store ptr %4017, ptr %8, align 8
  %4018 = extractvalue { ptr, i32 } %4016, 1
  store i32 %4018, ptr %9, align 4
  br label %4063

4019:                                             ; preds = %3578
  %4020 = landingpad { ptr, i32 }
          cleanup
  %4021 = extractvalue { ptr, i32 } %4020, 0
  store ptr %4021, ptr %8, align 8
  %4022 = extractvalue { ptr, i32 } %4020, 1
  store i32 %4022, ptr %9, align 4
  br label %4062

4023:                                             ; preds = %3579
  %4024 = landingpad { ptr, i32 }
          cleanup
  %4025 = extractvalue { ptr, i32 } %4024, 0
  store ptr %4025, ptr %8, align 8
  %4026 = extractvalue { ptr, i32 } %4024, 1
  store i32 %4026, ptr %9, align 4
  br label %4061

4027:                                             ; preds = %3580
  %4028 = landingpad { ptr, i32 }
          cleanup
  %4029 = extractvalue { ptr, i32 } %4028, 0
  store ptr %4029, ptr %8, align 8
  %4030 = extractvalue { ptr, i32 } %4028, 1
  store i32 %4030, ptr %9, align 4
  br label %4060

4031:                                             ; preds = %3581
  %4032 = landingpad { ptr, i32 }
          cleanup
  %4033 = extractvalue { ptr, i32 } %4032, 0
  store ptr %4033, ptr %8, align 8
  %4034 = extractvalue { ptr, i32 } %4032, 1
  store i32 %4034, ptr %9, align 4
  br label %4059

4035:                                             ; preds = %3582
  %4036 = landingpad { ptr, i32 }
          cleanup
  %4037 = extractvalue { ptr, i32 } %4036, 0
  store ptr %4037, ptr %8, align 8
  %4038 = extractvalue { ptr, i32 } %4036, 1
  store i32 %4038, ptr %9, align 4
  br label %4058

4039:                                             ; preds = %3583
  %4040 = landingpad { ptr, i32 }
          cleanup
  %4041 = extractvalue { ptr, i32 } %4040, 0
  store ptr %4041, ptr %8, align 8
  %4042 = extractvalue { ptr, i32 } %4040, 1
  store i32 %4042, ptr %9, align 4
  br label %4057

4043:                                             ; preds = %3584
  %4044 = landingpad { ptr, i32 }
          cleanup
  %4045 = extractvalue { ptr, i32 } %4044, 0
  store ptr %4045, ptr %8, align 8
  %4046 = extractvalue { ptr, i32 } %4044, 1
  store i32 %4046, ptr %9, align 4
  br label %4056

4047:                                             ; preds = %3585
  %4048 = landingpad { ptr, i32 }
          cleanup
  %4049 = extractvalue { ptr, i32 } %4048, 0
  store ptr %4049, ptr %8, align 8
  %4050 = extractvalue { ptr, i32 } %4048, 1
  store i32 %4050, ptr %9, align 4
  br label %4055

4051:                                             ; preds = %3586
  %4052 = landingpad { ptr, i32 }
          cleanup
  %4053 = extractvalue { ptr, i32 } %4052, 0
  store ptr %4053, ptr %8, align 8
  %4054 = extractvalue { ptr, i32 } %4052, 1
  store i32 %4054, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %446) #9
  br label %4055

4055:                                             ; preds = %4051, %4047
  call void @llvm.lifetime.end.p0(i64 56, ptr %446) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %424) #9
  br label %4056

4056:                                             ; preds = %4055, %4043
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %441) #9
  br label %4057

4057:                                             ; preds = %4056, %4039
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %442) #9
  br label %4058

4058:                                             ; preds = %4057, %4035
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %443) #9
  br label %4059

4059:                                             ; preds = %4058, %4031
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %444) #9
  br label %4060

4060:                                             ; preds = %4059, %4027
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %445) #9
  br label %4061

4061:                                             ; preds = %4060, %4023
  call void @llvm.lifetime.end.p0(i64 56, ptr %442) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %425) #9
  br label %4062

4062:                                             ; preds = %4061, %4019
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %436) #9
  br label %4063

4063:                                             ; preds = %4062, %4015
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %437) #9
  br label %4064

4064:                                             ; preds = %4063, %4011
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %438) #9
  br label %4065

4065:                                             ; preds = %4064, %4007
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %439) #9
  br label %4066

4066:                                             ; preds = %4065, %4003
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %440) #9
  br label %4067

4067:                                             ; preds = %4066, %3999
  call void @llvm.lifetime.end.p0(i64 56, ptr %437) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %426) #9
  br label %4068

4068:                                             ; preds = %4067, %3995
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %432) #9
  br label %4069

4069:                                             ; preds = %4068, %3991
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %433) #9
  br label %4070

4070:                                             ; preds = %4069, %3987
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %434) #9
  br label %4071

4071:                                             ; preds = %4070, %3983
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %435) #9
  br label %4072

4072:                                             ; preds = %4071, %3979
  call void @llvm.lifetime.end.p0(i64 56, ptr %433) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %427) #9
  br label %4073

4073:                                             ; preds = %4072, %3975
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %428) #9
  br label %4074

4074:                                             ; preds = %4073, %3971
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %429) #9
  br label %4075

4075:                                             ; preds = %4074, %3967
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %430) #9
  br label %4076

4076:                                             ; preds = %4075, %3963
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %431) #9
  br label %4077

4077:                                             ; preds = %4076, %3959
  call void @llvm.lifetime.end.p0(i64 56, ptr %428) #9
  br label %4135

4078:                                             ; preds = %3587
  %4079 = landingpad { ptr, i32 }
          cleanup
  %4080 = extractvalue { ptr, i32 } %4079, 0
  store ptr %4080, ptr %8, align 8
  %4081 = extractvalue { ptr, i32 } %4079, 1
  store i32 %4081, ptr %9, align 4
  br label %4135

4082:                                             ; preds = %3588
  %4083 = landingpad { ptr, i32 }
          cleanup
  %4084 = extractvalue { ptr, i32 } %4083, 0
  store ptr %4084, ptr %8, align 8
  %4085 = extractvalue { ptr, i32 } %4083, 1
  store i32 %4085, ptr %9, align 4
  br label %4125

4086:                                             ; preds = %3589
  %4087 = landingpad { ptr, i32 }
          cleanup
  %4088 = extractvalue { ptr, i32 } %4087, 0
  store ptr %4088, ptr %8, align 8
  %4089 = extractvalue { ptr, i32 } %4087, 1
  store i32 %4089, ptr %9, align 4
  br label %4124

4090:                                             ; preds = %3592, %3590
  %4091 = landingpad { ptr, i32 }
          cleanup
  %4092 = extractvalue { ptr, i32 } %4091, 0
  store ptr %4092, ptr %8, align 8
  %4093 = extractvalue { ptr, i32 } %4091, 1
  store i32 %4093, ptr %9, align 4
  br label %4123

4094:                                             ; preds = %3593
  %4095 = landingpad { ptr, i32 }
          cleanup
  %4096 = extractvalue { ptr, i32 } %4095, 0
  store ptr %4096, ptr %8, align 8
  %4097 = extractvalue { ptr, i32 } %4095, 1
  store i32 %4097, ptr %9, align 4
  br label %4122

4098:                                             ; preds = %3594
  %4099 = landingpad { ptr, i32 }
          cleanup
  %4100 = extractvalue { ptr, i32 } %4099, 0
  store ptr %4100, ptr %8, align 8
  %4101 = extractvalue { ptr, i32 } %4099, 1
  store i32 %4101, ptr %9, align 4
  br label %4121

4102:                                             ; preds = %3597, %3595
  %4103 = landingpad { ptr, i32 }
          cleanup
  %4104 = extractvalue { ptr, i32 } %4103, 0
  store ptr %4104, ptr %8, align 8
  %4105 = extractvalue { ptr, i32 } %4103, 1
  store i32 %4105, ptr %9, align 4
  br label %4120

4106:                                             ; preds = %3598
  %4107 = landingpad { ptr, i32 }
          cleanup
  %4108 = extractvalue { ptr, i32 } %4107, 0
  store ptr %4108, ptr %8, align 8
  %4109 = extractvalue { ptr, i32 } %4107, 1
  store i32 %4109, ptr %9, align 4
  br label %4119

4110:                                             ; preds = %3599
  %4111 = landingpad { ptr, i32 }
          cleanup
  %4112 = extractvalue { ptr, i32 } %4111, 0
  store ptr %4112, ptr %8, align 8
  %4113 = extractvalue { ptr, i32 } %4111, 1
  store i32 %4113, ptr %9, align 4
  br label %4118

4114:                                             ; preds = %3600
  %4115 = landingpad { ptr, i32 }
          cleanup
  %4116 = extractvalue { ptr, i32 } %4115, 0
  store ptr %4116, ptr %8, align 8
  %4117 = extractvalue { ptr, i32 } %4115, 1
  store i32 %4117, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %455) #9
  br label %4118

4118:                                             ; preds = %4114, %4110
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %454) #9
  br label %4119

4119:                                             ; preds = %4118, %4106
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %453) #9
  br label %4120

4120:                                             ; preds = %4119, %4102
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %452) #9
  br label %4121

4121:                                             ; preds = %4120, %4098
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %451) #9
  br label %4122

4122:                                             ; preds = %4121, %4094
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %450) #9
  br label %4123

4123:                                             ; preds = %4122, %4090
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %449) #9
  br label %4124

4124:                                             ; preds = %4123, %4086
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %448) #9
  br label %4125

4125:                                             ; preds = %4124, %4082
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %447) #9
  br label %4135

4126:                                             ; preds = %3602
  %4127 = landingpad { ptr, i32 }
          cleanup
  %4128 = extractvalue { ptr, i32 } %4127, 0
  store ptr %4128, ptr %8, align 8
  %4129 = extractvalue { ptr, i32 } %4127, 1
  store i32 %4129, ptr %9, align 4
  br label %4134

4130:                                             ; preds = %3603
  %4131 = landingpad { ptr, i32 }
          cleanup
  %4132 = extractvalue { ptr, i32 } %4131, 0
  store ptr %4132, ptr %8, align 8
  %4133 = extractvalue { ptr, i32 } %4131, 1
  store i32 %4133, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %457) #9
  br label %4134

4134:                                             ; preds = %4130, %4126
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %458) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %457) #9
  br label %4135

4135:                                             ; preds = %4134, %4125, %4078, %4077, %3958, %3819, %3710, %3510
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %366) #9
  br label %4136

4136:                                             ; preds = %4135, %3485
  call void @llvm.lifetime.end.p0(i64 8, ptr %366) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %363) #9
  br label %4137

4137:                                             ; preds = %4136, %3484
  call void @llvm.lifetime.end.p0(i64 32, ptr %363) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %360) #9
  br label %4138

4138:                                             ; preds = %4137, %3475
  call void @llvm.lifetime.end.p0(i64 32, ptr %360) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %357) #9
  br label %4139

4139:                                             ; preds = %4138, %3466
  call void @llvm.lifetime.end.p0(i64 32, ptr %357) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #9
  br label %4140

4140:                                             ; preds = %4139, %3457
  call void @llvm.lifetime.end.p0(i64 32, ptr %354) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %353) #9
  br label %4141

4141:                                             ; preds = %4140, %3445
  call void @llvm.lifetime.end.p0(i64 32, ptr %353) #9
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %352) #9
  br label %4142

4142:                                             ; preds = %4141, %3441
  call void @llvm.lifetime.end.p0(i64 16, ptr %352) #9
  br label %9780

4143:                                             ; preds = %3604
  %4144 = landingpad { ptr, i32 }
          cleanup
  %4145 = extractvalue { ptr, i32 } %4144, 0
  store ptr %4145, ptr %8, align 8
  %4146 = extractvalue { ptr, i32 } %4144, 1
  store i32 %4146, ptr %9, align 4
  br label %4427

4147:                                             ; preds = %3605
  %4148 = landingpad { ptr, i32 }
          cleanup
  %4149 = extractvalue { ptr, i32 } %4148, 0
  store ptr %4149, ptr %8, align 8
  %4150 = extractvalue { ptr, i32 } %4148, 1
  store i32 %4150, ptr %9, align 4
  br label %4155

4151:                                             ; preds = %3606
  %4152 = landingpad { ptr, i32 }
          cleanup
  %4153 = extractvalue { ptr, i32 } %4152, 0
  store ptr %4153, ptr %8, align 8
  %4154 = extractvalue { ptr, i32 } %4152, 1
  store i32 %4154, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %461) #9
  br label %4155

4155:                                             ; preds = %4151, %4147
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %462) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %462) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %461) #9
  br label %4426

4156:                                             ; preds = %3607
  %4157 = landingpad { ptr, i32 }
          cleanup
  %4158 = extractvalue { ptr, i32 } %4157, 0
  store ptr %4158, ptr %8, align 8
  %4159 = extractvalue { ptr, i32 } %4157, 1
  store i32 %4159, ptr %9, align 4
  br label %4164

4160:                                             ; preds = %3608
  %4161 = landingpad { ptr, i32 }
          cleanup
  %4162 = extractvalue { ptr, i32 } %4161, 0
  store ptr %4162, ptr %8, align 8
  %4163 = extractvalue { ptr, i32 } %4161, 1
  store i32 %4163, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %464) #9
  br label %4164

4164:                                             ; preds = %4160, %4156
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %465) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %465) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %464) #9
  br label %4425

4165:                                             ; preds = %3609
  %4166 = landingpad { ptr, i32 }
          cleanup
  %4167 = extractvalue { ptr, i32 } %4166, 0
  store ptr %4167, ptr %8, align 8
  %4168 = extractvalue { ptr, i32 } %4166, 1
  store i32 %4168, ptr %9, align 4
  br label %4173

4169:                                             ; preds = %3610
  %4170 = landingpad { ptr, i32 }
          cleanup
  %4171 = extractvalue { ptr, i32 } %4170, 0
  store ptr %4171, ptr %8, align 8
  %4172 = extractvalue { ptr, i32 } %4170, 1
  store i32 %4172, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %467) #9
  br label %4173

4173:                                             ; preds = %4169, %4165
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %468) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %468) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %467) #9
  br label %4424

4174:                                             ; preds = %3611
  %4175 = landingpad { ptr, i32 }
          cleanup
  %4176 = extractvalue { ptr, i32 } %4175, 0
  store ptr %4176, ptr %8, align 8
  %4177 = extractvalue { ptr, i32 } %4175, 1
  store i32 %4177, ptr %9, align 4
  br label %4423

4178:                                             ; preds = %3612
  %4179 = landingpad { ptr, i32 }
          cleanup
  %4180 = extractvalue { ptr, i32 } %4179, 0
  store ptr %4180, ptr %8, align 8
  %4181 = extractvalue { ptr, i32 } %4179, 1
  store i32 %4181, ptr %9, align 4
  br label %4422

4182:                                             ; preds = %3624, %3613
  %4183 = landingpad { ptr, i32 }
          cleanup
  %4184 = extractvalue { ptr, i32 } %4183, 0
  store ptr %4184, ptr %8, align 8
  %4185 = extractvalue { ptr, i32 } %4183, 1
  store i32 %4185, ptr %9, align 4
  br label %4421

4186:                                             ; preds = %3614
  %4187 = landingpad { ptr, i32 }
          cleanup
  %4188 = extractvalue { ptr, i32 } %4187, 0
  store ptr %4188, ptr %8, align 8
  %4189 = extractvalue { ptr, i32 } %4187, 1
  store i32 %4189, ptr %9, align 4
  br label %4204

4190:                                             ; preds = %3615
  %4191 = landingpad { ptr, i32 }
          cleanup
  %4192 = extractvalue { ptr, i32 } %4191, 0
  store ptr %4192, ptr %8, align 8
  %4193 = extractvalue { ptr, i32 } %4191, 1
  store i32 %4193, ptr %9, align 4
  br label %4203

4194:                                             ; preds = %3616
  %4195 = landingpad { ptr, i32 }
          cleanup
  %4196 = extractvalue { ptr, i32 } %4195, 0
  store ptr %4196, ptr %8, align 8
  %4197 = extractvalue { ptr, i32 } %4195, 1
  store i32 %4197, ptr %9, align 4
  br label %4202

4198:                                             ; preds = %3617
  %4199 = landingpad { ptr, i32 }
          cleanup
  %4200 = extractvalue { ptr, i32 } %4199, 0
  store ptr %4200, ptr %8, align 8
  %4201 = extractvalue { ptr, i32 } %4199, 1
  store i32 %4201, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %475) #9
  br label %4202

4202:                                             ; preds = %4198, %4194
  call void @llvm.lifetime.end.p0(i64 56, ptr %475) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %472) #9
  br label %4203

4203:                                             ; preds = %4202, %4190
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %474) #9
  br label %4204

4204:                                             ; preds = %4203, %4186
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %473) #9
  br label %4421

4205:                                             ; preds = %3618
  %4206 = landingpad { ptr, i32 }
          cleanup
  %4207 = extractvalue { ptr, i32 } %4206, 0
  store ptr %4207, ptr %8, align 8
  %4208 = extractvalue { ptr, i32 } %4206, 1
  store i32 %4208, ptr %9, align 4
  br label %4233

4209:                                             ; preds = %3619
  %4210 = landingpad { ptr, i32 }
          cleanup
  %4211 = extractvalue { ptr, i32 } %4210, 0
  store ptr %4211, ptr %8, align 8
  %4212 = extractvalue { ptr, i32 } %4210, 1
  store i32 %4212, ptr %9, align 4
  br label %4232

4213:                                             ; preds = %3620
  %4214 = landingpad { ptr, i32 }
          cleanup
  %4215 = extractvalue { ptr, i32 } %4214, 0
  store ptr %4215, ptr %8, align 8
  %4216 = extractvalue { ptr, i32 } %4214, 1
  store i32 %4216, ptr %9, align 4
  br label %4231

4217:                                             ; preds = %3621
  %4218 = landingpad { ptr, i32 }
          cleanup
  %4219 = extractvalue { ptr, i32 } %4218, 0
  store ptr %4219, ptr %8, align 8
  %4220 = extractvalue { ptr, i32 } %4218, 1
  store i32 %4220, ptr %9, align 4
  br label %4230

4221:                                             ; preds = %3622
  %4222 = landingpad { ptr, i32 }
          cleanup
  %4223 = extractvalue { ptr, i32 } %4222, 0
  store ptr %4223, ptr %8, align 8
  %4224 = extractvalue { ptr, i32 } %4222, 1
  store i32 %4224, ptr %9, align 4
  br label %4229

4225:                                             ; preds = %3623
  %4226 = landingpad { ptr, i32 }
          cleanup
  %4227 = extractvalue { ptr, i32 } %4226, 0
  store ptr %4227, ptr %8, align 8
  %4228 = extractvalue { ptr, i32 } %4226, 1
  store i32 %4228, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %481) #9
  br label %4229

4229:                                             ; preds = %4225, %4221
  call void @llvm.lifetime.end.p0(i64 56, ptr %481) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %477) #9
  br label %4230

4230:                                             ; preds = %4229, %4217
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %478) #9
  br label %4231

4231:                                             ; preds = %4230, %4213
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %480) #9
  br label %4232

4232:                                             ; preds = %4231, %4209
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %479) #9
  br label %4233

4233:                                             ; preds = %4232, %4205
  call void @llvm.lifetime.end.p0(i64 8, ptr %478) #9
  br label %4421

4234:                                             ; preds = %3625
  %4235 = landingpad { ptr, i32 }
          cleanup
  %4236 = extractvalue { ptr, i32 } %4235, 0
  store ptr %4236, ptr %8, align 8
  %4237 = extractvalue { ptr, i32 } %4235, 1
  store i32 %4237, ptr %9, align 4
  br label %4242

4238:                                             ; preds = %3626
  %4239 = landingpad { ptr, i32 }
          cleanup
  %4240 = extractvalue { ptr, i32 } %4239, 0
  store ptr %4240, ptr %8, align 8
  %4241 = extractvalue { ptr, i32 } %4239, 1
  store i32 %4241, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %484) #9
  br label %4242

4242:                                             ; preds = %4238, %4234
  call void @llvm.lifetime.end.p0(i64 56, ptr %484) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %483) #9
  br label %4421

4243:                                             ; preds = %3627
  %4244 = landingpad { ptr, i32 }
          cleanup
  %4245 = extractvalue { ptr, i32 } %4244, 0
  store ptr %4245, ptr %8, align 8
  %4246 = extractvalue { ptr, i32 } %4244, 1
  store i32 %4246, ptr %9, align 4
  br label %4420

4247:                                             ; preds = %3628
  %4248 = landingpad { ptr, i32 }
          cleanup
  %4249 = extractvalue { ptr, i32 } %4248, 0
  store ptr %4249, ptr %8, align 8
  %4250 = extractvalue { ptr, i32 } %4248, 1
  store i32 %4250, ptr %9, align 4
  br label %4255

4251:                                             ; preds = %3629
  %4252 = landingpad { ptr, i32 }
          cleanup
  %4253 = extractvalue { ptr, i32 } %4252, 0
  store ptr %4253, ptr %8, align 8
  %4254 = extractvalue { ptr, i32 } %4252, 1
  store i32 %4254, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %487) #9
  br label %4255

4255:                                             ; preds = %4251, %4247
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %486) #9
  br label %4420

4256:                                             ; preds = %3658, %3639, %3636, %3630
  %4257 = landingpad { ptr, i32 }
          cleanup
  %4258 = extractvalue { ptr, i32 } %4257, 0
  store ptr %4258, ptr %8, align 8
  %4259 = extractvalue { ptr, i32 } %4257, 1
  store i32 %4259, ptr %9, align 4
  br label %4419

4260:                                             ; preds = %3631
  %4261 = landingpad { ptr, i32 }
          cleanup
  %4262 = extractvalue { ptr, i32 } %4261, 0
  store ptr %4262, ptr %8, align 8
  %4263 = extractvalue { ptr, i32 } %4261, 1
  store i32 %4263, ptr %9, align 4
  br label %4283

4264:                                             ; preds = %3632
  %4265 = landingpad { ptr, i32 }
          cleanup
  %4266 = extractvalue { ptr, i32 } %4265, 0
  store ptr %4266, ptr %8, align 8
  %4267 = extractvalue { ptr, i32 } %4265, 1
  store i32 %4267, ptr %9, align 4
  br label %4282

4268:                                             ; preds = %3633
  %4269 = landingpad { ptr, i32 }
          cleanup
  %4270 = extractvalue { ptr, i32 } %4269, 0
  store ptr %4270, ptr %8, align 8
  %4271 = extractvalue { ptr, i32 } %4269, 1
  store i32 %4271, ptr %9, align 4
  br label %4281

4272:                                             ; preds = %3634
  %4273 = landingpad { ptr, i32 }
          cleanup
  %4274 = extractvalue { ptr, i32 } %4273, 0
  store ptr %4274, ptr %8, align 8
  %4275 = extractvalue { ptr, i32 } %4273, 1
  store i32 %4275, ptr %9, align 4
  br label %4280

4276:                                             ; preds = %3635
  %4277 = landingpad { ptr, i32 }
          cleanup
  %4278 = extractvalue { ptr, i32 } %4277, 0
  store ptr %4278, ptr %8, align 8
  %4279 = extractvalue { ptr, i32 } %4277, 1
  store i32 %4279, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %493) #9
  br label %4280

4280:                                             ; preds = %4276, %4272
  call void @llvm.lifetime.end.p0(i64 56, ptr %493) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %489) #9
  br label %4281

4281:                                             ; preds = %4280, %4268
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %491) #9
  br label %4282

4282:                                             ; preds = %4281, %4264
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %492) #9
  br label %4283

4283:                                             ; preds = %4282, %4260
  call void @llvm.lifetime.end.p0(i64 56, ptr %492) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %490) #9
  br label %4419

4284:                                             ; preds = %3637
  %4285 = landingpad { ptr, i32 }
          cleanup
  %4286 = extractvalue { ptr, i32 } %4285, 0
  store ptr %4286, ptr %8, align 8
  %4287 = extractvalue { ptr, i32 } %4285, 1
  store i32 %4287, ptr %9, align 4
  br label %4292

4288:                                             ; preds = %3638
  %4289 = landingpad { ptr, i32 }
          cleanup
  %4290 = extractvalue { ptr, i32 } %4289, 0
  store ptr %4290, ptr %8, align 8
  %4291 = extractvalue { ptr, i32 } %4289, 1
  store i32 %4291, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %496) #9
  br label %4292

4292:                                             ; preds = %4288, %4284
  call void @llvm.lifetime.end.p0(i64 56, ptr %496) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %495) #9
  br label %4419

4293:                                             ; preds = %3640
  %4294 = landingpad { ptr, i32 }
          cleanup
  %4295 = extractvalue { ptr, i32 } %4294, 0
  store ptr %4295, ptr %8, align 8
  %4296 = extractvalue { ptr, i32 } %4294, 1
  store i32 %4296, ptr %9, align 4
  br label %4306

4297:                                             ; preds = %3641
  %4298 = landingpad { ptr, i32 }
          cleanup
  %4299 = extractvalue { ptr, i32 } %4298, 0
  store ptr %4299, ptr %8, align 8
  %4300 = extractvalue { ptr, i32 } %4298, 1
  store i32 %4300, ptr %9, align 4
  br label %4305

4301:                                             ; preds = %3642
  %4302 = landingpad { ptr, i32 }
          cleanup
  %4303 = extractvalue { ptr, i32 } %4302, 0
  store ptr %4303, ptr %8, align 8
  %4304 = extractvalue { ptr, i32 } %4302, 1
  store i32 %4304, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %499) #9
  br label %4305

4305:                                             ; preds = %4301, %4297
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %500) #9
  br label %4306

4306:                                             ; preds = %4305, %4293
  call void @llvm.lifetime.end.p0(i64 56, ptr %499) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %498) #9
  br label %4419

4307:                                             ; preds = %3643
  %4308 = landingpad { ptr, i32 }
          cleanup
  %4309 = extractvalue { ptr, i32 } %4308, 0
  store ptr %4309, ptr %8, align 8
  %4310 = extractvalue { ptr, i32 } %4308, 1
  store i32 %4310, ptr %9, align 4
  br label %4380

4311:                                             ; preds = %3644
  %4312 = landingpad { ptr, i32 }
          cleanup
  %4313 = extractvalue { ptr, i32 } %4312, 0
  store ptr %4313, ptr %8, align 8
  %4314 = extractvalue { ptr, i32 } %4312, 1
  store i32 %4314, ptr %9, align 4
  br label %4379

4315:                                             ; preds = %3645
  %4316 = landingpad { ptr, i32 }
          cleanup
  %4317 = extractvalue { ptr, i32 } %4316, 0
  store ptr %4317, ptr %8, align 8
  %4318 = extractvalue { ptr, i32 } %4316, 1
  store i32 %4318, ptr %9, align 4
  br label %4378

4319:                                             ; preds = %3646
  %4320 = landingpad { ptr, i32 }
          cleanup
  %4321 = extractvalue { ptr, i32 } %4320, 0
  store ptr %4321, ptr %8, align 8
  %4322 = extractvalue { ptr, i32 } %4320, 1
  store i32 %4322, ptr %9, align 4
  br label %4377

4323:                                             ; preds = %3647
  %4324 = landingpad { ptr, i32 }
          cleanup
  %4325 = extractvalue { ptr, i32 } %4324, 0
  store ptr %4325, ptr %8, align 8
  %4326 = extractvalue { ptr, i32 } %4324, 1
  store i32 %4326, ptr %9, align 4
  br label %4376

4327:                                             ; preds = %3648
  %4328 = landingpad { ptr, i32 }
          cleanup
  %4329 = extractvalue { ptr, i32 } %4328, 0
  store ptr %4329, ptr %8, align 8
  %4330 = extractvalue { ptr, i32 } %4328, 1
  store i32 %4330, ptr %9, align 4
  br label %4375

4331:                                             ; preds = %3649
  %4332 = landingpad { ptr, i32 }
          cleanup
  %4333 = extractvalue { ptr, i32 } %4332, 0
  store ptr %4333, ptr %8, align 8
  %4334 = extractvalue { ptr, i32 } %4332, 1
  store i32 %4334, ptr %9, align 4
  br label %4374

4335:                                             ; preds = %3650
  %4336 = landingpad { ptr, i32 }
          cleanup
  %4337 = extractvalue { ptr, i32 } %4336, 0
  store ptr %4337, ptr %8, align 8
  %4338 = extractvalue { ptr, i32 } %4336, 1
  store i32 %4338, ptr %9, align 4
  br label %4373

4339:                                             ; preds = %3651
  %4340 = landingpad { ptr, i32 }
          cleanup
  %4341 = extractvalue { ptr, i32 } %4340, 0
  store ptr %4341, ptr %8, align 8
  %4342 = extractvalue { ptr, i32 } %4340, 1
  store i32 %4342, ptr %9, align 4
  br label %4372

4343:                                             ; preds = %3652
  %4344 = landingpad { ptr, i32 }
          cleanup
  %4345 = extractvalue { ptr, i32 } %4344, 0
  store ptr %4345, ptr %8, align 8
  %4346 = extractvalue { ptr, i32 } %4344, 1
  store i32 %4346, ptr %9, align 4
  br label %4371

4347:                                             ; preds = %3653
  %4348 = landingpad { ptr, i32 }
          cleanup
  %4349 = extractvalue { ptr, i32 } %4348, 0
  store ptr %4349, ptr %8, align 8
  %4350 = extractvalue { ptr, i32 } %4348, 1
  store i32 %4350, ptr %9, align 4
  br label %4370

4351:                                             ; preds = %3654
  %4352 = landingpad { ptr, i32 }
          cleanup
  %4353 = extractvalue { ptr, i32 } %4352, 0
  store ptr %4353, ptr %8, align 8
  %4354 = extractvalue { ptr, i32 } %4352, 1
  store i32 %4354, ptr %9, align 4
  br label %4369

4355:                                             ; preds = %3655
  %4356 = landingpad { ptr, i32 }
          cleanup
  %4357 = extractvalue { ptr, i32 } %4356, 0
  store ptr %4357, ptr %8, align 8
  %4358 = extractvalue { ptr, i32 } %4356, 1
  store i32 %4358, ptr %9, align 4
  br label %4368

4359:                                             ; preds = %3656
  %4360 = landingpad { ptr, i32 }
          cleanup
  %4361 = extractvalue { ptr, i32 } %4360, 0
  store ptr %4361, ptr %8, align 8
  %4362 = extractvalue { ptr, i32 } %4360, 1
  store i32 %4362, ptr %9, align 4
  br label %4367

4363:                                             ; preds = %3657
  %4364 = landingpad { ptr, i32 }
          cleanup
  %4365 = extractvalue { ptr, i32 } %4364, 0
  store ptr %4365, ptr %8, align 8
  %4366 = extractvalue { ptr, i32 } %4364, 1
  store i32 %4366, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %515) #9
  br label %4367

4367:                                             ; preds = %4363, %4359
  call void @llvm.lifetime.end.p0(i64 56, ptr %515) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %502) #9
  br label %4368

4368:                                             ; preds = %4367, %4355
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %509) #9
  br label %4369

4369:                                             ; preds = %4368, %4351
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %510) #9
  br label %4370

4370:                                             ; preds = %4369, %4347
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %513) #9
  br label %4371

4371:                                             ; preds = %4370, %4343
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %514) #9
  br label %4372

4372:                                             ; preds = %4371, %4339
  call void @llvm.lifetime.end.p0(i64 8, ptr %513) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %511) #9
  br label %4373

4373:                                             ; preds = %4372, %4335
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %512) #9
  br label %4374

4374:                                             ; preds = %4373, %4331
  call void @llvm.lifetime.end.p0(i64 56, ptr %510) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %503) #9
  br label %4375

4375:                                             ; preds = %4374, %4327
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %504) #9
  br label %4376

4376:                                             ; preds = %4375, %4323
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %507) #9
  br label %4377

4377:                                             ; preds = %4376, %4319
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %508) #9
  br label %4378

4378:                                             ; preds = %4377, %4315
  call void @llvm.lifetime.end.p0(i64 8, ptr %507) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %505) #9
  br label %4379

4379:                                             ; preds = %4378, %4311
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %506) #9
  br label %4380

4380:                                             ; preds = %4379, %4307
  call void @llvm.lifetime.end.p0(i64 56, ptr %504) #9
  br label %4419

4381:                                             ; preds = %3659
  %4382 = landingpad { ptr, i32 }
          cleanup
  %4383 = extractvalue { ptr, i32 } %4382, 0
  store ptr %4383, ptr %8, align 8
  %4384 = extractvalue { ptr, i32 } %4382, 1
  store i32 %4384, ptr %9, align 4
  br label %4409

4385:                                             ; preds = %3660
  %4386 = landingpad { ptr, i32 }
          cleanup
  %4387 = extractvalue { ptr, i32 } %4386, 0
  store ptr %4387, ptr %8, align 8
  %4388 = extractvalue { ptr, i32 } %4386, 1
  store i32 %4388, ptr %9, align 4
  br label %4408

4389:                                             ; preds = %3663, %3661
  %4390 = landingpad { ptr, i32 }
          cleanup
  %4391 = extractvalue { ptr, i32 } %4390, 0
  store ptr %4391, ptr %8, align 8
  %4392 = extractvalue { ptr, i32 } %4390, 1
  store i32 %4392, ptr %9, align 4
  br label %4407

4393:                                             ; preds = %3664
  %4394 = landingpad { ptr, i32 }
          cleanup
  %4395 = extractvalue { ptr, i32 } %4394, 0
  store ptr %4395, ptr %8, align 8
  %4396 = extractvalue { ptr, i32 } %4394, 1
  store i32 %4396, ptr %9, align 4
  br label %4406

4397:                                             ; preds = %3665
  %4398 = landingpad { ptr, i32 }
          cleanup
  %4399 = extractvalue { ptr, i32 } %4398, 0
  store ptr %4399, ptr %8, align 8
  %4400 = extractvalue { ptr, i32 } %4398, 1
  store i32 %4400, ptr %9, align 4
  br label %4405

4401:                                             ; preds = %3666
  %4402 = landingpad { ptr, i32 }
          cleanup
  %4403 = extractvalue { ptr, i32 } %4402, 0
  store ptr %4403, ptr %8, align 8
  %4404 = extractvalue { ptr, i32 } %4402, 1
  store i32 %4404, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %521) #9
  br label %4405

4405:                                             ; preds = %4401, %4397
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %520) #9
  br label %4406

4406:                                             ; preds = %4405, %4393
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %519) #9
  br label %4407

4407:                                             ; preds = %4406, %4389
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %518) #9
  br label %4408

4408:                                             ; preds = %4407, %4385
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %517) #9
  br label %4409

4409:                                             ; preds = %4408, %4381
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %516) #9
  br label %4419

4410:                                             ; preds = %3668
  %4411 = landingpad { ptr, i32 }
          cleanup
  %4412 = extractvalue { ptr, i32 } %4411, 0
  store ptr %4412, ptr %8, align 8
  %4413 = extractvalue { ptr, i32 } %4411, 1
  store i32 %4413, ptr %9, align 4
  br label %4418

4414:                                             ; preds = %3669
  %4415 = landingpad { ptr, i32 }
          cleanup
  %4416 = extractvalue { ptr, i32 } %4415, 0
  store ptr %4416, ptr %8, align 8
  %4417 = extractvalue { ptr, i32 } %4415, 1
  store i32 %4417, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %523) #9
  br label %4418

4418:                                             ; preds = %4414, %4410
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %524) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %523) #9
  br label %4419

4419:                                             ; preds = %4418, %4409, %4380, %4306, %4292, %4283, %4256
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %485) #9
  br label %4420

4420:                                             ; preds = %4419, %4255, %4243
  call void @llvm.lifetime.end.p0(i64 200, ptr %485) #9
  br label %4421

4421:                                             ; preds = %4420, %4242, %4233, %4204, %4182
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %470) #9
  br label %4422

4422:                                             ; preds = %4421, %4178
  call void @llvm.lifetime.end.p0(i64 32, ptr %470) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %469) #9
  br label %4423

4423:                                             ; preds = %4422, %4174
  call void @llvm.lifetime.end.p0(i64 32, ptr %469) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %466) #9
  br label %4424

4424:                                             ; preds = %4423, %4173
  call void @llvm.lifetime.end.p0(i64 32, ptr %466) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %463) #9
  br label %4425

4425:                                             ; preds = %4424, %4164
  call void @llvm.lifetime.end.p0(i64 32, ptr %463) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %460) #9
  br label %4426

4426:                                             ; preds = %4425, %4155
  call void @llvm.lifetime.end.p0(i64 32, ptr %460) #9
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %459) #9
  br label %4427

4427:                                             ; preds = %4426, %4143
  call void @llvm.lifetime.end.p0(i64 16, ptr %459) #9
  br label %9780

4428:                                             ; preds = %3670
  %4429 = landingpad { ptr, i32 }
          cleanup
  %4430 = extractvalue { ptr, i32 } %4429, 0
  store ptr %4430, ptr %8, align 8
  %4431 = extractvalue { ptr, i32 } %4429, 1
  store i32 %4431, ptr %9, align 4
  br label %4945

4432:                                             ; preds = %3674
  %4433 = landingpad { ptr, i32 }
          cleanup
  %4434 = extractvalue { ptr, i32 } %4433, 0
  store ptr %4434, ptr %8, align 8
  %4435 = extractvalue { ptr, i32 } %4433, 1
  store i32 %4435, ptr %9, align 4
  %4436 = icmp eq ptr %3672, %3675
  br i1 %4436, label %4441, label %4437

4437:                                             ; preds = %4437, %4432
  %4438 = phi ptr [ %3675, %4432 ], [ %4439, %4437 ]
  %4439 = getelementptr inbounds %"class.Halide::Func", ptr %4438, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4439) #9
  %4440 = icmp eq ptr %4439, %3672
  br i1 %4440, label %4441, label %4437

4441:                                             ; preds = %4437, %4432
  br label %4944

4442:                                             ; preds = %3682
  %4443 = landingpad { ptr, i32 }
          cleanup
  %4444 = extractvalue { ptr, i32 } %4443, 0
  store ptr %4444, ptr %8, align 8
  %4445 = extractvalue { ptr, i32 } %4443, 1
  store i32 %4445, ptr %9, align 4
  %4446 = icmp eq ptr %3680, %3683
  br i1 %4446, label %4451, label %4447

4447:                                             ; preds = %4447, %4442
  %4448 = phi ptr [ %3683, %4442 ], [ %4449, %4447 ]
  %4449 = getelementptr inbounds %"class.Halide::Func", ptr %4448, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4449) #9
  %4450 = icmp eq ptr %4449, %3680
  br i1 %4450, label %4451, label %4447

4451:                                             ; preds = %4447, %4442
  br label %4936

4452:                                             ; preds = %3687
  %4453 = landingpad { ptr, i32 }
          cleanup
  %4454 = extractvalue { ptr, i32 } %4453, 0
  store ptr %4454, ptr %8, align 8
  %4455 = extractvalue { ptr, i32 } %4453, 1
  store i32 %4455, ptr %9, align 4
  br label %4460

4456:                                             ; preds = %3688
  %4457 = landingpad { ptr, i32 }
          cleanup
  %4458 = extractvalue { ptr, i32 } %4457, 0
  store ptr %4458, ptr %8, align 8
  %4459 = extractvalue { ptr, i32 } %4457, 1
  store i32 %4459, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %529) #9
  br label %4460

4460:                                             ; preds = %4456, %4452
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %530) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %530) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %529) #9
  br label %4928

4461:                                             ; preds = %3689
  %4462 = landingpad { ptr, i32 }
          cleanup
  %4463 = extractvalue { ptr, i32 } %4462, 0
  store ptr %4463, ptr %8, align 8
  %4464 = extractvalue { ptr, i32 } %4462, 1
  store i32 %4464, ptr %9, align 4
  br label %4927

4465:                                             ; preds = %3690
  %4466 = landingpad { ptr, i32 }
          cleanup
  %4467 = extractvalue { ptr, i32 } %4466, 0
  store ptr %4467, ptr %8, align 8
  %4468 = extractvalue { ptr, i32 } %4466, 1
  store i32 %4468, ptr %9, align 4
  br label %4926

4469:                                             ; preds = %3691
  %4470 = landingpad { ptr, i32 }
          cleanup
  %4471 = extractvalue { ptr, i32 } %4470, 0
  store ptr %4471, ptr %8, align 8
  %4472 = extractvalue { ptr, i32 } %4470, 1
  store i32 %4472, ptr %9, align 4
  br label %4925

4473:                                             ; preds = %3692
  %4474 = landingpad { ptr, i32 }
          cleanup
  %4475 = extractvalue { ptr, i32 } %4474, 0
  store ptr %4475, ptr %8, align 8
  %4476 = extractvalue { ptr, i32 } %4474, 1
  store i32 %4476, ptr %9, align 4
  br label %4491

4477:                                             ; preds = %3693
  %4478 = landingpad { ptr, i32 }
          cleanup
  %4479 = extractvalue { ptr, i32 } %4478, 0
  store ptr %4479, ptr %8, align 8
  %4480 = extractvalue { ptr, i32 } %4478, 1
  store i32 %4480, ptr %9, align 4
  br label %4490

4481:                                             ; preds = %3694
  %4482 = landingpad { ptr, i32 }
          cleanup
  %4483 = extractvalue { ptr, i32 } %4482, 0
  store ptr %4483, ptr %8, align 8
  %4484 = extractvalue { ptr, i32 } %4482, 1
  store i32 %4484, ptr %9, align 4
  br label %4489

4485:                                             ; preds = %3696
  %4486 = landingpad { ptr, i32 }
          cleanup
  %4487 = extractvalue { ptr, i32 } %4486, 0
  store ptr %4487, ptr %8, align 8
  %4488 = extractvalue { ptr, i32 } %4486, 1
  store i32 %4488, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %537) #9
  br label %4489

4489:                                             ; preds = %4485, %4481
  call void @llvm.lifetime.end.p0(i64 56, ptr %537) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %534) #9
  br label %4490

4490:                                             ; preds = %4489, %4477
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %536) #9
  br label %4491

4491:                                             ; preds = %4490, %4473
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %535) #9
  br label %4925

4492:                                             ; preds = %3698
  call void @llvm.lifetime.start.p0(i64 56, ptr %542) #9
  %4493 = load i32, ptr %538, align 4, !tbaa !5
  %4494 = sub nsw i32 %4493, 1
  %4495 = sext i32 %4494 to i64
  %4496 = getelementptr inbounds [5 x %"class.Halide::Func"], ptr %526, i64 0, i64 %4495
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %542, ptr noundef nonnull align 8 dereferenceable(32) %4496, ptr noundef nonnull align 8 dereferenceable(32) %531, ptr noundef nonnull align 8 dereferenceable(32) %532)
          to label %4497 unwind label %4508

4497:                                             ; preds = %4492
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %541, ptr noundef nonnull align 8 dereferenceable(56) %542)
          to label %4498 unwind label %4512

4498:                                             ; preds = %4497
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %540, ptr noundef %541, i32 noundef 1)
          to label %4499 unwind label %4516

4499:                                             ; preds = %4498
  call void @llvm.lifetime.start.p0(i64 56, ptr %543) #9
  %4500 = load i32, ptr %538, align 4, !tbaa !5
  %4501 = sext i32 %4500 to i64
  %4502 = getelementptr inbounds [5 x %"class.Halide::Func"], ptr %526, i64 0, i64 %4501
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %543, ptr noundef nonnull align 8 dereferenceable(32) %4502, ptr noundef nonnull align 8 dereferenceable(32) %531, ptr noundef nonnull align 8 dereferenceable(32) %532)
          to label %4503 unwind label %4520

4503:                                             ; preds = %4499
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %539, ptr noundef nonnull align 8 dereferenceable(56) %543, ptr noundef %540)
          to label %4504 unwind label %4524

4504:                                             ; preds = %4503
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %539) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %543) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %543) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %540) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %541) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %542) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %542) #9
  br label %4505

4505:                                             ; preds = %4504
  %4506 = load i32, ptr %538, align 4, !tbaa !5
  %4507 = add nsw i32 %4506, 1
  store i32 %4507, ptr %538, align 4, !tbaa !5
  br label %3698, !llvm.loop !18

4508:                                             ; preds = %4492
  %4509 = landingpad { ptr, i32 }
          cleanup
  %4510 = extractvalue { ptr, i32 } %4509, 0
  store ptr %4510, ptr %8, align 8
  %4511 = extractvalue { ptr, i32 } %4509, 1
  store i32 %4511, ptr %9, align 4
  br label %4531

4512:                                             ; preds = %4497
  %4513 = landingpad { ptr, i32 }
          cleanup
  %4514 = extractvalue { ptr, i32 } %4513, 0
  store ptr %4514, ptr %8, align 8
  %4515 = extractvalue { ptr, i32 } %4513, 1
  store i32 %4515, ptr %9, align 4
  br label %4530

4516:                                             ; preds = %4498
  %4517 = landingpad { ptr, i32 }
          cleanup
  %4518 = extractvalue { ptr, i32 } %4517, 0
  store ptr %4518, ptr %8, align 8
  %4519 = extractvalue { ptr, i32 } %4517, 1
  store i32 %4519, ptr %9, align 4
  br label %4529

4520:                                             ; preds = %4499
  %4521 = landingpad { ptr, i32 }
          cleanup
  %4522 = extractvalue { ptr, i32 } %4521, 0
  store ptr %4522, ptr %8, align 8
  %4523 = extractvalue { ptr, i32 } %4521, 1
  store i32 %4523, ptr %9, align 4
  br label %4528

4524:                                             ; preds = %4503
  %4525 = landingpad { ptr, i32 }
          cleanup
  %4526 = extractvalue { ptr, i32 } %4525, 0
  store ptr %4526, ptr %8, align 8
  %4527 = extractvalue { ptr, i32 } %4525, 1
  store i32 %4527, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %543) #9
  br label %4528

4528:                                             ; preds = %4524, %4520
  call void @llvm.lifetime.end.p0(i64 56, ptr %543) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %540) #9
  br label %4529

4529:                                             ; preds = %4528, %4516
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %541) #9
  br label %4530

4530:                                             ; preds = %4529, %4512
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %542) #9
  br label %4531

4531:                                             ; preds = %4530, %4508
  call void @llvm.lifetime.end.p0(i64 56, ptr %542) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %538) #9
  br label %4925

4532:                                             ; preds = %3701
  call void @llvm.lifetime.start.p0(i64 200, ptr %544) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %545, i32 noundef 1)
          to label %4533 unwind label %4561

4533:                                             ; preds = %4532
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %546, i32 noundef 1023)
          to label %4534 unwind label %4565

4534:                                             ; preds = %4533
  invoke void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %544, ptr noundef %545, ptr noundef %546)
          to label %4535 unwind label %4569

4535:                                             ; preds = %4534
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %546) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %545) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %548) #9
  %4536 = getelementptr inbounds [5 x %"class.Halide::Func"], ptr %526, i64 0, i64 4
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %548, ptr noundef nonnull align 8 dereferenceable(32) %4536, ptr noundef nonnull align 8 dereferenceable(32) %531, ptr noundef nonnull align 8 dereferenceable(32) %532)
          to label %4537 unwind label %4574

4537:                                             ; preds = %4535
  call void @llvm.lifetime.start.p0(i64 56, ptr %549) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %549, ptr noundef nonnull align 8 dereferenceable(32) %528, ptr noundef nonnull align 8 dereferenceable(32) %531, ptr noundef nonnull align 8 dereferenceable(32) %532)
          to label %4538 unwind label %4578

4538:                                             ; preds = %4537
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %547, ptr noundef nonnull align 8 dereferenceable(56) %549, ptr noundef nonnull align 8 dereferenceable(56) %548)
          to label %4539 unwind label %4582

4539:                                             ; preds = %4538
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %547) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %549) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %549) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %548) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %548) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %551) #9
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %553, ptr noundef nonnull align 8 dereferenceable(200) %544)
          to label %4540 unwind label %4588

4540:                                             ; preds = %4539
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %552, ptr noundef %553, i32 noundef 1)
          to label %4541 unwind label %4592

4541:                                             ; preds = %4540
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %551, ptr noundef nonnull align 8 dereferenceable(32) %528, ptr noundef %552, ptr noundef nonnull align 8 dereferenceable(32) %532)
          to label %4542 unwind label %4596

4542:                                             ; preds = %4541
  call void @llvm.lifetime.start.p0(i64 56, ptr %554) #9
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %555, ptr noundef nonnull align 8 dereferenceable(200) %544)
          to label %4543 unwind label %4600

4543:                                             ; preds = %4542
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %554, ptr noundef nonnull align 8 dereferenceable(32) %528, ptr noundef %555, ptr noundef nonnull align 8 dereferenceable(32) %532)
          to label %4544 unwind label %4604

4544:                                             ; preds = %4543
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %550, ptr noundef nonnull align 8 dereferenceable(56) %554, ptr noundef nonnull align 8 dereferenceable(56) %551)
          to label %4545 unwind label %4608

4545:                                             ; preds = %4544
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %550) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %554) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %555) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %554) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %551) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %552) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %553) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %551) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %559) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %559, ptr noundef nonnull align 8 dereferenceable(32) %528, ptr noundef nonnull align 8 dereferenceable(32) %532, ptr noundef nonnull align 8 dereferenceable(32) %531)
          to label %4546 unwind label %4617

4546:                                             ; preds = %4545
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %558, ptr noundef nonnull align 8 dereferenceable(56) %559)
          to label %4547 unwind label %4621

4547:                                             ; preds = %4546
  call void @llvm.lifetime.start.p0(i64 56, ptr %561) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %562, ptr noundef nonnull align 8 dereferenceable(32) %532)
          to label %4548 unwind label %4625

4548:                                             ; preds = %4547
  call void @llvm.lifetime.start.p0(i64 8, ptr %563) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %564, ptr noundef nonnull align 8 dereferenceable(32) %531)
          to label %4549 unwind label %4629

4549:                                             ; preds = %4548
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %563, ptr noundef %564, i32 noundef 100)
          to label %4550 unwind label %4633

4550:                                             ; preds = %4549
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %561, ptr noundef nonnull align 8 dereferenceable(32) %528, ptr noundef %562, ptr noundef nonnull align 8 dereferenceable(8) %563)
          to label %4551 unwind label %4637

4551:                                             ; preds = %4550
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %560, ptr noundef nonnull align 8 dereferenceable(56) %561)
          to label %4552 unwind label %4641

4552:                                             ; preds = %4551
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %557, ptr noundef %558, ptr noundef %560)
          to label %4553 unwind label %4645

4553:                                             ; preds = %4552
  call void @llvm.lifetime.start.p0(i64 56, ptr %565) #9
  %4554 = getelementptr inbounds [5 x %"class.Halide::Func"], ptr %527, i64 0, i64 0
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %565, ptr noundef nonnull align 8 dereferenceable(32) %4554, ptr noundef nonnull align 8 dereferenceable(32) %531, ptr noundef nonnull align 8 dereferenceable(32) %532)
          to label %4555 unwind label %4649

4555:                                             ; preds = %4553
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %556, ptr noundef nonnull align 8 dereferenceable(56) %565, ptr noundef %557)
          to label %4556 unwind label %4653

4556:                                             ; preds = %4555
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %556) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %565) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %565) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %557) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %560) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %561) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %563) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %564) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %563) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %562) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %561) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %558) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %559) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %559) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %566) #9
  store i32 1, ptr %566, align 4, !tbaa !5
  br label %4557

4557:                                             ; preds = %4679, %4556
  %4558 = load i32, ptr %566, align 4, !tbaa !5
  %4559 = icmp slt i32 %4558, 5
  br i1 %4559, label %4666, label %4560

4560:                                             ; preds = %4557
  store i32 23, ptr %311, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %566) #9
  br label %4706

4561:                                             ; preds = %4532
  %4562 = landingpad { ptr, i32 }
          cleanup
  %4563 = extractvalue { ptr, i32 } %4562, 0
  store ptr %4563, ptr %8, align 8
  %4564 = extractvalue { ptr, i32 } %4562, 1
  store i32 %4564, ptr %9, align 4
  br label %4924

4565:                                             ; preds = %4533
  %4566 = landingpad { ptr, i32 }
          cleanup
  %4567 = extractvalue { ptr, i32 } %4566, 0
  store ptr %4567, ptr %8, align 8
  %4568 = extractvalue { ptr, i32 } %4566, 1
  store i32 %4568, ptr %9, align 4
  br label %4573

4569:                                             ; preds = %4534
  %4570 = landingpad { ptr, i32 }
          cleanup
  %4571 = extractvalue { ptr, i32 } %4570, 0
  store ptr %4571, ptr %8, align 8
  %4572 = extractvalue { ptr, i32 } %4570, 1
  store i32 %4572, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %546) #9
  br label %4573

4573:                                             ; preds = %4569, %4565
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %545) #9
  br label %4924

4574:                                             ; preds = %4535
  %4575 = landingpad { ptr, i32 }
          cleanup
  %4576 = extractvalue { ptr, i32 } %4575, 0
  store ptr %4576, ptr %8, align 8
  %4577 = extractvalue { ptr, i32 } %4575, 1
  store i32 %4577, ptr %9, align 4
  br label %4587

4578:                                             ; preds = %4537
  %4579 = landingpad { ptr, i32 }
          cleanup
  %4580 = extractvalue { ptr, i32 } %4579, 0
  store ptr %4580, ptr %8, align 8
  %4581 = extractvalue { ptr, i32 } %4579, 1
  store i32 %4581, ptr %9, align 4
  br label %4586

4582:                                             ; preds = %4538
  %4583 = landingpad { ptr, i32 }
          cleanup
  %4584 = extractvalue { ptr, i32 } %4583, 0
  store ptr %4584, ptr %8, align 8
  %4585 = extractvalue { ptr, i32 } %4583, 1
  store i32 %4585, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %549) #9
  br label %4586

4586:                                             ; preds = %4582, %4578
  call void @llvm.lifetime.end.p0(i64 56, ptr %549) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %548) #9
  br label %4587

4587:                                             ; preds = %4586, %4574
  call void @llvm.lifetime.end.p0(i64 56, ptr %548) #9
  br label %4923

4588:                                             ; preds = %4539
  %4589 = landingpad { ptr, i32 }
          cleanup
  %4590 = extractvalue { ptr, i32 } %4589, 0
  store ptr %4590, ptr %8, align 8
  %4591 = extractvalue { ptr, i32 } %4589, 1
  store i32 %4591, ptr %9, align 4
  br label %4616

4592:                                             ; preds = %4540
  %4593 = landingpad { ptr, i32 }
          cleanup
  %4594 = extractvalue { ptr, i32 } %4593, 0
  store ptr %4594, ptr %8, align 8
  %4595 = extractvalue { ptr, i32 } %4593, 1
  store i32 %4595, ptr %9, align 4
  br label %4615

4596:                                             ; preds = %4541
  %4597 = landingpad { ptr, i32 }
          cleanup
  %4598 = extractvalue { ptr, i32 } %4597, 0
  store ptr %4598, ptr %8, align 8
  %4599 = extractvalue { ptr, i32 } %4597, 1
  store i32 %4599, ptr %9, align 4
  br label %4614

4600:                                             ; preds = %4542
  %4601 = landingpad { ptr, i32 }
          cleanup
  %4602 = extractvalue { ptr, i32 } %4601, 0
  store ptr %4602, ptr %8, align 8
  %4603 = extractvalue { ptr, i32 } %4601, 1
  store i32 %4603, ptr %9, align 4
  br label %4613

4604:                                             ; preds = %4543
  %4605 = landingpad { ptr, i32 }
          cleanup
  %4606 = extractvalue { ptr, i32 } %4605, 0
  store ptr %4606, ptr %8, align 8
  %4607 = extractvalue { ptr, i32 } %4605, 1
  store i32 %4607, ptr %9, align 4
  br label %4612

4608:                                             ; preds = %4544
  %4609 = landingpad { ptr, i32 }
          cleanup
  %4610 = extractvalue { ptr, i32 } %4609, 0
  store ptr %4610, ptr %8, align 8
  %4611 = extractvalue { ptr, i32 } %4609, 1
  store i32 %4611, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %554) #9
  br label %4612

4612:                                             ; preds = %4608, %4604
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %555) #9
  br label %4613

4613:                                             ; preds = %4612, %4600
  call void @llvm.lifetime.end.p0(i64 56, ptr %554) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %551) #9
  br label %4614

4614:                                             ; preds = %4613, %4596
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %552) #9
  br label %4615

4615:                                             ; preds = %4614, %4592
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %553) #9
  br label %4616

4616:                                             ; preds = %4615, %4588
  call void @llvm.lifetime.end.p0(i64 56, ptr %551) #9
  br label %4923

4617:                                             ; preds = %4545
  %4618 = landingpad { ptr, i32 }
          cleanup
  %4619 = extractvalue { ptr, i32 } %4618, 0
  store ptr %4619, ptr %8, align 8
  %4620 = extractvalue { ptr, i32 } %4618, 1
  store i32 %4620, ptr %9, align 4
  br label %4665

4621:                                             ; preds = %4546
  %4622 = landingpad { ptr, i32 }
          cleanup
  %4623 = extractvalue { ptr, i32 } %4622, 0
  store ptr %4623, ptr %8, align 8
  %4624 = extractvalue { ptr, i32 } %4622, 1
  store i32 %4624, ptr %9, align 4
  br label %4664

4625:                                             ; preds = %4547
  %4626 = landingpad { ptr, i32 }
          cleanup
  %4627 = extractvalue { ptr, i32 } %4626, 0
  store ptr %4627, ptr %8, align 8
  %4628 = extractvalue { ptr, i32 } %4626, 1
  store i32 %4628, ptr %9, align 4
  br label %4663

4629:                                             ; preds = %4548
  %4630 = landingpad { ptr, i32 }
          cleanup
  %4631 = extractvalue { ptr, i32 } %4630, 0
  store ptr %4631, ptr %8, align 8
  %4632 = extractvalue { ptr, i32 } %4630, 1
  store i32 %4632, ptr %9, align 4
  br label %4662

4633:                                             ; preds = %4549
  %4634 = landingpad { ptr, i32 }
          cleanup
  %4635 = extractvalue { ptr, i32 } %4634, 0
  store ptr %4635, ptr %8, align 8
  %4636 = extractvalue { ptr, i32 } %4634, 1
  store i32 %4636, ptr %9, align 4
  br label %4661

4637:                                             ; preds = %4550
  %4638 = landingpad { ptr, i32 }
          cleanup
  %4639 = extractvalue { ptr, i32 } %4638, 0
  store ptr %4639, ptr %8, align 8
  %4640 = extractvalue { ptr, i32 } %4638, 1
  store i32 %4640, ptr %9, align 4
  br label %4660

4641:                                             ; preds = %4551
  %4642 = landingpad { ptr, i32 }
          cleanup
  %4643 = extractvalue { ptr, i32 } %4642, 0
  store ptr %4643, ptr %8, align 8
  %4644 = extractvalue { ptr, i32 } %4642, 1
  store i32 %4644, ptr %9, align 4
  br label %4659

4645:                                             ; preds = %4552
  %4646 = landingpad { ptr, i32 }
          cleanup
  %4647 = extractvalue { ptr, i32 } %4646, 0
  store ptr %4647, ptr %8, align 8
  %4648 = extractvalue { ptr, i32 } %4646, 1
  store i32 %4648, ptr %9, align 4
  br label %4658

4649:                                             ; preds = %4553
  %4650 = landingpad { ptr, i32 }
          cleanup
  %4651 = extractvalue { ptr, i32 } %4650, 0
  store ptr %4651, ptr %8, align 8
  %4652 = extractvalue { ptr, i32 } %4650, 1
  store i32 %4652, ptr %9, align 4
  br label %4657

4653:                                             ; preds = %4555
  %4654 = landingpad { ptr, i32 }
          cleanup
  %4655 = extractvalue { ptr, i32 } %4654, 0
  store ptr %4655, ptr %8, align 8
  %4656 = extractvalue { ptr, i32 } %4654, 1
  store i32 %4656, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %565) #9
  br label %4657

4657:                                             ; preds = %4653, %4649
  call void @llvm.lifetime.end.p0(i64 56, ptr %565) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %557) #9
  br label %4658

4658:                                             ; preds = %4657, %4645
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %560) #9
  br label %4659

4659:                                             ; preds = %4658, %4641
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %561) #9
  br label %4660

4660:                                             ; preds = %4659, %4637
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %563) #9
  br label %4661

4661:                                             ; preds = %4660, %4633
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %564) #9
  br label %4662

4662:                                             ; preds = %4661, %4629
  call void @llvm.lifetime.end.p0(i64 8, ptr %563) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %562) #9
  br label %4663

4663:                                             ; preds = %4662, %4625
  call void @llvm.lifetime.end.p0(i64 56, ptr %561) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %558) #9
  br label %4664

4664:                                             ; preds = %4663, %4621
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %559) #9
  br label %4665

4665:                                             ; preds = %4664, %4617
  call void @llvm.lifetime.end.p0(i64 56, ptr %559) #9
  br label %4923

4666:                                             ; preds = %4557
  call void @llvm.lifetime.start.p0(i64 56, ptr %570) #9
  %4667 = load i32, ptr %566, align 4, !tbaa !5
  %4668 = sub nsw i32 %4667, 1
  %4669 = sext i32 %4668 to i64
  %4670 = getelementptr inbounds [5 x %"class.Halide::Func"], ptr %527, i64 0, i64 %4669
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %570, ptr noundef nonnull align 8 dereferenceable(32) %4670, ptr noundef nonnull align 8 dereferenceable(32) %531, ptr noundef nonnull align 8 dereferenceable(32) %532)
          to label %4671 unwind label %4682

4671:                                             ; preds = %4666
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %569, ptr noundef nonnull align 8 dereferenceable(56) %570)
          to label %4672 unwind label %4686

4672:                                             ; preds = %4671
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %568, ptr noundef %569, i32 noundef 1)
          to label %4673 unwind label %4690

4673:                                             ; preds = %4672
  call void @llvm.lifetime.start.p0(i64 56, ptr %571) #9
  %4674 = load i32, ptr %566, align 4, !tbaa !5
  %4675 = sext i32 %4674 to i64
  %4676 = getelementptr inbounds [5 x %"class.Halide::Func"], ptr %527, i64 0, i64 %4675
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %571, ptr noundef nonnull align 8 dereferenceable(32) %4676, ptr noundef nonnull align 8 dereferenceable(32) %531, ptr noundef nonnull align 8 dereferenceable(32) %532)
          to label %4677 unwind label %4694

4677:                                             ; preds = %4673
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %567, ptr noundef nonnull align 8 dereferenceable(56) %571, ptr noundef %568)
          to label %4678 unwind label %4698

4678:                                             ; preds = %4677
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %567) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %571) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %571) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %568) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %569) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %570) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %570) #9
  br label %4679

4679:                                             ; preds = %4678
  %4680 = load i32, ptr %566, align 4, !tbaa !5
  %4681 = add nsw i32 %4680, 1
  store i32 %4681, ptr %566, align 4, !tbaa !5
  br label %4557, !llvm.loop !19

4682:                                             ; preds = %4666
  %4683 = landingpad { ptr, i32 }
          cleanup
  %4684 = extractvalue { ptr, i32 } %4683, 0
  store ptr %4684, ptr %8, align 8
  %4685 = extractvalue { ptr, i32 } %4683, 1
  store i32 %4685, ptr %9, align 4
  br label %4705

4686:                                             ; preds = %4671
  %4687 = landingpad { ptr, i32 }
          cleanup
  %4688 = extractvalue { ptr, i32 } %4687, 0
  store ptr %4688, ptr %8, align 8
  %4689 = extractvalue { ptr, i32 } %4687, 1
  store i32 %4689, ptr %9, align 4
  br label %4704

4690:                                             ; preds = %4672
  %4691 = landingpad { ptr, i32 }
          cleanup
  %4692 = extractvalue { ptr, i32 } %4691, 0
  store ptr %4692, ptr %8, align 8
  %4693 = extractvalue { ptr, i32 } %4691, 1
  store i32 %4693, ptr %9, align 4
  br label %4703

4694:                                             ; preds = %4673
  %4695 = landingpad { ptr, i32 }
          cleanup
  %4696 = extractvalue { ptr, i32 } %4695, 0
  store ptr %4696, ptr %8, align 8
  %4697 = extractvalue { ptr, i32 } %4695, 1
  store i32 %4697, ptr %9, align 4
  br label %4702

4698:                                             ; preds = %4677
  %4699 = landingpad { ptr, i32 }
          cleanup
  %4700 = extractvalue { ptr, i32 } %4699, 0
  store ptr %4700, ptr %8, align 8
  %4701 = extractvalue { ptr, i32 } %4699, 1
  store i32 %4701, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %571) #9
  br label %4702

4702:                                             ; preds = %4698, %4694
  call void @llvm.lifetime.end.p0(i64 56, ptr %571) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %568) #9
  br label %4703

4703:                                             ; preds = %4702, %4690
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %569) #9
  br label %4704

4704:                                             ; preds = %4703, %4686
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %570) #9
  br label %4705

4705:                                             ; preds = %4704, %4682
  call void @llvm.lifetime.end.p0(i64 56, ptr %570) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %566) #9
  br label %4923

4706:                                             ; preds = %4560
  %4707 = getelementptr inbounds [5 x %"class.Halide::Func"], ptr %527, i64 0, i64 4
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %572, ptr noundef nonnull align 8 dereferenceable(32) %531)
          to label %4708 unwind label %4881

4708:                                             ; preds = %4706
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %573, i32 noundef 0)
          to label %4709 unwind label %4885

4709:                                             ; preds = %4708
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %574, i32 noundef 1024)
          to label %4710 unwind label %4889

4710:                                             ; preds = %4709
  %4711 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4707, ptr noundef %572, ptr noundef %573, ptr noundef %574)
          to label %4712 unwind label %4893

4712:                                             ; preds = %4710
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %575, ptr noundef nonnull align 8 dereferenceable(32) %532)
          to label %4713 unwind label %4893

4713:                                             ; preds = %4712
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %576, i32 noundef 0)
          to label %4714 unwind label %4897

4714:                                             ; preds = %4713
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %577, i32 noundef 1024)
          to label %4715 unwind label %4901

4715:                                             ; preds = %4714
  %4716 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4711, ptr noundef %575, ptr noundef %576, ptr noundef %577)
          to label %4717 unwind label %4905

4717:                                             ; preds = %4715
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %577) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %576) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %575) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %574) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %573) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %572) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %579) #9
  %4718 = getelementptr inbounds [5 x %"class.Halide::Func"], ptr %527, i64 0, i64 4
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %580, ptr noundef nonnull align 8 dereferenceable(32) %4718) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %579, ptr noundef %580)
          to label %4719 unwind label %4914

4719:                                             ; preds = %4717
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %578, ptr noundef nonnull align 8 dereferenceable(8) %579, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %4720 unwind label %4918

4720:                                             ; preds = %4719
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %578) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %579) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %580) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %579) #9
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %544) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %544) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %532) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %532) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %531) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %531) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %528) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %528) #9
  %4721 = getelementptr inbounds [5 x %"class.Halide::Func"], ptr %527, i32 0, i32 0
  %4722 = getelementptr inbounds %"class.Halide::Func", ptr %4721, i64 5
  br label %4723

4723:                                             ; preds = %4723, %4720
  %4724 = phi ptr [ %4722, %4720 ], [ %4725, %4723 ]
  %4725 = getelementptr inbounds %"class.Halide::Func", ptr %4724, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4725) #9
  %4726 = icmp eq ptr %4725, %4721
  br i1 %4726, label %4727, label %4723

4727:                                             ; preds = %4723
  call void @llvm.lifetime.end.p0(i64 160, ptr %527) #9
  %4728 = getelementptr inbounds [5 x %"class.Halide::Func"], ptr %526, i32 0, i32 0
  %4729 = getelementptr inbounds %"class.Halide::Func", ptr %4728, i64 5
  br label %4730

4730:                                             ; preds = %4730, %4727
  %4731 = phi ptr [ %4729, %4727 ], [ %4732, %4730 ]
  %4732 = getelementptr inbounds %"class.Halide::Func", ptr %4731, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4732) #9
  %4733 = icmp eq ptr %4732, %4728
  br i1 %4733, label %4734, label %4730

4734:                                             ; preds = %4730
  call void @llvm.lifetime.end.p0(i64 160, ptr %526) #9
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %525) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %525) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %581) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %582) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %583) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %583) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %582, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %583)
          to label %4735 unwind label %4946

4735:                                             ; preds = %4734
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %581, ptr noundef nonnull align 8 dereferenceable(32) %582)
          to label %4736 unwind label %4950

4736:                                             ; preds = %4735
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %582) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %583) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %583) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %582) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %584) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %585) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %586) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %586) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %585, ptr noundef @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %586)
          to label %4737 unwind label %4955

4737:                                             ; preds = %4736
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %584, ptr noundef nonnull align 8 dereferenceable(32) %585)
          to label %4738 unwind label %4959

4738:                                             ; preds = %4737
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %585) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %586) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %586) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %585) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %587) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %588) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %589) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %589) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %588, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %589)
          to label %4739 unwind label %4964

4739:                                             ; preds = %4738
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %587, ptr noundef nonnull align 8 dereferenceable(32) %588)
          to label %4740 unwind label %4968

4740:                                             ; preds = %4739
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %588) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %589) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %589) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %588) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %590) #9
  invoke void @_ZN6Halide6BufferIhEC2IJEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %590, i32 noundef 1048578)
          to label %4741 unwind label %4973

4741:                                             ; preds = %4740
  call void @llvm.lifetime.start.p0(i64 32, ptr %591) #9
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %591)
          to label %4742 unwind label %4977

4742:                                             ; preds = %4741
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %602, ptr noundef nonnull align 8 dereferenceable(32) %591)
          to label %4743 unwind label %4981

4743:                                             ; preds = %4742
  invoke void @_ZNK6Halide6BufferIhEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %601, ptr noundef nonnull align 8 dereferenceable(16) %590, ptr noundef %602)
          to label %4744 unwind label %4985

4744:                                             ; preds = %4743
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %600, ptr noundef %601, i32 noundef 1)
          to label %4745 unwind label %4989

4745:                                             ; preds = %4744
  invoke void @_ZN6Halide3minENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %599, ptr noundef %600, i32 noundef 17)
          to label %4746 unwind label %4993

4746:                                             ; preds = %4745
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %605, ptr noundef nonnull align 8 dereferenceable(32) %591)
          to label %4747 unwind label %4997

4747:                                             ; preds = %4746
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %604, ptr noundef %605, i32 noundef 1)
          to label %4748 unwind label %5001

4748:                                             ; preds = %4747
  invoke void @_ZNK6Halide6BufferIhEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %603, ptr noundef nonnull align 8 dereferenceable(16) %590, ptr noundef %604)
          to label %4749 unwind label %5005

4749:                                             ; preds = %4748
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %598, ptr noundef %599, ptr noundef %603)
          to label %4750 unwind label %5009

4750:                                             ; preds = %4749
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %608, ptr noundef nonnull align 8 dereferenceable(32) %591)
          to label %4751 unwind label %5013

4751:                                             ; preds = %4750
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %607, ptr noundef %608, i32 noundef 2)
          to label %4752 unwind label %5017

4752:                                             ; preds = %4751
  invoke void @_ZNK6Halide6BufferIhEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %606, ptr noundef nonnull align 8 dereferenceable(16) %590, ptr noundef %607)
          to label %4753 unwind label %5021

4753:                                             ; preds = %4752
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %597, ptr noundef %598, ptr noundef %606)
          to label %4754 unwind label %5025

4754:                                             ; preds = %4753
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %610, ptr noundef nonnull align 8 dereferenceable(32) %591)
          to label %4755 unwind label %5029

4755:                                             ; preds = %4754
  invoke void @_ZNK6Halide6BufferIhEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %609, ptr noundef nonnull align 8 dereferenceable(16) %590, ptr noundef %610)
          to label %4756 unwind label %5033

4756:                                             ; preds = %4755
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %596, ptr noundef %597, ptr noundef %609)
          to label %4757 unwind label %5037

4757:                                             ; preds = %4756
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %612, ptr noundef nonnull align 8 dereferenceable(32) %591)
          to label %4758 unwind label %5041

4758:                                             ; preds = %4757
  invoke void @_ZNK6Halide6BufferIhEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %611, ptr noundef nonnull align 8 dereferenceable(16) %590, ptr noundef %612)
          to label %4759 unwind label %5045

4759:                                             ; preds = %4758
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %595, ptr noundef %596, ptr noundef %611)
          to label %4760 unwind label %5049

4760:                                             ; preds = %4759
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %615, ptr noundef nonnull align 8 dereferenceable(32) %591)
          to label %4761 unwind label %5053

4761:                                             ; preds = %4760
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %614, ptr noundef %615, i32 noundef 1)
          to label %4762 unwind label %5057

4762:                                             ; preds = %4761
  invoke void @_ZNK6Halide6BufferIhEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %613, ptr noundef nonnull align 8 dereferenceable(16) %590, ptr noundef %614)
          to label %4763 unwind label %5061

4763:                                             ; preds = %4762
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %594, ptr noundef %595, ptr noundef %613)
          to label %4764 unwind label %5065

4764:                                             ; preds = %4763
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %618, ptr noundef nonnull align 8 dereferenceable(32) %591)
          to label %4765 unwind label %5069

4765:                                             ; preds = %4764
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %617, ptr noundef %618, i32 noundef 1)
          to label %4766 unwind label %5073

4766:                                             ; preds = %4765
  invoke void @_ZNK6Halide6BufferIhEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %616, ptr noundef nonnull align 8 dereferenceable(16) %590, ptr noundef %617)
          to label %4767 unwind label %5077

4767:                                             ; preds = %4766
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %593, ptr noundef %594, ptr noundef %616)
          to label %4768 unwind label %5081

4768:                                             ; preds = %4767
  call void @llvm.lifetime.start.p0(i64 56, ptr %619) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %619, ptr noundef nonnull align 8 dereferenceable(32) %581, ptr noundef nonnull align 8 dereferenceable(32) %591)
          to label %4769 unwind label %5085

4769:                                             ; preds = %4768
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %592, ptr noundef nonnull align 8 dereferenceable(56) %619, ptr noundef %593)
          to label %4770 unwind label %5089

4770:                                             ; preds = %4769
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %592) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %619) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %619) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %593) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %616) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %617) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %618) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %594) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %613) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %614) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %615) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %595) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %611) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %612) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %596) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %609) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %610) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %597) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %606) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %607) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %608) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %598) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %603) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %604) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %605) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %599) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %600) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %601) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %602) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %624) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %624, ptr noundef nonnull align 8 dereferenceable(32) %581, ptr noundef nonnull align 8 dereferenceable(32) %591)
          to label %4771 unwind label %5119

4771:                                             ; preds = %4770
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %623, ptr noundef nonnull align 8 dereferenceable(56) %624)
          to label %4772 unwind label %5123

4772:                                             ; preds = %4771
  invoke void @_ZN6Halide4castImEENS_4ExprES1_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %622, ptr noundef %623)
          to label %4773 unwind label %5127

4773:                                             ; preds = %4772
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %621, ptr noundef %622, i32 noundef 1)
          to label %4774 unwind label %5131

4774:                                             ; preds = %4773
  call void @llvm.lifetime.start.p0(i64 56, ptr %625) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %625, ptr noundef nonnull align 8 dereferenceable(32) %584, ptr noundef nonnull align 8 dereferenceable(32) %591)
          to label %4775 unwind label %5135

4775:                                             ; preds = %4774
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %620, ptr noundef nonnull align 8 dereferenceable(56) %625, ptr noundef %621)
          to label %4776 unwind label %5139

4776:                                             ; preds = %4775
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %620) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %625) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %625) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %621) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %622) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %623) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %624) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %624) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %628) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %629) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %629, ptr noundef nonnull align 8 dereferenceable(32) %584, ptr noundef nonnull align 8 dereferenceable(32) %591)
          to label %4777 unwind label %5148

4777:                                             ; preds = %4776
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %628, ptr noundef nonnull align 8 dereferenceable(56) %629)
          to label %4778 unwind label %5152

4778:                                             ; preds = %4777
  invoke void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %627, ptr noundef nonnull align 8 dereferenceable(8) %628, i32 noundef 3)
          to label %4779 unwind label %5156

4779:                                             ; preds = %4778
  call void @llvm.lifetime.start.p0(i64 56, ptr %630) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %630, ptr noundef nonnull align 8 dereferenceable(32) %587, ptr noundef nonnull align 8 dereferenceable(32) %591)
          to label %4780 unwind label %5160

4780:                                             ; preds = %4779
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %626, ptr noundef nonnull align 8 dereferenceable(56) %630, ptr noundef %627)
          to label %4781 unwind label %5164

4781:                                             ; preds = %4780
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %626) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %630) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %630) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %627) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %628) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %629) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %629) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %628) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %631, ptr noundef nonnull align 8 dereferenceable(32) %591)
          to label %4782 unwind label %4981

4782:                                             ; preds = %4781
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %632, i32 noundef 0)
          to label %4783 unwind label %5172

4783:                                             ; preds = %4782
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %633, i32 noundef 1048576)
          to label %4784 unwind label %5176

4784:                                             ; preds = %4783
  %4785 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %587, ptr noundef %631, ptr noundef %632, ptr noundef %633)
          to label %4786 unwind label %5180

4786:                                             ; preds = %4784
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %633) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %632) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %631) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %635) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %636, ptr noundef nonnull align 8 dereferenceable(32) %587) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %635, ptr noundef %636)
          to label %4787 unwind label %5186

4787:                                             ; preds = %4786
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %634, ptr noundef nonnull align 8 dereferenceable(8) %635, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %4788 unwind label %5190

4788:                                             ; preds = %4787
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %634) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %635) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %636) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %635) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %591) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %591) #9
  call void @_ZN6Halide6BufferIhED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %590) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %590) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %587) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %587) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %584) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %584) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %581) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %581) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %637) #9
  invoke void @_ZN6Halide6BufferIfEC2IJiPKcEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %637, i32 noundef 1024, i32 noundef 1024, ptr noundef @.str.17)
          to label %4789 unwind label %5201

4789:                                             ; preds = %4788
  call void @llvm.lifetime.start.p0(i64 16, ptr %638) #9
  invoke void @_ZN6Halide6BufferIfEC2IJiPKcEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %638, i32 noundef 1024, i32 noundef 1024, ptr noundef @.str.18)
          to label %4790 unwind label %5205

4790:                                             ; preds = %4789
  call void @llvm.lifetime.start.p0(i64 4, ptr %639) #9
  store float 0.000000e+00, ptr %639, align 4, !tbaa !20
  %4791 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6Halide6BufferIfE4fillIfEERS1_OT_(ptr noundef nonnull align 8 dereferenceable(16) %637, ptr noundef nonnull align 4 dereferenceable(4) %639)
          to label %4792 unwind label %5209

4792:                                             ; preds = %4790
  call void @llvm.lifetime.end.p0(i64 4, ptr %639) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %640) #9
  store float 0.000000e+00, ptr %640, align 4, !tbaa !20
  %4793 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6Halide6BufferIfE4fillIfEERS1_OT_(ptr noundef nonnull align 8 dereferenceable(16) %638, ptr noundef nonnull align 4 dereferenceable(4) %640)
          to label %4794 unwind label %5213

4794:                                             ; preds = %4792
  call void @llvm.lifetime.end.p0(i64 4, ptr %640) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %641) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %642) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %643)
          to label %4795 unwind label %5217

4795:                                             ; preds = %4794
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %641, ptr noundef nonnull align 8 dereferenceable(32) %642)
          to label %4796 unwind label %5221

4796:                                             ; preds = %4795
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %642) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %643) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %643) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %642) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %644) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %645) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %646) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %646) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %645, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %646)
          to label %4797 unwind label %5226

4797:                                             ; preds = %4796
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %644, ptr noundef nonnull align 8 dereferenceable(32) %645)
          to label %4798 unwind label %5230

4798:                                             ; preds = %4797
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %645) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %646) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %646) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %645) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %647) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %648) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %649) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %649) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %648, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %649)
          to label %4799 unwind label %5235

4799:                                             ; preds = %4798
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %647, ptr noundef nonnull align 8 dereferenceable(32) %648)
          to label %4800 unwind label %5239

4800:                                             ; preds = %4799
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %648) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %649) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %649) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %648) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %650) #9
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %650)
          to label %4801 unwind label %5244

4801:                                             ; preds = %4800
  call void @llvm.lifetime.start.p0(i64 32, ptr %651) #9
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %651)
          to label %4802 unwind label %5248

4802:                                             ; preds = %4801
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %654, ptr noundef nonnull align 8 dereferenceable(32) %651)
          to label %4803 unwind label %5252

4803:                                             ; preds = %4802
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %655, ptr noundef nonnull align 8 dereferenceable(32) %650)
          to label %4804 unwind label %5256

4804:                                             ; preds = %4803
  invoke void @_ZNK6Halide6BufferIfEclIJNS_3VarEEEENS_4ExprES4_DpT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %653, ptr noundef nonnull align 8 dereferenceable(16) %637, ptr noundef %654, ptr noundef %655)
          to label %4805 unwind label %5260

4805:                                             ; preds = %4804
  call void @llvm.lifetime.start.p0(i64 56, ptr %656) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %656, ptr noundef nonnull align 8 dereferenceable(32) %644, ptr noundef nonnull align 8 dereferenceable(32) %651, ptr noundef nonnull align 8 dereferenceable(32) %650)
          to label %4806 unwind label %5264

4806:                                             ; preds = %4805
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %652, ptr noundef nonnull align 8 dereferenceable(56) %656, ptr noundef %653)
          to label %4807 unwind label %5268

4807:                                             ; preds = %4806
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %652) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %656) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %656) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %653) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %655) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %654) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %659, ptr noundef nonnull align 8 dereferenceable(32) %651)
          to label %4808 unwind label %5252

4808:                                             ; preds = %4807
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %660, ptr noundef nonnull align 8 dereferenceable(32) %650)
          to label %4809 unwind label %5275

4809:                                             ; preds = %4808
  invoke void @_ZNK6Halide6BufferIfEclIJNS_3VarEEEENS_4ExprES4_DpT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %658, ptr noundef nonnull align 8 dereferenceable(16) %638, ptr noundef %659, ptr noundef %660)
          to label %4810 unwind label %5279

4810:                                             ; preds = %4809
  call void @llvm.lifetime.start.p0(i64 56, ptr %661) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %661, ptr noundef nonnull align 8 dereferenceable(32) %647, ptr noundef nonnull align 8 dereferenceable(32) %651, ptr noundef nonnull align 8 dereferenceable(32) %650)
          to label %4811 unwind label %5283

4811:                                             ; preds = %4810
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %657, ptr noundef nonnull align 8 dereferenceable(56) %661, ptr noundef %658)
          to label %4812 unwind label %5287

4812:                                             ; preds = %4811
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %657) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %661) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %661) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %658) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %660) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %659) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr %662) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %663, i32 noundef 0)
          to label %4813 unwind label %5294

4813:                                             ; preds = %4812
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %664, i32 noundef 1024)
          to label %4814 unwind label %5298

4814:                                             ; preds = %4813
  invoke void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %662, ptr noundef %663, ptr noundef %664)
          to label %4815 unwind label %5302

4815:                                             ; preds = %4814
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %664) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %663) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %668) #9
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %669, ptr noundef nonnull align 8 dereferenceable(200) %662)
          to label %4816 unwind label %5307

4816:                                             ; preds = %4815
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %668, ptr noundef nonnull align 8 dereferenceable(32) %644, ptr noundef %669, ptr noundef nonnull align 8 dereferenceable(32) %650)
          to label %4817 unwind label %5311

4817:                                             ; preds = %4816
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %667, ptr noundef nonnull align 8 dereferenceable(56) %668)
          to label %4818 unwind label %5315

4818:                                             ; preds = %4817
  call void @llvm.lifetime.start.p0(i64 56, ptr %671) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %672, ptr noundef nonnull align 8 dereferenceable(32) %651)
          to label %4819 unwind label %5319

4819:                                             ; preds = %4818
  invoke void @_ZNK6Halide4FuncclIJRNS_4RDomEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %671, ptr noundef nonnull align 8 dereferenceable(32) %647, ptr noundef %672, ptr noundef nonnull align 8 dereferenceable(200) %662)
          to label %4820 unwind label %5323

4820:                                             ; preds = %4819
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %670, ptr noundef nonnull align 8 dereferenceable(56) %671)
          to label %4821 unwind label %5327

4821:                                             ; preds = %4820
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %666, ptr noundef %667, ptr noundef %670)
          to label %4822 unwind label %5331

4822:                                             ; preds = %4821
  call void @llvm.lifetime.start.p0(i64 56, ptr %673) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %673, ptr noundef nonnull align 8 dereferenceable(32) %641, ptr noundef nonnull align 8 dereferenceable(32) %651, ptr noundef nonnull align 8 dereferenceable(32) %650)
          to label %4823 unwind label %5335

4823:                                             ; preds = %4822
  invoke void @_ZN6Halide7FuncRefpLENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %665, ptr noundef nonnull align 8 dereferenceable(56) %673, ptr noundef %666)
          to label %4824 unwind label %5339

4824:                                             ; preds = %4823
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %665) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %673) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %673) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %666) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %670) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %671) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %672) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %671) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %667) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %668) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %669) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %668) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %674) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %675) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %676) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %676) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %675, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %676)
          to label %4825 unwind label %5351

4825:                                             ; preds = %4824
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %674, ptr noundef nonnull align 8 dereferenceable(32) %675)
          to label %4826 unwind label %5355

4826:                                             ; preds = %4825
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %675) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %676) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %676) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %675) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %678) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %678, ptr noundef nonnull align 8 dereferenceable(32) %641, ptr noundef nonnull align 8 dereferenceable(32) %651, ptr noundef nonnull align 8 dereferenceable(32) %650)
          to label %4827 unwind label %5360

4827:                                             ; preds = %4826
  call void @llvm.lifetime.start.p0(i64 56, ptr %679) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %679, ptr noundef nonnull align 8 dereferenceable(32) %674, ptr noundef nonnull align 8 dereferenceable(32) %651, ptr noundef nonnull align 8 dereferenceable(32) %650)
          to label %4828 unwind label %5364

4828:                                             ; preds = %4827
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %677, ptr noundef nonnull align 8 dereferenceable(56) %679, ptr noundef nonnull align 8 dereferenceable(56) %678)
          to label %4829 unwind label %5368

4829:                                             ; preds = %4828
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %677) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %679) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %679) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %678) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %678) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %680, ptr noundef nonnull align 8 dereferenceable(32) %651)
          to label %4830 unwind label %5374

4830:                                             ; preds = %4829
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %681, i32 noundef 0)
          to label %4831 unwind label %5378

4831:                                             ; preds = %4830
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %682, i32 noundef 1024)
          to label %4832 unwind label %5382

4832:                                             ; preds = %4831
  %4833 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %674, ptr noundef %680, ptr noundef %681, ptr noundef %682)
          to label %4834 unwind label %5386

4834:                                             ; preds = %4832
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %683, ptr noundef nonnull align 8 dereferenceable(32) %650)
          to label %4835 unwind label %5386

4835:                                             ; preds = %4834
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %684, i32 noundef 0)
          to label %4836 unwind label %5390

4836:                                             ; preds = %4835
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %685, i32 noundef 1024)
          to label %4837 unwind label %5394

4837:                                             ; preds = %4836
  %4838 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4833, ptr noundef %683, ptr noundef %684, ptr noundef %685)
          to label %4839 unwind label %5398

4839:                                             ; preds = %4837
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %685) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %684) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %683) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %682) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %681) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %680) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %687) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %688, ptr noundef nonnull align 8 dereferenceable(32) %674) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %687, ptr noundef %688)
          to label %4840 unwind label %5407

4840:                                             ; preds = %4839
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %686, ptr noundef nonnull align 8 dereferenceable(8) %687, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %4841 unwind label %5411

4841:                                             ; preds = %4840
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %686) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %687) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %688) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %687) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %674) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %674) #9
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %662) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %662) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %651) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %651) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %650) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %650) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %647) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %647) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %644) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %644) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %641) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %641) #9
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %638) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %638) #9
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %637) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %637) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %689) #9
  store i32 3, ptr %689, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %690) #9
  invoke void @_ZN6Halide6BufferIfEC2IJiEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %690, i32 noundef 1024, i32 noundef 1024)
          to label %4842 unwind label %5429

4842:                                             ; preds = %4841
  call void @llvm.lifetime.start.p0(i64 96, ptr %691) #9
  %4843 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %691, i32 0, i32 0
  %4844 = getelementptr inbounds %"class.Halide::Func", ptr %4843, i64 3
  br label %4845

4845:                                             ; preds = %4847, %4842
  %4846 = phi ptr [ %4843, %4842 ], [ %4848, %4847 ]
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4846)
          to label %4847 unwind label %5433

4847:                                             ; preds = %4845
  %4848 = getelementptr inbounds %"class.Halide::Func", ptr %4846, i64 1
  %4849 = icmp eq ptr %4848, %4844
  br i1 %4849, label %4850, label %4845

4850:                                             ; preds = %4847
  call void @llvm.lifetime.start.p0(i64 96, ptr %692) #9
  %4851 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %692, i32 0, i32 0
  %4852 = getelementptr inbounds %"class.Halide::Func", ptr %4851, i64 3
  br label %4853

4853:                                             ; preds = %4855, %4850
  %4854 = phi ptr [ %4851, %4850 ], [ %4856, %4855 ]
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4854)
          to label %4855 unwind label %5443

4855:                                             ; preds = %4853
  %4856 = getelementptr inbounds %"class.Halide::Func", ptr %4854, i64 1
  %4857 = icmp eq ptr %4856, %4852
  br i1 %4857, label %4858, label %4853

4858:                                             ; preds = %4855
  call void @llvm.lifetime.start.p0(i64 96, ptr %693) #9
  %4859 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %693, i32 0, i32 0
  %4860 = getelementptr inbounds %"class.Halide::Func", ptr %4859, i64 3
  br label %4861

4861:                                             ; preds = %4863, %4858
  %4862 = phi ptr [ %4859, %4858 ], [ %4864, %4863 ]
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4862)
          to label %4863 unwind label %5453

4863:                                             ; preds = %4861
  %4864 = getelementptr inbounds %"class.Halide::Func", ptr %4862, i64 1
  %4865 = icmp eq ptr %4864, %4860
  br i1 %4865, label %4866, label %4861

4866:                                             ; preds = %4863
  call void @llvm.lifetime.start.p0(i64 32, ptr %694) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %695) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %696)
          to label %4867 unwind label %5463

4867:                                             ; preds = %4866
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %694, ptr noundef nonnull align 8 dereferenceable(32) %695)
          to label %4868 unwind label %5467

4868:                                             ; preds = %4867
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %695) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %696) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %696) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %695) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %697) #9
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %697)
          to label %4869 unwind label %5472

4869:                                             ; preds = %4868
  call void @llvm.lifetime.start.p0(i64 32, ptr %698) #9
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %4870 unwind label %5476

4870:                                             ; preds = %4869
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %701, ptr noundef nonnull align 8 dereferenceable(32) %697)
          to label %4871 unwind label %5480

4871:                                             ; preds = %4870
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %702, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %4872 unwind label %5484

4872:                                             ; preds = %4871
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %700, ptr noundef %701, ptr noundef %702)
          to label %4873 unwind label %5488

4873:                                             ; preds = %4872
  call void @llvm.lifetime.start.p0(i64 56, ptr %703) #9
  %4874 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %691, i64 0, i64 0
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %703, ptr noundef nonnull align 8 dereferenceable(32) %4874, ptr noundef nonnull align 8 dereferenceable(32) %697, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %4875 unwind label %5492

4875:                                             ; preds = %4873
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %699, ptr noundef nonnull align 8 dereferenceable(56) %703, ptr noundef %700)
          to label %4876 unwind label %5496

4876:                                             ; preds = %4875
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %699) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %703) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %703) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %700) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %702) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %701) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %704) #9
  store i32 1, ptr %704, align 4, !tbaa !5
  br label %4877

4877:                                             ; preds = %5516, %4876
  %4878 = load i32, ptr %704, align 4, !tbaa !5
  %4879 = icmp slt i32 %4878, 3
  br i1 %4879, label %5503, label %4880

4880:                                             ; preds = %4877
  store i32 26, ptr %311, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %704) #9
  br label %5543

4881:                                             ; preds = %4706
  %4882 = landingpad { ptr, i32 }
          cleanup
  %4883 = extractvalue { ptr, i32 } %4882, 0
  store ptr %4883, ptr %8, align 8
  %4884 = extractvalue { ptr, i32 } %4882, 1
  store i32 %4884, ptr %9, align 4
  br label %4923

4885:                                             ; preds = %4708
  %4886 = landingpad { ptr, i32 }
          cleanup
  %4887 = extractvalue { ptr, i32 } %4886, 0
  store ptr %4887, ptr %8, align 8
  %4888 = extractvalue { ptr, i32 } %4886, 1
  store i32 %4888, ptr %9, align 4
  br label %4913

4889:                                             ; preds = %4709
  %4890 = landingpad { ptr, i32 }
          cleanup
  %4891 = extractvalue { ptr, i32 } %4890, 0
  store ptr %4891, ptr %8, align 8
  %4892 = extractvalue { ptr, i32 } %4890, 1
  store i32 %4892, ptr %9, align 4
  br label %4912

4893:                                             ; preds = %4712, %4710
  %4894 = landingpad { ptr, i32 }
          cleanup
  %4895 = extractvalue { ptr, i32 } %4894, 0
  store ptr %4895, ptr %8, align 8
  %4896 = extractvalue { ptr, i32 } %4894, 1
  store i32 %4896, ptr %9, align 4
  br label %4911

4897:                                             ; preds = %4713
  %4898 = landingpad { ptr, i32 }
          cleanup
  %4899 = extractvalue { ptr, i32 } %4898, 0
  store ptr %4899, ptr %8, align 8
  %4900 = extractvalue { ptr, i32 } %4898, 1
  store i32 %4900, ptr %9, align 4
  br label %4910

4901:                                             ; preds = %4714
  %4902 = landingpad { ptr, i32 }
          cleanup
  %4903 = extractvalue { ptr, i32 } %4902, 0
  store ptr %4903, ptr %8, align 8
  %4904 = extractvalue { ptr, i32 } %4902, 1
  store i32 %4904, ptr %9, align 4
  br label %4909

4905:                                             ; preds = %4715
  %4906 = landingpad { ptr, i32 }
          cleanup
  %4907 = extractvalue { ptr, i32 } %4906, 0
  store ptr %4907, ptr %8, align 8
  %4908 = extractvalue { ptr, i32 } %4906, 1
  store i32 %4908, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %577) #9
  br label %4909

4909:                                             ; preds = %4905, %4901
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %576) #9
  br label %4910

4910:                                             ; preds = %4909, %4897
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %575) #9
  br label %4911

4911:                                             ; preds = %4910, %4893
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %574) #9
  br label %4912

4912:                                             ; preds = %4911, %4889
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %573) #9
  br label %4913

4913:                                             ; preds = %4912, %4885
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %572) #9
  br label %4923

4914:                                             ; preds = %4717
  %4915 = landingpad { ptr, i32 }
          cleanup
  %4916 = extractvalue { ptr, i32 } %4915, 0
  store ptr %4916, ptr %8, align 8
  %4917 = extractvalue { ptr, i32 } %4915, 1
  store i32 %4917, ptr %9, align 4
  br label %4922

4918:                                             ; preds = %4719
  %4919 = landingpad { ptr, i32 }
          cleanup
  %4920 = extractvalue { ptr, i32 } %4919, 0
  store ptr %4920, ptr %8, align 8
  %4921 = extractvalue { ptr, i32 } %4919, 1
  store i32 %4921, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %579) #9
  br label %4922

4922:                                             ; preds = %4918, %4914
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %580) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %579) #9
  br label %4923

4923:                                             ; preds = %4922, %4913, %4881, %4705, %4665, %4616, %4587
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %544) #9
  br label %4924

4924:                                             ; preds = %4923, %4573, %4561
  call void @llvm.lifetime.end.p0(i64 200, ptr %544) #9
  br label %4925

4925:                                             ; preds = %4924, %4531, %4491, %4469
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %532) #9
  br label %4926

4926:                                             ; preds = %4925, %4465
  call void @llvm.lifetime.end.p0(i64 32, ptr %532) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %531) #9
  br label %4927

4927:                                             ; preds = %4926, %4461
  call void @llvm.lifetime.end.p0(i64 32, ptr %531) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %528) #9
  br label %4928

4928:                                             ; preds = %4927, %4460
  call void @llvm.lifetime.end.p0(i64 32, ptr %528) #9
  %4929 = getelementptr inbounds [5 x %"class.Halide::Func"], ptr %527, i32 0, i32 0
  %4930 = getelementptr inbounds %"class.Halide::Func", ptr %4929, i64 5
  br label %4931

4931:                                             ; preds = %4931, %4928
  %4932 = phi ptr [ %4930, %4928 ], [ %4933, %4931 ]
  %4933 = getelementptr inbounds %"class.Halide::Func", ptr %4932, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4933) #9
  %4934 = icmp eq ptr %4933, %4929
  br i1 %4934, label %4935, label %4931

4935:                                             ; preds = %4931
  br label %4936

4936:                                             ; preds = %4935, %4451
  call void @llvm.lifetime.end.p0(i64 160, ptr %527) #9
  %4937 = getelementptr inbounds [5 x %"class.Halide::Func"], ptr %526, i32 0, i32 0
  %4938 = getelementptr inbounds %"class.Halide::Func", ptr %4937, i64 5
  br label %4939

4939:                                             ; preds = %4939, %4936
  %4940 = phi ptr [ %4938, %4936 ], [ %4941, %4939 ]
  %4941 = getelementptr inbounds %"class.Halide::Func", ptr %4940, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4941) #9
  %4942 = icmp eq ptr %4941, %4937
  br i1 %4942, label %4943, label %4939

4943:                                             ; preds = %4939
  br label %4944

4944:                                             ; preds = %4943, %4441
  call void @llvm.lifetime.end.p0(i64 160, ptr %526) #9
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %525) #9
  br label %4945

4945:                                             ; preds = %4944, %4428
  call void @llvm.lifetime.end.p0(i64 16, ptr %525) #9
  br label %9780

4946:                                             ; preds = %4734
  %4947 = landingpad { ptr, i32 }
          cleanup
  %4948 = extractvalue { ptr, i32 } %4947, 0
  store ptr %4948, ptr %8, align 8
  %4949 = extractvalue { ptr, i32 } %4947, 1
  store i32 %4949, ptr %9, align 4
  br label %4954

4950:                                             ; preds = %4735
  %4951 = landingpad { ptr, i32 }
          cleanup
  %4952 = extractvalue { ptr, i32 } %4951, 0
  store ptr %4952, ptr %8, align 8
  %4953 = extractvalue { ptr, i32 } %4951, 1
  store i32 %4953, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %582) #9
  br label %4954

4954:                                             ; preds = %4950, %4946
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %583) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %583) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %582) #9
  br label %5200

4955:                                             ; preds = %4736
  %4956 = landingpad { ptr, i32 }
          cleanup
  %4957 = extractvalue { ptr, i32 } %4956, 0
  store ptr %4957, ptr %8, align 8
  %4958 = extractvalue { ptr, i32 } %4956, 1
  store i32 %4958, ptr %9, align 4
  br label %4963

4959:                                             ; preds = %4737
  %4960 = landingpad { ptr, i32 }
          cleanup
  %4961 = extractvalue { ptr, i32 } %4960, 0
  store ptr %4961, ptr %8, align 8
  %4962 = extractvalue { ptr, i32 } %4960, 1
  store i32 %4962, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %585) #9
  br label %4963

4963:                                             ; preds = %4959, %4955
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %586) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %586) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %585) #9
  br label %5199

4964:                                             ; preds = %4738
  %4965 = landingpad { ptr, i32 }
          cleanup
  %4966 = extractvalue { ptr, i32 } %4965, 0
  store ptr %4966, ptr %8, align 8
  %4967 = extractvalue { ptr, i32 } %4965, 1
  store i32 %4967, ptr %9, align 4
  br label %4972

4968:                                             ; preds = %4739
  %4969 = landingpad { ptr, i32 }
          cleanup
  %4970 = extractvalue { ptr, i32 } %4969, 0
  store ptr %4970, ptr %8, align 8
  %4971 = extractvalue { ptr, i32 } %4969, 1
  store i32 %4971, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %588) #9
  br label %4972

4972:                                             ; preds = %4968, %4964
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %589) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %589) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %588) #9
  br label %5198

4973:                                             ; preds = %4740
  %4974 = landingpad { ptr, i32 }
          cleanup
  %4975 = extractvalue { ptr, i32 } %4974, 0
  store ptr %4975, ptr %8, align 8
  %4976 = extractvalue { ptr, i32 } %4974, 1
  store i32 %4976, ptr %9, align 4
  br label %5197

4977:                                             ; preds = %4741
  %4978 = landingpad { ptr, i32 }
          cleanup
  %4979 = extractvalue { ptr, i32 } %4978, 0
  store ptr %4979, ptr %8, align 8
  %4980 = extractvalue { ptr, i32 } %4978, 1
  store i32 %4980, ptr %9, align 4
  br label %5196

4981:                                             ; preds = %4781, %4742
  %4982 = landingpad { ptr, i32 }
          cleanup
  %4983 = extractvalue { ptr, i32 } %4982, 0
  store ptr %4983, ptr %8, align 8
  %4984 = extractvalue { ptr, i32 } %4982, 1
  store i32 %4984, ptr %9, align 4
  br label %5195

4985:                                             ; preds = %4743
  %4986 = landingpad { ptr, i32 }
          cleanup
  %4987 = extractvalue { ptr, i32 } %4986, 0
  store ptr %4987, ptr %8, align 8
  %4988 = extractvalue { ptr, i32 } %4986, 1
  store i32 %4988, ptr %9, align 4
  br label %5118

4989:                                             ; preds = %4744
  %4990 = landingpad { ptr, i32 }
          cleanup
  %4991 = extractvalue { ptr, i32 } %4990, 0
  store ptr %4991, ptr %8, align 8
  %4992 = extractvalue { ptr, i32 } %4990, 1
  store i32 %4992, ptr %9, align 4
  br label %5117

4993:                                             ; preds = %4745
  %4994 = landingpad { ptr, i32 }
          cleanup
  %4995 = extractvalue { ptr, i32 } %4994, 0
  store ptr %4995, ptr %8, align 8
  %4996 = extractvalue { ptr, i32 } %4994, 1
  store i32 %4996, ptr %9, align 4
  br label %5116

4997:                                             ; preds = %4746
  %4998 = landingpad { ptr, i32 }
          cleanup
  %4999 = extractvalue { ptr, i32 } %4998, 0
  store ptr %4999, ptr %8, align 8
  %5000 = extractvalue { ptr, i32 } %4998, 1
  store i32 %5000, ptr %9, align 4
  br label %5115

5001:                                             ; preds = %4747
  %5002 = landingpad { ptr, i32 }
          cleanup
  %5003 = extractvalue { ptr, i32 } %5002, 0
  store ptr %5003, ptr %8, align 8
  %5004 = extractvalue { ptr, i32 } %5002, 1
  store i32 %5004, ptr %9, align 4
  br label %5114

5005:                                             ; preds = %4748
  %5006 = landingpad { ptr, i32 }
          cleanup
  %5007 = extractvalue { ptr, i32 } %5006, 0
  store ptr %5007, ptr %8, align 8
  %5008 = extractvalue { ptr, i32 } %5006, 1
  store i32 %5008, ptr %9, align 4
  br label %5113

5009:                                             ; preds = %4749
  %5010 = landingpad { ptr, i32 }
          cleanup
  %5011 = extractvalue { ptr, i32 } %5010, 0
  store ptr %5011, ptr %8, align 8
  %5012 = extractvalue { ptr, i32 } %5010, 1
  store i32 %5012, ptr %9, align 4
  br label %5112

5013:                                             ; preds = %4750
  %5014 = landingpad { ptr, i32 }
          cleanup
  %5015 = extractvalue { ptr, i32 } %5014, 0
  store ptr %5015, ptr %8, align 8
  %5016 = extractvalue { ptr, i32 } %5014, 1
  store i32 %5016, ptr %9, align 4
  br label %5111

5017:                                             ; preds = %4751
  %5018 = landingpad { ptr, i32 }
          cleanup
  %5019 = extractvalue { ptr, i32 } %5018, 0
  store ptr %5019, ptr %8, align 8
  %5020 = extractvalue { ptr, i32 } %5018, 1
  store i32 %5020, ptr %9, align 4
  br label %5110

5021:                                             ; preds = %4752
  %5022 = landingpad { ptr, i32 }
          cleanup
  %5023 = extractvalue { ptr, i32 } %5022, 0
  store ptr %5023, ptr %8, align 8
  %5024 = extractvalue { ptr, i32 } %5022, 1
  store i32 %5024, ptr %9, align 4
  br label %5109

5025:                                             ; preds = %4753
  %5026 = landingpad { ptr, i32 }
          cleanup
  %5027 = extractvalue { ptr, i32 } %5026, 0
  store ptr %5027, ptr %8, align 8
  %5028 = extractvalue { ptr, i32 } %5026, 1
  store i32 %5028, ptr %9, align 4
  br label %5108

5029:                                             ; preds = %4754
  %5030 = landingpad { ptr, i32 }
          cleanup
  %5031 = extractvalue { ptr, i32 } %5030, 0
  store ptr %5031, ptr %8, align 8
  %5032 = extractvalue { ptr, i32 } %5030, 1
  store i32 %5032, ptr %9, align 4
  br label %5107

5033:                                             ; preds = %4755
  %5034 = landingpad { ptr, i32 }
          cleanup
  %5035 = extractvalue { ptr, i32 } %5034, 0
  store ptr %5035, ptr %8, align 8
  %5036 = extractvalue { ptr, i32 } %5034, 1
  store i32 %5036, ptr %9, align 4
  br label %5106

5037:                                             ; preds = %4756
  %5038 = landingpad { ptr, i32 }
          cleanup
  %5039 = extractvalue { ptr, i32 } %5038, 0
  store ptr %5039, ptr %8, align 8
  %5040 = extractvalue { ptr, i32 } %5038, 1
  store i32 %5040, ptr %9, align 4
  br label %5105

5041:                                             ; preds = %4757
  %5042 = landingpad { ptr, i32 }
          cleanup
  %5043 = extractvalue { ptr, i32 } %5042, 0
  store ptr %5043, ptr %8, align 8
  %5044 = extractvalue { ptr, i32 } %5042, 1
  store i32 %5044, ptr %9, align 4
  br label %5104

5045:                                             ; preds = %4758
  %5046 = landingpad { ptr, i32 }
          cleanup
  %5047 = extractvalue { ptr, i32 } %5046, 0
  store ptr %5047, ptr %8, align 8
  %5048 = extractvalue { ptr, i32 } %5046, 1
  store i32 %5048, ptr %9, align 4
  br label %5103

5049:                                             ; preds = %4759
  %5050 = landingpad { ptr, i32 }
          cleanup
  %5051 = extractvalue { ptr, i32 } %5050, 0
  store ptr %5051, ptr %8, align 8
  %5052 = extractvalue { ptr, i32 } %5050, 1
  store i32 %5052, ptr %9, align 4
  br label %5102

5053:                                             ; preds = %4760
  %5054 = landingpad { ptr, i32 }
          cleanup
  %5055 = extractvalue { ptr, i32 } %5054, 0
  store ptr %5055, ptr %8, align 8
  %5056 = extractvalue { ptr, i32 } %5054, 1
  store i32 %5056, ptr %9, align 4
  br label %5101

5057:                                             ; preds = %4761
  %5058 = landingpad { ptr, i32 }
          cleanup
  %5059 = extractvalue { ptr, i32 } %5058, 0
  store ptr %5059, ptr %8, align 8
  %5060 = extractvalue { ptr, i32 } %5058, 1
  store i32 %5060, ptr %9, align 4
  br label %5100

5061:                                             ; preds = %4762
  %5062 = landingpad { ptr, i32 }
          cleanup
  %5063 = extractvalue { ptr, i32 } %5062, 0
  store ptr %5063, ptr %8, align 8
  %5064 = extractvalue { ptr, i32 } %5062, 1
  store i32 %5064, ptr %9, align 4
  br label %5099

5065:                                             ; preds = %4763
  %5066 = landingpad { ptr, i32 }
          cleanup
  %5067 = extractvalue { ptr, i32 } %5066, 0
  store ptr %5067, ptr %8, align 8
  %5068 = extractvalue { ptr, i32 } %5066, 1
  store i32 %5068, ptr %9, align 4
  br label %5098

5069:                                             ; preds = %4764
  %5070 = landingpad { ptr, i32 }
          cleanup
  %5071 = extractvalue { ptr, i32 } %5070, 0
  store ptr %5071, ptr %8, align 8
  %5072 = extractvalue { ptr, i32 } %5070, 1
  store i32 %5072, ptr %9, align 4
  br label %5097

5073:                                             ; preds = %4765
  %5074 = landingpad { ptr, i32 }
          cleanup
  %5075 = extractvalue { ptr, i32 } %5074, 0
  store ptr %5075, ptr %8, align 8
  %5076 = extractvalue { ptr, i32 } %5074, 1
  store i32 %5076, ptr %9, align 4
  br label %5096

5077:                                             ; preds = %4766
  %5078 = landingpad { ptr, i32 }
          cleanup
  %5079 = extractvalue { ptr, i32 } %5078, 0
  store ptr %5079, ptr %8, align 8
  %5080 = extractvalue { ptr, i32 } %5078, 1
  store i32 %5080, ptr %9, align 4
  br label %5095

5081:                                             ; preds = %4767
  %5082 = landingpad { ptr, i32 }
          cleanup
  %5083 = extractvalue { ptr, i32 } %5082, 0
  store ptr %5083, ptr %8, align 8
  %5084 = extractvalue { ptr, i32 } %5082, 1
  store i32 %5084, ptr %9, align 4
  br label %5094

5085:                                             ; preds = %4768
  %5086 = landingpad { ptr, i32 }
          cleanup
  %5087 = extractvalue { ptr, i32 } %5086, 0
  store ptr %5087, ptr %8, align 8
  %5088 = extractvalue { ptr, i32 } %5086, 1
  store i32 %5088, ptr %9, align 4
  br label %5093

5089:                                             ; preds = %4769
  %5090 = landingpad { ptr, i32 }
          cleanup
  %5091 = extractvalue { ptr, i32 } %5090, 0
  store ptr %5091, ptr %8, align 8
  %5092 = extractvalue { ptr, i32 } %5090, 1
  store i32 %5092, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %619) #9
  br label %5093

5093:                                             ; preds = %5089, %5085
  call void @llvm.lifetime.end.p0(i64 56, ptr %619) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %593) #9
  br label %5094

5094:                                             ; preds = %5093, %5081
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %616) #9
  br label %5095

5095:                                             ; preds = %5094, %5077
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %617) #9
  br label %5096

5096:                                             ; preds = %5095, %5073
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %618) #9
  br label %5097

5097:                                             ; preds = %5096, %5069
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %594) #9
  br label %5098

5098:                                             ; preds = %5097, %5065
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %613) #9
  br label %5099

5099:                                             ; preds = %5098, %5061
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %614) #9
  br label %5100

5100:                                             ; preds = %5099, %5057
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %615) #9
  br label %5101

5101:                                             ; preds = %5100, %5053
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %595) #9
  br label %5102

5102:                                             ; preds = %5101, %5049
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %611) #9
  br label %5103

5103:                                             ; preds = %5102, %5045
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %612) #9
  br label %5104

5104:                                             ; preds = %5103, %5041
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %596) #9
  br label %5105

5105:                                             ; preds = %5104, %5037
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %609) #9
  br label %5106

5106:                                             ; preds = %5105, %5033
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %610) #9
  br label %5107

5107:                                             ; preds = %5106, %5029
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %597) #9
  br label %5108

5108:                                             ; preds = %5107, %5025
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %606) #9
  br label %5109

5109:                                             ; preds = %5108, %5021
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %607) #9
  br label %5110

5110:                                             ; preds = %5109, %5017
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %608) #9
  br label %5111

5111:                                             ; preds = %5110, %5013
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %598) #9
  br label %5112

5112:                                             ; preds = %5111, %5009
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %603) #9
  br label %5113

5113:                                             ; preds = %5112, %5005
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %604) #9
  br label %5114

5114:                                             ; preds = %5113, %5001
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %605) #9
  br label %5115

5115:                                             ; preds = %5114, %4997
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %599) #9
  br label %5116

5116:                                             ; preds = %5115, %4993
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %600) #9
  br label %5117

5117:                                             ; preds = %5116, %4989
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %601) #9
  br label %5118

5118:                                             ; preds = %5117, %4985
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %602) #9
  br label %5195

5119:                                             ; preds = %4770
  %5120 = landingpad { ptr, i32 }
          cleanup
  %5121 = extractvalue { ptr, i32 } %5120, 0
  store ptr %5121, ptr %8, align 8
  %5122 = extractvalue { ptr, i32 } %5120, 1
  store i32 %5122, ptr %9, align 4
  br label %5147

5123:                                             ; preds = %4771
  %5124 = landingpad { ptr, i32 }
          cleanup
  %5125 = extractvalue { ptr, i32 } %5124, 0
  store ptr %5125, ptr %8, align 8
  %5126 = extractvalue { ptr, i32 } %5124, 1
  store i32 %5126, ptr %9, align 4
  br label %5146

5127:                                             ; preds = %4772
  %5128 = landingpad { ptr, i32 }
          cleanup
  %5129 = extractvalue { ptr, i32 } %5128, 0
  store ptr %5129, ptr %8, align 8
  %5130 = extractvalue { ptr, i32 } %5128, 1
  store i32 %5130, ptr %9, align 4
  br label %5145

5131:                                             ; preds = %4773
  %5132 = landingpad { ptr, i32 }
          cleanup
  %5133 = extractvalue { ptr, i32 } %5132, 0
  store ptr %5133, ptr %8, align 8
  %5134 = extractvalue { ptr, i32 } %5132, 1
  store i32 %5134, ptr %9, align 4
  br label %5144

5135:                                             ; preds = %4774
  %5136 = landingpad { ptr, i32 }
          cleanup
  %5137 = extractvalue { ptr, i32 } %5136, 0
  store ptr %5137, ptr %8, align 8
  %5138 = extractvalue { ptr, i32 } %5136, 1
  store i32 %5138, ptr %9, align 4
  br label %5143

5139:                                             ; preds = %4775
  %5140 = landingpad { ptr, i32 }
          cleanup
  %5141 = extractvalue { ptr, i32 } %5140, 0
  store ptr %5141, ptr %8, align 8
  %5142 = extractvalue { ptr, i32 } %5140, 1
  store i32 %5142, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %625) #9
  br label %5143

5143:                                             ; preds = %5139, %5135
  call void @llvm.lifetime.end.p0(i64 56, ptr %625) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %621) #9
  br label %5144

5144:                                             ; preds = %5143, %5131
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %622) #9
  br label %5145

5145:                                             ; preds = %5144, %5127
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %623) #9
  br label %5146

5146:                                             ; preds = %5145, %5123
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %624) #9
  br label %5147

5147:                                             ; preds = %5146, %5119
  call void @llvm.lifetime.end.p0(i64 56, ptr %624) #9
  br label %5195

5148:                                             ; preds = %4776
  %5149 = landingpad { ptr, i32 }
          cleanup
  %5150 = extractvalue { ptr, i32 } %5149, 0
  store ptr %5150, ptr %8, align 8
  %5151 = extractvalue { ptr, i32 } %5149, 1
  store i32 %5151, ptr %9, align 4
  br label %5171

5152:                                             ; preds = %4777
  %5153 = landingpad { ptr, i32 }
          cleanup
  %5154 = extractvalue { ptr, i32 } %5153, 0
  store ptr %5154, ptr %8, align 8
  %5155 = extractvalue { ptr, i32 } %5153, 1
  store i32 %5155, ptr %9, align 4
  br label %5170

5156:                                             ; preds = %4778
  %5157 = landingpad { ptr, i32 }
          cleanup
  %5158 = extractvalue { ptr, i32 } %5157, 0
  store ptr %5158, ptr %8, align 8
  %5159 = extractvalue { ptr, i32 } %5157, 1
  store i32 %5159, ptr %9, align 4
  br label %5169

5160:                                             ; preds = %4779
  %5161 = landingpad { ptr, i32 }
          cleanup
  %5162 = extractvalue { ptr, i32 } %5161, 0
  store ptr %5162, ptr %8, align 8
  %5163 = extractvalue { ptr, i32 } %5161, 1
  store i32 %5163, ptr %9, align 4
  br label %5168

5164:                                             ; preds = %4780
  %5165 = landingpad { ptr, i32 }
          cleanup
  %5166 = extractvalue { ptr, i32 } %5165, 0
  store ptr %5166, ptr %8, align 8
  %5167 = extractvalue { ptr, i32 } %5165, 1
  store i32 %5167, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %630) #9
  br label %5168

5168:                                             ; preds = %5164, %5160
  call void @llvm.lifetime.end.p0(i64 56, ptr %630) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %627) #9
  br label %5169

5169:                                             ; preds = %5168, %5156
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %628) #9
  br label %5170

5170:                                             ; preds = %5169, %5152
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %629) #9
  br label %5171

5171:                                             ; preds = %5170, %5148
  call void @llvm.lifetime.end.p0(i64 56, ptr %629) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %628) #9
  br label %5195

5172:                                             ; preds = %4782
  %5173 = landingpad { ptr, i32 }
          cleanup
  %5174 = extractvalue { ptr, i32 } %5173, 0
  store ptr %5174, ptr %8, align 8
  %5175 = extractvalue { ptr, i32 } %5173, 1
  store i32 %5175, ptr %9, align 4
  br label %5185

5176:                                             ; preds = %4783
  %5177 = landingpad { ptr, i32 }
          cleanup
  %5178 = extractvalue { ptr, i32 } %5177, 0
  store ptr %5178, ptr %8, align 8
  %5179 = extractvalue { ptr, i32 } %5177, 1
  store i32 %5179, ptr %9, align 4
  br label %5184

5180:                                             ; preds = %4784
  %5181 = landingpad { ptr, i32 }
          cleanup
  %5182 = extractvalue { ptr, i32 } %5181, 0
  store ptr %5182, ptr %8, align 8
  %5183 = extractvalue { ptr, i32 } %5181, 1
  store i32 %5183, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %633) #9
  br label %5184

5184:                                             ; preds = %5180, %5176
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %632) #9
  br label %5185

5185:                                             ; preds = %5184, %5172
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %631) #9
  br label %5195

5186:                                             ; preds = %4786
  %5187 = landingpad { ptr, i32 }
          cleanup
  %5188 = extractvalue { ptr, i32 } %5187, 0
  store ptr %5188, ptr %8, align 8
  %5189 = extractvalue { ptr, i32 } %5187, 1
  store i32 %5189, ptr %9, align 4
  br label %5194

5190:                                             ; preds = %4787
  %5191 = landingpad { ptr, i32 }
          cleanup
  %5192 = extractvalue { ptr, i32 } %5191, 0
  store ptr %5192, ptr %8, align 8
  %5193 = extractvalue { ptr, i32 } %5191, 1
  store i32 %5193, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %635) #9
  br label %5194

5194:                                             ; preds = %5190, %5186
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %636) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %635) #9
  br label %5195

5195:                                             ; preds = %5194, %5185, %5171, %5147, %5118, %4981
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %591) #9
  br label %5196

5196:                                             ; preds = %5195, %4977
  call void @llvm.lifetime.end.p0(i64 32, ptr %591) #9
  call void @_ZN6Halide6BufferIhED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %590) #9
  br label %5197

5197:                                             ; preds = %5196, %4973
  call void @llvm.lifetime.end.p0(i64 16, ptr %590) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %587) #9
  br label %5198

5198:                                             ; preds = %5197, %4972
  call void @llvm.lifetime.end.p0(i64 32, ptr %587) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %584) #9
  br label %5199

5199:                                             ; preds = %5198, %4963
  call void @llvm.lifetime.end.p0(i64 32, ptr %584) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %581) #9
  br label %5200

5200:                                             ; preds = %5199, %4954
  call void @llvm.lifetime.end.p0(i64 32, ptr %581) #9
  br label %9780

5201:                                             ; preds = %4788
  %5202 = landingpad { ptr, i32 }
          cleanup
  %5203 = extractvalue { ptr, i32 } %5202, 0
  store ptr %5203, ptr %8, align 8
  %5204 = extractvalue { ptr, i32 } %5202, 1
  store i32 %5204, ptr %9, align 4
  br label %5428

5205:                                             ; preds = %4789
  %5206 = landingpad { ptr, i32 }
          cleanup
  %5207 = extractvalue { ptr, i32 } %5206, 0
  store ptr %5207, ptr %8, align 8
  %5208 = extractvalue { ptr, i32 } %5206, 1
  store i32 %5208, ptr %9, align 4
  br label %5427

5209:                                             ; preds = %4790
  %5210 = landingpad { ptr, i32 }
          cleanup
  %5211 = extractvalue { ptr, i32 } %5210, 0
  store ptr %5211, ptr %8, align 8
  %5212 = extractvalue { ptr, i32 } %5210, 1
  store i32 %5212, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %639) #9
  br label %5426

5213:                                             ; preds = %4792
  %5214 = landingpad { ptr, i32 }
          cleanup
  %5215 = extractvalue { ptr, i32 } %5214, 0
  store ptr %5215, ptr %8, align 8
  %5216 = extractvalue { ptr, i32 } %5214, 1
  store i32 %5216, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %640) #9
  br label %5426

5217:                                             ; preds = %4794
  %5218 = landingpad { ptr, i32 }
          cleanup
  %5219 = extractvalue { ptr, i32 } %5218, 0
  store ptr %5219, ptr %8, align 8
  %5220 = extractvalue { ptr, i32 } %5218, 1
  store i32 %5220, ptr %9, align 4
  br label %5225

5221:                                             ; preds = %4795
  %5222 = landingpad { ptr, i32 }
          cleanup
  %5223 = extractvalue { ptr, i32 } %5222, 0
  store ptr %5223, ptr %8, align 8
  %5224 = extractvalue { ptr, i32 } %5222, 1
  store i32 %5224, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %642) #9
  br label %5225

5225:                                             ; preds = %5221, %5217
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %643) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %643) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %642) #9
  br label %5425

5226:                                             ; preds = %4796
  %5227 = landingpad { ptr, i32 }
          cleanup
  %5228 = extractvalue { ptr, i32 } %5227, 0
  store ptr %5228, ptr %8, align 8
  %5229 = extractvalue { ptr, i32 } %5227, 1
  store i32 %5229, ptr %9, align 4
  br label %5234

5230:                                             ; preds = %4797
  %5231 = landingpad { ptr, i32 }
          cleanup
  %5232 = extractvalue { ptr, i32 } %5231, 0
  store ptr %5232, ptr %8, align 8
  %5233 = extractvalue { ptr, i32 } %5231, 1
  store i32 %5233, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %645) #9
  br label %5234

5234:                                             ; preds = %5230, %5226
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %646) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %646) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %645) #9
  br label %5424

5235:                                             ; preds = %4798
  %5236 = landingpad { ptr, i32 }
          cleanup
  %5237 = extractvalue { ptr, i32 } %5236, 0
  store ptr %5237, ptr %8, align 8
  %5238 = extractvalue { ptr, i32 } %5236, 1
  store i32 %5238, ptr %9, align 4
  br label %5243

5239:                                             ; preds = %4799
  %5240 = landingpad { ptr, i32 }
          cleanup
  %5241 = extractvalue { ptr, i32 } %5240, 0
  store ptr %5241, ptr %8, align 8
  %5242 = extractvalue { ptr, i32 } %5240, 1
  store i32 %5242, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %648) #9
  br label %5243

5243:                                             ; preds = %5239, %5235
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %649) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %649) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %648) #9
  br label %5423

5244:                                             ; preds = %4800
  %5245 = landingpad { ptr, i32 }
          cleanup
  %5246 = extractvalue { ptr, i32 } %5245, 0
  store ptr %5246, ptr %8, align 8
  %5247 = extractvalue { ptr, i32 } %5245, 1
  store i32 %5247, ptr %9, align 4
  br label %5422

5248:                                             ; preds = %4801
  %5249 = landingpad { ptr, i32 }
          cleanup
  %5250 = extractvalue { ptr, i32 } %5249, 0
  store ptr %5250, ptr %8, align 8
  %5251 = extractvalue { ptr, i32 } %5249, 1
  store i32 %5251, ptr %9, align 4
  br label %5421

5252:                                             ; preds = %4807, %4802
  %5253 = landingpad { ptr, i32 }
          cleanup
  %5254 = extractvalue { ptr, i32 } %5253, 0
  store ptr %5254, ptr %8, align 8
  %5255 = extractvalue { ptr, i32 } %5253, 1
  store i32 %5255, ptr %9, align 4
  br label %5420

5256:                                             ; preds = %4803
  %5257 = landingpad { ptr, i32 }
          cleanup
  %5258 = extractvalue { ptr, i32 } %5257, 0
  store ptr %5258, ptr %8, align 8
  %5259 = extractvalue { ptr, i32 } %5257, 1
  store i32 %5259, ptr %9, align 4
  br label %5274

5260:                                             ; preds = %4804
  %5261 = landingpad { ptr, i32 }
          cleanup
  %5262 = extractvalue { ptr, i32 } %5261, 0
  store ptr %5262, ptr %8, align 8
  %5263 = extractvalue { ptr, i32 } %5261, 1
  store i32 %5263, ptr %9, align 4
  br label %5273

5264:                                             ; preds = %4805
  %5265 = landingpad { ptr, i32 }
          cleanup
  %5266 = extractvalue { ptr, i32 } %5265, 0
  store ptr %5266, ptr %8, align 8
  %5267 = extractvalue { ptr, i32 } %5265, 1
  store i32 %5267, ptr %9, align 4
  br label %5272

5268:                                             ; preds = %4806
  %5269 = landingpad { ptr, i32 }
          cleanup
  %5270 = extractvalue { ptr, i32 } %5269, 0
  store ptr %5270, ptr %8, align 8
  %5271 = extractvalue { ptr, i32 } %5269, 1
  store i32 %5271, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %656) #9
  br label %5272

5272:                                             ; preds = %5268, %5264
  call void @llvm.lifetime.end.p0(i64 56, ptr %656) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %653) #9
  br label %5273

5273:                                             ; preds = %5272, %5260
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %655) #9
  br label %5274

5274:                                             ; preds = %5273, %5256
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %654) #9
  br label %5420

5275:                                             ; preds = %4808
  %5276 = landingpad { ptr, i32 }
          cleanup
  %5277 = extractvalue { ptr, i32 } %5276, 0
  store ptr %5277, ptr %8, align 8
  %5278 = extractvalue { ptr, i32 } %5276, 1
  store i32 %5278, ptr %9, align 4
  br label %5293

5279:                                             ; preds = %4809
  %5280 = landingpad { ptr, i32 }
          cleanup
  %5281 = extractvalue { ptr, i32 } %5280, 0
  store ptr %5281, ptr %8, align 8
  %5282 = extractvalue { ptr, i32 } %5280, 1
  store i32 %5282, ptr %9, align 4
  br label %5292

5283:                                             ; preds = %4810
  %5284 = landingpad { ptr, i32 }
          cleanup
  %5285 = extractvalue { ptr, i32 } %5284, 0
  store ptr %5285, ptr %8, align 8
  %5286 = extractvalue { ptr, i32 } %5284, 1
  store i32 %5286, ptr %9, align 4
  br label %5291

5287:                                             ; preds = %4811
  %5288 = landingpad { ptr, i32 }
          cleanup
  %5289 = extractvalue { ptr, i32 } %5288, 0
  store ptr %5289, ptr %8, align 8
  %5290 = extractvalue { ptr, i32 } %5288, 1
  store i32 %5290, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %661) #9
  br label %5291

5291:                                             ; preds = %5287, %5283
  call void @llvm.lifetime.end.p0(i64 56, ptr %661) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %658) #9
  br label %5292

5292:                                             ; preds = %5291, %5279
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %660) #9
  br label %5293

5293:                                             ; preds = %5292, %5275
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %659) #9
  br label %5420

5294:                                             ; preds = %4812
  %5295 = landingpad { ptr, i32 }
          cleanup
  %5296 = extractvalue { ptr, i32 } %5295, 0
  store ptr %5296, ptr %8, align 8
  %5297 = extractvalue { ptr, i32 } %5295, 1
  store i32 %5297, ptr %9, align 4
  br label %5419

5298:                                             ; preds = %4813
  %5299 = landingpad { ptr, i32 }
          cleanup
  %5300 = extractvalue { ptr, i32 } %5299, 0
  store ptr %5300, ptr %8, align 8
  %5301 = extractvalue { ptr, i32 } %5299, 1
  store i32 %5301, ptr %9, align 4
  br label %5306

5302:                                             ; preds = %4814
  %5303 = landingpad { ptr, i32 }
          cleanup
  %5304 = extractvalue { ptr, i32 } %5303, 0
  store ptr %5304, ptr %8, align 8
  %5305 = extractvalue { ptr, i32 } %5303, 1
  store i32 %5305, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %664) #9
  br label %5306

5306:                                             ; preds = %5302, %5298
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %663) #9
  br label %5419

5307:                                             ; preds = %4815
  %5308 = landingpad { ptr, i32 }
          cleanup
  %5309 = extractvalue { ptr, i32 } %5308, 0
  store ptr %5309, ptr %8, align 8
  %5310 = extractvalue { ptr, i32 } %5308, 1
  store i32 %5310, ptr %9, align 4
  br label %5350

5311:                                             ; preds = %4816
  %5312 = landingpad { ptr, i32 }
          cleanup
  %5313 = extractvalue { ptr, i32 } %5312, 0
  store ptr %5313, ptr %8, align 8
  %5314 = extractvalue { ptr, i32 } %5312, 1
  store i32 %5314, ptr %9, align 4
  br label %5349

5315:                                             ; preds = %4817
  %5316 = landingpad { ptr, i32 }
          cleanup
  %5317 = extractvalue { ptr, i32 } %5316, 0
  store ptr %5317, ptr %8, align 8
  %5318 = extractvalue { ptr, i32 } %5316, 1
  store i32 %5318, ptr %9, align 4
  br label %5348

5319:                                             ; preds = %4818
  %5320 = landingpad { ptr, i32 }
          cleanup
  %5321 = extractvalue { ptr, i32 } %5320, 0
  store ptr %5321, ptr %8, align 8
  %5322 = extractvalue { ptr, i32 } %5320, 1
  store i32 %5322, ptr %9, align 4
  br label %5347

5323:                                             ; preds = %4819
  %5324 = landingpad { ptr, i32 }
          cleanup
  %5325 = extractvalue { ptr, i32 } %5324, 0
  store ptr %5325, ptr %8, align 8
  %5326 = extractvalue { ptr, i32 } %5324, 1
  store i32 %5326, ptr %9, align 4
  br label %5346

5327:                                             ; preds = %4820
  %5328 = landingpad { ptr, i32 }
          cleanup
  %5329 = extractvalue { ptr, i32 } %5328, 0
  store ptr %5329, ptr %8, align 8
  %5330 = extractvalue { ptr, i32 } %5328, 1
  store i32 %5330, ptr %9, align 4
  br label %5345

5331:                                             ; preds = %4821
  %5332 = landingpad { ptr, i32 }
          cleanup
  %5333 = extractvalue { ptr, i32 } %5332, 0
  store ptr %5333, ptr %8, align 8
  %5334 = extractvalue { ptr, i32 } %5332, 1
  store i32 %5334, ptr %9, align 4
  br label %5344

5335:                                             ; preds = %4822
  %5336 = landingpad { ptr, i32 }
          cleanup
  %5337 = extractvalue { ptr, i32 } %5336, 0
  store ptr %5337, ptr %8, align 8
  %5338 = extractvalue { ptr, i32 } %5336, 1
  store i32 %5338, ptr %9, align 4
  br label %5343

5339:                                             ; preds = %4823
  %5340 = landingpad { ptr, i32 }
          cleanup
  %5341 = extractvalue { ptr, i32 } %5340, 0
  store ptr %5341, ptr %8, align 8
  %5342 = extractvalue { ptr, i32 } %5340, 1
  store i32 %5342, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %673) #9
  br label %5343

5343:                                             ; preds = %5339, %5335
  call void @llvm.lifetime.end.p0(i64 56, ptr %673) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %666) #9
  br label %5344

5344:                                             ; preds = %5343, %5331
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %670) #9
  br label %5345

5345:                                             ; preds = %5344, %5327
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %671) #9
  br label %5346

5346:                                             ; preds = %5345, %5323
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %672) #9
  br label %5347

5347:                                             ; preds = %5346, %5319
  call void @llvm.lifetime.end.p0(i64 56, ptr %671) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %667) #9
  br label %5348

5348:                                             ; preds = %5347, %5315
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %668) #9
  br label %5349

5349:                                             ; preds = %5348, %5311
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %669) #9
  br label %5350

5350:                                             ; preds = %5349, %5307
  call void @llvm.lifetime.end.p0(i64 56, ptr %668) #9
  br label %5418

5351:                                             ; preds = %4824
  %5352 = landingpad { ptr, i32 }
          cleanup
  %5353 = extractvalue { ptr, i32 } %5352, 0
  store ptr %5353, ptr %8, align 8
  %5354 = extractvalue { ptr, i32 } %5352, 1
  store i32 %5354, ptr %9, align 4
  br label %5359

5355:                                             ; preds = %4825
  %5356 = landingpad { ptr, i32 }
          cleanup
  %5357 = extractvalue { ptr, i32 } %5356, 0
  store ptr %5357, ptr %8, align 8
  %5358 = extractvalue { ptr, i32 } %5356, 1
  store i32 %5358, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %675) #9
  br label %5359

5359:                                             ; preds = %5355, %5351
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %676) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %676) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %675) #9
  br label %5417

5360:                                             ; preds = %4826
  %5361 = landingpad { ptr, i32 }
          cleanup
  %5362 = extractvalue { ptr, i32 } %5361, 0
  store ptr %5362, ptr %8, align 8
  %5363 = extractvalue { ptr, i32 } %5361, 1
  store i32 %5363, ptr %9, align 4
  br label %5373

5364:                                             ; preds = %4827
  %5365 = landingpad { ptr, i32 }
          cleanup
  %5366 = extractvalue { ptr, i32 } %5365, 0
  store ptr %5366, ptr %8, align 8
  %5367 = extractvalue { ptr, i32 } %5365, 1
  store i32 %5367, ptr %9, align 4
  br label %5372

5368:                                             ; preds = %4828
  %5369 = landingpad { ptr, i32 }
          cleanup
  %5370 = extractvalue { ptr, i32 } %5369, 0
  store ptr %5370, ptr %8, align 8
  %5371 = extractvalue { ptr, i32 } %5369, 1
  store i32 %5371, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %679) #9
  br label %5372

5372:                                             ; preds = %5368, %5364
  call void @llvm.lifetime.end.p0(i64 56, ptr %679) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %678) #9
  br label %5373

5373:                                             ; preds = %5372, %5360
  call void @llvm.lifetime.end.p0(i64 56, ptr %678) #9
  br label %5416

5374:                                             ; preds = %4829
  %5375 = landingpad { ptr, i32 }
          cleanup
  %5376 = extractvalue { ptr, i32 } %5375, 0
  store ptr %5376, ptr %8, align 8
  %5377 = extractvalue { ptr, i32 } %5375, 1
  store i32 %5377, ptr %9, align 4
  br label %5416

5378:                                             ; preds = %4830
  %5379 = landingpad { ptr, i32 }
          cleanup
  %5380 = extractvalue { ptr, i32 } %5379, 0
  store ptr %5380, ptr %8, align 8
  %5381 = extractvalue { ptr, i32 } %5379, 1
  store i32 %5381, ptr %9, align 4
  br label %5406

5382:                                             ; preds = %4831
  %5383 = landingpad { ptr, i32 }
          cleanup
  %5384 = extractvalue { ptr, i32 } %5383, 0
  store ptr %5384, ptr %8, align 8
  %5385 = extractvalue { ptr, i32 } %5383, 1
  store i32 %5385, ptr %9, align 4
  br label %5405

5386:                                             ; preds = %4834, %4832
  %5387 = landingpad { ptr, i32 }
          cleanup
  %5388 = extractvalue { ptr, i32 } %5387, 0
  store ptr %5388, ptr %8, align 8
  %5389 = extractvalue { ptr, i32 } %5387, 1
  store i32 %5389, ptr %9, align 4
  br label %5404

5390:                                             ; preds = %4835
  %5391 = landingpad { ptr, i32 }
          cleanup
  %5392 = extractvalue { ptr, i32 } %5391, 0
  store ptr %5392, ptr %8, align 8
  %5393 = extractvalue { ptr, i32 } %5391, 1
  store i32 %5393, ptr %9, align 4
  br label %5403

5394:                                             ; preds = %4836
  %5395 = landingpad { ptr, i32 }
          cleanup
  %5396 = extractvalue { ptr, i32 } %5395, 0
  store ptr %5396, ptr %8, align 8
  %5397 = extractvalue { ptr, i32 } %5395, 1
  store i32 %5397, ptr %9, align 4
  br label %5402

5398:                                             ; preds = %4837
  %5399 = landingpad { ptr, i32 }
          cleanup
  %5400 = extractvalue { ptr, i32 } %5399, 0
  store ptr %5400, ptr %8, align 8
  %5401 = extractvalue { ptr, i32 } %5399, 1
  store i32 %5401, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %685) #9
  br label %5402

5402:                                             ; preds = %5398, %5394
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %684) #9
  br label %5403

5403:                                             ; preds = %5402, %5390
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %683) #9
  br label %5404

5404:                                             ; preds = %5403, %5386
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %682) #9
  br label %5405

5405:                                             ; preds = %5404, %5382
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %681) #9
  br label %5406

5406:                                             ; preds = %5405, %5378
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %680) #9
  br label %5416

5407:                                             ; preds = %4839
  %5408 = landingpad { ptr, i32 }
          cleanup
  %5409 = extractvalue { ptr, i32 } %5408, 0
  store ptr %5409, ptr %8, align 8
  %5410 = extractvalue { ptr, i32 } %5408, 1
  store i32 %5410, ptr %9, align 4
  br label %5415

5411:                                             ; preds = %4840
  %5412 = landingpad { ptr, i32 }
          cleanup
  %5413 = extractvalue { ptr, i32 } %5412, 0
  store ptr %5413, ptr %8, align 8
  %5414 = extractvalue { ptr, i32 } %5412, 1
  store i32 %5414, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %687) #9
  br label %5415

5415:                                             ; preds = %5411, %5407
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %688) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %687) #9
  br label %5416

5416:                                             ; preds = %5415, %5406, %5374, %5373
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %674) #9
  br label %5417

5417:                                             ; preds = %5416, %5359
  call void @llvm.lifetime.end.p0(i64 32, ptr %674) #9
  br label %5418

5418:                                             ; preds = %5417, %5350
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %662) #9
  br label %5419

5419:                                             ; preds = %5418, %5306, %5294
  call void @llvm.lifetime.end.p0(i64 200, ptr %662) #9
  br label %5420

5420:                                             ; preds = %5419, %5293, %5274, %5252
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %651) #9
  br label %5421

5421:                                             ; preds = %5420, %5248
  call void @llvm.lifetime.end.p0(i64 32, ptr %651) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %650) #9
  br label %5422

5422:                                             ; preds = %5421, %5244
  call void @llvm.lifetime.end.p0(i64 32, ptr %650) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %647) #9
  br label %5423

5423:                                             ; preds = %5422, %5243
  call void @llvm.lifetime.end.p0(i64 32, ptr %647) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %644) #9
  br label %5424

5424:                                             ; preds = %5423, %5234
  call void @llvm.lifetime.end.p0(i64 32, ptr %644) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %641) #9
  br label %5425

5425:                                             ; preds = %5424, %5225
  call void @llvm.lifetime.end.p0(i64 32, ptr %641) #9
  br label %5426

5426:                                             ; preds = %5425, %5213, %5209
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %638) #9
  br label %5427

5427:                                             ; preds = %5426, %5205
  call void @llvm.lifetime.end.p0(i64 16, ptr %638) #9
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %637) #9
  br label %5428

5428:                                             ; preds = %5427, %5201
  call void @llvm.lifetime.end.p0(i64 16, ptr %637) #9
  br label %9780

5429:                                             ; preds = %4841
  %5430 = landingpad { ptr, i32 }
          cleanup
  %5431 = extractvalue { ptr, i32 } %5430, 0
  store ptr %5431, ptr %8, align 8
  %5432 = extractvalue { ptr, i32 } %5430, 1
  store i32 %5432, ptr %9, align 4
  br label %6360

5433:                                             ; preds = %4845
  %5434 = landingpad { ptr, i32 }
          cleanup
  %5435 = extractvalue { ptr, i32 } %5434, 0
  store ptr %5435, ptr %8, align 8
  %5436 = extractvalue { ptr, i32 } %5434, 1
  store i32 %5436, ptr %9, align 4
  %5437 = icmp eq ptr %4843, %4846
  br i1 %5437, label %5442, label %5438

5438:                                             ; preds = %5438, %5433
  %5439 = phi ptr [ %4846, %5433 ], [ %5440, %5438 ]
  %5440 = getelementptr inbounds %"class.Halide::Func", ptr %5439, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5440) #9
  %5441 = icmp eq ptr %5440, %4843
  br i1 %5441, label %5442, label %5438

5442:                                             ; preds = %5438, %5433
  br label %6359

5443:                                             ; preds = %4853
  %5444 = landingpad { ptr, i32 }
          cleanup
  %5445 = extractvalue { ptr, i32 } %5444, 0
  store ptr %5445, ptr %8, align 8
  %5446 = extractvalue { ptr, i32 } %5444, 1
  store i32 %5446, ptr %9, align 4
  %5447 = icmp eq ptr %4851, %4854
  br i1 %5447, label %5452, label %5448

5448:                                             ; preds = %5448, %5443
  %5449 = phi ptr [ %4854, %5443 ], [ %5450, %5448 ]
  %5450 = getelementptr inbounds %"class.Halide::Func", ptr %5449, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5450) #9
  %5451 = icmp eq ptr %5450, %4851
  br i1 %5451, label %5452, label %5448

5452:                                             ; preds = %5448, %5443
  br label %6351

5453:                                             ; preds = %4861
  %5454 = landingpad { ptr, i32 }
          cleanup
  %5455 = extractvalue { ptr, i32 } %5454, 0
  store ptr %5455, ptr %8, align 8
  %5456 = extractvalue { ptr, i32 } %5454, 1
  store i32 %5456, ptr %9, align 4
  %5457 = icmp eq ptr %4859, %4862
  br i1 %5457, label %5462, label %5458

5458:                                             ; preds = %5458, %5453
  %5459 = phi ptr [ %4862, %5453 ], [ %5460, %5458 ]
  %5460 = getelementptr inbounds %"class.Halide::Func", ptr %5459, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5460) #9
  %5461 = icmp eq ptr %5460, %4859
  br i1 %5461, label %5462, label %5458

5462:                                             ; preds = %5458, %5453
  br label %6343

5463:                                             ; preds = %4866
  %5464 = landingpad { ptr, i32 }
          cleanup
  %5465 = extractvalue { ptr, i32 } %5464, 0
  store ptr %5465, ptr %8, align 8
  %5466 = extractvalue { ptr, i32 } %5464, 1
  store i32 %5466, ptr %9, align 4
  br label %5471

5467:                                             ; preds = %4867
  %5468 = landingpad { ptr, i32 }
          cleanup
  %5469 = extractvalue { ptr, i32 } %5468, 0
  store ptr %5469, ptr %8, align 8
  %5470 = extractvalue { ptr, i32 } %5468, 1
  store i32 %5470, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %695) #9
  br label %5471

5471:                                             ; preds = %5467, %5463
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %696) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %696) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %695) #9
  br label %6335

5472:                                             ; preds = %4868
  %5473 = landingpad { ptr, i32 }
          cleanup
  %5474 = extractvalue { ptr, i32 } %5473, 0
  store ptr %5474, ptr %8, align 8
  %5475 = extractvalue { ptr, i32 } %5473, 1
  store i32 %5475, ptr %9, align 4
  br label %6334

5476:                                             ; preds = %4869
  %5477 = landingpad { ptr, i32 }
          cleanup
  %5478 = extractvalue { ptr, i32 } %5477, 0
  store ptr %5478, ptr %8, align 8
  %5479 = extractvalue { ptr, i32 } %5477, 1
  store i32 %5479, ptr %9, align 4
  br label %6333

5480:                                             ; preds = %4870
  %5481 = landingpad { ptr, i32 }
          cleanup
  %5482 = extractvalue { ptr, i32 } %5481, 0
  store ptr %5482, ptr %8, align 8
  %5483 = extractvalue { ptr, i32 } %5481, 1
  store i32 %5483, ptr %9, align 4
  br label %6332

5484:                                             ; preds = %4871
  %5485 = landingpad { ptr, i32 }
          cleanup
  %5486 = extractvalue { ptr, i32 } %5485, 0
  store ptr %5486, ptr %8, align 8
  %5487 = extractvalue { ptr, i32 } %5485, 1
  store i32 %5487, ptr %9, align 4
  br label %5502

5488:                                             ; preds = %4872
  %5489 = landingpad { ptr, i32 }
          cleanup
  %5490 = extractvalue { ptr, i32 } %5489, 0
  store ptr %5490, ptr %8, align 8
  %5491 = extractvalue { ptr, i32 } %5489, 1
  store i32 %5491, ptr %9, align 4
  br label %5501

5492:                                             ; preds = %4873
  %5493 = landingpad { ptr, i32 }
          cleanup
  %5494 = extractvalue { ptr, i32 } %5493, 0
  store ptr %5494, ptr %8, align 8
  %5495 = extractvalue { ptr, i32 } %5493, 1
  store i32 %5495, ptr %9, align 4
  br label %5500

5496:                                             ; preds = %4875
  %5497 = landingpad { ptr, i32 }
          cleanup
  %5498 = extractvalue { ptr, i32 } %5497, 0
  store ptr %5498, ptr %8, align 8
  %5499 = extractvalue { ptr, i32 } %5497, 1
  store i32 %5499, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %703) #9
  br label %5500

5500:                                             ; preds = %5496, %5492
  call void @llvm.lifetime.end.p0(i64 56, ptr %703) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %700) #9
  br label %5501

5501:                                             ; preds = %5500, %5488
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %702) #9
  br label %5502

5502:                                             ; preds = %5501, %5484
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %701) #9
  br label %6332

5503:                                             ; preds = %4877
  call void @llvm.lifetime.start.p0(i64 56, ptr %708) #9
  %5504 = load i32, ptr %704, align 4, !tbaa !5
  %5505 = sub nsw i32 %5504, 1
  %5506 = sext i32 %5505 to i64
  %5507 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %691, i64 0, i64 %5506
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %708, ptr noundef nonnull align 8 dereferenceable(32) %5507, ptr noundef nonnull align 8 dereferenceable(32) %697, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %5508 unwind label %5519

5508:                                             ; preds = %5503
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %707, ptr noundef nonnull align 8 dereferenceable(56) %708)
          to label %5509 unwind label %5523

5509:                                             ; preds = %5508
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %706, ptr noundef %707, i32 noundef 1)
          to label %5510 unwind label %5527

5510:                                             ; preds = %5509
  call void @llvm.lifetime.start.p0(i64 56, ptr %709) #9
  %5511 = load i32, ptr %704, align 4, !tbaa !5
  %5512 = sext i32 %5511 to i64
  %5513 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %691, i64 0, i64 %5512
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %709, ptr noundef nonnull align 8 dereferenceable(32) %5513, ptr noundef nonnull align 8 dereferenceable(32) %697, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %5514 unwind label %5531

5514:                                             ; preds = %5510
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %705, ptr noundef nonnull align 8 dereferenceable(56) %709, ptr noundef %706)
          to label %5515 unwind label %5535

5515:                                             ; preds = %5514
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %705) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %709) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %709) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %706) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %707) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %708) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %708) #9
  br label %5516

5516:                                             ; preds = %5515
  %5517 = load i32, ptr %704, align 4, !tbaa !5
  %5518 = add nsw i32 %5517, 1
  store i32 %5518, ptr %704, align 4, !tbaa !5
  br label %4877, !llvm.loop !22

5519:                                             ; preds = %5503
  %5520 = landingpad { ptr, i32 }
          cleanup
  %5521 = extractvalue { ptr, i32 } %5520, 0
  store ptr %5521, ptr %8, align 8
  %5522 = extractvalue { ptr, i32 } %5520, 1
  store i32 %5522, ptr %9, align 4
  br label %5542

5523:                                             ; preds = %5508
  %5524 = landingpad { ptr, i32 }
          cleanup
  %5525 = extractvalue { ptr, i32 } %5524, 0
  store ptr %5525, ptr %8, align 8
  %5526 = extractvalue { ptr, i32 } %5524, 1
  store i32 %5526, ptr %9, align 4
  br label %5541

5527:                                             ; preds = %5509
  %5528 = landingpad { ptr, i32 }
          cleanup
  %5529 = extractvalue { ptr, i32 } %5528, 0
  store ptr %5529, ptr %8, align 8
  %5530 = extractvalue { ptr, i32 } %5528, 1
  store i32 %5530, ptr %9, align 4
  br label %5540

5531:                                             ; preds = %5510
  %5532 = landingpad { ptr, i32 }
          cleanup
  %5533 = extractvalue { ptr, i32 } %5532, 0
  store ptr %5533, ptr %8, align 8
  %5534 = extractvalue { ptr, i32 } %5532, 1
  store i32 %5534, ptr %9, align 4
  br label %5539

5535:                                             ; preds = %5514
  %5536 = landingpad { ptr, i32 }
          cleanup
  %5537 = extractvalue { ptr, i32 } %5536, 0
  store ptr %5537, ptr %8, align 8
  %5538 = extractvalue { ptr, i32 } %5536, 1
  store i32 %5538, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %709) #9
  br label %5539

5539:                                             ; preds = %5535, %5531
  call void @llvm.lifetime.end.p0(i64 56, ptr %709) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %706) #9
  br label %5540

5540:                                             ; preds = %5539, %5527
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %707) #9
  br label %5541

5541:                                             ; preds = %5540, %5523
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %708) #9
  br label %5542

5542:                                             ; preds = %5541, %5519
  call void @llvm.lifetime.end.p0(i64 56, ptr %708) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %704) #9
  br label %6332

5543:                                             ; preds = %4880
  call void @llvm.lifetime.start.p0(i64 200, ptr %710) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %711, i32 noundef 1)
          to label %5544 unwind label %5565

5544:                                             ; preds = %5543
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %712, i32 noundef 1023)
          to label %5545 unwind label %5569

5545:                                             ; preds = %5544
  invoke void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %710, ptr noundef %711, ptr noundef %712)
          to label %5546 unwind label %5573

5546:                                             ; preds = %5545
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %712) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %711) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %714) #9
  %5547 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %691, i64 0, i64 2
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %714, ptr noundef nonnull align 8 dereferenceable(32) %5547, ptr noundef nonnull align 8 dereferenceable(32) %697, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %5548 unwind label %5578

5548:                                             ; preds = %5546
  call void @llvm.lifetime.start.p0(i64 56, ptr %715) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %715, ptr noundef nonnull align 8 dereferenceable(32) %694, ptr noundef nonnull align 8 dereferenceable(32) %697, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %5549 unwind label %5582

5549:                                             ; preds = %5548
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %713, ptr noundef nonnull align 8 dereferenceable(56) %715, ptr noundef nonnull align 8 dereferenceable(56) %714)
          to label %5550 unwind label %5586

5550:                                             ; preds = %5549
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %713) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %715) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %715) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %714) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %714) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %717) #9
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %719, ptr noundef nonnull align 8 dereferenceable(200) %710)
          to label %5551 unwind label %5592

5551:                                             ; preds = %5550
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %718, ptr noundef %719, i32 noundef 1)
          to label %5552 unwind label %5596

5552:                                             ; preds = %5551
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %717, ptr noundef nonnull align 8 dereferenceable(32) %694, ptr noundef %718, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %5553 unwind label %5600

5553:                                             ; preds = %5552
  call void @llvm.lifetime.start.p0(i64 56, ptr %720) #9
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %721, ptr noundef nonnull align 8 dereferenceable(200) %710)
          to label %5554 unwind label %5604

5554:                                             ; preds = %5553
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %720, ptr noundef nonnull align 8 dereferenceable(32) %694, ptr noundef %721, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %5555 unwind label %5608

5555:                                             ; preds = %5554
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %716, ptr noundef nonnull align 8 dereferenceable(56) %720, ptr noundef nonnull align 8 dereferenceable(56) %717)
          to label %5556 unwind label %5612

5556:                                             ; preds = %5555
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %716) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %720) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %721) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %720) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %717) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %718) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %719) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %717) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %723) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %723, ptr noundef nonnull align 8 dereferenceable(32) %694, ptr noundef nonnull align 8 dereferenceable(32) %697, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %5557 unwind label %5621

5557:                                             ; preds = %5556
  call void @llvm.lifetime.start.p0(i64 56, ptr %724) #9
  %5558 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %692, i64 0, i64 0
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %724, ptr noundef nonnull align 8 dereferenceable(32) %5558, ptr noundef nonnull align 8 dereferenceable(32) %697, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %5559 unwind label %5625

5559:                                             ; preds = %5557
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %722, ptr noundef nonnull align 8 dereferenceable(56) %724, ptr noundef nonnull align 8 dereferenceable(56) %723)
          to label %5560 unwind label %5629

5560:                                             ; preds = %5559
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %722) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %724) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %724) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %723) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %723) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %725) #9
  store i32 1, ptr %725, align 4, !tbaa !5
  br label %5561

5561:                                             ; preds = %5648, %5560
  %5562 = load i32, ptr %725, align 4, !tbaa !5
  %5563 = icmp slt i32 %5562, 3
  br i1 %5563, label %5635, label %5564

5564:                                             ; preds = %5561
  store i32 29, ptr %311, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %725) #9
  br label %5675

5565:                                             ; preds = %5543
  %5566 = landingpad { ptr, i32 }
          cleanup
  %5567 = extractvalue { ptr, i32 } %5566, 0
  store ptr %5567, ptr %8, align 8
  %5568 = extractvalue { ptr, i32 } %5566, 1
  store i32 %5568, ptr %9, align 4
  br label %6331

5569:                                             ; preds = %5544
  %5570 = landingpad { ptr, i32 }
          cleanup
  %5571 = extractvalue { ptr, i32 } %5570, 0
  store ptr %5571, ptr %8, align 8
  %5572 = extractvalue { ptr, i32 } %5570, 1
  store i32 %5572, ptr %9, align 4
  br label %5577

5573:                                             ; preds = %5545
  %5574 = landingpad { ptr, i32 }
          cleanup
  %5575 = extractvalue { ptr, i32 } %5574, 0
  store ptr %5575, ptr %8, align 8
  %5576 = extractvalue { ptr, i32 } %5574, 1
  store i32 %5576, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %712) #9
  br label %5577

5577:                                             ; preds = %5573, %5569
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %711) #9
  br label %6331

5578:                                             ; preds = %5546
  %5579 = landingpad { ptr, i32 }
          cleanup
  %5580 = extractvalue { ptr, i32 } %5579, 0
  store ptr %5580, ptr %8, align 8
  %5581 = extractvalue { ptr, i32 } %5579, 1
  store i32 %5581, ptr %9, align 4
  br label %5591

5582:                                             ; preds = %5548
  %5583 = landingpad { ptr, i32 }
          cleanup
  %5584 = extractvalue { ptr, i32 } %5583, 0
  store ptr %5584, ptr %8, align 8
  %5585 = extractvalue { ptr, i32 } %5583, 1
  store i32 %5585, ptr %9, align 4
  br label %5590

5586:                                             ; preds = %5549
  %5587 = landingpad { ptr, i32 }
          cleanup
  %5588 = extractvalue { ptr, i32 } %5587, 0
  store ptr %5588, ptr %8, align 8
  %5589 = extractvalue { ptr, i32 } %5587, 1
  store i32 %5589, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %715) #9
  br label %5590

5590:                                             ; preds = %5586, %5582
  call void @llvm.lifetime.end.p0(i64 56, ptr %715) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %714) #9
  br label %5591

5591:                                             ; preds = %5590, %5578
  call void @llvm.lifetime.end.p0(i64 56, ptr %714) #9
  br label %6330

5592:                                             ; preds = %5550
  %5593 = landingpad { ptr, i32 }
          cleanup
  %5594 = extractvalue { ptr, i32 } %5593, 0
  store ptr %5594, ptr %8, align 8
  %5595 = extractvalue { ptr, i32 } %5593, 1
  store i32 %5595, ptr %9, align 4
  br label %5620

5596:                                             ; preds = %5551
  %5597 = landingpad { ptr, i32 }
          cleanup
  %5598 = extractvalue { ptr, i32 } %5597, 0
  store ptr %5598, ptr %8, align 8
  %5599 = extractvalue { ptr, i32 } %5597, 1
  store i32 %5599, ptr %9, align 4
  br label %5619

5600:                                             ; preds = %5552
  %5601 = landingpad { ptr, i32 }
          cleanup
  %5602 = extractvalue { ptr, i32 } %5601, 0
  store ptr %5602, ptr %8, align 8
  %5603 = extractvalue { ptr, i32 } %5601, 1
  store i32 %5603, ptr %9, align 4
  br label %5618

5604:                                             ; preds = %5553
  %5605 = landingpad { ptr, i32 }
          cleanup
  %5606 = extractvalue { ptr, i32 } %5605, 0
  store ptr %5606, ptr %8, align 8
  %5607 = extractvalue { ptr, i32 } %5605, 1
  store i32 %5607, ptr %9, align 4
  br label %5617

5608:                                             ; preds = %5554
  %5609 = landingpad { ptr, i32 }
          cleanup
  %5610 = extractvalue { ptr, i32 } %5609, 0
  store ptr %5610, ptr %8, align 8
  %5611 = extractvalue { ptr, i32 } %5609, 1
  store i32 %5611, ptr %9, align 4
  br label %5616

5612:                                             ; preds = %5555
  %5613 = landingpad { ptr, i32 }
          cleanup
  %5614 = extractvalue { ptr, i32 } %5613, 0
  store ptr %5614, ptr %8, align 8
  %5615 = extractvalue { ptr, i32 } %5613, 1
  store i32 %5615, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %720) #9
  br label %5616

5616:                                             ; preds = %5612, %5608
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %721) #9
  br label %5617

5617:                                             ; preds = %5616, %5604
  call void @llvm.lifetime.end.p0(i64 56, ptr %720) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %717) #9
  br label %5618

5618:                                             ; preds = %5617, %5600
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %718) #9
  br label %5619

5619:                                             ; preds = %5618, %5596
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %719) #9
  br label %5620

5620:                                             ; preds = %5619, %5592
  call void @llvm.lifetime.end.p0(i64 56, ptr %717) #9
  br label %6330

5621:                                             ; preds = %5556
  %5622 = landingpad { ptr, i32 }
          cleanup
  %5623 = extractvalue { ptr, i32 } %5622, 0
  store ptr %5623, ptr %8, align 8
  %5624 = extractvalue { ptr, i32 } %5622, 1
  store i32 %5624, ptr %9, align 4
  br label %5634

5625:                                             ; preds = %5557
  %5626 = landingpad { ptr, i32 }
          cleanup
  %5627 = extractvalue { ptr, i32 } %5626, 0
  store ptr %5627, ptr %8, align 8
  %5628 = extractvalue { ptr, i32 } %5626, 1
  store i32 %5628, ptr %9, align 4
  br label %5633

5629:                                             ; preds = %5559
  %5630 = landingpad { ptr, i32 }
          cleanup
  %5631 = extractvalue { ptr, i32 } %5630, 0
  store ptr %5631, ptr %8, align 8
  %5632 = extractvalue { ptr, i32 } %5630, 1
  store i32 %5632, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %724) #9
  br label %5633

5633:                                             ; preds = %5629, %5625
  call void @llvm.lifetime.end.p0(i64 56, ptr %724) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %723) #9
  br label %5634

5634:                                             ; preds = %5633, %5621
  call void @llvm.lifetime.end.p0(i64 56, ptr %723) #9
  br label %6330

5635:                                             ; preds = %5561
  call void @llvm.lifetime.start.p0(i64 56, ptr %729) #9
  %5636 = load i32, ptr %725, align 4, !tbaa !5
  %5637 = sub nsw i32 %5636, 1
  %5638 = sext i32 %5637 to i64
  %5639 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %692, i64 0, i64 %5638
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %729, ptr noundef nonnull align 8 dereferenceable(32) %5639, ptr noundef nonnull align 8 dereferenceable(32) %697, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %5640 unwind label %5651

5640:                                             ; preds = %5635
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %728, ptr noundef nonnull align 8 dereferenceable(56) %729)
          to label %5641 unwind label %5655

5641:                                             ; preds = %5640
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %727, ptr noundef %728, i32 noundef 1)
          to label %5642 unwind label %5659

5642:                                             ; preds = %5641
  call void @llvm.lifetime.start.p0(i64 56, ptr %730) #9
  %5643 = load i32, ptr %725, align 4, !tbaa !5
  %5644 = sext i32 %5643 to i64
  %5645 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %692, i64 0, i64 %5644
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %730, ptr noundef nonnull align 8 dereferenceable(32) %5645, ptr noundef nonnull align 8 dereferenceable(32) %697, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %5646 unwind label %5663

5646:                                             ; preds = %5642
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %726, ptr noundef nonnull align 8 dereferenceable(56) %730, ptr noundef %727)
          to label %5647 unwind label %5667

5647:                                             ; preds = %5646
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %726) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %730) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %730) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %727) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %728) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %729) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %729) #9
  br label %5648

5648:                                             ; preds = %5647
  %5649 = load i32, ptr %725, align 4, !tbaa !5
  %5650 = add nsw i32 %5649, 1
  store i32 %5650, ptr %725, align 4, !tbaa !5
  br label %5561, !llvm.loop !23

5651:                                             ; preds = %5635
  %5652 = landingpad { ptr, i32 }
          cleanup
  %5653 = extractvalue { ptr, i32 } %5652, 0
  store ptr %5653, ptr %8, align 8
  %5654 = extractvalue { ptr, i32 } %5652, 1
  store i32 %5654, ptr %9, align 4
  br label %5674

5655:                                             ; preds = %5640
  %5656 = landingpad { ptr, i32 }
          cleanup
  %5657 = extractvalue { ptr, i32 } %5656, 0
  store ptr %5657, ptr %8, align 8
  %5658 = extractvalue { ptr, i32 } %5656, 1
  store i32 %5658, ptr %9, align 4
  br label %5673

5659:                                             ; preds = %5641
  %5660 = landingpad { ptr, i32 }
          cleanup
  %5661 = extractvalue { ptr, i32 } %5660, 0
  store ptr %5661, ptr %8, align 8
  %5662 = extractvalue { ptr, i32 } %5660, 1
  store i32 %5662, ptr %9, align 4
  br label %5672

5663:                                             ; preds = %5642
  %5664 = landingpad { ptr, i32 }
          cleanup
  %5665 = extractvalue { ptr, i32 } %5664, 0
  store ptr %5665, ptr %8, align 8
  %5666 = extractvalue { ptr, i32 } %5664, 1
  store i32 %5666, ptr %9, align 4
  br label %5671

5667:                                             ; preds = %5646
  %5668 = landingpad { ptr, i32 }
          cleanup
  %5669 = extractvalue { ptr, i32 } %5668, 0
  store ptr %5669, ptr %8, align 8
  %5670 = extractvalue { ptr, i32 } %5668, 1
  store i32 %5670, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %730) #9
  br label %5671

5671:                                             ; preds = %5667, %5663
  call void @llvm.lifetime.end.p0(i64 56, ptr %730) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %727) #9
  br label %5672

5672:                                             ; preds = %5671, %5659
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %728) #9
  br label %5673

5673:                                             ; preds = %5672, %5655
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %729) #9
  br label %5674

5674:                                             ; preds = %5673, %5651
  call void @llvm.lifetime.end.p0(i64 56, ptr %729) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %725) #9
  br label %6330

5675:                                             ; preds = %5564
  call void @llvm.lifetime.start.p0(i64 32, ptr %731) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %732) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %733) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %733) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %732, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %733)
          to label %5676 unwind label %5693

5676:                                             ; preds = %5675
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %731, ptr noundef nonnull align 8 dereferenceable(32) %732)
          to label %5677 unwind label %5697

5677:                                             ; preds = %5676
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %732) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %733) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %733) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %732) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %735) #9
  %5678 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %692, i64 0, i64 2
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %736, ptr noundef nonnull align 8 dereferenceable(32) %697)
          to label %5679 unwind label %5702

5679:                                             ; preds = %5677
  call void @llvm.lifetime.start.p0(i64 8, ptr %737) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %738, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %5680 unwind label %5706

5680:                                             ; preds = %5679
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %737, i32 noundef 2, ptr noundef %738)
          to label %5681 unwind label %5710

5681:                                             ; preds = %5680
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %735, ptr noundef nonnull align 8 dereferenceable(32) %5678, ptr noundef %736, ptr noundef nonnull align 8 dereferenceable(8) %737)
          to label %5682 unwind label %5714

5682:                                             ; preds = %5681
  call void @llvm.lifetime.start.p0(i64 56, ptr %739) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %739, ptr noundef nonnull align 8 dereferenceable(32) %731, ptr noundef nonnull align 8 dereferenceable(32) %697, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %5683 unwind label %5718

5683:                                             ; preds = %5682
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %734, ptr noundef nonnull align 8 dereferenceable(56) %739, ptr noundef nonnull align 8 dereferenceable(56) %735)
          to label %5684 unwind label %5722

5684:                                             ; preds = %5683
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %734) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %739) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %739) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %735) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %737) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %738) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %737) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %736) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %735) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %741) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %741, ptr noundef nonnull align 8 dereferenceable(32) %731, ptr noundef nonnull align 8 dereferenceable(32) %697, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %5685 unwind label %5731

5685:                                             ; preds = %5684
  call void @llvm.lifetime.start.p0(i64 56, ptr %742) #9
  %5686 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %693, i64 0, i64 0
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %742, ptr noundef nonnull align 8 dereferenceable(32) %5686, ptr noundef nonnull align 8 dereferenceable(32) %697, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %5687 unwind label %5735

5687:                                             ; preds = %5685
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %740, ptr noundef nonnull align 8 dereferenceable(56) %742, ptr noundef nonnull align 8 dereferenceable(56) %741)
          to label %5688 unwind label %5739

5688:                                             ; preds = %5687
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %740) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %742) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %742) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %741) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %741) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %743) #9
  store i32 1, ptr %743, align 4, !tbaa !5
  br label %5689

5689:                                             ; preds = %5758, %5688
  %5690 = load i32, ptr %743, align 4, !tbaa !5
  %5691 = icmp slt i32 %5690, 3
  br i1 %5691, label %5745, label %5692

5692:                                             ; preds = %5689
  store i32 32, ptr %311, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %743) #9
  br label %5785

5693:                                             ; preds = %5675
  %5694 = landingpad { ptr, i32 }
          cleanup
  %5695 = extractvalue { ptr, i32 } %5694, 0
  store ptr %5695, ptr %8, align 8
  %5696 = extractvalue { ptr, i32 } %5694, 1
  store i32 %5696, ptr %9, align 4
  br label %5701

5697:                                             ; preds = %5676
  %5698 = landingpad { ptr, i32 }
          cleanup
  %5699 = extractvalue { ptr, i32 } %5698, 0
  store ptr %5699, ptr %8, align 8
  %5700 = extractvalue { ptr, i32 } %5698, 1
  store i32 %5700, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %732) #9
  br label %5701

5701:                                             ; preds = %5697, %5693
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %733) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %733) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %732) #9
  br label %6329

5702:                                             ; preds = %5677
  %5703 = landingpad { ptr, i32 }
          cleanup
  %5704 = extractvalue { ptr, i32 } %5703, 0
  store ptr %5704, ptr %8, align 8
  %5705 = extractvalue { ptr, i32 } %5703, 1
  store i32 %5705, ptr %9, align 4
  br label %5730

5706:                                             ; preds = %5679
  %5707 = landingpad { ptr, i32 }
          cleanup
  %5708 = extractvalue { ptr, i32 } %5707, 0
  store ptr %5708, ptr %8, align 8
  %5709 = extractvalue { ptr, i32 } %5707, 1
  store i32 %5709, ptr %9, align 4
  br label %5729

5710:                                             ; preds = %5680
  %5711 = landingpad { ptr, i32 }
          cleanup
  %5712 = extractvalue { ptr, i32 } %5711, 0
  store ptr %5712, ptr %8, align 8
  %5713 = extractvalue { ptr, i32 } %5711, 1
  store i32 %5713, ptr %9, align 4
  br label %5728

5714:                                             ; preds = %5681
  %5715 = landingpad { ptr, i32 }
          cleanup
  %5716 = extractvalue { ptr, i32 } %5715, 0
  store ptr %5716, ptr %8, align 8
  %5717 = extractvalue { ptr, i32 } %5715, 1
  store i32 %5717, ptr %9, align 4
  br label %5727

5718:                                             ; preds = %5682
  %5719 = landingpad { ptr, i32 }
          cleanup
  %5720 = extractvalue { ptr, i32 } %5719, 0
  store ptr %5720, ptr %8, align 8
  %5721 = extractvalue { ptr, i32 } %5719, 1
  store i32 %5721, ptr %9, align 4
  br label %5726

5722:                                             ; preds = %5683
  %5723 = landingpad { ptr, i32 }
          cleanup
  %5724 = extractvalue { ptr, i32 } %5723, 0
  store ptr %5724, ptr %8, align 8
  %5725 = extractvalue { ptr, i32 } %5723, 1
  store i32 %5725, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %739) #9
  br label %5726

5726:                                             ; preds = %5722, %5718
  call void @llvm.lifetime.end.p0(i64 56, ptr %739) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %735) #9
  br label %5727

5727:                                             ; preds = %5726, %5714
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %737) #9
  br label %5728

5728:                                             ; preds = %5727, %5710
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %738) #9
  br label %5729

5729:                                             ; preds = %5728, %5706
  call void @llvm.lifetime.end.p0(i64 8, ptr %737) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %736) #9
  br label %5730

5730:                                             ; preds = %5729, %5702
  call void @llvm.lifetime.end.p0(i64 56, ptr %735) #9
  br label %6328

5731:                                             ; preds = %5684
  %5732 = landingpad { ptr, i32 }
          cleanup
  %5733 = extractvalue { ptr, i32 } %5732, 0
  store ptr %5733, ptr %8, align 8
  %5734 = extractvalue { ptr, i32 } %5732, 1
  store i32 %5734, ptr %9, align 4
  br label %5744

5735:                                             ; preds = %5685
  %5736 = landingpad { ptr, i32 }
          cleanup
  %5737 = extractvalue { ptr, i32 } %5736, 0
  store ptr %5737, ptr %8, align 8
  %5738 = extractvalue { ptr, i32 } %5736, 1
  store i32 %5738, ptr %9, align 4
  br label %5743

5739:                                             ; preds = %5687
  %5740 = landingpad { ptr, i32 }
          cleanup
  %5741 = extractvalue { ptr, i32 } %5740, 0
  store ptr %5741, ptr %8, align 8
  %5742 = extractvalue { ptr, i32 } %5740, 1
  store i32 %5742, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %742) #9
  br label %5743

5743:                                             ; preds = %5739, %5735
  call void @llvm.lifetime.end.p0(i64 56, ptr %742) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %741) #9
  br label %5744

5744:                                             ; preds = %5743, %5731
  call void @llvm.lifetime.end.p0(i64 56, ptr %741) #9
  br label %6328

5745:                                             ; preds = %5689
  call void @llvm.lifetime.start.p0(i64 56, ptr %747) #9
  %5746 = load i32, ptr %743, align 4, !tbaa !5
  %5747 = sub nsw i32 %5746, 1
  %5748 = sext i32 %5747 to i64
  %5749 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %693, i64 0, i64 %5748
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %747, ptr noundef nonnull align 8 dereferenceable(32) %5749, ptr noundef nonnull align 8 dereferenceable(32) %697, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %5750 unwind label %5761

5750:                                             ; preds = %5745
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %746, ptr noundef nonnull align 8 dereferenceable(56) %747)
          to label %5751 unwind label %5765

5751:                                             ; preds = %5750
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %745, ptr noundef %746, i32 noundef 1)
          to label %5752 unwind label %5769

5752:                                             ; preds = %5751
  call void @llvm.lifetime.start.p0(i64 56, ptr %748) #9
  %5753 = load i32, ptr %743, align 4, !tbaa !5
  %5754 = sext i32 %5753 to i64
  %5755 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %693, i64 0, i64 %5754
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %748, ptr noundef nonnull align 8 dereferenceable(32) %5755, ptr noundef nonnull align 8 dereferenceable(32) %697, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %5756 unwind label %5773

5756:                                             ; preds = %5752
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %744, ptr noundef nonnull align 8 dereferenceable(56) %748, ptr noundef %745)
          to label %5757 unwind label %5777

5757:                                             ; preds = %5756
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %744) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %748) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %748) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %745) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %746) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %747) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %747) #9
  br label %5758

5758:                                             ; preds = %5757
  %5759 = load i32, ptr %743, align 4, !tbaa !5
  %5760 = add nsw i32 %5759, 1
  store i32 %5760, ptr %743, align 4, !tbaa !5
  br label %5689, !llvm.loop !24

5761:                                             ; preds = %5745
  %5762 = landingpad { ptr, i32 }
          cleanup
  %5763 = extractvalue { ptr, i32 } %5762, 0
  store ptr %5763, ptr %8, align 8
  %5764 = extractvalue { ptr, i32 } %5762, 1
  store i32 %5764, ptr %9, align 4
  br label %5784

5765:                                             ; preds = %5750
  %5766 = landingpad { ptr, i32 }
          cleanup
  %5767 = extractvalue { ptr, i32 } %5766, 0
  store ptr %5767, ptr %8, align 8
  %5768 = extractvalue { ptr, i32 } %5766, 1
  store i32 %5768, ptr %9, align 4
  br label %5783

5769:                                             ; preds = %5751
  %5770 = landingpad { ptr, i32 }
          cleanup
  %5771 = extractvalue { ptr, i32 } %5770, 0
  store ptr %5771, ptr %8, align 8
  %5772 = extractvalue { ptr, i32 } %5770, 1
  store i32 %5772, ptr %9, align 4
  br label %5782

5773:                                             ; preds = %5752
  %5774 = landingpad { ptr, i32 }
          cleanup
  %5775 = extractvalue { ptr, i32 } %5774, 0
  store ptr %5775, ptr %8, align 8
  %5776 = extractvalue { ptr, i32 } %5774, 1
  store i32 %5776, ptr %9, align 4
  br label %5781

5777:                                             ; preds = %5756
  %5778 = landingpad { ptr, i32 }
          cleanup
  %5779 = extractvalue { ptr, i32 } %5778, 0
  store ptr %5779, ptr %8, align 8
  %5780 = extractvalue { ptr, i32 } %5778, 1
  store i32 %5780, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %748) #9
  br label %5781

5781:                                             ; preds = %5777, %5773
  call void @llvm.lifetime.end.p0(i64 56, ptr %748) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %745) #9
  br label %5782

5782:                                             ; preds = %5781, %5769
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %746) #9
  br label %5783

5783:                                             ; preds = %5782, %5765
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %747) #9
  br label %5784

5784:                                             ; preds = %5783, %5761
  call void @llvm.lifetime.end.p0(i64 56, ptr %747) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %743) #9
  br label %6328

5785:                                             ; preds = %5692
  %5786 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %693, i64 0, i64 2
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %749, ptr noundef nonnull align 8 dereferenceable(32) %697)
          to label %5787 unwind label %6286

5787:                                             ; preds = %5785
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %750, i32 noundef 0)
          to label %5788 unwind label %6290

5788:                                             ; preds = %5787
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %751, i32 noundef 1024)
          to label %5789 unwind label %6294

5789:                                             ; preds = %5788
  %5790 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %5786, ptr noundef %749, ptr noundef %750, ptr noundef %751)
          to label %5791 unwind label %6298

5791:                                             ; preds = %5789
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %752, ptr noundef nonnull align 8 dereferenceable(32) %698)
          to label %5792 unwind label %6298

5792:                                             ; preds = %5791
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %753, i32 noundef 0)
          to label %5793 unwind label %6302

5793:                                             ; preds = %5792
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %754, i32 noundef 1024)
          to label %5794 unwind label %6306

5794:                                             ; preds = %5793
  %5795 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %5790, ptr noundef %752, ptr noundef %753, ptr noundef %754)
          to label %5796 unwind label %6310

5796:                                             ; preds = %5794
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %754) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %753) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %752) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %751) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %750) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %749) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %756) #9
  %5797 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %693, i64 0, i64 2
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %757, ptr noundef nonnull align 8 dereferenceable(32) %5797) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %756, ptr noundef %757)
          to label %5798 unwind label %6319

5798:                                             ; preds = %5796
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %755, ptr noundef nonnull align 8 dereferenceable(8) %756, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %5799 unwind label %6323

5799:                                             ; preds = %5798
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %755) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %756) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %757) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %756) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %731) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %731) #9
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %710) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %710) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %698) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %698) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %697) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %697) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %694) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %694) #9
  %5800 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %693, i32 0, i32 0
  %5801 = getelementptr inbounds %"class.Halide::Func", ptr %5800, i64 3
  br label %5802

5802:                                             ; preds = %5802, %5799
  %5803 = phi ptr [ %5801, %5799 ], [ %5804, %5802 ]
  %5804 = getelementptr inbounds %"class.Halide::Func", ptr %5803, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5804) #9
  %5805 = icmp eq ptr %5804, %5800
  br i1 %5805, label %5806, label %5802

5806:                                             ; preds = %5802
  call void @llvm.lifetime.end.p0(i64 96, ptr %693) #9
  %5807 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %692, i32 0, i32 0
  %5808 = getelementptr inbounds %"class.Halide::Func", ptr %5807, i64 3
  br label %5809

5809:                                             ; preds = %5809, %5806
  %5810 = phi ptr [ %5808, %5806 ], [ %5811, %5809 ]
  %5811 = getelementptr inbounds %"class.Halide::Func", ptr %5810, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5811) #9
  %5812 = icmp eq ptr %5811, %5807
  br i1 %5812, label %5813, label %5809

5813:                                             ; preds = %5809
  call void @llvm.lifetime.end.p0(i64 96, ptr %692) #9
  %5814 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %691, i32 0, i32 0
  %5815 = getelementptr inbounds %"class.Halide::Func", ptr %5814, i64 3
  br label %5816

5816:                                             ; preds = %5816, %5813
  %5817 = phi ptr [ %5815, %5813 ], [ %5818, %5816 ]
  %5818 = getelementptr inbounds %"class.Halide::Func", ptr %5817, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5818) #9
  %5819 = icmp eq ptr %5818, %5814
  br i1 %5819, label %5820, label %5816

5820:                                             ; preds = %5816
  call void @llvm.lifetime.end.p0(i64 96, ptr %691) #9
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %690) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %690) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %689) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %758) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %759) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %760) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %760) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %759, ptr noundef @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %760)
          to label %5821 unwind label %6361

5821:                                             ; preds = %5820
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %758, ptr noundef nonnull align 8 dereferenceable(32) %759)
          to label %5822 unwind label %6365

5822:                                             ; preds = %5821
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %759) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %760) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %760) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %759) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %761) #9
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %761)
          to label %5823 unwind label %6370

5823:                                             ; preds = %5822
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %769, ptr noundef nonnull align 8 dereferenceable(32) %761)
          to label %5824 unwind label %6374

5824:                                             ; preds = %5823
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %768, ptr noundef %769, i32 noundef 1)
          to label %5825 unwind label %6378

5825:                                             ; preds = %5824
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %771, ptr noundef nonnull align 8 dereferenceable(32) %761)
          to label %5826 unwind label %6382

5826:                                             ; preds = %5825
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %770, ptr noundef %771, i32 noundef 2)
          to label %5827 unwind label %6386

5827:                                             ; preds = %5826
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %767, ptr noundef %768, ptr noundef %770)
          to label %5828 unwind label %6390

5828:                                             ; preds = %5827
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %773, ptr noundef nonnull align 8 dereferenceable(32) %761)
          to label %5829 unwind label %6394

5829:                                             ; preds = %5828
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %772, ptr noundef %773, i32 noundef 3)
          to label %5830 unwind label %6398

5830:                                             ; preds = %5829
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %766, ptr noundef %767, ptr noundef %772)
          to label %5831 unwind label %6402

5831:                                             ; preds = %5830
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %775, ptr noundef nonnull align 8 dereferenceable(32) %761)
          to label %5832 unwind label %6406

5832:                                             ; preds = %5831
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %774, ptr noundef %775, i32 noundef 4)
          to label %5833 unwind label %6410

5833:                                             ; preds = %5832
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %765, ptr noundef %766, ptr noundef %774)
          to label %5834 unwind label %6414

5834:                                             ; preds = %5833
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %777, ptr noundef nonnull align 8 dereferenceable(32) %761)
          to label %5835 unwind label %6418

5835:                                             ; preds = %5834
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %776, ptr noundef %777, i32 noundef 5)
          to label %5836 unwind label %6422

5836:                                             ; preds = %5835
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %764, ptr noundef %765, ptr noundef %776)
          to label %5837 unwind label %6426

5837:                                             ; preds = %5836
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %779, ptr noundef nonnull align 8 dereferenceable(32) %761)
          to label %5838 unwind label %6430

5838:                                             ; preds = %5837
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %778, ptr noundef %779, i32 noundef 6)
          to label %5839 unwind label %6434

5839:                                             ; preds = %5838
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %763, ptr noundef %764, ptr noundef %778)
          to label %5840 unwind label %6438

5840:                                             ; preds = %5839
  call void @llvm.lifetime.start.p0(i64 56, ptr %780) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %780, ptr noundef nonnull align 8 dereferenceable(32) %758, ptr noundef nonnull align 8 dereferenceable(32) %761)
          to label %5841 unwind label %6442

5841:                                             ; preds = %5840
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %762, ptr noundef nonnull align 8 dereferenceable(56) %780, ptr noundef %763)
          to label %5842 unwind label %6446

5842:                                             ; preds = %5841
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %762) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %780) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %780) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %763) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %778) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %779) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %764) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %776) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %777) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %765) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %774) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %775) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %766) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %772) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %773) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %767) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %770) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %771) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %768) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %769) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %781) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %782) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %783) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %783) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %782, ptr noundef @.str.23, ptr noundef nonnull align 1 dereferenceable(1) %783)
          to label %5843 unwind label %6467

5843:                                             ; preds = %5842
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %781, ptr noundef nonnull align 8 dereferenceable(32) %782)
          to label %5844 unwind label %6471

5844:                                             ; preds = %5843
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %782) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %783) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %783) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %782) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %786, ptr noundef nonnull align 8 dereferenceable(32) %761)
          to label %5845 unwind label %6476

5845:                                             ; preds = %5844
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %788, ptr noundef nonnull align 8 dereferenceable(32) %761)
          to label %5846 unwind label %6480

5846:                                             ; preds = %5845
  invoke void @_ZN6HalidemiEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %787, i32 noundef 10000, ptr noundef %788)
          to label %5847 unwind label %6484

5847:                                             ; preds = %5846
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %785, ptr noundef %786, ptr noundef %787)
          to label %5848 unwind label %6488

5848:                                             ; preds = %5847
  call void @llvm.lifetime.start.p0(i64 56, ptr %789) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %789, ptr noundef nonnull align 8 dereferenceable(32) %781, ptr noundef nonnull align 8 dereferenceable(32) %761)
          to label %5849 unwind label %6492

5849:                                             ; preds = %5848
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %784, ptr noundef nonnull align 8 dereferenceable(56) %789, ptr noundef %785)
          to label %5850 unwind label %6496

5850:                                             ; preds = %5849
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %784) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %789) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %789) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %785) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %787) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %788) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %786) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %790) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %791) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %792) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %792) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %791, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %792)
          to label %5851 unwind label %6504

5851:                                             ; preds = %5850
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %790, ptr noundef nonnull align 8 dereferenceable(32) %791)
          to label %5852 unwind label %6508

5852:                                             ; preds = %5851
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %791) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %792) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %792) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %791) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %794) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %797) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %797, ptr noundef nonnull align 8 dereferenceable(32) %781, ptr noundef nonnull align 8 dereferenceable(32) %761)
          to label %5853 unwind label %6513

5853:                                             ; preds = %5852
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %796, ptr noundef nonnull align 8 dereferenceable(56) %797)
          to label %5854 unwind label %6517

5854:                                             ; preds = %5853
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %798, i32 noundef 0)
          to label %5855 unwind label %6521

5855:                                             ; preds = %5854
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %799, i32 noundef 100000)
          to label %5856 unwind label %6525

5856:                                             ; preds = %5855
  invoke void @_ZN6Halide5clampENS_4ExprES0_S0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %795, ptr noundef %796, ptr noundef %798, ptr noundef %799)
          to label %5857 unwind label %6529

5857:                                             ; preds = %5856
  invoke void @_ZNK6Halide4FuncclIJEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES3_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %794, ptr noundef nonnull align 8 dereferenceable(32) %758, ptr noundef %795)
          to label %5858 unwind label %6533

5858:                                             ; preds = %5857
  call void @llvm.lifetime.start.p0(i64 56, ptr %800) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %800, ptr noundef nonnull align 8 dereferenceable(32) %790, ptr noundef nonnull align 8 dereferenceable(32) %761)
          to label %5859 unwind label %6537

5859:                                             ; preds = %5858
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %793, ptr noundef nonnull align 8 dereferenceable(56) %800, ptr noundef nonnull align 8 dereferenceable(56) %794)
          to label %5860 unwind label %6541

5860:                                             ; preds = %5859
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %793) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %800) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %800) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %794) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %795) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %799) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %798) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %796) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %797) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %797) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %794) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %801, ptr noundef nonnull align 8 dereferenceable(32) %761)
          to label %5861 unwind label %6552

5861:                                             ; preds = %5860
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %802, i32 noundef 0)
          to label %5862 unwind label %6556

5862:                                             ; preds = %5861
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %803, i32 noundef 10)
          to label %5863 unwind label %6560

5863:                                             ; preds = %5862
  %5864 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %790, ptr noundef %801, ptr noundef %802, ptr noundef %803)
          to label %5865 unwind label %6564

5865:                                             ; preds = %5863
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %803) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %802) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %801) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %805) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %806, ptr noundef nonnull align 8 dereferenceable(32) %790) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %805, ptr noundef %806)
          to label %5866 unwind label %6570

5866:                                             ; preds = %5865
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %804, ptr noundef nonnull align 8 dereferenceable(8) %805, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %5867 unwind label %6574

5867:                                             ; preds = %5866
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %804) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %805) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %806) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %805) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %790) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %790) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %781) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %781) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %761) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %761) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %758) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %758) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %807) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %808) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %809) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %809) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %808, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %809)
          to label %5868 unwind label %6586

5868:                                             ; preds = %5867
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %807, ptr noundef nonnull align 8 dereferenceable(32) %808)
          to label %5869 unwind label %6590

5869:                                             ; preds = %5868
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %808) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %809) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %809) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %808) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %810) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %811) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %812) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %812) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %811, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %812)
          to label %5870 unwind label %6595

5870:                                             ; preds = %5869
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %810, ptr noundef nonnull align 8 dereferenceable(32) %811)
          to label %5871 unwind label %6599

5871:                                             ; preds = %5870
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %811) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %812) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %812) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %811) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %814, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %5872 unwind label %6604

5872:                                             ; preds = %5871
  call void @llvm.lifetime.start.p0(i64 56, ptr %815) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %815, ptr noundef nonnull align 8 dereferenceable(32) %807, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5873 unwind label %6608

5873:                                             ; preds = %5872
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %813, ptr noundef nonnull align 8 dereferenceable(56) %815, ptr noundef %814)
          to label %5874 unwind label %6612

5874:                                             ; preds = %5873
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %813) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %815) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %815) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %814) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %817, i32 noundef 1)
          to label %5875 unwind label %6604

5875:                                             ; preds = %5874
  call void @llvm.lifetime.start.p0(i64 56, ptr %818) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %818, ptr noundef nonnull align 8 dereferenceable(32) %807, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5876 unwind label %6617

5876:                                             ; preds = %5875
  invoke void @_ZN6Halide7FuncRefpLENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %816, ptr noundef nonnull align 8 dereferenceable(56) %818, ptr noundef %817)
          to label %5877 unwind label %6621

5877:                                             ; preds = %5876
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %816) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %818) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %818) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %817) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr %819) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %820, i32 noundef 0)
          to label %5878 unwind label %6626

5878:                                             ; preds = %5877
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %821, i32 noundef 100)
          to label %5879 unwind label %6630

5879:                                             ; preds = %5878
  invoke void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %819, ptr noundef %820, ptr noundef %821)
          to label %5880 unwind label %6634

5880:                                             ; preds = %5879
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %821) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %820) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %823, i32 noundef 0)
          to label %5881 unwind label %6639

5881:                                             ; preds = %5880
  call void @llvm.lifetime.start.p0(i64 56, ptr %824) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %824, ptr noundef nonnull align 8 dereferenceable(32) %810, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5882 unwind label %6643

5882:                                             ; preds = %5881
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %822, ptr noundef nonnull align 8 dereferenceable(56) %824, ptr noundef %823)
          to label %5883 unwind label %6647

5883:                                             ; preds = %5882
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %822) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %824) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %824) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %823) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %826) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %827, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %5884 unwind label %6652

5884:                                             ; preds = %5883
  call void @llvm.lifetime.start.p0(i64 8, ptr %828) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %830, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5885 unwind label %6656

5885:                                             ; preds = %5884
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %831, ptr noundef nonnull align 8 dereferenceable(200) %819)
          to label %5886 unwind label %6660

5886:                                             ; preds = %5885
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %829, ptr noundef %830, ptr noundef %831)
          to label %5887 unwind label %6664

5887:                                             ; preds = %5886
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %828, i32 noundef 1000, ptr noundef %829)
          to label %5888 unwind label %6668

5888:                                             ; preds = %5887
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %826, ptr noundef nonnull align 8 dereferenceable(32) %807, ptr noundef %827, ptr noundef nonnull align 8 dereferenceable(8) %828)
          to label %5889 unwind label %6672

5889:                                             ; preds = %5888
  call void @llvm.lifetime.start.p0(i64 56, ptr %832) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %832, ptr noundef nonnull align 8 dereferenceable(32) %810, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5890 unwind label %6676

5890:                                             ; preds = %5889
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %825, ptr noundef nonnull align 8 dereferenceable(56) %832, ptr noundef nonnull align 8 dereferenceable(56) %826)
          to label %5891 unwind label %6680

5891:                                             ; preds = %5890
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %825) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %832) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %832) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %826) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %828) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %829) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %831) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %830) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %828) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %827) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %826) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %833, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %5892 unwind label %6639

5892:                                             ; preds = %5891
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %834, i32 noundef 0)
          to label %5893 unwind label %6691

5893:                                             ; preds = %5892
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %835, i32 noundef 1000)
          to label %5894 unwind label %6695

5894:                                             ; preds = %5893
  %5895 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %810, ptr noundef %833, ptr noundef %834, ptr noundef %835)
          to label %5896 unwind label %6699

5896:                                             ; preds = %5894
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %836, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5897 unwind label %6699

5897:                                             ; preds = %5896
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %837, i32 noundef 0)
          to label %5898 unwind label %6703

5898:                                             ; preds = %5897
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %838, i32 noundef 1000)
          to label %5899 unwind label %6707

5899:                                             ; preds = %5898
  %5900 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %5895, ptr noundef %836, ptr noundef %837, ptr noundef %838)
          to label %5901 unwind label %6711

5901:                                             ; preds = %5899
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %838) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %837) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %836) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %835) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %834) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %833) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %840) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %841, ptr noundef nonnull align 8 dereferenceable(32) %810) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %840, ptr noundef %841)
          to label %5902 unwind label %6720

5902:                                             ; preds = %5901
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %839, ptr noundef nonnull align 8 dereferenceable(8) %840, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %5903 unwind label %6724

5903:                                             ; preds = %5902
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %839) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %840) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %841) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %840) #9
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %819) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %819) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %810) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %810) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %807) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %807) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %842) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %843) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %844)
          to label %5904 unwind label %6734

5904:                                             ; preds = %5903
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %842, ptr noundef nonnull align 8 dereferenceable(32) %843)
          to label %5905 unwind label %6738

5905:                                             ; preds = %5904
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %843) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %844) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %844) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %843) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %845) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %846) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %847) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %847) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %846, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %847)
          to label %5906 unwind label %6743

5906:                                             ; preds = %5905
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %845, ptr noundef nonnull align 8 dereferenceable(32) %846)
          to label %5907 unwind label %6747

5907:                                             ; preds = %5906
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %846) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %847) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %847) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %846) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %848) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %849) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %850)
          to label %5908 unwind label %6752

5908:                                             ; preds = %5907
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %848, ptr noundef nonnull align 8 dereferenceable(32) %849)
          to label %5909 unwind label %6756

5909:                                             ; preds = %5908
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %849) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %850) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %850) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %849) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %853, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %5910 unwind label %6761

5910:                                             ; preds = %5909
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %854, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5911 unwind label %6765

5911:                                             ; preds = %5910
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %852, ptr noundef %853, ptr noundef %854)
          to label %5912 unwind label %6769

5912:                                             ; preds = %5911
  call void @llvm.lifetime.start.p0(i64 56, ptr %855) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %855, ptr noundef nonnull align 8 dereferenceable(32) %842, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5913 unwind label %6773

5913:                                             ; preds = %5912
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %851, ptr noundef nonnull align 8 dereferenceable(56) %855, ptr noundef %852)
          to label %5914 unwind label %6777

5914:                                             ; preds = %5913
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %851) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %855) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %855) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %852) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %854) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %853) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr %856) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %857, i32 noundef -50)
          to label %5915 unwind label %6784

5915:                                             ; preds = %5914
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %858, i32 noundef 100)
          to label %5916 unwind label %6788

5916:                                             ; preds = %5915
  call void @llvm.lifetime.start.p0(i64 4, ptr %859) #9
  store i32 -50, ptr %859, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %860) #9
  store i32 100, ptr %860, align 4, !tbaa !5
  invoke void @_ZN6Halide4RDomC2IJiiEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %856, ptr noundef %857, ptr noundef %858, ptr noundef nonnull align 4 dereferenceable(4) %859, ptr noundef nonnull align 4 dereferenceable(4) %860)
          to label %5917 unwind label %6792

5917:                                             ; preds = %5916
  call void @llvm.lifetime.end.p0(i64 4, ptr %860) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %859) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %858) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %857) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %862) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %864, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5918 unwind label %6797

5918:                                             ; preds = %5917
  %5919 = getelementptr inbounds %"class.Halide::RDom", ptr %856, i32 0, i32 2
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %865, ptr noundef nonnull align 8 dereferenceable(44) %5919)
          to label %5920 unwind label %6801

5920:                                             ; preds = %5918
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %863, ptr noundef %864, ptr noundef %865)
          to label %5921 unwind label %6805

5921:                                             ; preds = %5920
  call void @llvm.lifetime.start.p0(i64 8, ptr %866) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %867, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %5922 unwind label %6809

5922:                                             ; preds = %5921
  %5923 = getelementptr inbounds %"class.Halide::RDom", ptr %856, i32 0, i32 1
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %868, ptr noundef nonnull align 8 dereferenceable(44) %5923)
          to label %5924 unwind label %6813

5924:                                             ; preds = %5922
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %866, ptr noundef %867, ptr noundef %868)
          to label %5925 unwind label %6817

5925:                                             ; preds = %5924
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %862, ptr noundef nonnull align 8 dereferenceable(32) %842, ptr noundef %863, ptr noundef nonnull align 8 dereferenceable(8) %866)
          to label %5926 unwind label %6821

5926:                                             ; preds = %5925
  call void @llvm.lifetime.start.p0(i64 56, ptr %869) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %869, ptr noundef nonnull align 8 dereferenceable(32) %845, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5927 unwind label %6825

5927:                                             ; preds = %5926
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %861, ptr noundef nonnull align 8 dereferenceable(56) %869, ptr noundef nonnull align 8 dereferenceable(56) %862)
          to label %5928 unwind label %6829

5928:                                             ; preds = %5927
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %861) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %869) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %869) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %862) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %866) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %868) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %867) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %866) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %863) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %865) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %864) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %862) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %871) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %873, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5929 unwind label %6841

5929:                                             ; preds = %5928
  %5930 = getelementptr inbounds %"class.Halide::RDom", ptr %856, i32 0, i32 2
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %874, ptr noundef nonnull align 8 dereferenceable(44) %5930)
          to label %5931 unwind label %6845

5931:                                             ; preds = %5929
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %872, ptr noundef %873, ptr noundef %874)
          to label %5932 unwind label %6849

5932:                                             ; preds = %5931
  call void @llvm.lifetime.start.p0(i64 8, ptr %875) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %876, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %5933 unwind label %6853

5933:                                             ; preds = %5932
  %5934 = getelementptr inbounds %"class.Halide::RDom", ptr %856, i32 0, i32 2
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %877, ptr noundef nonnull align 8 dereferenceable(44) %5934)
          to label %5935 unwind label %6857

5935:                                             ; preds = %5933
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %875, ptr noundef %876, ptr noundef %877)
          to label %5936 unwind label %6861

5936:                                             ; preds = %5935
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %871, ptr noundef nonnull align 8 dereferenceable(32) %845, ptr noundef %872, ptr noundef nonnull align 8 dereferenceable(8) %875)
          to label %5937 unwind label %6865

5937:                                             ; preds = %5936
  call void @llvm.lifetime.start.p0(i64 56, ptr %878) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %878, ptr noundef nonnull align 8 dereferenceable(32) %848, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5938 unwind label %6869

5938:                                             ; preds = %5937
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %870, ptr noundef nonnull align 8 dereferenceable(56) %878, ptr noundef nonnull align 8 dereferenceable(56) %871)
          to label %5939 unwind label %6873

5939:                                             ; preds = %5938
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %870) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %878) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %878) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %871) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %875) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %877) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %876) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %875) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %872) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %874) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %873) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %871) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %879, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %5940 unwind label %6885

5940:                                             ; preds = %5939
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %880, i32 noundef 0)
          to label %5941 unwind label %6889

5941:                                             ; preds = %5940
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %881, i32 noundef 1000)
          to label %5942 unwind label %6893

5942:                                             ; preds = %5941
  %5943 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %848, ptr noundef %879, ptr noundef %880, ptr noundef %881)
          to label %5944 unwind label %6897

5944:                                             ; preds = %5942
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %882, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5945 unwind label %6897

5945:                                             ; preds = %5944
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %883, i32 noundef 0)
          to label %5946 unwind label %6901

5946:                                             ; preds = %5945
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %884, i32 noundef 1000)
          to label %5947 unwind label %6905

5947:                                             ; preds = %5946
  %5948 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %5943, ptr noundef %882, ptr noundef %883, ptr noundef %884)
          to label %5949 unwind label %6909

5949:                                             ; preds = %5947
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %884) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %883) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %882) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %881) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %880) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %879) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %886) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %887, ptr noundef nonnull align 8 dereferenceable(32) %848) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %886, ptr noundef %887)
          to label %5950 unwind label %6918

5950:                                             ; preds = %5949
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %885, ptr noundef nonnull align 8 dereferenceable(8) %886, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %5951 unwind label %6922

5951:                                             ; preds = %5950
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %885) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %886) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %887) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %886) #9
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %856) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %856) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %848) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %848) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %845) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %845) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %842) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %842) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %888) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %889) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %890) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %890) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %889, ptr noundef @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %890)
          to label %5952 unwind label %6933

5952:                                             ; preds = %5951
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %888, ptr noundef nonnull align 8 dereferenceable(32) %889)
          to label %5953 unwind label %6937

5953:                                             ; preds = %5952
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %889) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %890) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %890) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %889) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %891) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %892) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %893) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %893) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %892, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %893)
          to label %5954 unwind label %6942

5954:                                             ; preds = %5953
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %891, ptr noundef nonnull align 8 dereferenceable(32) %892)
          to label %5955 unwind label %6946

5955:                                             ; preds = %5954
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %892) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %893) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %893) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %892) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %894) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %895) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %896)
          to label %5956 unwind label %6951

5956:                                             ; preds = %5955
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %894, ptr noundef nonnull align 8 dereferenceable(32) %895)
          to label %5957 unwind label %6955

5957:                                             ; preds = %5956
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %895) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %896) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %896) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %895) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %903, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %5958 unwind label %6960

5958:                                             ; preds = %5957
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %904, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5959 unwind label %6964

5959:                                             ; preds = %5958
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %902, ptr noundef %903, ptr noundef %904)
          to label %5960 unwind label %6968

5960:                                             ; preds = %5959
  invoke void @_ZN6Halide4sqrtENS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %901, ptr noundef %902)
          to label %5961 unwind label %6972

5961:                                             ; preds = %5960
  invoke void @_ZN6Halide4sqrtENS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %900, ptr noundef %901)
          to label %5962 unwind label %6976

5962:                                             ; preds = %5961
  invoke void @_ZN6Halide4sqrtENS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %899, ptr noundef %900)
          to label %5963 unwind label %6980

5963:                                             ; preds = %5962
  invoke void @_ZN6Halide4sqrtENS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %898, ptr noundef %899)
          to label %5964 unwind label %6984

5964:                                             ; preds = %5963
  call void @llvm.lifetime.start.p0(i64 56, ptr %905) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %905, ptr noundef nonnull align 8 dereferenceable(32) %888, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5965 unwind label %6988

5965:                                             ; preds = %5964
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %897, ptr noundef nonnull align 8 dereferenceable(56) %905, ptr noundef %898)
          to label %5966 unwind label %6992

5966:                                             ; preds = %5965
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %897) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %905) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %905) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %898) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %899) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %900) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %901) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %902) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %904) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %903) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr %906) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %907, i32 noundef -50)
          to label %5967 unwind label %7003

5967:                                             ; preds = %5966
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %908, i32 noundef 100)
          to label %5968 unwind label %7007

5968:                                             ; preds = %5967
  call void @llvm.lifetime.start.p0(i64 4, ptr %909) #9
  store i32 -50, ptr %909, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %910) #9
  store i32 100, ptr %910, align 4, !tbaa !5
  invoke void @_ZN6Halide4RDomC2IJiiEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %906, ptr noundef %907, ptr noundef %908, ptr noundef nonnull align 4 dereferenceable(4) %909, ptr noundef nonnull align 4 dereferenceable(4) %910)
          to label %5969 unwind label %7011

5969:                                             ; preds = %5968
  call void @llvm.lifetime.end.p0(i64 4, ptr %910) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %909) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %908) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %907) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %912) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %914, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %5970 unwind label %7016

5970:                                             ; preds = %5969
  %5971 = getelementptr inbounds %"class.Halide::RDom", ptr %906, i32 0, i32 1
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %915, ptr noundef nonnull align 8 dereferenceable(44) %5971)
          to label %5972 unwind label %7020

5972:                                             ; preds = %5970
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %913, ptr noundef %914, ptr noundef %915)
          to label %5973 unwind label %7024

5973:                                             ; preds = %5972
  call void @llvm.lifetime.start.p0(i64 8, ptr %916) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %917, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5974 unwind label %7028

5974:                                             ; preds = %5973
  %5975 = getelementptr inbounds %"class.Halide::RDom", ptr %906, i32 0, i32 2
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %918, ptr noundef nonnull align 8 dereferenceable(44) %5975)
          to label %5976 unwind label %7032

5976:                                             ; preds = %5974
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %916, ptr noundef %917, ptr noundef %918)
          to label %5977 unwind label %7036

5977:                                             ; preds = %5976
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %912, ptr noundef nonnull align 8 dereferenceable(32) %888, ptr noundef %913, ptr noundef nonnull align 8 dereferenceable(8) %916)
          to label %5978 unwind label %7040

5978:                                             ; preds = %5977
  call void @llvm.lifetime.start.p0(i64 56, ptr %919) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %919, ptr noundef nonnull align 8 dereferenceable(32) %891, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5979 unwind label %7044

5979:                                             ; preds = %5978
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %911, ptr noundef nonnull align 8 dereferenceable(56) %919, ptr noundef nonnull align 8 dereferenceable(56) %912)
          to label %5980 unwind label %7048

5980:                                             ; preds = %5979
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %911) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %919) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %919) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %912) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %916) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %918) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %917) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %916) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %913) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %915) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %914) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %912) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %921) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %923, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5981 unwind label %7060

5981:                                             ; preds = %5980
  %5982 = getelementptr inbounds %"class.Halide::RDom", ptr %906, i32 0, i32 2
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %924, ptr noundef nonnull align 8 dereferenceable(44) %5982)
          to label %5983 unwind label %7064

5983:                                             ; preds = %5981
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %922, ptr noundef %923, ptr noundef %924)
          to label %5984 unwind label %7068

5984:                                             ; preds = %5983
  call void @llvm.lifetime.start.p0(i64 8, ptr %925) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %926, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %5985 unwind label %7072

5985:                                             ; preds = %5984
  %5986 = getelementptr inbounds %"class.Halide::RDom", ptr %906, i32 0, i32 1
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %927, ptr noundef nonnull align 8 dereferenceable(44) %5986)
          to label %5987 unwind label %7076

5987:                                             ; preds = %5985
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %925, ptr noundef %926, ptr noundef %927)
          to label %5988 unwind label %7080

5988:                                             ; preds = %5987
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %921, ptr noundef nonnull align 8 dereferenceable(32) %888, ptr noundef %922, ptr noundef nonnull align 8 dereferenceable(8) %925)
          to label %5989 unwind label %7084

5989:                                             ; preds = %5988
  call void @llvm.lifetime.start.p0(i64 56, ptr %928) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %928, ptr noundef nonnull align 8 dereferenceable(32) %894, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5990 unwind label %7088

5990:                                             ; preds = %5989
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %920, ptr noundef nonnull align 8 dereferenceable(56) %928, ptr noundef nonnull align 8 dereferenceable(56) %921)
          to label %5991 unwind label %7092

5991:                                             ; preds = %5990
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %920) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %928) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %928) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %921) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %925) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %927) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %926) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %925) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %922) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %924) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %923) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %921) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %929, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %5992 unwind label %7104

5992:                                             ; preds = %5991
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %930, i32 noundef 0)
          to label %5993 unwind label %7108

5993:                                             ; preds = %5992
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %931, i32 noundef 1000)
          to label %5994 unwind label %7112

5994:                                             ; preds = %5993
  %5995 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %891, ptr noundef %929, ptr noundef %930, ptr noundef %931)
          to label %5996 unwind label %7116

5996:                                             ; preds = %5994
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %932, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %5997 unwind label %7116

5997:                                             ; preds = %5996
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %933, i32 noundef 0)
          to label %5998 unwind label %7120

5998:                                             ; preds = %5997
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %934, i32 noundef 1000)
          to label %5999 unwind label %7124

5999:                                             ; preds = %5998
  %6000 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %5995, ptr noundef %932, ptr noundef %933, ptr noundef %934)
          to label %6001 unwind label %7128

6001:                                             ; preds = %5999
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %934) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %933) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %932) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %931) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %930) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %929) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %935, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %6002 unwind label %7104

6002:                                             ; preds = %6001
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %936, i32 noundef 0)
          to label %6003 unwind label %7137

6003:                                             ; preds = %6002
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %937, i32 noundef 1000)
          to label %6004 unwind label %7141

6004:                                             ; preds = %6003
  %6005 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %894, ptr noundef %935, ptr noundef %936, ptr noundef %937)
          to label %6006 unwind label %7145

6006:                                             ; preds = %6004
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %938, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6007 unwind label %7145

6007:                                             ; preds = %6006
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %939, i32 noundef 0)
          to label %6008 unwind label %7149

6008:                                             ; preds = %6007
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %940, i32 noundef 1000)
          to label %6009 unwind label %7153

6009:                                             ; preds = %6008
  %6010 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %6005, ptr noundef %938, ptr noundef %939, ptr noundef %940)
          to label %6011 unwind label %7157

6011:                                             ; preds = %6009
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %940) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %939) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %938) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %937) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %936) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %935) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %942) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %943) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr %945) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %945, ptr noundef nonnull align 8 dereferenceable(32) %891) #9
  %6012 = getelementptr inbounds %"class.Halide::Func", ptr %945, i64 1
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %6012, ptr noundef nonnull align 8 dereferenceable(32) %894) #9
  %6013 = getelementptr inbounds %"class.std::initializer_list", ptr %944, i32 0, i32 0
  store ptr %945, ptr %6013, align 8, !tbaa !25
  %6014 = getelementptr inbounds %"class.std::initializer_list", ptr %944, i32 0, i32 1
  store i64 2, ptr %6014, align 8, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 1, ptr %946) #9
  call void @_ZNSaIN6Halide4FuncEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %946) #9
  %6015 = getelementptr inbounds { ptr, i64 }, ptr %944, i32 0, i32 0
  %6016 = load ptr, ptr %6015, align 8
  %6017 = getelementptr inbounds { ptr, i64 }, ptr %944, i32 0, i32 1
  %6018 = load i64, ptr %6017, align 8
  invoke void @_ZNSt6vectorIN6Halide4FuncESaIS1_EEC2ESt16initializer_listIS1_ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %943, ptr %6016, i64 %6018, ptr noundef nonnull align 1 dereferenceable(1) %946)
          to label %6019 unwind label %7166

6019:                                             ; preds = %6011
  invoke void @_ZN6Halide8PipelineC1ERKSt6vectorINS_4FuncESaIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %942, ptr noundef nonnull align 8 dereferenceable(24) %943)
          to label %6020 unwind label %7170

6020:                                             ; preds = %6019
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %941, ptr noundef nonnull align 8 dereferenceable(8) %942, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %6021 unwind label %7174

6021:                                             ; preds = %6020
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %941) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %942) #9
  call void @_ZNSt6vectorIN6Halide4FuncESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %943) #9
  call void @_ZNSt15__new_allocatorIN6Halide4FuncEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %946) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %946) #9
  %6022 = getelementptr inbounds [2 x %"class.Halide::Func"], ptr %945, i32 0, i32 0
  %6023 = getelementptr inbounds %"class.Halide::Func", ptr %6022, i64 2
  br label %6024

6024:                                             ; preds = %6024, %6021
  %6025 = phi ptr [ %6023, %6021 ], [ %6026, %6024 ]
  %6026 = getelementptr inbounds %"class.Halide::Func", ptr %6025, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6026) #9
  %6027 = icmp eq ptr %6026, %6022
  br i1 %6027, label %6028, label %6024

6028:                                             ; preds = %6024
  call void @llvm.lifetime.end.p0(i64 64, ptr %945) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %943) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %942) #9
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %906) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %906) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %894) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %894) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %891) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %891) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %888) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %888) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %947) #9
  %6029 = invoke { i64, ptr } @_ZN6Halide5FloatEii(i32 noundef 32, i32 noundef 1)
          to label %6030 unwind label %7193

6030:                                             ; preds = %6028
  %6031 = getelementptr inbounds { i64, ptr }, ptr %948, i32 0, i32 0
  %6032 = extractvalue { i64, ptr } %6029, 0
  store i64 %6032, ptr %6031, align 8
  %6033 = getelementptr inbounds { i64, ptr }, ptr %948, i32 0, i32 1
  %6034 = extractvalue { i64, ptr } %6029, 1
  store ptr %6034, ptr %6033, align 8
  %6035 = getelementptr inbounds { i64, ptr }, ptr %948, i32 0, i32 0
  %6036 = load i64, ptr %6035, align 8
  %6037 = getelementptr inbounds { i64, ptr }, ptr %948, i32 0, i32 1
  %6038 = load ptr, ptr %6037, align 8
  invoke void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56) %947, i64 %6036, ptr %6038, i32 noundef 2)
          to label %6039 unwind label %7193

6039:                                             ; preds = %6030
  call void @llvm.lifetime.start.p0(i64 32, ptr %949) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %950) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %951) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %951) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %950, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %951)
          to label %6040 unwind label %7197

6040:                                             ; preds = %6039
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %949, ptr noundef nonnull align 8 dereferenceable(32) %950)
          to label %6041 unwind label %7201

6041:                                             ; preds = %6040
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %950) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %951) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %951) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %950) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %952) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %953) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %954)
          to label %6042 unwind label %7206

6042:                                             ; preds = %6041
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %952, ptr noundef nonnull align 8 dereferenceable(32) %953)
          to label %6043 unwind label %7210

6043:                                             ; preds = %6042
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %953) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %954) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %954) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %953) #9
  invoke void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_EEENS_4ExprEDpOT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %956, ptr noundef nonnull align 8 dereferenceable(56) %947, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6044 unwind label %7215

6044:                                             ; preds = %6043
  call void @llvm.lifetime.start.p0(i64 56, ptr %957) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %957, ptr noundef nonnull align 8 dereferenceable(32) %949, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6045 unwind label %7219

6045:                                             ; preds = %6044
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %955, ptr noundef nonnull align 8 dereferenceable(56) %957, ptr noundef %956)
          to label %6046 unwind label %7223

6046:                                             ; preds = %6045
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %955) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %957) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %957) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %956) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %959) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %959, ptr noundef nonnull align 8 dereferenceable(32) %949, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6047 unwind label %7228

6047:                                             ; preds = %6046
  call void @llvm.lifetime.start.p0(i64 56, ptr %960) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %960, ptr noundef nonnull align 8 dereferenceable(32) %952, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6048 unwind label %7232

6048:                                             ; preds = %6047
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %958, ptr noundef nonnull align 8 dereferenceable(56) %960, ptr noundef nonnull align 8 dereferenceable(56) %959)
          to label %6049 unwind label %7236

6049:                                             ; preds = %6048
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %958) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %960) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %960) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %959) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %959) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %961, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %6050 unwind label %7215

6050:                                             ; preds = %6049
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %962, i32 noundef 0)
          to label %6051 unwind label %7242

6051:                                             ; preds = %6050
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %963, i32 noundef 1000)
          to label %6052 unwind label %7246

6052:                                             ; preds = %6051
  %6053 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %952, ptr noundef %961, ptr noundef %962, ptr noundef %963)
          to label %6054 unwind label %7250

6054:                                             ; preds = %6052
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %964, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6055 unwind label %7250

6055:                                             ; preds = %6054
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %965, i32 noundef 0)
          to label %6056 unwind label %7254

6056:                                             ; preds = %6055
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %966, i32 noundef 1000)
          to label %6057 unwind label %7258

6057:                                             ; preds = %6056
  %6058 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %6053, ptr noundef %964, ptr noundef %965, ptr noundef %966)
          to label %6059 unwind label %7262

6059:                                             ; preds = %6057
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %966) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %965) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %964) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %963) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %962) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %961) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %968) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %969, ptr noundef nonnull align 8 dereferenceable(32) %952) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %968, ptr noundef %969)
          to label %6060 unwind label %7271

6060:                                             ; preds = %6059
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %967, ptr noundef nonnull align 8 dereferenceable(8) %968, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %6061 unwind label %7275

6061:                                             ; preds = %6060
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %967) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %968) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %969) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %968) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %952) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %952) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %949) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %949) #9
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %947) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %947) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %970) #9
  %6062 = invoke { i64, ptr } @_ZN6Halide5FloatEii(i32 noundef 32, i32 noundef 1)
          to label %6063 unwind label %7284

6063:                                             ; preds = %6061
  %6064 = getelementptr inbounds { i64, ptr }, ptr %971, i32 0, i32 0
  %6065 = extractvalue { i64, ptr } %6062, 0
  store i64 %6065, ptr %6064, align 8
  %6066 = getelementptr inbounds { i64, ptr }, ptr %971, i32 0, i32 1
  %6067 = extractvalue { i64, ptr } %6062, 1
  store ptr %6067, ptr %6066, align 8
  %6068 = getelementptr inbounds { i64, ptr }, ptr %971, i32 0, i32 0
  %6069 = load i64, ptr %6068, align 8
  %6070 = getelementptr inbounds { i64, ptr }, ptr %971, i32 0, i32 1
  %6071 = load ptr, ptr %6070, align 8
  invoke void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56) %970, i64 %6069, ptr %6071, i32 noundef 2)
          to label %6072 unwind label %7284

6072:                                             ; preds = %6063
  call void @llvm.lifetime.start.p0(i64 32, ptr %972) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %973) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %974)
          to label %6073 unwind label %7288

6073:                                             ; preds = %6072
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %972, ptr noundef nonnull align 8 dereferenceable(32) %973)
          to label %6074 unwind label %7292

6074:                                             ; preds = %6073
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %973) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %974) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %974) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %973) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %977) #9
  invoke void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_EEENS_4ExprEDpOT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %977, ptr noundef nonnull align 8 dereferenceable(56) %970, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6075 unwind label %7297

6075:                                             ; preds = %6074
  invoke void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %976, ptr noundef nonnull align 8 dereferenceable(8) %977, i32 noundef 7)
          to label %6076 unwind label %7301

6076:                                             ; preds = %6075
  call void @llvm.lifetime.start.p0(i64 56, ptr %978) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %978, ptr noundef nonnull align 8 dereferenceable(32) %972, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6077 unwind label %7305

6077:                                             ; preds = %6076
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %975, ptr noundef nonnull align 8 dereferenceable(56) %978, ptr noundef %976)
          to label %6078 unwind label %7309

6078:                                             ; preds = %6077
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %975) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %978) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %978) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %976) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %977) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %977) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %979, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %6079 unwind label %7316

6079:                                             ; preds = %6078
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %980, i32 noundef 0)
          to label %6080 unwind label %7320

6080:                                             ; preds = %6079
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %981, i32 noundef 3)
          to label %6081 unwind label %7324

6081:                                             ; preds = %6080
  %6082 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %972, ptr noundef %979, ptr noundef %980, ptr noundef %981)
          to label %6083 unwind label %7328

6083:                                             ; preds = %6081
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %982, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6084 unwind label %7328

6084:                                             ; preds = %6083
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %983, i32 noundef 0)
          to label %6085 unwind label %7332

6085:                                             ; preds = %6084
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %984, i32 noundef 5)
          to label %6086 unwind label %7336

6086:                                             ; preds = %6085
  %6087 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %6082, ptr noundef %982, ptr noundef %983, ptr noundef %984)
          to label %6088 unwind label %7340

6088:                                             ; preds = %6086
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %984) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %983) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %982) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %981) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %980) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %979) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %986) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %987, ptr noundef nonnull align 8 dereferenceable(32) %972) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %986, ptr noundef %987)
          to label %6089 unwind label %7349

6089:                                             ; preds = %6088
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %985, ptr noundef nonnull align 8 dereferenceable(8) %986, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %6090 unwind label %7353

6090:                                             ; preds = %6089
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %985) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %986) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %987) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %986) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %972) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %972) #9
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %970) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %970) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %988) #9
  %6091 = invoke { i64, ptr } @_ZN6Halide5FloatEii(i32 noundef 32, i32 noundef 1)
          to label %6092 unwind label %7361

6092:                                             ; preds = %6090
  %6093 = getelementptr inbounds { i64, ptr }, ptr %989, i32 0, i32 0
  %6094 = extractvalue { i64, ptr } %6091, 0
  store i64 %6094, ptr %6093, align 8
  %6095 = getelementptr inbounds { i64, ptr }, ptr %989, i32 0, i32 1
  %6096 = extractvalue { i64, ptr } %6091, 1
  store ptr %6096, ptr %6095, align 8
  %6097 = getelementptr inbounds { i64, ptr }, ptr %989, i32 0, i32 0
  %6098 = load i64, ptr %6097, align 8
  %6099 = getelementptr inbounds { i64, ptr }, ptr %989, i32 0, i32 1
  %6100 = load ptr, ptr %6099, align 8
  invoke void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56) %988, i64 %6098, ptr %6100, i32 noundef 7)
          to label %6101 unwind label %7361

6101:                                             ; preds = %6092
  call void @llvm.lifetime.start.p0(i64 32, ptr %990) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %991) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %992) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %992) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %991, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %992)
          to label %6102 unwind label %7365

6102:                                             ; preds = %6101
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %990, ptr noundef nonnull align 8 dereferenceable(32) %991)
          to label %6103 unwind label %7369

6103:                                             ; preds = %6102
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %991) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %992) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %992) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %991) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %993) #9
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %993)
          to label %6104 unwind label %7374

6104:                                             ; preds = %6103
  call void @llvm.lifetime.start.p0(i64 32, ptr %994) #9
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %994)
          to label %6105 unwind label %7378

6105:                                             ; preds = %6104
  call void @llvm.lifetime.start.p0(i64 32, ptr %995) #9
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %995)
          to label %6106 unwind label %7382

6106:                                             ; preds = %6105
  call void @llvm.lifetime.start.p0(i64 32, ptr %996) #9
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %996)
          to label %6107 unwind label %7386

6107:                                             ; preds = %6106
  call void @llvm.lifetime.start.p0(i64 32, ptr %997) #9
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %997)
          to label %6108 unwind label %7390

6108:                                             ; preds = %6107
  call void @llvm.lifetime.start.p0(i64 8, ptr %1000) #9
  invoke void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_S3_S3_S3_S3_S3_EEENS_4ExprEDpOT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1000, ptr noundef nonnull align 8 dereferenceable(56) %988, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %993, ptr noundef nonnull align 8 dereferenceable(32) %994, ptr noundef nonnull align 8 dereferenceable(32) %995, ptr noundef nonnull align 8 dereferenceable(32) %996, ptr noundef nonnull align 8 dereferenceable(32) %997)
          to label %6109 unwind label %7394

6109:                                             ; preds = %6108
  invoke void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %999, ptr noundef nonnull align 8 dereferenceable(8) %1000, i32 noundef 7)
          to label %6110 unwind label %7398

6110:                                             ; preds = %6109
  call void @llvm.lifetime.start.p0(i64 56, ptr %1001) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_S3_S3_S3_S3_S3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1001, ptr noundef nonnull align 8 dereferenceable(32) %990, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %993, ptr noundef nonnull align 8 dereferenceable(32) %994, ptr noundef nonnull align 8 dereferenceable(32) %995, ptr noundef nonnull align 8 dereferenceable(32) %996, ptr noundef nonnull align 8 dereferenceable(32) %997)
          to label %6111 unwind label %7402

6111:                                             ; preds = %6110
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %998, ptr noundef nonnull align 8 dereferenceable(56) %1001, ptr noundef %999)
          to label %6112 unwind label %7406

6112:                                             ; preds = %6111
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %998) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1001) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1001) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %999) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1000) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1000) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1002, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %6113 unwind label %7413

6113:                                             ; preds = %6112
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1003, i32 noundef 0)
          to label %6114 unwind label %7417

6114:                                             ; preds = %6113
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1004, i32 noundef 8)
          to label %6115 unwind label %7421

6115:                                             ; preds = %6114
  %6116 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %990, ptr noundef %1002, ptr noundef %1003, ptr noundef %1004)
          to label %6117 unwind label %7425

6117:                                             ; preds = %6115
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1005, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6118 unwind label %7425

6118:                                             ; preds = %6117
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1006, i32 noundef 0)
          to label %6119 unwind label %7429

6119:                                             ; preds = %6118
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1007, i32 noundef 9)
          to label %6120 unwind label %7433

6120:                                             ; preds = %6119
  %6121 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %6116, ptr noundef %1005, ptr noundef %1006, ptr noundef %1007)
          to label %6122 unwind label %7437

6122:                                             ; preds = %6120
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1008, ptr noundef nonnull align 8 dereferenceable(32) %993)
          to label %6123 unwind label %7437

6123:                                             ; preds = %6122
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1009, i32 noundef 0)
          to label %6124 unwind label %7441

6124:                                             ; preds = %6123
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1010, i32 noundef 10)
          to label %6125 unwind label %7445

6125:                                             ; preds = %6124
  %6126 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %6121, ptr noundef %1008, ptr noundef %1009, ptr noundef %1010)
          to label %6127 unwind label %7449

6127:                                             ; preds = %6125
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1011, ptr noundef nonnull align 8 dereferenceable(32) %994)
          to label %6128 unwind label %7449

6128:                                             ; preds = %6127
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1012, i32 noundef 0)
          to label %6129 unwind label %7453

6129:                                             ; preds = %6128
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1013, i32 noundef 5)
          to label %6130 unwind label %7457

6130:                                             ; preds = %6129
  %6131 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %6126, ptr noundef %1011, ptr noundef %1012, ptr noundef %1013)
          to label %6132 unwind label %7461

6132:                                             ; preds = %6130
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1014, ptr noundef nonnull align 8 dereferenceable(32) %995)
          to label %6133 unwind label %7461

6133:                                             ; preds = %6132
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1015, i32 noundef 0)
          to label %6134 unwind label %7465

6134:                                             ; preds = %6133
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1016, i32 noundef 3)
          to label %6135 unwind label %7469

6135:                                             ; preds = %6134
  %6136 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %6131, ptr noundef %1014, ptr noundef %1015, ptr noundef %1016)
          to label %6137 unwind label %7473

6137:                                             ; preds = %6135
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1017, ptr noundef nonnull align 8 dereferenceable(32) %996)
          to label %6138 unwind label %7473

6138:                                             ; preds = %6137
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1018, i32 noundef 0)
          to label %6139 unwind label %7477

6139:                                             ; preds = %6138
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1019, i32 noundef 2)
          to label %6140 unwind label %7481

6140:                                             ; preds = %6139
  %6141 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %6136, ptr noundef %1017, ptr noundef %1018, ptr noundef %1019)
          to label %6142 unwind label %7485

6142:                                             ; preds = %6140
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1020, ptr noundef nonnull align 8 dereferenceable(32) %997)
          to label %6143 unwind label %7485

6143:                                             ; preds = %6142
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1021, i32 noundef 0)
          to label %6144 unwind label %7489

6144:                                             ; preds = %6143
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1022, i32 noundef 6)
          to label %6145 unwind label %7493

6145:                                             ; preds = %6144
  %6146 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %6141, ptr noundef %1020, ptr noundef %1021, ptr noundef %1022)
          to label %6147 unwind label %7497

6147:                                             ; preds = %6145
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1022) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1021) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1020) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1019) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1018) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1017) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1016) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1015) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1014) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1013) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1012) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1011) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1010) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1009) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1008) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1007) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1006) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1005) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1004) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1003) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1002) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1024) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1025, ptr noundef nonnull align 8 dereferenceable(32) %990) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %1024, ptr noundef %1025)
          to label %6148 unwind label %7521

6148:                                             ; preds = %6147
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %1023, ptr noundef nonnull align 8 dereferenceable(8) %1024, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %6149 unwind label %7525

6149:                                             ; preds = %6148
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %1023) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1024) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1025) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1024) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %997) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %997) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %996) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %996) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %995) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %995) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %994) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %994) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %993) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %993) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %990) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %990) #9
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %988) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %988) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1026) #9
  %6150 = invoke { i64, ptr } @_ZN6Halide5FloatEii(i32 noundef 32, i32 noundef 1)
          to label %6151 unwind label %7538

6151:                                             ; preds = %6149
  %6152 = getelementptr inbounds { i64, ptr }, ptr %1027, i32 0, i32 0
  %6153 = extractvalue { i64, ptr } %6150, 0
  store i64 %6153, ptr %6152, align 8
  %6154 = getelementptr inbounds { i64, ptr }, ptr %1027, i32 0, i32 1
  %6155 = extractvalue { i64, ptr } %6150, 1
  store ptr %6155, ptr %6154, align 8
  %6156 = getelementptr inbounds { i64, ptr }, ptr %1027, i32 0, i32 0
  %6157 = load i64, ptr %6156, align 8
  %6158 = getelementptr inbounds { i64, ptr }, ptr %1027, i32 0, i32 1
  %6159 = load ptr, ptr %6158, align 8
  invoke void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56) %1026, i64 %6157, ptr %6159, i32 noundef 2)
          to label %6160 unwind label %7538

6160:                                             ; preds = %6151
  call void @llvm.lifetime.start.p0(i64 32, ptr %1028) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1029) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %1030)
          to label %6161 unwind label %7542

6161:                                             ; preds = %6160
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1028, ptr noundef nonnull align 8 dereferenceable(32) %1029)
          to label %6162 unwind label %7546

6162:                                             ; preds = %6161
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1029) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1030) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1030) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1029) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1031) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1032) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %1033) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1033) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1032, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %1033)
          to label %6163 unwind label %7551

6163:                                             ; preds = %6162
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1031, ptr noundef nonnull align 8 dereferenceable(32) %1032)
          to label %6164 unwind label %7555

6164:                                             ; preds = %6163
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1032) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1033) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1033) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1032) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1034) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1035) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %1036)
          to label %6165 unwind label %7560

6165:                                             ; preds = %6164
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1034, ptr noundef nonnull align 8 dereferenceable(32) %1035)
          to label %6166 unwind label %7564

6166:                                             ; preds = %6165
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1035) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1036) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1036) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1035) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1039) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1041, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6167 unwind label %7569

6167:                                             ; preds = %6166
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1042, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %6168 unwind label %7573

6168:                                             ; preds = %6167
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1040, ptr noundef %1041, ptr noundef %1042)
          to label %6169 unwind label %7577

6169:                                             ; preds = %6168
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1043, i32 noundef 0)
          to label %6170 unwind label %7581

6170:                                             ; preds = %6169
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1044, i32 noundef 999)
          to label %6171 unwind label %7585

6171:                                             ; preds = %6170
  invoke void @_ZN6Halide5clampENS_4ExprES0_S0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1039, ptr noundef %1040, ptr noundef %1043, ptr noundef %1044)
          to label %6172 unwind label %7589

6172:                                             ; preds = %6171
  invoke void @_ZNK6Halide10ImageParamclIJNS_4ExprERNS_3VarEEEES2_DpOT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1038, ptr noundef nonnull align 8 dereferenceable(56) %1026, ptr noundef nonnull align 8 dereferenceable(8) %1039, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %6173 unwind label %7593

6173:                                             ; preds = %6172
  call void @llvm.lifetime.start.p0(i64 56, ptr %1045) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1045, ptr noundef nonnull align 8 dereferenceable(32) %1028, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6174 unwind label %7597

6174:                                             ; preds = %6173
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1037, ptr noundef nonnull align 8 dereferenceable(56) %1045, ptr noundef %1038)
          to label %6175 unwind label %7601

6175:                                             ; preds = %6174
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1037) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1045) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1045) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1038) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1039) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1044) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1043) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1040) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1042) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1041) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1039) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1047) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1050, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6176 unwind label %7613

6176:                                             ; preds = %6175
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1051, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %6177 unwind label %7617

6177:                                             ; preds = %6176
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1049, ptr noundef %1050, ptr noundef %1051)
          to label %6178 unwind label %7621

6178:                                             ; preds = %6177
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1052, i32 noundef 0)
          to label %6179 unwind label %7625

6179:                                             ; preds = %6178
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1053, i32 noundef 999)
          to label %6180 unwind label %7629

6180:                                             ; preds = %6179
  invoke void @_ZN6Halide5clampENS_4ExprES0_S0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1048, ptr noundef %1049, ptr noundef %1052, ptr noundef %1053)
          to label %6181 unwind label %7633

6181:                                             ; preds = %6180
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1047, ptr noundef nonnull align 8 dereferenceable(32) %1028, ptr noundef %1048, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %6182 unwind label %7637

6182:                                             ; preds = %6181
  call void @llvm.lifetime.start.p0(i64 56, ptr %1054) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1054, ptr noundef nonnull align 8 dereferenceable(32) %1031, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6183 unwind label %7641

6183:                                             ; preds = %6182
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1046, ptr noundef nonnull align 8 dereferenceable(56) %1054, ptr noundef nonnull align 8 dereferenceable(56) %1047)
          to label %6184 unwind label %7645

6184:                                             ; preds = %6183
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1046) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1054) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1054) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1047) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1048) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1053) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1052) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1049) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1051) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1050) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1047) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1056) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1059, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6185 unwind label %7657

6185:                                             ; preds = %6184
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1060, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %6186 unwind label %7661

6186:                                             ; preds = %6185
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1058, ptr noundef %1059, ptr noundef %1060)
          to label %6187 unwind label %7665

6187:                                             ; preds = %6186
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1061, i32 noundef 0)
          to label %6188 unwind label %7669

6188:                                             ; preds = %6187
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1062, i32 noundef 999)
          to label %6189 unwind label %7673

6189:                                             ; preds = %6188
  invoke void @_ZN6Halide5clampENS_4ExprES0_S0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1057, ptr noundef %1058, ptr noundef %1061, ptr noundef %1062)
          to label %6190 unwind label %7677

6190:                                             ; preds = %6189
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1056, ptr noundef nonnull align 8 dereferenceable(32) %1031, ptr noundef %1057, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %6191 unwind label %7681

6191:                                             ; preds = %6190
  call void @llvm.lifetime.start.p0(i64 56, ptr %1063) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1063, ptr noundef nonnull align 8 dereferenceable(32) %1034, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6192 unwind label %7685

6192:                                             ; preds = %6191
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1055, ptr noundef nonnull align 8 dereferenceable(56) %1063, ptr noundef nonnull align 8 dereferenceable(56) %1056)
          to label %6193 unwind label %7689

6193:                                             ; preds = %6192
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1055) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1063) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1063) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1056) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1057) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1062) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1061) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1058) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1060) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1059) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1056) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1064) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1065) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %1066) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1066) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1065, ptr noundef @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %1066)
          to label %6194 unwind label %7701

6194:                                             ; preds = %6193
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1064, ptr noundef nonnull align 8 dereferenceable(32) %1065)
          to label %6195 unwind label %7705

6195:                                             ; preds = %6194
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1065) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1066) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1066) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1065) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1067) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1068) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %1069)
          to label %6196 unwind label %7710

6196:                                             ; preds = %6195
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1067, ptr noundef nonnull align 8 dereferenceable(32) %1068)
          to label %6197 unwind label %7714

6197:                                             ; preds = %6196
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1068) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1069) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1069) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1068) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1074) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1074, ptr noundef nonnull align 8 dereferenceable(32) %1028, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6198 unwind label %7719

6198:                                             ; preds = %6197
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1073, ptr noundef nonnull align 8 dereferenceable(56) %1074)
          to label %6199 unwind label %7723

6199:                                             ; preds = %6198
  call void @llvm.lifetime.start.p0(i64 56, ptr %1076) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1076, ptr noundef nonnull align 8 dereferenceable(32) %1031, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6200 unwind label %7727

6200:                                             ; preds = %6199
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1075, ptr noundef nonnull align 8 dereferenceable(56) %1076)
          to label %6201 unwind label %7731

6201:                                             ; preds = %6200
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1072, ptr noundef %1073, ptr noundef %1075)
          to label %6202 unwind label %7735

6202:                                             ; preds = %6201
  call void @llvm.lifetime.start.p0(i64 56, ptr %1078) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1078, ptr noundef nonnull align 8 dereferenceable(32) %1034, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6203 unwind label %7739

6203:                                             ; preds = %6202
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1077, ptr noundef nonnull align 8 dereferenceable(56) %1078)
          to label %6204 unwind label %7743

6204:                                             ; preds = %6203
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1071, ptr noundef %1072, ptr noundef %1077)
          to label %6205 unwind label %7747

6205:                                             ; preds = %6204
  call void @llvm.lifetime.start.p0(i64 56, ptr %1079) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1079, ptr noundef nonnull align 8 dereferenceable(32) %1064, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6206 unwind label %7751

6206:                                             ; preds = %6205
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1070, ptr noundef nonnull align 8 dereferenceable(56) %1079, ptr noundef %1071)
          to label %6207 unwind label %7755

6207:                                             ; preds = %6206
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1070) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1079) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1079) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1071) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1077) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1078) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1078) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1072) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1075) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1076) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1076) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1073) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1074) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1074) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1084) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1084, ptr noundef nonnull align 8 dereferenceable(32) %1028, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6208 unwind label %7768

6208:                                             ; preds = %6207
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1083, ptr noundef nonnull align 8 dereferenceable(56) %1084)
          to label %6209 unwind label %7772

6209:                                             ; preds = %6208
  call void @llvm.lifetime.start.p0(i64 56, ptr %1086) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1086, ptr noundef nonnull align 8 dereferenceable(32) %1031, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6210 unwind label %7776

6210:                                             ; preds = %6209
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1085, ptr noundef nonnull align 8 dereferenceable(56) %1086)
          to label %6211 unwind label %7780

6211:                                             ; preds = %6210
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1082, ptr noundef %1083, ptr noundef %1085)
          to label %6212 unwind label %7784

6212:                                             ; preds = %6211
  call void @llvm.lifetime.start.p0(i64 56, ptr %1088) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1088, ptr noundef nonnull align 8 dereferenceable(32) %1034, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6213 unwind label %7788

6213:                                             ; preds = %6212
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1087, ptr noundef nonnull align 8 dereferenceable(56) %1088)
          to label %6214 unwind label %7792

6214:                                             ; preds = %6213
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1081, ptr noundef %1082, ptr noundef %1087)
          to label %6215 unwind label %7796

6215:                                             ; preds = %6214
  call void @llvm.lifetime.start.p0(i64 56, ptr %1089) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1089, ptr noundef nonnull align 8 dereferenceable(32) %1067, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6216 unwind label %7800

6216:                                             ; preds = %6215
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1080, ptr noundef nonnull align 8 dereferenceable(56) %1089, ptr noundef %1081)
          to label %6217 unwind label %7804

6217:                                             ; preds = %6216
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1080) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1089) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1089) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1081) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1087) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1088) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1088) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1082) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1085) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1086) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1086) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1083) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1084) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1084) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1090, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %6218 unwind label %7817

6218:                                             ; preds = %6217
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1091, i32 noundef 0)
          to label %6219 unwind label %7821

6219:                                             ; preds = %6218
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1092, i32 noundef 1000)
          to label %6220 unwind label %7825

6220:                                             ; preds = %6219
  %6221 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1064, ptr noundef %1090, ptr noundef %1091, ptr noundef %1092)
          to label %6222 unwind label %7829

6222:                                             ; preds = %6220
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1093, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6223 unwind label %7829

6223:                                             ; preds = %6222
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1094, i32 noundef 0)
          to label %6224 unwind label %7833

6224:                                             ; preds = %6223
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1095, i32 noundef 1000)
          to label %6225 unwind label %7837

6225:                                             ; preds = %6224
  %6226 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %6221, ptr noundef %1093, ptr noundef %1094, ptr noundef %1095)
          to label %6227 unwind label %7841

6227:                                             ; preds = %6225
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1095) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1094) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1093) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1092) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1091) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1090) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1096, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %6228 unwind label %7817

6228:                                             ; preds = %6227
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1097, i32 noundef 0)
          to label %6229 unwind label %7850

6229:                                             ; preds = %6228
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1098, i32 noundef 1000)
          to label %6230 unwind label %7854

6230:                                             ; preds = %6229
  %6231 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1067, ptr noundef %1096, ptr noundef %1097, ptr noundef %1098)
          to label %6232 unwind label %7858

6232:                                             ; preds = %6230
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1099, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6233 unwind label %7858

6233:                                             ; preds = %6232
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1100, i32 noundef 0)
          to label %6234 unwind label %7862

6234:                                             ; preds = %6233
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1101, i32 noundef 1000)
          to label %6235 unwind label %7866

6235:                                             ; preds = %6234
  %6236 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %6231, ptr noundef %1099, ptr noundef %1100, ptr noundef %1101)
          to label %6237 unwind label %7870

6237:                                             ; preds = %6235
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1101) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1100) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1099) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1098) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1097) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1096) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1103) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %1104) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr %1106) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1106, ptr noundef nonnull align 8 dereferenceable(32) %1064) #9
  %6238 = getelementptr inbounds %"class.Halide::Func", ptr %1106, i64 1
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %6238, ptr noundef nonnull align 8 dereferenceable(32) %1067) #9
  %6239 = getelementptr inbounds %"class.std::initializer_list", ptr %1105, i32 0, i32 0
  store ptr %1106, ptr %6239, align 8, !tbaa !25
  %6240 = getelementptr inbounds %"class.std::initializer_list", ptr %1105, i32 0, i32 1
  store i64 2, ptr %6240, align 8, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 1, ptr %1107) #9
  call void @_ZNSaIN6Halide4FuncEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1107) #9
  %6241 = getelementptr inbounds { ptr, i64 }, ptr %1105, i32 0, i32 0
  %6242 = load ptr, ptr %6241, align 8
  %6243 = getelementptr inbounds { ptr, i64 }, ptr %1105, i32 0, i32 1
  %6244 = load i64, ptr %6243, align 8
  invoke void @_ZNSt6vectorIN6Halide4FuncESaIS1_EEC2ESt16initializer_listIS1_ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %1104, ptr %6242, i64 %6244, ptr noundef nonnull align 1 dereferenceable(1) %1107)
          to label %6245 unwind label %7879

6245:                                             ; preds = %6237
  invoke void @_ZN6Halide8PipelineC1ERKSt6vectorINS_4FuncESaIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %1103, ptr noundef nonnull align 8 dereferenceable(24) %1104)
          to label %6246 unwind label %7883

6246:                                             ; preds = %6245
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %1102, ptr noundef nonnull align 8 dereferenceable(8) %1103, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %6247 unwind label %7887

6247:                                             ; preds = %6246
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %1102) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1103) #9
  call void @_ZNSt6vectorIN6Halide4FuncESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1104) #9
  call void @_ZNSt15__new_allocatorIN6Halide4FuncEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1107) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1107) #9
  %6248 = getelementptr inbounds [2 x %"class.Halide::Func"], ptr %1106, i32 0, i32 0
  %6249 = getelementptr inbounds %"class.Halide::Func", ptr %6248, i64 2
  br label %6250

6250:                                             ; preds = %6250, %6247
  %6251 = phi ptr [ %6249, %6247 ], [ %6252, %6250 ]
  %6252 = getelementptr inbounds %"class.Halide::Func", ptr %6251, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6252) #9
  %6253 = icmp eq ptr %6252, %6248
  br i1 %6253, label %6254, label %6250

6254:                                             ; preds = %6250
  call void @llvm.lifetime.end.p0(i64 64, ptr %1106) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %1104) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1103) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1067) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1067) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1064) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1064) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1034) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1034) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1031) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1031) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1028) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1028) #9
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1026) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1026) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1108) #9
  %6255 = invoke { i64, ptr } @_ZN6Halide5FloatEii(i32 noundef 32, i32 noundef 1)
          to label %6256 unwind label %7908

6256:                                             ; preds = %6254
  %6257 = getelementptr inbounds { i64, ptr }, ptr %1109, i32 0, i32 0
  %6258 = extractvalue { i64, ptr } %6255, 0
  store i64 %6258, ptr %6257, align 8
  %6259 = getelementptr inbounds { i64, ptr }, ptr %1109, i32 0, i32 1
  %6260 = extractvalue { i64, ptr } %6255, 1
  store ptr %6260, ptr %6259, align 8
  %6261 = getelementptr inbounds { i64, ptr }, ptr %1109, i32 0, i32 0
  %6262 = load i64, ptr %6261, align 8
  %6263 = getelementptr inbounds { i64, ptr }, ptr %1109, i32 0, i32 1
  %6264 = load ptr, ptr %6263, align 8
  invoke void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56) %1108, i64 %6262, ptr %6264, i32 noundef 2)
          to label %6265 unwind label %7908

6265:                                             ; preds = %6256
  call void @llvm.lifetime.start.p0(i64 4, ptr %1110) #9
  store i32 8, ptr %1110, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 256, ptr %1111) #9
  %6266 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1111, i32 0, i32 0
  %6267 = getelementptr inbounds %"class.Halide::Func", ptr %6266, i64 8
  br label %6268

6268:                                             ; preds = %6270, %6265
  %6269 = phi ptr [ %6266, %6265 ], [ %6271, %6270 ]
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %6269)
          to label %6270 unwind label %7912

6270:                                             ; preds = %6268
  %6271 = getelementptr inbounds %"class.Halide::Func", ptr %6269, i64 1
  %6272 = icmp eq ptr %6271, %6267
  br i1 %6272, label %6273, label %6268

6273:                                             ; preds = %6270
  call void @llvm.lifetime.start.p0(i64 32, ptr %1112) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1113) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %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 @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %1114)
          to label %6274 unwind label %7922

6274:                                             ; preds = %6273
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1112, ptr noundef nonnull align 8 dereferenceable(32) %1113)
          to label %6275 unwind label %7926

6275:                                             ; preds = %6274
  %6276 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1111, i64 0, i64 0
  %6277 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4FuncaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %6276, ptr noundef nonnull align 8 dereferenceable(32) %1112) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1112) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1113) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1114) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1114) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1113) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1112) #9
  invoke void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_EEENS_4ExprEDpOT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1116, ptr noundef nonnull align 8 dereferenceable(56) %1108, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6278 unwind label %7931

6278:                                             ; preds = %6275
  call void @llvm.lifetime.start.p0(i64 56, ptr %1117) #9
  %6279 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1111, i64 0, i64 0
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1117, ptr noundef nonnull align 8 dereferenceable(32) %6279, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %6280 unwind label %7935

6280:                                             ; preds = %6278
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1115, ptr noundef nonnull align 8 dereferenceable(56) %1117, ptr noundef %1116)
          to label %6281 unwind label %7939

6281:                                             ; preds = %6280
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1115) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1117) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1117) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1116) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %1118) #9
  store i32 1, ptr %1118, align 4, !tbaa !5
  br label %6282

6282:                                             ; preds = %8021, %6281
  %6283 = load i32, ptr %1118, align 4, !tbaa !5
  %6284 = icmp slt i32 %6283, 8
  br i1 %6284, label %7944, label %6285

6285:                                             ; preds = %6282
  store i32 35, ptr %311, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %1118) #9
  br label %8035

6286:                                             ; preds = %5785
  %6287 = landingpad { ptr, i32 }
          cleanup
  %6288 = extractvalue { ptr, i32 } %6287, 0
  store ptr %6288, ptr %8, align 8
  %6289 = extractvalue { ptr, i32 } %6287, 1
  store i32 %6289, ptr %9, align 4
  br label %6328

6290:                                             ; preds = %5787
  %6291 = landingpad { ptr, i32 }
          cleanup
  %6292 = extractvalue { ptr, i32 } %6291, 0
  store ptr %6292, ptr %8, align 8
  %6293 = extractvalue { ptr, i32 } %6291, 1
  store i32 %6293, ptr %9, align 4
  br label %6318

6294:                                             ; preds = %5788
  %6295 = landingpad { ptr, i32 }
          cleanup
  %6296 = extractvalue { ptr, i32 } %6295, 0
  store ptr %6296, ptr %8, align 8
  %6297 = extractvalue { ptr, i32 } %6295, 1
  store i32 %6297, ptr %9, align 4
  br label %6317

6298:                                             ; preds = %5791, %5789
  %6299 = landingpad { ptr, i32 }
          cleanup
  %6300 = extractvalue { ptr, i32 } %6299, 0
  store ptr %6300, ptr %8, align 8
  %6301 = extractvalue { ptr, i32 } %6299, 1
  store i32 %6301, ptr %9, align 4
  br label %6316

6302:                                             ; preds = %5792
  %6303 = landingpad { ptr, i32 }
          cleanup
  %6304 = extractvalue { ptr, i32 } %6303, 0
  store ptr %6304, ptr %8, align 8
  %6305 = extractvalue { ptr, i32 } %6303, 1
  store i32 %6305, ptr %9, align 4
  br label %6315

6306:                                             ; preds = %5793
  %6307 = landingpad { ptr, i32 }
          cleanup
  %6308 = extractvalue { ptr, i32 } %6307, 0
  store ptr %6308, ptr %8, align 8
  %6309 = extractvalue { ptr, i32 } %6307, 1
  store i32 %6309, ptr %9, align 4
  br label %6314

6310:                                             ; preds = %5794
  %6311 = landingpad { ptr, i32 }
          cleanup
  %6312 = extractvalue { ptr, i32 } %6311, 0
  store ptr %6312, ptr %8, align 8
  %6313 = extractvalue { ptr, i32 } %6311, 1
  store i32 %6313, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %754) #9
  br label %6314

6314:                                             ; preds = %6310, %6306
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %753) #9
  br label %6315

6315:                                             ; preds = %6314, %6302
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %752) #9
  br label %6316

6316:                                             ; preds = %6315, %6298
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %751) #9
  br label %6317

6317:                                             ; preds = %6316, %6294
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %750) #9
  br label %6318

6318:                                             ; preds = %6317, %6290
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %749) #9
  br label %6328

6319:                                             ; preds = %5796
  %6320 = landingpad { ptr, i32 }
          cleanup
  %6321 = extractvalue { ptr, i32 } %6320, 0
  store ptr %6321, ptr %8, align 8
  %6322 = extractvalue { ptr, i32 } %6320, 1
  store i32 %6322, ptr %9, align 4
  br label %6327

6323:                                             ; preds = %5798
  %6324 = landingpad { ptr, i32 }
          cleanup
  %6325 = extractvalue { ptr, i32 } %6324, 0
  store ptr %6325, ptr %8, align 8
  %6326 = extractvalue { ptr, i32 } %6324, 1
  store i32 %6326, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %756) #9
  br label %6327

6327:                                             ; preds = %6323, %6319
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %757) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %756) #9
  br label %6328

6328:                                             ; preds = %6327, %6318, %6286, %5784, %5744, %5730
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %731) #9
  br label %6329

6329:                                             ; preds = %6328, %5701
  call void @llvm.lifetime.end.p0(i64 32, ptr %731) #9
  br label %6330

6330:                                             ; preds = %6329, %5674, %5634, %5620, %5591
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %710) #9
  br label %6331

6331:                                             ; preds = %6330, %5577, %5565
  call void @llvm.lifetime.end.p0(i64 200, ptr %710) #9
  br label %6332

6332:                                             ; preds = %6331, %5542, %5502, %5480
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %698) #9
  br label %6333

6333:                                             ; preds = %6332, %5476
  call void @llvm.lifetime.end.p0(i64 32, ptr %698) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %697) #9
  br label %6334

6334:                                             ; preds = %6333, %5472
  call void @llvm.lifetime.end.p0(i64 32, ptr %697) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %694) #9
  br label %6335

6335:                                             ; preds = %6334, %5471
  call void @llvm.lifetime.end.p0(i64 32, ptr %694) #9
  %6336 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %693, i32 0, i32 0
  %6337 = getelementptr inbounds %"class.Halide::Func", ptr %6336, i64 3
  br label %6338

6338:                                             ; preds = %6338, %6335
  %6339 = phi ptr [ %6337, %6335 ], [ %6340, %6338 ]
  %6340 = getelementptr inbounds %"class.Halide::Func", ptr %6339, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6340) #9
  %6341 = icmp eq ptr %6340, %6336
  br i1 %6341, label %6342, label %6338

6342:                                             ; preds = %6338
  br label %6343

6343:                                             ; preds = %6342, %5462
  call void @llvm.lifetime.end.p0(i64 96, ptr %693) #9
  %6344 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %692, i32 0, i32 0
  %6345 = getelementptr inbounds %"class.Halide::Func", ptr %6344, i64 3
  br label %6346

6346:                                             ; preds = %6346, %6343
  %6347 = phi ptr [ %6345, %6343 ], [ %6348, %6346 ]
  %6348 = getelementptr inbounds %"class.Halide::Func", ptr %6347, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6348) #9
  %6349 = icmp eq ptr %6348, %6344
  br i1 %6349, label %6350, label %6346

6350:                                             ; preds = %6346
  br label %6351

6351:                                             ; preds = %6350, %5452
  call void @llvm.lifetime.end.p0(i64 96, ptr %692) #9
  %6352 = getelementptr inbounds [3 x %"class.Halide::Func"], ptr %691, i32 0, i32 0
  %6353 = getelementptr inbounds %"class.Halide::Func", ptr %6352, i64 3
  br label %6354

6354:                                             ; preds = %6354, %6351
  %6355 = phi ptr [ %6353, %6351 ], [ %6356, %6354 ]
  %6356 = getelementptr inbounds %"class.Halide::Func", ptr %6355, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6356) #9
  %6357 = icmp eq ptr %6356, %6352
  br i1 %6357, label %6358, label %6354

6358:                                             ; preds = %6354
  br label %6359

6359:                                             ; preds = %6358, %5442
  call void @llvm.lifetime.end.p0(i64 96, ptr %691) #9
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %690) #9
  br label %6360

6360:                                             ; preds = %6359, %5429
  call void @llvm.lifetime.end.p0(i64 16, ptr %690) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %689) #9
  br label %9780

6361:                                             ; preds = %5820
  %6362 = landingpad { ptr, i32 }
          cleanup
  %6363 = extractvalue { ptr, i32 } %6362, 0
  store ptr %6363, ptr %8, align 8
  %6364 = extractvalue { ptr, i32 } %6362, 1
  store i32 %6364, ptr %9, align 4
  br label %6369

6365:                                             ; preds = %5821
  %6366 = landingpad { ptr, i32 }
          cleanup
  %6367 = extractvalue { ptr, i32 } %6366, 0
  store ptr %6367, ptr %8, align 8
  %6368 = extractvalue { ptr, i32 } %6366, 1
  store i32 %6368, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %759) #9
  br label %6369

6369:                                             ; preds = %6365, %6361
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %760) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %760) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %759) #9
  br label %6585

6370:                                             ; preds = %5822
  %6371 = landingpad { ptr, i32 }
          cleanup
  %6372 = extractvalue { ptr, i32 } %6371, 0
  store ptr %6372, ptr %8, align 8
  %6373 = extractvalue { ptr, i32 } %6371, 1
  store i32 %6373, ptr %9, align 4
  br label %6584

6374:                                             ; preds = %5823
  %6375 = landingpad { ptr, i32 }
          cleanup
  %6376 = extractvalue { ptr, i32 } %6375, 0
  store ptr %6376, ptr %8, align 8
  %6377 = extractvalue { ptr, i32 } %6375, 1
  store i32 %6377, ptr %9, align 4
  br label %6583

6378:                                             ; preds = %5824
  %6379 = landingpad { ptr, i32 }
          cleanup
  %6380 = extractvalue { ptr, i32 } %6379, 0
  store ptr %6380, ptr %8, align 8
  %6381 = extractvalue { ptr, i32 } %6379, 1
  store i32 %6381, ptr %9, align 4
  br label %6466

6382:                                             ; preds = %5825
  %6383 = landingpad { ptr, i32 }
          cleanup
  %6384 = extractvalue { ptr, i32 } %6383, 0
  store ptr %6384, ptr %8, align 8
  %6385 = extractvalue { ptr, i32 } %6383, 1
  store i32 %6385, ptr %9, align 4
  br label %6465

6386:                                             ; preds = %5826
  %6387 = landingpad { ptr, i32 }
          cleanup
  %6388 = extractvalue { ptr, i32 } %6387, 0
  store ptr %6388, ptr %8, align 8
  %6389 = extractvalue { ptr, i32 } %6387, 1
  store i32 %6389, ptr %9, align 4
  br label %6464

6390:                                             ; preds = %5827
  %6391 = landingpad { ptr, i32 }
          cleanup
  %6392 = extractvalue { ptr, i32 } %6391, 0
  store ptr %6392, ptr %8, align 8
  %6393 = extractvalue { ptr, i32 } %6391, 1
  store i32 %6393, ptr %9, align 4
  br label %6463

6394:                                             ; preds = %5828
  %6395 = landingpad { ptr, i32 }
          cleanup
  %6396 = extractvalue { ptr, i32 } %6395, 0
  store ptr %6396, ptr %8, align 8
  %6397 = extractvalue { ptr, i32 } %6395, 1
  store i32 %6397, ptr %9, align 4
  br label %6462

6398:                                             ; preds = %5829
  %6399 = landingpad { ptr, i32 }
          cleanup
  %6400 = extractvalue { ptr, i32 } %6399, 0
  store ptr %6400, ptr %8, align 8
  %6401 = extractvalue { ptr, i32 } %6399, 1
  store i32 %6401, ptr %9, align 4
  br label %6461

6402:                                             ; preds = %5830
  %6403 = landingpad { ptr, i32 }
          cleanup
  %6404 = extractvalue { ptr, i32 } %6403, 0
  store ptr %6404, ptr %8, align 8
  %6405 = extractvalue { ptr, i32 } %6403, 1
  store i32 %6405, ptr %9, align 4
  br label %6460

6406:                                             ; preds = %5831
  %6407 = landingpad { ptr, i32 }
          cleanup
  %6408 = extractvalue { ptr, i32 } %6407, 0
  store ptr %6408, ptr %8, align 8
  %6409 = extractvalue { ptr, i32 } %6407, 1
  store i32 %6409, ptr %9, align 4
  br label %6459

6410:                                             ; preds = %5832
  %6411 = landingpad { ptr, i32 }
          cleanup
  %6412 = extractvalue { ptr, i32 } %6411, 0
  store ptr %6412, ptr %8, align 8
  %6413 = extractvalue { ptr, i32 } %6411, 1
  store i32 %6413, ptr %9, align 4
  br label %6458

6414:                                             ; preds = %5833
  %6415 = landingpad { ptr, i32 }
          cleanup
  %6416 = extractvalue { ptr, i32 } %6415, 0
  store ptr %6416, ptr %8, align 8
  %6417 = extractvalue { ptr, i32 } %6415, 1
  store i32 %6417, ptr %9, align 4
  br label %6457

6418:                                             ; preds = %5834
  %6419 = landingpad { ptr, i32 }
          cleanup
  %6420 = extractvalue { ptr, i32 } %6419, 0
  store ptr %6420, ptr %8, align 8
  %6421 = extractvalue { ptr, i32 } %6419, 1
  store i32 %6421, ptr %9, align 4
  br label %6456

6422:                                             ; preds = %5835
  %6423 = landingpad { ptr, i32 }
          cleanup
  %6424 = extractvalue { ptr, i32 } %6423, 0
  store ptr %6424, ptr %8, align 8
  %6425 = extractvalue { ptr, i32 } %6423, 1
  store i32 %6425, ptr %9, align 4
  br label %6455

6426:                                             ; preds = %5836
  %6427 = landingpad { ptr, i32 }
          cleanup
  %6428 = extractvalue { ptr, i32 } %6427, 0
  store ptr %6428, ptr %8, align 8
  %6429 = extractvalue { ptr, i32 } %6427, 1
  store i32 %6429, ptr %9, align 4
  br label %6454

6430:                                             ; preds = %5837
  %6431 = landingpad { ptr, i32 }
          cleanup
  %6432 = extractvalue { ptr, i32 } %6431, 0
  store ptr %6432, ptr %8, align 8
  %6433 = extractvalue { ptr, i32 } %6431, 1
  store i32 %6433, ptr %9, align 4
  br label %6453

6434:                                             ; preds = %5838
  %6435 = landingpad { ptr, i32 }
          cleanup
  %6436 = extractvalue { ptr, i32 } %6435, 0
  store ptr %6436, ptr %8, align 8
  %6437 = extractvalue { ptr, i32 } %6435, 1
  store i32 %6437, ptr %9, align 4
  br label %6452

6438:                                             ; preds = %5839
  %6439 = landingpad { ptr, i32 }
          cleanup
  %6440 = extractvalue { ptr, i32 } %6439, 0
  store ptr %6440, ptr %8, align 8
  %6441 = extractvalue { ptr, i32 } %6439, 1
  store i32 %6441, ptr %9, align 4
  br label %6451

6442:                                             ; preds = %5840
  %6443 = landingpad { ptr, i32 }
          cleanup
  %6444 = extractvalue { ptr, i32 } %6443, 0
  store ptr %6444, ptr %8, align 8
  %6445 = extractvalue { ptr, i32 } %6443, 1
  store i32 %6445, ptr %9, align 4
  br label %6450

6446:                                             ; preds = %5841
  %6447 = landingpad { ptr, i32 }
          cleanup
  %6448 = extractvalue { ptr, i32 } %6447, 0
  store ptr %6448, ptr %8, align 8
  %6449 = extractvalue { ptr, i32 } %6447, 1
  store i32 %6449, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %780) #9
  br label %6450

6450:                                             ; preds = %6446, %6442
  call void @llvm.lifetime.end.p0(i64 56, ptr %780) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %763) #9
  br label %6451

6451:                                             ; preds = %6450, %6438
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %778) #9
  br label %6452

6452:                                             ; preds = %6451, %6434
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %779) #9
  br label %6453

6453:                                             ; preds = %6452, %6430
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %764) #9
  br label %6454

6454:                                             ; preds = %6453, %6426
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %776) #9
  br label %6455

6455:                                             ; preds = %6454, %6422
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %777) #9
  br label %6456

6456:                                             ; preds = %6455, %6418
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %765) #9
  br label %6457

6457:                                             ; preds = %6456, %6414
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %774) #9
  br label %6458

6458:                                             ; preds = %6457, %6410
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %775) #9
  br label %6459

6459:                                             ; preds = %6458, %6406
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %766) #9
  br label %6460

6460:                                             ; preds = %6459, %6402
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %772) #9
  br label %6461

6461:                                             ; preds = %6460, %6398
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %773) #9
  br label %6462

6462:                                             ; preds = %6461, %6394
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %767) #9
  br label %6463

6463:                                             ; preds = %6462, %6390
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %770) #9
  br label %6464

6464:                                             ; preds = %6463, %6386
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %771) #9
  br label %6465

6465:                                             ; preds = %6464, %6382
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %768) #9
  br label %6466

6466:                                             ; preds = %6465, %6378
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %769) #9
  br label %6583

6467:                                             ; preds = %5842
  %6468 = landingpad { ptr, i32 }
          cleanup
  %6469 = extractvalue { ptr, i32 } %6468, 0
  store ptr %6469, ptr %8, align 8
  %6470 = extractvalue { ptr, i32 } %6468, 1
  store i32 %6470, ptr %9, align 4
  br label %6475

6471:                                             ; preds = %5843
  %6472 = landingpad { ptr, i32 }
          cleanup
  %6473 = extractvalue { ptr, i32 } %6472, 0
  store ptr %6473, ptr %8, align 8
  %6474 = extractvalue { ptr, i32 } %6472, 1
  store i32 %6474, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %782) #9
  br label %6475

6475:                                             ; preds = %6471, %6467
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %783) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %783) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %782) #9
  br label %6582

6476:                                             ; preds = %5844
  %6477 = landingpad { ptr, i32 }
          cleanup
  %6478 = extractvalue { ptr, i32 } %6477, 0
  store ptr %6478, ptr %8, align 8
  %6479 = extractvalue { ptr, i32 } %6477, 1
  store i32 %6479, ptr %9, align 4
  br label %6581

6480:                                             ; preds = %5845
  %6481 = landingpad { ptr, i32 }
          cleanup
  %6482 = extractvalue { ptr, i32 } %6481, 0
  store ptr %6482, ptr %8, align 8
  %6483 = extractvalue { ptr, i32 } %6481, 1
  store i32 %6483, ptr %9, align 4
  br label %6503

6484:                                             ; preds = %5846
  %6485 = landingpad { ptr, i32 }
          cleanup
  %6486 = extractvalue { ptr, i32 } %6485, 0
  store ptr %6486, ptr %8, align 8
  %6487 = extractvalue { ptr, i32 } %6485, 1
  store i32 %6487, ptr %9, align 4
  br label %6502

6488:                                             ; preds = %5847
  %6489 = landingpad { ptr, i32 }
          cleanup
  %6490 = extractvalue { ptr, i32 } %6489, 0
  store ptr %6490, ptr %8, align 8
  %6491 = extractvalue { ptr, i32 } %6489, 1
  store i32 %6491, ptr %9, align 4
  br label %6501

6492:                                             ; preds = %5848
  %6493 = landingpad { ptr, i32 }
          cleanup
  %6494 = extractvalue { ptr, i32 } %6493, 0
  store ptr %6494, ptr %8, align 8
  %6495 = extractvalue { ptr, i32 } %6493, 1
  store i32 %6495, ptr %9, align 4
  br label %6500

6496:                                             ; preds = %5849
  %6497 = landingpad { ptr, i32 }
          cleanup
  %6498 = extractvalue { ptr, i32 } %6497, 0
  store ptr %6498, ptr %8, align 8
  %6499 = extractvalue { ptr, i32 } %6497, 1
  store i32 %6499, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %789) #9
  br label %6500

6500:                                             ; preds = %6496, %6492
  call void @llvm.lifetime.end.p0(i64 56, ptr %789) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %785) #9
  br label %6501

6501:                                             ; preds = %6500, %6488
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %787) #9
  br label %6502

6502:                                             ; preds = %6501, %6484
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %788) #9
  br label %6503

6503:                                             ; preds = %6502, %6480
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %786) #9
  br label %6581

6504:                                             ; preds = %5850
  %6505 = landingpad { ptr, i32 }
          cleanup
  %6506 = extractvalue { ptr, i32 } %6505, 0
  store ptr %6506, ptr %8, align 8
  %6507 = extractvalue { ptr, i32 } %6505, 1
  store i32 %6507, ptr %9, align 4
  br label %6512

6508:                                             ; preds = %5851
  %6509 = landingpad { ptr, i32 }
          cleanup
  %6510 = extractvalue { ptr, i32 } %6509, 0
  store ptr %6510, ptr %8, align 8
  %6511 = extractvalue { ptr, i32 } %6509, 1
  store i32 %6511, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %791) #9
  br label %6512

6512:                                             ; preds = %6508, %6504
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %792) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %792) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %791) #9
  br label %6580

6513:                                             ; preds = %5852
  %6514 = landingpad { ptr, i32 }
          cleanup
  %6515 = extractvalue { ptr, i32 } %6514, 0
  store ptr %6515, ptr %8, align 8
  %6516 = extractvalue { ptr, i32 } %6514, 1
  store i32 %6516, ptr %9, align 4
  br label %6551

6517:                                             ; preds = %5853
  %6518 = landingpad { ptr, i32 }
          cleanup
  %6519 = extractvalue { ptr, i32 } %6518, 0
  store ptr %6519, ptr %8, align 8
  %6520 = extractvalue { ptr, i32 } %6518, 1
  store i32 %6520, ptr %9, align 4
  br label %6550

6521:                                             ; preds = %5854
  %6522 = landingpad { ptr, i32 }
          cleanup
  %6523 = extractvalue { ptr, i32 } %6522, 0
  store ptr %6523, ptr %8, align 8
  %6524 = extractvalue { ptr, i32 } %6522, 1
  store i32 %6524, ptr %9, align 4
  br label %6549

6525:                                             ; preds = %5855
  %6526 = landingpad { ptr, i32 }
          cleanup
  %6527 = extractvalue { ptr, i32 } %6526, 0
  store ptr %6527, ptr %8, align 8
  %6528 = extractvalue { ptr, i32 } %6526, 1
  store i32 %6528, ptr %9, align 4
  br label %6548

6529:                                             ; preds = %5856
  %6530 = landingpad { ptr, i32 }
          cleanup
  %6531 = extractvalue { ptr, i32 } %6530, 0
  store ptr %6531, ptr %8, align 8
  %6532 = extractvalue { ptr, i32 } %6530, 1
  store i32 %6532, ptr %9, align 4
  br label %6547

6533:                                             ; preds = %5857
  %6534 = landingpad { ptr, i32 }
          cleanup
  %6535 = extractvalue { ptr, i32 } %6534, 0
  store ptr %6535, ptr %8, align 8
  %6536 = extractvalue { ptr, i32 } %6534, 1
  store i32 %6536, ptr %9, align 4
  br label %6546

6537:                                             ; preds = %5858
  %6538 = landingpad { ptr, i32 }
          cleanup
  %6539 = extractvalue { ptr, i32 } %6538, 0
  store ptr %6539, ptr %8, align 8
  %6540 = extractvalue { ptr, i32 } %6538, 1
  store i32 %6540, ptr %9, align 4
  br label %6545

6541:                                             ; preds = %5859
  %6542 = landingpad { ptr, i32 }
          cleanup
  %6543 = extractvalue { ptr, i32 } %6542, 0
  store ptr %6543, ptr %8, align 8
  %6544 = extractvalue { ptr, i32 } %6542, 1
  store i32 %6544, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %800) #9
  br label %6545

6545:                                             ; preds = %6541, %6537
  call void @llvm.lifetime.end.p0(i64 56, ptr %800) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %794) #9
  br label %6546

6546:                                             ; preds = %6545, %6533
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %795) #9
  br label %6547

6547:                                             ; preds = %6546, %6529
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %799) #9
  br label %6548

6548:                                             ; preds = %6547, %6525
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %798) #9
  br label %6549

6549:                                             ; preds = %6548, %6521
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %796) #9
  br label %6550

6550:                                             ; preds = %6549, %6517
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %797) #9
  br label %6551

6551:                                             ; preds = %6550, %6513
  call void @llvm.lifetime.end.p0(i64 56, ptr %797) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %794) #9
  br label %6579

6552:                                             ; preds = %5860
  %6553 = landingpad { ptr, i32 }
          cleanup
  %6554 = extractvalue { ptr, i32 } %6553, 0
  store ptr %6554, ptr %8, align 8
  %6555 = extractvalue { ptr, i32 } %6553, 1
  store i32 %6555, ptr %9, align 4
  br label %6579

6556:                                             ; preds = %5861
  %6557 = landingpad { ptr, i32 }
          cleanup
  %6558 = extractvalue { ptr, i32 } %6557, 0
  store ptr %6558, ptr %8, align 8
  %6559 = extractvalue { ptr, i32 } %6557, 1
  store i32 %6559, ptr %9, align 4
  br label %6569

6560:                                             ; preds = %5862
  %6561 = landingpad { ptr, i32 }
          cleanup
  %6562 = extractvalue { ptr, i32 } %6561, 0
  store ptr %6562, ptr %8, align 8
  %6563 = extractvalue { ptr, i32 } %6561, 1
  store i32 %6563, ptr %9, align 4
  br label %6568

6564:                                             ; preds = %5863
  %6565 = landingpad { ptr, i32 }
          cleanup
  %6566 = extractvalue { ptr, i32 } %6565, 0
  store ptr %6566, ptr %8, align 8
  %6567 = extractvalue { ptr, i32 } %6565, 1
  store i32 %6567, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %803) #9
  br label %6568

6568:                                             ; preds = %6564, %6560
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %802) #9
  br label %6569

6569:                                             ; preds = %6568, %6556
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %801) #9
  br label %6579

6570:                                             ; preds = %5865
  %6571 = landingpad { ptr, i32 }
          cleanup
  %6572 = extractvalue { ptr, i32 } %6571, 0
  store ptr %6572, ptr %8, align 8
  %6573 = extractvalue { ptr, i32 } %6571, 1
  store i32 %6573, ptr %9, align 4
  br label %6578

6574:                                             ; preds = %5866
  %6575 = landingpad { ptr, i32 }
          cleanup
  %6576 = extractvalue { ptr, i32 } %6575, 0
  store ptr %6576, ptr %8, align 8
  %6577 = extractvalue { ptr, i32 } %6575, 1
  store i32 %6577, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %805) #9
  br label %6578

6578:                                             ; preds = %6574, %6570
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %806) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %805) #9
  br label %6579

6579:                                             ; preds = %6578, %6569, %6552, %6551
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %790) #9
  br label %6580

6580:                                             ; preds = %6579, %6512
  call void @llvm.lifetime.end.p0(i64 32, ptr %790) #9
  br label %6581

6581:                                             ; preds = %6580, %6503, %6476
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %781) #9
  br label %6582

6582:                                             ; preds = %6581, %6475
  call void @llvm.lifetime.end.p0(i64 32, ptr %781) #9
  br label %6583

6583:                                             ; preds = %6582, %6466, %6374
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %761) #9
  br label %6584

6584:                                             ; preds = %6583, %6370
  call void @llvm.lifetime.end.p0(i64 32, ptr %761) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %758) #9
  br label %6585

6585:                                             ; preds = %6584, %6369
  call void @llvm.lifetime.end.p0(i64 32, ptr %758) #9
  br label %9780

6586:                                             ; preds = %5867
  %6587 = landingpad { ptr, i32 }
          cleanup
  %6588 = extractvalue { ptr, i32 } %6587, 0
  store ptr %6588, ptr %8, align 8
  %6589 = extractvalue { ptr, i32 } %6587, 1
  store i32 %6589, ptr %9, align 4
  br label %6594

6590:                                             ; preds = %5868
  %6591 = landingpad { ptr, i32 }
          cleanup
  %6592 = extractvalue { ptr, i32 } %6591, 0
  store ptr %6592, ptr %8, align 8
  %6593 = extractvalue { ptr, i32 } %6591, 1
  store i32 %6593, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %808) #9
  br label %6594

6594:                                             ; preds = %6590, %6586
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %809) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %809) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %808) #9
  br label %6733

6595:                                             ; preds = %5869
  %6596 = landingpad { ptr, i32 }
          cleanup
  %6597 = extractvalue { ptr, i32 } %6596, 0
  store ptr %6597, ptr %8, align 8
  %6598 = extractvalue { ptr, i32 } %6596, 1
  store i32 %6598, ptr %9, align 4
  br label %6603

6599:                                             ; preds = %5870
  %6600 = landingpad { ptr, i32 }
          cleanup
  %6601 = extractvalue { ptr, i32 } %6600, 0
  store ptr %6601, ptr %8, align 8
  %6602 = extractvalue { ptr, i32 } %6600, 1
  store i32 %6602, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %811) #9
  br label %6603

6603:                                             ; preds = %6599, %6595
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %812) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %812) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %811) #9
  br label %6732

6604:                                             ; preds = %5874, %5871
  %6605 = landingpad { ptr, i32 }
          cleanup
  %6606 = extractvalue { ptr, i32 } %6605, 0
  store ptr %6606, ptr %8, align 8
  %6607 = extractvalue { ptr, i32 } %6605, 1
  store i32 %6607, ptr %9, align 4
  br label %6731

6608:                                             ; preds = %5872
  %6609 = landingpad { ptr, i32 }
          cleanup
  %6610 = extractvalue { ptr, i32 } %6609, 0
  store ptr %6610, ptr %8, align 8
  %6611 = extractvalue { ptr, i32 } %6609, 1
  store i32 %6611, ptr %9, align 4
  br label %6616

6612:                                             ; preds = %5873
  %6613 = landingpad { ptr, i32 }
          cleanup
  %6614 = extractvalue { ptr, i32 } %6613, 0
  store ptr %6614, ptr %8, align 8
  %6615 = extractvalue { ptr, i32 } %6613, 1
  store i32 %6615, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %815) #9
  br label %6616

6616:                                             ; preds = %6612, %6608
  call void @llvm.lifetime.end.p0(i64 56, ptr %815) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %814) #9
  br label %6731

6617:                                             ; preds = %5875
  %6618 = landingpad { ptr, i32 }
          cleanup
  %6619 = extractvalue { ptr, i32 } %6618, 0
  store ptr %6619, ptr %8, align 8
  %6620 = extractvalue { ptr, i32 } %6618, 1
  store i32 %6620, ptr %9, align 4
  br label %6625

6621:                                             ; preds = %5876
  %6622 = landingpad { ptr, i32 }
          cleanup
  %6623 = extractvalue { ptr, i32 } %6622, 0
  store ptr %6623, ptr %8, align 8
  %6624 = extractvalue { ptr, i32 } %6622, 1
  store i32 %6624, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %818) #9
  br label %6625

6625:                                             ; preds = %6621, %6617
  call void @llvm.lifetime.end.p0(i64 56, ptr %818) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %817) #9
  br label %6731

6626:                                             ; preds = %5877
  %6627 = landingpad { ptr, i32 }
          cleanup
  %6628 = extractvalue { ptr, i32 } %6627, 0
  store ptr %6628, ptr %8, align 8
  %6629 = extractvalue { ptr, i32 } %6627, 1
  store i32 %6629, ptr %9, align 4
  br label %6730

6630:                                             ; preds = %5878
  %6631 = landingpad { ptr, i32 }
          cleanup
  %6632 = extractvalue { ptr, i32 } %6631, 0
  store ptr %6632, ptr %8, align 8
  %6633 = extractvalue { ptr, i32 } %6631, 1
  store i32 %6633, ptr %9, align 4
  br label %6638

6634:                                             ; preds = %5879
  %6635 = landingpad { ptr, i32 }
          cleanup
  %6636 = extractvalue { ptr, i32 } %6635, 0
  store ptr %6636, ptr %8, align 8
  %6637 = extractvalue { ptr, i32 } %6635, 1
  store i32 %6637, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %821) #9
  br label %6638

6638:                                             ; preds = %6634, %6630
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %820) #9
  br label %6730

6639:                                             ; preds = %5891, %5880
  %6640 = landingpad { ptr, i32 }
          cleanup
  %6641 = extractvalue { ptr, i32 } %6640, 0
  store ptr %6641, ptr %8, align 8
  %6642 = extractvalue { ptr, i32 } %6640, 1
  store i32 %6642, ptr %9, align 4
  br label %6729

6643:                                             ; preds = %5881
  %6644 = landingpad { ptr, i32 }
          cleanup
  %6645 = extractvalue { ptr, i32 } %6644, 0
  store ptr %6645, ptr %8, align 8
  %6646 = extractvalue { ptr, i32 } %6644, 1
  store i32 %6646, ptr %9, align 4
  br label %6651

6647:                                             ; preds = %5882
  %6648 = landingpad { ptr, i32 }
          cleanup
  %6649 = extractvalue { ptr, i32 } %6648, 0
  store ptr %6649, ptr %8, align 8
  %6650 = extractvalue { ptr, i32 } %6648, 1
  store i32 %6650, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %824) #9
  br label %6651

6651:                                             ; preds = %6647, %6643
  call void @llvm.lifetime.end.p0(i64 56, ptr %824) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %823) #9
  br label %6729

6652:                                             ; preds = %5883
  %6653 = landingpad { ptr, i32 }
          cleanup
  %6654 = extractvalue { ptr, i32 } %6653, 0
  store ptr %6654, ptr %8, align 8
  %6655 = extractvalue { ptr, i32 } %6653, 1
  store i32 %6655, ptr %9, align 4
  br label %6690

6656:                                             ; preds = %5884
  %6657 = landingpad { ptr, i32 }
          cleanup
  %6658 = extractvalue { ptr, i32 } %6657, 0
  store ptr %6658, ptr %8, align 8
  %6659 = extractvalue { ptr, i32 } %6657, 1
  store i32 %6659, ptr %9, align 4
  br label %6689

6660:                                             ; preds = %5885
  %6661 = landingpad { ptr, i32 }
          cleanup
  %6662 = extractvalue { ptr, i32 } %6661, 0
  store ptr %6662, ptr %8, align 8
  %6663 = extractvalue { ptr, i32 } %6661, 1
  store i32 %6663, ptr %9, align 4
  br label %6688

6664:                                             ; preds = %5886
  %6665 = landingpad { ptr, i32 }
          cleanup
  %6666 = extractvalue { ptr, i32 } %6665, 0
  store ptr %6666, ptr %8, align 8
  %6667 = extractvalue { ptr, i32 } %6665, 1
  store i32 %6667, ptr %9, align 4
  br label %6687

6668:                                             ; preds = %5887
  %6669 = landingpad { ptr, i32 }
          cleanup
  %6670 = extractvalue { ptr, i32 } %6669, 0
  store ptr %6670, ptr %8, align 8
  %6671 = extractvalue { ptr, i32 } %6669, 1
  store i32 %6671, ptr %9, align 4
  br label %6686

6672:                                             ; preds = %5888
  %6673 = landingpad { ptr, i32 }
          cleanup
  %6674 = extractvalue { ptr, i32 } %6673, 0
  store ptr %6674, ptr %8, align 8
  %6675 = extractvalue { ptr, i32 } %6673, 1
  store i32 %6675, ptr %9, align 4
  br label %6685

6676:                                             ; preds = %5889
  %6677 = landingpad { ptr, i32 }
          cleanup
  %6678 = extractvalue { ptr, i32 } %6677, 0
  store ptr %6678, ptr %8, align 8
  %6679 = extractvalue { ptr, i32 } %6677, 1
  store i32 %6679, ptr %9, align 4
  br label %6684

6680:                                             ; preds = %5890
  %6681 = landingpad { ptr, i32 }
          cleanup
  %6682 = extractvalue { ptr, i32 } %6681, 0
  store ptr %6682, ptr %8, align 8
  %6683 = extractvalue { ptr, i32 } %6681, 1
  store i32 %6683, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %832) #9
  br label %6684

6684:                                             ; preds = %6680, %6676
  call void @llvm.lifetime.end.p0(i64 56, ptr %832) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %826) #9
  br label %6685

6685:                                             ; preds = %6684, %6672
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %828) #9
  br label %6686

6686:                                             ; preds = %6685, %6668
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %829) #9
  br label %6687

6687:                                             ; preds = %6686, %6664
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %831) #9
  br label %6688

6688:                                             ; preds = %6687, %6660
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %830) #9
  br label %6689

6689:                                             ; preds = %6688, %6656
  call void @llvm.lifetime.end.p0(i64 8, ptr %828) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %827) #9
  br label %6690

6690:                                             ; preds = %6689, %6652
  call void @llvm.lifetime.end.p0(i64 56, ptr %826) #9
  br label %6729

6691:                                             ; preds = %5892
  %6692 = landingpad { ptr, i32 }
          cleanup
  %6693 = extractvalue { ptr, i32 } %6692, 0
  store ptr %6693, ptr %8, align 8
  %6694 = extractvalue { ptr, i32 } %6692, 1
  store i32 %6694, ptr %9, align 4
  br label %6719

6695:                                             ; preds = %5893
  %6696 = landingpad { ptr, i32 }
          cleanup
  %6697 = extractvalue { ptr, i32 } %6696, 0
  store ptr %6697, ptr %8, align 8
  %6698 = extractvalue { ptr, i32 } %6696, 1
  store i32 %6698, ptr %9, align 4
  br label %6718

6699:                                             ; preds = %5896, %5894
  %6700 = landingpad { ptr, i32 }
          cleanup
  %6701 = extractvalue { ptr, i32 } %6700, 0
  store ptr %6701, ptr %8, align 8
  %6702 = extractvalue { ptr, i32 } %6700, 1
  store i32 %6702, ptr %9, align 4
  br label %6717

6703:                                             ; preds = %5897
  %6704 = landingpad { ptr, i32 }
          cleanup
  %6705 = extractvalue { ptr, i32 } %6704, 0
  store ptr %6705, ptr %8, align 8
  %6706 = extractvalue { ptr, i32 } %6704, 1
  store i32 %6706, ptr %9, align 4
  br label %6716

6707:                                             ; preds = %5898
  %6708 = landingpad { ptr, i32 }
          cleanup
  %6709 = extractvalue { ptr, i32 } %6708, 0
  store ptr %6709, ptr %8, align 8
  %6710 = extractvalue { ptr, i32 } %6708, 1
  store i32 %6710, ptr %9, align 4
  br label %6715

6711:                                             ; preds = %5899
  %6712 = landingpad { ptr, i32 }
          cleanup
  %6713 = extractvalue { ptr, i32 } %6712, 0
  store ptr %6713, ptr %8, align 8
  %6714 = extractvalue { ptr, i32 } %6712, 1
  store i32 %6714, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %838) #9
  br label %6715

6715:                                             ; preds = %6711, %6707
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %837) #9
  br label %6716

6716:                                             ; preds = %6715, %6703
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %836) #9
  br label %6717

6717:                                             ; preds = %6716, %6699
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %835) #9
  br label %6718

6718:                                             ; preds = %6717, %6695
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %834) #9
  br label %6719

6719:                                             ; preds = %6718, %6691
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %833) #9
  br label %6729

6720:                                             ; preds = %5901
  %6721 = landingpad { ptr, i32 }
          cleanup
  %6722 = extractvalue { ptr, i32 } %6721, 0
  store ptr %6722, ptr %8, align 8
  %6723 = extractvalue { ptr, i32 } %6721, 1
  store i32 %6723, ptr %9, align 4
  br label %6728

6724:                                             ; preds = %5902
  %6725 = landingpad { ptr, i32 }
          cleanup
  %6726 = extractvalue { ptr, i32 } %6725, 0
  store ptr %6726, ptr %8, align 8
  %6727 = extractvalue { ptr, i32 } %6725, 1
  store i32 %6727, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %840) #9
  br label %6728

6728:                                             ; preds = %6724, %6720
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %841) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %840) #9
  br label %6729

6729:                                             ; preds = %6728, %6719, %6690, %6651, %6639
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %819) #9
  br label %6730

6730:                                             ; preds = %6729, %6638, %6626
  call void @llvm.lifetime.end.p0(i64 200, ptr %819) #9
  br label %6731

6731:                                             ; preds = %6730, %6625, %6616, %6604
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %810) #9
  br label %6732

6732:                                             ; preds = %6731, %6603
  call void @llvm.lifetime.end.p0(i64 32, ptr %810) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %807) #9
  br label %6733

6733:                                             ; preds = %6732, %6594
  call void @llvm.lifetime.end.p0(i64 32, ptr %807) #9
  br label %9780

6734:                                             ; preds = %5903
  %6735 = landingpad { ptr, i32 }
          cleanup
  %6736 = extractvalue { ptr, i32 } %6735, 0
  store ptr %6736, ptr %8, align 8
  %6737 = extractvalue { ptr, i32 } %6735, 1
  store i32 %6737, ptr %9, align 4
  br label %6742

6738:                                             ; preds = %5904
  %6739 = landingpad { ptr, i32 }
          cleanup
  %6740 = extractvalue { ptr, i32 } %6739, 0
  store ptr %6740, ptr %8, align 8
  %6741 = extractvalue { ptr, i32 } %6739, 1
  store i32 %6741, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %843) #9
  br label %6742

6742:                                             ; preds = %6738, %6734
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %844) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %844) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %843) #9
  br label %6932

6743:                                             ; preds = %5905
  %6744 = landingpad { ptr, i32 }
          cleanup
  %6745 = extractvalue { ptr, i32 } %6744, 0
  store ptr %6745, ptr %8, align 8
  %6746 = extractvalue { ptr, i32 } %6744, 1
  store i32 %6746, ptr %9, align 4
  br label %6751

6747:                                             ; preds = %5906
  %6748 = landingpad { ptr, i32 }
          cleanup
  %6749 = extractvalue { ptr, i32 } %6748, 0
  store ptr %6749, ptr %8, align 8
  %6750 = extractvalue { ptr, i32 } %6748, 1
  store i32 %6750, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %846) #9
  br label %6751

6751:                                             ; preds = %6747, %6743
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %847) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %847) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %846) #9
  br label %6931

6752:                                             ; preds = %5907
  %6753 = landingpad { ptr, i32 }
          cleanup
  %6754 = extractvalue { ptr, i32 } %6753, 0
  store ptr %6754, ptr %8, align 8
  %6755 = extractvalue { ptr, i32 } %6753, 1
  store i32 %6755, ptr %9, align 4
  br label %6760

6756:                                             ; preds = %5908
  %6757 = landingpad { ptr, i32 }
          cleanup
  %6758 = extractvalue { ptr, i32 } %6757, 0
  store ptr %6758, ptr %8, align 8
  %6759 = extractvalue { ptr, i32 } %6757, 1
  store i32 %6759, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %849) #9
  br label %6760

6760:                                             ; preds = %6756, %6752
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %850) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %850) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %849) #9
  br label %6930

6761:                                             ; preds = %5909
  %6762 = landingpad { ptr, i32 }
          cleanup
  %6763 = extractvalue { ptr, i32 } %6762, 0
  store ptr %6763, ptr %8, align 8
  %6764 = extractvalue { ptr, i32 } %6762, 1
  store i32 %6764, ptr %9, align 4
  br label %6929

6765:                                             ; preds = %5910
  %6766 = landingpad { ptr, i32 }
          cleanup
  %6767 = extractvalue { ptr, i32 } %6766, 0
  store ptr %6767, ptr %8, align 8
  %6768 = extractvalue { ptr, i32 } %6766, 1
  store i32 %6768, ptr %9, align 4
  br label %6783

6769:                                             ; preds = %5911
  %6770 = landingpad { ptr, i32 }
          cleanup
  %6771 = extractvalue { ptr, i32 } %6770, 0
  store ptr %6771, ptr %8, align 8
  %6772 = extractvalue { ptr, i32 } %6770, 1
  store i32 %6772, ptr %9, align 4
  br label %6782

6773:                                             ; preds = %5912
  %6774 = landingpad { ptr, i32 }
          cleanup
  %6775 = extractvalue { ptr, i32 } %6774, 0
  store ptr %6775, ptr %8, align 8
  %6776 = extractvalue { ptr, i32 } %6774, 1
  store i32 %6776, ptr %9, align 4
  br label %6781

6777:                                             ; preds = %5913
  %6778 = landingpad { ptr, i32 }
          cleanup
  %6779 = extractvalue { ptr, i32 } %6778, 0
  store ptr %6779, ptr %8, align 8
  %6780 = extractvalue { ptr, i32 } %6778, 1
  store i32 %6780, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %855) #9
  br label %6781

6781:                                             ; preds = %6777, %6773
  call void @llvm.lifetime.end.p0(i64 56, ptr %855) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %852) #9
  br label %6782

6782:                                             ; preds = %6781, %6769
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %854) #9
  br label %6783

6783:                                             ; preds = %6782, %6765
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %853) #9
  br label %6929

6784:                                             ; preds = %5914
  %6785 = landingpad { ptr, i32 }
          cleanup
  %6786 = extractvalue { ptr, i32 } %6785, 0
  store ptr %6786, ptr %8, align 8
  %6787 = extractvalue { ptr, i32 } %6785, 1
  store i32 %6787, ptr %9, align 4
  br label %6928

6788:                                             ; preds = %5915
  %6789 = landingpad { ptr, i32 }
          cleanup
  %6790 = extractvalue { ptr, i32 } %6789, 0
  store ptr %6790, ptr %8, align 8
  %6791 = extractvalue { ptr, i32 } %6789, 1
  store i32 %6791, ptr %9, align 4
  br label %6796

6792:                                             ; preds = %5916
  %6793 = landingpad { ptr, i32 }
          cleanup
  %6794 = extractvalue { ptr, i32 } %6793, 0
  store ptr %6794, ptr %8, align 8
  %6795 = extractvalue { ptr, i32 } %6793, 1
  store i32 %6795, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %860) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %859) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %858) #9
  br label %6796

6796:                                             ; preds = %6792, %6788
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %857) #9
  br label %6928

6797:                                             ; preds = %5917
  %6798 = landingpad { ptr, i32 }
          cleanup
  %6799 = extractvalue { ptr, i32 } %6798, 0
  store ptr %6799, ptr %8, align 8
  %6800 = extractvalue { ptr, i32 } %6798, 1
  store i32 %6800, ptr %9, align 4
  br label %6840

6801:                                             ; preds = %5918
  %6802 = landingpad { ptr, i32 }
          cleanup
  %6803 = extractvalue { ptr, i32 } %6802, 0
  store ptr %6803, ptr %8, align 8
  %6804 = extractvalue { ptr, i32 } %6802, 1
  store i32 %6804, ptr %9, align 4
  br label %6839

6805:                                             ; preds = %5920
  %6806 = landingpad { ptr, i32 }
          cleanup
  %6807 = extractvalue { ptr, i32 } %6806, 0
  store ptr %6807, ptr %8, align 8
  %6808 = extractvalue { ptr, i32 } %6806, 1
  store i32 %6808, ptr %9, align 4
  br label %6838

6809:                                             ; preds = %5921
  %6810 = landingpad { ptr, i32 }
          cleanup
  %6811 = extractvalue { ptr, i32 } %6810, 0
  store ptr %6811, ptr %8, align 8
  %6812 = extractvalue { ptr, i32 } %6810, 1
  store i32 %6812, ptr %9, align 4
  br label %6837

6813:                                             ; preds = %5922
  %6814 = landingpad { ptr, i32 }
          cleanup
  %6815 = extractvalue { ptr, i32 } %6814, 0
  store ptr %6815, ptr %8, align 8
  %6816 = extractvalue { ptr, i32 } %6814, 1
  store i32 %6816, ptr %9, align 4
  br label %6836

6817:                                             ; preds = %5924
  %6818 = landingpad { ptr, i32 }
          cleanup
  %6819 = extractvalue { ptr, i32 } %6818, 0
  store ptr %6819, ptr %8, align 8
  %6820 = extractvalue { ptr, i32 } %6818, 1
  store i32 %6820, ptr %9, align 4
  br label %6835

6821:                                             ; preds = %5925
  %6822 = landingpad { ptr, i32 }
          cleanup
  %6823 = extractvalue { ptr, i32 } %6822, 0
  store ptr %6823, ptr %8, align 8
  %6824 = extractvalue { ptr, i32 } %6822, 1
  store i32 %6824, ptr %9, align 4
  br label %6834

6825:                                             ; preds = %5926
  %6826 = landingpad { ptr, i32 }
          cleanup
  %6827 = extractvalue { ptr, i32 } %6826, 0
  store ptr %6827, ptr %8, align 8
  %6828 = extractvalue { ptr, i32 } %6826, 1
  store i32 %6828, ptr %9, align 4
  br label %6833

6829:                                             ; preds = %5927
  %6830 = landingpad { ptr, i32 }
          cleanup
  %6831 = extractvalue { ptr, i32 } %6830, 0
  store ptr %6831, ptr %8, align 8
  %6832 = extractvalue { ptr, i32 } %6830, 1
  store i32 %6832, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %869) #9
  br label %6833

6833:                                             ; preds = %6829, %6825
  call void @llvm.lifetime.end.p0(i64 56, ptr %869) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %862) #9
  br label %6834

6834:                                             ; preds = %6833, %6821
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %866) #9
  br label %6835

6835:                                             ; preds = %6834, %6817
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %868) #9
  br label %6836

6836:                                             ; preds = %6835, %6813
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %867) #9
  br label %6837

6837:                                             ; preds = %6836, %6809
  call void @llvm.lifetime.end.p0(i64 8, ptr %866) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %863) #9
  br label %6838

6838:                                             ; preds = %6837, %6805
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %865) #9
  br label %6839

6839:                                             ; preds = %6838, %6801
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %864) #9
  br label %6840

6840:                                             ; preds = %6839, %6797
  call void @llvm.lifetime.end.p0(i64 56, ptr %862) #9
  br label %6927

6841:                                             ; preds = %5928
  %6842 = landingpad { ptr, i32 }
          cleanup
  %6843 = extractvalue { ptr, i32 } %6842, 0
  store ptr %6843, ptr %8, align 8
  %6844 = extractvalue { ptr, i32 } %6842, 1
  store i32 %6844, ptr %9, align 4
  br label %6884

6845:                                             ; preds = %5929
  %6846 = landingpad { ptr, i32 }
          cleanup
  %6847 = extractvalue { ptr, i32 } %6846, 0
  store ptr %6847, ptr %8, align 8
  %6848 = extractvalue { ptr, i32 } %6846, 1
  store i32 %6848, ptr %9, align 4
  br label %6883

6849:                                             ; preds = %5931
  %6850 = landingpad { ptr, i32 }
          cleanup
  %6851 = extractvalue { ptr, i32 } %6850, 0
  store ptr %6851, ptr %8, align 8
  %6852 = extractvalue { ptr, i32 } %6850, 1
  store i32 %6852, ptr %9, align 4
  br label %6882

6853:                                             ; preds = %5932
  %6854 = landingpad { ptr, i32 }
          cleanup
  %6855 = extractvalue { ptr, i32 } %6854, 0
  store ptr %6855, ptr %8, align 8
  %6856 = extractvalue { ptr, i32 } %6854, 1
  store i32 %6856, ptr %9, align 4
  br label %6881

6857:                                             ; preds = %5933
  %6858 = landingpad { ptr, i32 }
          cleanup
  %6859 = extractvalue { ptr, i32 } %6858, 0
  store ptr %6859, ptr %8, align 8
  %6860 = extractvalue { ptr, i32 } %6858, 1
  store i32 %6860, ptr %9, align 4
  br label %6880

6861:                                             ; preds = %5935
  %6862 = landingpad { ptr, i32 }
          cleanup
  %6863 = extractvalue { ptr, i32 } %6862, 0
  store ptr %6863, ptr %8, align 8
  %6864 = extractvalue { ptr, i32 } %6862, 1
  store i32 %6864, ptr %9, align 4
  br label %6879

6865:                                             ; preds = %5936
  %6866 = landingpad { ptr, i32 }
          cleanup
  %6867 = extractvalue { ptr, i32 } %6866, 0
  store ptr %6867, ptr %8, align 8
  %6868 = extractvalue { ptr, i32 } %6866, 1
  store i32 %6868, ptr %9, align 4
  br label %6878

6869:                                             ; preds = %5937
  %6870 = landingpad { ptr, i32 }
          cleanup
  %6871 = extractvalue { ptr, i32 } %6870, 0
  store ptr %6871, ptr %8, align 8
  %6872 = extractvalue { ptr, i32 } %6870, 1
  store i32 %6872, ptr %9, align 4
  br label %6877

6873:                                             ; preds = %5938
  %6874 = landingpad { ptr, i32 }
          cleanup
  %6875 = extractvalue { ptr, i32 } %6874, 0
  store ptr %6875, ptr %8, align 8
  %6876 = extractvalue { ptr, i32 } %6874, 1
  store i32 %6876, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %878) #9
  br label %6877

6877:                                             ; preds = %6873, %6869
  call void @llvm.lifetime.end.p0(i64 56, ptr %878) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %871) #9
  br label %6878

6878:                                             ; preds = %6877, %6865
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %875) #9
  br label %6879

6879:                                             ; preds = %6878, %6861
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %877) #9
  br label %6880

6880:                                             ; preds = %6879, %6857
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %876) #9
  br label %6881

6881:                                             ; preds = %6880, %6853
  call void @llvm.lifetime.end.p0(i64 8, ptr %875) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %872) #9
  br label %6882

6882:                                             ; preds = %6881, %6849
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %874) #9
  br label %6883

6883:                                             ; preds = %6882, %6845
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %873) #9
  br label %6884

6884:                                             ; preds = %6883, %6841
  call void @llvm.lifetime.end.p0(i64 56, ptr %871) #9
  br label %6927

6885:                                             ; preds = %5939
  %6886 = landingpad { ptr, i32 }
          cleanup
  %6887 = extractvalue { ptr, i32 } %6886, 0
  store ptr %6887, ptr %8, align 8
  %6888 = extractvalue { ptr, i32 } %6886, 1
  store i32 %6888, ptr %9, align 4
  br label %6927

6889:                                             ; preds = %5940
  %6890 = landingpad { ptr, i32 }
          cleanup
  %6891 = extractvalue { ptr, i32 } %6890, 0
  store ptr %6891, ptr %8, align 8
  %6892 = extractvalue { ptr, i32 } %6890, 1
  store i32 %6892, ptr %9, align 4
  br label %6917

6893:                                             ; preds = %5941
  %6894 = landingpad { ptr, i32 }
          cleanup
  %6895 = extractvalue { ptr, i32 } %6894, 0
  store ptr %6895, ptr %8, align 8
  %6896 = extractvalue { ptr, i32 } %6894, 1
  store i32 %6896, ptr %9, align 4
  br label %6916

6897:                                             ; preds = %5944, %5942
  %6898 = landingpad { ptr, i32 }
          cleanup
  %6899 = extractvalue { ptr, i32 } %6898, 0
  store ptr %6899, ptr %8, align 8
  %6900 = extractvalue { ptr, i32 } %6898, 1
  store i32 %6900, ptr %9, align 4
  br label %6915

6901:                                             ; preds = %5945
  %6902 = landingpad { ptr, i32 }
          cleanup
  %6903 = extractvalue { ptr, i32 } %6902, 0
  store ptr %6903, ptr %8, align 8
  %6904 = extractvalue { ptr, i32 } %6902, 1
  store i32 %6904, ptr %9, align 4
  br label %6914

6905:                                             ; preds = %5946
  %6906 = landingpad { ptr, i32 }
          cleanup
  %6907 = extractvalue { ptr, i32 } %6906, 0
  store ptr %6907, ptr %8, align 8
  %6908 = extractvalue { ptr, i32 } %6906, 1
  store i32 %6908, ptr %9, align 4
  br label %6913

6909:                                             ; preds = %5947
  %6910 = landingpad { ptr, i32 }
          cleanup
  %6911 = extractvalue { ptr, i32 } %6910, 0
  store ptr %6911, ptr %8, align 8
  %6912 = extractvalue { ptr, i32 } %6910, 1
  store i32 %6912, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %884) #9
  br label %6913

6913:                                             ; preds = %6909, %6905
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %883) #9
  br label %6914

6914:                                             ; preds = %6913, %6901
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %882) #9
  br label %6915

6915:                                             ; preds = %6914, %6897
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %881) #9
  br label %6916

6916:                                             ; preds = %6915, %6893
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %880) #9
  br label %6917

6917:                                             ; preds = %6916, %6889
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %879) #9
  br label %6927

6918:                                             ; preds = %5949
  %6919 = landingpad { ptr, i32 }
          cleanup
  %6920 = extractvalue { ptr, i32 } %6919, 0
  store ptr %6920, ptr %8, align 8
  %6921 = extractvalue { ptr, i32 } %6919, 1
  store i32 %6921, ptr %9, align 4
  br label %6926

6922:                                             ; preds = %5950
  %6923 = landingpad { ptr, i32 }
          cleanup
  %6924 = extractvalue { ptr, i32 } %6923, 0
  store ptr %6924, ptr %8, align 8
  %6925 = extractvalue { ptr, i32 } %6923, 1
  store i32 %6925, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %886) #9
  br label %6926

6926:                                             ; preds = %6922, %6918
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %887) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %886) #9
  br label %6927

6927:                                             ; preds = %6926, %6917, %6885, %6884, %6840
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %856) #9
  br label %6928

6928:                                             ; preds = %6927, %6796, %6784
  call void @llvm.lifetime.end.p0(i64 200, ptr %856) #9
  br label %6929

6929:                                             ; preds = %6928, %6783, %6761
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %848) #9
  br label %6930

6930:                                             ; preds = %6929, %6760
  call void @llvm.lifetime.end.p0(i64 32, ptr %848) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %845) #9
  br label %6931

6931:                                             ; preds = %6930, %6751
  call void @llvm.lifetime.end.p0(i64 32, ptr %845) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %842) #9
  br label %6932

6932:                                             ; preds = %6931, %6742
  call void @llvm.lifetime.end.p0(i64 32, ptr %842) #9
  br label %9780

6933:                                             ; preds = %5951
  %6934 = landingpad { ptr, i32 }
          cleanup
  %6935 = extractvalue { ptr, i32 } %6934, 0
  store ptr %6935, ptr %8, align 8
  %6936 = extractvalue { ptr, i32 } %6934, 1
  store i32 %6936, ptr %9, align 4
  br label %6941

6937:                                             ; preds = %5952
  %6938 = landingpad { ptr, i32 }
          cleanup
  %6939 = extractvalue { ptr, i32 } %6938, 0
  store ptr %6939, ptr %8, align 8
  %6940 = extractvalue { ptr, i32 } %6938, 1
  store i32 %6940, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %889) #9
  br label %6941

6941:                                             ; preds = %6937, %6933
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %890) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %890) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %889) #9
  br label %7192

6942:                                             ; preds = %5953
  %6943 = landingpad { ptr, i32 }
          cleanup
  %6944 = extractvalue { ptr, i32 } %6943, 0
  store ptr %6944, ptr %8, align 8
  %6945 = extractvalue { ptr, i32 } %6943, 1
  store i32 %6945, ptr %9, align 4
  br label %6950

6946:                                             ; preds = %5954
  %6947 = landingpad { ptr, i32 }
          cleanup
  %6948 = extractvalue { ptr, i32 } %6947, 0
  store ptr %6948, ptr %8, align 8
  %6949 = extractvalue { ptr, i32 } %6947, 1
  store i32 %6949, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %892) #9
  br label %6950

6950:                                             ; preds = %6946, %6942
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %893) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %893) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %892) #9
  br label %7191

6951:                                             ; preds = %5955
  %6952 = landingpad { ptr, i32 }
          cleanup
  %6953 = extractvalue { ptr, i32 } %6952, 0
  store ptr %6953, ptr %8, align 8
  %6954 = extractvalue { ptr, i32 } %6952, 1
  store i32 %6954, ptr %9, align 4
  br label %6959

6955:                                             ; preds = %5956
  %6956 = landingpad { ptr, i32 }
          cleanup
  %6957 = extractvalue { ptr, i32 } %6956, 0
  store ptr %6957, ptr %8, align 8
  %6958 = extractvalue { ptr, i32 } %6956, 1
  store i32 %6958, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %895) #9
  br label %6959

6959:                                             ; preds = %6955, %6951
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %896) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %896) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %895) #9
  br label %7190

6960:                                             ; preds = %5957
  %6961 = landingpad { ptr, i32 }
          cleanup
  %6962 = extractvalue { ptr, i32 } %6961, 0
  store ptr %6962, ptr %8, align 8
  %6963 = extractvalue { ptr, i32 } %6961, 1
  store i32 %6963, ptr %9, align 4
  br label %7189

6964:                                             ; preds = %5958
  %6965 = landingpad { ptr, i32 }
          cleanup
  %6966 = extractvalue { ptr, i32 } %6965, 0
  store ptr %6966, ptr %8, align 8
  %6967 = extractvalue { ptr, i32 } %6965, 1
  store i32 %6967, ptr %9, align 4
  br label %7002

6968:                                             ; preds = %5959
  %6969 = landingpad { ptr, i32 }
          cleanup
  %6970 = extractvalue { ptr, i32 } %6969, 0
  store ptr %6970, ptr %8, align 8
  %6971 = extractvalue { ptr, i32 } %6969, 1
  store i32 %6971, ptr %9, align 4
  br label %7001

6972:                                             ; preds = %5960
  %6973 = landingpad { ptr, i32 }
          cleanup
  %6974 = extractvalue { ptr, i32 } %6973, 0
  store ptr %6974, ptr %8, align 8
  %6975 = extractvalue { ptr, i32 } %6973, 1
  store i32 %6975, ptr %9, align 4
  br label %7000

6976:                                             ; preds = %5961
  %6977 = landingpad { ptr, i32 }
          cleanup
  %6978 = extractvalue { ptr, i32 } %6977, 0
  store ptr %6978, ptr %8, align 8
  %6979 = extractvalue { ptr, i32 } %6977, 1
  store i32 %6979, ptr %9, align 4
  br label %6999

6980:                                             ; preds = %5962
  %6981 = landingpad { ptr, i32 }
          cleanup
  %6982 = extractvalue { ptr, i32 } %6981, 0
  store ptr %6982, ptr %8, align 8
  %6983 = extractvalue { ptr, i32 } %6981, 1
  store i32 %6983, ptr %9, align 4
  br label %6998

6984:                                             ; preds = %5963
  %6985 = landingpad { ptr, i32 }
          cleanup
  %6986 = extractvalue { ptr, i32 } %6985, 0
  store ptr %6986, ptr %8, align 8
  %6987 = extractvalue { ptr, i32 } %6985, 1
  store i32 %6987, ptr %9, align 4
  br label %6997

6988:                                             ; preds = %5964
  %6989 = landingpad { ptr, i32 }
          cleanup
  %6990 = extractvalue { ptr, i32 } %6989, 0
  store ptr %6990, ptr %8, align 8
  %6991 = extractvalue { ptr, i32 } %6989, 1
  store i32 %6991, ptr %9, align 4
  br label %6996

6992:                                             ; preds = %5965
  %6993 = landingpad { ptr, i32 }
          cleanup
  %6994 = extractvalue { ptr, i32 } %6993, 0
  store ptr %6994, ptr %8, align 8
  %6995 = extractvalue { ptr, i32 } %6993, 1
  store i32 %6995, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %905) #9
  br label %6996

6996:                                             ; preds = %6992, %6988
  call void @llvm.lifetime.end.p0(i64 56, ptr %905) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %898) #9
  br label %6997

6997:                                             ; preds = %6996, %6984
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %899) #9
  br label %6998

6998:                                             ; preds = %6997, %6980
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %900) #9
  br label %6999

6999:                                             ; preds = %6998, %6976
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %901) #9
  br label %7000

7000:                                             ; preds = %6999, %6972
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %902) #9
  br label %7001

7001:                                             ; preds = %7000, %6968
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %904) #9
  br label %7002

7002:                                             ; preds = %7001, %6964
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %903) #9
  br label %7189

7003:                                             ; preds = %5966
  %7004 = landingpad { ptr, i32 }
          cleanup
  %7005 = extractvalue { ptr, i32 } %7004, 0
  store ptr %7005, ptr %8, align 8
  %7006 = extractvalue { ptr, i32 } %7004, 1
  store i32 %7006, ptr %9, align 4
  br label %7188

7007:                                             ; preds = %5967
  %7008 = landingpad { ptr, i32 }
          cleanup
  %7009 = extractvalue { ptr, i32 } %7008, 0
  store ptr %7009, ptr %8, align 8
  %7010 = extractvalue { ptr, i32 } %7008, 1
  store i32 %7010, ptr %9, align 4
  br label %7015

7011:                                             ; preds = %5968
  %7012 = landingpad { ptr, i32 }
          cleanup
  %7013 = extractvalue { ptr, i32 } %7012, 0
  store ptr %7013, ptr %8, align 8
  %7014 = extractvalue { ptr, i32 } %7012, 1
  store i32 %7014, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %910) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %909) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %908) #9
  br label %7015

7015:                                             ; preds = %7011, %7007
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %907) #9
  br label %7188

7016:                                             ; preds = %5969
  %7017 = landingpad { ptr, i32 }
          cleanup
  %7018 = extractvalue { ptr, i32 } %7017, 0
  store ptr %7018, ptr %8, align 8
  %7019 = extractvalue { ptr, i32 } %7017, 1
  store i32 %7019, ptr %9, align 4
  br label %7059

7020:                                             ; preds = %5970
  %7021 = landingpad { ptr, i32 }
          cleanup
  %7022 = extractvalue { ptr, i32 } %7021, 0
  store ptr %7022, ptr %8, align 8
  %7023 = extractvalue { ptr, i32 } %7021, 1
  store i32 %7023, ptr %9, align 4
  br label %7058

7024:                                             ; preds = %5972
  %7025 = landingpad { ptr, i32 }
          cleanup
  %7026 = extractvalue { ptr, i32 } %7025, 0
  store ptr %7026, ptr %8, align 8
  %7027 = extractvalue { ptr, i32 } %7025, 1
  store i32 %7027, ptr %9, align 4
  br label %7057

7028:                                             ; preds = %5973
  %7029 = landingpad { ptr, i32 }
          cleanup
  %7030 = extractvalue { ptr, i32 } %7029, 0
  store ptr %7030, ptr %8, align 8
  %7031 = extractvalue { ptr, i32 } %7029, 1
  store i32 %7031, ptr %9, align 4
  br label %7056

7032:                                             ; preds = %5974
  %7033 = landingpad { ptr, i32 }
          cleanup
  %7034 = extractvalue { ptr, i32 } %7033, 0
  store ptr %7034, ptr %8, align 8
  %7035 = extractvalue { ptr, i32 } %7033, 1
  store i32 %7035, ptr %9, align 4
  br label %7055

7036:                                             ; preds = %5976
  %7037 = landingpad { ptr, i32 }
          cleanup
  %7038 = extractvalue { ptr, i32 } %7037, 0
  store ptr %7038, ptr %8, align 8
  %7039 = extractvalue { ptr, i32 } %7037, 1
  store i32 %7039, ptr %9, align 4
  br label %7054

7040:                                             ; preds = %5977
  %7041 = landingpad { ptr, i32 }
          cleanup
  %7042 = extractvalue { ptr, i32 } %7041, 0
  store ptr %7042, ptr %8, align 8
  %7043 = extractvalue { ptr, i32 } %7041, 1
  store i32 %7043, ptr %9, align 4
  br label %7053

7044:                                             ; preds = %5978
  %7045 = landingpad { ptr, i32 }
          cleanup
  %7046 = extractvalue { ptr, i32 } %7045, 0
  store ptr %7046, ptr %8, align 8
  %7047 = extractvalue { ptr, i32 } %7045, 1
  store i32 %7047, ptr %9, align 4
  br label %7052

7048:                                             ; preds = %5979
  %7049 = landingpad { ptr, i32 }
          cleanup
  %7050 = extractvalue { ptr, i32 } %7049, 0
  store ptr %7050, ptr %8, align 8
  %7051 = extractvalue { ptr, i32 } %7049, 1
  store i32 %7051, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %919) #9
  br label %7052

7052:                                             ; preds = %7048, %7044
  call void @llvm.lifetime.end.p0(i64 56, ptr %919) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %912) #9
  br label %7053

7053:                                             ; preds = %7052, %7040
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %916) #9
  br label %7054

7054:                                             ; preds = %7053, %7036
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %918) #9
  br label %7055

7055:                                             ; preds = %7054, %7032
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %917) #9
  br label %7056

7056:                                             ; preds = %7055, %7028
  call void @llvm.lifetime.end.p0(i64 8, ptr %916) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %913) #9
  br label %7057

7057:                                             ; preds = %7056, %7024
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %915) #9
  br label %7058

7058:                                             ; preds = %7057, %7020
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %914) #9
  br label %7059

7059:                                             ; preds = %7058, %7016
  call void @llvm.lifetime.end.p0(i64 56, ptr %912) #9
  br label %7187

7060:                                             ; preds = %5980
  %7061 = landingpad { ptr, i32 }
          cleanup
  %7062 = extractvalue { ptr, i32 } %7061, 0
  store ptr %7062, ptr %8, align 8
  %7063 = extractvalue { ptr, i32 } %7061, 1
  store i32 %7063, ptr %9, align 4
  br label %7103

7064:                                             ; preds = %5981
  %7065 = landingpad { ptr, i32 }
          cleanup
  %7066 = extractvalue { ptr, i32 } %7065, 0
  store ptr %7066, ptr %8, align 8
  %7067 = extractvalue { ptr, i32 } %7065, 1
  store i32 %7067, ptr %9, align 4
  br label %7102

7068:                                             ; preds = %5983
  %7069 = landingpad { ptr, i32 }
          cleanup
  %7070 = extractvalue { ptr, i32 } %7069, 0
  store ptr %7070, ptr %8, align 8
  %7071 = extractvalue { ptr, i32 } %7069, 1
  store i32 %7071, ptr %9, align 4
  br label %7101

7072:                                             ; preds = %5984
  %7073 = landingpad { ptr, i32 }
          cleanup
  %7074 = extractvalue { ptr, i32 } %7073, 0
  store ptr %7074, ptr %8, align 8
  %7075 = extractvalue { ptr, i32 } %7073, 1
  store i32 %7075, ptr %9, align 4
  br label %7100

7076:                                             ; preds = %5985
  %7077 = landingpad { ptr, i32 }
          cleanup
  %7078 = extractvalue { ptr, i32 } %7077, 0
  store ptr %7078, ptr %8, align 8
  %7079 = extractvalue { ptr, i32 } %7077, 1
  store i32 %7079, ptr %9, align 4
  br label %7099

7080:                                             ; preds = %5987
  %7081 = landingpad { ptr, i32 }
          cleanup
  %7082 = extractvalue { ptr, i32 } %7081, 0
  store ptr %7082, ptr %8, align 8
  %7083 = extractvalue { ptr, i32 } %7081, 1
  store i32 %7083, ptr %9, align 4
  br label %7098

7084:                                             ; preds = %5988
  %7085 = landingpad { ptr, i32 }
          cleanup
  %7086 = extractvalue { ptr, i32 } %7085, 0
  store ptr %7086, ptr %8, align 8
  %7087 = extractvalue { ptr, i32 } %7085, 1
  store i32 %7087, ptr %9, align 4
  br label %7097

7088:                                             ; preds = %5989
  %7089 = landingpad { ptr, i32 }
          cleanup
  %7090 = extractvalue { ptr, i32 } %7089, 0
  store ptr %7090, ptr %8, align 8
  %7091 = extractvalue { ptr, i32 } %7089, 1
  store i32 %7091, ptr %9, align 4
  br label %7096

7092:                                             ; preds = %5990
  %7093 = landingpad { ptr, i32 }
          cleanup
  %7094 = extractvalue { ptr, i32 } %7093, 0
  store ptr %7094, ptr %8, align 8
  %7095 = extractvalue { ptr, i32 } %7093, 1
  store i32 %7095, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %928) #9
  br label %7096

7096:                                             ; preds = %7092, %7088
  call void @llvm.lifetime.end.p0(i64 56, ptr %928) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %921) #9
  br label %7097

7097:                                             ; preds = %7096, %7084
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %925) #9
  br label %7098

7098:                                             ; preds = %7097, %7080
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %927) #9
  br label %7099

7099:                                             ; preds = %7098, %7076
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %926) #9
  br label %7100

7100:                                             ; preds = %7099, %7072
  call void @llvm.lifetime.end.p0(i64 8, ptr %925) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %922) #9
  br label %7101

7101:                                             ; preds = %7100, %7068
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %924) #9
  br label %7102

7102:                                             ; preds = %7101, %7064
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %923) #9
  br label %7103

7103:                                             ; preds = %7102, %7060
  call void @llvm.lifetime.end.p0(i64 56, ptr %921) #9
  br label %7187

7104:                                             ; preds = %6001, %5991
  %7105 = landingpad { ptr, i32 }
          cleanup
  %7106 = extractvalue { ptr, i32 } %7105, 0
  store ptr %7106, ptr %8, align 8
  %7107 = extractvalue { ptr, i32 } %7105, 1
  store i32 %7107, ptr %9, align 4
  br label %7187

7108:                                             ; preds = %5992
  %7109 = landingpad { ptr, i32 }
          cleanup
  %7110 = extractvalue { ptr, i32 } %7109, 0
  store ptr %7110, ptr %8, align 8
  %7111 = extractvalue { ptr, i32 } %7109, 1
  store i32 %7111, ptr %9, align 4
  br label %7136

7112:                                             ; preds = %5993
  %7113 = landingpad { ptr, i32 }
          cleanup
  %7114 = extractvalue { ptr, i32 } %7113, 0
  store ptr %7114, ptr %8, align 8
  %7115 = extractvalue { ptr, i32 } %7113, 1
  store i32 %7115, ptr %9, align 4
  br label %7135

7116:                                             ; preds = %5996, %5994
  %7117 = landingpad { ptr, i32 }
          cleanup
  %7118 = extractvalue { ptr, i32 } %7117, 0
  store ptr %7118, ptr %8, align 8
  %7119 = extractvalue { ptr, i32 } %7117, 1
  store i32 %7119, ptr %9, align 4
  br label %7134

7120:                                             ; preds = %5997
  %7121 = landingpad { ptr, i32 }
          cleanup
  %7122 = extractvalue { ptr, i32 } %7121, 0
  store ptr %7122, ptr %8, align 8
  %7123 = extractvalue { ptr, i32 } %7121, 1
  store i32 %7123, ptr %9, align 4
  br label %7133

7124:                                             ; preds = %5998
  %7125 = landingpad { ptr, i32 }
          cleanup
  %7126 = extractvalue { ptr, i32 } %7125, 0
  store ptr %7126, ptr %8, align 8
  %7127 = extractvalue { ptr, i32 } %7125, 1
  store i32 %7127, ptr %9, align 4
  br label %7132

7128:                                             ; preds = %5999
  %7129 = landingpad { ptr, i32 }
          cleanup
  %7130 = extractvalue { ptr, i32 } %7129, 0
  store ptr %7130, ptr %8, align 8
  %7131 = extractvalue { ptr, i32 } %7129, 1
  store i32 %7131, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %934) #9
  br label %7132

7132:                                             ; preds = %7128, %7124
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %933) #9
  br label %7133

7133:                                             ; preds = %7132, %7120
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %932) #9
  br label %7134

7134:                                             ; preds = %7133, %7116
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %931) #9
  br label %7135

7135:                                             ; preds = %7134, %7112
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %930) #9
  br label %7136

7136:                                             ; preds = %7135, %7108
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %929) #9
  br label %7187

7137:                                             ; preds = %6002
  %7138 = landingpad { ptr, i32 }
          cleanup
  %7139 = extractvalue { ptr, i32 } %7138, 0
  store ptr %7139, ptr %8, align 8
  %7140 = extractvalue { ptr, i32 } %7138, 1
  store i32 %7140, ptr %9, align 4
  br label %7165

7141:                                             ; preds = %6003
  %7142 = landingpad { ptr, i32 }
          cleanup
  %7143 = extractvalue { ptr, i32 } %7142, 0
  store ptr %7143, ptr %8, align 8
  %7144 = extractvalue { ptr, i32 } %7142, 1
  store i32 %7144, ptr %9, align 4
  br label %7164

7145:                                             ; preds = %6006, %6004
  %7146 = landingpad { ptr, i32 }
          cleanup
  %7147 = extractvalue { ptr, i32 } %7146, 0
  store ptr %7147, ptr %8, align 8
  %7148 = extractvalue { ptr, i32 } %7146, 1
  store i32 %7148, ptr %9, align 4
  br label %7163

7149:                                             ; preds = %6007
  %7150 = landingpad { ptr, i32 }
          cleanup
  %7151 = extractvalue { ptr, i32 } %7150, 0
  store ptr %7151, ptr %8, align 8
  %7152 = extractvalue { ptr, i32 } %7150, 1
  store i32 %7152, ptr %9, align 4
  br label %7162

7153:                                             ; preds = %6008
  %7154 = landingpad { ptr, i32 }
          cleanup
  %7155 = extractvalue { ptr, i32 } %7154, 0
  store ptr %7155, ptr %8, align 8
  %7156 = extractvalue { ptr, i32 } %7154, 1
  store i32 %7156, ptr %9, align 4
  br label %7161

7157:                                             ; preds = %6009
  %7158 = landingpad { ptr, i32 }
          cleanup
  %7159 = extractvalue { ptr, i32 } %7158, 0
  store ptr %7159, ptr %8, align 8
  %7160 = extractvalue { ptr, i32 } %7158, 1
  store i32 %7160, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %940) #9
  br label %7161

7161:                                             ; preds = %7157, %7153
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %939) #9
  br label %7162

7162:                                             ; preds = %7161, %7149
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %938) #9
  br label %7163

7163:                                             ; preds = %7162, %7145
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %937) #9
  br label %7164

7164:                                             ; preds = %7163, %7141
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %936) #9
  br label %7165

7165:                                             ; preds = %7164, %7137
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %935) #9
  br label %7187

7166:                                             ; preds = %6011
  %7167 = landingpad { ptr, i32 }
          cleanup
  %7168 = extractvalue { ptr, i32 } %7167, 0
  store ptr %7168, ptr %8, align 8
  %7169 = extractvalue { ptr, i32 } %7167, 1
  store i32 %7169, ptr %9, align 4
  br label %7179

7170:                                             ; preds = %6019
  %7171 = landingpad { ptr, i32 }
          cleanup
  %7172 = extractvalue { ptr, i32 } %7171, 0
  store ptr %7172, ptr %8, align 8
  %7173 = extractvalue { ptr, i32 } %7171, 1
  store i32 %7173, ptr %9, align 4
  br label %7178

7174:                                             ; preds = %6020
  %7175 = landingpad { ptr, i32 }
          cleanup
  %7176 = extractvalue { ptr, i32 } %7175, 0
  store ptr %7176, ptr %8, align 8
  %7177 = extractvalue { ptr, i32 } %7175, 1
  store i32 %7177, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %942) #9
  br label %7178

7178:                                             ; preds = %7174, %7170
  call void @_ZNSt6vectorIN6Halide4FuncESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %943) #9
  br label %7179

7179:                                             ; preds = %7178, %7166
  call void @_ZNSt15__new_allocatorIN6Halide4FuncEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %946) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %946) #9
  %7180 = getelementptr inbounds [2 x %"class.Halide::Func"], ptr %945, i32 0, i32 0
  %7181 = getelementptr inbounds %"class.Halide::Func", ptr %7180, i64 2
  br label %7182

7182:                                             ; preds = %7182, %7179
  %7183 = phi ptr [ %7181, %7179 ], [ %7184, %7182 ]
  %7184 = getelementptr inbounds %"class.Halide::Func", ptr %7183, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7184) #9
  %7185 = icmp eq ptr %7184, %7180
  br i1 %7185, label %7186, label %7182

7186:                                             ; preds = %7182
  call void @llvm.lifetime.end.p0(i64 64, ptr %945) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %943) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %942) #9
  br label %7187

7187:                                             ; preds = %7186, %7165, %7136, %7104, %7103, %7059
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %906) #9
  br label %7188

7188:                                             ; preds = %7187, %7015, %7003
  call void @llvm.lifetime.end.p0(i64 200, ptr %906) #9
  br label %7189

7189:                                             ; preds = %7188, %7002, %6960
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %894) #9
  br label %7190

7190:                                             ; preds = %7189, %6959
  call void @llvm.lifetime.end.p0(i64 32, ptr %894) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %891) #9
  br label %7191

7191:                                             ; preds = %7190, %6950
  call void @llvm.lifetime.end.p0(i64 32, ptr %891) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %888) #9
  br label %7192

7192:                                             ; preds = %7191, %6941
  call void @llvm.lifetime.end.p0(i64 32, ptr %888) #9
  br label %9780

7193:                                             ; preds = %6030, %6028
  %7194 = landingpad { ptr, i32 }
          cleanup
  %7195 = extractvalue { ptr, i32 } %7194, 0
  store ptr %7195, ptr %8, align 8
  %7196 = extractvalue { ptr, i32 } %7194, 1
  store i32 %7196, ptr %9, align 4
  br label %7283

7197:                                             ; preds = %6039
  %7198 = landingpad { ptr, i32 }
          cleanup
  %7199 = extractvalue { ptr, i32 } %7198, 0
  store ptr %7199, ptr %8, align 8
  %7200 = extractvalue { ptr, i32 } %7198, 1
  store i32 %7200, ptr %9, align 4
  br label %7205

7201:                                             ; preds = %6040
  %7202 = landingpad { ptr, i32 }
          cleanup
  %7203 = extractvalue { ptr, i32 } %7202, 0
  store ptr %7203, ptr %8, align 8
  %7204 = extractvalue { ptr, i32 } %7202, 1
  store i32 %7204, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %950) #9
  br label %7205

7205:                                             ; preds = %7201, %7197
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %951) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %951) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %950) #9
  br label %7282

7206:                                             ; preds = %6041
  %7207 = landingpad { ptr, i32 }
          cleanup
  %7208 = extractvalue { ptr, i32 } %7207, 0
  store ptr %7208, ptr %8, align 8
  %7209 = extractvalue { ptr, i32 } %7207, 1
  store i32 %7209, ptr %9, align 4
  br label %7214

7210:                                             ; preds = %6042
  %7211 = landingpad { ptr, i32 }
          cleanup
  %7212 = extractvalue { ptr, i32 } %7211, 0
  store ptr %7212, ptr %8, align 8
  %7213 = extractvalue { ptr, i32 } %7211, 1
  store i32 %7213, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %953) #9
  br label %7214

7214:                                             ; preds = %7210, %7206
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %954) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %954) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %953) #9
  br label %7281

7215:                                             ; preds = %6049, %6043
  %7216 = landingpad { ptr, i32 }
          cleanup
  %7217 = extractvalue { ptr, i32 } %7216, 0
  store ptr %7217, ptr %8, align 8
  %7218 = extractvalue { ptr, i32 } %7216, 1
  store i32 %7218, ptr %9, align 4
  br label %7280

7219:                                             ; preds = %6044
  %7220 = landingpad { ptr, i32 }
          cleanup
  %7221 = extractvalue { ptr, i32 } %7220, 0
  store ptr %7221, ptr %8, align 8
  %7222 = extractvalue { ptr, i32 } %7220, 1
  store i32 %7222, ptr %9, align 4
  br label %7227

7223:                                             ; preds = %6045
  %7224 = landingpad { ptr, i32 }
          cleanup
  %7225 = extractvalue { ptr, i32 } %7224, 0
  store ptr %7225, ptr %8, align 8
  %7226 = extractvalue { ptr, i32 } %7224, 1
  store i32 %7226, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %957) #9
  br label %7227

7227:                                             ; preds = %7223, %7219
  call void @llvm.lifetime.end.p0(i64 56, ptr %957) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %956) #9
  br label %7280

7228:                                             ; preds = %6046
  %7229 = landingpad { ptr, i32 }
          cleanup
  %7230 = extractvalue { ptr, i32 } %7229, 0
  store ptr %7230, ptr %8, align 8
  %7231 = extractvalue { ptr, i32 } %7229, 1
  store i32 %7231, ptr %9, align 4
  br label %7241

7232:                                             ; preds = %6047
  %7233 = landingpad { ptr, i32 }
          cleanup
  %7234 = extractvalue { ptr, i32 } %7233, 0
  store ptr %7234, ptr %8, align 8
  %7235 = extractvalue { ptr, i32 } %7233, 1
  store i32 %7235, ptr %9, align 4
  br label %7240

7236:                                             ; preds = %6048
  %7237 = landingpad { ptr, i32 }
          cleanup
  %7238 = extractvalue { ptr, i32 } %7237, 0
  store ptr %7238, ptr %8, align 8
  %7239 = extractvalue { ptr, i32 } %7237, 1
  store i32 %7239, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %960) #9
  br label %7240

7240:                                             ; preds = %7236, %7232
  call void @llvm.lifetime.end.p0(i64 56, ptr %960) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %959) #9
  br label %7241

7241:                                             ; preds = %7240, %7228
  call void @llvm.lifetime.end.p0(i64 56, ptr %959) #9
  br label %7280

7242:                                             ; preds = %6050
  %7243 = landingpad { ptr, i32 }
          cleanup
  %7244 = extractvalue { ptr, i32 } %7243, 0
  store ptr %7244, ptr %8, align 8
  %7245 = extractvalue { ptr, i32 } %7243, 1
  store i32 %7245, ptr %9, align 4
  br label %7270

7246:                                             ; preds = %6051
  %7247 = landingpad { ptr, i32 }
          cleanup
  %7248 = extractvalue { ptr, i32 } %7247, 0
  store ptr %7248, ptr %8, align 8
  %7249 = extractvalue { ptr, i32 } %7247, 1
  store i32 %7249, ptr %9, align 4
  br label %7269

7250:                                             ; preds = %6054, %6052
  %7251 = landingpad { ptr, i32 }
          cleanup
  %7252 = extractvalue { ptr, i32 } %7251, 0
  store ptr %7252, ptr %8, align 8
  %7253 = extractvalue { ptr, i32 } %7251, 1
  store i32 %7253, ptr %9, align 4
  br label %7268

7254:                                             ; preds = %6055
  %7255 = landingpad { ptr, i32 }
          cleanup
  %7256 = extractvalue { ptr, i32 } %7255, 0
  store ptr %7256, ptr %8, align 8
  %7257 = extractvalue { ptr, i32 } %7255, 1
  store i32 %7257, ptr %9, align 4
  br label %7267

7258:                                             ; preds = %6056
  %7259 = landingpad { ptr, i32 }
          cleanup
  %7260 = extractvalue { ptr, i32 } %7259, 0
  store ptr %7260, ptr %8, align 8
  %7261 = extractvalue { ptr, i32 } %7259, 1
  store i32 %7261, ptr %9, align 4
  br label %7266

7262:                                             ; preds = %6057
  %7263 = landingpad { ptr, i32 }
          cleanup
  %7264 = extractvalue { ptr, i32 } %7263, 0
  store ptr %7264, ptr %8, align 8
  %7265 = extractvalue { ptr, i32 } %7263, 1
  store i32 %7265, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %966) #9
  br label %7266

7266:                                             ; preds = %7262, %7258
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %965) #9
  br label %7267

7267:                                             ; preds = %7266, %7254
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %964) #9
  br label %7268

7268:                                             ; preds = %7267, %7250
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %963) #9
  br label %7269

7269:                                             ; preds = %7268, %7246
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %962) #9
  br label %7270

7270:                                             ; preds = %7269, %7242
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %961) #9
  br label %7280

7271:                                             ; preds = %6059
  %7272 = landingpad { ptr, i32 }
          cleanup
  %7273 = extractvalue { ptr, i32 } %7272, 0
  store ptr %7273, ptr %8, align 8
  %7274 = extractvalue { ptr, i32 } %7272, 1
  store i32 %7274, ptr %9, align 4
  br label %7279

7275:                                             ; preds = %6060
  %7276 = landingpad { ptr, i32 }
          cleanup
  %7277 = extractvalue { ptr, i32 } %7276, 0
  store ptr %7277, ptr %8, align 8
  %7278 = extractvalue { ptr, i32 } %7276, 1
  store i32 %7278, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %968) #9
  br label %7279

7279:                                             ; preds = %7275, %7271
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %969) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %968) #9
  br label %7280

7280:                                             ; preds = %7279, %7270, %7241, %7227, %7215
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %952) #9
  br label %7281

7281:                                             ; preds = %7280, %7214
  call void @llvm.lifetime.end.p0(i64 32, ptr %952) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %949) #9
  br label %7282

7282:                                             ; preds = %7281, %7205
  call void @llvm.lifetime.end.p0(i64 32, ptr %949) #9
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %947) #9
  br label %7283

7283:                                             ; preds = %7282, %7193
  call void @llvm.lifetime.end.p0(i64 56, ptr %947) #9
  br label %9780

7284:                                             ; preds = %6063, %6061
  %7285 = landingpad { ptr, i32 }
          cleanup
  %7286 = extractvalue { ptr, i32 } %7285, 0
  store ptr %7286, ptr %8, align 8
  %7287 = extractvalue { ptr, i32 } %7285, 1
  store i32 %7287, ptr %9, align 4
  br label %7360

7288:                                             ; preds = %6072
  %7289 = landingpad { ptr, i32 }
          cleanup
  %7290 = extractvalue { ptr, i32 } %7289, 0
  store ptr %7290, ptr %8, align 8
  %7291 = extractvalue { ptr, i32 } %7289, 1
  store i32 %7291, ptr %9, align 4
  br label %7296

7292:                                             ; preds = %6073
  %7293 = landingpad { ptr, i32 }
          cleanup
  %7294 = extractvalue { ptr, i32 } %7293, 0
  store ptr %7294, ptr %8, align 8
  %7295 = extractvalue { ptr, i32 } %7293, 1
  store i32 %7295, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %973) #9
  br label %7296

7296:                                             ; preds = %7292, %7288
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %974) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %974) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %973) #9
  br label %7359

7297:                                             ; preds = %6074
  %7298 = landingpad { ptr, i32 }
          cleanup
  %7299 = extractvalue { ptr, i32 } %7298, 0
  store ptr %7299, ptr %8, align 8
  %7300 = extractvalue { ptr, i32 } %7298, 1
  store i32 %7300, ptr %9, align 4
  br label %7315

7301:                                             ; preds = %6075
  %7302 = landingpad { ptr, i32 }
          cleanup
  %7303 = extractvalue { ptr, i32 } %7302, 0
  store ptr %7303, ptr %8, align 8
  %7304 = extractvalue { ptr, i32 } %7302, 1
  store i32 %7304, ptr %9, align 4
  br label %7314

7305:                                             ; preds = %6076
  %7306 = landingpad { ptr, i32 }
          cleanup
  %7307 = extractvalue { ptr, i32 } %7306, 0
  store ptr %7307, ptr %8, align 8
  %7308 = extractvalue { ptr, i32 } %7306, 1
  store i32 %7308, ptr %9, align 4
  br label %7313

7309:                                             ; preds = %6077
  %7310 = landingpad { ptr, i32 }
          cleanup
  %7311 = extractvalue { ptr, i32 } %7310, 0
  store ptr %7311, ptr %8, align 8
  %7312 = extractvalue { ptr, i32 } %7310, 1
  store i32 %7312, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %978) #9
  br label %7313

7313:                                             ; preds = %7309, %7305
  call void @llvm.lifetime.end.p0(i64 56, ptr %978) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %976) #9
  br label %7314

7314:                                             ; preds = %7313, %7301
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %977) #9
  br label %7315

7315:                                             ; preds = %7314, %7297
  call void @llvm.lifetime.end.p0(i64 8, ptr %977) #9
  br label %7358

7316:                                             ; preds = %6078
  %7317 = landingpad { ptr, i32 }
          cleanup
  %7318 = extractvalue { ptr, i32 } %7317, 0
  store ptr %7318, ptr %8, align 8
  %7319 = extractvalue { ptr, i32 } %7317, 1
  store i32 %7319, ptr %9, align 4
  br label %7358

7320:                                             ; preds = %6079
  %7321 = landingpad { ptr, i32 }
          cleanup
  %7322 = extractvalue { ptr, i32 } %7321, 0
  store ptr %7322, ptr %8, align 8
  %7323 = extractvalue { ptr, i32 } %7321, 1
  store i32 %7323, ptr %9, align 4
  br label %7348

7324:                                             ; preds = %6080
  %7325 = landingpad { ptr, i32 }
          cleanup
  %7326 = extractvalue { ptr, i32 } %7325, 0
  store ptr %7326, ptr %8, align 8
  %7327 = extractvalue { ptr, i32 } %7325, 1
  store i32 %7327, ptr %9, align 4
  br label %7347

7328:                                             ; preds = %6083, %6081
  %7329 = landingpad { ptr, i32 }
          cleanup
  %7330 = extractvalue { ptr, i32 } %7329, 0
  store ptr %7330, ptr %8, align 8
  %7331 = extractvalue { ptr, i32 } %7329, 1
  store i32 %7331, ptr %9, align 4
  br label %7346

7332:                                             ; preds = %6084
  %7333 = landingpad { ptr, i32 }
          cleanup
  %7334 = extractvalue { ptr, i32 } %7333, 0
  store ptr %7334, ptr %8, align 8
  %7335 = extractvalue { ptr, i32 } %7333, 1
  store i32 %7335, ptr %9, align 4
  br label %7345

7336:                                             ; preds = %6085
  %7337 = landingpad { ptr, i32 }
          cleanup
  %7338 = extractvalue { ptr, i32 } %7337, 0
  store ptr %7338, ptr %8, align 8
  %7339 = extractvalue { ptr, i32 } %7337, 1
  store i32 %7339, ptr %9, align 4
  br label %7344

7340:                                             ; preds = %6086
  %7341 = landingpad { ptr, i32 }
          cleanup
  %7342 = extractvalue { ptr, i32 } %7341, 0
  store ptr %7342, ptr %8, align 8
  %7343 = extractvalue { ptr, i32 } %7341, 1
  store i32 %7343, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %984) #9
  br label %7344

7344:                                             ; preds = %7340, %7336
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %983) #9
  br label %7345

7345:                                             ; preds = %7344, %7332
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %982) #9
  br label %7346

7346:                                             ; preds = %7345, %7328
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %981) #9
  br label %7347

7347:                                             ; preds = %7346, %7324
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %980) #9
  br label %7348

7348:                                             ; preds = %7347, %7320
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %979) #9
  br label %7358

7349:                                             ; preds = %6088
  %7350 = landingpad { ptr, i32 }
          cleanup
  %7351 = extractvalue { ptr, i32 } %7350, 0
  store ptr %7351, ptr %8, align 8
  %7352 = extractvalue { ptr, i32 } %7350, 1
  store i32 %7352, ptr %9, align 4
  br label %7357

7353:                                             ; preds = %6089
  %7354 = landingpad { ptr, i32 }
          cleanup
  %7355 = extractvalue { ptr, i32 } %7354, 0
  store ptr %7355, ptr %8, align 8
  %7356 = extractvalue { ptr, i32 } %7354, 1
  store i32 %7356, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %986) #9
  br label %7357

7357:                                             ; preds = %7353, %7349
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %987) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %986) #9
  br label %7358

7358:                                             ; preds = %7357, %7348, %7316, %7315
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %972) #9
  br label %7359

7359:                                             ; preds = %7358, %7296
  call void @llvm.lifetime.end.p0(i64 32, ptr %972) #9
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %970) #9
  br label %7360

7360:                                             ; preds = %7359, %7284
  call void @llvm.lifetime.end.p0(i64 56, ptr %970) #9
  br label %9780

7361:                                             ; preds = %6092, %6090
  %7362 = landingpad { ptr, i32 }
          cleanup
  %7363 = extractvalue { ptr, i32 } %7362, 0
  store ptr %7363, ptr %8, align 8
  %7364 = extractvalue { ptr, i32 } %7362, 1
  store i32 %7364, ptr %9, align 4
  br label %7537

7365:                                             ; preds = %6101
  %7366 = landingpad { ptr, i32 }
          cleanup
  %7367 = extractvalue { ptr, i32 } %7366, 0
  store ptr %7367, ptr %8, align 8
  %7368 = extractvalue { ptr, i32 } %7366, 1
  store i32 %7368, ptr %9, align 4
  br label %7373

7369:                                             ; preds = %6102
  %7370 = landingpad { ptr, i32 }
          cleanup
  %7371 = extractvalue { ptr, i32 } %7370, 0
  store ptr %7371, ptr %8, align 8
  %7372 = extractvalue { ptr, i32 } %7370, 1
  store i32 %7372, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %991) #9
  br label %7373

7373:                                             ; preds = %7369, %7365
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %992) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %992) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %991) #9
  br label %7536

7374:                                             ; preds = %6103
  %7375 = landingpad { ptr, i32 }
          cleanup
  %7376 = extractvalue { ptr, i32 } %7375, 0
  store ptr %7376, ptr %8, align 8
  %7377 = extractvalue { ptr, i32 } %7375, 1
  store i32 %7377, ptr %9, align 4
  br label %7535

7378:                                             ; preds = %6104
  %7379 = landingpad { ptr, i32 }
          cleanup
  %7380 = extractvalue { ptr, i32 } %7379, 0
  store ptr %7380, ptr %8, align 8
  %7381 = extractvalue { ptr, i32 } %7379, 1
  store i32 %7381, ptr %9, align 4
  br label %7534

7382:                                             ; preds = %6105
  %7383 = landingpad { ptr, i32 }
          cleanup
  %7384 = extractvalue { ptr, i32 } %7383, 0
  store ptr %7384, ptr %8, align 8
  %7385 = extractvalue { ptr, i32 } %7383, 1
  store i32 %7385, ptr %9, align 4
  br label %7533

7386:                                             ; preds = %6106
  %7387 = landingpad { ptr, i32 }
          cleanup
  %7388 = extractvalue { ptr, i32 } %7387, 0
  store ptr %7388, ptr %8, align 8
  %7389 = extractvalue { ptr, i32 } %7387, 1
  store i32 %7389, ptr %9, align 4
  br label %7532

7390:                                             ; preds = %6107
  %7391 = landingpad { ptr, i32 }
          cleanup
  %7392 = extractvalue { ptr, i32 } %7391, 0
  store ptr %7392, ptr %8, align 8
  %7393 = extractvalue { ptr, i32 } %7391, 1
  store i32 %7393, ptr %9, align 4
  br label %7531

7394:                                             ; preds = %6108
  %7395 = landingpad { ptr, i32 }
          cleanup
  %7396 = extractvalue { ptr, i32 } %7395, 0
  store ptr %7396, ptr %8, align 8
  %7397 = extractvalue { ptr, i32 } %7395, 1
  store i32 %7397, ptr %9, align 4
  br label %7412

7398:                                             ; preds = %6109
  %7399 = landingpad { ptr, i32 }
          cleanup
  %7400 = extractvalue { ptr, i32 } %7399, 0
  store ptr %7400, ptr %8, align 8
  %7401 = extractvalue { ptr, i32 } %7399, 1
  store i32 %7401, ptr %9, align 4
  br label %7411

7402:                                             ; preds = %6110
  %7403 = landingpad { ptr, i32 }
          cleanup
  %7404 = extractvalue { ptr, i32 } %7403, 0
  store ptr %7404, ptr %8, align 8
  %7405 = extractvalue { ptr, i32 } %7403, 1
  store i32 %7405, ptr %9, align 4
  br label %7410

7406:                                             ; preds = %6111
  %7407 = landingpad { ptr, i32 }
          cleanup
  %7408 = extractvalue { ptr, i32 } %7407, 0
  store ptr %7408, ptr %8, align 8
  %7409 = extractvalue { ptr, i32 } %7407, 1
  store i32 %7409, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1001) #9
  br label %7410

7410:                                             ; preds = %7406, %7402
  call void @llvm.lifetime.end.p0(i64 56, ptr %1001) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %999) #9
  br label %7411

7411:                                             ; preds = %7410, %7398
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1000) #9
  br label %7412

7412:                                             ; preds = %7411, %7394
  call void @llvm.lifetime.end.p0(i64 8, ptr %1000) #9
  br label %7530

7413:                                             ; preds = %6112
  %7414 = landingpad { ptr, i32 }
          cleanup
  %7415 = extractvalue { ptr, i32 } %7414, 0
  store ptr %7415, ptr %8, align 8
  %7416 = extractvalue { ptr, i32 } %7414, 1
  store i32 %7416, ptr %9, align 4
  br label %7530

7417:                                             ; preds = %6113
  %7418 = landingpad { ptr, i32 }
          cleanup
  %7419 = extractvalue { ptr, i32 } %7418, 0
  store ptr %7419, ptr %8, align 8
  %7420 = extractvalue { ptr, i32 } %7418, 1
  store i32 %7420, ptr %9, align 4
  br label %7520

7421:                                             ; preds = %6114
  %7422 = landingpad { ptr, i32 }
          cleanup
  %7423 = extractvalue { ptr, i32 } %7422, 0
  store ptr %7423, ptr %8, align 8
  %7424 = extractvalue { ptr, i32 } %7422, 1
  store i32 %7424, ptr %9, align 4
  br label %7519

7425:                                             ; preds = %6117, %6115
  %7426 = landingpad { ptr, i32 }
          cleanup
  %7427 = extractvalue { ptr, i32 } %7426, 0
  store ptr %7427, ptr %8, align 8
  %7428 = extractvalue { ptr, i32 } %7426, 1
  store i32 %7428, ptr %9, align 4
  br label %7518

7429:                                             ; preds = %6118
  %7430 = landingpad { ptr, i32 }
          cleanup
  %7431 = extractvalue { ptr, i32 } %7430, 0
  store ptr %7431, ptr %8, align 8
  %7432 = extractvalue { ptr, i32 } %7430, 1
  store i32 %7432, ptr %9, align 4
  br label %7517

7433:                                             ; preds = %6119
  %7434 = landingpad { ptr, i32 }
          cleanup
  %7435 = extractvalue { ptr, i32 } %7434, 0
  store ptr %7435, ptr %8, align 8
  %7436 = extractvalue { ptr, i32 } %7434, 1
  store i32 %7436, ptr %9, align 4
  br label %7516

7437:                                             ; preds = %6122, %6120
  %7438 = landingpad { ptr, i32 }
          cleanup
  %7439 = extractvalue { ptr, i32 } %7438, 0
  store ptr %7439, ptr %8, align 8
  %7440 = extractvalue { ptr, i32 } %7438, 1
  store i32 %7440, ptr %9, align 4
  br label %7515

7441:                                             ; preds = %6123
  %7442 = landingpad { ptr, i32 }
          cleanup
  %7443 = extractvalue { ptr, i32 } %7442, 0
  store ptr %7443, ptr %8, align 8
  %7444 = extractvalue { ptr, i32 } %7442, 1
  store i32 %7444, ptr %9, align 4
  br label %7514

7445:                                             ; preds = %6124
  %7446 = landingpad { ptr, i32 }
          cleanup
  %7447 = extractvalue { ptr, i32 } %7446, 0
  store ptr %7447, ptr %8, align 8
  %7448 = extractvalue { ptr, i32 } %7446, 1
  store i32 %7448, ptr %9, align 4
  br label %7513

7449:                                             ; preds = %6127, %6125
  %7450 = landingpad { ptr, i32 }
          cleanup
  %7451 = extractvalue { ptr, i32 } %7450, 0
  store ptr %7451, ptr %8, align 8
  %7452 = extractvalue { ptr, i32 } %7450, 1
  store i32 %7452, ptr %9, align 4
  br label %7512

7453:                                             ; preds = %6128
  %7454 = landingpad { ptr, i32 }
          cleanup
  %7455 = extractvalue { ptr, i32 } %7454, 0
  store ptr %7455, ptr %8, align 8
  %7456 = extractvalue { ptr, i32 } %7454, 1
  store i32 %7456, ptr %9, align 4
  br label %7511

7457:                                             ; preds = %6129
  %7458 = landingpad { ptr, i32 }
          cleanup
  %7459 = extractvalue { ptr, i32 } %7458, 0
  store ptr %7459, ptr %8, align 8
  %7460 = extractvalue { ptr, i32 } %7458, 1
  store i32 %7460, ptr %9, align 4
  br label %7510

7461:                                             ; preds = %6132, %6130
  %7462 = landingpad { ptr, i32 }
          cleanup
  %7463 = extractvalue { ptr, i32 } %7462, 0
  store ptr %7463, ptr %8, align 8
  %7464 = extractvalue { ptr, i32 } %7462, 1
  store i32 %7464, ptr %9, align 4
  br label %7509

7465:                                             ; preds = %6133
  %7466 = landingpad { ptr, i32 }
          cleanup
  %7467 = extractvalue { ptr, i32 } %7466, 0
  store ptr %7467, ptr %8, align 8
  %7468 = extractvalue { ptr, i32 } %7466, 1
  store i32 %7468, ptr %9, align 4
  br label %7508

7469:                                             ; preds = %6134
  %7470 = landingpad { ptr, i32 }
          cleanup
  %7471 = extractvalue { ptr, i32 } %7470, 0
  store ptr %7471, ptr %8, align 8
  %7472 = extractvalue { ptr, i32 } %7470, 1
  store i32 %7472, ptr %9, align 4
  br label %7507

7473:                                             ; preds = %6137, %6135
  %7474 = landingpad { ptr, i32 }
          cleanup
  %7475 = extractvalue { ptr, i32 } %7474, 0
  store ptr %7475, ptr %8, align 8
  %7476 = extractvalue { ptr, i32 } %7474, 1
  store i32 %7476, ptr %9, align 4
  br label %7506

7477:                                             ; preds = %6138
  %7478 = landingpad { ptr, i32 }
          cleanup
  %7479 = extractvalue { ptr, i32 } %7478, 0
  store ptr %7479, ptr %8, align 8
  %7480 = extractvalue { ptr, i32 } %7478, 1
  store i32 %7480, ptr %9, align 4
  br label %7505

7481:                                             ; preds = %6139
  %7482 = landingpad { ptr, i32 }
          cleanup
  %7483 = extractvalue { ptr, i32 } %7482, 0
  store ptr %7483, ptr %8, align 8
  %7484 = extractvalue { ptr, i32 } %7482, 1
  store i32 %7484, ptr %9, align 4
  br label %7504

7485:                                             ; preds = %6142, %6140
  %7486 = landingpad { ptr, i32 }
          cleanup
  %7487 = extractvalue { ptr, i32 } %7486, 0
  store ptr %7487, ptr %8, align 8
  %7488 = extractvalue { ptr, i32 } %7486, 1
  store i32 %7488, ptr %9, align 4
  br label %7503

7489:                                             ; preds = %6143
  %7490 = landingpad { ptr, i32 }
          cleanup
  %7491 = extractvalue { ptr, i32 } %7490, 0
  store ptr %7491, ptr %8, align 8
  %7492 = extractvalue { ptr, i32 } %7490, 1
  store i32 %7492, ptr %9, align 4
  br label %7502

7493:                                             ; preds = %6144
  %7494 = landingpad { ptr, i32 }
          cleanup
  %7495 = extractvalue { ptr, i32 } %7494, 0
  store ptr %7495, ptr %8, align 8
  %7496 = extractvalue { ptr, i32 } %7494, 1
  store i32 %7496, ptr %9, align 4
  br label %7501

7497:                                             ; preds = %6145
  %7498 = landingpad { ptr, i32 }
          cleanup
  %7499 = extractvalue { ptr, i32 } %7498, 0
  store ptr %7499, ptr %8, align 8
  %7500 = extractvalue { ptr, i32 } %7498, 1
  store i32 %7500, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1022) #9
  br label %7501

7501:                                             ; preds = %7497, %7493
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1021) #9
  br label %7502

7502:                                             ; preds = %7501, %7489
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1020) #9
  br label %7503

7503:                                             ; preds = %7502, %7485
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1019) #9
  br label %7504

7504:                                             ; preds = %7503, %7481
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1018) #9
  br label %7505

7505:                                             ; preds = %7504, %7477
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1017) #9
  br label %7506

7506:                                             ; preds = %7505, %7473
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1016) #9
  br label %7507

7507:                                             ; preds = %7506, %7469
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1015) #9
  br label %7508

7508:                                             ; preds = %7507, %7465
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1014) #9
  br label %7509

7509:                                             ; preds = %7508, %7461
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1013) #9
  br label %7510

7510:                                             ; preds = %7509, %7457
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1012) #9
  br label %7511

7511:                                             ; preds = %7510, %7453
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1011) #9
  br label %7512

7512:                                             ; preds = %7511, %7449
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1010) #9
  br label %7513

7513:                                             ; preds = %7512, %7445
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1009) #9
  br label %7514

7514:                                             ; preds = %7513, %7441
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1008) #9
  br label %7515

7515:                                             ; preds = %7514, %7437
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1007) #9
  br label %7516

7516:                                             ; preds = %7515, %7433
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1006) #9
  br label %7517

7517:                                             ; preds = %7516, %7429
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1005) #9
  br label %7518

7518:                                             ; preds = %7517, %7425
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1004) #9
  br label %7519

7519:                                             ; preds = %7518, %7421
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1003) #9
  br label %7520

7520:                                             ; preds = %7519, %7417
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1002) #9
  br label %7530

7521:                                             ; preds = %6147
  %7522 = landingpad { ptr, i32 }
          cleanup
  %7523 = extractvalue { ptr, i32 } %7522, 0
  store ptr %7523, ptr %8, align 8
  %7524 = extractvalue { ptr, i32 } %7522, 1
  store i32 %7524, ptr %9, align 4
  br label %7529

7525:                                             ; preds = %6148
  %7526 = landingpad { ptr, i32 }
          cleanup
  %7527 = extractvalue { ptr, i32 } %7526, 0
  store ptr %7527, ptr %8, align 8
  %7528 = extractvalue { ptr, i32 } %7526, 1
  store i32 %7528, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1024) #9
  br label %7529

7529:                                             ; preds = %7525, %7521
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1025) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1024) #9
  br label %7530

7530:                                             ; preds = %7529, %7520, %7413, %7412
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %997) #9
  br label %7531

7531:                                             ; preds = %7530, %7390
  call void @llvm.lifetime.end.p0(i64 32, ptr %997) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %996) #9
  br label %7532

7532:                                             ; preds = %7531, %7386
  call void @llvm.lifetime.end.p0(i64 32, ptr %996) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %995) #9
  br label %7533

7533:                                             ; preds = %7532, %7382
  call void @llvm.lifetime.end.p0(i64 32, ptr %995) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %994) #9
  br label %7534

7534:                                             ; preds = %7533, %7378
  call void @llvm.lifetime.end.p0(i64 32, ptr %994) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %993) #9
  br label %7535

7535:                                             ; preds = %7534, %7374
  call void @llvm.lifetime.end.p0(i64 32, ptr %993) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %990) #9
  br label %7536

7536:                                             ; preds = %7535, %7373
  call void @llvm.lifetime.end.p0(i64 32, ptr %990) #9
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %988) #9
  br label %7537

7537:                                             ; preds = %7536, %7361
  call void @llvm.lifetime.end.p0(i64 56, ptr %988) #9
  br label %9780

7538:                                             ; preds = %6151, %6149
  %7539 = landingpad { ptr, i32 }
          cleanup
  %7540 = extractvalue { ptr, i32 } %7539, 0
  store ptr %7540, ptr %8, align 8
  %7541 = extractvalue { ptr, i32 } %7539, 1
  store i32 %7541, ptr %9, align 4
  br label %7907

7542:                                             ; preds = %6160
  %7543 = landingpad { ptr, i32 }
          cleanup
  %7544 = extractvalue { ptr, i32 } %7543, 0
  store ptr %7544, ptr %8, align 8
  %7545 = extractvalue { ptr, i32 } %7543, 1
  store i32 %7545, ptr %9, align 4
  br label %7550

7546:                                             ; preds = %6161
  %7547 = landingpad { ptr, i32 }
          cleanup
  %7548 = extractvalue { ptr, i32 } %7547, 0
  store ptr %7548, ptr %8, align 8
  %7549 = extractvalue { ptr, i32 } %7547, 1
  store i32 %7549, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1029) #9
  br label %7550

7550:                                             ; preds = %7546, %7542
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1030) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1030) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1029) #9
  br label %7906

7551:                                             ; preds = %6162
  %7552 = landingpad { ptr, i32 }
          cleanup
  %7553 = extractvalue { ptr, i32 } %7552, 0
  store ptr %7553, ptr %8, align 8
  %7554 = extractvalue { ptr, i32 } %7552, 1
  store i32 %7554, ptr %9, align 4
  br label %7559

7555:                                             ; preds = %6163
  %7556 = landingpad { ptr, i32 }
          cleanup
  %7557 = extractvalue { ptr, i32 } %7556, 0
  store ptr %7557, ptr %8, align 8
  %7558 = extractvalue { ptr, i32 } %7556, 1
  store i32 %7558, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1032) #9
  br label %7559

7559:                                             ; preds = %7555, %7551
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1033) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1033) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1032) #9
  br label %7905

7560:                                             ; preds = %6164
  %7561 = landingpad { ptr, i32 }
          cleanup
  %7562 = extractvalue { ptr, i32 } %7561, 0
  store ptr %7562, ptr %8, align 8
  %7563 = extractvalue { ptr, i32 } %7561, 1
  store i32 %7563, ptr %9, align 4
  br label %7568

7564:                                             ; preds = %6165
  %7565 = landingpad { ptr, i32 }
          cleanup
  %7566 = extractvalue { ptr, i32 } %7565, 0
  store ptr %7566, ptr %8, align 8
  %7567 = extractvalue { ptr, i32 } %7565, 1
  store i32 %7567, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1035) #9
  br label %7568

7568:                                             ; preds = %7564, %7560
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1036) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1036) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1035) #9
  br label %7904

7569:                                             ; preds = %6166
  %7570 = landingpad { ptr, i32 }
          cleanup
  %7571 = extractvalue { ptr, i32 } %7570, 0
  store ptr %7571, ptr %8, align 8
  %7572 = extractvalue { ptr, i32 } %7570, 1
  store i32 %7572, ptr %9, align 4
  br label %7612

7573:                                             ; preds = %6167
  %7574 = landingpad { ptr, i32 }
          cleanup
  %7575 = extractvalue { ptr, i32 } %7574, 0
  store ptr %7575, ptr %8, align 8
  %7576 = extractvalue { ptr, i32 } %7574, 1
  store i32 %7576, ptr %9, align 4
  br label %7611

7577:                                             ; preds = %6168
  %7578 = landingpad { ptr, i32 }
          cleanup
  %7579 = extractvalue { ptr, i32 } %7578, 0
  store ptr %7579, ptr %8, align 8
  %7580 = extractvalue { ptr, i32 } %7578, 1
  store i32 %7580, ptr %9, align 4
  br label %7610

7581:                                             ; preds = %6169
  %7582 = landingpad { ptr, i32 }
          cleanup
  %7583 = extractvalue { ptr, i32 } %7582, 0
  store ptr %7583, ptr %8, align 8
  %7584 = extractvalue { ptr, i32 } %7582, 1
  store i32 %7584, ptr %9, align 4
  br label %7609

7585:                                             ; preds = %6170
  %7586 = landingpad { ptr, i32 }
          cleanup
  %7587 = extractvalue { ptr, i32 } %7586, 0
  store ptr %7587, ptr %8, align 8
  %7588 = extractvalue { ptr, i32 } %7586, 1
  store i32 %7588, ptr %9, align 4
  br label %7608

7589:                                             ; preds = %6171
  %7590 = landingpad { ptr, i32 }
          cleanup
  %7591 = extractvalue { ptr, i32 } %7590, 0
  store ptr %7591, ptr %8, align 8
  %7592 = extractvalue { ptr, i32 } %7590, 1
  store i32 %7592, ptr %9, align 4
  br label %7607

7593:                                             ; preds = %6172
  %7594 = landingpad { ptr, i32 }
          cleanup
  %7595 = extractvalue { ptr, i32 } %7594, 0
  store ptr %7595, ptr %8, align 8
  %7596 = extractvalue { ptr, i32 } %7594, 1
  store i32 %7596, ptr %9, align 4
  br label %7606

7597:                                             ; preds = %6173
  %7598 = landingpad { ptr, i32 }
          cleanup
  %7599 = extractvalue { ptr, i32 } %7598, 0
  store ptr %7599, ptr %8, align 8
  %7600 = extractvalue { ptr, i32 } %7598, 1
  store i32 %7600, ptr %9, align 4
  br label %7605

7601:                                             ; preds = %6174
  %7602 = landingpad { ptr, i32 }
          cleanup
  %7603 = extractvalue { ptr, i32 } %7602, 0
  store ptr %7603, ptr %8, align 8
  %7604 = extractvalue { ptr, i32 } %7602, 1
  store i32 %7604, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1045) #9
  br label %7605

7605:                                             ; preds = %7601, %7597
  call void @llvm.lifetime.end.p0(i64 56, ptr %1045) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1038) #9
  br label %7606

7606:                                             ; preds = %7605, %7593
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1039) #9
  br label %7607

7607:                                             ; preds = %7606, %7589
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1044) #9
  br label %7608

7608:                                             ; preds = %7607, %7585
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1043) #9
  br label %7609

7609:                                             ; preds = %7608, %7581
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1040) #9
  br label %7610

7610:                                             ; preds = %7609, %7577
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1042) #9
  br label %7611

7611:                                             ; preds = %7610, %7573
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1041) #9
  br label %7612

7612:                                             ; preds = %7611, %7569
  call void @llvm.lifetime.end.p0(i64 8, ptr %1039) #9
  br label %7903

7613:                                             ; preds = %6175
  %7614 = landingpad { ptr, i32 }
          cleanup
  %7615 = extractvalue { ptr, i32 } %7614, 0
  store ptr %7615, ptr %8, align 8
  %7616 = extractvalue { ptr, i32 } %7614, 1
  store i32 %7616, ptr %9, align 4
  br label %7656

7617:                                             ; preds = %6176
  %7618 = landingpad { ptr, i32 }
          cleanup
  %7619 = extractvalue { ptr, i32 } %7618, 0
  store ptr %7619, ptr %8, align 8
  %7620 = extractvalue { ptr, i32 } %7618, 1
  store i32 %7620, ptr %9, align 4
  br label %7655

7621:                                             ; preds = %6177
  %7622 = landingpad { ptr, i32 }
          cleanup
  %7623 = extractvalue { ptr, i32 } %7622, 0
  store ptr %7623, ptr %8, align 8
  %7624 = extractvalue { ptr, i32 } %7622, 1
  store i32 %7624, ptr %9, align 4
  br label %7654

7625:                                             ; preds = %6178
  %7626 = landingpad { ptr, i32 }
          cleanup
  %7627 = extractvalue { ptr, i32 } %7626, 0
  store ptr %7627, ptr %8, align 8
  %7628 = extractvalue { ptr, i32 } %7626, 1
  store i32 %7628, ptr %9, align 4
  br label %7653

7629:                                             ; preds = %6179
  %7630 = landingpad { ptr, i32 }
          cleanup
  %7631 = extractvalue { ptr, i32 } %7630, 0
  store ptr %7631, ptr %8, align 8
  %7632 = extractvalue { ptr, i32 } %7630, 1
  store i32 %7632, ptr %9, align 4
  br label %7652

7633:                                             ; preds = %6180
  %7634 = landingpad { ptr, i32 }
          cleanup
  %7635 = extractvalue { ptr, i32 } %7634, 0
  store ptr %7635, ptr %8, align 8
  %7636 = extractvalue { ptr, i32 } %7634, 1
  store i32 %7636, ptr %9, align 4
  br label %7651

7637:                                             ; preds = %6181
  %7638 = landingpad { ptr, i32 }
          cleanup
  %7639 = extractvalue { ptr, i32 } %7638, 0
  store ptr %7639, ptr %8, align 8
  %7640 = extractvalue { ptr, i32 } %7638, 1
  store i32 %7640, ptr %9, align 4
  br label %7650

7641:                                             ; preds = %6182
  %7642 = landingpad { ptr, i32 }
          cleanup
  %7643 = extractvalue { ptr, i32 } %7642, 0
  store ptr %7643, ptr %8, align 8
  %7644 = extractvalue { ptr, i32 } %7642, 1
  store i32 %7644, ptr %9, align 4
  br label %7649

7645:                                             ; preds = %6183
  %7646 = landingpad { ptr, i32 }
          cleanup
  %7647 = extractvalue { ptr, i32 } %7646, 0
  store ptr %7647, ptr %8, align 8
  %7648 = extractvalue { ptr, i32 } %7646, 1
  store i32 %7648, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1054) #9
  br label %7649

7649:                                             ; preds = %7645, %7641
  call void @llvm.lifetime.end.p0(i64 56, ptr %1054) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1047) #9
  br label %7650

7650:                                             ; preds = %7649, %7637
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1048) #9
  br label %7651

7651:                                             ; preds = %7650, %7633
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1053) #9
  br label %7652

7652:                                             ; preds = %7651, %7629
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1052) #9
  br label %7653

7653:                                             ; preds = %7652, %7625
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1049) #9
  br label %7654

7654:                                             ; preds = %7653, %7621
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1051) #9
  br label %7655

7655:                                             ; preds = %7654, %7617
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1050) #9
  br label %7656

7656:                                             ; preds = %7655, %7613
  call void @llvm.lifetime.end.p0(i64 56, ptr %1047) #9
  br label %7903

7657:                                             ; preds = %6184
  %7658 = landingpad { ptr, i32 }
          cleanup
  %7659 = extractvalue { ptr, i32 } %7658, 0
  store ptr %7659, ptr %8, align 8
  %7660 = extractvalue { ptr, i32 } %7658, 1
  store i32 %7660, ptr %9, align 4
  br label %7700

7661:                                             ; preds = %6185
  %7662 = landingpad { ptr, i32 }
          cleanup
  %7663 = extractvalue { ptr, i32 } %7662, 0
  store ptr %7663, ptr %8, align 8
  %7664 = extractvalue { ptr, i32 } %7662, 1
  store i32 %7664, ptr %9, align 4
  br label %7699

7665:                                             ; preds = %6186
  %7666 = landingpad { ptr, i32 }
          cleanup
  %7667 = extractvalue { ptr, i32 } %7666, 0
  store ptr %7667, ptr %8, align 8
  %7668 = extractvalue { ptr, i32 } %7666, 1
  store i32 %7668, ptr %9, align 4
  br label %7698

7669:                                             ; preds = %6187
  %7670 = landingpad { ptr, i32 }
          cleanup
  %7671 = extractvalue { ptr, i32 } %7670, 0
  store ptr %7671, ptr %8, align 8
  %7672 = extractvalue { ptr, i32 } %7670, 1
  store i32 %7672, ptr %9, align 4
  br label %7697

7673:                                             ; preds = %6188
  %7674 = landingpad { ptr, i32 }
          cleanup
  %7675 = extractvalue { ptr, i32 } %7674, 0
  store ptr %7675, ptr %8, align 8
  %7676 = extractvalue { ptr, i32 } %7674, 1
  store i32 %7676, ptr %9, align 4
  br label %7696

7677:                                             ; preds = %6189
  %7678 = landingpad { ptr, i32 }
          cleanup
  %7679 = extractvalue { ptr, i32 } %7678, 0
  store ptr %7679, ptr %8, align 8
  %7680 = extractvalue { ptr, i32 } %7678, 1
  store i32 %7680, ptr %9, align 4
  br label %7695

7681:                                             ; preds = %6190
  %7682 = landingpad { ptr, i32 }
          cleanup
  %7683 = extractvalue { ptr, i32 } %7682, 0
  store ptr %7683, ptr %8, align 8
  %7684 = extractvalue { ptr, i32 } %7682, 1
  store i32 %7684, ptr %9, align 4
  br label %7694

7685:                                             ; preds = %6191
  %7686 = landingpad { ptr, i32 }
          cleanup
  %7687 = extractvalue { ptr, i32 } %7686, 0
  store ptr %7687, ptr %8, align 8
  %7688 = extractvalue { ptr, i32 } %7686, 1
  store i32 %7688, ptr %9, align 4
  br label %7693

7689:                                             ; preds = %6192
  %7690 = landingpad { ptr, i32 }
          cleanup
  %7691 = extractvalue { ptr, i32 } %7690, 0
  store ptr %7691, ptr %8, align 8
  %7692 = extractvalue { ptr, i32 } %7690, 1
  store i32 %7692, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1063) #9
  br label %7693

7693:                                             ; preds = %7689, %7685
  call void @llvm.lifetime.end.p0(i64 56, ptr %1063) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1056) #9
  br label %7694

7694:                                             ; preds = %7693, %7681
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1057) #9
  br label %7695

7695:                                             ; preds = %7694, %7677
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1062) #9
  br label %7696

7696:                                             ; preds = %7695, %7673
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1061) #9
  br label %7697

7697:                                             ; preds = %7696, %7669
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1058) #9
  br label %7698

7698:                                             ; preds = %7697, %7665
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1060) #9
  br label %7699

7699:                                             ; preds = %7698, %7661
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1059) #9
  br label %7700

7700:                                             ; preds = %7699, %7657
  call void @llvm.lifetime.end.p0(i64 56, ptr %1056) #9
  br label %7903

7701:                                             ; preds = %6193
  %7702 = landingpad { ptr, i32 }
          cleanup
  %7703 = extractvalue { ptr, i32 } %7702, 0
  store ptr %7703, ptr %8, align 8
  %7704 = extractvalue { ptr, i32 } %7702, 1
  store i32 %7704, ptr %9, align 4
  br label %7709

7705:                                             ; preds = %6194
  %7706 = landingpad { ptr, i32 }
          cleanup
  %7707 = extractvalue { ptr, i32 } %7706, 0
  store ptr %7707, ptr %8, align 8
  %7708 = extractvalue { ptr, i32 } %7706, 1
  store i32 %7708, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1065) #9
  br label %7709

7709:                                             ; preds = %7705, %7701
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1066) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1066) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1065) #9
  br label %7902

7710:                                             ; preds = %6195
  %7711 = landingpad { ptr, i32 }
          cleanup
  %7712 = extractvalue { ptr, i32 } %7711, 0
  store ptr %7712, ptr %8, align 8
  %7713 = extractvalue { ptr, i32 } %7711, 1
  store i32 %7713, ptr %9, align 4
  br label %7718

7714:                                             ; preds = %6196
  %7715 = landingpad { ptr, i32 }
          cleanup
  %7716 = extractvalue { ptr, i32 } %7715, 0
  store ptr %7716, ptr %8, align 8
  %7717 = extractvalue { ptr, i32 } %7715, 1
  store i32 %7717, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1068) #9
  br label %7718

7718:                                             ; preds = %7714, %7710
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1069) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1069) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1068) #9
  br label %7901

7719:                                             ; preds = %6197
  %7720 = landingpad { ptr, i32 }
          cleanup
  %7721 = extractvalue { ptr, i32 } %7720, 0
  store ptr %7721, ptr %8, align 8
  %7722 = extractvalue { ptr, i32 } %7720, 1
  store i32 %7722, ptr %9, align 4
  br label %7767

7723:                                             ; preds = %6198
  %7724 = landingpad { ptr, i32 }
          cleanup
  %7725 = extractvalue { ptr, i32 } %7724, 0
  store ptr %7725, ptr %8, align 8
  %7726 = extractvalue { ptr, i32 } %7724, 1
  store i32 %7726, ptr %9, align 4
  br label %7766

7727:                                             ; preds = %6199
  %7728 = landingpad { ptr, i32 }
          cleanup
  %7729 = extractvalue { ptr, i32 } %7728, 0
  store ptr %7729, ptr %8, align 8
  %7730 = extractvalue { ptr, i32 } %7728, 1
  store i32 %7730, ptr %9, align 4
  br label %7765

7731:                                             ; preds = %6200
  %7732 = landingpad { ptr, i32 }
          cleanup
  %7733 = extractvalue { ptr, i32 } %7732, 0
  store ptr %7733, ptr %8, align 8
  %7734 = extractvalue { ptr, i32 } %7732, 1
  store i32 %7734, ptr %9, align 4
  br label %7764

7735:                                             ; preds = %6201
  %7736 = landingpad { ptr, i32 }
          cleanup
  %7737 = extractvalue { ptr, i32 } %7736, 0
  store ptr %7737, ptr %8, align 8
  %7738 = extractvalue { ptr, i32 } %7736, 1
  store i32 %7738, ptr %9, align 4
  br label %7763

7739:                                             ; preds = %6202
  %7740 = landingpad { ptr, i32 }
          cleanup
  %7741 = extractvalue { ptr, i32 } %7740, 0
  store ptr %7741, ptr %8, align 8
  %7742 = extractvalue { ptr, i32 } %7740, 1
  store i32 %7742, ptr %9, align 4
  br label %7762

7743:                                             ; preds = %6203
  %7744 = landingpad { ptr, i32 }
          cleanup
  %7745 = extractvalue { ptr, i32 } %7744, 0
  store ptr %7745, ptr %8, align 8
  %7746 = extractvalue { ptr, i32 } %7744, 1
  store i32 %7746, ptr %9, align 4
  br label %7761

7747:                                             ; preds = %6204
  %7748 = landingpad { ptr, i32 }
          cleanup
  %7749 = extractvalue { ptr, i32 } %7748, 0
  store ptr %7749, ptr %8, align 8
  %7750 = extractvalue { ptr, i32 } %7748, 1
  store i32 %7750, ptr %9, align 4
  br label %7760

7751:                                             ; preds = %6205
  %7752 = landingpad { ptr, i32 }
          cleanup
  %7753 = extractvalue { ptr, i32 } %7752, 0
  store ptr %7753, ptr %8, align 8
  %7754 = extractvalue { ptr, i32 } %7752, 1
  store i32 %7754, ptr %9, align 4
  br label %7759

7755:                                             ; preds = %6206
  %7756 = landingpad { ptr, i32 }
          cleanup
  %7757 = extractvalue { ptr, i32 } %7756, 0
  store ptr %7757, ptr %8, align 8
  %7758 = extractvalue { ptr, i32 } %7756, 1
  store i32 %7758, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1079) #9
  br label %7759

7759:                                             ; preds = %7755, %7751
  call void @llvm.lifetime.end.p0(i64 56, ptr %1079) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1071) #9
  br label %7760

7760:                                             ; preds = %7759, %7747
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1077) #9
  br label %7761

7761:                                             ; preds = %7760, %7743
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1078) #9
  br label %7762

7762:                                             ; preds = %7761, %7739
  call void @llvm.lifetime.end.p0(i64 56, ptr %1078) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1072) #9
  br label %7763

7763:                                             ; preds = %7762, %7735
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1075) #9
  br label %7764

7764:                                             ; preds = %7763, %7731
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1076) #9
  br label %7765

7765:                                             ; preds = %7764, %7727
  call void @llvm.lifetime.end.p0(i64 56, ptr %1076) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1073) #9
  br label %7766

7766:                                             ; preds = %7765, %7723
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1074) #9
  br label %7767

7767:                                             ; preds = %7766, %7719
  call void @llvm.lifetime.end.p0(i64 56, ptr %1074) #9
  br label %7900

7768:                                             ; preds = %6207
  %7769 = landingpad { ptr, i32 }
          cleanup
  %7770 = extractvalue { ptr, i32 } %7769, 0
  store ptr %7770, ptr %8, align 8
  %7771 = extractvalue { ptr, i32 } %7769, 1
  store i32 %7771, ptr %9, align 4
  br label %7816

7772:                                             ; preds = %6208
  %7773 = landingpad { ptr, i32 }
          cleanup
  %7774 = extractvalue { ptr, i32 } %7773, 0
  store ptr %7774, ptr %8, align 8
  %7775 = extractvalue { ptr, i32 } %7773, 1
  store i32 %7775, ptr %9, align 4
  br label %7815

7776:                                             ; preds = %6209
  %7777 = landingpad { ptr, i32 }
          cleanup
  %7778 = extractvalue { ptr, i32 } %7777, 0
  store ptr %7778, ptr %8, align 8
  %7779 = extractvalue { ptr, i32 } %7777, 1
  store i32 %7779, ptr %9, align 4
  br label %7814

7780:                                             ; preds = %6210
  %7781 = landingpad { ptr, i32 }
          cleanup
  %7782 = extractvalue { ptr, i32 } %7781, 0
  store ptr %7782, ptr %8, align 8
  %7783 = extractvalue { ptr, i32 } %7781, 1
  store i32 %7783, ptr %9, align 4
  br label %7813

7784:                                             ; preds = %6211
  %7785 = landingpad { ptr, i32 }
          cleanup
  %7786 = extractvalue { ptr, i32 } %7785, 0
  store ptr %7786, ptr %8, align 8
  %7787 = extractvalue { ptr, i32 } %7785, 1
  store i32 %7787, ptr %9, align 4
  br label %7812

7788:                                             ; preds = %6212
  %7789 = landingpad { ptr, i32 }
          cleanup
  %7790 = extractvalue { ptr, i32 } %7789, 0
  store ptr %7790, ptr %8, align 8
  %7791 = extractvalue { ptr, i32 } %7789, 1
  store i32 %7791, ptr %9, align 4
  br label %7811

7792:                                             ; preds = %6213
  %7793 = landingpad { ptr, i32 }
          cleanup
  %7794 = extractvalue { ptr, i32 } %7793, 0
  store ptr %7794, ptr %8, align 8
  %7795 = extractvalue { ptr, i32 } %7793, 1
  store i32 %7795, ptr %9, align 4
  br label %7810

7796:                                             ; preds = %6214
  %7797 = landingpad { ptr, i32 }
          cleanup
  %7798 = extractvalue { ptr, i32 } %7797, 0
  store ptr %7798, ptr %8, align 8
  %7799 = extractvalue { ptr, i32 } %7797, 1
  store i32 %7799, ptr %9, align 4
  br label %7809

7800:                                             ; preds = %6215
  %7801 = landingpad { ptr, i32 }
          cleanup
  %7802 = extractvalue { ptr, i32 } %7801, 0
  store ptr %7802, ptr %8, align 8
  %7803 = extractvalue { ptr, i32 } %7801, 1
  store i32 %7803, ptr %9, align 4
  br label %7808

7804:                                             ; preds = %6216
  %7805 = landingpad { ptr, i32 }
          cleanup
  %7806 = extractvalue { ptr, i32 } %7805, 0
  store ptr %7806, ptr %8, align 8
  %7807 = extractvalue { ptr, i32 } %7805, 1
  store i32 %7807, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1089) #9
  br label %7808

7808:                                             ; preds = %7804, %7800
  call void @llvm.lifetime.end.p0(i64 56, ptr %1089) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1081) #9
  br label %7809

7809:                                             ; preds = %7808, %7796
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1087) #9
  br label %7810

7810:                                             ; preds = %7809, %7792
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1088) #9
  br label %7811

7811:                                             ; preds = %7810, %7788
  call void @llvm.lifetime.end.p0(i64 56, ptr %1088) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1082) #9
  br label %7812

7812:                                             ; preds = %7811, %7784
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1085) #9
  br label %7813

7813:                                             ; preds = %7812, %7780
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1086) #9
  br label %7814

7814:                                             ; preds = %7813, %7776
  call void @llvm.lifetime.end.p0(i64 56, ptr %1086) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1083) #9
  br label %7815

7815:                                             ; preds = %7814, %7772
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1084) #9
  br label %7816

7816:                                             ; preds = %7815, %7768
  call void @llvm.lifetime.end.p0(i64 56, ptr %1084) #9
  br label %7900

7817:                                             ; preds = %6227, %6217
  %7818 = landingpad { ptr, i32 }
          cleanup
  %7819 = extractvalue { ptr, i32 } %7818, 0
  store ptr %7819, ptr %8, align 8
  %7820 = extractvalue { ptr, i32 } %7818, 1
  store i32 %7820, ptr %9, align 4
  br label %7900

7821:                                             ; preds = %6218
  %7822 = landingpad { ptr, i32 }
          cleanup
  %7823 = extractvalue { ptr, i32 } %7822, 0
  store ptr %7823, ptr %8, align 8
  %7824 = extractvalue { ptr, i32 } %7822, 1
  store i32 %7824, ptr %9, align 4
  br label %7849

7825:                                             ; preds = %6219
  %7826 = landingpad { ptr, i32 }
          cleanup
  %7827 = extractvalue { ptr, i32 } %7826, 0
  store ptr %7827, ptr %8, align 8
  %7828 = extractvalue { ptr, i32 } %7826, 1
  store i32 %7828, ptr %9, align 4
  br label %7848

7829:                                             ; preds = %6222, %6220
  %7830 = landingpad { ptr, i32 }
          cleanup
  %7831 = extractvalue { ptr, i32 } %7830, 0
  store ptr %7831, ptr %8, align 8
  %7832 = extractvalue { ptr, i32 } %7830, 1
  store i32 %7832, ptr %9, align 4
  br label %7847

7833:                                             ; preds = %6223
  %7834 = landingpad { ptr, i32 }
          cleanup
  %7835 = extractvalue { ptr, i32 } %7834, 0
  store ptr %7835, ptr %8, align 8
  %7836 = extractvalue { ptr, i32 } %7834, 1
  store i32 %7836, ptr %9, align 4
  br label %7846

7837:                                             ; preds = %6224
  %7838 = landingpad { ptr, i32 }
          cleanup
  %7839 = extractvalue { ptr, i32 } %7838, 0
  store ptr %7839, ptr %8, align 8
  %7840 = extractvalue { ptr, i32 } %7838, 1
  store i32 %7840, ptr %9, align 4
  br label %7845

7841:                                             ; preds = %6225
  %7842 = landingpad { ptr, i32 }
          cleanup
  %7843 = extractvalue { ptr, i32 } %7842, 0
  store ptr %7843, ptr %8, align 8
  %7844 = extractvalue { ptr, i32 } %7842, 1
  store i32 %7844, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1095) #9
  br label %7845

7845:                                             ; preds = %7841, %7837
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1094) #9
  br label %7846

7846:                                             ; preds = %7845, %7833
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1093) #9
  br label %7847

7847:                                             ; preds = %7846, %7829
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1092) #9
  br label %7848

7848:                                             ; preds = %7847, %7825
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1091) #9
  br label %7849

7849:                                             ; preds = %7848, %7821
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1090) #9
  br label %7900

7850:                                             ; preds = %6228
  %7851 = landingpad { ptr, i32 }
          cleanup
  %7852 = extractvalue { ptr, i32 } %7851, 0
  store ptr %7852, ptr %8, align 8
  %7853 = extractvalue { ptr, i32 } %7851, 1
  store i32 %7853, ptr %9, align 4
  br label %7878

7854:                                             ; preds = %6229
  %7855 = landingpad { ptr, i32 }
          cleanup
  %7856 = extractvalue { ptr, i32 } %7855, 0
  store ptr %7856, ptr %8, align 8
  %7857 = extractvalue { ptr, i32 } %7855, 1
  store i32 %7857, ptr %9, align 4
  br label %7877

7858:                                             ; preds = %6232, %6230
  %7859 = landingpad { ptr, i32 }
          cleanup
  %7860 = extractvalue { ptr, i32 } %7859, 0
  store ptr %7860, ptr %8, align 8
  %7861 = extractvalue { ptr, i32 } %7859, 1
  store i32 %7861, ptr %9, align 4
  br label %7876

7862:                                             ; preds = %6233
  %7863 = landingpad { ptr, i32 }
          cleanup
  %7864 = extractvalue { ptr, i32 } %7863, 0
  store ptr %7864, ptr %8, align 8
  %7865 = extractvalue { ptr, i32 } %7863, 1
  store i32 %7865, ptr %9, align 4
  br label %7875

7866:                                             ; preds = %6234
  %7867 = landingpad { ptr, i32 }
          cleanup
  %7868 = extractvalue { ptr, i32 } %7867, 0
  store ptr %7868, ptr %8, align 8
  %7869 = extractvalue { ptr, i32 } %7867, 1
  store i32 %7869, ptr %9, align 4
  br label %7874

7870:                                             ; preds = %6235
  %7871 = landingpad { ptr, i32 }
          cleanup
  %7872 = extractvalue { ptr, i32 } %7871, 0
  store ptr %7872, ptr %8, align 8
  %7873 = extractvalue { ptr, i32 } %7871, 1
  store i32 %7873, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1101) #9
  br label %7874

7874:                                             ; preds = %7870, %7866
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1100) #9
  br label %7875

7875:                                             ; preds = %7874, %7862
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1099) #9
  br label %7876

7876:                                             ; preds = %7875, %7858
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1098) #9
  br label %7877

7877:                                             ; preds = %7876, %7854
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1097) #9
  br label %7878

7878:                                             ; preds = %7877, %7850
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1096) #9
  br label %7900

7879:                                             ; preds = %6237
  %7880 = landingpad { ptr, i32 }
          cleanup
  %7881 = extractvalue { ptr, i32 } %7880, 0
  store ptr %7881, ptr %8, align 8
  %7882 = extractvalue { ptr, i32 } %7880, 1
  store i32 %7882, ptr %9, align 4
  br label %7892

7883:                                             ; preds = %6245
  %7884 = landingpad { ptr, i32 }
          cleanup
  %7885 = extractvalue { ptr, i32 } %7884, 0
  store ptr %7885, ptr %8, align 8
  %7886 = extractvalue { ptr, i32 } %7884, 1
  store i32 %7886, ptr %9, align 4
  br label %7891

7887:                                             ; preds = %6246
  %7888 = landingpad { ptr, i32 }
          cleanup
  %7889 = extractvalue { ptr, i32 } %7888, 0
  store ptr %7889, ptr %8, align 8
  %7890 = extractvalue { ptr, i32 } %7888, 1
  store i32 %7890, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1103) #9
  br label %7891

7891:                                             ; preds = %7887, %7883
  call void @_ZNSt6vectorIN6Halide4FuncESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1104) #9
  br label %7892

7892:                                             ; preds = %7891, %7879
  call void @_ZNSt15__new_allocatorIN6Halide4FuncEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1107) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1107) #9
  %7893 = getelementptr inbounds [2 x %"class.Halide::Func"], ptr %1106, i32 0, i32 0
  %7894 = getelementptr inbounds %"class.Halide::Func", ptr %7893, i64 2
  br label %7895

7895:                                             ; preds = %7895, %7892
  %7896 = phi ptr [ %7894, %7892 ], [ %7897, %7895 ]
  %7897 = getelementptr inbounds %"class.Halide::Func", ptr %7896, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7897) #9
  %7898 = icmp eq ptr %7897, %7893
  br i1 %7898, label %7899, label %7895

7899:                                             ; preds = %7895
  call void @llvm.lifetime.end.p0(i64 64, ptr %1106) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %1104) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1103) #9
  br label %7900

7900:                                             ; preds = %7899, %7878, %7849, %7817, %7816, %7767
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1067) #9
  br label %7901

7901:                                             ; preds = %7900, %7718
  call void @llvm.lifetime.end.p0(i64 32, ptr %1067) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1064) #9
  br label %7902

7902:                                             ; preds = %7901, %7709
  call void @llvm.lifetime.end.p0(i64 32, ptr %1064) #9
  br label %7903

7903:                                             ; preds = %7902, %7700, %7656, %7612
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1034) #9
  br label %7904

7904:                                             ; preds = %7903, %7568
  call void @llvm.lifetime.end.p0(i64 32, ptr %1034) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1031) #9
  br label %7905

7905:                                             ; preds = %7904, %7559
  call void @llvm.lifetime.end.p0(i64 32, ptr %1031) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1028) #9
  br label %7906

7906:                                             ; preds = %7905, %7550
  call void @llvm.lifetime.end.p0(i64 32, ptr %1028) #9
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1026) #9
  br label %7907

7907:                                             ; preds = %7906, %7538
  call void @llvm.lifetime.end.p0(i64 56, ptr %1026) #9
  br label %9780

7908:                                             ; preds = %6256, %6254
  %7909 = landingpad { ptr, i32 }
          cleanup
  %7910 = extractvalue { ptr, i32 } %7909, 0
  store ptr %7910, ptr %8, align 8
  %7911 = extractvalue { ptr, i32 } %7909, 1
  store i32 %7911, ptr %9, align 4
  br label %8368

7912:                                             ; preds = %6268
  %7913 = landingpad { ptr, i32 }
          cleanup
  %7914 = extractvalue { ptr, i32 } %7913, 0
  store ptr %7914, ptr %8, align 8
  %7915 = extractvalue { ptr, i32 } %7913, 1
  store i32 %7915, ptr %9, align 4
  %7916 = icmp eq ptr %6266, %6269
  br i1 %7916, label %7921, label %7917

7917:                                             ; preds = %7917, %7912
  %7918 = phi ptr [ %6269, %7912 ], [ %7919, %7917 ]
  %7919 = getelementptr inbounds %"class.Halide::Func", ptr %7918, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7919) #9
  %7920 = icmp eq ptr %7919, %6266
  br i1 %7920, label %7921, label %7917

7921:                                             ; preds = %7917, %7912
  br label %8367

7922:                                             ; preds = %6273
  %7923 = landingpad { ptr, i32 }
          cleanup
  %7924 = extractvalue { ptr, i32 } %7923, 0
  store ptr %7924, ptr %8, align 8
  %7925 = extractvalue { ptr, i32 } %7923, 1
  store i32 %7925, ptr %9, align 4
  br label %7930

7926:                                             ; preds = %6274
  %7927 = landingpad { ptr, i32 }
          cleanup
  %7928 = extractvalue { ptr, i32 } %7927, 0
  store ptr %7928, ptr %8, align 8
  %7929 = extractvalue { ptr, i32 } %7927, 1
  store i32 %7929, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1113) #9
  br label %7930

7930:                                             ; preds = %7926, %7922
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1114) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1114) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1113) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1112) #9
  br label %8359

7931:                                             ; preds = %6275
  %7932 = landingpad { ptr, i32 }
          cleanup
  %7933 = extractvalue { ptr, i32 } %7932, 0
  store ptr %7933, ptr %8, align 8
  %7934 = extractvalue { ptr, i32 } %7932, 1
  store i32 %7934, ptr %9, align 4
  br label %8359

7935:                                             ; preds = %6278
  %7936 = landingpad { ptr, i32 }
          cleanup
  %7937 = extractvalue { ptr, i32 } %7936, 0
  store ptr %7937, ptr %8, align 8
  %7938 = extractvalue { ptr, i32 } %7936, 1
  store i32 %7938, ptr %9, align 4
  br label %7943

7939:                                             ; preds = %6280
  %7940 = landingpad { ptr, i32 }
          cleanup
  %7941 = extractvalue { ptr, i32 } %7940, 0
  store ptr %7941, ptr %8, align 8
  %7942 = extractvalue { ptr, i32 } %7940, 1
  store i32 %7942, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1117) #9
  br label %7943

7943:                                             ; preds = %7939, %7935
  call void @llvm.lifetime.end.p0(i64 56, ptr %1117) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1116) #9
  br label %8359

7944:                                             ; preds = %6282
  call void @llvm.lifetime.start.p0(i64 8, ptr %1119) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1119, i32 noundef 0)
          to label %7945 unwind label %7950

7945:                                             ; preds = %7944
  call void @llvm.lifetime.start.p0(i64 4, ptr %1120) #9
  store i32 -1, ptr %1120, align 4, !tbaa !5
  br label %7946

7946:                                             ; preds = %8012, %7945
  %7947 = load i32, ptr %1120, align 4, !tbaa !5
  %7948 = icmp sle i32 %7947, 1
  br i1 %7948, label %7954, label %7949

7949:                                             ; preds = %7946
  store i32 38, ptr %311, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %1120) #9
  br label %8015

7950:                                             ; preds = %7944
  %7951 = landingpad { ptr, i32 }
          cleanup
  %7952 = extractvalue { ptr, i32 } %7951, 0
  store ptr %7952, ptr %8, align 8
  %7953 = extractvalue { ptr, i32 } %7951, 1
  store i32 %7953, ptr %9, align 4
  br label %8034

7954:                                             ; preds = %7946
  call void @llvm.lifetime.start.p0(i64 4, ptr %1121) #9
  store i32 -1, ptr %1121, align 4, !tbaa !5
  br label %7955

7955:                                             ; preds = %7974, %7954
  %7956 = load i32, ptr %1121, align 4, !tbaa !5
  %7957 = icmp sle i32 %7956, 1
  br i1 %7957, label %7959, label %7958

7958:                                             ; preds = %7955
  store i32 41, ptr %311, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %1121) #9
  br label %8011

7959:                                             ; preds = %7955
  call void @llvm.lifetime.start.p0(i64 56, ptr %1123) #9
  %7960 = load i32, ptr %1118, align 4, !tbaa !5
  %7961 = sub nsw i32 %7960, 1
  %7962 = sext i32 %7961 to i64
  %7963 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1111, i64 0, i64 %7962
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1125, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %7964 unwind label %7977

7964:                                             ; preds = %7959
  %7965 = load i32, ptr %1121, align 4, !tbaa !5
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1124, ptr noundef %1125, i32 noundef %7965)
          to label %7966 unwind label %7981

7966:                                             ; preds = %7964
  call void @llvm.lifetime.start.p0(i64 8, ptr %1126) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1127, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %7967 unwind label %7985

7967:                                             ; preds = %7966
  %7968 = load i32, ptr %1120, align 4, !tbaa !5
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1126, ptr noundef %1127, i32 noundef %7968)
          to label %7969 unwind label %7989

7969:                                             ; preds = %7967
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1123, ptr noundef nonnull align 8 dereferenceable(32) %7963, ptr noundef %1124, ptr noundef nonnull align 8 dereferenceable(8) %1126)
          to label %7970 unwind label %7993

7970:                                             ; preds = %7969
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1122, ptr noundef nonnull align 8 dereferenceable(56) %1123)
          to label %7971 unwind label %7997

7971:                                             ; preds = %7970
  %7972 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %1119, ptr noundef %1122)
          to label %7973 unwind label %8001

7973:                                             ; preds = %7971
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1122) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1123) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1126) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1127) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1126) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1124) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1125) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1123) #9
  br label %7974

7974:                                             ; preds = %7973
  %7975 = load i32, ptr %1121, align 4, !tbaa !5
  %7976 = add nsw i32 %7975, 1
  store i32 %7976, ptr %1121, align 4, !tbaa !5
  br label %7955, !llvm.loop !29

7977:                                             ; preds = %7959
  %7978 = landingpad { ptr, i32 }
          cleanup
  %7979 = extractvalue { ptr, i32 } %7978, 0
  store ptr %7979, ptr %8, align 8
  %7980 = extractvalue { ptr, i32 } %7978, 1
  store i32 %7980, ptr %9, align 4
  br label %8010

7981:                                             ; preds = %7964
  %7982 = landingpad { ptr, i32 }
          cleanup
  %7983 = extractvalue { ptr, i32 } %7982, 0
  store ptr %7983, ptr %8, align 8
  %7984 = extractvalue { ptr, i32 } %7982, 1
  store i32 %7984, ptr %9, align 4
  br label %8009

7985:                                             ; preds = %7966
  %7986 = landingpad { ptr, i32 }
          cleanup
  %7987 = extractvalue { ptr, i32 } %7986, 0
  store ptr %7987, ptr %8, align 8
  %7988 = extractvalue { ptr, i32 } %7986, 1
  store i32 %7988, ptr %9, align 4
  br label %8008

7989:                                             ; preds = %7967
  %7990 = landingpad { ptr, i32 }
          cleanup
  %7991 = extractvalue { ptr, i32 } %7990, 0
  store ptr %7991, ptr %8, align 8
  %7992 = extractvalue { ptr, i32 } %7990, 1
  store i32 %7992, ptr %9, align 4
  br label %8007

7993:                                             ; preds = %7969
  %7994 = landingpad { ptr, i32 }
          cleanup
  %7995 = extractvalue { ptr, i32 } %7994, 0
  store ptr %7995, ptr %8, align 8
  %7996 = extractvalue { ptr, i32 } %7994, 1
  store i32 %7996, ptr %9, align 4
  br label %8006

7997:                                             ; preds = %7970
  %7998 = landingpad { ptr, i32 }
          cleanup
  %7999 = extractvalue { ptr, i32 } %7998, 0
  store ptr %7999, ptr %8, align 8
  %8000 = extractvalue { ptr, i32 } %7998, 1
  store i32 %8000, ptr %9, align 4
  br label %8005

8001:                                             ; preds = %7971
  %8002 = landingpad { ptr, i32 }
          cleanup
  %8003 = extractvalue { ptr, i32 } %8002, 0
  store ptr %8003, ptr %8, align 8
  %8004 = extractvalue { ptr, i32 } %8002, 1
  store i32 %8004, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1122) #9
  br label %8005

8005:                                             ; preds = %8001, %7997
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1123) #9
  br label %8006

8006:                                             ; preds = %8005, %7993
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1126) #9
  br label %8007

8007:                                             ; preds = %8006, %7989
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1127) #9
  br label %8008

8008:                                             ; preds = %8007, %7985
  call void @llvm.lifetime.end.p0(i64 8, ptr %1126) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1124) #9
  br label %8009

8009:                                             ; preds = %8008, %7981
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1125) #9
  br label %8010

8010:                                             ; preds = %8009, %7977
  call void @llvm.lifetime.end.p0(i64 56, ptr %1123) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %1121) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %1120) #9
  br label %8033

8011:                                             ; preds = %7958
  br label %8012

8012:                                             ; preds = %8011
  %8013 = load i32, ptr %1120, align 4, !tbaa !5
  %8014 = add nsw i32 %8013, 1
  store i32 %8014, ptr %1120, align 4, !tbaa !5
  br label %7946, !llvm.loop !30

8015:                                             ; preds = %7949
  call void @_ZN6Halide4ExprC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %1129, ptr noundef nonnull align 8 dereferenceable(8) %1119) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1130) #9
  %8016 = load i32, ptr %1118, align 4, !tbaa !5
  %8017 = sext i32 %8016 to i64
  %8018 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1111, i64 0, i64 %8017
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1130, ptr noundef nonnull align 8 dereferenceable(32) %8018, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8019 unwind label %8024

8019:                                             ; preds = %8015
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1128, ptr noundef nonnull align 8 dereferenceable(56) %1130, ptr noundef %1129)
          to label %8020 unwind label %8028

8020:                                             ; preds = %8019
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1128) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1130) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1130) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1129) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1119) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1119) #9
  br label %8021

8021:                                             ; preds = %8020
  %8022 = load i32, ptr %1118, align 4, !tbaa !5
  %8023 = add nsw i32 %8022, 1
  store i32 %8023, ptr %1118, align 4, !tbaa !5
  br label %6282, !llvm.loop !31

8024:                                             ; preds = %8015
  %8025 = landingpad { ptr, i32 }
          cleanup
  %8026 = extractvalue { ptr, i32 } %8025, 0
  store ptr %8026, ptr %8, align 8
  %8027 = extractvalue { ptr, i32 } %8025, 1
  store i32 %8027, ptr %9, align 4
  br label %8032

8028:                                             ; preds = %8019
  %8029 = landingpad { ptr, i32 }
          cleanup
  %8030 = extractvalue { ptr, i32 } %8029, 0
  store ptr %8030, ptr %8, align 8
  %8031 = extractvalue { ptr, i32 } %8029, 1
  store i32 %8031, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1130) #9
  br label %8032

8032:                                             ; preds = %8028, %8024
  call void @llvm.lifetime.end.p0(i64 56, ptr %1130) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1129) #9
  br label %8033

8033:                                             ; preds = %8032, %8010
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1119) #9
  br label %8034

8034:                                             ; preds = %8033, %7950
  call void @llvm.lifetime.end.p0(i64 8, ptr %1119) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %1118) #9
  br label %8359

8035:                                             ; preds = %6285
  call void @llvm.lifetime.start.p0(i64 32, ptr %1131) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1132) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %1133) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1133) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1132, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %1133)
          to label %8036 unwind label %8192

8036:                                             ; preds = %8035
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1131, ptr noundef nonnull align 8 dereferenceable(32) %1132)
          to label %8037 unwind label %8196

8037:                                             ; preds = %8036
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1132) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1133) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1133) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1132) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1137) #9
  %8038 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1111, i64 0, i64 7
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1137, ptr noundef nonnull align 8 dereferenceable(32) %8038, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8039 unwind label %8201

8039:                                             ; preds = %8037
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1136, ptr noundef nonnull align 8 dereferenceable(56) %1137)
          to label %8040 unwind label %8205

8040:                                             ; preds = %8039
  call void @llvm.lifetime.start.p0(i64 56, ptr %1139) #9
  %8041 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1111, i64 0, i64 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %1143) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1144, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %8042 unwind label %8209

8042:                                             ; preds = %8040
  invoke void @_ZN6Halide3sinENS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1143, ptr noundef %1144)
          to label %8043 unwind label %8213

8043:                                             ; preds = %8042
  invoke void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1142, ptr noundef nonnull align 8 dereferenceable(8) %1143, i32 noundef 10000)
          to label %8044 unwind label %8217

8044:                                             ; preds = %8043
  invoke void @_ZN6Halide4castIiEENS_4ExprES1_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1141, ptr noundef %1142)
          to label %8045 unwind label %8221

8045:                                             ; preds = %8044
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1145, i32 noundef 0)
          to label %8046 unwind label %8225

8046:                                             ; preds = %8045
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1146, i32 noundef 100000)
          to label %8047 unwind label %8229

8047:                                             ; preds = %8046
  invoke void @_ZN6Halide5clampENS_4ExprES0_S0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1140, ptr noundef %1141, ptr noundef %1145, ptr noundef %1146)
          to label %8048 unwind label %8233

8048:                                             ; preds = %8047
  call void @llvm.lifetime.start.p0(i64 8, ptr %1147) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1150) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1152, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %8049 unwind label %8237

8049:                                             ; preds = %8048
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1153, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8050 unwind label %8241

8050:                                             ; preds = %8049
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1151, ptr noundef %1152, ptr noundef %1153)
          to label %8051 unwind label %8245

8051:                                             ; preds = %8050
  invoke void @_ZN6Halide3sinENS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1150, ptr noundef %1151)
          to label %8052 unwind label %8249

8052:                                             ; preds = %8051
  invoke void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1149, ptr noundef nonnull align 8 dereferenceable(8) %1150, i32 noundef 10000)
          to label %8053 unwind label %8253

8053:                                             ; preds = %8052
  invoke void @_ZN6Halide4castIiEENS_4ExprES1_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1148, ptr noundef %1149)
          to label %8054 unwind label %8257

8054:                                             ; preds = %8053
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1154, i32 noundef 0)
          to label %8055 unwind label %8261

8055:                                             ; preds = %8054
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1155, i32 noundef 100000)
          to label %8056 unwind label %8265

8056:                                             ; preds = %8055
  invoke void @_ZN6Halide5clampENS_4ExprES0_S0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1147, ptr noundef %1148, ptr noundef %1154, ptr noundef %1155)
          to label %8057 unwind label %8269

8057:                                             ; preds = %8056
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1139, ptr noundef nonnull align 8 dereferenceable(32) %8041, ptr noundef %1140, ptr noundef nonnull align 8 dereferenceable(8) %1147)
          to label %8058 unwind label %8273

8058:                                             ; preds = %8057
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1138, ptr noundef nonnull align 8 dereferenceable(56) %1139)
          to label %8059 unwind label %8277

8059:                                             ; preds = %8058
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1135, ptr noundef %1136, ptr noundef %1138)
          to label %8060 unwind label %8281

8060:                                             ; preds = %8059
  call void @llvm.lifetime.start.p0(i64 56, ptr %1156) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1156, ptr noundef nonnull align 8 dereferenceable(32) %1131, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8061 unwind label %8285

8061:                                             ; preds = %8060
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1134, ptr noundef nonnull align 8 dereferenceable(56) %1156, ptr noundef %1135)
          to label %8062 unwind label %8289

8062:                                             ; preds = %8061
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1134) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1156) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1156) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1135) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1138) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1139) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1147) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1155) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1154) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1148) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1149) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1150) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1151) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1153) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1152) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1150) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1147) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1140) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1146) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1145) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1141) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1142) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1143) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1144) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1143) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1139) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1136) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1137) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1137) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1157, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %8063 unwind label %8315

8063:                                             ; preds = %8062
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1158, i32 noundef 0)
          to label %8064 unwind label %8319

8064:                                             ; preds = %8063
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1159, i32 noundef 2048)
          to label %8065 unwind label %8323

8065:                                             ; preds = %8064
  %8066 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1131, ptr noundef %1157, ptr noundef %1158, ptr noundef %1159)
          to label %8067 unwind label %8327

8067:                                             ; preds = %8065
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1160, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8068 unwind label %8327

8068:                                             ; preds = %8067
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1161, i32 noundef 0)
          to label %8069 unwind label %8331

8069:                                             ; preds = %8068
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1162, i32 noundef 2048)
          to label %8070 unwind label %8335

8070:                                             ; preds = %8069
  %8071 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %8066, ptr noundef %1160, ptr noundef %1161, ptr noundef %1162)
          to label %8072 unwind label %8339

8072:                                             ; preds = %8070
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1162) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1161) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1160) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1159) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1158) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1157) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1164) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1165, ptr noundef nonnull align 8 dereferenceable(32) %1131) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %1164, ptr noundef %1165)
          to label %8073 unwind label %8348

8073:                                             ; preds = %8072
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %1163, ptr noundef nonnull align 8 dereferenceable(8) %1164, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %8074 unwind label %8352

8074:                                             ; preds = %8073
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %1163) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1164) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1165) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1164) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1131) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1131) #9
  %8075 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1111, i32 0, i32 0
  %8076 = getelementptr inbounds %"class.Halide::Func", ptr %8075, i64 8
  br label %8077

8077:                                             ; preds = %8077, %8074
  %8078 = phi ptr [ %8076, %8074 ], [ %8079, %8077 ]
  %8079 = getelementptr inbounds %"class.Halide::Func", ptr %8078, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8079) #9
  %8080 = icmp eq ptr %8079, %8075
  br i1 %8080, label %8081, label %8077

8081:                                             ; preds = %8077
  call void @llvm.lifetime.end.p0(i64 256, ptr %1111) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %1110) #9
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1108) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1108) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1166) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1167) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %1168) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1168) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1167, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %1168)
          to label %8082 unwind label %8369

8082:                                             ; preds = %8081
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1166, ptr noundef nonnull align 8 dereferenceable(32) %1167)
          to label %8083 unwind label %8373

8083:                                             ; preds = %8082
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1167) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1168) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1168) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1167) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1169) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1170) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %1171) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1171) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1170, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %1171)
          to label %8084 unwind label %8378

8084:                                             ; preds = %8083
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1169, ptr noundef nonnull align 8 dereferenceable(32) %1170)
          to label %8085 unwind label %8382

8085:                                             ; preds = %8084
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1170) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1171) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1171) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1170) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1172) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1173) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %1174) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1174) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1173, ptr noundef @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %1174)
          to label %8086 unwind label %8387

8086:                                             ; preds = %8085
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1172, ptr noundef nonnull align 8 dereferenceable(32) %1173)
          to label %8087 unwind label %8391

8087:                                             ; preds = %8086
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1173) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1174) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1174) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1173) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1177, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %8088 unwind label %8396

8088:                                             ; preds = %8087
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1178, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8089 unwind label %8400

8089:                                             ; preds = %8088
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1176, ptr noundef %1177, ptr noundef %1178)
          to label %8090 unwind label %8404

8090:                                             ; preds = %8089
  call void @llvm.lifetime.start.p0(i64 56, ptr %1179) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1179, ptr noundef nonnull align 8 dereferenceable(32) %1166, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8091 unwind label %8408

8091:                                             ; preds = %8090
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1175, ptr noundef nonnull align 8 dereferenceable(56) %1179, ptr noundef %1176)
          to label %8092 unwind label %8412

8092:                                             ; preds = %8091
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1175) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1179) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1179) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1176) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1178) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1177) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1181) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1182, i32 noundef 3)
          to label %8093 unwind label %8419

8093:                                             ; preds = %8092
  call void @llvm.lifetime.start.p0(i64 4, ptr %1183) #9
  store i32 2, ptr %1183, align 4, !tbaa !5
  invoke void @_ZNK6Halide4FuncclIJiEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES3_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1181, ptr noundef nonnull align 8 dereferenceable(32) %1166, ptr noundef %1182, ptr noundef nonnull align 4 dereferenceable(4) %1183)
          to label %8094 unwind label %8423

8094:                                             ; preds = %8093
  call void @llvm.lifetime.start.p0(i64 56, ptr %1184) #9
  invoke void @_ZNK6Halide4FuncclIJEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_3VarEDpT_EE5valueENS_7FuncRefEE4typeEDpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1184, ptr noundef nonnull align 8 dereferenceable(32) %1169)
          to label %8095 unwind label %8427

8095:                                             ; preds = %8094
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1180, ptr noundef nonnull align 8 dereferenceable(56) %1184, ptr noundef nonnull align 8 dereferenceable(56) %1181)
          to label %8096 unwind label %8431

8096:                                             ; preds = %8095
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1180) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1184) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1184) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1181) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %1183) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1182) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1181) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr %1185) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1186, i32 noundef 0)
          to label %8097 unwind label %8438

8097:                                             ; preds = %8096
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1187, i32 noundef 100)
          to label %8098 unwind label %8442

8098:                                             ; preds = %8097
  invoke void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %1185, ptr noundef %1186, ptr noundef %1187)
          to label %8099 unwind label %8446

8099:                                             ; preds = %8098
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1187) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1186) #9
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1189, ptr noundef nonnull align 8 dereferenceable(200) %1185)
          to label %8100 unwind label %8451

8100:                                             ; preds = %8099
  call void @llvm.lifetime.start.p0(i64 56, ptr %1190) #9
  invoke void @_ZNK6Halide4FuncclIJEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_3VarEDpT_EE5valueENS_7FuncRefEE4typeEDpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1190, ptr noundef nonnull align 8 dereferenceable(32) %1169)
          to label %8101 unwind label %8455

8101:                                             ; preds = %8100
  invoke void @_ZN6Halide7FuncRefpLENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1188, ptr noundef nonnull align 8 dereferenceable(56) %1190, ptr noundef %1189)
          to label %8102 unwind label %8459

8102:                                             ; preds = %8101
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1188) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1190) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1190) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1189) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1195) #9
  invoke void @_ZNK6Halide4FuncclIJEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_3VarEDpT_EE5valueENS_7FuncRefEE4typeEDpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1195, ptr noundef nonnull align 8 dereferenceable(32) %1169)
          to label %8103 unwind label %8464

8103:                                             ; preds = %8102
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1194, ptr noundef nonnull align 8 dereferenceable(56) %1195)
          to label %8104 unwind label %8468

8104:                                             ; preds = %8103
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1196, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %8105 unwind label %8472

8105:                                             ; preds = %8104
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1193, ptr noundef %1194, ptr noundef %1196)
          to label %8106 unwind label %8476

8106:                                             ; preds = %8105
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1197, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8107 unwind label %8480

8107:                                             ; preds = %8106
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1192, ptr noundef %1193, ptr noundef %1197)
          to label %8108 unwind label %8484

8108:                                             ; preds = %8107
  call void @llvm.lifetime.start.p0(i64 56, ptr %1198) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1198, ptr noundef nonnull align 8 dereferenceable(32) %1172, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8109 unwind label %8488

8109:                                             ; preds = %8108
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1191, ptr noundef nonnull align 8 dereferenceable(56) %1198, ptr noundef %1192)
          to label %8110 unwind label %8492

8110:                                             ; preds = %8109
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1191) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1198) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1198) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1192) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1197) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1193) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1196) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1194) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1195) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1195) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1199, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %8111 unwind label %8451

8111:                                             ; preds = %8110
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1200, i32 noundef 0)
          to label %8112 unwind label %8503

8112:                                             ; preds = %8111
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1201, i32 noundef 1024)
          to label %8113 unwind label %8507

8113:                                             ; preds = %8112
  %8114 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1172, ptr noundef %1199, ptr noundef %1200, ptr noundef %1201)
          to label %8115 unwind label %8511

8115:                                             ; preds = %8113
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1202, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8116 unwind label %8511

8116:                                             ; preds = %8115
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1203, i32 noundef 0)
          to label %8117 unwind label %8515

8117:                                             ; preds = %8116
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1204, i32 noundef 2048)
          to label %8118 unwind label %8519

8118:                                             ; preds = %8117
  %8119 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %8114, ptr noundef %1202, ptr noundef %1203, ptr noundef %1204)
          to label %8120 unwind label %8523

8120:                                             ; preds = %8118
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1204) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1203) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1202) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1201) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1200) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1199) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1206) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1207, ptr noundef nonnull align 8 dereferenceable(32) %1172) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %1206, ptr noundef %1207)
          to label %8121 unwind label %8532

8121:                                             ; preds = %8120
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %1205, ptr noundef nonnull align 8 dereferenceable(8) %1206, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %8122 unwind label %8536

8122:                                             ; preds = %8121
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %1205) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1206) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1207) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1206) #9
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %1185) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %1185) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1172) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1172) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1169) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1169) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1166) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1166) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1208) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1209) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %1210) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1210) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1209, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %1210)
          to label %8123 unwind label %8547

8123:                                             ; preds = %8122
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1208, ptr noundef nonnull align 8 dereferenceable(32) %1209)
          to label %8124 unwind label %8551

8124:                                             ; preds = %8123
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1209) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1210) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1210) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1209) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1211) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1212) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %1213) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1213) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1212, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %1213)
          to label %8125 unwind label %8556

8125:                                             ; preds = %8124
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1211, ptr noundef nonnull align 8 dereferenceable(32) %1212)
          to label %8126 unwind label %8560

8126:                                             ; preds = %8125
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1212) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1213) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1213) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1212) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1216, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %8127 unwind label %8565

8127:                                             ; preds = %8126
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1217, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8128 unwind label %8569

8128:                                             ; preds = %8127
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1215, ptr noundef %1216, ptr noundef %1217)
          to label %8129 unwind label %8573

8129:                                             ; preds = %8128
  call void @llvm.lifetime.start.p0(i64 56, ptr %1218) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1218, ptr noundef nonnull align 8 dereferenceable(32) %1208, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8130 unwind label %8577

8130:                                             ; preds = %8129
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1214, ptr noundef nonnull align 8 dereferenceable(56) %1218, ptr noundef %1215)
          to label %8131 unwind label %8581

8131:                                             ; preds = %8130
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1214) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1218) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1218) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1215) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1217) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1216) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr %1219) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1220, i32 noundef 0)
          to label %8132 unwind label %8588

8132:                                             ; preds = %8131
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1221, i32 noundef 10)
          to label %8133 unwind label %8592

8133:                                             ; preds = %8132
  invoke void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %1219, ptr noundef %1220, ptr noundef %1221)
          to label %8134 unwind label %8596

8134:                                             ; preds = %8133
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1221) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1220) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1225) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1225, ptr noundef nonnull align 8 dereferenceable(32) %1208, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8135 unwind label %8601

8135:                                             ; preds = %8134
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1224, ptr noundef nonnull align 8 dereferenceable(56) %1225)
          to label %8136 unwind label %8605

8136:                                             ; preds = %8135
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1226, ptr noundef nonnull align 8 dereferenceable(200) %1219)
          to label %8137 unwind label %8609

8137:                                             ; preds = %8136
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1223, ptr noundef %1224, ptr noundef %1226)
          to label %8138 unwind label %8613

8138:                                             ; preds = %8137
  call void @llvm.lifetime.start.p0(i64 56, ptr %1227) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1227, ptr noundef nonnull align 8 dereferenceable(32) %1208, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8139 unwind label %8617

8139:                                             ; preds = %8138
  invoke void @_ZN6Halide7FuncRefpLENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1222, ptr noundef nonnull align 8 dereferenceable(56) %1227, ptr noundef %1223)
          to label %8140 unwind label %8621

8140:                                             ; preds = %8139
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1222) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1227) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1227) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1223) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1226) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1224) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1225) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1225) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1229) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1229, ptr noundef nonnull align 8 dereferenceable(32) %1208, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8141 unwind label %8630

8141:                                             ; preds = %8140
  call void @llvm.lifetime.start.p0(i64 56, ptr %1230) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1230, ptr noundef nonnull align 8 dereferenceable(32) %1211, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8142 unwind label %8634

8142:                                             ; preds = %8141
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1228, ptr noundef nonnull align 8 dereferenceable(56) %1230, ptr noundef nonnull align 8 dereferenceable(56) %1229)
          to label %8143 unwind label %8638

8143:                                             ; preds = %8142
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1228) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1230) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1230) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1229) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1229) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1231, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %8144 unwind label %8644

8144:                                             ; preds = %8143
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1232, i32 noundef 0)
          to label %8145 unwind label %8648

8145:                                             ; preds = %8144
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1233, i32 noundef 10)
          to label %8146 unwind label %8652

8146:                                             ; preds = %8145
  %8147 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1211, ptr noundef %1231, ptr noundef %1232, ptr noundef %1233)
          to label %8148 unwind label %8656

8148:                                             ; preds = %8146
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1234, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8149 unwind label %8656

8149:                                             ; preds = %8148
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1235, i32 noundef 0)
          to label %8150 unwind label %8660

8150:                                             ; preds = %8149
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1236, i32 noundef 2048)
          to label %8151 unwind label %8664

8151:                                             ; preds = %8150
  %8152 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %8147, ptr noundef %1234, ptr noundef %1235, ptr noundef %1236)
          to label %8153 unwind label %8668

8153:                                             ; preds = %8151
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1236) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1235) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1234) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1233) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1232) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1231) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1238) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1239, ptr noundef nonnull align 8 dereferenceable(32) %1211) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %1238, ptr noundef %1239)
          to label %8154 unwind label %8677

8154:                                             ; preds = %8153
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %1237, ptr noundef nonnull align 8 dereferenceable(8) %1238, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %8155 unwind label %8681

8155:                                             ; preds = %8154
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %1237) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1238) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1239) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1238) #9
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %1219) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %1219) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1211) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1211) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1208) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1208) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1240) #9
  %8156 = invoke { i64, ptr } @_ZN6Halide5FloatEii(i32 noundef 32, i32 noundef 1)
          to label %8157 unwind label %8691

8157:                                             ; preds = %8155
  %8158 = getelementptr inbounds { i64, ptr }, ptr %1241, i32 0, i32 0
  %8159 = extractvalue { i64, ptr } %8156, 0
  store i64 %8159, ptr %8158, align 8
  %8160 = getelementptr inbounds { i64, ptr }, ptr %1241, i32 0, i32 1
  %8161 = extractvalue { i64, ptr } %8156, 1
  store ptr %8161, ptr %8160, align 8
  %8162 = getelementptr inbounds { i64, ptr }, ptr %1241, i32 0, i32 0
  %8163 = load i64, ptr %8162, align 8
  %8164 = getelementptr inbounds { i64, ptr }, ptr %1241, i32 0, i32 1
  %8165 = load ptr, ptr %8164, align 8
  invoke void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56) %1240, i64 %8163, ptr %8165, i32 noundef 2)
          to label %8166 unwind label %8691

8166:                                             ; preds = %8157
  call void @llvm.lifetime.start.p0(i64 256, ptr %1242) #9
  %8167 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1242, i32 0, i32 0
  %8168 = getelementptr inbounds %"class.Halide::Func", ptr %8167, i64 8
  br label %8169

8169:                                             ; preds = %8171, %8166
  %8170 = phi ptr [ %8167, %8166 ], [ %8172, %8171 ]
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %8170)
          to label %8171 unwind label %8695

8171:                                             ; preds = %8169
  %8172 = getelementptr inbounds %"class.Halide::Func", ptr %8170, i64 1
  %8173 = icmp eq ptr %8172, %8168
  br i1 %8173, label %8174, label %8169

8174:                                             ; preds = %8171
  call void @llvm.lifetime.start.p0(i64 256, ptr %1243) #9
  %8175 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1243, i32 0, i32 0
  %8176 = getelementptr inbounds %"class.Halide::Func", ptr %8175, i64 8
  br label %8177

8177:                                             ; preds = %8179, %8174
  %8178 = phi ptr [ %8175, %8174 ], [ %8180, %8179 ]
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %8178)
          to label %8179 unwind label %8705

8179:                                             ; preds = %8177
  %8180 = getelementptr inbounds %"class.Halide::Func", ptr %8178, i64 1
  %8181 = icmp eq ptr %8180, %8176
  br i1 %8181, label %8182, label %8177

8182:                                             ; preds = %8179
  call void @llvm.lifetime.start.p0(i64 4, ptr %1244) #9
  store i32 2048, ptr %1244, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %1245) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1246) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %1247) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1247) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1246, ptr noundef @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %1247)
          to label %8183 unwind label %8715

8183:                                             ; preds = %8182
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1245, ptr noundef nonnull align 8 dereferenceable(32) %1246)
          to label %8184 unwind label %8719

8184:                                             ; preds = %8183
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1246) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1247) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1247) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1246) #9
  invoke void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_EEENS_4ExprEDpOT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1249, ptr noundef nonnull align 8 dereferenceable(56) %1240, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8185 unwind label %8724

8185:                                             ; preds = %8184
  call void @llvm.lifetime.start.p0(i64 56, ptr %1250) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1250, ptr noundef nonnull align 8 dereferenceable(32) %1245, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8186 unwind label %8728

8186:                                             ; preds = %8185
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1248, ptr noundef nonnull align 8 dereferenceable(56) %1250, ptr noundef %1249)
          to label %8187 unwind label %8732

8187:                                             ; preds = %8186
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1248) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1250) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1250) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1249) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %1251) #9
  store i32 4, ptr %1251, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %1252) #9
  store i32 0, ptr %1252, align 4, !tbaa !5
  br label %8188

8188:                                             ; preds = %8804, %8187
  %8189 = load i32, ptr %1252, align 4, !tbaa !5
  %8190 = icmp slt i32 %8189, 4
  br i1 %8190, label %8737, label %8191

8191:                                             ; preds = %8188
  store i32 44, ptr %311, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %1252) #9
  br label %8976

8192:                                             ; preds = %8035
  %8193 = landingpad { ptr, i32 }
          cleanup
  %8194 = extractvalue { ptr, i32 } %8193, 0
  store ptr %8194, ptr %8, align 8
  %8195 = extractvalue { ptr, i32 } %8193, 1
  store i32 %8195, ptr %9, align 4
  br label %8200

8196:                                             ; preds = %8036
  %8197 = landingpad { ptr, i32 }
          cleanup
  %8198 = extractvalue { ptr, i32 } %8197, 0
  store ptr %8198, ptr %8, align 8
  %8199 = extractvalue { ptr, i32 } %8197, 1
  store i32 %8199, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1132) #9
  br label %8200

8200:                                             ; preds = %8196, %8192
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1133) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1133) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1132) #9
  br label %8358

8201:                                             ; preds = %8037
  %8202 = landingpad { ptr, i32 }
          cleanup
  %8203 = extractvalue { ptr, i32 } %8202, 0
  store ptr %8203, ptr %8, align 8
  %8204 = extractvalue { ptr, i32 } %8202, 1
  store i32 %8204, ptr %9, align 4
  br label %8314

8205:                                             ; preds = %8039
  %8206 = landingpad { ptr, i32 }
          cleanup
  %8207 = extractvalue { ptr, i32 } %8206, 0
  store ptr %8207, ptr %8, align 8
  %8208 = extractvalue { ptr, i32 } %8206, 1
  store i32 %8208, ptr %9, align 4
  br label %8313

8209:                                             ; preds = %8040
  %8210 = landingpad { ptr, i32 }
          cleanup
  %8211 = extractvalue { ptr, i32 } %8210, 0
  store ptr %8211, ptr %8, align 8
  %8212 = extractvalue { ptr, i32 } %8210, 1
  store i32 %8212, ptr %9, align 4
  br label %8312

8213:                                             ; preds = %8042
  %8214 = landingpad { ptr, i32 }
          cleanup
  %8215 = extractvalue { ptr, i32 } %8214, 0
  store ptr %8215, ptr %8, align 8
  %8216 = extractvalue { ptr, i32 } %8214, 1
  store i32 %8216, ptr %9, align 4
  br label %8311

8217:                                             ; preds = %8043
  %8218 = landingpad { ptr, i32 }
          cleanup
  %8219 = extractvalue { ptr, i32 } %8218, 0
  store ptr %8219, ptr %8, align 8
  %8220 = extractvalue { ptr, i32 } %8218, 1
  store i32 %8220, ptr %9, align 4
  br label %8310

8221:                                             ; preds = %8044
  %8222 = landingpad { ptr, i32 }
          cleanup
  %8223 = extractvalue { ptr, i32 } %8222, 0
  store ptr %8223, ptr %8, align 8
  %8224 = extractvalue { ptr, i32 } %8222, 1
  store i32 %8224, ptr %9, align 4
  br label %8309

8225:                                             ; preds = %8045
  %8226 = landingpad { ptr, i32 }
          cleanup
  %8227 = extractvalue { ptr, i32 } %8226, 0
  store ptr %8227, ptr %8, align 8
  %8228 = extractvalue { ptr, i32 } %8226, 1
  store i32 %8228, ptr %9, align 4
  br label %8308

8229:                                             ; preds = %8046
  %8230 = landingpad { ptr, i32 }
          cleanup
  %8231 = extractvalue { ptr, i32 } %8230, 0
  store ptr %8231, ptr %8, align 8
  %8232 = extractvalue { ptr, i32 } %8230, 1
  store i32 %8232, ptr %9, align 4
  br label %8307

8233:                                             ; preds = %8047
  %8234 = landingpad { ptr, i32 }
          cleanup
  %8235 = extractvalue { ptr, i32 } %8234, 0
  store ptr %8235, ptr %8, align 8
  %8236 = extractvalue { ptr, i32 } %8234, 1
  store i32 %8236, ptr %9, align 4
  br label %8306

8237:                                             ; preds = %8048
  %8238 = landingpad { ptr, i32 }
          cleanup
  %8239 = extractvalue { ptr, i32 } %8238, 0
  store ptr %8239, ptr %8, align 8
  %8240 = extractvalue { ptr, i32 } %8238, 1
  store i32 %8240, ptr %9, align 4
  br label %8305

8241:                                             ; preds = %8049
  %8242 = landingpad { ptr, i32 }
          cleanup
  %8243 = extractvalue { ptr, i32 } %8242, 0
  store ptr %8243, ptr %8, align 8
  %8244 = extractvalue { ptr, i32 } %8242, 1
  store i32 %8244, ptr %9, align 4
  br label %8304

8245:                                             ; preds = %8050
  %8246 = landingpad { ptr, i32 }
          cleanup
  %8247 = extractvalue { ptr, i32 } %8246, 0
  store ptr %8247, ptr %8, align 8
  %8248 = extractvalue { ptr, i32 } %8246, 1
  store i32 %8248, ptr %9, align 4
  br label %8303

8249:                                             ; preds = %8051
  %8250 = landingpad { ptr, i32 }
          cleanup
  %8251 = extractvalue { ptr, i32 } %8250, 0
  store ptr %8251, ptr %8, align 8
  %8252 = extractvalue { ptr, i32 } %8250, 1
  store i32 %8252, ptr %9, align 4
  br label %8302

8253:                                             ; preds = %8052
  %8254 = landingpad { ptr, i32 }
          cleanup
  %8255 = extractvalue { ptr, i32 } %8254, 0
  store ptr %8255, ptr %8, align 8
  %8256 = extractvalue { ptr, i32 } %8254, 1
  store i32 %8256, ptr %9, align 4
  br label %8301

8257:                                             ; preds = %8053
  %8258 = landingpad { ptr, i32 }
          cleanup
  %8259 = extractvalue { ptr, i32 } %8258, 0
  store ptr %8259, ptr %8, align 8
  %8260 = extractvalue { ptr, i32 } %8258, 1
  store i32 %8260, ptr %9, align 4
  br label %8300

8261:                                             ; preds = %8054
  %8262 = landingpad { ptr, i32 }
          cleanup
  %8263 = extractvalue { ptr, i32 } %8262, 0
  store ptr %8263, ptr %8, align 8
  %8264 = extractvalue { ptr, i32 } %8262, 1
  store i32 %8264, ptr %9, align 4
  br label %8299

8265:                                             ; preds = %8055
  %8266 = landingpad { ptr, i32 }
          cleanup
  %8267 = extractvalue { ptr, i32 } %8266, 0
  store ptr %8267, ptr %8, align 8
  %8268 = extractvalue { ptr, i32 } %8266, 1
  store i32 %8268, ptr %9, align 4
  br label %8298

8269:                                             ; preds = %8056
  %8270 = landingpad { ptr, i32 }
          cleanup
  %8271 = extractvalue { ptr, i32 } %8270, 0
  store ptr %8271, ptr %8, align 8
  %8272 = extractvalue { ptr, i32 } %8270, 1
  store i32 %8272, ptr %9, align 4
  br label %8297

8273:                                             ; preds = %8057
  %8274 = landingpad { ptr, i32 }
          cleanup
  %8275 = extractvalue { ptr, i32 } %8274, 0
  store ptr %8275, ptr %8, align 8
  %8276 = extractvalue { ptr, i32 } %8274, 1
  store i32 %8276, ptr %9, align 4
  br label %8296

8277:                                             ; preds = %8058
  %8278 = landingpad { ptr, i32 }
          cleanup
  %8279 = extractvalue { ptr, i32 } %8278, 0
  store ptr %8279, ptr %8, align 8
  %8280 = extractvalue { ptr, i32 } %8278, 1
  store i32 %8280, ptr %9, align 4
  br label %8295

8281:                                             ; preds = %8059
  %8282 = landingpad { ptr, i32 }
          cleanup
  %8283 = extractvalue { ptr, i32 } %8282, 0
  store ptr %8283, ptr %8, align 8
  %8284 = extractvalue { ptr, i32 } %8282, 1
  store i32 %8284, ptr %9, align 4
  br label %8294

8285:                                             ; preds = %8060
  %8286 = landingpad { ptr, i32 }
          cleanup
  %8287 = extractvalue { ptr, i32 } %8286, 0
  store ptr %8287, ptr %8, align 8
  %8288 = extractvalue { ptr, i32 } %8286, 1
  store i32 %8288, ptr %9, align 4
  br label %8293

8289:                                             ; preds = %8061
  %8290 = landingpad { ptr, i32 }
          cleanup
  %8291 = extractvalue { ptr, i32 } %8290, 0
  store ptr %8291, ptr %8, align 8
  %8292 = extractvalue { ptr, i32 } %8290, 1
  store i32 %8292, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1156) #9
  br label %8293

8293:                                             ; preds = %8289, %8285
  call void @llvm.lifetime.end.p0(i64 56, ptr %1156) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1135) #9
  br label %8294

8294:                                             ; preds = %8293, %8281
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1138) #9
  br label %8295

8295:                                             ; preds = %8294, %8277
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1139) #9
  br label %8296

8296:                                             ; preds = %8295, %8273
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1147) #9
  br label %8297

8297:                                             ; preds = %8296, %8269
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1155) #9
  br label %8298

8298:                                             ; preds = %8297, %8265
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1154) #9
  br label %8299

8299:                                             ; preds = %8298, %8261
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1148) #9
  br label %8300

8300:                                             ; preds = %8299, %8257
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1149) #9
  br label %8301

8301:                                             ; preds = %8300, %8253
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1150) #9
  br label %8302

8302:                                             ; preds = %8301, %8249
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1151) #9
  br label %8303

8303:                                             ; preds = %8302, %8245
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1153) #9
  br label %8304

8304:                                             ; preds = %8303, %8241
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1152) #9
  br label %8305

8305:                                             ; preds = %8304, %8237
  call void @llvm.lifetime.end.p0(i64 8, ptr %1150) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1147) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1140) #9
  br label %8306

8306:                                             ; preds = %8305, %8233
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1146) #9
  br label %8307

8307:                                             ; preds = %8306, %8229
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1145) #9
  br label %8308

8308:                                             ; preds = %8307, %8225
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1141) #9
  br label %8309

8309:                                             ; preds = %8308, %8221
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1142) #9
  br label %8310

8310:                                             ; preds = %8309, %8217
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1143) #9
  br label %8311

8311:                                             ; preds = %8310, %8213
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1144) #9
  br label %8312

8312:                                             ; preds = %8311, %8209
  call void @llvm.lifetime.end.p0(i64 8, ptr %1143) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1139) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1136) #9
  br label %8313

8313:                                             ; preds = %8312, %8205
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1137) #9
  br label %8314

8314:                                             ; preds = %8313, %8201
  call void @llvm.lifetime.end.p0(i64 56, ptr %1137) #9
  br label %8357

8315:                                             ; preds = %8062
  %8316 = landingpad { ptr, i32 }
          cleanup
  %8317 = extractvalue { ptr, i32 } %8316, 0
  store ptr %8317, ptr %8, align 8
  %8318 = extractvalue { ptr, i32 } %8316, 1
  store i32 %8318, ptr %9, align 4
  br label %8357

8319:                                             ; preds = %8063
  %8320 = landingpad { ptr, i32 }
          cleanup
  %8321 = extractvalue { ptr, i32 } %8320, 0
  store ptr %8321, ptr %8, align 8
  %8322 = extractvalue { ptr, i32 } %8320, 1
  store i32 %8322, ptr %9, align 4
  br label %8347

8323:                                             ; preds = %8064
  %8324 = landingpad { ptr, i32 }
          cleanup
  %8325 = extractvalue { ptr, i32 } %8324, 0
  store ptr %8325, ptr %8, align 8
  %8326 = extractvalue { ptr, i32 } %8324, 1
  store i32 %8326, ptr %9, align 4
  br label %8346

8327:                                             ; preds = %8067, %8065
  %8328 = landingpad { ptr, i32 }
          cleanup
  %8329 = extractvalue { ptr, i32 } %8328, 0
  store ptr %8329, ptr %8, align 8
  %8330 = extractvalue { ptr, i32 } %8328, 1
  store i32 %8330, ptr %9, align 4
  br label %8345

8331:                                             ; preds = %8068
  %8332 = landingpad { ptr, i32 }
          cleanup
  %8333 = extractvalue { ptr, i32 } %8332, 0
  store ptr %8333, ptr %8, align 8
  %8334 = extractvalue { ptr, i32 } %8332, 1
  store i32 %8334, ptr %9, align 4
  br label %8344

8335:                                             ; preds = %8069
  %8336 = landingpad { ptr, i32 }
          cleanup
  %8337 = extractvalue { ptr, i32 } %8336, 0
  store ptr %8337, ptr %8, align 8
  %8338 = extractvalue { ptr, i32 } %8336, 1
  store i32 %8338, ptr %9, align 4
  br label %8343

8339:                                             ; preds = %8070
  %8340 = landingpad { ptr, i32 }
          cleanup
  %8341 = extractvalue { ptr, i32 } %8340, 0
  store ptr %8341, ptr %8, align 8
  %8342 = extractvalue { ptr, i32 } %8340, 1
  store i32 %8342, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1162) #9
  br label %8343

8343:                                             ; preds = %8339, %8335
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1161) #9
  br label %8344

8344:                                             ; preds = %8343, %8331
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1160) #9
  br label %8345

8345:                                             ; preds = %8344, %8327
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1159) #9
  br label %8346

8346:                                             ; preds = %8345, %8323
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1158) #9
  br label %8347

8347:                                             ; preds = %8346, %8319
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1157) #9
  br label %8357

8348:                                             ; preds = %8072
  %8349 = landingpad { ptr, i32 }
          cleanup
  %8350 = extractvalue { ptr, i32 } %8349, 0
  store ptr %8350, ptr %8, align 8
  %8351 = extractvalue { ptr, i32 } %8349, 1
  store i32 %8351, ptr %9, align 4
  br label %8356

8352:                                             ; preds = %8073
  %8353 = landingpad { ptr, i32 }
          cleanup
  %8354 = extractvalue { ptr, i32 } %8353, 0
  store ptr %8354, ptr %8, align 8
  %8355 = extractvalue { ptr, i32 } %8353, 1
  store i32 %8355, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1164) #9
  br label %8356

8356:                                             ; preds = %8352, %8348
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1165) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1164) #9
  br label %8357

8357:                                             ; preds = %8356, %8347, %8315, %8314
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1131) #9
  br label %8358

8358:                                             ; preds = %8357, %8200
  call void @llvm.lifetime.end.p0(i64 32, ptr %1131) #9
  br label %8359

8359:                                             ; preds = %8358, %8034, %7943, %7931, %7930
  %8360 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1111, i32 0, i32 0
  %8361 = getelementptr inbounds %"class.Halide::Func", ptr %8360, i64 8
  br label %8362

8362:                                             ; preds = %8362, %8359
  %8363 = phi ptr [ %8361, %8359 ], [ %8364, %8362 ]
  %8364 = getelementptr inbounds %"class.Halide::Func", ptr %8363, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8364) #9
  %8365 = icmp eq ptr %8364, %8360
  br i1 %8365, label %8366, label %8362

8366:                                             ; preds = %8362
  br label %8367

8367:                                             ; preds = %8366, %7921
  call void @llvm.lifetime.end.p0(i64 256, ptr %1111) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %1110) #9
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1108) #9
  br label %8368

8368:                                             ; preds = %8367, %7908
  call void @llvm.lifetime.end.p0(i64 56, ptr %1108) #9
  br label %9780

8369:                                             ; preds = %8081
  %8370 = landingpad { ptr, i32 }
          cleanup
  %8371 = extractvalue { ptr, i32 } %8370, 0
  store ptr %8371, ptr %8, align 8
  %8372 = extractvalue { ptr, i32 } %8370, 1
  store i32 %8372, ptr %9, align 4
  br label %8377

8373:                                             ; preds = %8082
  %8374 = landingpad { ptr, i32 }
          cleanup
  %8375 = extractvalue { ptr, i32 } %8374, 0
  store ptr %8375, ptr %8, align 8
  %8376 = extractvalue { ptr, i32 } %8374, 1
  store i32 %8376, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1167) #9
  br label %8377

8377:                                             ; preds = %8373, %8369
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1168) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1168) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1167) #9
  br label %8546

8378:                                             ; preds = %8083
  %8379 = landingpad { ptr, i32 }
          cleanup
  %8380 = extractvalue { ptr, i32 } %8379, 0
  store ptr %8380, ptr %8, align 8
  %8381 = extractvalue { ptr, i32 } %8379, 1
  store i32 %8381, ptr %9, align 4
  br label %8386

8382:                                             ; preds = %8084
  %8383 = landingpad { ptr, i32 }
          cleanup
  %8384 = extractvalue { ptr, i32 } %8383, 0
  store ptr %8384, ptr %8, align 8
  %8385 = extractvalue { ptr, i32 } %8383, 1
  store i32 %8385, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1170) #9
  br label %8386

8386:                                             ; preds = %8382, %8378
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1171) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1171) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1170) #9
  br label %8545

8387:                                             ; preds = %8085
  %8388 = landingpad { ptr, i32 }
          cleanup
  %8389 = extractvalue { ptr, i32 } %8388, 0
  store ptr %8389, ptr %8, align 8
  %8390 = extractvalue { ptr, i32 } %8388, 1
  store i32 %8390, ptr %9, align 4
  br label %8395

8391:                                             ; preds = %8086
  %8392 = landingpad { ptr, i32 }
          cleanup
  %8393 = extractvalue { ptr, i32 } %8392, 0
  store ptr %8393, ptr %8, align 8
  %8394 = extractvalue { ptr, i32 } %8392, 1
  store i32 %8394, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1173) #9
  br label %8395

8395:                                             ; preds = %8391, %8387
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1174) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1174) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1173) #9
  br label %8544

8396:                                             ; preds = %8087
  %8397 = landingpad { ptr, i32 }
          cleanup
  %8398 = extractvalue { ptr, i32 } %8397, 0
  store ptr %8398, ptr %8, align 8
  %8399 = extractvalue { ptr, i32 } %8397, 1
  store i32 %8399, ptr %9, align 4
  br label %8543

8400:                                             ; preds = %8088
  %8401 = landingpad { ptr, i32 }
          cleanup
  %8402 = extractvalue { ptr, i32 } %8401, 0
  store ptr %8402, ptr %8, align 8
  %8403 = extractvalue { ptr, i32 } %8401, 1
  store i32 %8403, ptr %9, align 4
  br label %8418

8404:                                             ; preds = %8089
  %8405 = landingpad { ptr, i32 }
          cleanup
  %8406 = extractvalue { ptr, i32 } %8405, 0
  store ptr %8406, ptr %8, align 8
  %8407 = extractvalue { ptr, i32 } %8405, 1
  store i32 %8407, ptr %9, align 4
  br label %8417

8408:                                             ; preds = %8090
  %8409 = landingpad { ptr, i32 }
          cleanup
  %8410 = extractvalue { ptr, i32 } %8409, 0
  store ptr %8410, ptr %8, align 8
  %8411 = extractvalue { ptr, i32 } %8409, 1
  store i32 %8411, ptr %9, align 4
  br label %8416

8412:                                             ; preds = %8091
  %8413 = landingpad { ptr, i32 }
          cleanup
  %8414 = extractvalue { ptr, i32 } %8413, 0
  store ptr %8414, ptr %8, align 8
  %8415 = extractvalue { ptr, i32 } %8413, 1
  store i32 %8415, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1179) #9
  br label %8416

8416:                                             ; preds = %8412, %8408
  call void @llvm.lifetime.end.p0(i64 56, ptr %1179) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1176) #9
  br label %8417

8417:                                             ; preds = %8416, %8404
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1178) #9
  br label %8418

8418:                                             ; preds = %8417, %8400
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1177) #9
  br label %8543

8419:                                             ; preds = %8092
  %8420 = landingpad { ptr, i32 }
          cleanup
  %8421 = extractvalue { ptr, i32 } %8420, 0
  store ptr %8421, ptr %8, align 8
  %8422 = extractvalue { ptr, i32 } %8420, 1
  store i32 %8422, ptr %9, align 4
  br label %8437

8423:                                             ; preds = %8093
  %8424 = landingpad { ptr, i32 }
          cleanup
  %8425 = extractvalue { ptr, i32 } %8424, 0
  store ptr %8425, ptr %8, align 8
  %8426 = extractvalue { ptr, i32 } %8424, 1
  store i32 %8426, ptr %9, align 4
  br label %8436

8427:                                             ; preds = %8094
  %8428 = landingpad { ptr, i32 }
          cleanup
  %8429 = extractvalue { ptr, i32 } %8428, 0
  store ptr %8429, ptr %8, align 8
  %8430 = extractvalue { ptr, i32 } %8428, 1
  store i32 %8430, ptr %9, align 4
  br label %8435

8431:                                             ; preds = %8095
  %8432 = landingpad { ptr, i32 }
          cleanup
  %8433 = extractvalue { ptr, i32 } %8432, 0
  store ptr %8433, ptr %8, align 8
  %8434 = extractvalue { ptr, i32 } %8432, 1
  store i32 %8434, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1184) #9
  br label %8435

8435:                                             ; preds = %8431, %8427
  call void @llvm.lifetime.end.p0(i64 56, ptr %1184) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1181) #9
  br label %8436

8436:                                             ; preds = %8435, %8423
  call void @llvm.lifetime.end.p0(i64 4, ptr %1183) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1182) #9
  br label %8437

8437:                                             ; preds = %8436, %8419
  call void @llvm.lifetime.end.p0(i64 56, ptr %1181) #9
  br label %8543

8438:                                             ; preds = %8096
  %8439 = landingpad { ptr, i32 }
          cleanup
  %8440 = extractvalue { ptr, i32 } %8439, 0
  store ptr %8440, ptr %8, align 8
  %8441 = extractvalue { ptr, i32 } %8439, 1
  store i32 %8441, ptr %9, align 4
  br label %8542

8442:                                             ; preds = %8097
  %8443 = landingpad { ptr, i32 }
          cleanup
  %8444 = extractvalue { ptr, i32 } %8443, 0
  store ptr %8444, ptr %8, align 8
  %8445 = extractvalue { ptr, i32 } %8443, 1
  store i32 %8445, ptr %9, align 4
  br label %8450

8446:                                             ; preds = %8098
  %8447 = landingpad { ptr, i32 }
          cleanup
  %8448 = extractvalue { ptr, i32 } %8447, 0
  store ptr %8448, ptr %8, align 8
  %8449 = extractvalue { ptr, i32 } %8447, 1
  store i32 %8449, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1187) #9
  br label %8450

8450:                                             ; preds = %8446, %8442
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1186) #9
  br label %8542

8451:                                             ; preds = %8110, %8099
  %8452 = landingpad { ptr, i32 }
          cleanup
  %8453 = extractvalue { ptr, i32 } %8452, 0
  store ptr %8453, ptr %8, align 8
  %8454 = extractvalue { ptr, i32 } %8452, 1
  store i32 %8454, ptr %9, align 4
  br label %8541

8455:                                             ; preds = %8100
  %8456 = landingpad { ptr, i32 }
          cleanup
  %8457 = extractvalue { ptr, i32 } %8456, 0
  store ptr %8457, ptr %8, align 8
  %8458 = extractvalue { ptr, i32 } %8456, 1
  store i32 %8458, ptr %9, align 4
  br label %8463

8459:                                             ; preds = %8101
  %8460 = landingpad { ptr, i32 }
          cleanup
  %8461 = extractvalue { ptr, i32 } %8460, 0
  store ptr %8461, ptr %8, align 8
  %8462 = extractvalue { ptr, i32 } %8460, 1
  store i32 %8462, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1190) #9
  br label %8463

8463:                                             ; preds = %8459, %8455
  call void @llvm.lifetime.end.p0(i64 56, ptr %1190) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1189) #9
  br label %8541

8464:                                             ; preds = %8102
  %8465 = landingpad { ptr, i32 }
          cleanup
  %8466 = extractvalue { ptr, i32 } %8465, 0
  store ptr %8466, ptr %8, align 8
  %8467 = extractvalue { ptr, i32 } %8465, 1
  store i32 %8467, ptr %9, align 4
  br label %8502

8468:                                             ; preds = %8103
  %8469 = landingpad { ptr, i32 }
          cleanup
  %8470 = extractvalue { ptr, i32 } %8469, 0
  store ptr %8470, ptr %8, align 8
  %8471 = extractvalue { ptr, i32 } %8469, 1
  store i32 %8471, ptr %9, align 4
  br label %8501

8472:                                             ; preds = %8104
  %8473 = landingpad { ptr, i32 }
          cleanup
  %8474 = extractvalue { ptr, i32 } %8473, 0
  store ptr %8474, ptr %8, align 8
  %8475 = extractvalue { ptr, i32 } %8473, 1
  store i32 %8475, ptr %9, align 4
  br label %8500

8476:                                             ; preds = %8105
  %8477 = landingpad { ptr, i32 }
          cleanup
  %8478 = extractvalue { ptr, i32 } %8477, 0
  store ptr %8478, ptr %8, align 8
  %8479 = extractvalue { ptr, i32 } %8477, 1
  store i32 %8479, ptr %9, align 4
  br label %8499

8480:                                             ; preds = %8106
  %8481 = landingpad { ptr, i32 }
          cleanup
  %8482 = extractvalue { ptr, i32 } %8481, 0
  store ptr %8482, ptr %8, align 8
  %8483 = extractvalue { ptr, i32 } %8481, 1
  store i32 %8483, ptr %9, align 4
  br label %8498

8484:                                             ; preds = %8107
  %8485 = landingpad { ptr, i32 }
          cleanup
  %8486 = extractvalue { ptr, i32 } %8485, 0
  store ptr %8486, ptr %8, align 8
  %8487 = extractvalue { ptr, i32 } %8485, 1
  store i32 %8487, ptr %9, align 4
  br label %8497

8488:                                             ; preds = %8108
  %8489 = landingpad { ptr, i32 }
          cleanup
  %8490 = extractvalue { ptr, i32 } %8489, 0
  store ptr %8490, ptr %8, align 8
  %8491 = extractvalue { ptr, i32 } %8489, 1
  store i32 %8491, ptr %9, align 4
  br label %8496

8492:                                             ; preds = %8109
  %8493 = landingpad { ptr, i32 }
          cleanup
  %8494 = extractvalue { ptr, i32 } %8493, 0
  store ptr %8494, ptr %8, align 8
  %8495 = extractvalue { ptr, i32 } %8493, 1
  store i32 %8495, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1198) #9
  br label %8496

8496:                                             ; preds = %8492, %8488
  call void @llvm.lifetime.end.p0(i64 56, ptr %1198) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1192) #9
  br label %8497

8497:                                             ; preds = %8496, %8484
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1197) #9
  br label %8498

8498:                                             ; preds = %8497, %8480
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1193) #9
  br label %8499

8499:                                             ; preds = %8498, %8476
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1196) #9
  br label %8500

8500:                                             ; preds = %8499, %8472
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1194) #9
  br label %8501

8501:                                             ; preds = %8500, %8468
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1195) #9
  br label %8502

8502:                                             ; preds = %8501, %8464
  call void @llvm.lifetime.end.p0(i64 56, ptr %1195) #9
  br label %8541

8503:                                             ; preds = %8111
  %8504 = landingpad { ptr, i32 }
          cleanup
  %8505 = extractvalue { ptr, i32 } %8504, 0
  store ptr %8505, ptr %8, align 8
  %8506 = extractvalue { ptr, i32 } %8504, 1
  store i32 %8506, ptr %9, align 4
  br label %8531

8507:                                             ; preds = %8112
  %8508 = landingpad { ptr, i32 }
          cleanup
  %8509 = extractvalue { ptr, i32 } %8508, 0
  store ptr %8509, ptr %8, align 8
  %8510 = extractvalue { ptr, i32 } %8508, 1
  store i32 %8510, ptr %9, align 4
  br label %8530

8511:                                             ; preds = %8115, %8113
  %8512 = landingpad { ptr, i32 }
          cleanup
  %8513 = extractvalue { ptr, i32 } %8512, 0
  store ptr %8513, ptr %8, align 8
  %8514 = extractvalue { ptr, i32 } %8512, 1
  store i32 %8514, ptr %9, align 4
  br label %8529

8515:                                             ; preds = %8116
  %8516 = landingpad { ptr, i32 }
          cleanup
  %8517 = extractvalue { ptr, i32 } %8516, 0
  store ptr %8517, ptr %8, align 8
  %8518 = extractvalue { ptr, i32 } %8516, 1
  store i32 %8518, ptr %9, align 4
  br label %8528

8519:                                             ; preds = %8117
  %8520 = landingpad { ptr, i32 }
          cleanup
  %8521 = extractvalue { ptr, i32 } %8520, 0
  store ptr %8521, ptr %8, align 8
  %8522 = extractvalue { ptr, i32 } %8520, 1
  store i32 %8522, ptr %9, align 4
  br label %8527

8523:                                             ; preds = %8118
  %8524 = landingpad { ptr, i32 }
          cleanup
  %8525 = extractvalue { ptr, i32 } %8524, 0
  store ptr %8525, ptr %8, align 8
  %8526 = extractvalue { ptr, i32 } %8524, 1
  store i32 %8526, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1204) #9
  br label %8527

8527:                                             ; preds = %8523, %8519
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1203) #9
  br label %8528

8528:                                             ; preds = %8527, %8515
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1202) #9
  br label %8529

8529:                                             ; preds = %8528, %8511
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1201) #9
  br label %8530

8530:                                             ; preds = %8529, %8507
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1200) #9
  br label %8531

8531:                                             ; preds = %8530, %8503
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1199) #9
  br label %8541

8532:                                             ; preds = %8120
  %8533 = landingpad { ptr, i32 }
          cleanup
  %8534 = extractvalue { ptr, i32 } %8533, 0
  store ptr %8534, ptr %8, align 8
  %8535 = extractvalue { ptr, i32 } %8533, 1
  store i32 %8535, ptr %9, align 4
  br label %8540

8536:                                             ; preds = %8121
  %8537 = landingpad { ptr, i32 }
          cleanup
  %8538 = extractvalue { ptr, i32 } %8537, 0
  store ptr %8538, ptr %8, align 8
  %8539 = extractvalue { ptr, i32 } %8537, 1
  store i32 %8539, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1206) #9
  br label %8540

8540:                                             ; preds = %8536, %8532
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1207) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1206) #9
  br label %8541

8541:                                             ; preds = %8540, %8531, %8502, %8463, %8451
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %1185) #9
  br label %8542

8542:                                             ; preds = %8541, %8450, %8438
  call void @llvm.lifetime.end.p0(i64 200, ptr %1185) #9
  br label %8543

8543:                                             ; preds = %8542, %8437, %8418, %8396
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1172) #9
  br label %8544

8544:                                             ; preds = %8543, %8395
  call void @llvm.lifetime.end.p0(i64 32, ptr %1172) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1169) #9
  br label %8545

8545:                                             ; preds = %8544, %8386
  call void @llvm.lifetime.end.p0(i64 32, ptr %1169) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1166) #9
  br label %8546

8546:                                             ; preds = %8545, %8377
  call void @llvm.lifetime.end.p0(i64 32, ptr %1166) #9
  br label %9780

8547:                                             ; preds = %8122
  %8548 = landingpad { ptr, i32 }
          cleanup
  %8549 = extractvalue { ptr, i32 } %8548, 0
  store ptr %8549, ptr %8, align 8
  %8550 = extractvalue { ptr, i32 } %8548, 1
  store i32 %8550, ptr %9, align 4
  br label %8555

8551:                                             ; preds = %8123
  %8552 = landingpad { ptr, i32 }
          cleanup
  %8553 = extractvalue { ptr, i32 } %8552, 0
  store ptr %8553, ptr %8, align 8
  %8554 = extractvalue { ptr, i32 } %8552, 1
  store i32 %8554, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1209) #9
  br label %8555

8555:                                             ; preds = %8551, %8547
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1210) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1210) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1209) #9
  br label %8690

8556:                                             ; preds = %8124
  %8557 = landingpad { ptr, i32 }
          cleanup
  %8558 = extractvalue { ptr, i32 } %8557, 0
  store ptr %8558, ptr %8, align 8
  %8559 = extractvalue { ptr, i32 } %8557, 1
  store i32 %8559, ptr %9, align 4
  br label %8564

8560:                                             ; preds = %8125
  %8561 = landingpad { ptr, i32 }
          cleanup
  %8562 = extractvalue { ptr, i32 } %8561, 0
  store ptr %8562, ptr %8, align 8
  %8563 = extractvalue { ptr, i32 } %8561, 1
  store i32 %8563, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1212) #9
  br label %8564

8564:                                             ; preds = %8560, %8556
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1213) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1213) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1212) #9
  br label %8689

8565:                                             ; preds = %8126
  %8566 = landingpad { ptr, i32 }
          cleanup
  %8567 = extractvalue { ptr, i32 } %8566, 0
  store ptr %8567, ptr %8, align 8
  %8568 = extractvalue { ptr, i32 } %8566, 1
  store i32 %8568, ptr %9, align 4
  br label %8688

8569:                                             ; preds = %8127
  %8570 = landingpad { ptr, i32 }
          cleanup
  %8571 = extractvalue { ptr, i32 } %8570, 0
  store ptr %8571, ptr %8, align 8
  %8572 = extractvalue { ptr, i32 } %8570, 1
  store i32 %8572, ptr %9, align 4
  br label %8587

8573:                                             ; preds = %8128
  %8574 = landingpad { ptr, i32 }
          cleanup
  %8575 = extractvalue { ptr, i32 } %8574, 0
  store ptr %8575, ptr %8, align 8
  %8576 = extractvalue { ptr, i32 } %8574, 1
  store i32 %8576, ptr %9, align 4
  br label %8586

8577:                                             ; preds = %8129
  %8578 = landingpad { ptr, i32 }
          cleanup
  %8579 = extractvalue { ptr, i32 } %8578, 0
  store ptr %8579, ptr %8, align 8
  %8580 = extractvalue { ptr, i32 } %8578, 1
  store i32 %8580, ptr %9, align 4
  br label %8585

8581:                                             ; preds = %8130
  %8582 = landingpad { ptr, i32 }
          cleanup
  %8583 = extractvalue { ptr, i32 } %8582, 0
  store ptr %8583, ptr %8, align 8
  %8584 = extractvalue { ptr, i32 } %8582, 1
  store i32 %8584, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1218) #9
  br label %8585

8585:                                             ; preds = %8581, %8577
  call void @llvm.lifetime.end.p0(i64 56, ptr %1218) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1215) #9
  br label %8586

8586:                                             ; preds = %8585, %8573
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1217) #9
  br label %8587

8587:                                             ; preds = %8586, %8569
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1216) #9
  br label %8688

8588:                                             ; preds = %8131
  %8589 = landingpad { ptr, i32 }
          cleanup
  %8590 = extractvalue { ptr, i32 } %8589, 0
  store ptr %8590, ptr %8, align 8
  %8591 = extractvalue { ptr, i32 } %8589, 1
  store i32 %8591, ptr %9, align 4
  br label %8687

8592:                                             ; preds = %8132
  %8593 = landingpad { ptr, i32 }
          cleanup
  %8594 = extractvalue { ptr, i32 } %8593, 0
  store ptr %8594, ptr %8, align 8
  %8595 = extractvalue { ptr, i32 } %8593, 1
  store i32 %8595, ptr %9, align 4
  br label %8600

8596:                                             ; preds = %8133
  %8597 = landingpad { ptr, i32 }
          cleanup
  %8598 = extractvalue { ptr, i32 } %8597, 0
  store ptr %8598, ptr %8, align 8
  %8599 = extractvalue { ptr, i32 } %8597, 1
  store i32 %8599, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1221) #9
  br label %8600

8600:                                             ; preds = %8596, %8592
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1220) #9
  br label %8687

8601:                                             ; preds = %8134
  %8602 = landingpad { ptr, i32 }
          cleanup
  %8603 = extractvalue { ptr, i32 } %8602, 0
  store ptr %8603, ptr %8, align 8
  %8604 = extractvalue { ptr, i32 } %8602, 1
  store i32 %8604, ptr %9, align 4
  br label %8629

8605:                                             ; preds = %8135
  %8606 = landingpad { ptr, i32 }
          cleanup
  %8607 = extractvalue { ptr, i32 } %8606, 0
  store ptr %8607, ptr %8, align 8
  %8608 = extractvalue { ptr, i32 } %8606, 1
  store i32 %8608, ptr %9, align 4
  br label %8628

8609:                                             ; preds = %8136
  %8610 = landingpad { ptr, i32 }
          cleanup
  %8611 = extractvalue { ptr, i32 } %8610, 0
  store ptr %8611, ptr %8, align 8
  %8612 = extractvalue { ptr, i32 } %8610, 1
  store i32 %8612, ptr %9, align 4
  br label %8627

8613:                                             ; preds = %8137
  %8614 = landingpad { ptr, i32 }
          cleanup
  %8615 = extractvalue { ptr, i32 } %8614, 0
  store ptr %8615, ptr %8, align 8
  %8616 = extractvalue { ptr, i32 } %8614, 1
  store i32 %8616, ptr %9, align 4
  br label %8626

8617:                                             ; preds = %8138
  %8618 = landingpad { ptr, i32 }
          cleanup
  %8619 = extractvalue { ptr, i32 } %8618, 0
  store ptr %8619, ptr %8, align 8
  %8620 = extractvalue { ptr, i32 } %8618, 1
  store i32 %8620, ptr %9, align 4
  br label %8625

8621:                                             ; preds = %8139
  %8622 = landingpad { ptr, i32 }
          cleanup
  %8623 = extractvalue { ptr, i32 } %8622, 0
  store ptr %8623, ptr %8, align 8
  %8624 = extractvalue { ptr, i32 } %8622, 1
  store i32 %8624, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1227) #9
  br label %8625

8625:                                             ; preds = %8621, %8617
  call void @llvm.lifetime.end.p0(i64 56, ptr %1227) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1223) #9
  br label %8626

8626:                                             ; preds = %8625, %8613
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1226) #9
  br label %8627

8627:                                             ; preds = %8626, %8609
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1224) #9
  br label %8628

8628:                                             ; preds = %8627, %8605
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1225) #9
  br label %8629

8629:                                             ; preds = %8628, %8601
  call void @llvm.lifetime.end.p0(i64 56, ptr %1225) #9
  br label %8686

8630:                                             ; preds = %8140
  %8631 = landingpad { ptr, i32 }
          cleanup
  %8632 = extractvalue { ptr, i32 } %8631, 0
  store ptr %8632, ptr %8, align 8
  %8633 = extractvalue { ptr, i32 } %8631, 1
  store i32 %8633, ptr %9, align 4
  br label %8643

8634:                                             ; preds = %8141
  %8635 = landingpad { ptr, i32 }
          cleanup
  %8636 = extractvalue { ptr, i32 } %8635, 0
  store ptr %8636, ptr %8, align 8
  %8637 = extractvalue { ptr, i32 } %8635, 1
  store i32 %8637, ptr %9, align 4
  br label %8642

8638:                                             ; preds = %8142
  %8639 = landingpad { ptr, i32 }
          cleanup
  %8640 = extractvalue { ptr, i32 } %8639, 0
  store ptr %8640, ptr %8, align 8
  %8641 = extractvalue { ptr, i32 } %8639, 1
  store i32 %8641, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1230) #9
  br label %8642

8642:                                             ; preds = %8638, %8634
  call void @llvm.lifetime.end.p0(i64 56, ptr %1230) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1229) #9
  br label %8643

8643:                                             ; preds = %8642, %8630
  call void @llvm.lifetime.end.p0(i64 56, ptr %1229) #9
  br label %8686

8644:                                             ; preds = %8143
  %8645 = landingpad { ptr, i32 }
          cleanup
  %8646 = extractvalue { ptr, i32 } %8645, 0
  store ptr %8646, ptr %8, align 8
  %8647 = extractvalue { ptr, i32 } %8645, 1
  store i32 %8647, ptr %9, align 4
  br label %8686

8648:                                             ; preds = %8144
  %8649 = landingpad { ptr, i32 }
          cleanup
  %8650 = extractvalue { ptr, i32 } %8649, 0
  store ptr %8650, ptr %8, align 8
  %8651 = extractvalue { ptr, i32 } %8649, 1
  store i32 %8651, ptr %9, align 4
  br label %8676

8652:                                             ; preds = %8145
  %8653 = landingpad { ptr, i32 }
          cleanup
  %8654 = extractvalue { ptr, i32 } %8653, 0
  store ptr %8654, ptr %8, align 8
  %8655 = extractvalue { ptr, i32 } %8653, 1
  store i32 %8655, ptr %9, align 4
  br label %8675

8656:                                             ; preds = %8148, %8146
  %8657 = landingpad { ptr, i32 }
          cleanup
  %8658 = extractvalue { ptr, i32 } %8657, 0
  store ptr %8658, ptr %8, align 8
  %8659 = extractvalue { ptr, i32 } %8657, 1
  store i32 %8659, ptr %9, align 4
  br label %8674

8660:                                             ; preds = %8149
  %8661 = landingpad { ptr, i32 }
          cleanup
  %8662 = extractvalue { ptr, i32 } %8661, 0
  store ptr %8662, ptr %8, align 8
  %8663 = extractvalue { ptr, i32 } %8661, 1
  store i32 %8663, ptr %9, align 4
  br label %8673

8664:                                             ; preds = %8150
  %8665 = landingpad { ptr, i32 }
          cleanup
  %8666 = extractvalue { ptr, i32 } %8665, 0
  store ptr %8666, ptr %8, align 8
  %8667 = extractvalue { ptr, i32 } %8665, 1
  store i32 %8667, ptr %9, align 4
  br label %8672

8668:                                             ; preds = %8151
  %8669 = landingpad { ptr, i32 }
          cleanup
  %8670 = extractvalue { ptr, i32 } %8669, 0
  store ptr %8670, ptr %8, align 8
  %8671 = extractvalue { ptr, i32 } %8669, 1
  store i32 %8671, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1236) #9
  br label %8672

8672:                                             ; preds = %8668, %8664
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1235) #9
  br label %8673

8673:                                             ; preds = %8672, %8660
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1234) #9
  br label %8674

8674:                                             ; preds = %8673, %8656
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1233) #9
  br label %8675

8675:                                             ; preds = %8674, %8652
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1232) #9
  br label %8676

8676:                                             ; preds = %8675, %8648
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1231) #9
  br label %8686

8677:                                             ; preds = %8153
  %8678 = landingpad { ptr, i32 }
          cleanup
  %8679 = extractvalue { ptr, i32 } %8678, 0
  store ptr %8679, ptr %8, align 8
  %8680 = extractvalue { ptr, i32 } %8678, 1
  store i32 %8680, ptr %9, align 4
  br label %8685

8681:                                             ; preds = %8154
  %8682 = landingpad { ptr, i32 }
          cleanup
  %8683 = extractvalue { ptr, i32 } %8682, 0
  store ptr %8683, ptr %8, align 8
  %8684 = extractvalue { ptr, i32 } %8682, 1
  store i32 %8684, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1238) #9
  br label %8685

8685:                                             ; preds = %8681, %8677
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1239) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1238) #9
  br label %8686

8686:                                             ; preds = %8685, %8676, %8644, %8643, %8629
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %1219) #9
  br label %8687

8687:                                             ; preds = %8686, %8600, %8588
  call void @llvm.lifetime.end.p0(i64 200, ptr %1219) #9
  br label %8688

8688:                                             ; preds = %8687, %8587, %8565
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1211) #9
  br label %8689

8689:                                             ; preds = %8688, %8564
  call void @llvm.lifetime.end.p0(i64 32, ptr %1211) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1208) #9
  br label %8690

8690:                                             ; preds = %8689, %8555
  call void @llvm.lifetime.end.p0(i64 32, ptr %1208) #9
  br label %9780

8691:                                             ; preds = %8157, %8155
  %8692 = landingpad { ptr, i32 }
          cleanup
  %8693 = extractvalue { ptr, i32 } %8692, 0
  store ptr %8693, ptr %8, align 8
  %8694 = extractvalue { ptr, i32 } %8692, 1
  store i32 %8694, ptr %9, align 4
  br label %9363

8695:                                             ; preds = %8169
  %8696 = landingpad { ptr, i32 }
          cleanup
  %8697 = extractvalue { ptr, i32 } %8696, 0
  store ptr %8697, ptr %8, align 8
  %8698 = extractvalue { ptr, i32 } %8696, 1
  store i32 %8698, ptr %9, align 4
  %8699 = icmp eq ptr %8167, %8170
  br i1 %8699, label %8704, label %8700

8700:                                             ; preds = %8700, %8695
  %8701 = phi ptr [ %8170, %8695 ], [ %8702, %8700 ]
  %8702 = getelementptr inbounds %"class.Halide::Func", ptr %8701, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8702) #9
  %8703 = icmp eq ptr %8702, %8167
  br i1 %8703, label %8704, label %8700

8704:                                             ; preds = %8700, %8695
  br label %9362

8705:                                             ; preds = %8177
  %8706 = landingpad { ptr, i32 }
          cleanup
  %8707 = extractvalue { ptr, i32 } %8706, 0
  store ptr %8707, ptr %8, align 8
  %8708 = extractvalue { ptr, i32 } %8706, 1
  store i32 %8708, ptr %9, align 4
  %8709 = icmp eq ptr %8175, %8178
  br i1 %8709, label %8714, label %8710

8710:                                             ; preds = %8710, %8705
  %8711 = phi ptr [ %8178, %8705 ], [ %8712, %8710 ]
  %8712 = getelementptr inbounds %"class.Halide::Func", ptr %8711, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8712) #9
  %8713 = icmp eq ptr %8712, %8175
  br i1 %8713, label %8714, label %8710

8714:                                             ; preds = %8710, %8705
  br label %9354

8715:                                             ; preds = %8182
  %8716 = landingpad { ptr, i32 }
          cleanup
  %8717 = extractvalue { ptr, i32 } %8716, 0
  store ptr %8717, ptr %8, align 8
  %8718 = extractvalue { ptr, i32 } %8716, 1
  store i32 %8718, ptr %9, align 4
  br label %8723

8719:                                             ; preds = %8183
  %8720 = landingpad { ptr, i32 }
          cleanup
  %8721 = extractvalue { ptr, i32 } %8720, 0
  store ptr %8721, ptr %8, align 8
  %8722 = extractvalue { ptr, i32 } %8720, 1
  store i32 %8722, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1246) #9
  br label %8723

8723:                                             ; preds = %8719, %8715
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1247) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1247) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1246) #9
  br label %9346

8724:                                             ; preds = %8184
  %8725 = landingpad { ptr, i32 }
          cleanup
  %8726 = extractvalue { ptr, i32 } %8725, 0
  store ptr %8726, ptr %8, align 8
  %8727 = extractvalue { ptr, i32 } %8725, 1
  store i32 %8727, ptr %9, align 4
  br label %9345

8728:                                             ; preds = %8185
  %8729 = landingpad { ptr, i32 }
          cleanup
  %8730 = extractvalue { ptr, i32 } %8729, 0
  store ptr %8730, ptr %8, align 8
  %8731 = extractvalue { ptr, i32 } %8729, 1
  store i32 %8731, ptr %9, align 4
  br label %8736

8732:                                             ; preds = %8186
  %8733 = landingpad { ptr, i32 }
          cleanup
  %8734 = extractvalue { ptr, i32 } %8733, 0
  store ptr %8734, ptr %8, align 8
  %8735 = extractvalue { ptr, i32 } %8733, 1
  store i32 %8735, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1250) #9
  br label %8736

8736:                                             ; preds = %8732, %8728
  call void @llvm.lifetime.end.p0(i64 56, ptr %1250) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1249) #9
  br label %9345

8737:                                             ; preds = %8188
  call void @llvm.lifetime.start.p0(i64 32, ptr %1253) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1254) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1255) #9
  %8738 = load i32, ptr %1252, align 4, !tbaa !5
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %1255, i32 noundef %8738) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %1254, ptr noundef @.str.30, ptr noundef nonnull align 8 dereferenceable(32) %1255)
          to label %8739 unwind label %8807

8739:                                             ; preds = %8737
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1253, ptr noundef nonnull align 8 dereferenceable(32) %1254)
          to label %8740 unwind label %8811

8740:                                             ; preds = %8739
  %8741 = load i32, ptr %1252, align 4, !tbaa !5
  %8742 = sext i32 %8741 to i64
  %8743 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1242, i64 0, i64 %8742
  %8744 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4FuncaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %8743, ptr noundef nonnull align 8 dereferenceable(32) %1253) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1253) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1254) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1255) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1255) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1254) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1253) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1256) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1257) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1258) #9
  %8745 = load i32, ptr %1252, align 4, !tbaa !5
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %1258, i32 noundef %8745) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %1257, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(32) %1258)
          to label %8746 unwind label %8816

8746:                                             ; preds = %8740
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1256, ptr noundef nonnull align 8 dereferenceable(32) %1257)
          to label %8747 unwind label %8820

8747:                                             ; preds = %8746
  %8748 = load i32, ptr %1252, align 4, !tbaa !5
  %8749 = sext i32 %8748 to i64
  %8750 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1243, i64 0, i64 %8749
  %8751 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4FuncaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %8750, ptr noundef nonnull align 8 dereferenceable(32) %1256) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1256) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1257) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1258) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1258) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1257) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1256) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1262) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1265, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %8752 unwind label %8825

8752:                                             ; preds = %8747
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1264, i32 noundef 2, ptr noundef %1265)
          to label %8753 unwind label %8829

8753:                                             ; preds = %8752
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1263, ptr noundef %1264, i32 noundef 10)
          to label %8754 unwind label %8833

8754:                                             ; preds = %8753
  call void @llvm.lifetime.start.p0(i64 8, ptr %1266) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1268, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8755 unwind label %8837

8755:                                             ; preds = %8754
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1267, i32 noundef 2, ptr noundef %1268)
          to label %8756 unwind label %8841

8756:                                             ; preds = %8755
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1266, ptr noundef %1267, i32 noundef 10)
          to label %8757 unwind label %8845

8757:                                             ; preds = %8756
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1262, ptr noundef nonnull align 8 dereferenceable(32) %1245, ptr noundef %1263, ptr noundef nonnull align 8 dereferenceable(8) %1266)
          to label %8758 unwind label %8849

8758:                                             ; preds = %8757
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1261, ptr noundef nonnull align 8 dereferenceable(56) %1262)
          to label %8759 unwind label %8853

8759:                                             ; preds = %8758
  call void @llvm.lifetime.start.p0(i64 56, ptr %1270) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1273, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %8760 unwind label %8857

8760:                                             ; preds = %8759
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1272, i32 noundef 2, ptr noundef %1273)
          to label %8761 unwind label %8861

8761:                                             ; preds = %8760
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1271, ptr noundef %1272, i32 noundef 10)
          to label %8762 unwind label %8865

8762:                                             ; preds = %8761
  call void @llvm.lifetime.start.p0(i64 8, ptr %1274) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1276, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8763 unwind label %8869

8763:                                             ; preds = %8762
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1275, i32 noundef 2, ptr noundef %1276)
          to label %8764 unwind label %8873

8764:                                             ; preds = %8763
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1274, ptr noundef %1275, i32 noundef 10)
          to label %8765 unwind label %8877

8765:                                             ; preds = %8764
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1270, ptr noundef nonnull align 8 dereferenceable(32) %1245, ptr noundef %1271, ptr noundef nonnull align 8 dereferenceable(8) %1274)
          to label %8766 unwind label %8881

8766:                                             ; preds = %8765
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1269, ptr noundef nonnull align 8 dereferenceable(56) %1270)
          to label %8767 unwind label %8885

8767:                                             ; preds = %8766
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1260, ptr noundef %1261, ptr noundef %1269)
          to label %8768 unwind label %8889

8768:                                             ; preds = %8767
  call void @llvm.lifetime.start.p0(i64 56, ptr %1277) #9
  %8769 = load i32, ptr %1252, align 4, !tbaa !5
  %8770 = sext i32 %8769 to i64
  %8771 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1243, i64 0, i64 %8770
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1277, ptr noundef nonnull align 8 dereferenceable(32) %8771, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8772 unwind label %8893

8772:                                             ; preds = %8768
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1259, ptr noundef nonnull align 8 dereferenceable(56) %1277, ptr noundef %1260)
          to label %8773 unwind label %8897

8773:                                             ; preds = %8772
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1259) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1277) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1277) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1260) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1269) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1270) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1274) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1275) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1276) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1274) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1271) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1272) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1273) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1270) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1261) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1262) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1266) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1267) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1268) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1266) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1263) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1264) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1265) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1262) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1278) #9
  %8774 = load i32, ptr %1252, align 4, !tbaa !5
  %8775 = sext i32 %8774 to i64
  %8776 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1243, i64 0, i64 %8775
  call void @llvm.lifetime.start.p0(i64 24, ptr %1279) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1281) #9
  store i1 true, ptr %1287, align 1
  store ptr %1281, ptr %1282, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %1283) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1283, i32 noundef 0)
          to label %8777 unwind label %8919

8777:                                             ; preds = %8773
  call void @llvm.lifetime.start.p0(i64 8, ptr %1284) #9
  %8778 = load i32, ptr %1244, align 4, !tbaa !5
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1284, i32 noundef %8778)
          to label %8779 unwind label %8923

8779:                                             ; preds = %8777
  invoke void @_ZN6Halide5RangeC1ERKNS_4ExprES3_(ptr noundef nonnull align 8 dereferenceable(16) %1281, ptr noundef nonnull align 8 dereferenceable(8) %1283, ptr noundef nonnull align 8 dereferenceable(8) %1284)
          to label %8780 unwind label %8927

8780:                                             ; preds = %8779
  %8781 = getelementptr inbounds %"struct.Halide::Range", ptr %1281, i64 1
  store ptr %8781, ptr %1282, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %1285) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1285, i32 noundef 0)
          to label %8782 unwind label %8931

8782:                                             ; preds = %8780
  call void @llvm.lifetime.start.p0(i64 8, ptr %1286) #9
  %8783 = load i32, ptr %1244, align 4, !tbaa !5
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1286, i32 noundef %8783)
          to label %8784 unwind label %8935

8784:                                             ; preds = %8782
  invoke void @_ZN6Halide5RangeC1ERKNS_4ExprES3_(ptr noundef nonnull align 8 dereferenceable(16) %8781, ptr noundef nonnull align 8 dereferenceable(8) %1285, ptr noundef nonnull align 8 dereferenceable(8) %1286)
          to label %8785 unwind label %8939

8785:                                             ; preds = %8784
  store i1 false, ptr %1287, align 1
  %8786 = getelementptr inbounds %"class.std::initializer_list.30", ptr %1280, i32 0, i32 0
  store ptr %1281, ptr %8786, align 8, !tbaa !32
  %8787 = getelementptr inbounds %"class.std::initializer_list.30", ptr %1280, i32 0, i32 1
  store i64 2, ptr %8787, align 8, !tbaa !34
  call void @llvm.lifetime.start.p0(i64 1, ptr %1288) #9
  call void @_ZNSaIN6Halide5RangeEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1288) #9
  %8788 = getelementptr inbounds { ptr, i64 }, ptr %1280, i32 0, i32 0
  %8789 = load ptr, ptr %8788, align 8
  %8790 = getelementptr inbounds { ptr, i64 }, ptr %1280, i32 0, i32 1
  %8791 = load i64, ptr %8790, align 8
  invoke void @_ZNSt6vectorIN6Halide5RangeESaIS1_EEC2ESt16initializer_listIS1_ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %1279, ptr %8789, i64 %8791, ptr noundef nonnull align 1 dereferenceable(1) %1288)
          to label %8792 unwind label %8943

8792:                                             ; preds = %8785
  invoke void @_ZN6Halide18BoundaryConditions11repeat_edgeERKNS_4FuncERKSt6vectorINS_5RangeESaIS5_EE(ptr dead_on_unwind writable sret(%"class.Halide::Func") align 8 %1278, ptr noundef nonnull align 8 dereferenceable(32) %8776, ptr noundef nonnull align 8 dereferenceable(24) %1279)
          to label %8793 unwind label %8947

8793:                                             ; preds = %8792
  %8794 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4FuncaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %1245, ptr noundef nonnull align 8 dereferenceable(32) %1278) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1278) #9
  call void @_ZNSt6vectorIN6Halide5RangeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1279) #9
  call void @_ZNSt15__new_allocatorIN6Halide5RangeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1288) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1288) #9
  %8795 = getelementptr inbounds [2 x %"struct.Halide::Range"], ptr %1281, i32 0, i32 0
  %8796 = getelementptr inbounds %"struct.Halide::Range", ptr %8795, i64 2
  br label %8797

8797:                                             ; preds = %8797, %8793
  %8798 = phi ptr [ %8796, %8793 ], [ %8799, %8797 ]
  %8799 = getelementptr inbounds %"struct.Halide::Range", ptr %8798, i64 -1
  call void @_ZN6Halide5RangeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8799) #9
  %8800 = icmp eq ptr %8799, %8795
  br i1 %8800, label %8801, label %8797

8801:                                             ; preds = %8797
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1286) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1286) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1285) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1285) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1284) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1284) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1283) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1283) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1281) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %1279) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1278) #9
  %8802 = load i32, ptr %1244, align 4, !tbaa !5
  %8803 = sdiv i32 %8802, 2
  store i32 %8803, ptr %1244, align 4, !tbaa !5
  br label %8804

8804:                                             ; preds = %8801
  %8805 = load i32, ptr %1252, align 4, !tbaa !5
  %8806 = add nsw i32 %8805, 1
  store i32 %8806, ptr %1252, align 4, !tbaa !5
  br label %8188, !llvm.loop !35

8807:                                             ; preds = %8737
  %8808 = landingpad { ptr, i32 }
          cleanup
  %8809 = extractvalue { ptr, i32 } %8808, 0
  store ptr %8809, ptr %8, align 8
  %8810 = extractvalue { ptr, i32 } %8808, 1
  store i32 %8810, ptr %9, align 4
  br label %8815

8811:                                             ; preds = %8739
  %8812 = landingpad { ptr, i32 }
          cleanup
  %8813 = extractvalue { ptr, i32 } %8812, 0
  store ptr %8813, ptr %8, align 8
  %8814 = extractvalue { ptr, i32 } %8812, 1
  store i32 %8814, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1254) #9
  br label %8815

8815:                                             ; preds = %8811, %8807
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1255) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1255) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1254) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1253) #9
  br label %8975

8816:                                             ; preds = %8740
  %8817 = landingpad { ptr, i32 }
          cleanup
  %8818 = extractvalue { ptr, i32 } %8817, 0
  store ptr %8818, ptr %8, align 8
  %8819 = extractvalue { ptr, i32 } %8817, 1
  store i32 %8819, ptr %9, align 4
  br label %8824

8820:                                             ; preds = %8746
  %8821 = landingpad { ptr, i32 }
          cleanup
  %8822 = extractvalue { ptr, i32 } %8821, 0
  store ptr %8822, ptr %8, align 8
  %8823 = extractvalue { ptr, i32 } %8821, 1
  store i32 %8823, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1257) #9
  br label %8824

8824:                                             ; preds = %8820, %8816
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1258) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1258) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1257) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1256) #9
  br label %8975

8825:                                             ; preds = %8747
  %8826 = landingpad { ptr, i32 }
          cleanup
  %8827 = extractvalue { ptr, i32 } %8826, 0
  store ptr %8827, ptr %8, align 8
  %8828 = extractvalue { ptr, i32 } %8826, 1
  store i32 %8828, ptr %9, align 4
  br label %8918

8829:                                             ; preds = %8752
  %8830 = landingpad { ptr, i32 }
          cleanup
  %8831 = extractvalue { ptr, i32 } %8830, 0
  store ptr %8831, ptr %8, align 8
  %8832 = extractvalue { ptr, i32 } %8830, 1
  store i32 %8832, ptr %9, align 4
  br label %8917

8833:                                             ; preds = %8753
  %8834 = landingpad { ptr, i32 }
          cleanup
  %8835 = extractvalue { ptr, i32 } %8834, 0
  store ptr %8835, ptr %8, align 8
  %8836 = extractvalue { ptr, i32 } %8834, 1
  store i32 %8836, ptr %9, align 4
  br label %8916

8837:                                             ; preds = %8754
  %8838 = landingpad { ptr, i32 }
          cleanup
  %8839 = extractvalue { ptr, i32 } %8838, 0
  store ptr %8839, ptr %8, align 8
  %8840 = extractvalue { ptr, i32 } %8838, 1
  store i32 %8840, ptr %9, align 4
  br label %8915

8841:                                             ; preds = %8755
  %8842 = landingpad { ptr, i32 }
          cleanup
  %8843 = extractvalue { ptr, i32 } %8842, 0
  store ptr %8843, ptr %8, align 8
  %8844 = extractvalue { ptr, i32 } %8842, 1
  store i32 %8844, ptr %9, align 4
  br label %8914

8845:                                             ; preds = %8756
  %8846 = landingpad { ptr, i32 }
          cleanup
  %8847 = extractvalue { ptr, i32 } %8846, 0
  store ptr %8847, ptr %8, align 8
  %8848 = extractvalue { ptr, i32 } %8846, 1
  store i32 %8848, ptr %9, align 4
  br label %8913

8849:                                             ; preds = %8757
  %8850 = landingpad { ptr, i32 }
          cleanup
  %8851 = extractvalue { ptr, i32 } %8850, 0
  store ptr %8851, ptr %8, align 8
  %8852 = extractvalue { ptr, i32 } %8850, 1
  store i32 %8852, ptr %9, align 4
  br label %8912

8853:                                             ; preds = %8758
  %8854 = landingpad { ptr, i32 }
          cleanup
  %8855 = extractvalue { ptr, i32 } %8854, 0
  store ptr %8855, ptr %8, align 8
  %8856 = extractvalue { ptr, i32 } %8854, 1
  store i32 %8856, ptr %9, align 4
  br label %8911

8857:                                             ; preds = %8759
  %8858 = landingpad { ptr, i32 }
          cleanup
  %8859 = extractvalue { ptr, i32 } %8858, 0
  store ptr %8859, ptr %8, align 8
  %8860 = extractvalue { ptr, i32 } %8858, 1
  store i32 %8860, ptr %9, align 4
  br label %8910

8861:                                             ; preds = %8760
  %8862 = landingpad { ptr, i32 }
          cleanup
  %8863 = extractvalue { ptr, i32 } %8862, 0
  store ptr %8863, ptr %8, align 8
  %8864 = extractvalue { ptr, i32 } %8862, 1
  store i32 %8864, ptr %9, align 4
  br label %8909

8865:                                             ; preds = %8761
  %8866 = landingpad { ptr, i32 }
          cleanup
  %8867 = extractvalue { ptr, i32 } %8866, 0
  store ptr %8867, ptr %8, align 8
  %8868 = extractvalue { ptr, i32 } %8866, 1
  store i32 %8868, ptr %9, align 4
  br label %8908

8869:                                             ; preds = %8762
  %8870 = landingpad { ptr, i32 }
          cleanup
  %8871 = extractvalue { ptr, i32 } %8870, 0
  store ptr %8871, ptr %8, align 8
  %8872 = extractvalue { ptr, i32 } %8870, 1
  store i32 %8872, ptr %9, align 4
  br label %8907

8873:                                             ; preds = %8763
  %8874 = landingpad { ptr, i32 }
          cleanup
  %8875 = extractvalue { ptr, i32 } %8874, 0
  store ptr %8875, ptr %8, align 8
  %8876 = extractvalue { ptr, i32 } %8874, 1
  store i32 %8876, ptr %9, align 4
  br label %8906

8877:                                             ; preds = %8764
  %8878 = landingpad { ptr, i32 }
          cleanup
  %8879 = extractvalue { ptr, i32 } %8878, 0
  store ptr %8879, ptr %8, align 8
  %8880 = extractvalue { ptr, i32 } %8878, 1
  store i32 %8880, ptr %9, align 4
  br label %8905

8881:                                             ; preds = %8765
  %8882 = landingpad { ptr, i32 }
          cleanup
  %8883 = extractvalue { ptr, i32 } %8882, 0
  store ptr %8883, ptr %8, align 8
  %8884 = extractvalue { ptr, i32 } %8882, 1
  store i32 %8884, ptr %9, align 4
  br label %8904

8885:                                             ; preds = %8766
  %8886 = landingpad { ptr, i32 }
          cleanup
  %8887 = extractvalue { ptr, i32 } %8886, 0
  store ptr %8887, ptr %8, align 8
  %8888 = extractvalue { ptr, i32 } %8886, 1
  store i32 %8888, ptr %9, align 4
  br label %8903

8889:                                             ; preds = %8767
  %8890 = landingpad { ptr, i32 }
          cleanup
  %8891 = extractvalue { ptr, i32 } %8890, 0
  store ptr %8891, ptr %8, align 8
  %8892 = extractvalue { ptr, i32 } %8890, 1
  store i32 %8892, ptr %9, align 4
  br label %8902

8893:                                             ; preds = %8768
  %8894 = landingpad { ptr, i32 }
          cleanup
  %8895 = extractvalue { ptr, i32 } %8894, 0
  store ptr %8895, ptr %8, align 8
  %8896 = extractvalue { ptr, i32 } %8894, 1
  store i32 %8896, ptr %9, align 4
  br label %8901

8897:                                             ; preds = %8772
  %8898 = landingpad { ptr, i32 }
          cleanup
  %8899 = extractvalue { ptr, i32 } %8898, 0
  store ptr %8899, ptr %8, align 8
  %8900 = extractvalue { ptr, i32 } %8898, 1
  store i32 %8900, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1277) #9
  br label %8901

8901:                                             ; preds = %8897, %8893
  call void @llvm.lifetime.end.p0(i64 56, ptr %1277) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1260) #9
  br label %8902

8902:                                             ; preds = %8901, %8889
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1269) #9
  br label %8903

8903:                                             ; preds = %8902, %8885
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1270) #9
  br label %8904

8904:                                             ; preds = %8903, %8881
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1274) #9
  br label %8905

8905:                                             ; preds = %8904, %8877
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1275) #9
  br label %8906

8906:                                             ; preds = %8905, %8873
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1276) #9
  br label %8907

8907:                                             ; preds = %8906, %8869
  call void @llvm.lifetime.end.p0(i64 8, ptr %1274) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1271) #9
  br label %8908

8908:                                             ; preds = %8907, %8865
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1272) #9
  br label %8909

8909:                                             ; preds = %8908, %8861
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1273) #9
  br label %8910

8910:                                             ; preds = %8909, %8857
  call void @llvm.lifetime.end.p0(i64 56, ptr %1270) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1261) #9
  br label %8911

8911:                                             ; preds = %8910, %8853
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1262) #9
  br label %8912

8912:                                             ; preds = %8911, %8849
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1266) #9
  br label %8913

8913:                                             ; preds = %8912, %8845
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1267) #9
  br label %8914

8914:                                             ; preds = %8913, %8841
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1268) #9
  br label %8915

8915:                                             ; preds = %8914, %8837
  call void @llvm.lifetime.end.p0(i64 8, ptr %1266) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1263) #9
  br label %8916

8916:                                             ; preds = %8915, %8833
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1264) #9
  br label %8917

8917:                                             ; preds = %8916, %8829
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1265) #9
  br label %8918

8918:                                             ; preds = %8917, %8825
  call void @llvm.lifetime.end.p0(i64 56, ptr %1262) #9
  br label %8975

8919:                                             ; preds = %8773
  %8920 = landingpad { ptr, i32 }
          cleanup
  %8921 = extractvalue { ptr, i32 } %8920, 0
  store ptr %8921, ptr %8, align 8
  %8922 = extractvalue { ptr, i32 } %8920, 1
  store i32 %8922, ptr %9, align 4
  br label %8964

8923:                                             ; preds = %8777
  %8924 = landingpad { ptr, i32 }
          cleanup
  %8925 = extractvalue { ptr, i32 } %8924, 0
  store ptr %8925, ptr %8, align 8
  %8926 = extractvalue { ptr, i32 } %8924, 1
  store i32 %8926, ptr %9, align 4
  br label %8963

8927:                                             ; preds = %8779
  %8928 = landingpad { ptr, i32 }
          cleanup
  %8929 = extractvalue { ptr, i32 } %8928, 0
  store ptr %8929, ptr %8, align 8
  %8930 = extractvalue { ptr, i32 } %8928, 1
  store i32 %8930, ptr %9, align 4
  br label %8962

8931:                                             ; preds = %8780
  %8932 = landingpad { ptr, i32 }
          cleanup
  %8933 = extractvalue { ptr, i32 } %8932, 0
  store ptr %8933, ptr %8, align 8
  %8934 = extractvalue { ptr, i32 } %8932, 1
  store i32 %8934, ptr %9, align 4
  br label %8961

8935:                                             ; preds = %8782
  %8936 = landingpad { ptr, i32 }
          cleanup
  %8937 = extractvalue { ptr, i32 } %8936, 0
  store ptr %8937, ptr %8, align 8
  %8938 = extractvalue { ptr, i32 } %8936, 1
  store i32 %8938, ptr %9, align 4
  br label %8960

8939:                                             ; preds = %8784
  %8940 = landingpad { ptr, i32 }
          cleanup
  %8941 = extractvalue { ptr, i32 } %8940, 0
  store ptr %8941, ptr %8, align 8
  %8942 = extractvalue { ptr, i32 } %8940, 1
  store i32 %8942, ptr %9, align 4
  br label %8959

8943:                                             ; preds = %8785
  %8944 = landingpad { ptr, i32 }
          cleanup
  %8945 = extractvalue { ptr, i32 } %8944, 0
  store ptr %8945, ptr %8, align 8
  %8946 = extractvalue { ptr, i32 } %8944, 1
  store i32 %8946, ptr %9, align 4
  br label %8951

8947:                                             ; preds = %8792
  %8948 = landingpad { ptr, i32 }
          cleanup
  %8949 = extractvalue { ptr, i32 } %8948, 0
  store ptr %8949, ptr %8, align 8
  %8950 = extractvalue { ptr, i32 } %8948, 1
  store i32 %8950, ptr %9, align 4
  call void @_ZNSt6vectorIN6Halide5RangeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1279) #9
  br label %8951

8951:                                             ; preds = %8947, %8943
  call void @_ZNSt15__new_allocatorIN6Halide5RangeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1288) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1288) #9
  %8952 = getelementptr inbounds [2 x %"struct.Halide::Range"], ptr %1281, i32 0, i32 0
  %8953 = getelementptr inbounds %"struct.Halide::Range", ptr %8952, i64 2
  br label %8954

8954:                                             ; preds = %8954, %8951
  %8955 = phi ptr [ %8953, %8951 ], [ %8956, %8954 ]
  %8956 = getelementptr inbounds %"struct.Halide::Range", ptr %8955, i64 -1
  call void @_ZN6Halide5RangeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8956) #9
  %8957 = icmp eq ptr %8956, %8952
  br i1 %8957, label %8958, label %8954

8958:                                             ; preds = %8954
  br label %8959

8959:                                             ; preds = %8958, %8939
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1286) #9
  br label %8960

8960:                                             ; preds = %8959, %8935
  call void @llvm.lifetime.end.p0(i64 8, ptr %1286) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1285) #9
  br label %8961

8961:                                             ; preds = %8960, %8931
  call void @llvm.lifetime.end.p0(i64 8, ptr %1285) #9
  br label %8962

8962:                                             ; preds = %8961, %8927
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1284) #9
  br label %8963

8963:                                             ; preds = %8962, %8923
  call void @llvm.lifetime.end.p0(i64 8, ptr %1284) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1283) #9
  br label %8964

8964:                                             ; preds = %8963, %8919
  call void @llvm.lifetime.end.p0(i64 8, ptr %1283) #9
  %8965 = load i1, ptr %1287, align 1
  br i1 %8965, label %8966, label %8974

8966:                                             ; preds = %8964
  %8967 = load ptr, ptr %1282, align 8
  %8968 = icmp eq ptr %1281, %8967
  br i1 %8968, label %8973, label %8969

8969:                                             ; preds = %8969, %8966
  %8970 = phi ptr [ %8967, %8966 ], [ %8971, %8969 ]
  %8971 = getelementptr inbounds %"struct.Halide::Range", ptr %8970, i64 -1
  call void @_ZN6Halide5RangeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8971) #9
  %8972 = icmp eq ptr %8971, %1281
  br i1 %8972, label %8973, label %8969

8973:                                             ; preds = %8969, %8966
  br label %8974

8974:                                             ; preds = %8973, %8964
  call void @llvm.lifetime.end.p0(i64 32, ptr %1281) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %1279) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1278) #9
  br label %8975

8975:                                             ; preds = %8974, %8918, %8824, %8815
  call void @llvm.lifetime.end.p0(i64 4, ptr %1252) #9
  br label %9344

8976:                                             ; preds = %8191
  call void @llvm.lifetime.start.p0(i64 4, ptr %1289) #9
  store i32 3, ptr %1289, align 4, !tbaa !5
  br label %8977

8977:                                             ; preds = %9015, %8976
  %8978 = load i32, ptr %1289, align 4, !tbaa !5
  %8979 = icmp sge i32 %8978, 0
  br i1 %8979, label %8981, label %8980

8980:                                             ; preds = %8977
  store i32 47, ptr %311, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %1289) #9
  br label %9132

8981:                                             ; preds = %8977
  call void @llvm.lifetime.start.p0(i64 56, ptr %1294) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1297, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %8982 unwind label %9018

8982:                                             ; preds = %8981
  invoke void @_ZN6HalidedvENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1296, ptr noundef %1297, i32 noundef 2)
          to label %8983 unwind label %9022

8983:                                             ; preds = %8982
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1295, ptr noundef %1296, i32 noundef 10)
          to label %8984 unwind label %9026

8984:                                             ; preds = %8983
  call void @llvm.lifetime.start.p0(i64 8, ptr %1298) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1300, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8985 unwind label %9030

8985:                                             ; preds = %8984
  invoke void @_ZN6HalidedvENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1299, ptr noundef %1300, i32 noundef 2)
          to label %8986 unwind label %9034

8986:                                             ; preds = %8985
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1298, ptr noundef %1299, i32 noundef 10)
          to label %8987 unwind label %9038

8987:                                             ; preds = %8986
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1294, ptr noundef nonnull align 8 dereferenceable(32) %1245, ptr noundef %1295, ptr noundef nonnull align 8 dereferenceable(8) %1298)
          to label %8988 unwind label %9042

8988:                                             ; preds = %8987
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1293, ptr noundef nonnull align 8 dereferenceable(56) %1294)
          to label %8989 unwind label %9046

8989:                                             ; preds = %8988
  call void @llvm.lifetime.start.p0(i64 56, ptr %1302) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1305, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %8990 unwind label %9050

8990:                                             ; preds = %8989
  invoke void @_ZN6HalidedvENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1304, ptr noundef %1305, i32 noundef 2)
          to label %8991 unwind label %9054

8991:                                             ; preds = %8990
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1303, ptr noundef %1304, i32 noundef 10)
          to label %8992 unwind label %9058

8992:                                             ; preds = %8991
  call void @llvm.lifetime.start.p0(i64 8, ptr %1306) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1308, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %8993 unwind label %9062

8993:                                             ; preds = %8992
  invoke void @_ZN6HalidedvENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1307, ptr noundef %1308, i32 noundef 2)
          to label %8994 unwind label %9066

8994:                                             ; preds = %8993
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1306, ptr noundef %1307, i32 noundef 10)
          to label %8995 unwind label %9070

8995:                                             ; preds = %8994
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1302, ptr noundef nonnull align 8 dereferenceable(32) %1245, ptr noundef %1303, ptr noundef nonnull align 8 dereferenceable(8) %1306)
          to label %8996 unwind label %9074

8996:                                             ; preds = %8995
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1301, ptr noundef nonnull align 8 dereferenceable(56) %1302)
          to label %8997 unwind label %9078

8997:                                             ; preds = %8996
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1292, ptr noundef %1293, ptr noundef %1301)
          to label %8998 unwind label %9082

8998:                                             ; preds = %8997
  call void @llvm.lifetime.start.p0(i64 56, ptr %1310) #9
  %8999 = load i32, ptr %1289, align 4, !tbaa !5
  %9000 = sext i32 %8999 to i64
  %9001 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1243, i64 0, i64 %9000
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1310, ptr noundef nonnull align 8 dereferenceable(32) %9001, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %9002 unwind label %9086

9002:                                             ; preds = %8998
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1309, ptr noundef nonnull align 8 dereferenceable(56) %1310)
          to label %9003 unwind label %9090

9003:                                             ; preds = %9002
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1291, ptr noundef %1292, ptr noundef %1309)
          to label %9004 unwind label %9094

9004:                                             ; preds = %9003
  call void @llvm.lifetime.start.p0(i64 56, ptr %1311) #9
  %9005 = load i32, ptr %1289, align 4, !tbaa !5
  %9006 = sext i32 %9005 to i64
  %9007 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1242, i64 0, i64 %9006
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1311, ptr noundef nonnull align 8 dereferenceable(32) %9007, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %9008 unwind label %9098

9008:                                             ; preds = %9004
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1290, ptr noundef nonnull align 8 dereferenceable(56) %1311, ptr noundef %1291)
          to label %9009 unwind label %9102

9009:                                             ; preds = %9008
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1290) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1311) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1311) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1291) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1309) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1310) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1310) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1292) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1301) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1302) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1306) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1307) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1308) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1306) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1303) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1304) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1305) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1302) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1293) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1294) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1298) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1299) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1300) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1298) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1295) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1296) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1297) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1294) #9
  %9010 = load i32, ptr %1289, align 4, !tbaa !5
  %9011 = sext i32 %9010 to i64
  %9012 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1242, i64 0, i64 %9011
  %9013 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4FuncaSERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1245, ptr noundef nonnull align 8 dereferenceable(32) %9012)
          to label %9014 unwind label %9127

9014:                                             ; preds = %9009
  br label %9015

9015:                                             ; preds = %9014
  %9016 = load i32, ptr %1289, align 4, !tbaa !5
  %9017 = add nsw i32 %9016, -1
  store i32 %9017, ptr %1289, align 4, !tbaa !5
  br label %8977, !llvm.loop !36

9018:                                             ; preds = %8981
  %9019 = landingpad { ptr, i32 }
          cleanup
  %9020 = extractvalue { ptr, i32 } %9019, 0
  store ptr %9020, ptr %8, align 8
  %9021 = extractvalue { ptr, i32 } %9019, 1
  store i32 %9021, ptr %9, align 4
  br label %9126

9022:                                             ; preds = %8982
  %9023 = landingpad { ptr, i32 }
          cleanup
  %9024 = extractvalue { ptr, i32 } %9023, 0
  store ptr %9024, ptr %8, align 8
  %9025 = extractvalue { ptr, i32 } %9023, 1
  store i32 %9025, ptr %9, align 4
  br label %9125

9026:                                             ; preds = %8983
  %9027 = landingpad { ptr, i32 }
          cleanup
  %9028 = extractvalue { ptr, i32 } %9027, 0
  store ptr %9028, ptr %8, align 8
  %9029 = extractvalue { ptr, i32 } %9027, 1
  store i32 %9029, ptr %9, align 4
  br label %9124

9030:                                             ; preds = %8984
  %9031 = landingpad { ptr, i32 }
          cleanup
  %9032 = extractvalue { ptr, i32 } %9031, 0
  store ptr %9032, ptr %8, align 8
  %9033 = extractvalue { ptr, i32 } %9031, 1
  store i32 %9033, ptr %9, align 4
  br label %9123

9034:                                             ; preds = %8985
  %9035 = landingpad { ptr, i32 }
          cleanup
  %9036 = extractvalue { ptr, i32 } %9035, 0
  store ptr %9036, ptr %8, align 8
  %9037 = extractvalue { ptr, i32 } %9035, 1
  store i32 %9037, ptr %9, align 4
  br label %9122

9038:                                             ; preds = %8986
  %9039 = landingpad { ptr, i32 }
          cleanup
  %9040 = extractvalue { ptr, i32 } %9039, 0
  store ptr %9040, ptr %8, align 8
  %9041 = extractvalue { ptr, i32 } %9039, 1
  store i32 %9041, ptr %9, align 4
  br label %9121

9042:                                             ; preds = %8987
  %9043 = landingpad { ptr, i32 }
          cleanup
  %9044 = extractvalue { ptr, i32 } %9043, 0
  store ptr %9044, ptr %8, align 8
  %9045 = extractvalue { ptr, i32 } %9043, 1
  store i32 %9045, ptr %9, align 4
  br label %9120

9046:                                             ; preds = %8988
  %9047 = landingpad { ptr, i32 }
          cleanup
  %9048 = extractvalue { ptr, i32 } %9047, 0
  store ptr %9048, ptr %8, align 8
  %9049 = extractvalue { ptr, i32 } %9047, 1
  store i32 %9049, ptr %9, align 4
  br label %9119

9050:                                             ; preds = %8989
  %9051 = landingpad { ptr, i32 }
          cleanup
  %9052 = extractvalue { ptr, i32 } %9051, 0
  store ptr %9052, ptr %8, align 8
  %9053 = extractvalue { ptr, i32 } %9051, 1
  store i32 %9053, ptr %9, align 4
  br label %9118

9054:                                             ; preds = %8990
  %9055 = landingpad { ptr, i32 }
          cleanup
  %9056 = extractvalue { ptr, i32 } %9055, 0
  store ptr %9056, ptr %8, align 8
  %9057 = extractvalue { ptr, i32 } %9055, 1
  store i32 %9057, ptr %9, align 4
  br label %9117

9058:                                             ; preds = %8991
  %9059 = landingpad { ptr, i32 }
          cleanup
  %9060 = extractvalue { ptr, i32 } %9059, 0
  store ptr %9060, ptr %8, align 8
  %9061 = extractvalue { ptr, i32 } %9059, 1
  store i32 %9061, ptr %9, align 4
  br label %9116

9062:                                             ; preds = %8992
  %9063 = landingpad { ptr, i32 }
          cleanup
  %9064 = extractvalue { ptr, i32 } %9063, 0
  store ptr %9064, ptr %8, align 8
  %9065 = extractvalue { ptr, i32 } %9063, 1
  store i32 %9065, ptr %9, align 4
  br label %9115

9066:                                             ; preds = %8993
  %9067 = landingpad { ptr, i32 }
          cleanup
  %9068 = extractvalue { ptr, i32 } %9067, 0
  store ptr %9068, ptr %8, align 8
  %9069 = extractvalue { ptr, i32 } %9067, 1
  store i32 %9069, ptr %9, align 4
  br label %9114

9070:                                             ; preds = %8994
  %9071 = landingpad { ptr, i32 }
          cleanup
  %9072 = extractvalue { ptr, i32 } %9071, 0
  store ptr %9072, ptr %8, align 8
  %9073 = extractvalue { ptr, i32 } %9071, 1
  store i32 %9073, ptr %9, align 4
  br label %9113

9074:                                             ; preds = %8995
  %9075 = landingpad { ptr, i32 }
          cleanup
  %9076 = extractvalue { ptr, i32 } %9075, 0
  store ptr %9076, ptr %8, align 8
  %9077 = extractvalue { ptr, i32 } %9075, 1
  store i32 %9077, ptr %9, align 4
  br label %9112

9078:                                             ; preds = %8996
  %9079 = landingpad { ptr, i32 }
          cleanup
  %9080 = extractvalue { ptr, i32 } %9079, 0
  store ptr %9080, ptr %8, align 8
  %9081 = extractvalue { ptr, i32 } %9079, 1
  store i32 %9081, ptr %9, align 4
  br label %9111

9082:                                             ; preds = %8997
  %9083 = landingpad { ptr, i32 }
          cleanup
  %9084 = extractvalue { ptr, i32 } %9083, 0
  store ptr %9084, ptr %8, align 8
  %9085 = extractvalue { ptr, i32 } %9083, 1
  store i32 %9085, ptr %9, align 4
  br label %9110

9086:                                             ; preds = %8998
  %9087 = landingpad { ptr, i32 }
          cleanup
  %9088 = extractvalue { ptr, i32 } %9087, 0
  store ptr %9088, ptr %8, align 8
  %9089 = extractvalue { ptr, i32 } %9087, 1
  store i32 %9089, ptr %9, align 4
  br label %9109

9090:                                             ; preds = %9002
  %9091 = landingpad { ptr, i32 }
          cleanup
  %9092 = extractvalue { ptr, i32 } %9091, 0
  store ptr %9092, ptr %8, align 8
  %9093 = extractvalue { ptr, i32 } %9091, 1
  store i32 %9093, ptr %9, align 4
  br label %9108

9094:                                             ; preds = %9003
  %9095 = landingpad { ptr, i32 }
          cleanup
  %9096 = extractvalue { ptr, i32 } %9095, 0
  store ptr %9096, ptr %8, align 8
  %9097 = extractvalue { ptr, i32 } %9095, 1
  store i32 %9097, ptr %9, align 4
  br label %9107

9098:                                             ; preds = %9004
  %9099 = landingpad { ptr, i32 }
          cleanup
  %9100 = extractvalue { ptr, i32 } %9099, 0
  store ptr %9100, ptr %8, align 8
  %9101 = extractvalue { ptr, i32 } %9099, 1
  store i32 %9101, ptr %9, align 4
  br label %9106

9102:                                             ; preds = %9008
  %9103 = landingpad { ptr, i32 }
          cleanup
  %9104 = extractvalue { ptr, i32 } %9103, 0
  store ptr %9104, ptr %8, align 8
  %9105 = extractvalue { ptr, i32 } %9103, 1
  store i32 %9105, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1311) #9
  br label %9106

9106:                                             ; preds = %9102, %9098
  call void @llvm.lifetime.end.p0(i64 56, ptr %1311) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1291) #9
  br label %9107

9107:                                             ; preds = %9106, %9094
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1309) #9
  br label %9108

9108:                                             ; preds = %9107, %9090
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1310) #9
  br label %9109

9109:                                             ; preds = %9108, %9086
  call void @llvm.lifetime.end.p0(i64 56, ptr %1310) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1292) #9
  br label %9110

9110:                                             ; preds = %9109, %9082
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1301) #9
  br label %9111

9111:                                             ; preds = %9110, %9078
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1302) #9
  br label %9112

9112:                                             ; preds = %9111, %9074
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1306) #9
  br label %9113

9113:                                             ; preds = %9112, %9070
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1307) #9
  br label %9114

9114:                                             ; preds = %9113, %9066
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1308) #9
  br label %9115

9115:                                             ; preds = %9114, %9062
  call void @llvm.lifetime.end.p0(i64 8, ptr %1306) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1303) #9
  br label %9116

9116:                                             ; preds = %9115, %9058
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1304) #9
  br label %9117

9117:                                             ; preds = %9116, %9054
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1305) #9
  br label %9118

9118:                                             ; preds = %9117, %9050
  call void @llvm.lifetime.end.p0(i64 56, ptr %1302) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1293) #9
  br label %9119

9119:                                             ; preds = %9118, %9046
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1294) #9
  br label %9120

9120:                                             ; preds = %9119, %9042
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1298) #9
  br label %9121

9121:                                             ; preds = %9120, %9038
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1299) #9
  br label %9122

9122:                                             ; preds = %9121, %9034
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1300) #9
  br label %9123

9123:                                             ; preds = %9122, %9030
  call void @llvm.lifetime.end.p0(i64 8, ptr %1298) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1295) #9
  br label %9124

9124:                                             ; preds = %9123, %9026
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1296) #9
  br label %9125

9125:                                             ; preds = %9124, %9022
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1297) #9
  br label %9126

9126:                                             ; preds = %9125, %9018
  call void @llvm.lifetime.end.p0(i64 56, ptr %1294) #9
  br label %9131

9127:                                             ; preds = %9009
  %9128 = landingpad { ptr, i32 }
          cleanup
  %9129 = extractvalue { ptr, i32 } %9128, 0
  store ptr %9129, ptr %8, align 8
  %9130 = extractvalue { ptr, i32 } %9128, 1
  store i32 %9130, ptr %9, align 4
  br label %9131

9131:                                             ; preds = %9127, %9126
  call void @llvm.lifetime.end.p0(i64 4, ptr %1289) #9
  br label %9344

9132:                                             ; preds = %8980
  call void @llvm.lifetime.start.p0(i64 32, ptr %1312) #9
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %1312)
          to label %9133 unwind label %9282

9133:                                             ; preds = %9132
  call void @llvm.lifetime.start.p0(i64 56, ptr %1314) #9
  %9134 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1242, i64 0, i64 0
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1314, ptr noundef nonnull align 8 dereferenceable(32) %9134, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %9135 unwind label %9286

9135:                                             ; preds = %9133
  call void @llvm.lifetime.start.p0(i64 56, ptr %1315) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1315, ptr noundef nonnull align 8 dereferenceable(32) %1312, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %9136 unwind label %9290

9136:                                             ; preds = %9135
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1313, ptr noundef nonnull align 8 dereferenceable(56) %1315, ptr noundef nonnull align 8 dereferenceable(56) %1314)
          to label %9137 unwind label %9294

9137:                                             ; preds = %9136
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1313) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1315) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1315) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1314) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1314) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1316, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %9138 unwind label %9300

9138:                                             ; preds = %9137
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1317, i32 noundef 0)
          to label %9139 unwind label %9304

9139:                                             ; preds = %9138
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1318, i32 noundef 2048)
          to label %9140 unwind label %9308

9140:                                             ; preds = %9139
  %9141 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1312, ptr noundef %1316, ptr noundef %1317, ptr noundef %1318)
          to label %9142 unwind label %9312

9142:                                             ; preds = %9140
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1319, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %9143 unwind label %9312

9143:                                             ; preds = %9142
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1320, i32 noundef 0)
          to label %9144 unwind label %9316

9144:                                             ; preds = %9143
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1321, i32 noundef 2048)
          to label %9145 unwind label %9320

9145:                                             ; preds = %9144
  %9146 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %9141, ptr noundef %1319, ptr noundef %1320, ptr noundef %1321)
          to label %9147 unwind label %9324

9147:                                             ; preds = %9145
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1321) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1320) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1319) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1318) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1317) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1316) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1323) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1324, ptr noundef nonnull align 8 dereferenceable(32) %1312) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %1323, ptr noundef %1324)
          to label %9148 unwind label %9333

9148:                                             ; preds = %9147
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %1322, ptr noundef nonnull align 8 dereferenceable(8) %1323, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %9149 unwind label %9337

9149:                                             ; preds = %9148
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %1322) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1323) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1324) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1323) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1312) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1312) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %1251) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1245) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1245) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %1244) #9
  %9150 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1243, i32 0, i32 0
  %9151 = getelementptr inbounds %"class.Halide::Func", ptr %9150, i64 8
  br label %9152

9152:                                             ; preds = %9152, %9149
  %9153 = phi ptr [ %9151, %9149 ], [ %9154, %9152 ]
  %9154 = getelementptr inbounds %"class.Halide::Func", ptr %9153, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9154) #9
  %9155 = icmp eq ptr %9154, %9150
  br i1 %9155, label %9156, label %9152

9156:                                             ; preds = %9152
  call void @llvm.lifetime.end.p0(i64 256, ptr %1243) #9
  %9157 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1242, i32 0, i32 0
  %9158 = getelementptr inbounds %"class.Halide::Func", ptr %9157, i64 8
  br label %9159

9159:                                             ; preds = %9159, %9156
  %9160 = phi ptr [ %9158, %9156 ], [ %9161, %9159 ]
  %9161 = getelementptr inbounds %"class.Halide::Func", ptr %9160, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9161) #9
  %9162 = icmp eq ptr %9161, %9157
  br i1 %9162, label %9163, label %9159

9163:                                             ; preds = %9159
  call void @llvm.lifetime.end.p0(i64 256, ptr %1242) #9
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1240) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1240) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1325) #9
  %9164 = invoke { i64, ptr } @_ZN6Halide5FloatEii(i32 noundef 32, i32 noundef 1)
          to label %9165 unwind label %9364

9165:                                             ; preds = %9163
  %9166 = getelementptr inbounds { i64, ptr }, ptr %1326, i32 0, i32 0
  %9167 = extractvalue { i64, ptr } %9164, 0
  store i64 %9167, ptr %9166, align 8
  %9168 = getelementptr inbounds { i64, ptr }, ptr %1326, i32 0, i32 1
  %9169 = extractvalue { i64, ptr } %9164, 1
  store ptr %9169, ptr %9168, align 8
  %9170 = getelementptr inbounds { i64, ptr }, ptr %1326, i32 0, i32 0
  %9171 = load i64, ptr %9170, align 8
  %9172 = getelementptr inbounds { i64, ptr }, ptr %1326, i32 0, i32 1
  %9173 = load ptr, ptr %9172, align 8
  invoke void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56) %1325, i64 %9171, ptr %9173, i32 noundef 2)
          to label %9174 unwind label %9364

9174:                                             ; preds = %9165
  call void @llvm.lifetime.start.p0(i64 32, ptr %1327) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1328) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %1329) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1329) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1328, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %1329)
          to label %9175 unwind label %9368

9175:                                             ; preds = %9174
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1327, ptr noundef nonnull align 8 dereferenceable(32) %1328)
          to label %9176 unwind label %9372

9176:                                             ; preds = %9175
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1328) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1329) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1329) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1328) #9
  invoke void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_EEENS_4ExprEDpOT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1331, ptr noundef nonnull align 8 dereferenceable(56) %1325, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %9177 unwind label %9377

9177:                                             ; preds = %9176
  call void @llvm.lifetime.start.p0(i64 56, ptr %1332) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1332, ptr noundef nonnull align 8 dereferenceable(32) %1327, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %9178 unwind label %9381

9178:                                             ; preds = %9177
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1330, ptr noundef nonnull align 8 dereferenceable(56) %1332, ptr noundef %1331)
          to label %9179 unwind label %9385

9179:                                             ; preds = %9178
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1330) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1332) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1332) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1331) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1333) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1334) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %1335) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1335) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1334, ptr noundef @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %1335)
          to label %9180 unwind label %9390

9180:                                             ; preds = %9179
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1333, ptr noundef nonnull align 8 dereferenceable(32) %1334)
          to label %9181 unwind label %9394

9181:                                             ; preds = %9180
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1334) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1335) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1335) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1334) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1337) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1337, ptr noundef nonnull align 8 dereferenceable(32) %1327, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %9182 unwind label %9399

9182:                                             ; preds = %9181
  call void @llvm.lifetime.start.p0(i64 56, ptr %1338) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1338, ptr noundef nonnull align 8 dereferenceable(32) %1333, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %9183 unwind label %9403

9183:                                             ; preds = %9182
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1336, ptr noundef nonnull align 8 dereferenceable(56) %1338, ptr noundef nonnull align 8 dereferenceable(56) %1337)
          to label %9184 unwind label %9407

9184:                                             ; preds = %9183
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1336) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1338) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1338) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1337) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1337) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr %1339) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1340, i32 noundef 1)
          to label %9185 unwind label %9413

9185:                                             ; preds = %9184
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1341, i32 noundef 1999)
          to label %9186 unwind label %9417

9186:                                             ; preds = %9185
  invoke void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %1339, ptr noundef %1340, ptr noundef %1341)
          to label %9187 unwind label %9421

9187:                                             ; preds = %9186
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1341) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1340) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1343) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1344, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %9188 unwind label %9426

9188:                                             ; preds = %9187
  call void @llvm.lifetime.start.p0(i64 8, ptr %1345) #9
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1346, ptr noundef nonnull align 8 dereferenceable(200) %1339)
          to label %9189 unwind label %9430

9189:                                             ; preds = %9188
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1345, ptr noundef %1346, i32 noundef 1)
          to label %9190 unwind label %9434

9190:                                             ; preds = %9189
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1343, ptr noundef nonnull align 8 dereferenceable(32) %1333, ptr noundef %1344, ptr noundef nonnull align 8 dereferenceable(8) %1345)
          to label %9191 unwind label %9438

9191:                                             ; preds = %9190
  call void @llvm.lifetime.start.p0(i64 56, ptr %1347) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1348, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %9192 unwind label %9442

9192:                                             ; preds = %9191
  invoke void @_ZNK6Halide4FuncclIJRNS_4RDomEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1347, ptr noundef nonnull align 8 dereferenceable(32) %1333, ptr noundef %1348, ptr noundef nonnull align 8 dereferenceable(200) %1339)
          to label %9193 unwind label %9446

9193:                                             ; preds = %9192
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1342, ptr noundef nonnull align 8 dereferenceable(56) %1347, ptr noundef nonnull align 8 dereferenceable(56) %1343)
          to label %9194 unwind label %9450

9194:                                             ; preds = %9193
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1342) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1347) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1348) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1347) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1343) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1345) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1346) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1345) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1344) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1343) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1350) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1351, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %9195 unwind label %9460

9195:                                             ; preds = %9194
  call void @llvm.lifetime.start.p0(i64 8, ptr %1352) #9
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1353, ptr noundef nonnull align 8 dereferenceable(200) %1339)
          to label %9196 unwind label %9464

9196:                                             ; preds = %9195
  invoke void @_ZN6HalidemiEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1352, i32 noundef 2000, ptr noundef %1353)
          to label %9197 unwind label %9468

9197:                                             ; preds = %9196
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1350, ptr noundef nonnull align 8 dereferenceable(32) %1333, ptr noundef %1351, ptr noundef nonnull align 8 dereferenceable(8) %1352)
          to label %9198 unwind label %9472

9198:                                             ; preds = %9197
  call void @llvm.lifetime.start.p0(i64 56, ptr %1354) #9
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1355, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %9199 unwind label %9476

9199:                                             ; preds = %9198
  call void @llvm.lifetime.start.p0(i64 8, ptr %1356) #9
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1357, ptr noundef nonnull align 8 dereferenceable(200) %1339)
          to label %9200 unwind label %9480

9200:                                             ; preds = %9199
  invoke void @_ZN6HalidemiEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1356, i32 noundef 1999, ptr noundef %1357)
          to label %9201 unwind label %9484

9201:                                             ; preds = %9200
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1354, ptr noundef nonnull align 8 dereferenceable(32) %1333, ptr noundef %1355, ptr noundef nonnull align 8 dereferenceable(8) %1356)
          to label %9202 unwind label %9488

9202:                                             ; preds = %9201
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1349, ptr noundef nonnull align 8 dereferenceable(56) %1354, ptr noundef nonnull align 8 dereferenceable(56) %1350)
          to label %9203 unwind label %9492

9203:                                             ; preds = %9202
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1349) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1354) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1356) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1357) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1356) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1355) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1354) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1350) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1352) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1353) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1352) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1351) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1350) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1358) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1359) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %1360) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1360) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1359, ptr noundef @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %1360)
          to label %9204 unwind label %9504

9204:                                             ; preds = %9203
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1358, ptr noundef nonnull align 8 dereferenceable(32) %1359)
          to label %9205 unwind label %9508

9205:                                             ; preds = %9204
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1359) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1360) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1360) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1359) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1362) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1362, ptr noundef nonnull align 8 dereferenceable(32) %1333, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %9206 unwind label %9513

9206:                                             ; preds = %9205
  call void @llvm.lifetime.start.p0(i64 56, ptr %1363) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1363, ptr noundef nonnull align 8 dereferenceable(32) %1358, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %9207 unwind label %9517

9207:                                             ; preds = %9206
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1361, ptr noundef nonnull align 8 dereferenceable(56) %1363, ptr noundef nonnull align 8 dereferenceable(56) %1362)
          to label %9208 unwind label %9521

9208:                                             ; preds = %9207
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1361) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1363) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1363) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1362) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1362) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1364, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %9209 unwind label %9527

9209:                                             ; preds = %9208
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1365, i32 noundef 0)
          to label %9210 unwind label %9531

9210:                                             ; preds = %9209
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1366, i32 noundef 2000)
          to label %9211 unwind label %9535

9211:                                             ; preds = %9210
  %9212 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1358, ptr noundef %1364, ptr noundef %1365, ptr noundef %1366)
          to label %9213 unwind label %9539

9213:                                             ; preds = %9211
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1367, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %9214 unwind label %9539

9214:                                             ; preds = %9213
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1368, i32 noundef 0)
          to label %9215 unwind label %9543

9215:                                             ; preds = %9214
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1369, i32 noundef 2000)
          to label %9216 unwind label %9547

9216:                                             ; preds = %9215
  %9217 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %9212, ptr noundef %1367, ptr noundef %1368, ptr noundef %1369)
          to label %9218 unwind label %9551

9218:                                             ; preds = %9216
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1369) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1368) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1367) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1366) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1365) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1364) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1371) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1372, ptr noundef nonnull align 8 dereferenceable(32) %1358) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %1371, ptr noundef %1372)
          to label %9219 unwind label %9560

9219:                                             ; preds = %9218
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %1370, ptr noundef nonnull align 8 dereferenceable(8) %1371, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %9220 unwind label %9564

9220:                                             ; preds = %9219
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %1370) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1371) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1372) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1371) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1358) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1358) #9
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %1339) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %1339) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1333) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1333) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1327) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1327) #9
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1325) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1325) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1373) #9
  %9221 = invoke { i64, ptr } @_ZN6Halide3IntEii(i32 noundef 32, i32 noundef 1)
          to label %9222 unwind label %9578

9222:                                             ; preds = %9220
  %9223 = getelementptr inbounds { i64, ptr }, ptr %1374, i32 0, i32 0
  %9224 = extractvalue { i64, ptr } %9221, 0
  store i64 %9224, ptr %9223, align 8
  %9225 = getelementptr inbounds { i64, ptr }, ptr %1374, i32 0, i32 1
  %9226 = extractvalue { i64, ptr } %9221, 1
  store ptr %9226, ptr %9225, align 8
  %9227 = getelementptr inbounds { i64, ptr }, ptr %1374, i32 0, i32 0
  %9228 = load i64, ptr %9227, align 8
  %9229 = getelementptr inbounds { i64, ptr }, ptr %1374, i32 0, i32 1
  %9230 = load ptr, ptr %9229, align 8
  invoke void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56) %1373, i64 %9228, ptr %9230, i32 noundef 2)
          to label %9231 unwind label %9578

9231:                                             ; preds = %9222
  call void @llvm.lifetime.start.p0(i64 32, ptr %1375) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1376) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %1377) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1377) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1376, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %1377)
          to label %9232 unwind label %9582

9232:                                             ; preds = %9231
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1375, ptr noundef nonnull align 8 dereferenceable(32) %1376)
          to label %9233 unwind label %9586

9233:                                             ; preds = %9232
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1376) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1377) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1377) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1376) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1378) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1379) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %1380) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1380) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1379, ptr noundef @.str.33, ptr noundef nonnull align 1 dereferenceable(1) %1380)
          to label %9234 unwind label %9591

9234:                                             ; preds = %9233
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1378, ptr noundef nonnull align 8 dereferenceable(32) %1379)
          to label %9235 unwind label %9595

9235:                                             ; preds = %9234
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1379) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1380) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1380) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1379) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1381) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1382) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %1383) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1383) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1382, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %1383)
          to label %9236 unwind label %9600

9236:                                             ; preds = %9235
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1381, ptr noundef nonnull align 8 dereferenceable(32) %1382)
          to label %9237 unwind label %9604

9237:                                             ; preds = %9236
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1382) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1383) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1383) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1382) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1384) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %1385) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %1386) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1386) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1385, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %1386)
          to label %9238 unwind label %9609

9238:                                             ; preds = %9237
  invoke void @_ZN6Halide3VarC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1384, ptr noundef nonnull align 8 dereferenceable(32) %1385)
          to label %9239 unwind label %9613

9239:                                             ; preds = %9238
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1385) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1386) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1386) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1385) #9
  invoke void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_EEENS_4ExprEDpOT_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1389, ptr noundef nonnull align 8 dereferenceable(56) %1373, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %9240 unwind label %9618

9240:                                             ; preds = %9239
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1390, i32 noundef 0)
          to label %9241 unwind label %9622

9241:                                             ; preds = %9240
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1391, i32 noundef 255)
          to label %9242 unwind label %9626

9242:                                             ; preds = %9241
  invoke void @_ZN6Halide5clampENS_4ExprES0_S0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1388, ptr noundef %1389, ptr noundef %1390, ptr noundef %1391)
          to label %9243 unwind label %9630

9243:                                             ; preds = %9242
  call void @llvm.lifetime.start.p0(i64 56, ptr %1392) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1392, ptr noundef nonnull align 8 dereferenceable(32) %1375, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %9244 unwind label %9634

9244:                                             ; preds = %9243
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1387, ptr noundef nonnull align 8 dereferenceable(56) %1392, ptr noundef %1388)
          to label %9245 unwind label %9638

9245:                                             ; preds = %9244
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1387) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1392) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1392) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1388) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1391) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1390) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1389) #9
  call void @llvm.lifetime.start.p0(i64 200, ptr %1393) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1394, i32 noundef 0)
          to label %9246 unwind label %9646

9246:                                             ; preds = %9245
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1395, i32 noundef 2000)
          to label %9247 unwind label %9650

9247:                                             ; preds = %9246
  call void @llvm.lifetime.start.p0(i64 4, ptr %1396) #9
  store i32 0, ptr %1396, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %1397) #9
  store i32 2000, ptr %1397, align 4, !tbaa !5
  invoke void @_ZN6Halide4RDomC2IJiiEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %1393, ptr noundef %1394, ptr noundef %1395, ptr noundef nonnull align 4 dereferenceable(4) %1396, ptr noundef nonnull align 4 dereferenceable(4) %1397)
          to label %9248 unwind label %9654

9248:                                             ; preds = %9247
  call void @llvm.lifetime.end.p0(i64 4, ptr %1397) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %1396) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1395) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1394) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1400, i32 noundef 0)
          to label %9249 unwind label %9659

9249:                                             ; preds = %9248
  invoke void @_ZN6Halide4castIjEENS_4ExprES1_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1399, ptr noundef %1400)
          to label %9250 unwind label %9663

9250:                                             ; preds = %9249
  call void @llvm.lifetime.start.p0(i64 56, ptr %1401) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1401, ptr noundef nonnull align 8 dereferenceable(32) %1378, ptr noundef nonnull align 8 dereferenceable(32) %1384)
          to label %9251 unwind label %9667

9251:                                             ; preds = %9250
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1398, ptr noundef nonnull align 8 dereferenceable(56) %1401, ptr noundef %1399)
          to label %9252 unwind label %9671

9252:                                             ; preds = %9251
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1398) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1401) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1401) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1399) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1400) #9
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1404, i32 noundef 1)
          to label %9253 unwind label %9659

9253:                                             ; preds = %9252
  invoke void @_ZN6Halide4castIjEENS_4ExprES1_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1403, ptr noundef %1404)
          to label %9254 unwind label %9677

9254:                                             ; preds = %9253
  call void @llvm.lifetime.start.p0(i64 56, ptr %1405) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1407) #9
  %9255 = getelementptr inbounds %"class.Halide::RDom", ptr %1393, i32 0, i32 1
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1408, ptr noundef nonnull align 8 dereferenceable(44) %9255)
          to label %9256 unwind label %9681

9256:                                             ; preds = %9254
  %9257 = getelementptr inbounds %"class.Halide::RDom", ptr %1393, i32 0, i32 2
  invoke void @_ZNK6Halide4FuncclIJRNS_4RVarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1407, ptr noundef nonnull align 8 dereferenceable(32) %1375, ptr noundef %1408, ptr noundef nonnull align 8 dereferenceable(44) %9257)
          to label %9258 unwind label %9685

9258:                                             ; preds = %9256
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8 %1406, ptr noundef nonnull align 8 dereferenceable(56) %1407)
          to label %9259 unwind label %9689

9259:                                             ; preds = %9258
  invoke void @_ZNK6Halide4FuncclIJEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES3_DpOS4_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1405, ptr noundef nonnull align 8 dereferenceable(32) %1378, ptr noundef %1406)
          to label %9260 unwind label %9693

9260:                                             ; preds = %9259
  invoke void @_ZN6Halide7FuncRefpLENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1402, ptr noundef nonnull align 8 dereferenceable(56) %1405, ptr noundef %1403)
          to label %9261 unwind label %9697

9261:                                             ; preds = %9260
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1402) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1405) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1406) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1407) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1408) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1407) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1405) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1403) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1404) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %1410) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1410, ptr noundef nonnull align 8 dereferenceable(32) %1378, ptr noundef nonnull align 8 dereferenceable(32) %1384)
          to label %9262 unwind label %9706

9262:                                             ; preds = %9261
  call void @llvm.lifetime.start.p0(i64 56, ptr %1411) #9
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind writable sret(%"class.Halide::FuncRef") align 8 %1411, ptr noundef nonnull align 8 dereferenceable(32) %1381, ptr noundef nonnull align 8 dereferenceable(32) %1384)
          to label %9263 unwind label %9710

9263:                                             ; preds = %9262
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8 %1409, ptr noundef nonnull align 8 dereferenceable(56) %1411, ptr noundef nonnull align 8 dereferenceable(56) %1410)
          to label %9264 unwind label %9714

9264:                                             ; preds = %9263
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1409) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1411) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1411) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1410) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1410) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1412, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %9265 unwind label %9659

9265:                                             ; preds = %9264
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1413, i32 noundef 0)
          to label %9266 unwind label %9720

9266:                                             ; preds = %9265
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1414, i32 noundef 2000)
          to label %9267 unwind label %9724

9267:                                             ; preds = %9266
  %9268 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1375, ptr noundef %1412, ptr noundef %1413, ptr noundef %1414)
          to label %9269 unwind label %9728

9269:                                             ; preds = %9267
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1415, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %9270 unwind label %9728

9270:                                             ; preds = %9269
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1416, i32 noundef 0)
          to label %9271 unwind label %9732

9271:                                             ; preds = %9270
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1417, i32 noundef 2000)
          to label %9272 unwind label %9736

9272:                                             ; preds = %9271
  %9273 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %9268, ptr noundef %1415, ptr noundef %1416, ptr noundef %1417)
          to label %9274 unwind label %9740

9274:                                             ; preds = %9272
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1417) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1416) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1415) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1414) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1413) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1412) #9
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1418, ptr noundef nonnull align 8 dereferenceable(32) %1384)
          to label %9275 unwind label %9659

9275:                                             ; preds = %9274
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1419, i32 noundef 0)
          to label %9276 unwind label %9749

9276:                                             ; preds = %9275
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1420, i32 noundef 256)
          to label %9277 unwind label %9753

9277:                                             ; preds = %9276
  %9278 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1381, ptr noundef %1418, ptr noundef %1419, ptr noundef %1420)
          to label %9279 unwind label %9757

9279:                                             ; preds = %9277
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1420) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1419) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1418) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %1422) #9
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1423, ptr noundef nonnull align 8 dereferenceable(32) %1381) #9
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %1422, ptr noundef %1423)
          to label %9280 unwind label %9763

9280:                                             ; preds = %9279
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %1421, ptr noundef nonnull align 8 dereferenceable(8) %1422, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(20) %10)
          to label %9281 unwind label %9767

9281:                                             ; preds = %9280
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %1421) #9
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1422) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1423) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1422) #9
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %1393) #9
  call void @llvm.lifetime.end.p0(i64 200, ptr %1393) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1384) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1384) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1381) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1381) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1378) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1378) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1375) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1375) #9
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1373) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1373) #9
  store i32 0, ptr %3, align 4
  store i32 1, ptr %311, align 4
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #9
  br label %9783

9282:                                             ; preds = %9132
  %9283 = landingpad { ptr, i32 }
          cleanup
  %9284 = extractvalue { ptr, i32 } %9283, 0
  store ptr %9284, ptr %8, align 8
  %9285 = extractvalue { ptr, i32 } %9283, 1
  store i32 %9285, ptr %9, align 4
  br label %9343

9286:                                             ; preds = %9133
  %9287 = landingpad { ptr, i32 }
          cleanup
  %9288 = extractvalue { ptr, i32 } %9287, 0
  store ptr %9288, ptr %8, align 8
  %9289 = extractvalue { ptr, i32 } %9287, 1
  store i32 %9289, ptr %9, align 4
  br label %9299

9290:                                             ; preds = %9135
  %9291 = landingpad { ptr, i32 }
          cleanup
  %9292 = extractvalue { ptr, i32 } %9291, 0
  store ptr %9292, ptr %8, align 8
  %9293 = extractvalue { ptr, i32 } %9291, 1
  store i32 %9293, ptr %9, align 4
  br label %9298

9294:                                             ; preds = %9136
  %9295 = landingpad { ptr, i32 }
          cleanup
  %9296 = extractvalue { ptr, i32 } %9295, 0
  store ptr %9296, ptr %8, align 8
  %9297 = extractvalue { ptr, i32 } %9295, 1
  store i32 %9297, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1315) #9
  br label %9298

9298:                                             ; preds = %9294, %9290
  call void @llvm.lifetime.end.p0(i64 56, ptr %1315) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1314) #9
  br label %9299

9299:                                             ; preds = %9298, %9286
  call void @llvm.lifetime.end.p0(i64 56, ptr %1314) #9
  br label %9342

9300:                                             ; preds = %9137
  %9301 = landingpad { ptr, i32 }
          cleanup
  %9302 = extractvalue { ptr, i32 } %9301, 0
  store ptr %9302, ptr %8, align 8
  %9303 = extractvalue { ptr, i32 } %9301, 1
  store i32 %9303, ptr %9, align 4
  br label %9342

9304:                                             ; preds = %9138
  %9305 = landingpad { ptr, i32 }
          cleanup
  %9306 = extractvalue { ptr, i32 } %9305, 0
  store ptr %9306, ptr %8, align 8
  %9307 = extractvalue { ptr, i32 } %9305, 1
  store i32 %9307, ptr %9, align 4
  br label %9332

9308:                                             ; preds = %9139
  %9309 = landingpad { ptr, i32 }
          cleanup
  %9310 = extractvalue { ptr, i32 } %9309, 0
  store ptr %9310, ptr %8, align 8
  %9311 = extractvalue { ptr, i32 } %9309, 1
  store i32 %9311, ptr %9, align 4
  br label %9331

9312:                                             ; preds = %9142, %9140
  %9313 = landingpad { ptr, i32 }
          cleanup
  %9314 = extractvalue { ptr, i32 } %9313, 0
  store ptr %9314, ptr %8, align 8
  %9315 = extractvalue { ptr, i32 } %9313, 1
  store i32 %9315, ptr %9, align 4
  br label %9330

9316:                                             ; preds = %9143
  %9317 = landingpad { ptr, i32 }
          cleanup
  %9318 = extractvalue { ptr, i32 } %9317, 0
  store ptr %9318, ptr %8, align 8
  %9319 = extractvalue { ptr, i32 } %9317, 1
  store i32 %9319, ptr %9, align 4
  br label %9329

9320:                                             ; preds = %9144
  %9321 = landingpad { ptr, i32 }
          cleanup
  %9322 = extractvalue { ptr, i32 } %9321, 0
  store ptr %9322, ptr %8, align 8
  %9323 = extractvalue { ptr, i32 } %9321, 1
  store i32 %9323, ptr %9, align 4
  br label %9328

9324:                                             ; preds = %9145
  %9325 = landingpad { ptr, i32 }
          cleanup
  %9326 = extractvalue { ptr, i32 } %9325, 0
  store ptr %9326, ptr %8, align 8
  %9327 = extractvalue { ptr, i32 } %9325, 1
  store i32 %9327, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1321) #9
  br label %9328

9328:                                             ; preds = %9324, %9320
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1320) #9
  br label %9329

9329:                                             ; preds = %9328, %9316
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1319) #9
  br label %9330

9330:                                             ; preds = %9329, %9312
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1318) #9
  br label %9331

9331:                                             ; preds = %9330, %9308
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1317) #9
  br label %9332

9332:                                             ; preds = %9331, %9304
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1316) #9
  br label %9342

9333:                                             ; preds = %9147
  %9334 = landingpad { ptr, i32 }
          cleanup
  %9335 = extractvalue { ptr, i32 } %9334, 0
  store ptr %9335, ptr %8, align 8
  %9336 = extractvalue { ptr, i32 } %9334, 1
  store i32 %9336, ptr %9, align 4
  br label %9341

9337:                                             ; preds = %9148
  %9338 = landingpad { ptr, i32 }
          cleanup
  %9339 = extractvalue { ptr, i32 } %9338, 0
  store ptr %9339, ptr %8, align 8
  %9340 = extractvalue { ptr, i32 } %9338, 1
  store i32 %9340, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1323) #9
  br label %9341

9341:                                             ; preds = %9337, %9333
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1324) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1323) #9
  br label %9342

9342:                                             ; preds = %9341, %9332, %9300, %9299
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1312) #9
  br label %9343

9343:                                             ; preds = %9342, %9282
  call void @llvm.lifetime.end.p0(i64 32, ptr %1312) #9
  br label %9344

9344:                                             ; preds = %9343, %9131, %8975
  call void @llvm.lifetime.end.p0(i64 4, ptr %1251) #9
  br label %9345

9345:                                             ; preds = %9344, %8736, %8724
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1245) #9
  br label %9346

9346:                                             ; preds = %9345, %8723
  call void @llvm.lifetime.end.p0(i64 32, ptr %1245) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %1244) #9
  %9347 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1243, i32 0, i32 0
  %9348 = getelementptr inbounds %"class.Halide::Func", ptr %9347, i64 8
  br label %9349

9349:                                             ; preds = %9349, %9346
  %9350 = phi ptr [ %9348, %9346 ], [ %9351, %9349 ]
  %9351 = getelementptr inbounds %"class.Halide::Func", ptr %9350, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9351) #9
  %9352 = icmp eq ptr %9351, %9347
  br i1 %9352, label %9353, label %9349

9353:                                             ; preds = %9349
  br label %9354

9354:                                             ; preds = %9353, %8714
  call void @llvm.lifetime.end.p0(i64 256, ptr %1243) #9
  %9355 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1242, i32 0, i32 0
  %9356 = getelementptr inbounds %"class.Halide::Func", ptr %9355, i64 8
  br label %9357

9357:                                             ; preds = %9357, %9354
  %9358 = phi ptr [ %9356, %9354 ], [ %9359, %9357 ]
  %9359 = getelementptr inbounds %"class.Halide::Func", ptr %9358, i64 -1
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9359) #9
  %9360 = icmp eq ptr %9359, %9355
  br i1 %9360, label %9361, label %9357

9361:                                             ; preds = %9357
  br label %9362

9362:                                             ; preds = %9361, %8704
  call void @llvm.lifetime.end.p0(i64 256, ptr %1242) #9
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1240) #9
  br label %9363

9363:                                             ; preds = %9362, %8691
  call void @llvm.lifetime.end.p0(i64 56, ptr %1240) #9
  br label %9780

9364:                                             ; preds = %9165, %9163
  %9365 = landingpad { ptr, i32 }
          cleanup
  %9366 = extractvalue { ptr, i32 } %9365, 0
  store ptr %9366, ptr %8, align 8
  %9367 = extractvalue { ptr, i32 } %9365, 1
  store i32 %9367, ptr %9, align 4
  br label %9577

9368:                                             ; preds = %9174
  %9369 = landingpad { ptr, i32 }
          cleanup
  %9370 = extractvalue { ptr, i32 } %9369, 0
  store ptr %9370, ptr %8, align 8
  %9371 = extractvalue { ptr, i32 } %9369, 1
  store i32 %9371, ptr %9, align 4
  br label %9376

9372:                                             ; preds = %9175
  %9373 = landingpad { ptr, i32 }
          cleanup
  %9374 = extractvalue { ptr, i32 } %9373, 0
  store ptr %9374, ptr %8, align 8
  %9375 = extractvalue { ptr, i32 } %9373, 1
  store i32 %9375, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1328) #9
  br label %9376

9376:                                             ; preds = %9372, %9368
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1329) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1329) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1328) #9
  br label %9576

9377:                                             ; preds = %9176
  %9378 = landingpad { ptr, i32 }
          cleanup
  %9379 = extractvalue { ptr, i32 } %9378, 0
  store ptr %9379, ptr %8, align 8
  %9380 = extractvalue { ptr, i32 } %9378, 1
  store i32 %9380, ptr %9, align 4
  br label %9575

9381:                                             ; preds = %9177
  %9382 = landingpad { ptr, i32 }
          cleanup
  %9383 = extractvalue { ptr, i32 } %9382, 0
  store ptr %9383, ptr %8, align 8
  %9384 = extractvalue { ptr, i32 } %9382, 1
  store i32 %9384, ptr %9, align 4
  br label %9389

9385:                                             ; preds = %9178
  %9386 = landingpad { ptr, i32 }
          cleanup
  %9387 = extractvalue { ptr, i32 } %9386, 0
  store ptr %9387, ptr %8, align 8
  %9388 = extractvalue { ptr, i32 } %9386, 1
  store i32 %9388, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1332) #9
  br label %9389

9389:                                             ; preds = %9385, %9381
  call void @llvm.lifetime.end.p0(i64 56, ptr %1332) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1331) #9
  br label %9575

9390:                                             ; preds = %9179
  %9391 = landingpad { ptr, i32 }
          cleanup
  %9392 = extractvalue { ptr, i32 } %9391, 0
  store ptr %9392, ptr %8, align 8
  %9393 = extractvalue { ptr, i32 } %9391, 1
  store i32 %9393, ptr %9, align 4
  br label %9398

9394:                                             ; preds = %9180
  %9395 = landingpad { ptr, i32 }
          cleanup
  %9396 = extractvalue { ptr, i32 } %9395, 0
  store ptr %9396, ptr %8, align 8
  %9397 = extractvalue { ptr, i32 } %9395, 1
  store i32 %9397, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1334) #9
  br label %9398

9398:                                             ; preds = %9394, %9390
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1335) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1335) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1334) #9
  br label %9574

9399:                                             ; preds = %9181
  %9400 = landingpad { ptr, i32 }
          cleanup
  %9401 = extractvalue { ptr, i32 } %9400, 0
  store ptr %9401, ptr %8, align 8
  %9402 = extractvalue { ptr, i32 } %9400, 1
  store i32 %9402, ptr %9, align 4
  br label %9412

9403:                                             ; preds = %9182
  %9404 = landingpad { ptr, i32 }
          cleanup
  %9405 = extractvalue { ptr, i32 } %9404, 0
  store ptr %9405, ptr %8, align 8
  %9406 = extractvalue { ptr, i32 } %9404, 1
  store i32 %9406, ptr %9, align 4
  br label %9411

9407:                                             ; preds = %9183
  %9408 = landingpad { ptr, i32 }
          cleanup
  %9409 = extractvalue { ptr, i32 } %9408, 0
  store ptr %9409, ptr %8, align 8
  %9410 = extractvalue { ptr, i32 } %9408, 1
  store i32 %9410, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1338) #9
  br label %9411

9411:                                             ; preds = %9407, %9403
  call void @llvm.lifetime.end.p0(i64 56, ptr %1338) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1337) #9
  br label %9412

9412:                                             ; preds = %9411, %9399
  call void @llvm.lifetime.end.p0(i64 56, ptr %1337) #9
  br label %9573

9413:                                             ; preds = %9184
  %9414 = landingpad { ptr, i32 }
          cleanup
  %9415 = extractvalue { ptr, i32 } %9414, 0
  store ptr %9415, ptr %8, align 8
  %9416 = extractvalue { ptr, i32 } %9414, 1
  store i32 %9416, ptr %9, align 4
  br label %9572

9417:                                             ; preds = %9185
  %9418 = landingpad { ptr, i32 }
          cleanup
  %9419 = extractvalue { ptr, i32 } %9418, 0
  store ptr %9419, ptr %8, align 8
  %9420 = extractvalue { ptr, i32 } %9418, 1
  store i32 %9420, ptr %9, align 4
  br label %9425

9421:                                             ; preds = %9186
  %9422 = landingpad { ptr, i32 }
          cleanup
  %9423 = extractvalue { ptr, i32 } %9422, 0
  store ptr %9423, ptr %8, align 8
  %9424 = extractvalue { ptr, i32 } %9422, 1
  store i32 %9424, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1341) #9
  br label %9425

9425:                                             ; preds = %9421, %9417
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1340) #9
  br label %9572

9426:                                             ; preds = %9187
  %9427 = landingpad { ptr, i32 }
          cleanup
  %9428 = extractvalue { ptr, i32 } %9427, 0
  store ptr %9428, ptr %8, align 8
  %9429 = extractvalue { ptr, i32 } %9427, 1
  store i32 %9429, ptr %9, align 4
  br label %9459

9430:                                             ; preds = %9188
  %9431 = landingpad { ptr, i32 }
          cleanup
  %9432 = extractvalue { ptr, i32 } %9431, 0
  store ptr %9432, ptr %8, align 8
  %9433 = extractvalue { ptr, i32 } %9431, 1
  store i32 %9433, ptr %9, align 4
  br label %9458

9434:                                             ; preds = %9189
  %9435 = landingpad { ptr, i32 }
          cleanup
  %9436 = extractvalue { ptr, i32 } %9435, 0
  store ptr %9436, ptr %8, align 8
  %9437 = extractvalue { ptr, i32 } %9435, 1
  store i32 %9437, ptr %9, align 4
  br label %9457

9438:                                             ; preds = %9190
  %9439 = landingpad { ptr, i32 }
          cleanup
  %9440 = extractvalue { ptr, i32 } %9439, 0
  store ptr %9440, ptr %8, align 8
  %9441 = extractvalue { ptr, i32 } %9439, 1
  store i32 %9441, ptr %9, align 4
  br label %9456

9442:                                             ; preds = %9191
  %9443 = landingpad { ptr, i32 }
          cleanup
  %9444 = extractvalue { ptr, i32 } %9443, 0
  store ptr %9444, ptr %8, align 8
  %9445 = extractvalue { ptr, i32 } %9443, 1
  store i32 %9445, ptr %9, align 4
  br label %9455

9446:                                             ; preds = %9192
  %9447 = landingpad { ptr, i32 }
          cleanup
  %9448 = extractvalue { ptr, i32 } %9447, 0
  store ptr %9448, ptr %8, align 8
  %9449 = extractvalue { ptr, i32 } %9447, 1
  store i32 %9449, ptr %9, align 4
  br label %9454

9450:                                             ; preds = %9193
  %9451 = landingpad { ptr, i32 }
          cleanup
  %9452 = extractvalue { ptr, i32 } %9451, 0
  store ptr %9452, ptr %8, align 8
  %9453 = extractvalue { ptr, i32 } %9451, 1
  store i32 %9453, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1347) #9
  br label %9454

9454:                                             ; preds = %9450, %9446
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1348) #9
  br label %9455

9455:                                             ; preds = %9454, %9442
  call void @llvm.lifetime.end.p0(i64 56, ptr %1347) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1343) #9
  br label %9456

9456:                                             ; preds = %9455, %9438
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1345) #9
  br label %9457

9457:                                             ; preds = %9456, %9434
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1346) #9
  br label %9458

9458:                                             ; preds = %9457, %9430
  call void @llvm.lifetime.end.p0(i64 8, ptr %1345) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1344) #9
  br label %9459

9459:                                             ; preds = %9458, %9426
  call void @llvm.lifetime.end.p0(i64 56, ptr %1343) #9
  br label %9571

9460:                                             ; preds = %9194
  %9461 = landingpad { ptr, i32 }
          cleanup
  %9462 = extractvalue { ptr, i32 } %9461, 0
  store ptr %9462, ptr %8, align 8
  %9463 = extractvalue { ptr, i32 } %9461, 1
  store i32 %9463, ptr %9, align 4
  br label %9503

9464:                                             ; preds = %9195
  %9465 = landingpad { ptr, i32 }
          cleanup
  %9466 = extractvalue { ptr, i32 } %9465, 0
  store ptr %9466, ptr %8, align 8
  %9467 = extractvalue { ptr, i32 } %9465, 1
  store i32 %9467, ptr %9, align 4
  br label %9502

9468:                                             ; preds = %9196
  %9469 = landingpad { ptr, i32 }
          cleanup
  %9470 = extractvalue { ptr, i32 } %9469, 0
  store ptr %9470, ptr %8, align 8
  %9471 = extractvalue { ptr, i32 } %9469, 1
  store i32 %9471, ptr %9, align 4
  br label %9501

9472:                                             ; preds = %9197
  %9473 = landingpad { ptr, i32 }
          cleanup
  %9474 = extractvalue { ptr, i32 } %9473, 0
  store ptr %9474, ptr %8, align 8
  %9475 = extractvalue { ptr, i32 } %9473, 1
  store i32 %9475, ptr %9, align 4
  br label %9500

9476:                                             ; preds = %9198
  %9477 = landingpad { ptr, i32 }
          cleanup
  %9478 = extractvalue { ptr, i32 } %9477, 0
  store ptr %9478, ptr %8, align 8
  %9479 = extractvalue { ptr, i32 } %9477, 1
  store i32 %9479, ptr %9, align 4
  br label %9499

9480:                                             ; preds = %9199
  %9481 = landingpad { ptr, i32 }
          cleanup
  %9482 = extractvalue { ptr, i32 } %9481, 0
  store ptr %9482, ptr %8, align 8
  %9483 = extractvalue { ptr, i32 } %9481, 1
  store i32 %9483, ptr %9, align 4
  br label %9498

9484:                                             ; preds = %9200
  %9485 = landingpad { ptr, i32 }
          cleanup
  %9486 = extractvalue { ptr, i32 } %9485, 0
  store ptr %9486, ptr %8, align 8
  %9487 = extractvalue { ptr, i32 } %9485, 1
  store i32 %9487, ptr %9, align 4
  br label %9497

9488:                                             ; preds = %9201
  %9489 = landingpad { ptr, i32 }
          cleanup
  %9490 = extractvalue { ptr, i32 } %9489, 0
  store ptr %9490, ptr %8, align 8
  %9491 = extractvalue { ptr, i32 } %9489, 1
  store i32 %9491, ptr %9, align 4
  br label %9496

9492:                                             ; preds = %9202
  %9493 = landingpad { ptr, i32 }
          cleanup
  %9494 = extractvalue { ptr, i32 } %9493, 0
  store ptr %9494, ptr %8, align 8
  %9495 = extractvalue { ptr, i32 } %9493, 1
  store i32 %9495, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1354) #9
  br label %9496

9496:                                             ; preds = %9492, %9488
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1356) #9
  br label %9497

9497:                                             ; preds = %9496, %9484
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1357) #9
  br label %9498

9498:                                             ; preds = %9497, %9480
  call void @llvm.lifetime.end.p0(i64 8, ptr %1356) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1355) #9
  br label %9499

9499:                                             ; preds = %9498, %9476
  call void @llvm.lifetime.end.p0(i64 56, ptr %1354) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1350) #9
  br label %9500

9500:                                             ; preds = %9499, %9472
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1352) #9
  br label %9501

9501:                                             ; preds = %9500, %9468
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1353) #9
  br label %9502

9502:                                             ; preds = %9501, %9464
  call void @llvm.lifetime.end.p0(i64 8, ptr %1352) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1351) #9
  br label %9503

9503:                                             ; preds = %9502, %9460
  call void @llvm.lifetime.end.p0(i64 56, ptr %1350) #9
  br label %9571

9504:                                             ; preds = %9203
  %9505 = landingpad { ptr, i32 }
          cleanup
  %9506 = extractvalue { ptr, i32 } %9505, 0
  store ptr %9506, ptr %8, align 8
  %9507 = extractvalue { ptr, i32 } %9505, 1
  store i32 %9507, ptr %9, align 4
  br label %9512

9508:                                             ; preds = %9204
  %9509 = landingpad { ptr, i32 }
          cleanup
  %9510 = extractvalue { ptr, i32 } %9509, 0
  store ptr %9510, ptr %8, align 8
  %9511 = extractvalue { ptr, i32 } %9509, 1
  store i32 %9511, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1359) #9
  br label %9512

9512:                                             ; preds = %9508, %9504
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1360) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1360) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1359) #9
  br label %9570

9513:                                             ; preds = %9205
  %9514 = landingpad { ptr, i32 }
          cleanup
  %9515 = extractvalue { ptr, i32 } %9514, 0
  store ptr %9515, ptr %8, align 8
  %9516 = extractvalue { ptr, i32 } %9514, 1
  store i32 %9516, ptr %9, align 4
  br label %9526

9517:                                             ; preds = %9206
  %9518 = landingpad { ptr, i32 }
          cleanup
  %9519 = extractvalue { ptr, i32 } %9518, 0
  store ptr %9519, ptr %8, align 8
  %9520 = extractvalue { ptr, i32 } %9518, 1
  store i32 %9520, ptr %9, align 4
  br label %9525

9521:                                             ; preds = %9207
  %9522 = landingpad { ptr, i32 }
          cleanup
  %9523 = extractvalue { ptr, i32 } %9522, 0
  store ptr %9523, ptr %8, align 8
  %9524 = extractvalue { ptr, i32 } %9522, 1
  store i32 %9524, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1363) #9
  br label %9525

9525:                                             ; preds = %9521, %9517
  call void @llvm.lifetime.end.p0(i64 56, ptr %1363) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1362) #9
  br label %9526

9526:                                             ; preds = %9525, %9513
  call void @llvm.lifetime.end.p0(i64 56, ptr %1362) #9
  br label %9569

9527:                                             ; preds = %9208
  %9528 = landingpad { ptr, i32 }
          cleanup
  %9529 = extractvalue { ptr, i32 } %9528, 0
  store ptr %9529, ptr %8, align 8
  %9530 = extractvalue { ptr, i32 } %9528, 1
  store i32 %9530, ptr %9, align 4
  br label %9569

9531:                                             ; preds = %9209
  %9532 = landingpad { ptr, i32 }
          cleanup
  %9533 = extractvalue { ptr, i32 } %9532, 0
  store ptr %9533, ptr %8, align 8
  %9534 = extractvalue { ptr, i32 } %9532, 1
  store i32 %9534, ptr %9, align 4
  br label %9559

9535:                                             ; preds = %9210
  %9536 = landingpad { ptr, i32 }
          cleanup
  %9537 = extractvalue { ptr, i32 } %9536, 0
  store ptr %9537, ptr %8, align 8
  %9538 = extractvalue { ptr, i32 } %9536, 1
  store i32 %9538, ptr %9, align 4
  br label %9558

9539:                                             ; preds = %9213, %9211
  %9540 = landingpad { ptr, i32 }
          cleanup
  %9541 = extractvalue { ptr, i32 } %9540, 0
  store ptr %9541, ptr %8, align 8
  %9542 = extractvalue { ptr, i32 } %9540, 1
  store i32 %9542, ptr %9, align 4
  br label %9557

9543:                                             ; preds = %9214
  %9544 = landingpad { ptr, i32 }
          cleanup
  %9545 = extractvalue { ptr, i32 } %9544, 0
  store ptr %9545, ptr %8, align 8
  %9546 = extractvalue { ptr, i32 } %9544, 1
  store i32 %9546, ptr %9, align 4
  br label %9556

9547:                                             ; preds = %9215
  %9548 = landingpad { ptr, i32 }
          cleanup
  %9549 = extractvalue { ptr, i32 } %9548, 0
  store ptr %9549, ptr %8, align 8
  %9550 = extractvalue { ptr, i32 } %9548, 1
  store i32 %9550, ptr %9, align 4
  br label %9555

9551:                                             ; preds = %9216
  %9552 = landingpad { ptr, i32 }
          cleanup
  %9553 = extractvalue { ptr, i32 } %9552, 0
  store ptr %9553, ptr %8, align 8
  %9554 = extractvalue { ptr, i32 } %9552, 1
  store i32 %9554, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1369) #9
  br label %9555

9555:                                             ; preds = %9551, %9547
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1368) #9
  br label %9556

9556:                                             ; preds = %9555, %9543
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1367) #9
  br label %9557

9557:                                             ; preds = %9556, %9539
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1366) #9
  br label %9558

9558:                                             ; preds = %9557, %9535
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1365) #9
  br label %9559

9559:                                             ; preds = %9558, %9531
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1364) #9
  br label %9569

9560:                                             ; preds = %9218
  %9561 = landingpad { ptr, i32 }
          cleanup
  %9562 = extractvalue { ptr, i32 } %9561, 0
  store ptr %9562, ptr %8, align 8
  %9563 = extractvalue { ptr, i32 } %9561, 1
  store i32 %9563, ptr %9, align 4
  br label %9568

9564:                                             ; preds = %9219
  %9565 = landingpad { ptr, i32 }
          cleanup
  %9566 = extractvalue { ptr, i32 } %9565, 0
  store ptr %9566, ptr %8, align 8
  %9567 = extractvalue { ptr, i32 } %9565, 1
  store i32 %9567, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1371) #9
  br label %9568

9568:                                             ; preds = %9564, %9560
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1372) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1371) #9
  br label %9569

9569:                                             ; preds = %9568, %9559, %9527, %9526
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1358) #9
  br label %9570

9570:                                             ; preds = %9569, %9512
  call void @llvm.lifetime.end.p0(i64 32, ptr %1358) #9
  br label %9571

9571:                                             ; preds = %9570, %9503, %9459
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %1339) #9
  br label %9572

9572:                                             ; preds = %9571, %9425, %9413
  call void @llvm.lifetime.end.p0(i64 200, ptr %1339) #9
  br label %9573

9573:                                             ; preds = %9572, %9412
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1333) #9
  br label %9574

9574:                                             ; preds = %9573, %9398
  call void @llvm.lifetime.end.p0(i64 32, ptr %1333) #9
  br label %9575

9575:                                             ; preds = %9574, %9389, %9377
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1327) #9
  br label %9576

9576:                                             ; preds = %9575, %9376
  call void @llvm.lifetime.end.p0(i64 32, ptr %1327) #9
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1325) #9
  br label %9577

9577:                                             ; preds = %9576, %9364
  call void @llvm.lifetime.end.p0(i64 56, ptr %1325) #9
  br label %9780

9578:                                             ; preds = %9222, %9220
  %9579 = landingpad { ptr, i32 }
          cleanup
  %9580 = extractvalue { ptr, i32 } %9579, 0
  store ptr %9580, ptr %8, align 8
  %9581 = extractvalue { ptr, i32 } %9579, 1
  store i32 %9581, ptr %9, align 4
  br label %9779

9582:                                             ; preds = %9231
  %9583 = landingpad { ptr, i32 }
          cleanup
  %9584 = extractvalue { ptr, i32 } %9583, 0
  store ptr %9584, ptr %8, align 8
  %9585 = extractvalue { ptr, i32 } %9583, 1
  store i32 %9585, ptr %9, align 4
  br label %9590

9586:                                             ; preds = %9232
  %9587 = landingpad { ptr, i32 }
          cleanup
  %9588 = extractvalue { ptr, i32 } %9587, 0
  store ptr %9588, ptr %8, align 8
  %9589 = extractvalue { ptr, i32 } %9587, 1
  store i32 %9589, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1376) #9
  br label %9590

9590:                                             ; preds = %9586, %9582
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1377) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1377) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1376) #9
  br label %9778

9591:                                             ; preds = %9233
  %9592 = landingpad { ptr, i32 }
          cleanup
  %9593 = extractvalue { ptr, i32 } %9592, 0
  store ptr %9593, ptr %8, align 8
  %9594 = extractvalue { ptr, i32 } %9592, 1
  store i32 %9594, ptr %9, align 4
  br label %9599

9595:                                             ; preds = %9234
  %9596 = landingpad { ptr, i32 }
          cleanup
  %9597 = extractvalue { ptr, i32 } %9596, 0
  store ptr %9597, ptr %8, align 8
  %9598 = extractvalue { ptr, i32 } %9596, 1
  store i32 %9598, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1379) #9
  br label %9599

9599:                                             ; preds = %9595, %9591
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1380) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1380) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1379) #9
  br label %9777

9600:                                             ; preds = %9235
  %9601 = landingpad { ptr, i32 }
          cleanup
  %9602 = extractvalue { ptr, i32 } %9601, 0
  store ptr %9602, ptr %8, align 8
  %9603 = extractvalue { ptr, i32 } %9601, 1
  store i32 %9603, ptr %9, align 4
  br label %9608

9604:                                             ; preds = %9236
  %9605 = landingpad { ptr, i32 }
          cleanup
  %9606 = extractvalue { ptr, i32 } %9605, 0
  store ptr %9606, ptr %8, align 8
  %9607 = extractvalue { ptr, i32 } %9605, 1
  store i32 %9607, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1382) #9
  br label %9608

9608:                                             ; preds = %9604, %9600
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1383) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1383) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1382) #9
  br label %9776

9609:                                             ; preds = %9237
  %9610 = landingpad { ptr, i32 }
          cleanup
  %9611 = extractvalue { ptr, i32 } %9610, 0
  store ptr %9611, ptr %8, align 8
  %9612 = extractvalue { ptr, i32 } %9610, 1
  store i32 %9612, ptr %9, align 4
  br label %9617

9613:                                             ; preds = %9238
  %9614 = landingpad { ptr, i32 }
          cleanup
  %9615 = extractvalue { ptr, i32 } %9614, 0
  store ptr %9615, ptr %8, align 8
  %9616 = extractvalue { ptr, i32 } %9614, 1
  store i32 %9616, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1385) #9
  br label %9617

9617:                                             ; preds = %9613, %9609
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1386) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %1386) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %1385) #9
  br label %9775

9618:                                             ; preds = %9239
  %9619 = landingpad { ptr, i32 }
          cleanup
  %9620 = extractvalue { ptr, i32 } %9619, 0
  store ptr %9620, ptr %8, align 8
  %9621 = extractvalue { ptr, i32 } %9619, 1
  store i32 %9621, ptr %9, align 4
  br label %9774

9622:                                             ; preds = %9240
  %9623 = landingpad { ptr, i32 }
          cleanup
  %9624 = extractvalue { ptr, i32 } %9623, 0
  store ptr %9624, ptr %8, align 8
  %9625 = extractvalue { ptr, i32 } %9623, 1
  store i32 %9625, ptr %9, align 4
  br label %9645

9626:                                             ; preds = %9241
  %9627 = landingpad { ptr, i32 }
          cleanup
  %9628 = extractvalue { ptr, i32 } %9627, 0
  store ptr %9628, ptr %8, align 8
  %9629 = extractvalue { ptr, i32 } %9627, 1
  store i32 %9629, ptr %9, align 4
  br label %9644

9630:                                             ; preds = %9242
  %9631 = landingpad { ptr, i32 }
          cleanup
  %9632 = extractvalue { ptr, i32 } %9631, 0
  store ptr %9632, ptr %8, align 8
  %9633 = extractvalue { ptr, i32 } %9631, 1
  store i32 %9633, ptr %9, align 4
  br label %9643

9634:                                             ; preds = %9243
  %9635 = landingpad { ptr, i32 }
          cleanup
  %9636 = extractvalue { ptr, i32 } %9635, 0
  store ptr %9636, ptr %8, align 8
  %9637 = extractvalue { ptr, i32 } %9635, 1
  store i32 %9637, ptr %9, align 4
  br label %9642

9638:                                             ; preds = %9244
  %9639 = landingpad { ptr, i32 }
          cleanup
  %9640 = extractvalue { ptr, i32 } %9639, 0
  store ptr %9640, ptr %8, align 8
  %9641 = extractvalue { ptr, i32 } %9639, 1
  store i32 %9641, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1392) #9
  br label %9642

9642:                                             ; preds = %9638, %9634
  call void @llvm.lifetime.end.p0(i64 56, ptr %1392) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1388) #9
  br label %9643

9643:                                             ; preds = %9642, %9630
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1391) #9
  br label %9644

9644:                                             ; preds = %9643, %9626
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1390) #9
  br label %9645

9645:                                             ; preds = %9644, %9622
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1389) #9
  br label %9774

9646:                                             ; preds = %9245
  %9647 = landingpad { ptr, i32 }
          cleanup
  %9648 = extractvalue { ptr, i32 } %9647, 0
  store ptr %9648, ptr %8, align 8
  %9649 = extractvalue { ptr, i32 } %9647, 1
  store i32 %9649, ptr %9, align 4
  br label %9773

9650:                                             ; preds = %9246
  %9651 = landingpad { ptr, i32 }
          cleanup
  %9652 = extractvalue { ptr, i32 } %9651, 0
  store ptr %9652, ptr %8, align 8
  %9653 = extractvalue { ptr, i32 } %9651, 1
  store i32 %9653, ptr %9, align 4
  br label %9658

9654:                                             ; preds = %9247
  %9655 = landingpad { ptr, i32 }
          cleanup
  %9656 = extractvalue { ptr, i32 } %9655, 0
  store ptr %9656, ptr %8, align 8
  %9657 = extractvalue { ptr, i32 } %9655, 1
  store i32 %9657, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %1397) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %1396) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1395) #9
  br label %9658

9658:                                             ; preds = %9654, %9650
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1394) #9
  br label %9773

9659:                                             ; preds = %9274, %9264, %9252, %9248
  %9660 = landingpad { ptr, i32 }
          cleanup
  %9661 = extractvalue { ptr, i32 } %9660, 0
  store ptr %9661, ptr %8, align 8
  %9662 = extractvalue { ptr, i32 } %9660, 1
  store i32 %9662, ptr %9, align 4
  br label %9772

9663:                                             ; preds = %9249
  %9664 = landingpad { ptr, i32 }
          cleanup
  %9665 = extractvalue { ptr, i32 } %9664, 0
  store ptr %9665, ptr %8, align 8
  %9666 = extractvalue { ptr, i32 } %9664, 1
  store i32 %9666, ptr %9, align 4
  br label %9676

9667:                                             ; preds = %9250
  %9668 = landingpad { ptr, i32 }
          cleanup
  %9669 = extractvalue { ptr, i32 } %9668, 0
  store ptr %9669, ptr %8, align 8
  %9670 = extractvalue { ptr, i32 } %9668, 1
  store i32 %9670, ptr %9, align 4
  br label %9675

9671:                                             ; preds = %9251
  %9672 = landingpad { ptr, i32 }
          cleanup
  %9673 = extractvalue { ptr, i32 } %9672, 0
  store ptr %9673, ptr %8, align 8
  %9674 = extractvalue { ptr, i32 } %9672, 1
  store i32 %9674, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1401) #9
  br label %9675

9675:                                             ; preds = %9671, %9667
  call void @llvm.lifetime.end.p0(i64 56, ptr %1401) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1399) #9
  br label %9676

9676:                                             ; preds = %9675, %9663
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1400) #9
  br label %9772

9677:                                             ; preds = %9253
  %9678 = landingpad { ptr, i32 }
          cleanup
  %9679 = extractvalue { ptr, i32 } %9678, 0
  store ptr %9679, ptr %8, align 8
  %9680 = extractvalue { ptr, i32 } %9678, 1
  store i32 %9680, ptr %9, align 4
  br label %9705

9681:                                             ; preds = %9254
  %9682 = landingpad { ptr, i32 }
          cleanup
  %9683 = extractvalue { ptr, i32 } %9682, 0
  store ptr %9683, ptr %8, align 8
  %9684 = extractvalue { ptr, i32 } %9682, 1
  store i32 %9684, ptr %9, align 4
  br label %9704

9685:                                             ; preds = %9256
  %9686 = landingpad { ptr, i32 }
          cleanup
  %9687 = extractvalue { ptr, i32 } %9686, 0
  store ptr %9687, ptr %8, align 8
  %9688 = extractvalue { ptr, i32 } %9686, 1
  store i32 %9688, ptr %9, align 4
  br label %9703

9689:                                             ; preds = %9258
  %9690 = landingpad { ptr, i32 }
          cleanup
  %9691 = extractvalue { ptr, i32 } %9690, 0
  store ptr %9691, ptr %8, align 8
  %9692 = extractvalue { ptr, i32 } %9690, 1
  store i32 %9692, ptr %9, align 4
  br label %9702

9693:                                             ; preds = %9259
  %9694 = landingpad { ptr, i32 }
          cleanup
  %9695 = extractvalue { ptr, i32 } %9694, 0
  store ptr %9695, ptr %8, align 8
  %9696 = extractvalue { ptr, i32 } %9694, 1
  store i32 %9696, ptr %9, align 4
  br label %9701

9697:                                             ; preds = %9260
  %9698 = landingpad { ptr, i32 }
          cleanup
  %9699 = extractvalue { ptr, i32 } %9698, 0
  store ptr %9699, ptr %8, align 8
  %9700 = extractvalue { ptr, i32 } %9698, 1
  store i32 %9700, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1405) #9
  br label %9701

9701:                                             ; preds = %9697, %9693
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1406) #9
  br label %9702

9702:                                             ; preds = %9701, %9689
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1407) #9
  br label %9703

9703:                                             ; preds = %9702, %9685
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1408) #9
  br label %9704

9704:                                             ; preds = %9703, %9681
  call void @llvm.lifetime.end.p0(i64 56, ptr %1407) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %1405) #9
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1403) #9
  br label %9705

9705:                                             ; preds = %9704, %9677
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1404) #9
  br label %9772

9706:                                             ; preds = %9261
  %9707 = landingpad { ptr, i32 }
          cleanup
  %9708 = extractvalue { ptr, i32 } %9707, 0
  store ptr %9708, ptr %8, align 8
  %9709 = extractvalue { ptr, i32 } %9707, 1
  store i32 %9709, ptr %9, align 4
  br label %9719

9710:                                             ; preds = %9262
  %9711 = landingpad { ptr, i32 }
          cleanup
  %9712 = extractvalue { ptr, i32 } %9711, 0
  store ptr %9712, ptr %8, align 8
  %9713 = extractvalue { ptr, i32 } %9711, 1
  store i32 %9713, ptr %9, align 4
  br label %9718

9714:                                             ; preds = %9263
  %9715 = landingpad { ptr, i32 }
          cleanup
  %9716 = extractvalue { ptr, i32 } %9715, 0
  store ptr %9716, ptr %8, align 8
  %9717 = extractvalue { ptr, i32 } %9715, 1
  store i32 %9717, ptr %9, align 4
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1411) #9
  br label %9718

9718:                                             ; preds = %9714, %9710
  call void @llvm.lifetime.end.p0(i64 56, ptr %1411) #9
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1410) #9
  br label %9719

9719:                                             ; preds = %9718, %9706
  call void @llvm.lifetime.end.p0(i64 56, ptr %1410) #9
  br label %9772

9720:                                             ; preds = %9265
  %9721 = landingpad { ptr, i32 }
          cleanup
  %9722 = extractvalue { ptr, i32 } %9721, 0
  store ptr %9722, ptr %8, align 8
  %9723 = extractvalue { ptr, i32 } %9721, 1
  store i32 %9723, ptr %9, align 4
  br label %9748

9724:                                             ; preds = %9266
  %9725 = landingpad { ptr, i32 }
          cleanup
  %9726 = extractvalue { ptr, i32 } %9725, 0
  store ptr %9726, ptr %8, align 8
  %9727 = extractvalue { ptr, i32 } %9725, 1
  store i32 %9727, ptr %9, align 4
  br label %9747

9728:                                             ; preds = %9269, %9267
  %9729 = landingpad { ptr, i32 }
          cleanup
  %9730 = extractvalue { ptr, i32 } %9729, 0
  store ptr %9730, ptr %8, align 8
  %9731 = extractvalue { ptr, i32 } %9729, 1
  store i32 %9731, ptr %9, align 4
  br label %9746

9732:                                             ; preds = %9270
  %9733 = landingpad { ptr, i32 }
          cleanup
  %9734 = extractvalue { ptr, i32 } %9733, 0
  store ptr %9734, ptr %8, align 8
  %9735 = extractvalue { ptr, i32 } %9733, 1
  store i32 %9735, ptr %9, align 4
  br label %9745

9736:                                             ; preds = %9271
  %9737 = landingpad { ptr, i32 }
          cleanup
  %9738 = extractvalue { ptr, i32 } %9737, 0
  store ptr %9738, ptr %8, align 8
  %9739 = extractvalue { ptr, i32 } %9737, 1
  store i32 %9739, ptr %9, align 4
  br label %9744

9740:                                             ; preds = %9272
  %9741 = landingpad { ptr, i32 }
          cleanup
  %9742 = extractvalue { ptr, i32 } %9741, 0
  store ptr %9742, ptr %8, align 8
  %9743 = extractvalue { ptr, i32 } %9741, 1
  store i32 %9743, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1417) #9
  br label %9744

9744:                                             ; preds = %9740, %9736
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1416) #9
  br label %9745

9745:                                             ; preds = %9744, %9732
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1415) #9
  br label %9746

9746:                                             ; preds = %9745, %9728
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1414) #9
  br label %9747

9747:                                             ; preds = %9746, %9724
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1413) #9
  br label %9748

9748:                                             ; preds = %9747, %9720
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1412) #9
  br label %9772

9749:                                             ; preds = %9275
  %9750 = landingpad { ptr, i32 }
          cleanup
  %9751 = extractvalue { ptr, i32 } %9750, 0
  store ptr %9751, ptr %8, align 8
  %9752 = extractvalue { ptr, i32 } %9750, 1
  store i32 %9752, ptr %9, align 4
  br label %9762

9753:                                             ; preds = %9276
  %9754 = landingpad { ptr, i32 }
          cleanup
  %9755 = extractvalue { ptr, i32 } %9754, 0
  store ptr %9755, ptr %8, align 8
  %9756 = extractvalue { ptr, i32 } %9754, 1
  store i32 %9756, ptr %9, align 4
  br label %9761

9757:                                             ; preds = %9277
  %9758 = landingpad { ptr, i32 }
          cleanup
  %9759 = extractvalue { ptr, i32 } %9758, 0
  store ptr %9759, ptr %8, align 8
  %9760 = extractvalue { ptr, i32 } %9758, 1
  store i32 %9760, ptr %9, align 4
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1420) #9
  br label %9761

9761:                                             ; preds = %9757, %9753
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1419) #9
  br label %9762

9762:                                             ; preds = %9761, %9749
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1418) #9
  br label %9772

9763:                                             ; preds = %9279
  %9764 = landingpad { ptr, i32 }
          cleanup
  %9765 = extractvalue { ptr, i32 } %9764, 0
  store ptr %9765, ptr %8, align 8
  %9766 = extractvalue { ptr, i32 } %9764, 1
  store i32 %9766, ptr %9, align 4
  br label %9771

9767:                                             ; preds = %9280
  %9768 = landingpad { ptr, i32 }
          cleanup
  %9769 = extractvalue { ptr, i32 } %9768, 0
  store ptr %9769, ptr %8, align 8
  %9770 = extractvalue { ptr, i32 } %9768, 1
  store i32 %9770, ptr %9, align 4
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1422) #9
  br label %9771

9771:                                             ; preds = %9767, %9763
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1423) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %1422) #9
  br label %9772

9772:                                             ; preds = %9771, %9762, %9748, %9719, %9705, %9676, %9659
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %1393) #9
  br label %9773

9773:                                             ; preds = %9772, %9658, %9646
  call void @llvm.lifetime.end.p0(i64 200, ptr %1393) #9
  br label %9774

9774:                                             ; preds = %9773, %9645, %9618
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1384) #9
  br label %9775

9775:                                             ; preds = %9774, %9617
  call void @llvm.lifetime.end.p0(i64 32, ptr %1384) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1381) #9
  br label %9776

9776:                                             ; preds = %9775, %9608
  call void @llvm.lifetime.end.p0(i64 32, ptr %1381) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1378) #9
  br label %9777

9777:                                             ; preds = %9776, %9599
  call void @llvm.lifetime.end.p0(i64 32, ptr %1378) #9
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1375) #9
  br label %9778

9778:                                             ; preds = %9777, %9590
  call void @llvm.lifetime.end.p0(i64 32, ptr %1375) #9
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1373) #9
  br label %9779

9779:                                             ; preds = %9778, %9578
  call void @llvm.lifetime.end.p0(i64 56, ptr %1373) #9
  br label %9780

9780:                                             ; preds = %9779, %9577, %9363, %8690, %8546, %8368, %7907, %7537, %7360, %7283, %7192, %6932, %6733, %6585, %6360, %5428, %5200, %4945, %4427, %4142, %3440, %3353, %3073, %2662, %2261, %1713
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  br label %9781

9781:                                             ; preds = %9780, %1543
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #9
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  br label %9782

9782:                                             ; preds = %9781, %1534
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #9
  br label %9785

9783:                                             ; preds = %9281, %1426
  %9784 = load i32, ptr %3, align 4
  ret i32 %9784

9785:                                             ; preds = %9782, %1525
  %9786 = load ptr, ptr %8, align 8
  %9787 = load i32, ptr %9, align 4
  %9788 = insertvalue { ptr, i32 } poison, ptr %9786, 0
  %9789 = insertvalue { ptr, i32 } %9788, i32 %9787, 1
  resume { ptr, i32 } %9789
}

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #1

declare void @_ZN6Halide11load_pluginERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) #2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 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 #4 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6Halide13MachineParamsC2Eimf(ptr noundef nonnull align 8 dereferenceable(20), i32 noundef, i64 noundef, float noundef) unnamed_addr #4 align 2

declare void @_ZN6Halide6TargetC1EPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) unnamed_addr #2

declare void @_ZN6Halide3VarC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2

declare void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2

declare void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef, ptr noundef) #2

declare void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #5 align 2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #6 align 2

declare void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef) #2

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

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

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

declare void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef, i32 noundef) #2

declare void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #2

declare void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(56)) #2

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #7 align 2

declare void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) unnamed_addr #2

declare void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(20)) #2

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

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

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

declare void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, i32 noundef, ptr noundef) #2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(8)) #6 align 2

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

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

declare void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef, i32 noundef) #2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #6 align 2

declare void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Halide6BufferIfEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4 align 2

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

declare void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidemLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #2

declare void @_ZN6HalideplEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, i32 noundef, ptr noundef) #2

declare void @_ZN6Halide4sqrtENS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef) #2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJRNS_3VarES3_S3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, 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)) #6 align 2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJNS_4ExprERNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS6_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #6 align 2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #6 align 2

declare void @_ZN6Halide3powENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Halide6BufferIfEclIJNS_3VarEEEENS_4ExprES4_DpT_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, ptr noundef) #5 align 2

declare void @_ZN6Halide7FuncRefpLENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef) #2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef, ptr noundef) unnamed_addr #6 align 2

declare void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(200)) #2

declare void @_ZN6Halide7FuncRefmLENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef) #2

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

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

declare void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(56)) #2

declare void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(56)) #2

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

declare void @_ZN6Halide3minENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef, i32 noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Halide6BufferIhEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) #5 align 2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6Halide4castImEENS_4ExprES1_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef) #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6Halide6BufferIhED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN6Halide6BufferIfE4fillIfEERS1_OT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) #5 align 2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJRNS_4RDomEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(200)) #6 align 2

declare void @_ZN6HalidemiEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, i32 noundef, ptr noundef) #2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES3_DpOS4_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #6 align 2

declare void @_ZN6Halide5clampENS_4ExprES0_S0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZN6Halide4RDomC2IJiiEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #6 align 2

declare void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(44)) #2

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

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

declare void @_ZN6Halide8PipelineC1ERKSt6vectorINS_4FuncESaIS2_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { i64, ptr } @_ZN6Halide5FloatEii(i32 noundef, i32 noundef) #8

declare void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56), i64, ptr, i32 noundef) unnamed_addr #2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_EEENS_4ExprEDpOT_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #6 align 2

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

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_S3_S3_S3_S3_S3_EEENS_4ExprEDpOT_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(56), 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), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #6 align 2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJRNS_3VarES3_S3_S3_S3_S3_S3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, 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), 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)) #6 align 2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide10ImageParamclIJNS_4ExprERNS_3VarEEEES2_DpOT_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #6 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6Halide4castIiEENS_4ExprES1_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef) #8

declare void @_ZN6Halide3sinENS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef) #2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJiEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES3_DpOS4_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 4 dereferenceable(4)) #6 align 2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_3VarEDpT_EE5valueENS_7FuncRefEE4typeEDpOS4_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #6 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) #7

declare void @_ZN6Halide18BoundaryConditions11repeat_edgeERKNS_4FuncERKSt6vectorINS_5RangeESaIS5_EE(ptr dead_on_unwind writable sret(%"class.Halide::Func") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) #2

declare void @_ZN6Halide5RangeC1ERKNS_4ExprES3_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2

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

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

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

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

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

declare void @_ZN6HalidedvENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef, i32 noundef) #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { i64, ptr } @_ZN6Halide3IntEii(i32 noundef, i32 noundef) #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6Halide4castIjEENS_4ExprES1_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef) #8

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJRNS_4RVarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(44)) #6 align 2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = !{!21, !21, i64 0}
!21 = !{!"float", !7, i64 0}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = !{!26, !10, i64 0}
!26 = !{!"_ZTSSt16initializer_listIN6Halide4FuncEE", !10, i64 0, !27, i64 8}
!27 = !{!"long", !7, i64 0}
!28 = !{!26, !27, i64 8}
!29 = distinct !{!29, !12}
!30 = distinct !{!30, !12}
!31 = distinct !{!31, !12}
!32 = !{!33, !10, i64 0}
!33 = !{!"_ZTSSt16initializer_listIN6Halide5RangeEE", !10, i64 0, !27, i64 8}
!34 = !{!33, !27, i64 8}
!35 = distinct !{!35, !12}
!36 = distinct !{!36, !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"

%"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.Halide::MachineParams" = type <{ i32, [4 x i8], i64, float, [4 x i8] }>
%"struct.Halide::Target" = type { i32, i32, i32, %"class.std::bitset" }
%"class.std::bitset" = type { %"struct.std::_Base_bitset" }
%"struct.std::_Base_bitset" = type { [2 x i64] }
%"class.Halide::Var" = type { %"class.std::__cxx11::basic_string" }
%"class.Halide::Func" = type { %"class.Halide::Internal::Function", %"class.Halide::Pipeline" }
%"class.Halide::Internal::Function" = type { %"struct.Halide::Internal::FunctionPtr" }
%"struct.Halide::Internal::FunctionPtr" = type <{ %"struct.Halide::Internal::IntrusivePtr", ptr, i32, [4 x i8] }>
%"struct.Halide::Internal::IntrusivePtr" = type { ptr }
%"class.Halide::Pipeline" = type { %"struct.Halide::Internal::IntrusivePtr.0" }
%"struct.Halide::Internal::IntrusivePtr.0" = type { ptr }
%"class.Halide::Stage" = type { %"class.Halide::Internal::Function", %"class.Halide::Internal::Definition", i64, %"class.std::vector" }
%"class.Halide::Internal::Definition" = type { %"struct.Halide::Internal::IntrusivePtr.1" }
%"struct.Halide::Internal::IntrusivePtr.1" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Halide::Var, std::allocator<Halide::Var>>::_Vector_impl" }
%"struct.std::_Vector_base<Halide::Var, std::allocator<Halide::Var>>::_Vector_impl" = type { %"struct.std::_Vector_base<Halide::Var, std::allocator<Halide::Var>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Halide::Var, std::allocator<Halide::Var>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.Halide::Expr" = type { %"struct.Halide::Internal::IRHandle" }
%"struct.Halide::Internal::IRHandle" = type { %"struct.Halide::Internal::IntrusivePtr.5" }
%"struct.Halide::Internal::IntrusivePtr.5" = type { ptr }
%"class.Halide::FuncRef" = type { %"class.Halide::Internal::Function", i32, i32, %"class.std::vector.6" }
%"class.std::vector.6" = type { %"struct.std::_Vector_base.7" }
%"struct.std::_Vector_base.7" = type { %"struct.std::_Vector_base<Halide::Expr, std::allocator<Halide::Expr>>::_Vector_impl" }
%"struct.std::_Vector_base<Halide::Expr, std::allocator<Halide::Expr>>::_Vector_impl" = type { %"struct.std::_Vector_base<Halide::Expr, std::allocator<Halide::Expr>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Halide::Expr, std::allocator<Halide::Expr>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.Halide::AutoSchedulerResults" = type { %"class.std::__cxx11::basic_string", %"struct.Halide::Target", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::vector.11" }
%"class.std::vector.11" = type { %"struct.std::_Vector_base.12" }
%"struct.std::_Vector_base.12" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Halide::Buffer" = type { ptr, %"struct.Halide::Internal::IntrusivePtr.16" }
%"struct.Halide::Internal::IntrusivePtr.16" = type { ptr }
%"class.Halide::RDom" = type { %"class.Halide::Internal::ReductionDomain", %"class.Halide::RVar", %"class.Halide::RVar", %"class.Halide::RVar", %"class.Halide::RVar" }
%"class.Halide::Internal::ReductionDomain" = type { %"struct.Halide::Internal::IntrusivePtr.17" }
%"struct.Halide::Internal::IntrusivePtr.17" = type { ptr }
%"class.Halide::RVar" = type <{ %"class.std::__cxx11::basic_string", %"class.Halide::Internal::ReductionDomain", i32, [4 x i8] }>
%"class.Halide::Buffer.18" = type { ptr, %"struct.Halide::Internal::IntrusivePtr.16" }
%"class.std::vector.19" = type { %"struct.std::_Vector_base.20" }
%"struct.std::_Vector_base.20" = type { %"struct.std::_Vector_base<Halide::Func, std::allocator<Halide::Func>>::_Vector_impl" }
%"struct.std::_Vector_base<Halide::Func, std::allocator<Halide::Func>>::_Vector_impl" = type { %"struct.std::_Vector_base<Halide::Func, std::allocator<Halide::Func>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Halide::Func, std::allocator<Halide::Func>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.21" = type { i8 }
%"class.Halide::ImageParam" = type { %"class.Halide::OutputImageParam" }
%"class.Halide::OutputImageParam" = type { %"class.Halide::Internal::Parameter", i32, %"class.Halide::Func" }
%"class.Halide::Internal::Parameter" = type { ptr, %"struct.Halide::Internal::IntrusivePtr.24" }
%"struct.Halide::Internal::IntrusivePtr.24" = type { ptr }
%"class.std::vector.25" = type { %"struct.std::_Vector_base.26" }
%"struct.std::_Vector_base.26" = type { %"struct.std::_Vector_base<Halide::Range, std::allocator<Halide::Range>>::_Vector_impl" }
%"struct.std::_Vector_base<Halide::Range, std::allocator<Halide::Range>>::_Vector_impl" = type { %"struct.std::_Vector_base<Halide::Range, std::allocator<Halide::Range>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Halide::Range, std::allocator<Halide::Range>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.Halide::Range" = type { %"struct.Halide::Expr", %"struct.Halide::Expr" }
%"class.std::allocator.27" = type { i8 }

@stderr = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [31 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [2 x i8], align 1

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

1384:                                             ; preds = %2
  %1385 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1386 = load ptr, ptr %1, align 8, !tbaa !5
  %1387 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1385, ptr noundef nonnull @.str, ptr noundef %1386) #9
  br label %6798

1388:                                             ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #10
  %1389 = getelementptr inbounds i8, ptr %1, i64 8
  %1390 = load ptr, ptr %1389, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef %1390, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %1391 unwind label %1468

1391:                                             ; preds = %1388
  invoke void @_ZN6Halide11load_pluginERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %1392 unwind label %1470

1392:                                             ; preds = %1391
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #10
  call void @_ZN6Halide13MachineParamsC2Eimf(ptr noundef nonnull align 8 dereferenceable(20) %5, i32 noundef 32, i64 noundef 16000000, float noundef 4.000000e+01)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #10
  call void @_ZN6Halide6TargetC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.2)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %1393 unwind label %1473

1393:                                             ; preds = %1392
  invoke void @_ZN6Halide3VarC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %1394 unwind label %1475

1394:                                             ; preds = %1393
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %1395 unwind label %1478

1395:                                             ; preds = %1394
  invoke void @_ZN6Halide3VarC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %1396 unwind label %1480

1396:                                             ; preds = %1395
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %1397 unwind label %1483

1397:                                             ; preds = %1396
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %1398 unwind label %1485

1398:                                             ; preds = %1397
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %1399 unwind label %1488

1399:                                             ; preds = %1398
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %1400 unwind label %1490

1400:                                             ; preds = %1399
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %1401 unwind label %1493

1401:                                             ; preds = %1400
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %1402 unwind label %1495

1402:                                             ; preds = %1401
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1403 unwind label %1498

1403:                                             ; preds = %1402
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1404 unwind label %1500

1404:                                             ; preds = %1403
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %24, ptr noundef nonnull %25, ptr noundef nonnull %26)
          to label %1405 unwind label %1502

1405:                                             ; preds = %1404
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1406 unwind label %1504

1406:                                             ; preds = %1405
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1407 unwind label %1506

1407:                                             ; preds = %1406
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %27, ptr noundef nonnull %28, ptr noundef nonnull %29)
          to label %1408 unwind label %1508

1408:                                             ; preds = %1407
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %23, ptr noundef nonnull %24, ptr noundef nonnull %27)
          to label %1409 unwind label %1510

1409:                                             ; preds = %1408
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %30) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1410 unwind label %1512

1410:                                             ; preds = %1409
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %22, ptr noundef nonnull align 8 dereferenceable(56) %30, ptr noundef nonnull %23)
          to label %1411 unwind label %1514

1411:                                             ; preds = %1410
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %22) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %30) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %30) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %35) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1412 unwind label %1523

1412:                                             ; preds = %1411
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %34, ptr noundef nonnull align 8 dereferenceable(56) %35)
          to label %1413 unwind label %1525

1413:                                             ; preds = %1412
  invoke void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %33, ptr noundef nonnull align 8 dereferenceable(8) %34, i32 noundef 2)
          to label %1414 unwind label %1527

1414:                                             ; preds = %1413
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %32, ptr noundef nonnull %33, i32 noundef 1)
          to label %1415 unwind label %1529

1415:                                             ; preds = %1414
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %36) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1416 unwind label %1531

1416:                                             ; preds = %1415
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %31, ptr noundef nonnull align 8 dereferenceable(56) %36, ptr noundef nonnull %32)
          to label %1417 unwind label %1533

1417:                                             ; preds = %1416
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %31) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %36) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %36) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %35) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %35) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %41) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1418 unwind label %1540

1418:                                             ; preds = %1417
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %40, ptr noundef nonnull align 8 dereferenceable(56) %41)
          to label %1419 unwind label %1542

1419:                                             ; preds = %1418
  invoke void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %39, ptr noundef nonnull align 8 dereferenceable(8) %40, i32 noundef 2)
          to label %1420 unwind label %1544

1420:                                             ; preds = %1419
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %38, ptr noundef nonnull %39, i32 noundef 1)
          to label %1421 unwind label %1546

1421:                                             ; preds = %1420
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %42) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %42, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1422 unwind label %1548

1422:                                             ; preds = %1421
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %37, ptr noundef nonnull align 8 dereferenceable(56) %42, ptr noundef nonnull %38)
          to label %1423 unwind label %1550

1423:                                             ; preds = %1422
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %37) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %42) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %42) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %41) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %41) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1424 unwind label %1498

1424:                                             ; preds = %1423
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %44, i32 noundef 0)
          to label %1425 unwind label %1557

1425:                                             ; preds = %1424
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %45, i32 noundef 1000)
          to label %1426 unwind label %1559

1426:                                             ; preds = %1425
  %1427 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull %43, ptr noundef nonnull %44, ptr noundef nonnull %45)
          to label %1428 unwind label %1561

1428:                                             ; preds = %1426
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1429 unwind label %1561

1429:                                             ; preds = %1428
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %47, i32 noundef 0)
          to label %1430 unwind label %1563

1430:                                             ; preds = %1429
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %48, i32 noundef 1000)
          to label %1431 unwind label %1565

1431:                                             ; preds = %1430
  %1432 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1427, ptr noundef nonnull %46, ptr noundef nonnull %47, ptr noundef nonnull %48)
          to label %1433 unwind label %1567

1433:                                             ; preds = %1431
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull %51)
          to label %1434 unwind label %1574

1434:                                             ; preds = %1433
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %49, ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %1435 unwind label %1576

1435:                                             ; preds = %1434
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %49) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %54) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %1436 unwind label %1583

1436:                                             ; preds = %1435
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %1437 unwind label %1585

1437:                                             ; preds = %1436
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %56) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %1438 unwind label %1588

1438:                                             ; preds = %1437
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %1439 unwind label %1590

1439:                                             ; preds = %1438
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %60) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %1440 unwind label %1593

1440:                                             ; preds = %1439
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %1441 unwind label %1595

1441:                                             ; preds = %1440
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %67, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1442 unwind label %1598

1442:                                             ; preds = %1441
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %68, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1443 unwind label %1600

1443:                                             ; preds = %1442
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %66, ptr noundef nonnull %67, ptr noundef nonnull %68)
          to label %1444 unwind label %1602

1444:                                             ; preds = %1443
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %70, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1445 unwind label %1604

1445:                                             ; preds = %1444
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %72, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1446 unwind label %1606

1446:                                             ; preds = %1445
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %71, i32 noundef 2, ptr noundef nonnull %72)
          to label %1447 unwind label %1608

1447:                                             ; preds = %1446
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %69, ptr noundef nonnull %70, ptr noundef nonnull %71)
          to label %1448 unwind label %1610

1448:                                             ; preds = %1447
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %65, ptr noundef nonnull %66, ptr noundef nonnull %69)
          to label %1449 unwind label %1612

1449:                                             ; preds = %1448
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %74, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1450 unwind label %1614

1450:                                             ; preds = %1449
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %76, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1451 unwind label %1616

1451:                                             ; preds = %1450
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %75, i32 noundef 3, ptr noundef nonnull %76)
          to label %1452 unwind label %1618

1452:                                             ; preds = %1451
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %73, ptr noundef nonnull %74, ptr noundef nonnull %75)
          to label %1453 unwind label %1620

1453:                                             ; preds = %1452
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %64, ptr noundef nonnull %65, ptr noundef nonnull %73)
          to label %1454 unwind label %1622

1454:                                             ; preds = %1453
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %78, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1455 unwind label %1624

1455:                                             ; preds = %1454
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %80, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1456 unwind label %1626

1456:                                             ; preds = %1455
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %79, i32 noundef 4, ptr noundef nonnull %80)
          to label %1457 unwind label %1628

1457:                                             ; preds = %1456
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %77, ptr noundef nonnull %78, ptr noundef nonnull %79)
          to label %1458 unwind label %1630

1458:                                             ; preds = %1457
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %63, ptr noundef nonnull %64, ptr noundef nonnull %77)
          to label %1459 unwind label %1632

1459:                                             ; preds = %1458
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %82, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1460 unwind label %1634

1460:                                             ; preds = %1459
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %84, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1461 unwind label %1636

1461:                                             ; preds = %1460
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %83, i32 noundef 5, ptr noundef nonnull %84)
          to label %1462 unwind label %1638

1462:                                             ; preds = %1461
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %81, ptr noundef nonnull %82, ptr noundef nonnull %83)
          to label %1463 unwind label %1640

1463:                                             ; preds = %1462
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %62, ptr noundef nonnull %63, ptr noundef nonnull %81)
          to label %1464 unwind label %1642

1464:                                             ; preds = %1463
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %85) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %85, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1465 unwind label %1644

1465:                                             ; preds = %1464
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %61, ptr noundef nonnull align 8 dereferenceable(56) %85, ptr noundef nonnull %62)
          to label %1466 unwind label %1646

1466:                                             ; preds = %1465
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %61) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %85) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %85) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %77) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %86) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %86, i32 noundef 0)
          to label %.preheader2759 unwind label %1671

1467:                                             ; preds = %1681
  call void @_ZN6Halide4ExprC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull align 8 dereferenceable(8) %86) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %95) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %95, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1703 unwind label %1708

1468:                                             ; preds = %1388
  %1469 = landingpad { ptr, i32 }
          cleanup
  br label %1472

1470:                                             ; preds = %1391
  %1471 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #10
  br label %1472

1472:                                             ; preds = %1470, %1468
  %.pn = phi { ptr, i32 } [ %1471, %1470 ], [ %1469, %1468 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #10
  br label %6799

1473:                                             ; preds = %1392
  %1474 = landingpad { ptr, i32 }
          cleanup
  br label %1477

1475:                                             ; preds = %1393
  %1476 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #10
  br label %1477

1477:                                             ; preds = %1475, %1473
  %.pn1324 = phi { ptr, i32 } [ %1476, %1475 ], [ %1474, %1473 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #10
  br label %6797

1478:                                             ; preds = %1394
  %1479 = landingpad { ptr, i32 }
          cleanup
  br label %1482

1480:                                             ; preds = %1395
  %1481 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #10
  br label %1482

1482:                                             ; preds = %1480, %1478
  %.pn1326 = phi { ptr, i32 } [ %1481, %1480 ], [ %1479, %1478 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #10
  br label %6796

1483:                                             ; preds = %1396
  %1484 = landingpad { ptr, i32 }
          cleanup
  br label %1487

1485:                                             ; preds = %1397
  %1486 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #10
  br label %1487

1487:                                             ; preds = %1485, %1483
  %.pn1328 = phi { ptr, i32 } [ %1486, %1485 ], [ %1484, %1483 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #10
  br label %1582

1488:                                             ; preds = %1398
  %1489 = landingpad { ptr, i32 }
          cleanup
  br label %1492

1490:                                             ; preds = %1399
  %1491 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  br label %1492

1492:                                             ; preds = %1490, %1488
  %.pn1330 = phi { ptr, i32 } [ %1491, %1490 ], [ %1489, %1488 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #10
  br label %1581

1493:                                             ; preds = %1400
  %1494 = landingpad { ptr, i32 }
          cleanup
  br label %1497

1495:                                             ; preds = %1401
  %1496 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #10
  br label %1497

1497:                                             ; preds = %1495, %1493
  %.pn1332 = phi { ptr, i32 } [ %1496, %1495 ], [ %1494, %1493 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #10
  br label %1580

1498:                                             ; preds = %1423, %1402
  %1499 = landingpad { ptr, i32 }
          cleanup
  br label %1579

1500:                                             ; preds = %1403
  %1501 = landingpad { ptr, i32 }
          cleanup
  br label %1522

1502:                                             ; preds = %1404
  %1503 = landingpad { ptr, i32 }
          cleanup
  br label %1521

1504:                                             ; preds = %1405
  %1505 = landingpad { ptr, i32 }
          cleanup
  br label %1520

1506:                                             ; preds = %1406
  %1507 = landingpad { ptr, i32 }
          cleanup
  br label %1519

1508:                                             ; preds = %1407
  %1509 = landingpad { ptr, i32 }
          cleanup
  br label %1518

1510:                                             ; preds = %1408
  %1511 = landingpad { ptr, i32 }
          cleanup
  br label %1517

1512:                                             ; preds = %1409
  %1513 = landingpad { ptr, i32 }
          cleanup
  br label %1516

1514:                                             ; preds = %1410
  %1515 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %30) #10
  br label %1516

1516:                                             ; preds = %1514, %1512
  %.pn1334 = phi { ptr, i32 } [ %1515, %1514 ], [ %1513, %1512 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %30) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #10
  br label %1517

1517:                                             ; preds = %1516, %1510
  %.pn1334.pn = phi { ptr, i32 } [ %.pn1334, %1516 ], [ %1511, %1510 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #10
  br label %1518

1518:                                             ; preds = %1517, %1508
  %.pn1334.pn.pn = phi { ptr, i32 } [ %.pn1334.pn, %1517 ], [ %1509, %1508 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #10
  br label %1519

1519:                                             ; preds = %1518, %1506
  %.pn1334.pn.pn.pn = phi { ptr, i32 } [ %.pn1334.pn.pn, %1518 ], [ %1507, %1506 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  br label %1520

1520:                                             ; preds = %1519, %1504
  %.pn1334.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1334.pn.pn.pn, %1519 ], [ %1505, %1504 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #10
  br label %1521

1521:                                             ; preds = %1520, %1502
  %.pn1334.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1334.pn.pn.pn.pn, %1520 ], [ %1503, %1502 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #10
  br label %1522

1522:                                             ; preds = %1521, %1500
  %.pn1334.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1334.pn.pn.pn.pn.pn, %1521 ], [ %1501, %1500 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #10
  br label %1579

1523:                                             ; preds = %1411
  %1524 = landingpad { ptr, i32 }
          cleanup
  br label %1539

1525:                                             ; preds = %1412
  %1526 = landingpad { ptr, i32 }
          cleanup
  br label %1538

1527:                                             ; preds = %1413
  %1528 = landingpad { ptr, i32 }
          cleanup
  br label %1537

1529:                                             ; preds = %1414
  %1530 = landingpad { ptr, i32 }
          cleanup
  br label %1536

1531:                                             ; preds = %1415
  %1532 = landingpad { ptr, i32 }
          cleanup
  br label %1535

1533:                                             ; preds = %1416
  %1534 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %36) #10
  br label %1535

1535:                                             ; preds = %1533, %1531
  %.pn1342 = phi { ptr, i32 } [ %1534, %1533 ], [ %1532, %1531 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %36) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #10
  br label %1536

1536:                                             ; preds = %1535, %1529
  %.pn1342.pn = phi { ptr, i32 } [ %.pn1342, %1535 ], [ %1530, %1529 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #10
  br label %1537

1537:                                             ; preds = %1536, %1527
  %.pn1342.pn.pn = phi { ptr, i32 } [ %.pn1342.pn, %1536 ], [ %1528, %1527 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #10
  br label %1538

1538:                                             ; preds = %1537, %1525
  %.pn1342.pn.pn.pn = phi { ptr, i32 } [ %.pn1342.pn.pn, %1537 ], [ %1526, %1525 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %35) #10
  br label %1539

1539:                                             ; preds = %1538, %1523
  %.pn1342.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1342.pn.pn.pn, %1538 ], [ %1524, %1523 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %35) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #10
  br label %1579

1540:                                             ; preds = %1417
  %1541 = landingpad { ptr, i32 }
          cleanup
  br label %1556

1542:                                             ; preds = %1418
  %1543 = landingpad { ptr, i32 }
          cleanup
  br label %1555

1544:                                             ; preds = %1419
  %1545 = landingpad { ptr, i32 }
          cleanup
  br label %1554

1546:                                             ; preds = %1420
  %1547 = landingpad { ptr, i32 }
          cleanup
  br label %1553

1548:                                             ; preds = %1421
  %1549 = landingpad { ptr, i32 }
          cleanup
  br label %1552

1550:                                             ; preds = %1422
  %1551 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %42) #10
  br label %1552

1552:                                             ; preds = %1550, %1548
  %.pn1348 = phi { ptr, i32 } [ %1551, %1550 ], [ %1549, %1548 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %42) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #10
  br label %1553

1553:                                             ; preds = %1552, %1546
  %.pn1348.pn = phi { ptr, i32 } [ %.pn1348, %1552 ], [ %1547, %1546 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #10
  br label %1554

1554:                                             ; preds = %1553, %1544
  %.pn1348.pn.pn = phi { ptr, i32 } [ %.pn1348.pn, %1553 ], [ %1545, %1544 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #10
  br label %1555

1555:                                             ; preds = %1554, %1542
  %.pn1348.pn.pn.pn = phi { ptr, i32 } [ %.pn1348.pn.pn, %1554 ], [ %1543, %1542 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %41) #10
  br label %1556

1556:                                             ; preds = %1555, %1540
  %.pn1348.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1348.pn.pn.pn, %1555 ], [ %1541, %1540 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %41) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #10
  br label %1579

1557:                                             ; preds = %1424
  %1558 = landingpad { ptr, i32 }
          cleanup
  br label %1573

1559:                                             ; preds = %1425
  %1560 = landingpad { ptr, i32 }
          cleanup
  br label %1572

1561:                                             ; preds = %1428, %1426
  %1562 = landingpad { ptr, i32 }
          cleanup
  br label %1571

1563:                                             ; preds = %1429
  %1564 = landingpad { ptr, i32 }
          cleanup
  br label %1570

1565:                                             ; preds = %1430
  %1566 = landingpad { ptr, i32 }
          cleanup
  br label %1569

1567:                                             ; preds = %1431
  %1568 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #10
  br label %1569

1569:                                             ; preds = %1567, %1565
  %.pn1354 = phi { ptr, i32 } [ %1568, %1567 ], [ %1566, %1565 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #10
  br label %1570

1570:                                             ; preds = %1569, %1563
  %.pn1354.pn = phi { ptr, i32 } [ %.pn1354, %1569 ], [ %1564, %1563 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #10
  br label %1571

1571:                                             ; preds = %1570, %1561
  %.pn1354.pn.pn = phi { ptr, i32 } [ %.pn1354.pn, %1570 ], [ %1562, %1561 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #10
  br label %1572

1572:                                             ; preds = %1571, %1559
  %.pn1354.pn.pn.pn = phi { ptr, i32 } [ %.pn1354.pn.pn, %1571 ], [ %1560, %1559 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #10
  br label %1573

1573:                                             ; preds = %1572, %1557
  %.pn1354.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1354.pn.pn.pn, %1572 ], [ %1558, %1557 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  br label %1579

1574:                                             ; preds = %1433
  %1575 = landingpad { ptr, i32 }
          cleanup
  br label %1578

1576:                                             ; preds = %1434
  %1577 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #10
  br label %1578

1578:                                             ; preds = %1576, %1574
  %.pn1360 = phi { ptr, i32 } [ %1577, %1576 ], [ %1575, %1574 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #10
  br label %1579

1579:                                             ; preds = %1578, %1573, %1556, %1539, %1522, %1498
  %.pn1360.pn = phi { ptr, i32 } [ %.pn1360, %1578 ], [ %.pn1354.pn.pn.pn.pn, %1573 ], [ %1499, %1498 ], [ %.pn1348.pn.pn.pn.pn, %1556 ], [ %.pn1342.pn.pn.pn.pn, %1539 ], [ %.pn1334.pn.pn.pn.pn.pn.pn, %1522 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  br label %1580

1580:                                             ; preds = %1579, %1497
  %.pn1360.pn.pn = phi { ptr, i32 } [ %.pn1360.pn, %1579 ], [ %.pn1332, %1497 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #10
  br label %1581

1581:                                             ; preds = %1580, %1492
  %.pn1360.pn.pn.pn = phi { ptr, i32 } [ %.pn1360.pn.pn, %1580 ], [ %.pn1330, %1492 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  br label %1582

1582:                                             ; preds = %1581, %1487
  %.pn1360.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1360.pn.pn.pn, %1581 ], [ %.pn1328, %1487 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #10
  br label %6795

1583:                                             ; preds = %1435
  %1584 = landingpad { ptr, i32 }
          cleanup
  br label %1587

1585:                                             ; preds = %1436
  %1586 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  br label %1587

1587:                                             ; preds = %1585, %1583
  %.pn1366 = phi { ptr, i32 } [ %1586, %1585 ], [ %1584, %1583 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #10
  br label %1990

1588:                                             ; preds = %1437
  %1589 = landingpad { ptr, i32 }
          cleanup
  br label %1592

1590:                                             ; preds = %1438
  %1591 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #10
  br label %1592

1592:                                             ; preds = %1590, %1588
  %.pn1368 = phi { ptr, i32 } [ %1591, %1590 ], [ %1589, %1588 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #10
  br label %1989

1593:                                             ; preds = %1439
  %1594 = landingpad { ptr, i32 }
          cleanup
  br label %1597

1595:                                             ; preds = %1440
  %1596 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #10
  br label %1597

1597:                                             ; preds = %1595, %1593
  %.pn1370 = phi { ptr, i32 } [ %1596, %1595 ], [ %1594, %1593 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #10
  br label %1988

1598:                                             ; preds = %1441
  %1599 = landingpad { ptr, i32 }
          cleanup
  br label %1987

1600:                                             ; preds = %1442
  %1601 = landingpad { ptr, i32 }
          cleanup
  br label %1670

1602:                                             ; preds = %1443
  %1603 = landingpad { ptr, i32 }
          cleanup
  br label %1669

1604:                                             ; preds = %1444
  %1605 = landingpad { ptr, i32 }
          cleanup
  br label %1668

1606:                                             ; preds = %1445
  %1607 = landingpad { ptr, i32 }
          cleanup
  br label %1667

1608:                                             ; preds = %1446
  %1609 = landingpad { ptr, i32 }
          cleanup
  br label %1666

1610:                                             ; preds = %1447
  %1611 = landingpad { ptr, i32 }
          cleanup
  br label %1665

1612:                                             ; preds = %1448
  %1613 = landingpad { ptr, i32 }
          cleanup
  br label %1664

1614:                                             ; preds = %1449
  %1615 = landingpad { ptr, i32 }
          cleanup
  br label %1663

1616:                                             ; preds = %1450
  %1617 = landingpad { ptr, i32 }
          cleanup
  br label %1662

1618:                                             ; preds = %1451
  %1619 = landingpad { ptr, i32 }
          cleanup
  br label %1661

1620:                                             ; preds = %1452
  %1621 = landingpad { ptr, i32 }
          cleanup
  br label %1660

1622:                                             ; preds = %1453
  %1623 = landingpad { ptr, i32 }
          cleanup
  br label %1659

1624:                                             ; preds = %1454
  %1625 = landingpad { ptr, i32 }
          cleanup
  br label %1658

1626:                                             ; preds = %1455
  %1627 = landingpad { ptr, i32 }
          cleanup
  br label %1657

1628:                                             ; preds = %1456
  %1629 = landingpad { ptr, i32 }
          cleanup
  br label %1656

1630:                                             ; preds = %1457
  %1631 = landingpad { ptr, i32 }
          cleanup
  br label %1655

1632:                                             ; preds = %1458
  %1633 = landingpad { ptr, i32 }
          cleanup
  br label %1654

1634:                                             ; preds = %1459
  %1635 = landingpad { ptr, i32 }
          cleanup
  br label %1653

1636:                                             ; preds = %1460
  %1637 = landingpad { ptr, i32 }
          cleanup
  br label %1652

1638:                                             ; preds = %1461
  %1639 = landingpad { ptr, i32 }
          cleanup
  br label %1651

1640:                                             ; preds = %1462
  %1641 = landingpad { ptr, i32 }
          cleanup
  br label %1650

1642:                                             ; preds = %1463
  %1643 = landingpad { ptr, i32 }
          cleanup
  br label %1649

1644:                                             ; preds = %1464
  %1645 = landingpad { ptr, i32 }
          cleanup
  br label %1648

1646:                                             ; preds = %1465
  %1647 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %85) #10
  br label %1648

1648:                                             ; preds = %1646, %1644
  %.pn1372 = phi { ptr, i32 } [ %1647, %1646 ], [ %1645, %1644 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %85) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #10
  br label %1649

1649:                                             ; preds = %1648, %1642
  %.pn1372.pn = phi { ptr, i32 } [ %.pn1372, %1648 ], [ %1643, %1642 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #10
  br label %1650

1650:                                             ; preds = %1649, %1640
  %.pn1372.pn.pn = phi { ptr, i32 } [ %.pn1372.pn, %1649 ], [ %1641, %1640 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %83) #10
  br label %1651

1651:                                             ; preds = %1650, %1638
  %.pn1372.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn, %1650 ], [ %1639, %1638 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #10
  br label %1652

1652:                                             ; preds = %1651, %1636
  %.pn1372.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn, %1651 ], [ %1637, %1636 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #10
  br label %1653

1653:                                             ; preds = %1652, %1634
  %.pn1372.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn, %1652 ], [ %1635, %1634 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #10
  br label %1654

1654:                                             ; preds = %1653, %1632
  %.pn1372.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn.pn, %1653 ], [ %1633, %1632 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %77) #10
  br label %1655

1655:                                             ; preds = %1654, %1630
  %.pn1372.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn.pn.pn, %1654 ], [ %1631, %1630 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %79) #10
  br label %1656

1656:                                             ; preds = %1655, %1628
  %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn.pn.pn.pn, %1655 ], [ %1629, %1628 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #10
  br label %1657

1657:                                             ; preds = %1656, %1626
  %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn, %1656 ], [ %1627, %1626 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #10
  br label %1658

1658:                                             ; preds = %1657, %1624
  %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1657 ], [ %1625, %1624 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #10
  br label %1659

1659:                                             ; preds = %1658, %1622
  %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1658 ], [ %1623, %1622 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #10
  br label %1660

1660:                                             ; preds = %1659, %1620
  %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1659 ], [ %1621, %1620 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %75) #10
  br label %1661

1661:                                             ; preds = %1660, %1618
  %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1660 ], [ %1619, %1618 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %76) #10
  br label %1662

1662:                                             ; preds = %1661, %1616
  %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1661 ], [ %1617, %1616 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #10
  br label %1663

1663:                                             ; preds = %1662, %1614
  %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1662 ], [ %1615, %1614 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %65) #10
  br label %1664

1664:                                             ; preds = %1663, %1612
  %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1663 ], [ %1613, %1612 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #10
  br label %1665

1665:                                             ; preds = %1664, %1610
  %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1664 ], [ %1611, %1610 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #10
  br label %1666

1666:                                             ; preds = %1665, %1608
  %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1665 ], [ %1609, %1608 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #10
  br label %1667

1667:                                             ; preds = %1666, %1606
  %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1666 ], [ %1607, %1606 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #10
  br label %1668

1668:                                             ; preds = %1667, %1604
  %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1667 ], [ %1605, %1604 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #10
  br label %1669

1669:                                             ; preds = %1668, %1602
  %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1668 ], [ %1603, %1602 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #10
  br label %1670

1670:                                             ; preds = %1669, %1600
  %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1669 ], [ %1601, %1600 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #10
  br label %1987

1671:                                             ; preds = %1466
  %1672 = landingpad { ptr, i32 }
          cleanup
  br label %1986

.preheader2759:                                   ; preds = %1466, %1681
  %.012552782 = phi i32 [ %1682, %1681 ], [ 0, %1466 ]
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %88) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %90, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1673 unwind label %1683

1673:                                             ; preds = %.preheader2759
  %1674 = mul nuw nsw i32 %.012552782, 10
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %89, ptr noundef nonnull %90, i32 noundef %1674)
          to label %1675 unwind label %1685

1675:                                             ; preds = %1673
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %91) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %92, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1676 unwind label %1687

1676:                                             ; preds = %1675
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %91, ptr noundef nonnull %92, i32 noundef %1674)
          to label %1677 unwind label %1689

1677:                                             ; preds = %1676
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %88, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull %89, ptr noundef nonnull align 8 dereferenceable(8) %91)
          to label %1678 unwind label %1691

1678:                                             ; preds = %1677
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %87, ptr noundef nonnull align 8 dereferenceable(56) %88)
          to label %1679 unwind label %1693

1679:                                             ; preds = %1678
  %1680 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef nonnull %87)
          to label %1681 unwind label %1695

1681:                                             ; preds = %1679
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %88) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %90) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %88) #10
  %1682 = add nuw nsw i32 %.012552782, 1
  %exitcond.not = icmp eq i32 %1682, 100
  br i1 %exitcond.not, label %1467, label %.preheader2759, !llvm.loop !9

1683:                                             ; preds = %.preheader2759
  %1684 = landingpad { ptr, i32 }
          cleanup
  br label %1702

1685:                                             ; preds = %1673
  %1686 = landingpad { ptr, i32 }
          cleanup
  br label %1701

1687:                                             ; preds = %1675
  %1688 = landingpad { ptr, i32 }
          cleanup
  br label %1700

1689:                                             ; preds = %1676
  %1690 = landingpad { ptr, i32 }
          cleanup
  br label %1699

1691:                                             ; preds = %1677
  %1692 = landingpad { ptr, i32 }
          cleanup
  br label %1698

1693:                                             ; preds = %1678
  %1694 = landingpad { ptr, i32 }
          cleanup
  br label %1697

1695:                                             ; preds = %1679
  %1696 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #10
  br label %1697

1697:                                             ; preds = %1695, %1693
  %.pn2698 = phi { ptr, i32 } [ %1696, %1695 ], [ %1694, %1693 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %88) #10
  br label %1698

1698:                                             ; preds = %1697, %1691
  %.pn2698.pn = phi { ptr, i32 } [ %.pn2698, %1697 ], [ %1692, %1691 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91) #10
  br label %1699

1699:                                             ; preds = %1698, %1689
  %.pn2698.pn.pn = phi { ptr, i32 } [ %.pn2698.pn, %1698 ], [ %1690, %1689 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #10
  br label %1700

1700:                                             ; preds = %1699, %1687
  %.pn2698.pn.pn.pn = phi { ptr, i32 } [ %.pn2698.pn.pn, %1699 ], [ %1688, %1687 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %91) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #10
  br label %1701

1701:                                             ; preds = %1700, %1685
  %.pn2698.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2698.pn.pn.pn, %1700 ], [ %1686, %1685 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %90) #10
  br label %1702

1702:                                             ; preds = %1701, %1683
  %.pn2698.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2698.pn.pn.pn.pn, %1701 ], [ %1684, %1683 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %88) #10
  br label %1985

1703:                                             ; preds = %1467
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %93, ptr noundef nonnull align 8 dereferenceable(56) %95, ptr noundef nonnull %94)
          to label %1704 unwind label %1710

1704:                                             ; preds = %1703
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %93) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %95) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %95) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %94) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %96) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %96, i32 noundef 0)
          to label %1705 unwind label %1713

1705:                                             ; preds = %1704
  %1706 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6Halide4ExpraSEOS0_(ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef nonnull align 8 dereferenceable(8) %96) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %96) #10
  br label %1715

1707:                                             ; preds = %1724
  call void @_ZN6Halide4ExprC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef nonnull align 8 dereferenceable(8) %86) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %105) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %105, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1746 unwind label %1956

1708:                                             ; preds = %1467
  %1709 = landingpad { ptr, i32 }
          cleanup
  br label %1712

1710:                                             ; preds = %1703
  %1711 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %95) #10
  br label %1712

1712:                                             ; preds = %1710, %1708
  %.pn1396 = phi { ptr, i32 } [ %1711, %1710 ], [ %1709, %1708 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %95) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %94) #10
  br label %1985

1713:                                             ; preds = %1704
  %1714 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %96) #10
  br label %1985

1715:                                             ; preds = %1705, %1724
  %.012662783 = phi i32 [ 0, %1705 ], [ %1725, %1724 ]
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %98) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %100, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1716 unwind label %1726

1716:                                             ; preds = %1715
  %1717 = mul nuw nsw i32 %.012662783, 10
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %99, ptr noundef nonnull %100, i32 noundef %1717)
          to label %1718 unwind label %1728

1718:                                             ; preds = %1716
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %101) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %102, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1719 unwind label %1730

1719:                                             ; preds = %1718
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %101, ptr noundef nonnull %102, i32 noundef %1717)
          to label %1720 unwind label %1732

1720:                                             ; preds = %1719
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %98, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull %99, ptr noundef nonnull align 8 dereferenceable(8) %101)
          to label %1721 unwind label %1734

1721:                                             ; preds = %1720
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %97, ptr noundef nonnull align 8 dereferenceable(56) %98)
          to label %1722 unwind label %1736

1722:                                             ; preds = %1721
  %1723 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef nonnull %97)
          to label %1724 unwind label %1738

1724:                                             ; preds = %1722
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %98) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %98) #10
  %1725 = add nuw nsw i32 %.012662783, 1
  %exitcond2826.not = icmp eq i32 %1725, 100
  br i1 %exitcond2826.not, label %1707, label %1715, !llvm.loop !11

1726:                                             ; preds = %1715
  %1727 = landingpad { ptr, i32 }
          cleanup
  br label %1745

1728:                                             ; preds = %1716
  %1729 = landingpad { ptr, i32 }
          cleanup
  br label %1744

1730:                                             ; preds = %1718
  %1731 = landingpad { ptr, i32 }
          cleanup
  br label %1743

1732:                                             ; preds = %1719
  %1733 = landingpad { ptr, i32 }
          cleanup
  br label %1742

1734:                                             ; preds = %1720
  %1735 = landingpad { ptr, i32 }
          cleanup
  br label %1741

1736:                                             ; preds = %1721
  %1737 = landingpad { ptr, i32 }
          cleanup
  br label %1740

1738:                                             ; preds = %1722
  %1739 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %97) #10
  br label %1740

1740:                                             ; preds = %1738, %1736
  %.pn2691 = phi { ptr, i32 } [ %1739, %1738 ], [ %1737, %1736 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %98) #10
  br label %1741

1741:                                             ; preds = %1740, %1734
  %.pn2691.pn = phi { ptr, i32 } [ %.pn2691, %1740 ], [ %1735, %1734 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %101) #10
  br label %1742

1742:                                             ; preds = %1741, %1732
  %.pn2691.pn.pn = phi { ptr, i32 } [ %.pn2691.pn, %1741 ], [ %1733, %1732 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %102) #10
  br label %1743

1743:                                             ; preds = %1742, %1730
  %.pn2691.pn.pn.pn = phi { ptr, i32 } [ %.pn2691.pn.pn, %1742 ], [ %1731, %1730 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %99) #10
  br label %1744

1744:                                             ; preds = %1743, %1728
  %.pn2691.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2691.pn.pn.pn, %1743 ], [ %1729, %1728 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #10
  br label %1745

1745:                                             ; preds = %1744, %1726
  %.pn2691.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2691.pn.pn.pn.pn, %1744 ], [ %1727, %1726 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %98) #10
  br label %1985

1746:                                             ; preds = %1707
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %103, ptr noundef nonnull align 8 dereferenceable(56) %105, ptr noundef nonnull %104)
          to label %1747 unwind label %1958

1747:                                             ; preds = %1746
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %103) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %105) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %105) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1748 unwind label %1961

1748:                                             ; preds = %1747
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %107, i32 noundef 0)
          to label %1749 unwind label %1963

1749:                                             ; preds = %1748
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %108, i32 noundef 1000)
          to label %1750 unwind label %1965

1750:                                             ; preds = %1749
  %1751 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull %106, ptr noundef nonnull %107, ptr noundef nonnull %108)
          to label %1752 unwind label %1967

1752:                                             ; preds = %1750
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1753 unwind label %1967

1753:                                             ; preds = %1752
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %110, i32 noundef 0)
          to label %1754 unwind label %1969

1754:                                             ; preds = %1753
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %111, i32 noundef 1000)
          to label %1755 unwind label %1971

1755:                                             ; preds = %1754
  %1756 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1751, ptr noundef nonnull %109, ptr noundef nonnull %110, ptr noundef nonnull %111)
          to label %1757 unwind label %1973

1757:                                             ; preds = %1755
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %110) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %108) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %107) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %113) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %113, ptr noundef nonnull %114)
          to label %1758 unwind label %1980

1758:                                             ; preds = %1757
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %112, ptr noundef nonnull align 8 dereferenceable(8) %113, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %1759 unwind label %1982

1759:                                             ; preds = %1758
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %112) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %113) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %115) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %116) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %117)
          to label %1760 unwind label %1991

1760:                                             ; preds = %1759
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull align 8 dereferenceable(32) %116)
          to label %1761 unwind label %1993

1761:                                             ; preds = %1760
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %117) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %118) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %119) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %120) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %120)
          to label %1762 unwind label %1996

1762:                                             ; preds = %1761
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull align 8 dereferenceable(32) %119)
          to label %1763 unwind label %1998

1763:                                             ; preds = %1762
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %125, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1764 unwind label %2001

1764:                                             ; preds = %1763
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %126, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1765 unwind label %2003

1765:                                             ; preds = %1764
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %124, ptr noundef nonnull %125, ptr noundef nonnull %126)
          to label %1766 unwind label %2005

1766:                                             ; preds = %1765
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %128, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1767 unwind label %2007

1767:                                             ; preds = %1766
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %130, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1768 unwind label %2009

1768:                                             ; preds = %1767
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %129, i32 noundef 2, ptr noundef nonnull %130)
          to label %1769 unwind label %2011

1769:                                             ; preds = %1768
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %127, ptr noundef nonnull %128, ptr noundef nonnull %129)
          to label %1770 unwind label %2013

1770:                                             ; preds = %1769
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %123, ptr noundef nonnull %124, ptr noundef nonnull %127)
          to label %1771 unwind label %2015

1771:                                             ; preds = %1770
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %132, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1772 unwind label %2017

1772:                                             ; preds = %1771
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %134, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1773 unwind label %2019

1773:                                             ; preds = %1772
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %133, i32 noundef 3, ptr noundef nonnull %134)
          to label %1774 unwind label %2021

1774:                                             ; preds = %1773
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %131, ptr noundef nonnull %132, ptr noundef nonnull %133)
          to label %1775 unwind label %2023

1775:                                             ; preds = %1774
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %122, ptr noundef nonnull %123, ptr noundef nonnull %131)
          to label %1776 unwind label %2025

1776:                                             ; preds = %1775
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %135) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %135, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1777 unwind label %2027

1777:                                             ; preds = %1776
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %121, ptr noundef nonnull align 8 dereferenceable(56) %135, ptr noundef nonnull %122)
          to label %1778 unwind label %2029

1778:                                             ; preds = %1777
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %121) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %135) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %135) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %131) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %133) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %134) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %132) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %123) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %127) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %129) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %130) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %128) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %124) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %125) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %146) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %148, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1779 unwind label %2044

1779:                                             ; preds = %1778
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %147, ptr noundef nonnull %148, i32 noundef 9)
          to label %1780 unwind label %2046

1780:                                             ; preds = %1779
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %149) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %150, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1781 unwind label %2048

1781:                                             ; preds = %1780
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %149, ptr noundef nonnull %150, i32 noundef 9)
          to label %1782 unwind label %2050

1782:                                             ; preds = %1781
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %146, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull %147, ptr noundef nonnull align 8 dereferenceable(8) %149)
          to label %1783 unwind label %2052

1783:                                             ; preds = %1782
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %145, ptr noundef nonnull align 8 dereferenceable(56) %146)
          to label %1784 unwind label %2054

1784:                                             ; preds = %1783
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %152) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %153, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1785 unwind label %2056

1785:                                             ; preds = %1784
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %154) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %155, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1786 unwind label %2058

1786:                                             ; preds = %1785
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %154, ptr noundef nonnull %155, i32 noundef 9)
          to label %1787 unwind label %2060

1787:                                             ; preds = %1786
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %152, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull %153, ptr noundef nonnull align 8 dereferenceable(8) %154)
          to label %1788 unwind label %2062

1788:                                             ; preds = %1787
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %151, ptr noundef nonnull align 8 dereferenceable(56) %152)
          to label %1789 unwind label %2064

1789:                                             ; preds = %1788
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %144, ptr noundef nonnull %145, ptr noundef nonnull %151)
          to label %1790 unwind label %2066

1790:                                             ; preds = %1789
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %157) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %159, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1791 unwind label %2068

1791:                                             ; preds = %1790
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %158, ptr noundef nonnull %159, i32 noundef 9)
          to label %1792 unwind label %2070

1792:                                             ; preds = %1791
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %160) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %161, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1793 unwind label %2072

1793:                                             ; preds = %1792
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %160, ptr noundef nonnull %161, i32 noundef 9)
          to label %1794 unwind label %2074

1794:                                             ; preds = %1793
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %157, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull %158, ptr noundef nonnull align 8 dereferenceable(8) %160)
          to label %1795 unwind label %2076

1795:                                             ; preds = %1794
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %156, ptr noundef nonnull align 8 dereferenceable(56) %157)
          to label %1796 unwind label %2078

1796:                                             ; preds = %1795
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %143, ptr noundef nonnull %144, ptr noundef nonnull %156)
          to label %1797 unwind label %2080

1797:                                             ; preds = %1796
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %163) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %165, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1798 unwind label %2082

1798:                                             ; preds = %1797
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %164, ptr noundef nonnull %165, i32 noundef 9)
          to label %1799 unwind label %2084

1799:                                             ; preds = %1798
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %163, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull %164, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1800 unwind label %2086

1800:                                             ; preds = %1799
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %162, ptr noundef nonnull align 8 dereferenceable(56) %163)
          to label %1801 unwind label %2088

1801:                                             ; preds = %1800
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %142, ptr noundef nonnull %143, ptr noundef nonnull %162)
          to label %1802 unwind label %2090

1802:                                             ; preds = %1801
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %167) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %167, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1803 unwind label %2092

1803:                                             ; preds = %1802
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %166, ptr noundef nonnull align 8 dereferenceable(56) %167)
          to label %1804 unwind label %2094

1804:                                             ; preds = %1803
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %141, ptr noundef nonnull %142, ptr noundef nonnull %166)
          to label %1805 unwind label %2096

1805:                                             ; preds = %1804
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %169) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %171, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1806 unwind label %2098

1806:                                             ; preds = %1805
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %170, ptr noundef nonnull %171, i32 noundef 9)
          to label %1807 unwind label %2100

1807:                                             ; preds = %1806
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %169, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull %170, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1808 unwind label %2102

1808:                                             ; preds = %1807
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %168, ptr noundef nonnull align 8 dereferenceable(56) %169)
          to label %1809 unwind label %2104

1809:                                             ; preds = %1808
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %140, ptr noundef nonnull %141, ptr noundef nonnull %168)
          to label %1810 unwind label %2106

1810:                                             ; preds = %1809
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %173) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %175, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1811 unwind label %2108

1811:                                             ; preds = %1810
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %174, ptr noundef nonnull %175, i32 noundef 9)
          to label %1812 unwind label %2110

1812:                                             ; preds = %1811
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %176) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %177, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1813 unwind label %2112

1813:                                             ; preds = %1812
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %176, ptr noundef nonnull %177, i32 noundef 9)
          to label %1814 unwind label %2114

1814:                                             ; preds = %1813
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %173, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull %174, ptr noundef nonnull align 8 dereferenceable(8) %176)
          to label %1815 unwind label %2116

1815:                                             ; preds = %1814
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %172, ptr noundef nonnull align 8 dereferenceable(56) %173)
          to label %1816 unwind label %2118

1816:                                             ; preds = %1815
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %139, ptr noundef nonnull %140, ptr noundef nonnull %172)
          to label %1817 unwind label %2120

1817:                                             ; preds = %1816
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %179) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %180, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1818 unwind label %2122

1818:                                             ; preds = %1817
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %181) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %182, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1819 unwind label %2124

1819:                                             ; preds = %1818
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %181, ptr noundef nonnull %182, i32 noundef 9)
          to label %1820 unwind label %2126

1820:                                             ; preds = %1819
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %179, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull %180, ptr noundef nonnull align 8 dereferenceable(8) %181)
          to label %1821 unwind label %2128

1821:                                             ; preds = %1820
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %178, ptr noundef nonnull align 8 dereferenceable(56) %179)
          to label %1822 unwind label %2130

1822:                                             ; preds = %1821
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %138, ptr noundef nonnull %139, ptr noundef nonnull %178)
          to label %1823 unwind label %2132

1823:                                             ; preds = %1822
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %184) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %186, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1824 unwind label %2134

1824:                                             ; preds = %1823
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %185, ptr noundef nonnull %186, i32 noundef 9)
          to label %1825 unwind label %2136

1825:                                             ; preds = %1824
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %187) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %188, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1826 unwind label %2138

1826:                                             ; preds = %1825
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %187, ptr noundef nonnull %188, i32 noundef 9)
          to label %1827 unwind label %2140

1827:                                             ; preds = %1826
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %184, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull %185, ptr noundef nonnull align 8 dereferenceable(8) %187)
          to label %1828 unwind label %2142

1828:                                             ; preds = %1827
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %183, ptr noundef nonnull align 8 dereferenceable(56) %184)
          to label %1829 unwind label %2144

1829:                                             ; preds = %1828
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %137, ptr noundef nonnull %138, ptr noundef nonnull %183)
          to label %1830 unwind label %2146

1830:                                             ; preds = %1829
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %189) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %189, ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1831 unwind label %2148

1831:                                             ; preds = %1830
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %136, ptr noundef nonnull align 8 dereferenceable(56) %189, ptr noundef nonnull %137)
          to label %1832 unwind label %2150

1832:                                             ; preds = %1831
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %136) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %189) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %189) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %137) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %183) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %184) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %187) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %188) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %187) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %185) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %186) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %184) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %138) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %178) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %179) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %181) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %182) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %181) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %180) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %179) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %139) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %172) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %173) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %176) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %177) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %176) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %174) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %175) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %173) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %168) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %169) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %170) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %171) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %169) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %141) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %166) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %167) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %167) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %142) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %162) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %163) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %164) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %165) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %163) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %143) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %156) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %157) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %160) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %161) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %160) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %158) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %159) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %157) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %144) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %151) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %152) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %154) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %155) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %154) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %153) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %152) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %145) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %146) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %149) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %150) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %149) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %147) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %148) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %146) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1833 unwind label %2001

1833:                                             ; preds = %1832
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %191, i32 noundef 0)
          to label %1834 unwind label %2205

1834:                                             ; preds = %1833
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %192, i32 noundef 2048)
          to label %1835 unwind label %2207

1835:                                             ; preds = %1834
  %1836 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull %190, ptr noundef nonnull %191, ptr noundef nonnull %192)
          to label %1837 unwind label %2209

1837:                                             ; preds = %1835
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %193, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1838 unwind label %2209

1838:                                             ; preds = %1837
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %194, i32 noundef 0)
          to label %1839 unwind label %2211

1839:                                             ; preds = %1838
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %195, i32 noundef 2048)
          to label %1840 unwind label %2213

1840:                                             ; preds = %1839
  %1841 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1836, ptr noundef nonnull %193, ptr noundef nonnull %194, ptr noundef nonnull %195)
          to label %1842 unwind label %2215

1842:                                             ; preds = %1840
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %195) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %194) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %192) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %191) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %197) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef nonnull align 8 dereferenceable(32) %118) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %197, ptr noundef nonnull %198)
          to label %1843 unwind label %2222

1843:                                             ; preds = %1842
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %196, ptr noundef nonnull align 8 dereferenceable(8) %197, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %1844 unwind label %2224

1844:                                             ; preds = %1843
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %196) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %197) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %197) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %199) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %200) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %201) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %200, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %201)
          to label %1845 unwind label %2230

1845:                                             ; preds = %1844
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef nonnull align 8 dereferenceable(32) %200)
          to label %1846 unwind label %2232

1846:                                             ; preds = %1845
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %201) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %200) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %202) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %203) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %204)
          to label %1847 unwind label %2235

1847:                                             ; preds = %1846
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %202, ptr noundef nonnull align 8 dereferenceable(32) %203)
          to label %1848 unwind label %2237

1848:                                             ; preds = %1847
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %204) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %203) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %205) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %206) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %207) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %207) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %207)
          to label %1849 unwind label %2240

1849:                                             ; preds = %1848
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef nonnull align 8 dereferenceable(32) %206)
          to label %1850 unwind label %2242

1850:                                             ; preds = %1849
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %207) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %207) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %206) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %212, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1851 unwind label %2245

1851:                                             ; preds = %1850
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %213, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1852 unwind label %2247

1852:                                             ; preds = %1851
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %211, ptr noundef nonnull %212, ptr noundef nonnull %213)
          to label %1853 unwind label %2249

1853:                                             ; preds = %1852
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %215, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1854 unwind label %2251

1854:                                             ; preds = %1853
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %217, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1855 unwind label %2253

1855:                                             ; preds = %1854
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %216, i32 noundef 2, ptr noundef nonnull %217)
          to label %1856 unwind label %2255

1856:                                             ; preds = %1855
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %214, ptr noundef nonnull %215, ptr noundef nonnull %216)
          to label %1857 unwind label %2257

1857:                                             ; preds = %1856
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %210, ptr noundef nonnull %211, ptr noundef nonnull %214)
          to label %1858 unwind label %2259

1858:                                             ; preds = %1857
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %219, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1859 unwind label %2261

1859:                                             ; preds = %1858
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %221, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1860 unwind label %2263

1860:                                             ; preds = %1859
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %220, i32 noundef 3, ptr noundef nonnull %221)
          to label %1861 unwind label %2265

1861:                                             ; preds = %1860
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %218, ptr noundef nonnull %219, ptr noundef nonnull %220)
          to label %1862 unwind label %2267

1862:                                             ; preds = %1861
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %209, ptr noundef nonnull %210, ptr noundef nonnull %218)
          to label %1863 unwind label %2269

1863:                                             ; preds = %1862
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %222) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %222, ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1864 unwind label %2271

1864:                                             ; preds = %1863
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %208, ptr noundef nonnull align 8 dereferenceable(56) %222, ptr noundef nonnull %209)
          to label %1865 unwind label %2273

1865:                                             ; preds = %1864
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %208) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %222) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %222) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %209) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %218) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %220) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %221) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %219) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %210) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %214) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %216) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %217) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %215) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %211) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %213) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %212) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %233) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %235, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1866 unwind label %2288

1866:                                             ; preds = %1865
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %234, ptr noundef nonnull %235, i32 noundef 1)
          to label %1867 unwind label %2290

1867:                                             ; preds = %1866
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %236) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %237, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1868 unwind label %2292

1868:                                             ; preds = %1867
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %236, ptr noundef nonnull %237, i32 noundef 1)
          to label %1869 unwind label %2294

1869:                                             ; preds = %1868
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %233, ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef nonnull %234, ptr noundef nonnull align 8 dereferenceable(8) %236)
          to label %1870 unwind label %2296

1870:                                             ; preds = %1869
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %232, ptr noundef nonnull align 8 dereferenceable(56) %233)
          to label %1871 unwind label %2298

1871:                                             ; preds = %1870
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %239) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %240, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1872 unwind label %2300

1872:                                             ; preds = %1871
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %241) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %242, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1873 unwind label %2302

1873:                                             ; preds = %1872
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %241, ptr noundef nonnull %242, i32 noundef 1)
          to label %1874 unwind label %2304

1874:                                             ; preds = %1873
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %239, ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef nonnull %240, ptr noundef nonnull align 8 dereferenceable(8) %241)
          to label %1875 unwind label %2306

1875:                                             ; preds = %1874
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %238, ptr noundef nonnull align 8 dereferenceable(56) %239)
          to label %1876 unwind label %2308

1876:                                             ; preds = %1875
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %231, ptr noundef nonnull %232, ptr noundef nonnull %238)
          to label %1877 unwind label %2310

1877:                                             ; preds = %1876
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %244) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %246, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1878 unwind label %2312

1878:                                             ; preds = %1877
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %245, ptr noundef nonnull %246, i32 noundef 1)
          to label %1879 unwind label %2314

1879:                                             ; preds = %1878
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %247) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %248, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1880 unwind label %2316

1880:                                             ; preds = %1879
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %247, ptr noundef nonnull %248, i32 noundef 1)
          to label %1881 unwind label %2318

1881:                                             ; preds = %1880
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %244, ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef nonnull %245, ptr noundef nonnull align 8 dereferenceable(8) %247)
          to label %1882 unwind label %2320

1882:                                             ; preds = %1881
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %243, ptr noundef nonnull align 8 dereferenceable(56) %244)
          to label %1883 unwind label %2322

1883:                                             ; preds = %1882
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %230, ptr noundef nonnull %231, ptr noundef nonnull %243)
          to label %1884 unwind label %2324

1884:                                             ; preds = %1883
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %250) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %252, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1885 unwind label %2326

1885:                                             ; preds = %1884
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %251, ptr noundef nonnull %252, i32 noundef 1)
          to label %1886 unwind label %2328

1886:                                             ; preds = %1885
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %250, ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef nonnull %251, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1887 unwind label %2330

1887:                                             ; preds = %1886
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %249, ptr noundef nonnull align 8 dereferenceable(56) %250)
          to label %1888 unwind label %2332

1888:                                             ; preds = %1887
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %229, ptr noundef nonnull %230, ptr noundef nonnull %249)
          to label %1889 unwind label %2334

1889:                                             ; preds = %1888
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %254) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %254, ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1890 unwind label %2336

1890:                                             ; preds = %1889
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %253, ptr noundef nonnull align 8 dereferenceable(56) %254)
          to label %1891 unwind label %2338

1891:                                             ; preds = %1890
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %228, ptr noundef nonnull %229, ptr noundef nonnull %253)
          to label %1892 unwind label %2340

1892:                                             ; preds = %1891
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %256) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %258, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1893 unwind label %2342

1893:                                             ; preds = %1892
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %257, ptr noundef nonnull %258, i32 noundef 1)
          to label %1894 unwind label %2344

1894:                                             ; preds = %1893
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %256, ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef nonnull %257, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1895 unwind label %2346

1895:                                             ; preds = %1894
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %255, ptr noundef nonnull align 8 dereferenceable(56) %256)
          to label %1896 unwind label %2348

1896:                                             ; preds = %1895
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %227, ptr noundef nonnull %228, ptr noundef nonnull %255)
          to label %1897 unwind label %2350

1897:                                             ; preds = %1896
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %260) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %262, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1898 unwind label %2352

1898:                                             ; preds = %1897
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %261, ptr noundef nonnull %262, i32 noundef 1)
          to label %1899 unwind label %2354

1899:                                             ; preds = %1898
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %263) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %264, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1900 unwind label %2356

1900:                                             ; preds = %1899
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %263, ptr noundef nonnull %264, i32 noundef 1)
          to label %1901 unwind label %2358

1901:                                             ; preds = %1900
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %260, ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef nonnull %261, ptr noundef nonnull align 8 dereferenceable(8) %263)
          to label %1902 unwind label %2360

1902:                                             ; preds = %1901
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %259, ptr noundef nonnull align 8 dereferenceable(56) %260)
          to label %1903 unwind label %2362

1903:                                             ; preds = %1902
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %226, ptr noundef nonnull %227, ptr noundef nonnull %259)
          to label %1904 unwind label %2364

1904:                                             ; preds = %1903
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %266) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %267, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1905 unwind label %2366

1905:                                             ; preds = %1904
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %268) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %269, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1906 unwind label %2368

1906:                                             ; preds = %1905
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %268, ptr noundef nonnull %269, i32 noundef 1)
          to label %1907 unwind label %2370

1907:                                             ; preds = %1906
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %266, ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef nonnull %267, ptr noundef nonnull align 8 dereferenceable(8) %268)
          to label %1908 unwind label %2372

1908:                                             ; preds = %1907
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %265, ptr noundef nonnull align 8 dereferenceable(56) %266)
          to label %1909 unwind label %2374

1909:                                             ; preds = %1908
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %225, ptr noundef nonnull %226, ptr noundef nonnull %265)
          to label %1910 unwind label %2376

1910:                                             ; preds = %1909
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %271) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %273, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1911 unwind label %2378

1911:                                             ; preds = %1910
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %272, ptr noundef nonnull %273, i32 noundef 1)
          to label %1912 unwind label %2380

1912:                                             ; preds = %1911
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %274) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %275, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1913 unwind label %2382

1913:                                             ; preds = %1912
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %274, ptr noundef nonnull %275, i32 noundef 1)
          to label %1914 unwind label %2384

1914:                                             ; preds = %1913
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %271, ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef nonnull %272, ptr noundef nonnull align 8 dereferenceable(8) %274)
          to label %1915 unwind label %2386

1915:                                             ; preds = %1914
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %270, ptr noundef nonnull align 8 dereferenceable(56) %271)
          to label %1916 unwind label %2388

1916:                                             ; preds = %1915
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %224, ptr noundef nonnull %225, ptr noundef nonnull %270)
          to label %1917 unwind label %2390

1917:                                             ; preds = %1916
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %276) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %276, ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1918 unwind label %2392

1918:                                             ; preds = %1917
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %223, ptr noundef nonnull align 8 dereferenceable(56) %276, ptr noundef nonnull %224)
          to label %1919 unwind label %2394

1919:                                             ; preds = %1918
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %223) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %276) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %276) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %224) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %270) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %271) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %274) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %275) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %274) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %272) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %273) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %271) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %225) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %265) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %266) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %268) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %269) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %268) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %267) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %266) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %226) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %259) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %260) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %263) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %264) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %263) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %261) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %262) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %260) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %227) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %255) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %256) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %257) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %258) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %256) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %228) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %253) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %254) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %254) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %229) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %249) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %250) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %251) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %252) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %250) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %230) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %243) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %244) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %247) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %248) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %247) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %245) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %246) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %244) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %231) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %238) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %239) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %241) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %242) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %241) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %240) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %239) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %232) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %233) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %236) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %237) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %236) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %234) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %235) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %233) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %277, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1920 unwind label %2245

1920:                                             ; preds = %1919
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %278, i32 noundef 0)
          to label %1921 unwind label %2449

1921:                                             ; preds = %1920
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %279, i32 noundef 2048)
          to label %1922 unwind label %2451

1922:                                             ; preds = %1921
  %1923 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef nonnull %277, ptr noundef nonnull %278, ptr noundef nonnull %279)
          to label %1924 unwind label %2453

1924:                                             ; preds = %1922
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %280, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1925 unwind label %2453

1925:                                             ; preds = %1924
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %281, i32 noundef 0)
          to label %1926 unwind label %2455

1926:                                             ; preds = %1925
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %282, i32 noundef 2048)
          to label %1927 unwind label %2457

1927:                                             ; preds = %1926
  %1928 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1923, ptr noundef nonnull %280, ptr noundef nonnull %281, ptr noundef nonnull %282)
          to label %1929 unwind label %2459

1929:                                             ; preds = %1927
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %282) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %281) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %280) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %279) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %278) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %284) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %285, ptr noundef nonnull align 8 dereferenceable(32) %205) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %284, ptr noundef nonnull %285)
          to label %1930 unwind label %2466

1930:                                             ; preds = %1929
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %283, ptr noundef nonnull align 8 dereferenceable(8) %284, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %1931 unwind label %2468

1931:                                             ; preds = %1930
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %283) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %284) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %285) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %284) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %205) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %202) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %199) #10
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %286) #10
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %286)
          to label %1932 unwind label %2475

1932:                                             ; preds = %1931
  %.ptr.1 = getelementptr inbounds i8, ptr %286, i64 32
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr.1)
          to label %1933 unwind label %.preheader2757.preheader

1933:                                             ; preds = %1932
  %.ptr.2 = getelementptr inbounds i8, ptr %286, i64 64
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr.2)
          to label %1934 unwind label %.preheader2757.preheader

1934:                                             ; preds = %1933
  %.ptr.3 = getelementptr inbounds i8, ptr %286, i64 96
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr.3)
          to label %1935 unwind label %.preheader2757.preheader

1935:                                             ; preds = %1934
  %.ptr.4 = getelementptr inbounds i8, ptr %286, i64 128
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr.4)
          to label %1936 unwind label %.preheader2757.preheader

1936:                                             ; preds = %1935
  %.ptr.5 = getelementptr inbounds i8, ptr %286, i64 160
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr.5)
          to label %1937 unwind label %.preheader2757.preheader

1937:                                             ; preds = %1936
  %.ptr.6 = getelementptr inbounds i8, ptr %286, i64 192
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr.6)
          to label %1938 unwind label %.preheader2757.preheader

1938:                                             ; preds = %1937
  %.ptr.7 = getelementptr inbounds i8, ptr %286, i64 224
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr.7)
          to label %1939 unwind label %.preheader2757.preheader

1939:                                             ; preds = %1938
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %291, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1940 unwind label %2479

1940:                                             ; preds = %1939
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %292, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1941 unwind label %2481

1941:                                             ; preds = %1940
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %290, ptr noundef nonnull %291, ptr noundef nonnull %292)
          to label %1942 unwind label %2483

1942:                                             ; preds = %1941
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %294, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1943 unwind label %2485

1943:                                             ; preds = %1942
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %296, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1944 unwind label %2487

1944:                                             ; preds = %1943
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %295, i32 noundef 2, ptr noundef nonnull %296)
          to label %1945 unwind label %2489

1945:                                             ; preds = %1944
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %293, ptr noundef nonnull %294, ptr noundef nonnull %295)
          to label %1946 unwind label %2491

1946:                                             ; preds = %1945
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %289, ptr noundef nonnull %290, ptr noundef nonnull %293)
          to label %1947 unwind label %2493

1947:                                             ; preds = %1946
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %298, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %1948 unwind label %2495

1948:                                             ; preds = %1947
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %300, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1949 unwind label %2497

1949:                                             ; preds = %1948
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %299, i32 noundef 3, ptr noundef nonnull %300)
          to label %1950 unwind label %2499

1950:                                             ; preds = %1949
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %297, ptr noundef nonnull %298, ptr noundef nonnull %299)
          to label %1951 unwind label %2501

1951:                                             ; preds = %1950
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %288, ptr noundef nonnull %289, ptr noundef nonnull %297)
          to label %1952 unwind label %2503

1952:                                             ; preds = %1951
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %301) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %301, ptr noundef nonnull align 8 dereferenceable(32) %286, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %1953 unwind label %2505

1953:                                             ; preds = %1952
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %287, ptr noundef nonnull align 8 dereferenceable(56) %301, ptr noundef nonnull %288)
          to label %1954 unwind label %2507

1954:                                             ; preds = %1953
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %287) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %301) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %301) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %288) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %297) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %299) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %300) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %298) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %289) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %293) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %295) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %296) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %294) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %290) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %292) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %291) #10
  br label %2522

1955:                                             ; preds = %2591
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %312, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2599 unwind label %2479

1956:                                             ; preds = %1707
  %1957 = landingpad { ptr, i32 }
          cleanup
  br label %1960

1958:                                             ; preds = %1746
  %1959 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %105) #10
  br label %1960

1960:                                             ; preds = %1958, %1956
  %.pn1398 = phi { ptr, i32 } [ %1959, %1958 ], [ %1957, %1956 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %105) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #10
  br label %1985

1961:                                             ; preds = %1747
  %1962 = landingpad { ptr, i32 }
          cleanup
  br label %1985

1963:                                             ; preds = %1748
  %1964 = landingpad { ptr, i32 }
          cleanup
  br label %1979

1965:                                             ; preds = %1749
  %1966 = landingpad { ptr, i32 }
          cleanup
  br label %1978

1967:                                             ; preds = %1752, %1750
  %1968 = landingpad { ptr, i32 }
          cleanup
  br label %1977

1969:                                             ; preds = %1753
  %1970 = landingpad { ptr, i32 }
          cleanup
  br label %1976

1971:                                             ; preds = %1754
  %1972 = landingpad { ptr, i32 }
          cleanup
  br label %1975

1973:                                             ; preds = %1755
  %1974 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #10
  br label %1975

1975:                                             ; preds = %1973, %1971
  %.pn1400 = phi { ptr, i32 } [ %1974, %1973 ], [ %1972, %1971 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %110) #10
  br label %1976

1976:                                             ; preds = %1975, %1969
  %.pn1400.pn = phi { ptr, i32 } [ %.pn1400, %1975 ], [ %1970, %1969 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #10
  br label %1977

1977:                                             ; preds = %1976, %1967
  %.pn1400.pn.pn = phi { ptr, i32 } [ %.pn1400.pn, %1976 ], [ %1968, %1967 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %108) #10
  br label %1978

1978:                                             ; preds = %1977, %1965
  %.pn1400.pn.pn.pn = phi { ptr, i32 } [ %.pn1400.pn.pn, %1977 ], [ %1966, %1965 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %107) #10
  br label %1979

1979:                                             ; preds = %1978, %1963
  %.pn1400.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1400.pn.pn.pn, %1978 ], [ %1964, %1963 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #10
  br label %1985

1980:                                             ; preds = %1757
  %1981 = landingpad { ptr, i32 }
          cleanup
  br label %1984

1982:                                             ; preds = %1758
  %1983 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %113) #10
  br label %1984

1984:                                             ; preds = %1982, %1980
  %.pn1406 = phi { ptr, i32 } [ %1983, %1982 ], [ %1981, %1980 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %113) #10
  br label %1985

1985:                                             ; preds = %1984, %1979, %1961, %1960, %1745, %1713, %1712, %1702
  %.pn2698.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2698.pn.pn.pn.pn.pn, %1702 ], [ %.pn2691.pn.pn.pn.pn.pn, %1745 ], [ %.pn1406, %1984 ], [ %.pn1400.pn.pn.pn.pn, %1979 ], [ %1962, %1961 ], [ %.pn1398, %1960 ], [ %1714, %1713 ], [ %.pn1396, %1712 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86) #10
  br label %1986

1986:                                             ; preds = %1985, %1671
  %.pn2698.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2698.pn.pn.pn.pn.pn.pn, %1985 ], [ %1672, %1671 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #10
  br label %1987

1987:                                             ; preds = %1986, %1670, %1598
  %.pn2698.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2698.pn.pn.pn.pn.pn.pn.pn, %1986 ], [ %.pn1372.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1670 ], [ %1599, %1598 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  br label %1988

1988:                                             ; preds = %1987, %1597
  %.pn2698.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2698.pn.pn.pn.pn.pn.pn.pn.pn, %1987 ], [ %.pn1370, %1597 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  br label %1989

1989:                                             ; preds = %1988, %1592
  %.pn2698.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2698.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1988 ], [ %.pn1368, %1592 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  br label %1990

1990:                                             ; preds = %1989, %1587
  %.pn2698.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2698.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1989 ], [ %.pn1366, %1587 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #10
  br label %6795

1991:                                             ; preds = %1759
  %1992 = landingpad { ptr, i32 }
          cleanup
  br label %1995

1993:                                             ; preds = %1760
  %1994 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #10
  br label %1995

1995:                                             ; preds = %1993, %1991
  %.pn1408 = phi { ptr, i32 } [ %1994, %1993 ], [ %1992, %1991 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %117) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #10
  br label %2229

1996:                                             ; preds = %1761
  %1997 = landingpad { ptr, i32 }
          cleanup
  br label %2000

1998:                                             ; preds = %1762
  %1999 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #10
  br label %2000

2000:                                             ; preds = %1998, %1996
  %.pn1410 = phi { ptr, i32 } [ %1999, %1998 ], [ %1997, %1996 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #10
  br label %2228

2001:                                             ; preds = %1832, %1763
  %2002 = landingpad { ptr, i32 }
          cleanup
  br label %2227

2003:                                             ; preds = %1764
  %2004 = landingpad { ptr, i32 }
          cleanup
  br label %2043

2005:                                             ; preds = %1765
  %2006 = landingpad { ptr, i32 }
          cleanup
  br label %2042

2007:                                             ; preds = %1766
  %2008 = landingpad { ptr, i32 }
          cleanup
  br label %2041

2009:                                             ; preds = %1767
  %2010 = landingpad { ptr, i32 }
          cleanup
  br label %2040

2011:                                             ; preds = %1768
  %2012 = landingpad { ptr, i32 }
          cleanup
  br label %2039

2013:                                             ; preds = %1769
  %2014 = landingpad { ptr, i32 }
          cleanup
  br label %2038

2015:                                             ; preds = %1770
  %2016 = landingpad { ptr, i32 }
          cleanup
  br label %2037

2017:                                             ; preds = %1771
  %2018 = landingpad { ptr, i32 }
          cleanup
  br label %2036

2019:                                             ; preds = %1772
  %2020 = landingpad { ptr, i32 }
          cleanup
  br label %2035

2021:                                             ; preds = %1773
  %2022 = landingpad { ptr, i32 }
          cleanup
  br label %2034

2023:                                             ; preds = %1774
  %2024 = landingpad { ptr, i32 }
          cleanup
  br label %2033

2025:                                             ; preds = %1775
  %2026 = landingpad { ptr, i32 }
          cleanup
  br label %2032

2027:                                             ; preds = %1776
  %2028 = landingpad { ptr, i32 }
          cleanup
  br label %2031

2029:                                             ; preds = %1777
  %2030 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %135) #10
  br label %2031

2031:                                             ; preds = %2029, %2027
  %.pn1412 = phi { ptr, i32 } [ %2030, %2029 ], [ %2028, %2027 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %135) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %122) #10
  br label %2032

2032:                                             ; preds = %2031, %2025
  %.pn1412.pn = phi { ptr, i32 } [ %.pn1412, %2031 ], [ %2026, %2025 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %131) #10
  br label %2033

2033:                                             ; preds = %2032, %2023
  %.pn1412.pn.pn = phi { ptr, i32 } [ %.pn1412.pn, %2032 ], [ %2024, %2023 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %133) #10
  br label %2034

2034:                                             ; preds = %2033, %2021
  %.pn1412.pn.pn.pn = phi { ptr, i32 } [ %.pn1412.pn.pn, %2033 ], [ %2022, %2021 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %134) #10
  br label %2035

2035:                                             ; preds = %2034, %2019
  %.pn1412.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1412.pn.pn.pn, %2034 ], [ %2020, %2019 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %132) #10
  br label %2036

2036:                                             ; preds = %2035, %2017
  %.pn1412.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1412.pn.pn.pn.pn, %2035 ], [ %2018, %2017 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %123) #10
  br label %2037

2037:                                             ; preds = %2036, %2015
  %.pn1412.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1412.pn.pn.pn.pn.pn, %2036 ], [ %2016, %2015 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %127) #10
  br label %2038

2038:                                             ; preds = %2037, %2013
  %.pn1412.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1412.pn.pn.pn.pn.pn.pn, %2037 ], [ %2014, %2013 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %129) #10
  br label %2039

2039:                                             ; preds = %2038, %2011
  %.pn1412.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1412.pn.pn.pn.pn.pn.pn.pn, %2038 ], [ %2012, %2011 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %130) #10
  br label %2040

2040:                                             ; preds = %2039, %2009
  %.pn1412.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1412.pn.pn.pn.pn.pn.pn.pn.pn, %2039 ], [ %2010, %2009 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %128) #10
  br label %2041

2041:                                             ; preds = %2040, %2007
  %.pn1412.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1412.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2040 ], [ %2008, %2007 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %124) #10
  br label %2042

2042:                                             ; preds = %2041, %2005
  %.pn1412.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1412.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2041 ], [ %2006, %2005 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %126) #10
  br label %2043

2043:                                             ; preds = %2042, %2003
  %.pn1412.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1412.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2042 ], [ %2004, %2003 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %125) #10
  br label %2227

2044:                                             ; preds = %1778
  %2045 = landingpad { ptr, i32 }
          cleanup
  br label %2204

2046:                                             ; preds = %1779
  %2047 = landingpad { ptr, i32 }
          cleanup
  br label %2203

2048:                                             ; preds = %1780
  %2049 = landingpad { ptr, i32 }
          cleanup
  br label %2202

2050:                                             ; preds = %1781
  %2051 = landingpad { ptr, i32 }
          cleanup
  br label %2201

2052:                                             ; preds = %1782
  %2053 = landingpad { ptr, i32 }
          cleanup
  br label %2200

2054:                                             ; preds = %1783
  %2055 = landingpad { ptr, i32 }
          cleanup
  br label %2199

2056:                                             ; preds = %1784
  %2057 = landingpad { ptr, i32 }
          cleanup
  br label %2198

2058:                                             ; preds = %1785
  %2059 = landingpad { ptr, i32 }
          cleanup
  br label %2197

2060:                                             ; preds = %1786
  %2061 = landingpad { ptr, i32 }
          cleanup
  br label %2196

2062:                                             ; preds = %1787
  %2063 = landingpad { ptr, i32 }
          cleanup
  br label %2195

2064:                                             ; preds = %1788
  %2065 = landingpad { ptr, i32 }
          cleanup
  br label %2194

2066:                                             ; preds = %1789
  %2067 = landingpad { ptr, i32 }
          cleanup
  br label %2193

2068:                                             ; preds = %1790
  %2069 = landingpad { ptr, i32 }
          cleanup
  br label %2192

2070:                                             ; preds = %1791
  %2071 = landingpad { ptr, i32 }
          cleanup
  br label %2191

2072:                                             ; preds = %1792
  %2073 = landingpad { ptr, i32 }
          cleanup
  br label %2190

2074:                                             ; preds = %1793
  %2075 = landingpad { ptr, i32 }
          cleanup
  br label %2189

2076:                                             ; preds = %1794
  %2077 = landingpad { ptr, i32 }
          cleanup
  br label %2188

2078:                                             ; preds = %1795
  %2079 = landingpad { ptr, i32 }
          cleanup
  br label %2187

2080:                                             ; preds = %1796
  %2081 = landingpad { ptr, i32 }
          cleanup
  br label %2186

2082:                                             ; preds = %1797
  %2083 = landingpad { ptr, i32 }
          cleanup
  br label %2185

2084:                                             ; preds = %1798
  %2085 = landingpad { ptr, i32 }
          cleanup
  br label %2184

2086:                                             ; preds = %1799
  %2087 = landingpad { ptr, i32 }
          cleanup
  br label %2183

2088:                                             ; preds = %1800
  %2089 = landingpad { ptr, i32 }
          cleanup
  br label %2182

2090:                                             ; preds = %1801
  %2091 = landingpad { ptr, i32 }
          cleanup
  br label %2181

2092:                                             ; preds = %1802
  %2093 = landingpad { ptr, i32 }
          cleanup
  br label %2180

2094:                                             ; preds = %1803
  %2095 = landingpad { ptr, i32 }
          cleanup
  br label %2179

2096:                                             ; preds = %1804
  %2097 = landingpad { ptr, i32 }
          cleanup
  br label %2178

2098:                                             ; preds = %1805
  %2099 = landingpad { ptr, i32 }
          cleanup
  br label %2177

2100:                                             ; preds = %1806
  %2101 = landingpad { ptr, i32 }
          cleanup
  br label %2176

2102:                                             ; preds = %1807
  %2103 = landingpad { ptr, i32 }
          cleanup
  br label %2175

2104:                                             ; preds = %1808
  %2105 = landingpad { ptr, i32 }
          cleanup
  br label %2174

2106:                                             ; preds = %1809
  %2107 = landingpad { ptr, i32 }
          cleanup
  br label %2173

2108:                                             ; preds = %1810
  %2109 = landingpad { ptr, i32 }
          cleanup
  br label %2172

2110:                                             ; preds = %1811
  %2111 = landingpad { ptr, i32 }
          cleanup
  br label %2171

2112:                                             ; preds = %1812
  %2113 = landingpad { ptr, i32 }
          cleanup
  br label %2170

2114:                                             ; preds = %1813
  %2115 = landingpad { ptr, i32 }
          cleanup
  br label %2169

2116:                                             ; preds = %1814
  %2117 = landingpad { ptr, i32 }
          cleanup
  br label %2168

2118:                                             ; preds = %1815
  %2119 = landingpad { ptr, i32 }
          cleanup
  br label %2167

2120:                                             ; preds = %1816
  %2121 = landingpad { ptr, i32 }
          cleanup
  br label %2166

2122:                                             ; preds = %1817
  %2123 = landingpad { ptr, i32 }
          cleanup
  br label %2165

2124:                                             ; preds = %1818
  %2125 = landingpad { ptr, i32 }
          cleanup
  br label %2164

2126:                                             ; preds = %1819
  %2127 = landingpad { ptr, i32 }
          cleanup
  br label %2163

2128:                                             ; preds = %1820
  %2129 = landingpad { ptr, i32 }
          cleanup
  br label %2162

2130:                                             ; preds = %1821
  %2131 = landingpad { ptr, i32 }
          cleanup
  br label %2161

2132:                                             ; preds = %1822
  %2133 = landingpad { ptr, i32 }
          cleanup
  br label %2160

2134:                                             ; preds = %1823
  %2135 = landingpad { ptr, i32 }
          cleanup
  br label %2159

2136:                                             ; preds = %1824
  %2137 = landingpad { ptr, i32 }
          cleanup
  br label %2158

2138:                                             ; preds = %1825
  %2139 = landingpad { ptr, i32 }
          cleanup
  br label %2157

2140:                                             ; preds = %1826
  %2141 = landingpad { ptr, i32 }
          cleanup
  br label %2156

2142:                                             ; preds = %1827
  %2143 = landingpad { ptr, i32 }
          cleanup
  br label %2155

2144:                                             ; preds = %1828
  %2145 = landingpad { ptr, i32 }
          cleanup
  br label %2154

2146:                                             ; preds = %1829
  %2147 = landingpad { ptr, i32 }
          cleanup
  br label %2153

2148:                                             ; preds = %1830
  %2149 = landingpad { ptr, i32 }
          cleanup
  br label %2152

2150:                                             ; preds = %1831
  %2151 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %189) #10
  br label %2152

2152:                                             ; preds = %2150, %2148
  %.pn1426 = phi { ptr, i32 } [ %2151, %2150 ], [ %2149, %2148 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %189) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %137) #10
  br label %2153

2153:                                             ; preds = %2152, %2146
  %.pn1426.pn = phi { ptr, i32 } [ %.pn1426, %2152 ], [ %2147, %2146 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %183) #10
  br label %2154

2154:                                             ; preds = %2153, %2144
  %.pn1426.pn.pn = phi { ptr, i32 } [ %.pn1426.pn, %2153 ], [ %2145, %2144 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %184) #10
  br label %2155

2155:                                             ; preds = %2154, %2142
  %.pn1426.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn, %2154 ], [ %2143, %2142 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %187) #10
  br label %2156

2156:                                             ; preds = %2155, %2140
  %.pn1426.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn, %2155 ], [ %2141, %2140 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %188) #10
  br label %2157

2157:                                             ; preds = %2156, %2138
  %.pn1426.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn, %2156 ], [ %2139, %2138 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %187) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %185) #10
  br label %2158

2158:                                             ; preds = %2157, %2136
  %.pn1426.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn, %2157 ], [ %2137, %2136 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %186) #10
  br label %2159

2159:                                             ; preds = %2158, %2134
  %.pn1426.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn, %2158 ], [ %2135, %2134 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %184) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %138) #10
  br label %2160

2160:                                             ; preds = %2159, %2132
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn, %2159 ], [ %2133, %2132 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %178) #10
  br label %2161

2161:                                             ; preds = %2160, %2130
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn, %2160 ], [ %2131, %2130 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %179) #10
  br label %2162

2162:                                             ; preds = %2161, %2128
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2161 ], [ %2129, %2128 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %181) #10
  br label %2163

2163:                                             ; preds = %2162, %2126
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2162 ], [ %2127, %2126 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %182) #10
  br label %2164

2164:                                             ; preds = %2163, %2124
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2163 ], [ %2125, %2124 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %181) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %180) #10
  br label %2165

2165:                                             ; preds = %2164, %2122
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2164 ], [ %2123, %2122 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %179) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %139) #10
  br label %2166

2166:                                             ; preds = %2165, %2120
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2165 ], [ %2121, %2120 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %172) #10
  br label %2167

2167:                                             ; preds = %2166, %2118
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2166 ], [ %2119, %2118 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %173) #10
  br label %2168

2168:                                             ; preds = %2167, %2116
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2167 ], [ %2117, %2116 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %176) #10
  br label %2169

2169:                                             ; preds = %2168, %2114
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2168 ], [ %2115, %2114 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %177) #10
  br label %2170

2170:                                             ; preds = %2169, %2112
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2169 ], [ %2113, %2112 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %176) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %174) #10
  br label %2171

2171:                                             ; preds = %2170, %2110
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2170 ], [ %2111, %2110 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %175) #10
  br label %2172

2172:                                             ; preds = %2171, %2108
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2171 ], [ %2109, %2108 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %173) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %140) #10
  br label %2173

2173:                                             ; preds = %2172, %2106
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2172 ], [ %2107, %2106 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %168) #10
  br label %2174

2174:                                             ; preds = %2173, %2104
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2173 ], [ %2105, %2104 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %169) #10
  br label %2175

2175:                                             ; preds = %2174, %2102
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2174 ], [ %2103, %2102 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %170) #10
  br label %2176

2176:                                             ; preds = %2175, %2100
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2175 ], [ %2101, %2100 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %171) #10
  br label %2177

2177:                                             ; preds = %2176, %2098
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2176 ], [ %2099, %2098 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %169) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %141) #10
  br label %2178

2178:                                             ; preds = %2177, %2096
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2177 ], [ %2097, %2096 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %166) #10
  br label %2179

2179:                                             ; preds = %2178, %2094
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2178 ], [ %2095, %2094 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %167) #10
  br label %2180

2180:                                             ; preds = %2179, %2092
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2179 ], [ %2093, %2092 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %167) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %142) #10
  br label %2181

2181:                                             ; preds = %2180, %2090
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2180 ], [ %2091, %2090 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %162) #10
  br label %2182

2182:                                             ; preds = %2181, %2088
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2181 ], [ %2089, %2088 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %163) #10
  br label %2183

2183:                                             ; preds = %2182, %2086
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2182 ], [ %2087, %2086 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %164) #10
  br label %2184

2184:                                             ; preds = %2183, %2084
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2183 ], [ %2085, %2084 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %165) #10
  br label %2185

2185:                                             ; preds = %2184, %2082
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2184 ], [ %2083, %2082 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %163) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %143) #10
  br label %2186

2186:                                             ; preds = %2185, %2080
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2185 ], [ %2081, %2080 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %156) #10
  br label %2187

2187:                                             ; preds = %2186, %2078
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2186 ], [ %2079, %2078 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %157) #10
  br label %2188

2188:                                             ; preds = %2187, %2076
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2187 ], [ %2077, %2076 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %160) #10
  br label %2189

2189:                                             ; preds = %2188, %2074
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2188 ], [ %2075, %2074 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %161) #10
  br label %2190

2190:                                             ; preds = %2189, %2072
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2189 ], [ %2073, %2072 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %160) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %158) #10
  br label %2191

2191:                                             ; preds = %2190, %2070
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2190 ], [ %2071, %2070 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %159) #10
  br label %2192

2192:                                             ; preds = %2191, %2068
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2191 ], [ %2069, %2068 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %157) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %144) #10
  br label %2193

2193:                                             ; preds = %2192, %2066
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2192 ], [ %2067, %2066 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %151) #10
  br label %2194

2194:                                             ; preds = %2193, %2064
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2193 ], [ %2065, %2064 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %152) #10
  br label %2195

2195:                                             ; preds = %2194, %2062
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2194 ], [ %2063, %2062 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %154) #10
  br label %2196

2196:                                             ; preds = %2195, %2060
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2195 ], [ %2061, %2060 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %155) #10
  br label %2197

2197:                                             ; preds = %2196, %2058
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2196 ], [ %2059, %2058 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %154) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %153) #10
  br label %2198

2198:                                             ; preds = %2197, %2056
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2197 ], [ %2057, %2056 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %152) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %145) #10
  br label %2199

2199:                                             ; preds = %2198, %2054
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2198 ], [ %2055, %2054 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %146) #10
  br label %2200

2200:                                             ; preds = %2199, %2052
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2199 ], [ %2053, %2052 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %149) #10
  br label %2201

2201:                                             ; preds = %2200, %2050
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2200 ], [ %2051, %2050 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %150) #10
  br label %2202

2202:                                             ; preds = %2201, %2048
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2201 ], [ %2049, %2048 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %149) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %147) #10
  br label %2203

2203:                                             ; preds = %2202, %2046
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2202 ], [ %2047, %2046 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %148) #10
  br label %2204

2204:                                             ; preds = %2203, %2044
  %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2203 ], [ %2045, %2044 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %146) #10
  br label %2227

2205:                                             ; preds = %1833
  %2206 = landingpad { ptr, i32 }
          cleanup
  br label %2221

2207:                                             ; preds = %1834
  %2208 = landingpad { ptr, i32 }
          cleanup
  br label %2220

2209:                                             ; preds = %1837, %1835
  %2210 = landingpad { ptr, i32 }
          cleanup
  br label %2219

2211:                                             ; preds = %1838
  %2212 = landingpad { ptr, i32 }
          cleanup
  br label %2218

2213:                                             ; preds = %1839
  %2214 = landingpad { ptr, i32 }
          cleanup
  br label %2217

2215:                                             ; preds = %1840
  %2216 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %195) #10
  br label %2217

2217:                                             ; preds = %2215, %2213
  %.pn1480 = phi { ptr, i32 } [ %2216, %2215 ], [ %2214, %2213 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %194) #10
  br label %2218

2218:                                             ; preds = %2217, %2211
  %.pn1480.pn = phi { ptr, i32 } [ %.pn1480, %2217 ], [ %2212, %2211 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #10
  br label %2219

2219:                                             ; preds = %2218, %2209
  %.pn1480.pn.pn = phi { ptr, i32 } [ %.pn1480.pn, %2218 ], [ %2210, %2209 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %192) #10
  br label %2220

2220:                                             ; preds = %2219, %2207
  %.pn1480.pn.pn.pn = phi { ptr, i32 } [ %.pn1480.pn.pn, %2219 ], [ %2208, %2207 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %191) #10
  br label %2221

2221:                                             ; preds = %2220, %2205
  %.pn1480.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1480.pn.pn.pn, %2220 ], [ %2206, %2205 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #10
  br label %2227

2222:                                             ; preds = %1842
  %2223 = landingpad { ptr, i32 }
          cleanup
  br label %2226

2224:                                             ; preds = %1843
  %2225 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %197) #10
  br label %2226

2226:                                             ; preds = %2224, %2222
  %.pn1486 = phi { ptr, i32 } [ %2225, %2224 ], [ %2223, %2222 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %197) #10
  br label %2227

2227:                                             ; preds = %2226, %2221, %2204, %2043, %2001
  %.pn1486.pn = phi { ptr, i32 } [ %.pn1486, %2226 ], [ %.pn1480.pn.pn.pn.pn, %2221 ], [ %2002, %2001 ], [ %.pn1426.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2204 ], [ %.pn1412.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2043 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #10
  br label %2228

2228:                                             ; preds = %2227, %2000
  %.pn1486.pn.pn = phi { ptr, i32 } [ %.pn1486.pn, %2227 ], [ %.pn1410, %2000 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #10
  br label %2229

2229:                                             ; preds = %2228, %1995
  %.pn1486.pn.pn.pn = phi { ptr, i32 } [ %.pn1486.pn.pn, %2228 ], [ %.pn1408, %1995 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #10
  br label %6795

2230:                                             ; preds = %1844
  %2231 = landingpad { ptr, i32 }
          cleanup
  br label %2234

2232:                                             ; preds = %1845
  %2233 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #10
  br label %2234

2234:                                             ; preds = %2232, %2230
  %.pn1491 = phi { ptr, i32 } [ %2233, %2232 ], [ %2231, %2230 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %201) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %200) #10
  br label %2474

2235:                                             ; preds = %1846
  %2236 = landingpad { ptr, i32 }
          cleanup
  br label %2239

2237:                                             ; preds = %1847
  %2238 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #10
  br label %2239

2239:                                             ; preds = %2237, %2235
  %.pn1493 = phi { ptr, i32 } [ %2238, %2237 ], [ %2236, %2235 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %204) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %203) #10
  br label %2473

2240:                                             ; preds = %1848
  %2241 = landingpad { ptr, i32 }
          cleanup
  br label %2244

2242:                                             ; preds = %1849
  %2243 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #10
  br label %2244

2244:                                             ; preds = %2242, %2240
  %.pn1495 = phi { ptr, i32 } [ %2243, %2242 ], [ %2241, %2240 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %207) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %207) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %206) #10
  br label %2472

2245:                                             ; preds = %1919, %1850
  %2246 = landingpad { ptr, i32 }
          cleanup
  br label %2471

2247:                                             ; preds = %1851
  %2248 = landingpad { ptr, i32 }
          cleanup
  br label %2287

2249:                                             ; preds = %1852
  %2250 = landingpad { ptr, i32 }
          cleanup
  br label %2286

2251:                                             ; preds = %1853
  %2252 = landingpad { ptr, i32 }
          cleanup
  br label %2285

2253:                                             ; preds = %1854
  %2254 = landingpad { ptr, i32 }
          cleanup
  br label %2284

2255:                                             ; preds = %1855
  %2256 = landingpad { ptr, i32 }
          cleanup
  br label %2283

2257:                                             ; preds = %1856
  %2258 = landingpad { ptr, i32 }
          cleanup
  br label %2282

2259:                                             ; preds = %1857
  %2260 = landingpad { ptr, i32 }
          cleanup
  br label %2281

2261:                                             ; preds = %1858
  %2262 = landingpad { ptr, i32 }
          cleanup
  br label %2280

2263:                                             ; preds = %1859
  %2264 = landingpad { ptr, i32 }
          cleanup
  br label %2279

2265:                                             ; preds = %1860
  %2266 = landingpad { ptr, i32 }
          cleanup
  br label %2278

2267:                                             ; preds = %1861
  %2268 = landingpad { ptr, i32 }
          cleanup
  br label %2277

2269:                                             ; preds = %1862
  %2270 = landingpad { ptr, i32 }
          cleanup
  br label %2276

2271:                                             ; preds = %1863
  %2272 = landingpad { ptr, i32 }
          cleanup
  br label %2275

2273:                                             ; preds = %1864
  %2274 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %222) #10
  br label %2275

2275:                                             ; preds = %2273, %2271
  %.pn1497 = phi { ptr, i32 } [ %2274, %2273 ], [ %2272, %2271 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %222) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %209) #10
  br label %2276

2276:                                             ; preds = %2275, %2269
  %.pn1497.pn = phi { ptr, i32 } [ %.pn1497, %2275 ], [ %2270, %2269 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %218) #10
  br label %2277

2277:                                             ; preds = %2276, %2267
  %.pn1497.pn.pn = phi { ptr, i32 } [ %.pn1497.pn, %2276 ], [ %2268, %2267 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %220) #10
  br label %2278

2278:                                             ; preds = %2277, %2265
  %.pn1497.pn.pn.pn = phi { ptr, i32 } [ %.pn1497.pn.pn, %2277 ], [ %2266, %2265 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %221) #10
  br label %2279

2279:                                             ; preds = %2278, %2263
  %.pn1497.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1497.pn.pn.pn, %2278 ], [ %2264, %2263 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %219) #10
  br label %2280

2280:                                             ; preds = %2279, %2261
  %.pn1497.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1497.pn.pn.pn.pn, %2279 ], [ %2262, %2261 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %210) #10
  br label %2281

2281:                                             ; preds = %2280, %2259
  %.pn1497.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1497.pn.pn.pn.pn.pn, %2280 ], [ %2260, %2259 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %214) #10
  br label %2282

2282:                                             ; preds = %2281, %2257
  %.pn1497.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1497.pn.pn.pn.pn.pn.pn, %2281 ], [ %2258, %2257 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %216) #10
  br label %2283

2283:                                             ; preds = %2282, %2255
  %.pn1497.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1497.pn.pn.pn.pn.pn.pn.pn, %2282 ], [ %2256, %2255 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %217) #10
  br label %2284

2284:                                             ; preds = %2283, %2253
  %.pn1497.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1497.pn.pn.pn.pn.pn.pn.pn.pn, %2283 ], [ %2254, %2253 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %215) #10
  br label %2285

2285:                                             ; preds = %2284, %2251
  %.pn1497.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1497.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2284 ], [ %2252, %2251 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %211) #10
  br label %2286

2286:                                             ; preds = %2285, %2249
  %.pn1497.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1497.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2285 ], [ %2250, %2249 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %213) #10
  br label %2287

2287:                                             ; preds = %2286, %2247
  %.pn1497.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1497.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2286 ], [ %2248, %2247 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %212) #10
  br label %2471

2288:                                             ; preds = %1865
  %2289 = landingpad { ptr, i32 }
          cleanup
  br label %2448

2290:                                             ; preds = %1866
  %2291 = landingpad { ptr, i32 }
          cleanup
  br label %2447

2292:                                             ; preds = %1867
  %2293 = landingpad { ptr, i32 }
          cleanup
  br label %2446

2294:                                             ; preds = %1868
  %2295 = landingpad { ptr, i32 }
          cleanup
  br label %2445

2296:                                             ; preds = %1869
  %2297 = landingpad { ptr, i32 }
          cleanup
  br label %2444

2298:                                             ; preds = %1870
  %2299 = landingpad { ptr, i32 }
          cleanup
  br label %2443

2300:                                             ; preds = %1871
  %2301 = landingpad { ptr, i32 }
          cleanup
  br label %2442

2302:                                             ; preds = %1872
  %2303 = landingpad { ptr, i32 }
          cleanup
  br label %2441

2304:                                             ; preds = %1873
  %2305 = landingpad { ptr, i32 }
          cleanup
  br label %2440

2306:                                             ; preds = %1874
  %2307 = landingpad { ptr, i32 }
          cleanup
  br label %2439

2308:                                             ; preds = %1875
  %2309 = landingpad { ptr, i32 }
          cleanup
  br label %2438

2310:                                             ; preds = %1876
  %2311 = landingpad { ptr, i32 }
          cleanup
  br label %2437

2312:                                             ; preds = %1877
  %2313 = landingpad { ptr, i32 }
          cleanup
  br label %2436

2314:                                             ; preds = %1878
  %2315 = landingpad { ptr, i32 }
          cleanup
  br label %2435

2316:                                             ; preds = %1879
  %2317 = landingpad { ptr, i32 }
          cleanup
  br label %2434

2318:                                             ; preds = %1880
  %2319 = landingpad { ptr, i32 }
          cleanup
  br label %2433

2320:                                             ; preds = %1881
  %2321 = landingpad { ptr, i32 }
          cleanup
  br label %2432

2322:                                             ; preds = %1882
  %2323 = landingpad { ptr, i32 }
          cleanup
  br label %2431

2324:                                             ; preds = %1883
  %2325 = landingpad { ptr, i32 }
          cleanup
  br label %2430

2326:                                             ; preds = %1884
  %2327 = landingpad { ptr, i32 }
          cleanup
  br label %2429

2328:                                             ; preds = %1885
  %2329 = landingpad { ptr, i32 }
          cleanup
  br label %2428

2330:                                             ; preds = %1886
  %2331 = landingpad { ptr, i32 }
          cleanup
  br label %2427

2332:                                             ; preds = %1887
  %2333 = landingpad { ptr, i32 }
          cleanup
  br label %2426

2334:                                             ; preds = %1888
  %2335 = landingpad { ptr, i32 }
          cleanup
  br label %2425

2336:                                             ; preds = %1889
  %2337 = landingpad { ptr, i32 }
          cleanup
  br label %2424

2338:                                             ; preds = %1890
  %2339 = landingpad { ptr, i32 }
          cleanup
  br label %2423

2340:                                             ; preds = %1891
  %2341 = landingpad { ptr, i32 }
          cleanup
  br label %2422

2342:                                             ; preds = %1892
  %2343 = landingpad { ptr, i32 }
          cleanup
  br label %2421

2344:                                             ; preds = %1893
  %2345 = landingpad { ptr, i32 }
          cleanup
  br label %2420

2346:                                             ; preds = %1894
  %2347 = landingpad { ptr, i32 }
          cleanup
  br label %2419

2348:                                             ; preds = %1895
  %2349 = landingpad { ptr, i32 }
          cleanup
  br label %2418

2350:                                             ; preds = %1896
  %2351 = landingpad { ptr, i32 }
          cleanup
  br label %2417

2352:                                             ; preds = %1897
  %2353 = landingpad { ptr, i32 }
          cleanup
  br label %2416

2354:                                             ; preds = %1898
  %2355 = landingpad { ptr, i32 }
          cleanup
  br label %2415

2356:                                             ; preds = %1899
  %2357 = landingpad { ptr, i32 }
          cleanup
  br label %2414

2358:                                             ; preds = %1900
  %2359 = landingpad { ptr, i32 }
          cleanup
  br label %2413

2360:                                             ; preds = %1901
  %2361 = landingpad { ptr, i32 }
          cleanup
  br label %2412

2362:                                             ; preds = %1902
  %2363 = landingpad { ptr, i32 }
          cleanup
  br label %2411

2364:                                             ; preds = %1903
  %2365 = landingpad { ptr, i32 }
          cleanup
  br label %2410

2366:                                             ; preds = %1904
  %2367 = landingpad { ptr, i32 }
          cleanup
  br label %2409

2368:                                             ; preds = %1905
  %2369 = landingpad { ptr, i32 }
          cleanup
  br label %2408

2370:                                             ; preds = %1906
  %2371 = landingpad { ptr, i32 }
          cleanup
  br label %2407

2372:                                             ; preds = %1907
  %2373 = landingpad { ptr, i32 }
          cleanup
  br label %2406

2374:                                             ; preds = %1908
  %2375 = landingpad { ptr, i32 }
          cleanup
  br label %2405

2376:                                             ; preds = %1909
  %2377 = landingpad { ptr, i32 }
          cleanup
  br label %2404

2378:                                             ; preds = %1910
  %2379 = landingpad { ptr, i32 }
          cleanup
  br label %2403

2380:                                             ; preds = %1911
  %2381 = landingpad { ptr, i32 }
          cleanup
  br label %2402

2382:                                             ; preds = %1912
  %2383 = landingpad { ptr, i32 }
          cleanup
  br label %2401

2384:                                             ; preds = %1913
  %2385 = landingpad { ptr, i32 }
          cleanup
  br label %2400

2386:                                             ; preds = %1914
  %2387 = landingpad { ptr, i32 }
          cleanup
  br label %2399

2388:                                             ; preds = %1915
  %2389 = landingpad { ptr, i32 }
          cleanup
  br label %2398

2390:                                             ; preds = %1916
  %2391 = landingpad { ptr, i32 }
          cleanup
  br label %2397

2392:                                             ; preds = %1917
  %2393 = landingpad { ptr, i32 }
          cleanup
  br label %2396

2394:                                             ; preds = %1918
  %2395 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %276) #10
  br label %2396

2396:                                             ; preds = %2394, %2392
  %.pn1511 = phi { ptr, i32 } [ %2395, %2394 ], [ %2393, %2392 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %276) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %224) #10
  br label %2397

2397:                                             ; preds = %2396, %2390
  %.pn1511.pn = phi { ptr, i32 } [ %.pn1511, %2396 ], [ %2391, %2390 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %270) #10
  br label %2398

2398:                                             ; preds = %2397, %2388
  %.pn1511.pn.pn = phi { ptr, i32 } [ %.pn1511.pn, %2397 ], [ %2389, %2388 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %271) #10
  br label %2399

2399:                                             ; preds = %2398, %2386
  %.pn1511.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn, %2398 ], [ %2387, %2386 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %274) #10
  br label %2400

2400:                                             ; preds = %2399, %2384
  %.pn1511.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn, %2399 ], [ %2385, %2384 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %275) #10
  br label %2401

2401:                                             ; preds = %2400, %2382
  %.pn1511.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn, %2400 ], [ %2383, %2382 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %274) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %272) #10
  br label %2402

2402:                                             ; preds = %2401, %2380
  %.pn1511.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn, %2401 ], [ %2381, %2380 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %273) #10
  br label %2403

2403:                                             ; preds = %2402, %2378
  %.pn1511.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn, %2402 ], [ %2379, %2378 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %271) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %225) #10
  br label %2404

2404:                                             ; preds = %2403, %2376
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn, %2403 ], [ %2377, %2376 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %265) #10
  br label %2405

2405:                                             ; preds = %2404, %2374
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn, %2404 ], [ %2375, %2374 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %266) #10
  br label %2406

2406:                                             ; preds = %2405, %2372
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2405 ], [ %2373, %2372 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %268) #10
  br label %2407

2407:                                             ; preds = %2406, %2370
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2406 ], [ %2371, %2370 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %269) #10
  br label %2408

2408:                                             ; preds = %2407, %2368
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2407 ], [ %2369, %2368 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %268) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %267) #10
  br label %2409

2409:                                             ; preds = %2408, %2366
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2408 ], [ %2367, %2366 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %266) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %226) #10
  br label %2410

2410:                                             ; preds = %2409, %2364
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2409 ], [ %2365, %2364 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %259) #10
  br label %2411

2411:                                             ; preds = %2410, %2362
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2410 ], [ %2363, %2362 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %260) #10
  br label %2412

2412:                                             ; preds = %2411, %2360
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2411 ], [ %2361, %2360 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %263) #10
  br label %2413

2413:                                             ; preds = %2412, %2358
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2412 ], [ %2359, %2358 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %264) #10
  br label %2414

2414:                                             ; preds = %2413, %2356
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2413 ], [ %2357, %2356 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %263) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %261) #10
  br label %2415

2415:                                             ; preds = %2414, %2354
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2414 ], [ %2355, %2354 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %262) #10
  br label %2416

2416:                                             ; preds = %2415, %2352
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2415 ], [ %2353, %2352 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %260) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %227) #10
  br label %2417

2417:                                             ; preds = %2416, %2350
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2416 ], [ %2351, %2350 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %255) #10
  br label %2418

2418:                                             ; preds = %2417, %2348
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2417 ], [ %2349, %2348 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %256) #10
  br label %2419

2419:                                             ; preds = %2418, %2346
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2418 ], [ %2347, %2346 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %257) #10
  br label %2420

2420:                                             ; preds = %2419, %2344
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2419 ], [ %2345, %2344 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %258) #10
  br label %2421

2421:                                             ; preds = %2420, %2342
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2420 ], [ %2343, %2342 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %256) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %228) #10
  br label %2422

2422:                                             ; preds = %2421, %2340
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2421 ], [ %2341, %2340 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %253) #10
  br label %2423

2423:                                             ; preds = %2422, %2338
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2422 ], [ %2339, %2338 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %254) #10
  br label %2424

2424:                                             ; preds = %2423, %2336
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2423 ], [ %2337, %2336 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %254) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %229) #10
  br label %2425

2425:                                             ; preds = %2424, %2334
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2424 ], [ %2335, %2334 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %249) #10
  br label %2426

2426:                                             ; preds = %2425, %2332
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2425 ], [ %2333, %2332 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %250) #10
  br label %2427

2427:                                             ; preds = %2426, %2330
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2426 ], [ %2331, %2330 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %251) #10
  br label %2428

2428:                                             ; preds = %2427, %2328
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2427 ], [ %2329, %2328 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %252) #10
  br label %2429

2429:                                             ; preds = %2428, %2326
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2428 ], [ %2327, %2326 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %250) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %230) #10
  br label %2430

2430:                                             ; preds = %2429, %2324
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2429 ], [ %2325, %2324 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %243) #10
  br label %2431

2431:                                             ; preds = %2430, %2322
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2430 ], [ %2323, %2322 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %244) #10
  br label %2432

2432:                                             ; preds = %2431, %2320
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2431 ], [ %2321, %2320 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %247) #10
  br label %2433

2433:                                             ; preds = %2432, %2318
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2432 ], [ %2319, %2318 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %248) #10
  br label %2434

2434:                                             ; preds = %2433, %2316
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2433 ], [ %2317, %2316 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %247) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %245) #10
  br label %2435

2435:                                             ; preds = %2434, %2314
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2434 ], [ %2315, %2314 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %246) #10
  br label %2436

2436:                                             ; preds = %2435, %2312
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2435 ], [ %2313, %2312 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %244) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %231) #10
  br label %2437

2437:                                             ; preds = %2436, %2310
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2436 ], [ %2311, %2310 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %238) #10
  br label %2438

2438:                                             ; preds = %2437, %2308
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2437 ], [ %2309, %2308 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %239) #10
  br label %2439

2439:                                             ; preds = %2438, %2306
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2438 ], [ %2307, %2306 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %241) #10
  br label %2440

2440:                                             ; preds = %2439, %2304
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2439 ], [ %2305, %2304 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %242) #10
  br label %2441

2441:                                             ; preds = %2440, %2302
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2440 ], [ %2303, %2302 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %241) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %240) #10
  br label %2442

2442:                                             ; preds = %2441, %2300
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2441 ], [ %2301, %2300 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %239) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %232) #10
  br label %2443

2443:                                             ; preds = %2442, %2298
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2442 ], [ %2299, %2298 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %233) #10
  br label %2444

2444:                                             ; preds = %2443, %2296
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2443 ], [ %2297, %2296 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %236) #10
  br label %2445

2445:                                             ; preds = %2444, %2294
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2444 ], [ %2295, %2294 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %237) #10
  br label %2446

2446:                                             ; preds = %2445, %2292
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2445 ], [ %2293, %2292 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %236) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %234) #10
  br label %2447

2447:                                             ; preds = %2446, %2290
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2446 ], [ %2291, %2290 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %235) #10
  br label %2448

2448:                                             ; preds = %2447, %2288
  %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2447 ], [ %2289, %2288 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %233) #10
  br label %2471

2449:                                             ; preds = %1920
  %2450 = landingpad { ptr, i32 }
          cleanup
  br label %2465

2451:                                             ; preds = %1921
  %2452 = landingpad { ptr, i32 }
          cleanup
  br label %2464

2453:                                             ; preds = %1924, %1922
  %2454 = landingpad { ptr, i32 }
          cleanup
  br label %2463

2455:                                             ; preds = %1925
  %2456 = landingpad { ptr, i32 }
          cleanup
  br label %2462

2457:                                             ; preds = %1926
  %2458 = landingpad { ptr, i32 }
          cleanup
  br label %2461

2459:                                             ; preds = %1927
  %2460 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %282) #10
  br label %2461

2461:                                             ; preds = %2459, %2457
  %.pn1565 = phi { ptr, i32 } [ %2460, %2459 ], [ %2458, %2457 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %281) #10
  br label %2462

2462:                                             ; preds = %2461, %2455
  %.pn1565.pn = phi { ptr, i32 } [ %.pn1565, %2461 ], [ %2456, %2455 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %280) #10
  br label %2463

2463:                                             ; preds = %2462, %2453
  %.pn1565.pn.pn = phi { ptr, i32 } [ %.pn1565.pn, %2462 ], [ %2454, %2453 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %279) #10
  br label %2464

2464:                                             ; preds = %2463, %2451
  %.pn1565.pn.pn.pn = phi { ptr, i32 } [ %.pn1565.pn.pn, %2463 ], [ %2452, %2451 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %278) #10
  br label %2465

2465:                                             ; preds = %2464, %2449
  %.pn1565.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1565.pn.pn.pn, %2464 ], [ %2450, %2449 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #10
  br label %2471

2466:                                             ; preds = %1929
  %2467 = landingpad { ptr, i32 }
          cleanup
  br label %2470

2468:                                             ; preds = %1930
  %2469 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %284) #10
  br label %2470

2470:                                             ; preds = %2468, %2466
  %.pn1571 = phi { ptr, i32 } [ %2469, %2468 ], [ %2467, %2466 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %285) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %284) #10
  br label %2471

2471:                                             ; preds = %2470, %2465, %2448, %2287, %2245
  %.pn1571.pn = phi { ptr, i32 } [ %.pn1571, %2470 ], [ %.pn1565.pn.pn.pn.pn, %2465 ], [ %2246, %2245 ], [ %.pn1511.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2448 ], [ %.pn1497.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2287 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #10
  br label %2472

2472:                                             ; preds = %2471, %2244
  %.pn1571.pn.pn = phi { ptr, i32 } [ %.pn1571.pn, %2471 ], [ %.pn1495, %2244 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %205) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #10
  br label %2473

2473:                                             ; preds = %2472, %2239
  %.pn1571.pn.pn.pn = phi { ptr, i32 } [ %.pn1571.pn.pn, %2472 ], [ %.pn1493, %2239 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %202) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #10
  br label %2474

2474:                                             ; preds = %2473, %2234
  %.pn1571.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1571.pn.pn.pn, %2473 ], [ %.pn1491, %2234 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %199) #10
  br label %6795

2475:                                             ; preds = %1931
  %lpad.thr_comm.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

.preheader2757.preheader:                         ; preds = %1932, %1933, %1934, %1935, %1936, %1937, %1938
  %.ptr.lcssa.ph = phi ptr [ %.ptr.7, %1938 ], [ %.ptr.6, %1937 ], [ %.ptr.5, %1936 ], [ %.ptr.4, %1935 ], [ %.ptr.3, %1934 ], [ %.ptr.2, %1933 ], [ %.ptr.1, %1932 ]
  %lpad.thr_comm = landingpad { ptr, i32 }
          cleanup
  br label %.preheader2757

.preheader2757:                                   ; preds = %.preheader2757.preheader, %.preheader2757
  %2476 = phi ptr [ %2477, %.preheader2757 ], [ %.ptr.lcssa.ph, %.preheader2757.preheader ]
  %2477 = getelementptr inbounds i8, ptr %2476, i64 -32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2477) #10
  %2478 = icmp eq ptr %2477, %286
  br i1 %2478, label %.loopexit, label %.preheader2757

2479:                                             ; preds = %1955, %1939
  %2480 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.loopexit

2481:                                             ; preds = %1940
  %2482 = landingpad { ptr, i32 }
          cleanup
  br label %2521

2483:                                             ; preds = %1941
  %2484 = landingpad { ptr, i32 }
          cleanup
  br label %2520

2485:                                             ; preds = %1942
  %2486 = landingpad { ptr, i32 }
          cleanup
  br label %2519

2487:                                             ; preds = %1943
  %2488 = landingpad { ptr, i32 }
          cleanup
  br label %2518

2489:                                             ; preds = %1944
  %2490 = landingpad { ptr, i32 }
          cleanup
  br label %2517

2491:                                             ; preds = %1945
  %2492 = landingpad { ptr, i32 }
          cleanup
  br label %2516

2493:                                             ; preds = %1946
  %2494 = landingpad { ptr, i32 }
          cleanup
  br label %2515

2495:                                             ; preds = %1947
  %2496 = landingpad { ptr, i32 }
          cleanup
  br label %2514

2497:                                             ; preds = %1948
  %2498 = landingpad { ptr, i32 }
          cleanup
  br label %2513

2499:                                             ; preds = %1949
  %2500 = landingpad { ptr, i32 }
          cleanup
  br label %2512

2501:                                             ; preds = %1950
  %2502 = landingpad { ptr, i32 }
          cleanup
  br label %2511

2503:                                             ; preds = %1951
  %2504 = landingpad { ptr, i32 }
          cleanup
  br label %2510

2505:                                             ; preds = %1952
  %2506 = landingpad { ptr, i32 }
          cleanup
  br label %2509

2507:                                             ; preds = %1953
  %2508 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %301) #10
  br label %2509

2509:                                             ; preds = %2507, %2505
  %.pn1578 = phi { ptr, i32 } [ %2508, %2507 ], [ %2506, %2505 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %301) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %288) #10
  br label %2510

2510:                                             ; preds = %2509, %2503
  %.pn1578.pn = phi { ptr, i32 } [ %.pn1578, %2509 ], [ %2504, %2503 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %297) #10
  br label %2511

2511:                                             ; preds = %2510, %2501
  %.pn1578.pn.pn = phi { ptr, i32 } [ %.pn1578.pn, %2510 ], [ %2502, %2501 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %299) #10
  br label %2512

2512:                                             ; preds = %2511, %2499
  %.pn1578.pn.pn.pn = phi { ptr, i32 } [ %.pn1578.pn.pn, %2511 ], [ %2500, %2499 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %300) #10
  br label %2513

2513:                                             ; preds = %2512, %2497
  %.pn1578.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1578.pn.pn.pn, %2512 ], [ %2498, %2497 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %298) #10
  br label %2514

2514:                                             ; preds = %2513, %2495
  %.pn1578.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1578.pn.pn.pn.pn, %2513 ], [ %2496, %2495 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %289) #10
  br label %2515

2515:                                             ; preds = %2514, %2493
  %.pn1578.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1578.pn.pn.pn.pn.pn, %2514 ], [ %2494, %2493 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %293) #10
  br label %2516

2516:                                             ; preds = %2515, %2491
  %.pn1578.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1578.pn.pn.pn.pn.pn.pn, %2515 ], [ %2492, %2491 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %295) #10
  br label %2517

2517:                                             ; preds = %2516, %2489
  %.pn1578.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1578.pn.pn.pn.pn.pn.pn.pn, %2516 ], [ %2490, %2489 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %296) #10
  br label %2518

2518:                                             ; preds = %2517, %2487
  %.pn1578.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1578.pn.pn.pn.pn.pn.pn.pn.pn, %2517 ], [ %2488, %2487 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %294) #10
  br label %2519

2519:                                             ; preds = %2518, %2485
  %.pn1578.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1578.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2518 ], [ %2486, %2485 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %290) #10
  br label %2520

2520:                                             ; preds = %2519, %2483
  %.pn1578.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1578.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2519 ], [ %2484, %2483 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %292) #10
  br label %2521

2521:                                             ; preds = %2520, %2481
  %.pn1578.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1578.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2520 ], [ %2482, %2481 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %291) #10
  br label %.loopexit.loopexit

2522:                                             ; preds = %1954, %2591
  %indvars.iv = phi i64 [ 1, %1954 ], [ %indvars.iv.next, %2591 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %302) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %302, i32 noundef 0)
          to label %.preheader2756 unwind label %2527

.preheader2756:                                   ; preds = %2522
  %2523 = add nsw i64 %indvars.iv, -1
  %2524 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %286, i64 0, i64 %2523
  br label %.preheader2755

.preheader2755:                                   ; preds = %.preheader2756, %2568
  %.012702785 = phi i32 [ -2, %.preheader2756 ], [ %2569, %2568 ]
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %304) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %306, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2529 unwind label %2570

2525:                                             ; preds = %2568
  call void @_ZN6Halide4ExprC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %310, ptr noundef nonnull align 8 dereferenceable(8) %302) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %311) #10
  %2526 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %286, i64 0, i64 %indvars.iv
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %311, ptr noundef nonnull align 8 dereferenceable(32) %2526, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2590 unwind label %2592

2527:                                             ; preds = %2522
  %2528 = landingpad { ptr, i32 }
          cleanup
  br label %2598

2529:                                             ; preds = %.preheader2755
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %305, ptr noundef nonnull %306, i32 noundef -2)
          to label %2530 unwind label %2572

2530:                                             ; preds = %2529
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %307) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %308, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2531 unwind label %2574

2531:                                             ; preds = %2530
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %307, ptr noundef nonnull %308, i32 noundef %.012702785)
          to label %2532 unwind label %2576

2532:                                             ; preds = %2531
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %304, ptr noundef nonnull align 8 dereferenceable(32) %2524, ptr noundef nonnull %305, ptr noundef nonnull align 8 dereferenceable(8) %307)
          to label %2533 unwind label %2578

2533:                                             ; preds = %2532
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %303, ptr noundef nonnull align 8 dereferenceable(56) %304)
          to label %2534 unwind label %2580

2534:                                             ; preds = %2533
  %2535 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %302, ptr noundef nonnull %303)
          to label %2536 unwind label %2582

2536:                                             ; preds = %2534
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %303) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %304) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %307) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %308) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %307) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %305) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %306) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %304) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %304) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %306, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2537 unwind label %2570

2537:                                             ; preds = %2536
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %305, ptr noundef nonnull %306, i32 noundef -1)
          to label %2538 unwind label %2572

2538:                                             ; preds = %2537
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %307) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %308, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2539 unwind label %2574

2539:                                             ; preds = %2538
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %307, ptr noundef nonnull %308, i32 noundef %.012702785)
          to label %2540 unwind label %2576

2540:                                             ; preds = %2539
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %304, ptr noundef nonnull align 8 dereferenceable(32) %2524, ptr noundef nonnull %305, ptr noundef nonnull align 8 dereferenceable(8) %307)
          to label %2541 unwind label %2578

2541:                                             ; preds = %2540
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %303, ptr noundef nonnull align 8 dereferenceable(56) %304)
          to label %2542 unwind label %2580

2542:                                             ; preds = %2541
  %2543 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %302, ptr noundef nonnull %303)
          to label %2544 unwind label %2582

2544:                                             ; preds = %2542
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %303) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %304) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %307) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %308) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %307) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %305) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %306) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %304) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %304) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %306, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2545 unwind label %2570

2545:                                             ; preds = %2544
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %305, ptr noundef nonnull %306, i32 noundef 0)
          to label %2546 unwind label %2572

2546:                                             ; preds = %2545
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %307) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %308, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2547 unwind label %2574

2547:                                             ; preds = %2546
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %307, ptr noundef nonnull %308, i32 noundef %.012702785)
          to label %2548 unwind label %2576

2548:                                             ; preds = %2547
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %304, ptr noundef nonnull align 8 dereferenceable(32) %2524, ptr noundef nonnull %305, ptr noundef nonnull align 8 dereferenceable(8) %307)
          to label %2549 unwind label %2578

2549:                                             ; preds = %2548
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %303, ptr noundef nonnull align 8 dereferenceable(56) %304)
          to label %2550 unwind label %2580

2550:                                             ; preds = %2549
  %2551 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %302, ptr noundef nonnull %303)
          to label %2552 unwind label %2582

2552:                                             ; preds = %2550
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %303) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %304) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %307) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %308) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %307) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %305) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %306) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %304) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %304) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %306, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2553 unwind label %2570

2553:                                             ; preds = %2552
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %305, ptr noundef nonnull %306, i32 noundef 1)
          to label %2554 unwind label %2572

2554:                                             ; preds = %2553
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %307) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %308, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2555 unwind label %2574

2555:                                             ; preds = %2554
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %307, ptr noundef nonnull %308, i32 noundef %.012702785)
          to label %2556 unwind label %2576

2556:                                             ; preds = %2555
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %304, ptr noundef nonnull align 8 dereferenceable(32) %2524, ptr noundef nonnull %305, ptr noundef nonnull align 8 dereferenceable(8) %307)
          to label %2557 unwind label %2578

2557:                                             ; preds = %2556
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %303, ptr noundef nonnull align 8 dereferenceable(56) %304)
          to label %2558 unwind label %2580

2558:                                             ; preds = %2557
  %2559 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %302, ptr noundef nonnull %303)
          to label %2560 unwind label %2582

2560:                                             ; preds = %2558
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %303) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %304) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %307) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %308) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %307) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %305) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %306) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %304) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %304) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %306, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2561 unwind label %2570

2561:                                             ; preds = %2560
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %305, ptr noundef nonnull %306, i32 noundef 2)
          to label %2562 unwind label %2572

2562:                                             ; preds = %2561
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %307) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %308, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2563 unwind label %2574

2563:                                             ; preds = %2562
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %307, ptr noundef nonnull %308, i32 noundef %.012702785)
          to label %2564 unwind label %2576

2564:                                             ; preds = %2563
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %304, ptr noundef nonnull align 8 dereferenceable(32) %2524, ptr noundef nonnull %305, ptr noundef nonnull align 8 dereferenceable(8) %307)
          to label %2565 unwind label %2578

2565:                                             ; preds = %2564
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %303, ptr noundef nonnull align 8 dereferenceable(56) %304)
          to label %2566 unwind label %2580

2566:                                             ; preds = %2565
  %2567 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %302, ptr noundef nonnull %303)
          to label %2568 unwind label %2582

2568:                                             ; preds = %2566
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %303) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %304) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %307) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %308) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %307) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %305) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %306) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %304) #10
  %2569 = add nsw i32 %.012702785, 1
  %exitcond2828.not = icmp eq i32 %2569, 3
  br i1 %exitcond2828.not, label %2525, label %.preheader2755, !llvm.loop !12

2570:                                             ; preds = %2560, %2552, %2544, %2536, %.preheader2755
  %2571 = landingpad { ptr, i32 }
          cleanup
  br label %2589

2572:                                             ; preds = %2561, %2553, %2545, %2537, %2529
  %2573 = landingpad { ptr, i32 }
          cleanup
  br label %2588

2574:                                             ; preds = %2562, %2554, %2546, %2538, %2530
  %2575 = landingpad { ptr, i32 }
          cleanup
  br label %2587

2576:                                             ; preds = %2563, %2555, %2547, %2539, %2531
  %2577 = landingpad { ptr, i32 }
          cleanup
  br label %2586

2578:                                             ; preds = %2564, %2556, %2548, %2540, %2532
  %2579 = landingpad { ptr, i32 }
          cleanup
  br label %2585

2580:                                             ; preds = %2565, %2557, %2549, %2541, %2533
  %2581 = landingpad { ptr, i32 }
          cleanup
  br label %2584

2582:                                             ; preds = %2566, %2558, %2550, %2542, %2534
  %2583 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %303) #10
  br label %2584

2584:                                             ; preds = %2582, %2580
  %.pn2680 = phi { ptr, i32 } [ %2583, %2582 ], [ %2581, %2580 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %304) #10
  br label %2585

2585:                                             ; preds = %2584, %2578
  %.pn2680.pn = phi { ptr, i32 } [ %.pn2680, %2584 ], [ %2579, %2578 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %307) #10
  br label %2586

2586:                                             ; preds = %2585, %2576
  %.pn2680.pn.pn = phi { ptr, i32 } [ %.pn2680.pn, %2585 ], [ %2577, %2576 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %308) #10
  br label %2587

2587:                                             ; preds = %2586, %2574
  %.pn2680.pn.pn.pn = phi { ptr, i32 } [ %.pn2680.pn.pn, %2586 ], [ %2575, %2574 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %307) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %305) #10
  br label %2588

2588:                                             ; preds = %2587, %2572
  %.pn2680.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2680.pn.pn.pn, %2587 ], [ %2573, %2572 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %306) #10
  br label %2589

2589:                                             ; preds = %2588, %2570
  %.pn2680.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2680.pn.pn.pn.pn, %2588 ], [ %2571, %2570 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %304) #10
  br label %2597

2590:                                             ; preds = %2525
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %309, ptr noundef nonnull align 8 dereferenceable(56) %311, ptr noundef nonnull %310)
          to label %2591 unwind label %2594

2591:                                             ; preds = %2590
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %309) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %311) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %311) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %310) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %302) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %302) #10
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond2830.not = icmp eq i64 %indvars.iv.next, 8
  br i1 %exitcond2830.not, label %1955, label %2522, !llvm.loop !13

2592:                                             ; preds = %2525
  %2593 = landingpad { ptr, i32 }
          cleanup
  br label %2596

2594:                                             ; preds = %2590
  %2595 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %311) #10
  br label %2596

2596:                                             ; preds = %2594, %2592
  %.pn2678 = phi { ptr, i32 } [ %2595, %2594 ], [ %2593, %2592 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %311) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %310) #10
  br label %2597

2597:                                             ; preds = %2596, %2589
  %.pn2680.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2680.pn.pn.pn.pn.pn, %2589 ], [ %.pn2678, %2596 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %302) #10
  br label %2598

2598:                                             ; preds = %2597, %2527
  %.pn2680.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2680.pn.pn.pn.pn.pn.pn, %2597 ], [ %2528, %2527 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %302) #10
  br label %.loopexit.loopexit

2599:                                             ; preds = %1955
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %313, i32 noundef 0)
          to label %2600 unwind label %2651

2600:                                             ; preds = %2599
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %314, i32 noundef 2048)
          to label %2601 unwind label %2653

2601:                                             ; preds = %2600
  %2602 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %.ptr.7, ptr noundef nonnull %312, ptr noundef nonnull %313, ptr noundef nonnull %314)
          to label %2603 unwind label %2655

2603:                                             ; preds = %2601
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %315, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2604 unwind label %2655

2604:                                             ; preds = %2603
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %316, i32 noundef 0)
          to label %2605 unwind label %2657

2605:                                             ; preds = %2604
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %317, i32 noundef 2048)
          to label %2606 unwind label %2659

2606:                                             ; preds = %2605
  %2607 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %2602, ptr noundef nonnull %315, ptr noundef nonnull %316, ptr noundef nonnull %317)
          to label %2608 unwind label %2661

2608:                                             ; preds = %2606
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %317) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %316) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %315) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %314) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %313) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %312) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %319) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %320, ptr noundef nonnull align 8 dereferenceable(32) %.ptr.7) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %319, ptr noundef nonnull %320)
          to label %2609 unwind label %2668

2609:                                             ; preds = %2608
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %318, ptr noundef nonnull align 8 dereferenceable(8) %319, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %2610 unwind label %2670

2610:                                             ; preds = %2609
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %318) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %319) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %320) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %319) #10
  %2611 = getelementptr inbounds i8, ptr %286, i64 224
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2611) #10
  %2612 = getelementptr inbounds i8, ptr %286, i64 192
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2612) #10
  %2613 = getelementptr inbounds i8, ptr %286, i64 160
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2613) #10
  %2614 = getelementptr inbounds i8, ptr %286, i64 128
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2614) #10
  %2615 = getelementptr inbounds i8, ptr %286, i64 96
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2615) #10
  %2616 = getelementptr inbounds i8, ptr %286, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2616) #10
  %2617 = getelementptr inbounds i8, ptr %286, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2617) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %286) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %286) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %321) #10
  invoke void @_ZN6Halide6BufferIfEC2IJEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %321, i32 noundef 2048)
          to label %2618 unwind label %2680

2618:                                             ; preds = %2610
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %322) #10
  invoke void @_ZN6Halide6BufferIfEC2IJEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %322, i32 noundef 2048)
          to label %2619 unwind label %2682

2619:                                             ; preds = %2618
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %323) #10
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %323)
          to label %2620 unwind label %2684

2620:                                             ; preds = %2619
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %327, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2621 unwind label %2686

2621:                                             ; preds = %2620
  invoke void @_ZNK6Halide6BufferIfEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %326, ptr noundef nonnull align 8 dereferenceable(16) %321, ptr noundef nonnull %327)
          to label %2622 unwind label %2688

2622:                                             ; preds = %2621
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %329, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2623 unwind label %2690

2623:                                             ; preds = %2622
  invoke void @_ZNK6Halide6BufferIfEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %328, ptr noundef nonnull align 8 dereferenceable(16) %322, ptr noundef nonnull %329)
          to label %2624 unwind label %2692

2624:                                             ; preds = %2623
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %325, ptr noundef nonnull %326, ptr noundef nonnull %328)
          to label %2625 unwind label %2694

2625:                                             ; preds = %2624
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %330) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %330, ptr noundef nonnull align 8 dereferenceable(32) %323, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2626 unwind label %2696

2626:                                             ; preds = %2625
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %324, ptr noundef nonnull align 8 dereferenceable(56) %330, ptr noundef nonnull %325)
          to label %2627 unwind label %2698

2627:                                             ; preds = %2626
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %324) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %330) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %330) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %325) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %328) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %329) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %326) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %327) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %331, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2628 unwind label %2686

2628:                                             ; preds = %2627
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %332, i32 noundef 0)
          to label %2629 unwind label %2705

2629:                                             ; preds = %2628
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %333, i32 noundef 2048)
          to label %2630 unwind label %2707

2630:                                             ; preds = %2629
  %2631 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %323, ptr noundef nonnull %331, ptr noundef nonnull %332, ptr noundef nonnull %333)
          to label %2632 unwind label %2709

2632:                                             ; preds = %2630
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %334, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2633 unwind label %2709

2633:                                             ; preds = %2632
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %335, i32 noundef 0)
          to label %2634 unwind label %2711

2634:                                             ; preds = %2633
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %336, i32 noundef 2048)
          to label %2635 unwind label %2713

2635:                                             ; preds = %2634
  %2636 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %2631, ptr noundef nonnull %334, ptr noundef nonnull %335, ptr noundef nonnull %336)
          to label %2637 unwind label %2715

2637:                                             ; preds = %2635
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %336) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %335) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %334) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %333) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %332) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %338) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef nonnull align 8 dereferenceable(32) %323) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %338, ptr noundef nonnull %339)
          to label %2638 unwind label %2722

2638:                                             ; preds = %2637
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %337, ptr noundef nonnull align 8 dereferenceable(8) %338, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %2639 unwind label %2724

2639:                                             ; preds = %2638
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %337) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %338) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %338) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %323) #10
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %322) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %322) #10
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %321) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %321) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %340) #10
  invoke void @_ZN6Halide6BufferIfEC2IJiEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %340, i32 noundef 2048, i32 noundef 2048)
          to label %2640 unwind label %2731

2640:                                             ; preds = %2639
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %341) #10
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %341)
          to label %2641 unwind label %2733

2641:                                             ; preds = %2640
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %342) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %343) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %344)
          to label %2642 unwind label %2735

2642:                                             ; preds = %2641
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull align 8 dereferenceable(32) %343)
          to label %2643 unwind label %2737

2643:                                             ; preds = %2642
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %343) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %344) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %344) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %343) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %345) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %346) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %347) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %347) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %346, ptr noundef nonnull @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %347)
          to label %2644 unwind label %2740

2644:                                             ; preds = %2643
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef nonnull align 8 dereferenceable(32) %346)
          to label %2645 unwind label %2742

2645:                                             ; preds = %2644
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %346) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %347) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %347) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %346) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %348) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %349) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %350)
          to label %2646 unwind label %2745

2646:                                             ; preds = %2645
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %348, ptr noundef nonnull align 8 dereferenceable(32) %349)
          to label %2647 unwind label %2747

2647:                                             ; preds = %2646
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %349) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %350) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %350) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %349) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %351) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %352) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %353) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %353) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %352, ptr noundef nonnull @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %353)
          to label %2648 unwind label %2750

2648:                                             ; preds = %2647
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %351, ptr noundef nonnull align 8 dereferenceable(32) %352)
          to label %2649 unwind label %2752

2649:                                             ; preds = %2648
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %352) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %353) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %353) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %352) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %354) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %354, i32 noundef 0)
          to label %.preheader2754 unwind label %2755

2650:                                             ; preds = %2761
  call void @_ZN6Halide4ExprC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %358, ptr noundef nonnull align 8 dereferenceable(8) %354) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %359) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %359, ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2769 unwind label %2948

2651:                                             ; preds = %2599
  %2652 = landingpad { ptr, i32 }
          cleanup
  br label %2667

2653:                                             ; preds = %2600
  %2654 = landingpad { ptr, i32 }
          cleanup
  br label %2666

2655:                                             ; preds = %2603, %2601
  %2656 = landingpad { ptr, i32 }
          cleanup
  br label %2665

2657:                                             ; preds = %2604
  %2658 = landingpad { ptr, i32 }
          cleanup
  br label %2664

2659:                                             ; preds = %2605
  %2660 = landingpad { ptr, i32 }
          cleanup
  br label %2663

2661:                                             ; preds = %2606
  %2662 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %317) #10
  br label %2663

2663:                                             ; preds = %2661, %2659
  %.pn1592 = phi { ptr, i32 } [ %2662, %2661 ], [ %2660, %2659 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %316) #10
  br label %2664

2664:                                             ; preds = %2663, %2657
  %.pn1592.pn = phi { ptr, i32 } [ %.pn1592, %2663 ], [ %2658, %2657 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %315) #10
  br label %2665

2665:                                             ; preds = %2664, %2655
  %.pn1592.pn.pn = phi { ptr, i32 } [ %.pn1592.pn, %2664 ], [ %2656, %2655 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %314) #10
  br label %2666

2666:                                             ; preds = %2665, %2653
  %.pn1592.pn.pn.pn = phi { ptr, i32 } [ %.pn1592.pn.pn, %2665 ], [ %2654, %2653 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %313) #10
  br label %2667

2667:                                             ; preds = %2666, %2651
  %.pn1592.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1592.pn.pn.pn, %2666 ], [ %2652, %2651 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %312) #10
  br label %.loopexit.loopexit

2668:                                             ; preds = %2608
  %2669 = landingpad { ptr, i32 }
          cleanup
  br label %2672

2670:                                             ; preds = %2609
  %2671 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %319) #10
  br label %2672

2672:                                             ; preds = %2670, %2668
  %.pn1598 = phi { ptr, i32 } [ %2671, %2670 ], [ %2669, %2668 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %320) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %319) #10
  br label %.loopexit.loopexit

.loopexit.loopexit:                               ; preds = %2672, %2667, %2598, %2521, %2479
  %.pn2680.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2680.pn.pn.pn.pn.pn.pn.pn, %2598 ], [ %.pn1598, %2672 ], [ %.pn1592.pn.pn.pn.pn, %2667 ], [ %2480, %2479 ], [ %.pn1578.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2521 ]
  %2673 = getelementptr inbounds i8, ptr %286, i64 224
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2673) #10
  %2674 = getelementptr inbounds i8, ptr %286, i64 192
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2674) #10
  %2675 = getelementptr inbounds i8, ptr %286, i64 160
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2675) #10
  %2676 = getelementptr inbounds i8, ptr %286, i64 128
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2676) #10
  %2677 = getelementptr inbounds i8, ptr %286, i64 96
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2677) #10
  %2678 = getelementptr inbounds i8, ptr %286, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2678) #10
  %2679 = getelementptr inbounds i8, ptr %286, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2679) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %286) #10
  br label %.loopexit

.loopexit:                                        ; preds = %.preheader2757, %2475, %.loopexit.loopexit
  %.pn2680.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %lpad.thr_comm.split-lp, %2475 ], [ %.pn2680.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit.loopexit ], [ %lpad.thr_comm, %.preheader2757 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %286) #10
  br label %6795

2680:                                             ; preds = %2610
  %2681 = landingpad { ptr, i32 }
          cleanup
  br label %2730

2682:                                             ; preds = %2618
  %2683 = landingpad { ptr, i32 }
          cleanup
  br label %2729

2684:                                             ; preds = %2619
  %2685 = landingpad { ptr, i32 }
          cleanup
  br label %2728

2686:                                             ; preds = %2627, %2620
  %2687 = landingpad { ptr, i32 }
          cleanup
  br label %2727

2688:                                             ; preds = %2621
  %2689 = landingpad { ptr, i32 }
          cleanup
  br label %2704

2690:                                             ; preds = %2622
  %2691 = landingpad { ptr, i32 }
          cleanup
  br label %2703

2692:                                             ; preds = %2623
  %2693 = landingpad { ptr, i32 }
          cleanup
  br label %2702

2694:                                             ; preds = %2624
  %2695 = landingpad { ptr, i32 }
          cleanup
  br label %2701

2696:                                             ; preds = %2625
  %2697 = landingpad { ptr, i32 }
          cleanup
  br label %2700

2698:                                             ; preds = %2626
  %2699 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %330) #10
  br label %2700

2700:                                             ; preds = %2698, %2696
  %.pn1600 = phi { ptr, i32 } [ %2699, %2698 ], [ %2697, %2696 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %330) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %325) #10
  br label %2701

2701:                                             ; preds = %2700, %2694
  %.pn1600.pn = phi { ptr, i32 } [ %.pn1600, %2700 ], [ %2695, %2694 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %328) #10
  br label %2702

2702:                                             ; preds = %2701, %2692
  %.pn1600.pn.pn = phi { ptr, i32 } [ %.pn1600.pn, %2701 ], [ %2693, %2692 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %329) #10
  br label %2703

2703:                                             ; preds = %2702, %2690
  %.pn1600.pn.pn.pn = phi { ptr, i32 } [ %.pn1600.pn.pn, %2702 ], [ %2691, %2690 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %326) #10
  br label %2704

2704:                                             ; preds = %2703, %2688
  %.pn1600.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1600.pn.pn.pn, %2703 ], [ %2689, %2688 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %327) #10
  br label %2727

2705:                                             ; preds = %2628
  %2706 = landingpad { ptr, i32 }
          cleanup
  br label %2721

2707:                                             ; preds = %2629
  %2708 = landingpad { ptr, i32 }
          cleanup
  br label %2720

2709:                                             ; preds = %2632, %2630
  %2710 = landingpad { ptr, i32 }
          cleanup
  br label %2719

2711:                                             ; preds = %2633
  %2712 = landingpad { ptr, i32 }
          cleanup
  br label %2718

2713:                                             ; preds = %2634
  %2714 = landingpad { ptr, i32 }
          cleanup
  br label %2717

2715:                                             ; preds = %2635
  %2716 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %336) #10
  br label %2717

2717:                                             ; preds = %2715, %2713
  %.pn1606 = phi { ptr, i32 } [ %2716, %2715 ], [ %2714, %2713 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %335) #10
  br label %2718

2718:                                             ; preds = %2717, %2711
  %.pn1606.pn = phi { ptr, i32 } [ %.pn1606, %2717 ], [ %2712, %2711 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %334) #10
  br label %2719

2719:                                             ; preds = %2718, %2709
  %.pn1606.pn.pn = phi { ptr, i32 } [ %.pn1606.pn, %2718 ], [ %2710, %2709 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %333) #10
  br label %2720

2720:                                             ; preds = %2719, %2707
  %.pn1606.pn.pn.pn = phi { ptr, i32 } [ %.pn1606.pn.pn, %2719 ], [ %2708, %2707 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %332) #10
  br label %2721

2721:                                             ; preds = %2720, %2705
  %.pn1606.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1606.pn.pn.pn, %2720 ], [ %2706, %2705 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #10
  br label %2727

2722:                                             ; preds = %2637
  %2723 = landingpad { ptr, i32 }
          cleanup
  br label %2726

2724:                                             ; preds = %2638
  %2725 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %338) #10
  br label %2726

2726:                                             ; preds = %2724, %2722
  %.pn1612 = phi { ptr, i32 } [ %2725, %2724 ], [ %2723, %2722 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %338) #10
  br label %2727

2727:                                             ; preds = %2726, %2721, %2704, %2686
  %.pn1612.pn = phi { ptr, i32 } [ %.pn1612, %2726 ], [ %.pn1606.pn.pn.pn.pn, %2721 ], [ %2687, %2686 ], [ %.pn1600.pn.pn.pn.pn, %2704 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #10
  br label %2728

2728:                                             ; preds = %2727, %2684
  %.pn1612.pn.pn = phi { ptr, i32 } [ %.pn1612.pn, %2727 ], [ %2685, %2684 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %323) #10
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %322) #10
  br label %2729

2729:                                             ; preds = %2728, %2682
  %.pn1612.pn.pn.pn = phi { ptr, i32 } [ %.pn1612.pn.pn, %2728 ], [ %2683, %2682 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %322) #10
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %321) #10
  br label %2730

2730:                                             ; preds = %2729, %2680
  %.pn1612.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1612.pn.pn.pn, %2729 ], [ %2681, %2680 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %321) #10
  br label %6795

2731:                                             ; preds = %2639
  %2732 = landingpad { ptr, i32 }
          cleanup
  br label %3212

2733:                                             ; preds = %2640
  %2734 = landingpad { ptr, i32 }
          cleanup
  br label %3211

2735:                                             ; preds = %2641
  %2736 = landingpad { ptr, i32 }
          cleanup
  br label %2739

2737:                                             ; preds = %2642
  %2738 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %343) #10
  br label %2739

2739:                                             ; preds = %2737, %2735
  %.pn1618 = phi { ptr, i32 } [ %2738, %2737 ], [ %2736, %2735 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %344) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %344) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %343) #10
  br label %3210

2740:                                             ; preds = %2643
  %2741 = landingpad { ptr, i32 }
          cleanup
  br label %2744

2742:                                             ; preds = %2644
  %2743 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %346) #10
  br label %2744

2744:                                             ; preds = %2742, %2740
  %.pn1620 = phi { ptr, i32 } [ %2743, %2742 ], [ %2741, %2740 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %347) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %347) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %346) #10
  br label %3209

2745:                                             ; preds = %2645
  %2746 = landingpad { ptr, i32 }
          cleanup
  br label %2749

2747:                                             ; preds = %2646
  %2748 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %349) #10
  br label %2749

2749:                                             ; preds = %2747, %2745
  %.pn1622 = phi { ptr, i32 } [ %2748, %2747 ], [ %2746, %2745 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %350) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %350) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %349) #10
  br label %3208

2750:                                             ; preds = %2647
  %2751 = landingpad { ptr, i32 }
          cleanup
  br label %2754

2752:                                             ; preds = %2648
  %2753 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %352) #10
  br label %2754

2754:                                             ; preds = %2752, %2750
  %.pn1624 = phi { ptr, i32 } [ %2753, %2752 ], [ %2751, %2750 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %353) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %353) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %352) #10
  br label %3207

2755:                                             ; preds = %2649
  %2756 = landingpad { ptr, i32 }
          cleanup
  br label %3206

.preheader2754:                                   ; preds = %2649, %2761
  %.012752787 = phi i32 [ %2762, %2761 ], [ 0, %2649 ]
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %355, i32 noundef 1)
          to label %2757 unwind label %2763

2757:                                             ; preds = %.preheader2754
  %2758 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %354, ptr noundef nonnull %355)
          to label %2759 unwind label %2765

2759:                                             ; preds = %2757
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %355) #10
  call void @_ZN6Halide4ExprC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %356, ptr noundef nonnull align 8 dereferenceable(8) %354) #10
  %2760 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidemLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %354, ptr noundef nonnull %356)
          to label %2761 unwind label %2767

2761:                                             ; preds = %2759
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %356) #10
  %2762 = add nuw nsw i32 %.012752787, 1
  %exitcond2831.not = icmp eq i32 %2762, 100
  br i1 %exitcond2831.not, label %2650, label %.preheader2754, !llvm.loop !14

2763:                                             ; preds = %.preheader2754
  %2764 = landingpad { ptr, i32 }
          cleanup
  br label %3205

2765:                                             ; preds = %2757
  %2766 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %355) #10
  br label %3205

2767:                                             ; preds = %2759
  %2768 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %356) #10
  br label %3205

2769:                                             ; preds = %2650
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %357, ptr noundef nonnull align 8 dereferenceable(56) %359, ptr noundef nonnull %358)
          to label %2770 unwind label %2950

2770:                                             ; preds = %2769
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %357) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %359) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %359) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %358) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %365) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %365, ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2771 unwind label %2953

2771:                                             ; preds = %2770
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %364, ptr noundef nonnull align 8 dereferenceable(56) %365)
          to label %2772 unwind label %2955

2772:                                             ; preds = %2771
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %367) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %367, ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2773 unwind label %2957

2773:                                             ; preds = %2772
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %366, ptr noundef nonnull align 8 dereferenceable(56) %367)
          to label %2774 unwind label %2959

2774:                                             ; preds = %2773
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %363, ptr noundef nonnull %364, ptr noundef nonnull %366)
          to label %2775 unwind label %2961

2775:                                             ; preds = %2774
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %370, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2776 unwind label %2963

2776:                                             ; preds = %2775
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %372) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %372, ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2777 unwind label %2965

2777:                                             ; preds = %2776
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %371, ptr noundef nonnull align 8 dereferenceable(56) %372)
          to label %2778 unwind label %2967

2778:                                             ; preds = %2777
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %369, ptr noundef nonnull %370, ptr noundef nonnull %371)
          to label %2779 unwind label %2969

2779:                                             ; preds = %2778
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %375) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %375, ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2780 unwind label %2971

2780:                                             ; preds = %2779
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %374, ptr noundef nonnull align 8 dereferenceable(56) %375)
          to label %2781 unwind label %2973

2781:                                             ; preds = %2780
  invoke void @_ZN6HalideplEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %373, i32 noundef 1, ptr noundef nonnull %374)
          to label %2782 unwind label %2975

2782:                                             ; preds = %2781
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %368, ptr noundef nonnull %369, ptr noundef nonnull %373)
          to label %2783 unwind label %2977

2783:                                             ; preds = %2782
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %362, ptr noundef nonnull %363, ptr noundef nonnull %368)
          to label %2784 unwind label %2979

2784:                                             ; preds = %2783
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %378, ptr noundef nonnull align 8 dereferenceable(32) %341)
          to label %2785 unwind label %2981

2785:                                             ; preds = %2784
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %380) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %380, ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2786 unwind label %2983

2786:                                             ; preds = %2785
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %379, ptr noundef nonnull align 8 dereferenceable(56) %380)
          to label %2787 unwind label %2985

2787:                                             ; preds = %2786
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %377, ptr noundef nonnull %378, ptr noundef nonnull %379)
          to label %2788 unwind label %2987

2788:                                             ; preds = %2787
  invoke void @_ZN6Halide4sqrtENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %376, ptr noundef nonnull %377)
          to label %2789 unwind label %2989

2789:                                             ; preds = %2788
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %361, ptr noundef nonnull %362, ptr noundef nonnull %376)
          to label %2790 unwind label %2991

2790:                                             ; preds = %2789
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %381) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_S3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %381, ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %341)
          to label %2791 unwind label %2993

2791:                                             ; preds = %2790
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %360, ptr noundef nonnull align 8 dereferenceable(56) %381, ptr noundef nonnull %361)
          to label %2792 unwind label %2995

2792:                                             ; preds = %2791
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %360) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %381) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %381) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %361) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %376) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %377) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %379) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %380) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %380) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %378) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %362) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %368) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %373) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %374) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %375) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %375) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %369) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %371) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %372) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %372) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %370) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %363) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %366) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %367) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %367) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %364) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %365) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %365) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %387) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %388, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2793 unwind label %3018

2793:                                             ; preds = %2792
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %389) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %391, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2794 unwind label %3020

2794:                                             ; preds = %2793
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %390, i32 noundef 2, ptr noundef nonnull %391)
          to label %2795 unwind label %3022

2795:                                             ; preds = %2794
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %389, ptr noundef nonnull %390, i32 noundef 1)
          to label %2796 unwind label %3024

2796:                                             ; preds = %2795
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprERNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %387, ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef nonnull %388, ptr noundef nonnull align 8 dereferenceable(8) %389, ptr noundef nonnull align 8 dereferenceable(32) %341)
          to label %2797 unwind label %3026

2797:                                             ; preds = %2796
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %386, ptr noundef nonnull align 8 dereferenceable(56) %387)
          to label %2798 unwind label %3028

2798:                                             ; preds = %2797
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %393) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %394, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2799 unwind label %3030

2799:                                             ; preds = %2798
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %395) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %396, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2800 unwind label %3032

2800:                                             ; preds = %2799
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %395, i32 noundef 2, ptr noundef nonnull %396)
          to label %2801 unwind label %3034

2801:                                             ; preds = %2800
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprERNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %393, ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef nonnull %394, ptr noundef nonnull align 8 dereferenceable(8) %395, ptr noundef nonnull align 8 dereferenceable(32) %341)
          to label %2802 unwind label %3036

2802:                                             ; preds = %2801
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %392, ptr noundef nonnull align 8 dereferenceable(56) %393)
          to label %2803 unwind label %3038

2803:                                             ; preds = %2802
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %385, ptr noundef nonnull %386, ptr noundef nonnull %392)
          to label %2804 unwind label %3040

2804:                                             ; preds = %2803
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %398) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %399, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2805 unwind label %3042

2805:                                             ; preds = %2804
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %400) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %402, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2806 unwind label %3044

2806:                                             ; preds = %2805
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %401, i32 noundef 2, ptr noundef nonnull %402)
          to label %2807 unwind label %3046

2807:                                             ; preds = %2806
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %400, ptr noundef nonnull %401, i32 noundef 1)
          to label %2808 unwind label %3048

2808:                                             ; preds = %2807
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprERNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %398, ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef nonnull %399, ptr noundef nonnull align 8 dereferenceable(8) %400, ptr noundef nonnull align 8 dereferenceable(32) %341)
          to label %2809 unwind label %3050

2809:                                             ; preds = %2808
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %397, ptr noundef nonnull align 8 dereferenceable(56) %398)
          to label %2810 unwind label %3052

2810:                                             ; preds = %2809
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %384, ptr noundef nonnull %385, ptr noundef nonnull %397)
          to label %2811 unwind label %3054

2811:                                             ; preds = %2810
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %404) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %405, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2812 unwind label %3056

2812:                                             ; preds = %2811
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %406) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %408, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2813 unwind label %3058

2813:                                             ; preds = %2812
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %407, i32 noundef 2, ptr noundef nonnull %408)
          to label %2814 unwind label %3060

2814:                                             ; preds = %2813
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %406, ptr noundef nonnull %407, i32 noundef 2)
          to label %2815 unwind label %3062

2815:                                             ; preds = %2814
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprERNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %404, ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef nonnull %405, ptr noundef nonnull align 8 dereferenceable(8) %406, ptr noundef nonnull align 8 dereferenceable(32) %341)
          to label %2816 unwind label %3064

2816:                                             ; preds = %2815
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %403, ptr noundef nonnull align 8 dereferenceable(56) %404)
          to label %2817 unwind label %3066

2817:                                             ; preds = %2816
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %383, ptr noundef nonnull %384, ptr noundef nonnull %403)
          to label %2818 unwind label %3068

2818:                                             ; preds = %2817
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %409) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_S3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %409, ptr noundef nonnull align 8 dereferenceable(32) %348, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %341)
          to label %2819 unwind label %3070

2819:                                             ; preds = %2818
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %382, ptr noundef nonnull align 8 dereferenceable(56) %409, ptr noundef nonnull %383)
          to label %2820 unwind label %3072

2820:                                             ; preds = %2819
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %382) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %409) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %409) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %383) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %403) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %404) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %406) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %407) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %408) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %406) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %405) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %404) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %384) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %397) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %398) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %400) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %401) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %402) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %400) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %399) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %398) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %385) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %392) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %393) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %395) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %396) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %395) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %394) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %393) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %386) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %387) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %389) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %390) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %391) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %389) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %388) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %387) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %415) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %418, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2821 unwind label %3101

2821:                                             ; preds = %2820
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %417, i32 noundef 2, ptr noundef nonnull %418)
          to label %2822 unwind label %3103

2822:                                             ; preds = %2821
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %416, ptr noundef nonnull %417, i32 noundef 1)
          to label %2823 unwind label %3105

2823:                                             ; preds = %2822
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %415, ptr noundef nonnull align 8 dereferenceable(32) %348, ptr noundef nonnull %416, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %341)
          to label %2824 unwind label %3107

2824:                                             ; preds = %2823
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %414, ptr noundef nonnull align 8 dereferenceable(56) %415)
          to label %2825 unwind label %3109

2825:                                             ; preds = %2824
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %420) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %422, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2826 unwind label %3111

2826:                                             ; preds = %2825
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %421, i32 noundef 2, ptr noundef nonnull %422)
          to label %2827 unwind label %3113

2827:                                             ; preds = %2826
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %420, ptr noundef nonnull align 8 dereferenceable(32) %348, ptr noundef nonnull %421, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %341)
          to label %2828 unwind label %3115

2828:                                             ; preds = %2827
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %419, ptr noundef nonnull align 8 dereferenceable(56) %420)
          to label %2829 unwind label %3117

2829:                                             ; preds = %2828
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %413, ptr noundef nonnull %414, ptr noundef nonnull %419)
          to label %2830 unwind label %3119

2830:                                             ; preds = %2829
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %424) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %427, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2831 unwind label %3121

2831:                                             ; preds = %2830
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %426, i32 noundef 2, ptr noundef nonnull %427)
          to label %2832 unwind label %3123

2832:                                             ; preds = %2831
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %425, ptr noundef nonnull %426, i32 noundef 1)
          to label %2833 unwind label %3125

2833:                                             ; preds = %2832
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %424, ptr noundef nonnull align 8 dereferenceable(32) %348, ptr noundef nonnull %425, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %341)
          to label %2834 unwind label %3127

2834:                                             ; preds = %2833
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %423, ptr noundef nonnull align 8 dereferenceable(56) %424)
          to label %2835 unwind label %3129

2835:                                             ; preds = %2834
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %412, ptr noundef nonnull %413, ptr noundef nonnull %423)
          to label %2836 unwind label %3131

2836:                                             ; preds = %2835
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %429) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %432, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2837 unwind label %3133

2837:                                             ; preds = %2836
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %431, i32 noundef 2, ptr noundef nonnull %432)
          to label %2838 unwind label %3135

2838:                                             ; preds = %2837
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %430, ptr noundef nonnull %431, i32 noundef 2)
          to label %2839 unwind label %3137

2839:                                             ; preds = %2838
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %429, ptr noundef nonnull align 8 dereferenceable(32) %348, ptr noundef nonnull %430, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %341)
          to label %2840 unwind label %3139

2840:                                             ; preds = %2839
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %428, ptr noundef nonnull align 8 dereferenceable(56) %429)
          to label %2841 unwind label %3141

2841:                                             ; preds = %2840
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %411, ptr noundef nonnull %412, ptr noundef nonnull %428)
          to label %2842 unwind label %3143

2842:                                             ; preds = %2841
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %433) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_S3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %433, ptr noundef nonnull align 8 dereferenceable(32) %351, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %341)
          to label %2843 unwind label %3145

2843:                                             ; preds = %2842
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %410, ptr noundef nonnull align 8 dereferenceable(56) %433, ptr noundef nonnull %411)
          to label %2844 unwind label %3147

2844:                                             ; preds = %2843
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %410) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %433) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %433) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %411) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %428) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %429) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %430) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %431) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %432) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %429) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %412) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %423) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %424) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %425) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %426) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %427) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %424) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %413) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %419) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %420) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %421) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %422) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %420) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %414) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %415) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %416) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %417) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %418) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %415) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %434, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %2845 unwind label %3172

2845:                                             ; preds = %2844
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %435, i32 noundef 1)
          to label %2846 unwind label %3174

2846:                                             ; preds = %2845
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %436, i32 noundef 1022)
          to label %2847 unwind label %3176

2847:                                             ; preds = %2846
  %2848 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %351, ptr noundef nonnull %434, ptr noundef nonnull %435, ptr noundef nonnull %436)
          to label %2849 unwind label %3178

2849:                                             ; preds = %2847
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %437, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %2850 unwind label %3178

2850:                                             ; preds = %2849
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %438, i32 noundef 1)
          to label %2851 unwind label %3180

2851:                                             ; preds = %2850
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %439, i32 noundef 1022)
          to label %2852 unwind label %3182

2852:                                             ; preds = %2851
  %2853 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %2848, ptr noundef nonnull %437, ptr noundef nonnull %438, ptr noundef nonnull %439)
          to label %2854 unwind label %3184

2854:                                             ; preds = %2852
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %440, ptr noundef nonnull align 8 dereferenceable(32) %341)
          to label %2855 unwind label %3184

2855:                                             ; preds = %2854
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %441, i32 noundef 0)
          to label %2856 unwind label %3186

2856:                                             ; preds = %2855
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %442, i32 noundef 256)
          to label %2857 unwind label %3188

2857:                                             ; preds = %2856
  %2858 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %2853, ptr noundef nonnull %440, ptr noundef nonnull %441, ptr noundef nonnull %442)
          to label %2859 unwind label %3190

2859:                                             ; preds = %2857
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %442) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %441) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %440) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %439) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %438) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %437) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %436) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %435) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %434) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %444) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %445, ptr noundef nonnull align 8 dereferenceable(32) %351) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %444, ptr noundef nonnull %445)
          to label %2860 unwind label %3200

2860:                                             ; preds = %2859
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %443, ptr noundef nonnull align 8 dereferenceable(8) %444, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %2861 unwind label %3202

2861:                                             ; preds = %2860
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %443) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %444) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %445) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %444) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %354) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %354) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %351) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %348) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %348) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %345) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %345) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %342) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %341) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %341) #10
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %340) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %340) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %446) #10
  invoke void @_ZN6Halide6BufferIfEC2IJiEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %446, i32 noundef 1024, i32 noundef 1024)
          to label %2862 unwind label %3213

2862:                                             ; preds = %2861
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %447) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %448) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %449) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %449) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %448, ptr noundef nonnull @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %449)
          to label %2863 unwind label %3215

2863:                                             ; preds = %2862
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %447, ptr noundef nonnull align 8 dereferenceable(32) %448)
          to label %2864 unwind label %3217

2864:                                             ; preds = %2863
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %448) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %449) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %449) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %448) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %450) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %451) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %452) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %452) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %451, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %452)
          to label %2865 unwind label %3220

2865:                                             ; preds = %2864
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %450, ptr noundef nonnull align 8 dereferenceable(32) %451)
          to label %2866 unwind label %3222

2866:                                             ; preds = %2865
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %451) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %452) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %452) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %451) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %453) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %454) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %455) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %455) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %454, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %455)
          to label %2867 unwind label %3225

2867:                                             ; preds = %2866
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %453, ptr noundef nonnull align 8 dereferenceable(32) %454)
          to label %2868 unwind label %3227

2868:                                             ; preds = %2867
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %454) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %455) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %455) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %454) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %456) #10
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %456)
          to label %2869 unwind label %3230

2869:                                             ; preds = %2868
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %457) #10
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %457)
          to label %2870 unwind label %3232

2870:                                             ; preds = %2869
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %460, ptr noundef nonnull align 8 dereferenceable(32) %456)
          to label %2871 unwind label %3234

2871:                                             ; preds = %2870
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %461, ptr noundef nonnull align 8 dereferenceable(32) %457)
          to label %2872 unwind label %3236

2872:                                             ; preds = %2871
  invoke void @_ZN6Halide3powENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %459, ptr noundef nonnull %460, ptr noundef nonnull %461)
          to label %2873 unwind label %3238

2873:                                             ; preds = %2872
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %462) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %462, ptr noundef nonnull align 8 dereferenceable(32) %453, ptr noundef nonnull align 8 dereferenceable(32) %456, ptr noundef nonnull align 8 dereferenceable(32) %457)
          to label %2874 unwind label %3240

2874:                                             ; preds = %2873
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %458, ptr noundef nonnull align 8 dereferenceable(56) %462, ptr noundef nonnull %459)
          to label %2875 unwind label %3242

2875:                                             ; preds = %2874
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %458) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %462) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %462) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %459) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %461) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %460) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %465) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %466, ptr noundef nonnull align 8 dereferenceable(32) %456)
          to label %2876 unwind label %3247

2876:                                             ; preds = %2875
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %467, ptr noundef nonnull align 8 dereferenceable(32) %457)
          to label %2877 unwind label %3249

2877:                                             ; preds = %2876
  invoke void @_ZNK6Halide6BufferIfEclIJNS_3VarEEEENS_4ExprES4_DpT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %465, ptr noundef nonnull align 8 dereferenceable(16) %446, ptr noundef nonnull %466, ptr noundef nonnull %467)
          to label %2878 unwind label %3251

2878:                                             ; preds = %2877
  invoke void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %464, ptr noundef nonnull align 8 dereferenceable(8) %465, i32 noundef 2)
          to label %2879 unwind label %3253

2879:                                             ; preds = %2878
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %468) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %468, ptr noundef nonnull align 8 dereferenceable(32) %447, ptr noundef nonnull align 8 dereferenceable(32) %456, ptr noundef nonnull align 8 dereferenceable(32) %457)
          to label %2880 unwind label %3255

2880:                                             ; preds = %2879
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %463, ptr noundef nonnull align 8 dereferenceable(56) %468, ptr noundef nonnull %464)
          to label %2881 unwind label %3257

2881:                                             ; preds = %2880
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %463) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %468) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %468) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %464) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %465) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %467) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %466) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %465) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %470, i32 noundef 17)
          to label %2882 unwind label %3234

2882:                                             ; preds = %2881
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %471) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %471, ptr noundef nonnull align 8 dereferenceable(32) %447, ptr noundef nonnull align 8 dereferenceable(32) %456, ptr noundef nonnull align 8 dereferenceable(32) %457)
          to label %2883 unwind label %3264

2883:                                             ; preds = %2882
  invoke void @_ZN6Halide7FuncRefpLENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %469, ptr noundef nonnull align 8 dereferenceable(56) %471, ptr noundef nonnull %470)
          to label %2884 unwind label %3266

2884:                                             ; preds = %2883
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %469) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %471) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %471) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %470) #10
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %472) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %473, i32 noundef 0)
          to label %2885 unwind label %3269

2885:                                             ; preds = %2884
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %474, i32 noundef 10)
          to label %2886 unwind label %3271

2886:                                             ; preds = %2885
  invoke void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %472, ptr noundef nonnull %473, ptr noundef nonnull %474)
          to label %2887 unwind label %3273

2887:                                             ; preds = %2886
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %474) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %473) #10
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %477, ptr noundef nonnull align 8 dereferenceable(200) %472)
          to label %2888 unwind label %3276

2888:                                             ; preds = %2887
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %479) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %479, ptr noundef nonnull align 8 dereferenceable(32) %453, ptr noundef nonnull align 8 dereferenceable(32) %456, ptr noundef nonnull align 8 dereferenceable(32) %457)
          to label %2889 unwind label %3278

2889:                                             ; preds = %2888
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %478, ptr noundef nonnull align 8 dereferenceable(56) %479)
          to label %2890 unwind label %3280

2890:                                             ; preds = %2889
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %476, ptr noundef nonnull %477, ptr noundef nonnull %478)
          to label %2891 unwind label %3282

2891:                                             ; preds = %2890
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %480) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %480, ptr noundef nonnull align 8 dereferenceable(32) %447, ptr noundef nonnull align 8 dereferenceable(32) %456, ptr noundef nonnull align 8 dereferenceable(32) %457)
          to label %2892 unwind label %3284

2892:                                             ; preds = %2891
  invoke void @_ZN6Halide7FuncRefpLENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %475, ptr noundef nonnull align 8 dereferenceable(56) %480, ptr noundef nonnull %476)
          to label %2893 unwind label %3286

2893:                                             ; preds = %2892
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %475) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %480) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %480) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %476) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %478) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %479) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %479) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %477) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %482, i32 noundef 2)
          to label %2894 unwind label %3276

2894:                                             ; preds = %2893
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %483) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %483, ptr noundef nonnull align 8 dereferenceable(32) %447, ptr noundef nonnull align 8 dereferenceable(32) %456, ptr noundef nonnull align 8 dereferenceable(32) %457)
          to label %2895 unwind label %3292

2895:                                             ; preds = %2894
  invoke void @_ZN6Halide7FuncRefmLENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %481, ptr noundef nonnull align 8 dereferenceable(56) %483, ptr noundef nonnull %482)
          to label %2896 unwind label %3294

2896:                                             ; preds = %2895
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %481) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %483) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %483) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %482) #10
  invoke void @_ZN6Halide4ExprC2Ef(ptr noundef nonnull align 8 dereferenceable(8) %485, float noundef 2.300000e+01)
          to label %2897 unwind label %3276

2897:                                             ; preds = %2896
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %486) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %487, i32 noundef 0)
          to label %2898 unwind label %3297

2898:                                             ; preds = %2897
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %486, ptr noundef nonnull align 8 dereferenceable(32) %447, ptr noundef nonnull %487, ptr noundef nonnull align 8 dereferenceable(32) %457)
          to label %2899 unwind label %3299

2899:                                             ; preds = %2898
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %484, ptr noundef nonnull align 8 dereferenceable(56) %486, ptr noundef nonnull %485)
          to label %2900 unwind label %3301

2900:                                             ; preds = %2899
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %484) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %486) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %487) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %486) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %485) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %491) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %493, ptr noundef nonnull align 8 dereferenceable(32) %456)
          to label %2901 unwind label %3305

2901:                                             ; preds = %2900
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %492, ptr noundef nonnull %493, i32 noundef 1)
          to label %2902 unwind label %3307

2902:                                             ; preds = %2901
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %494) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %495, ptr noundef nonnull align 8 dereferenceable(32) %457)
          to label %2903 unwind label %3309

2903:                                             ; preds = %2902
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %494, ptr noundef nonnull %495, i32 noundef 1)
          to label %2904 unwind label %3311

2904:                                             ; preds = %2903
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %491, ptr noundef nonnull align 8 dereferenceable(32) %447, ptr noundef nonnull %492, ptr noundef nonnull align 8 dereferenceable(8) %494)
          to label %2905 unwind label %3313

2905:                                             ; preds = %2904
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %490, ptr noundef nonnull align 8 dereferenceable(56) %491)
          to label %2906 unwind label %3315

2906:                                             ; preds = %2905
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %497) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %499, ptr noundef nonnull align 8 dereferenceable(32) %456)
          to label %2907 unwind label %3317

2907:                                             ; preds = %2906
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %498, ptr noundef nonnull %499, i32 noundef 1)
          to label %2908 unwind label %3319

2908:                                             ; preds = %2907
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %500) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %501, ptr noundef nonnull align 8 dereferenceable(32) %457)
          to label %2909 unwind label %3321

2909:                                             ; preds = %2908
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %500, ptr noundef nonnull %501, i32 noundef 1)
          to label %2910 unwind label %3323

2910:                                             ; preds = %2909
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %497, ptr noundef nonnull align 8 dereferenceable(32) %447, ptr noundef nonnull %498, ptr noundef nonnull align 8 dereferenceable(8) %500)
          to label %2911 unwind label %3325

2911:                                             ; preds = %2910
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %496, ptr noundef nonnull align 8 dereferenceable(56) %497)
          to label %2912 unwind label %3327

2912:                                             ; preds = %2911
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %489, ptr noundef nonnull %490, ptr noundef nonnull %496)
          to label %2913 unwind label %3329

2913:                                             ; preds = %2912
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %502) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %502, ptr noundef nonnull align 8 dereferenceable(32) %450, ptr noundef nonnull align 8 dereferenceable(32) %456, ptr noundef nonnull align 8 dereferenceable(32) %457)
          to label %2914 unwind label %3331

2914:                                             ; preds = %2913
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %488, ptr noundef nonnull align 8 dereferenceable(56) %502, ptr noundef nonnull %489)
          to label %2915 unwind label %3333

2915:                                             ; preds = %2914
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %488) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %502) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %502) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %489) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %496) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %497) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %500) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %501) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %500) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %498) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %499) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %497) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %490) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %491) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %494) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %495) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %494) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %492) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %493) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %491) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %503, ptr noundef nonnull align 8 dereferenceable(32) %456)
          to label %2916 unwind label %3276

2916:                                             ; preds = %2915
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %504, i32 noundef 1)
          to label %2917 unwind label %3349

2917:                                             ; preds = %2916
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %505, i32 noundef 1022)
          to label %2918 unwind label %3351

2918:                                             ; preds = %2917
  %2919 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %450, ptr noundef nonnull %503, ptr noundef nonnull %504, ptr noundef nonnull %505)
          to label %2920 unwind label %3353

2920:                                             ; preds = %2918
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %506, ptr noundef nonnull align 8 dereferenceable(32) %457)
          to label %2921 unwind label %3353

2921:                                             ; preds = %2920
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %507, i32 noundef 1)
          to label %2922 unwind label %3355

2922:                                             ; preds = %2921
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %508, i32 noundef 1022)
          to label %2923 unwind label %3357

2923:                                             ; preds = %2922
  %2924 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %2919, ptr noundef nonnull %506, ptr noundef nonnull %507, ptr noundef nonnull %508)
          to label %2925 unwind label %3359

2925:                                             ; preds = %2923
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %508) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %507) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %506) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %505) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %504) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %503) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %510) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %511, ptr noundef nonnull align 8 dereferenceable(32) %450) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %510, ptr noundef nonnull %511)
          to label %2926 unwind label %3366

2926:                                             ; preds = %2925
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %509, ptr noundef nonnull align 8 dereferenceable(8) %510, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %2927 unwind label %3368

2927:                                             ; preds = %2926
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %509) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %510) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %511) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %510) #10
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %472) #10
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %472) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %457) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %457) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %456) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %456) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %453) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %453) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %450) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %450) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %447) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %447) #10
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %446) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %446) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %512) #10
  invoke void @_ZN6Halide6BufferIfEC2IJiEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %512, i32 noundef 1024, i32 noundef 1024)
          to label %2928 unwind label %3380

2928:                                             ; preds = %2927
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %513) #10
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %513)
          to label %2929 unwind label %3382

2929:                                             ; preds = %2928
  %.ptr1777.1 = getelementptr inbounds i8, ptr %513, i64 32
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr1777.1)
          to label %2930 unwind label %.preheader2752.preheader

2930:                                             ; preds = %2929
  %.ptr1777.2 = getelementptr inbounds i8, ptr %513, i64 64
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr1777.2)
          to label %2931 unwind label %.preheader2752.preheader

2931:                                             ; preds = %2930
  %.ptr1777.3 = getelementptr inbounds i8, ptr %513, i64 96
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr1777.3)
          to label %2932 unwind label %.preheader2752.preheader

2932:                                             ; preds = %2931
  %.ptr1777.4 = getelementptr inbounds i8, ptr %513, i64 128
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr1777.4)
          to label %2933 unwind label %.preheader2752.preheader

2933:                                             ; preds = %2932
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %514) #10
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %514)
          to label %2934 unwind label %3386

2934:                                             ; preds = %2933
  %.ptr1781.1 = getelementptr inbounds i8, ptr %514, i64 32
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr1781.1)
          to label %2935 unwind label %.preheader2750.preheader

2935:                                             ; preds = %2934
  %.ptr1781.2 = getelementptr inbounds i8, ptr %514, i64 64
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr1781.2)
          to label %2936 unwind label %.preheader2750.preheader

2936:                                             ; preds = %2935
  %.ptr1781.3 = getelementptr inbounds i8, ptr %514, i64 96
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr1781.3)
          to label %2937 unwind label %.preheader2750.preheader

2937:                                             ; preds = %2936
  %.ptr1781.4 = getelementptr inbounds i8, ptr %514, i64 128
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr1781.4)
          to label %2938 unwind label %.preheader2750.preheader

2938:                                             ; preds = %2937
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %515) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %516) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %517) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %517) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %516, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %517)
          to label %2939 unwind label %3390

2939:                                             ; preds = %2938
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %515, ptr noundef nonnull align 8 dereferenceable(32) %516)
          to label %2940 unwind label %3392

2940:                                             ; preds = %2939
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %516) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %517) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %517) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %516) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %518) #10
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %518)
          to label %2941 unwind label %3395

2941:                                             ; preds = %2940
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %519) #10
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %2942 unwind label %3397

2942:                                             ; preds = %2941
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %522, ptr noundef nonnull align 8 dereferenceable(32) %518)
          to label %2943 unwind label %3399

2943:                                             ; preds = %2942
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %523, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %2944 unwind label %3401

2944:                                             ; preds = %2943
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %521, ptr noundef nonnull %522, ptr noundef nonnull %523)
          to label %2945 unwind label %3403

2945:                                             ; preds = %2944
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %524) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %524, ptr noundef nonnull align 8 dereferenceable(32) %513, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %2946 unwind label %3405

2946:                                             ; preds = %2945
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %520, ptr noundef nonnull align 8 dereferenceable(56) %524, ptr noundef nonnull %521)
          to label %2947 unwind label %3407

2947:                                             ; preds = %2946
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %520) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %524) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %524) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %521) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %523) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %522) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %528) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %528, ptr noundef nonnull align 8 dereferenceable(32) %513, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3412 unwind label %3432

2948:                                             ; preds = %2650
  %2949 = landingpad { ptr, i32 }
          cleanup
  br label %2952

2950:                                             ; preds = %2769
  %2951 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %359) #10
  br label %2952

2952:                                             ; preds = %2950, %2948
  %.pn1626 = phi { ptr, i32 } [ %2951, %2950 ], [ %2949, %2948 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %359) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %358) #10
  br label %3205

2953:                                             ; preds = %2770
  %2954 = landingpad { ptr, i32 }
          cleanup
  br label %3017

2955:                                             ; preds = %2771
  %2956 = landingpad { ptr, i32 }
          cleanup
  br label %3016

2957:                                             ; preds = %2772
  %2958 = landingpad { ptr, i32 }
          cleanup
  br label %3015

2959:                                             ; preds = %2773
  %2960 = landingpad { ptr, i32 }
          cleanup
  br label %3014

2961:                                             ; preds = %2774
  %2962 = landingpad { ptr, i32 }
          cleanup
  br label %3013

2963:                                             ; preds = %2775
  %2964 = landingpad { ptr, i32 }
          cleanup
  br label %3012

2965:                                             ; preds = %2776
  %2966 = landingpad { ptr, i32 }
          cleanup
  br label %3011

2967:                                             ; preds = %2777
  %2968 = landingpad { ptr, i32 }
          cleanup
  br label %3010

2969:                                             ; preds = %2778
  %2970 = landingpad { ptr, i32 }
          cleanup
  br label %3009

2971:                                             ; preds = %2779
  %2972 = landingpad { ptr, i32 }
          cleanup
  br label %3008

2973:                                             ; preds = %2780
  %2974 = landingpad { ptr, i32 }
          cleanup
  br label %3007

2975:                                             ; preds = %2781
  %2976 = landingpad { ptr, i32 }
          cleanup
  br label %3006

2977:                                             ; preds = %2782
  %2978 = landingpad { ptr, i32 }
          cleanup
  br label %3005

2979:                                             ; preds = %2783
  %2980 = landingpad { ptr, i32 }
          cleanup
  br label %3004

2981:                                             ; preds = %2784
  %2982 = landingpad { ptr, i32 }
          cleanup
  br label %3003

2983:                                             ; preds = %2785
  %2984 = landingpad { ptr, i32 }
          cleanup
  br label %3002

2985:                                             ; preds = %2786
  %2986 = landingpad { ptr, i32 }
          cleanup
  br label %3001

2987:                                             ; preds = %2787
  %2988 = landingpad { ptr, i32 }
          cleanup
  br label %3000

2989:                                             ; preds = %2788
  %2990 = landingpad { ptr, i32 }
          cleanup
  br label %2999

2991:                                             ; preds = %2789
  %2992 = landingpad { ptr, i32 }
          cleanup
  br label %2998

2993:                                             ; preds = %2790
  %2994 = landingpad { ptr, i32 }
          cleanup
  br label %2997

2995:                                             ; preds = %2791
  %2996 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %381) #10
  br label %2997

2997:                                             ; preds = %2995, %2993
  %.pn1628 = phi { ptr, i32 } [ %2996, %2995 ], [ %2994, %2993 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %381) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %361) #10
  br label %2998

2998:                                             ; preds = %2997, %2991
  %.pn1628.pn = phi { ptr, i32 } [ %.pn1628, %2997 ], [ %2992, %2991 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %376) #10
  br label %2999

2999:                                             ; preds = %2998, %2989
  %.pn1628.pn.pn = phi { ptr, i32 } [ %.pn1628.pn, %2998 ], [ %2990, %2989 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %377) #10
  br label %3000

3000:                                             ; preds = %2999, %2987
  %.pn1628.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn, %2999 ], [ %2988, %2987 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %379) #10
  br label %3001

3001:                                             ; preds = %3000, %2985
  %.pn1628.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn.pn, %3000 ], [ %2986, %2985 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %380) #10
  br label %3002

3002:                                             ; preds = %3001, %2983
  %.pn1628.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn.pn.pn, %3001 ], [ %2984, %2983 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %380) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %378) #10
  br label %3003

3003:                                             ; preds = %3002, %2981
  %.pn1628.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn.pn.pn.pn, %3002 ], [ %2982, %2981 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %362) #10
  br label %3004

3004:                                             ; preds = %3003, %2979
  %.pn1628.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn.pn.pn.pn.pn, %3003 ], [ %2980, %2979 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %368) #10
  br label %3005

3005:                                             ; preds = %3004, %2977
  %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn.pn.pn.pn.pn.pn, %3004 ], [ %2978, %2977 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %373) #10
  br label %3006

3006:                                             ; preds = %3005, %2975
  %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn, %3005 ], [ %2976, %2975 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %374) #10
  br label %3007

3007:                                             ; preds = %3006, %2973
  %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3006 ], [ %2974, %2973 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %375) #10
  br label %3008

3008:                                             ; preds = %3007, %2971
  %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3007 ], [ %2972, %2971 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %375) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %369) #10
  br label %3009

3009:                                             ; preds = %3008, %2969
  %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3008 ], [ %2970, %2969 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %371) #10
  br label %3010

3010:                                             ; preds = %3009, %2967
  %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3009 ], [ %2968, %2967 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %372) #10
  br label %3011

3011:                                             ; preds = %3010, %2965
  %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3010 ], [ %2966, %2965 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %372) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %370) #10
  br label %3012

3012:                                             ; preds = %3011, %2963
  %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3011 ], [ %2964, %2963 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %363) #10
  br label %3013

3013:                                             ; preds = %3012, %2961
  %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3012 ], [ %2962, %2961 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %366) #10
  br label %3014

3014:                                             ; preds = %3013, %2959
  %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3013 ], [ %2960, %2959 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %367) #10
  br label %3015

3015:                                             ; preds = %3014, %2957
  %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3014 ], [ %2958, %2957 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %367) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %364) #10
  br label %3016

3016:                                             ; preds = %3015, %2955
  %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3015 ], [ %2956, %2955 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %365) #10
  br label %3017

3017:                                             ; preds = %3016, %2953
  %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3016 ], [ %2954, %2953 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %365) #10
  br label %3205

3018:                                             ; preds = %2792
  %3019 = landingpad { ptr, i32 }
          cleanup
  br label %3100

3020:                                             ; preds = %2793
  %3021 = landingpad { ptr, i32 }
          cleanup
  br label %3099

3022:                                             ; preds = %2794
  %3023 = landingpad { ptr, i32 }
          cleanup
  br label %3098

3024:                                             ; preds = %2795
  %3025 = landingpad { ptr, i32 }
          cleanup
  br label %3097

3026:                                             ; preds = %2796
  %3027 = landingpad { ptr, i32 }
          cleanup
  br label %3096

3028:                                             ; preds = %2797
  %3029 = landingpad { ptr, i32 }
          cleanup
  br label %3095

3030:                                             ; preds = %2798
  %3031 = landingpad { ptr, i32 }
          cleanup
  br label %3094

3032:                                             ; preds = %2799
  %3033 = landingpad { ptr, i32 }
          cleanup
  br label %3093

3034:                                             ; preds = %2800
  %3035 = landingpad { ptr, i32 }
          cleanup
  br label %3092

3036:                                             ; preds = %2801
  %3037 = landingpad { ptr, i32 }
          cleanup
  br label %3091

3038:                                             ; preds = %2802
  %3039 = landingpad { ptr, i32 }
          cleanup
  br label %3090

3040:                                             ; preds = %2803
  %3041 = landingpad { ptr, i32 }
          cleanup
  br label %3089

3042:                                             ; preds = %2804
  %3043 = landingpad { ptr, i32 }
          cleanup
  br label %3088

3044:                                             ; preds = %2805
  %3045 = landingpad { ptr, i32 }
          cleanup
  br label %3087

3046:                                             ; preds = %2806
  %3047 = landingpad { ptr, i32 }
          cleanup
  br label %3086

3048:                                             ; preds = %2807
  %3049 = landingpad { ptr, i32 }
          cleanup
  br label %3085

3050:                                             ; preds = %2808
  %3051 = landingpad { ptr, i32 }
          cleanup
  br label %3084

3052:                                             ; preds = %2809
  %3053 = landingpad { ptr, i32 }
          cleanup
  br label %3083

3054:                                             ; preds = %2810
  %3055 = landingpad { ptr, i32 }
          cleanup
  br label %3082

3056:                                             ; preds = %2811
  %3057 = landingpad { ptr, i32 }
          cleanup
  br label %3081

3058:                                             ; preds = %2812
  %3059 = landingpad { ptr, i32 }
          cleanup
  br label %3080

3060:                                             ; preds = %2813
  %3061 = landingpad { ptr, i32 }
          cleanup
  br label %3079

3062:                                             ; preds = %2814
  %3063 = landingpad { ptr, i32 }
          cleanup
  br label %3078

3064:                                             ; preds = %2815
  %3065 = landingpad { ptr, i32 }
          cleanup
  br label %3077

3066:                                             ; preds = %2816
  %3067 = landingpad { ptr, i32 }
          cleanup
  br label %3076

3068:                                             ; preds = %2817
  %3069 = landingpad { ptr, i32 }
          cleanup
  br label %3075

3070:                                             ; preds = %2818
  %3071 = landingpad { ptr, i32 }
          cleanup
  br label %3074

3072:                                             ; preds = %2819
  %3073 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %409) #10
  br label %3074

3074:                                             ; preds = %3072, %3070
  %.pn1650 = phi { ptr, i32 } [ %3073, %3072 ], [ %3071, %3070 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %409) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %383) #10
  br label %3075

3075:                                             ; preds = %3074, %3068
  %.pn1650.pn = phi { ptr, i32 } [ %.pn1650, %3074 ], [ %3069, %3068 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %403) #10
  br label %3076

3076:                                             ; preds = %3075, %3066
  %.pn1650.pn.pn = phi { ptr, i32 } [ %.pn1650.pn, %3075 ], [ %3067, %3066 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %404) #10
  br label %3077

3077:                                             ; preds = %3076, %3064
  %.pn1650.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn, %3076 ], [ %3065, %3064 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %406) #10
  br label %3078

3078:                                             ; preds = %3077, %3062
  %.pn1650.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn, %3077 ], [ %3063, %3062 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %407) #10
  br label %3079

3079:                                             ; preds = %3078, %3060
  %.pn1650.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn, %3078 ], [ %3061, %3060 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %408) #10
  br label %3080

3080:                                             ; preds = %3079, %3058
  %.pn1650.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn, %3079 ], [ %3059, %3058 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %406) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %405) #10
  br label %3081

3081:                                             ; preds = %3080, %3056
  %.pn1650.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn, %3080 ], [ %3057, %3056 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %404) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %384) #10
  br label %3082

3082:                                             ; preds = %3081, %3054
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn, %3081 ], [ %3055, %3054 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %397) #10
  br label %3083

3083:                                             ; preds = %3082, %3052
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn, %3082 ], [ %3053, %3052 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %398) #10
  br label %3084

3084:                                             ; preds = %3083, %3050
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3083 ], [ %3051, %3050 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %400) #10
  br label %3085

3085:                                             ; preds = %3084, %3048
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3084 ], [ %3049, %3048 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %401) #10
  br label %3086

3086:                                             ; preds = %3085, %3046
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3085 ], [ %3047, %3046 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %402) #10
  br label %3087

3087:                                             ; preds = %3086, %3044
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3086 ], [ %3045, %3044 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %400) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %399) #10
  br label %3088

3088:                                             ; preds = %3087, %3042
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3087 ], [ %3043, %3042 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %398) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %385) #10
  br label %3089

3089:                                             ; preds = %3088, %3040
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3088 ], [ %3041, %3040 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %392) #10
  br label %3090

3090:                                             ; preds = %3089, %3038
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3089 ], [ %3039, %3038 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %393) #10
  br label %3091

3091:                                             ; preds = %3090, %3036
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3090 ], [ %3037, %3036 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %395) #10
  br label %3092

3092:                                             ; preds = %3091, %3034
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3091 ], [ %3035, %3034 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %396) #10
  br label %3093

3093:                                             ; preds = %3092, %3032
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3092 ], [ %3033, %3032 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %395) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %394) #10
  br label %3094

3094:                                             ; preds = %3093, %3030
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3093 ], [ %3031, %3030 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %393) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %386) #10
  br label %3095

3095:                                             ; preds = %3094, %3028
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3094 ], [ %3029, %3028 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %387) #10
  br label %3096

3096:                                             ; preds = %3095, %3026
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3095 ], [ %3027, %3026 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %389) #10
  br label %3097

3097:                                             ; preds = %3096, %3024
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3096 ], [ %3025, %3024 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %390) #10
  br label %3098

3098:                                             ; preds = %3097, %3022
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3097 ], [ %3023, %3022 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %391) #10
  br label %3099

3099:                                             ; preds = %3098, %3020
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3098 ], [ %3021, %3020 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %389) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %388) #10
  br label %3100

3100:                                             ; preds = %3099, %3018
  %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3099 ], [ %3019, %3018 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %387) #10
  br label %3205

3101:                                             ; preds = %2820
  %3102 = landingpad { ptr, i32 }
          cleanup
  br label %3171

3103:                                             ; preds = %2821
  %3104 = landingpad { ptr, i32 }
          cleanup
  br label %3170

3105:                                             ; preds = %2822
  %3106 = landingpad { ptr, i32 }
          cleanup
  br label %3169

3107:                                             ; preds = %2823
  %3108 = landingpad { ptr, i32 }
          cleanup
  br label %3168

3109:                                             ; preds = %2824
  %3110 = landingpad { ptr, i32 }
          cleanup
  br label %3167

3111:                                             ; preds = %2825
  %3112 = landingpad { ptr, i32 }
          cleanup
  br label %3166

3113:                                             ; preds = %2826
  %3114 = landingpad { ptr, i32 }
          cleanup
  br label %3165

3115:                                             ; preds = %2827
  %3116 = landingpad { ptr, i32 }
          cleanup
  br label %3164

3117:                                             ; preds = %2828
  %3118 = landingpad { ptr, i32 }
          cleanup
  br label %3163

3119:                                             ; preds = %2829
  %3120 = landingpad { ptr, i32 }
          cleanup
  br label %3162

3121:                                             ; preds = %2830
  %3122 = landingpad { ptr, i32 }
          cleanup
  br label %3161

3123:                                             ; preds = %2831
  %3124 = landingpad { ptr, i32 }
          cleanup
  br label %3160

3125:                                             ; preds = %2832
  %3126 = landingpad { ptr, i32 }
          cleanup
  br label %3159

3127:                                             ; preds = %2833
  %3128 = landingpad { ptr, i32 }
          cleanup
  br label %3158

3129:                                             ; preds = %2834
  %3130 = landingpad { ptr, i32 }
          cleanup
  br label %3157

3131:                                             ; preds = %2835
  %3132 = landingpad { ptr, i32 }
          cleanup
  br label %3156

3133:                                             ; preds = %2836
  %3134 = landingpad { ptr, i32 }
          cleanup
  br label %3155

3135:                                             ; preds = %2837
  %3136 = landingpad { ptr, i32 }
          cleanup
  br label %3154

3137:                                             ; preds = %2838
  %3138 = landingpad { ptr, i32 }
          cleanup
  br label %3153

3139:                                             ; preds = %2839
  %3140 = landingpad { ptr, i32 }
          cleanup
  br label %3152

3141:                                             ; preds = %2840
  %3142 = landingpad { ptr, i32 }
          cleanup
  br label %3151

3143:                                             ; preds = %2841
  %3144 = landingpad { ptr, i32 }
          cleanup
  br label %3150

3145:                                             ; preds = %2842
  %3146 = landingpad { ptr, i32 }
          cleanup
  br label %3149

3147:                                             ; preds = %2843
  %3148 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %433) #10
  br label %3149

3149:                                             ; preds = %3147, %3145
  %.pn1678 = phi { ptr, i32 } [ %3148, %3147 ], [ %3146, %3145 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %433) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %411) #10
  br label %3150

3150:                                             ; preds = %3149, %3143
  %.pn1678.pn = phi { ptr, i32 } [ %.pn1678, %3149 ], [ %3144, %3143 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %428) #10
  br label %3151

3151:                                             ; preds = %3150, %3141
  %.pn1678.pn.pn = phi { ptr, i32 } [ %.pn1678.pn, %3150 ], [ %3142, %3141 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %429) #10
  br label %3152

3152:                                             ; preds = %3151, %3139
  %.pn1678.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn, %3151 ], [ %3140, %3139 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %430) #10
  br label %3153

3153:                                             ; preds = %3152, %3137
  %.pn1678.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn, %3152 ], [ %3138, %3137 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %431) #10
  br label %3154

3154:                                             ; preds = %3153, %3135
  %.pn1678.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn, %3153 ], [ %3136, %3135 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %432) #10
  br label %3155

3155:                                             ; preds = %3154, %3133
  %.pn1678.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn.pn, %3154 ], [ %3134, %3133 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %429) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %412) #10
  br label %3156

3156:                                             ; preds = %3155, %3131
  %.pn1678.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn.pn.pn, %3155 ], [ %3132, %3131 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %423) #10
  br label %3157

3157:                                             ; preds = %3156, %3129
  %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn.pn.pn.pn, %3156 ], [ %3130, %3129 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %424) #10
  br label %3158

3158:                                             ; preds = %3157, %3127
  %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn, %3157 ], [ %3128, %3127 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %425) #10
  br label %3159

3159:                                             ; preds = %3158, %3125
  %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3158 ], [ %3126, %3125 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %426) #10
  br label %3160

3160:                                             ; preds = %3159, %3123
  %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3159 ], [ %3124, %3123 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %427) #10
  br label %3161

3161:                                             ; preds = %3160, %3121
  %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3160 ], [ %3122, %3121 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %424) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %413) #10
  br label %3162

3162:                                             ; preds = %3161, %3119
  %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3161 ], [ %3120, %3119 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %419) #10
  br label %3163

3163:                                             ; preds = %3162, %3117
  %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3162 ], [ %3118, %3117 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %420) #10
  br label %3164

3164:                                             ; preds = %3163, %3115
  %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3163 ], [ %3116, %3115 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %421) #10
  br label %3165

3165:                                             ; preds = %3164, %3113
  %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3164 ], [ %3114, %3113 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %422) #10
  br label %3166

3166:                                             ; preds = %3165, %3111
  %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3165 ], [ %3112, %3111 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %420) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %414) #10
  br label %3167

3167:                                             ; preds = %3166, %3109
  %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3166 ], [ %3110, %3109 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %415) #10
  br label %3168

3168:                                             ; preds = %3167, %3107
  %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3167 ], [ %3108, %3107 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %416) #10
  br label %3169

3169:                                             ; preds = %3168, %3105
  %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3168 ], [ %3106, %3105 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %417) #10
  br label %3170

3170:                                             ; preds = %3169, %3103
  %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3169 ], [ %3104, %3103 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %418) #10
  br label %3171

3171:                                             ; preds = %3170, %3101
  %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3170 ], [ %3102, %3101 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %415) #10
  br label %3205

3172:                                             ; preds = %2844
  %3173 = landingpad { ptr, i32 }
          cleanup
  br label %3205

3174:                                             ; preds = %2845
  %3175 = landingpad { ptr, i32 }
          cleanup
  br label %3199

3176:                                             ; preds = %2846
  %3177 = landingpad { ptr, i32 }
          cleanup
  br label %3198

3178:                                             ; preds = %2849, %2847
  %3179 = landingpad { ptr, i32 }
          cleanup
  br label %3197

3180:                                             ; preds = %2850
  %3181 = landingpad { ptr, i32 }
          cleanup
  br label %3196

3182:                                             ; preds = %2851
  %3183 = landingpad { ptr, i32 }
          cleanup
  br label %3195

3184:                                             ; preds = %2854, %2852
  %3185 = landingpad { ptr, i32 }
          cleanup
  br label %3194

3186:                                             ; preds = %2855
  %3187 = landingpad { ptr, i32 }
          cleanup
  br label %3193

3188:                                             ; preds = %2856
  %3189 = landingpad { ptr, i32 }
          cleanup
  br label %3192

3190:                                             ; preds = %2857
  %3191 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %442) #10
  br label %3192

3192:                                             ; preds = %3190, %3188
  %.pn1702 = phi { ptr, i32 } [ %3191, %3190 ], [ %3189, %3188 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %441) #10
  br label %3193

3193:                                             ; preds = %3192, %3186
  %.pn1702.pn = phi { ptr, i32 } [ %.pn1702, %3192 ], [ %3187, %3186 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %440) #10
  br label %3194

3194:                                             ; preds = %3193, %3184
  %.pn1702.pn.pn = phi { ptr, i32 } [ %.pn1702.pn, %3193 ], [ %3185, %3184 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %439) #10
  br label %3195

3195:                                             ; preds = %3194, %3182
  %.pn1702.pn.pn.pn = phi { ptr, i32 } [ %.pn1702.pn.pn, %3194 ], [ %3183, %3182 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %438) #10
  br label %3196

3196:                                             ; preds = %3195, %3180
  %.pn1702.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1702.pn.pn.pn, %3195 ], [ %3181, %3180 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %437) #10
  br label %3197

3197:                                             ; preds = %3196, %3178
  %.pn1702.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1702.pn.pn.pn.pn, %3196 ], [ %3179, %3178 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %436) #10
  br label %3198

3198:                                             ; preds = %3197, %3176
  %.pn1702.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1702.pn.pn.pn.pn.pn, %3197 ], [ %3177, %3176 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %435) #10
  br label %3199

3199:                                             ; preds = %3198, %3174
  %.pn1702.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1702.pn.pn.pn.pn.pn.pn, %3198 ], [ %3175, %3174 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %434) #10
  br label %3205

3200:                                             ; preds = %2859
  %3201 = landingpad { ptr, i32 }
          cleanup
  br label %3204

3202:                                             ; preds = %2860
  %3203 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %444) #10
  br label %3204

3204:                                             ; preds = %3202, %3200
  %.pn1711 = phi { ptr, i32 } [ %3203, %3202 ], [ %3201, %3200 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %445) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %444) #10
  br label %3205

3205:                                             ; preds = %2763, %2765, %2767, %3204, %3199, %3172, %3171, %3100, %3017, %2952
  %.pn2668.pn = phi { ptr, i32 } [ %.pn1711, %3204 ], [ %.pn1702.pn.pn.pn.pn.pn.pn.pn, %3199 ], [ %3173, %3172 ], [ %.pn1678.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3171 ], [ %.pn1650.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3100 ], [ %.pn1628.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3017 ], [ %.pn1626, %2952 ], [ %2768, %2767 ], [ %2766, %2765 ], [ %2764, %2763 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %354) #10
  br label %3206

3206:                                             ; preds = %3205, %2755
  %.pn2668.pn.pn = phi { ptr, i32 } [ %.pn2668.pn, %3205 ], [ %2756, %2755 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %354) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #10
  br label %3207

3207:                                             ; preds = %3206, %2754
  %.pn2668.pn.pn.pn = phi { ptr, i32 } [ %.pn2668.pn.pn, %3206 ], [ %.pn1624, %2754 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %351) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %348) #10
  br label %3208

3208:                                             ; preds = %3207, %2749
  %.pn2668.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2668.pn.pn.pn, %3207 ], [ %.pn1622, %2749 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %348) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %345) #10
  br label %3209

3209:                                             ; preds = %3208, %2744
  %.pn2668.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2668.pn.pn.pn.pn, %3208 ], [ %.pn1620, %2744 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %345) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #10
  br label %3210

3210:                                             ; preds = %3209, %2739
  %.pn2668.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2668.pn.pn.pn.pn.pn, %3209 ], [ %.pn1618, %2739 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %342) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %341) #10
  br label %3211

3211:                                             ; preds = %3210, %2733
  %.pn2668.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2668.pn.pn.pn.pn.pn.pn, %3210 ], [ %2734, %2733 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %341) #10
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %340) #10
  br label %3212

3212:                                             ; preds = %3211, %2731
  %.pn2668.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2668.pn.pn.pn.pn.pn.pn.pn, %3211 ], [ %2732, %2731 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %340) #10
  br label %6795

3213:                                             ; preds = %2861
  %3214 = landingpad { ptr, i32 }
          cleanup
  br label %3379

3215:                                             ; preds = %2862
  %3216 = landingpad { ptr, i32 }
          cleanup
  br label %3219

3217:                                             ; preds = %2863
  %3218 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %448) #10
  br label %3219

3219:                                             ; preds = %3217, %3215
  %.pn1713 = phi { ptr, i32 } [ %3218, %3217 ], [ %3216, %3215 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %449) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %449) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %448) #10
  br label %3378

3220:                                             ; preds = %2864
  %3221 = landingpad { ptr, i32 }
          cleanup
  br label %3224

3222:                                             ; preds = %2865
  %3223 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %451) #10
  br label %3224

3224:                                             ; preds = %3222, %3220
  %.pn1715 = phi { ptr, i32 } [ %3223, %3222 ], [ %3221, %3220 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %452) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %452) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %451) #10
  br label %3377

3225:                                             ; preds = %2866
  %3226 = landingpad { ptr, i32 }
          cleanup
  br label %3229

3227:                                             ; preds = %2867
  %3228 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %454) #10
  br label %3229

3229:                                             ; preds = %3227, %3225
  %.pn1717 = phi { ptr, i32 } [ %3228, %3227 ], [ %3226, %3225 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %455) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %455) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %454) #10
  br label %3376

3230:                                             ; preds = %2868
  %3231 = landingpad { ptr, i32 }
          cleanup
  br label %3375

3232:                                             ; preds = %2869
  %3233 = landingpad { ptr, i32 }
          cleanup
  br label %3374

3234:                                             ; preds = %2881, %2870
  %3235 = landingpad { ptr, i32 }
          cleanup
  br label %3373

3236:                                             ; preds = %2871
  %3237 = landingpad { ptr, i32 }
          cleanup
  br label %3246

3238:                                             ; preds = %2872
  %3239 = landingpad { ptr, i32 }
          cleanup
  br label %3245

3240:                                             ; preds = %2873
  %3241 = landingpad { ptr, i32 }
          cleanup
  br label %3244

3242:                                             ; preds = %2874
  %3243 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %462) #10
  br label %3244

3244:                                             ; preds = %3242, %3240
  %.pn1719 = phi { ptr, i32 } [ %3243, %3242 ], [ %3241, %3240 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %462) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %459) #10
  br label %3245

3245:                                             ; preds = %3244, %3238
  %.pn1719.pn = phi { ptr, i32 } [ %.pn1719, %3244 ], [ %3239, %3238 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %461) #10
  br label %3246

3246:                                             ; preds = %3245, %3236
  %.pn1719.pn.pn = phi { ptr, i32 } [ %.pn1719.pn, %3245 ], [ %3237, %3236 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %460) #10
  br label %3373

3247:                                             ; preds = %2875
  %3248 = landingpad { ptr, i32 }
          cleanup
  br label %3263

3249:                                             ; preds = %2876
  %3250 = landingpad { ptr, i32 }
          cleanup
  br label %3262

3251:                                             ; preds = %2877
  %3252 = landingpad { ptr, i32 }
          cleanup
  br label %3261

3253:                                             ; preds = %2878
  %3254 = landingpad { ptr, i32 }
          cleanup
  br label %3260

3255:                                             ; preds = %2879
  %3256 = landingpad { ptr, i32 }
          cleanup
  br label %3259

3257:                                             ; preds = %2880
  %3258 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %468) #10
  br label %3259

3259:                                             ; preds = %3257, %3255
  %.pn1723 = phi { ptr, i32 } [ %3258, %3257 ], [ %3256, %3255 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %468) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %464) #10
  br label %3260

3260:                                             ; preds = %3259, %3253
  %.pn1723.pn = phi { ptr, i32 } [ %.pn1723, %3259 ], [ %3254, %3253 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %465) #10
  br label %3261

3261:                                             ; preds = %3260, %3251
  %.pn1723.pn.pn = phi { ptr, i32 } [ %.pn1723.pn, %3260 ], [ %3252, %3251 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %467) #10
  br label %3262

3262:                                             ; preds = %3261, %3249
  %.pn1723.pn.pn.pn = phi { ptr, i32 } [ %.pn1723.pn.pn, %3261 ], [ %3250, %3249 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %466) #10
  br label %3263

3263:                                             ; preds = %3262, %3247
  %.pn1723.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1723.pn.pn.pn, %3262 ], [ %3248, %3247 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %465) #10
  br label %3373

3264:                                             ; preds = %2882
  %3265 = landingpad { ptr, i32 }
          cleanup
  br label %3268

3266:                                             ; preds = %2883
  %3267 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %471) #10
  br label %3268

3268:                                             ; preds = %3266, %3264
  %.pn1729 = phi { ptr, i32 } [ %3267, %3266 ], [ %3265, %3264 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %471) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %470) #10
  br label %3373

3269:                                             ; preds = %2884
  %3270 = landingpad { ptr, i32 }
          cleanup
  br label %3372

3271:                                             ; preds = %2885
  %3272 = landingpad { ptr, i32 }
          cleanup
  br label %3275

3273:                                             ; preds = %2886
  %3274 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %474) #10
  br label %3275

3275:                                             ; preds = %3273, %3271
  %.pn1731 = phi { ptr, i32 } [ %3274, %3273 ], [ %3272, %3271 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %473) #10
  br label %3372

3276:                                             ; preds = %2915, %2896, %2893, %2887
  %3277 = landingpad { ptr, i32 }
          cleanup
  br label %3371

3278:                                             ; preds = %2888
  %3279 = landingpad { ptr, i32 }
          cleanup
  br label %3291

3280:                                             ; preds = %2889
  %3281 = landingpad { ptr, i32 }
          cleanup
  br label %3290

3282:                                             ; preds = %2890
  %3283 = landingpad { ptr, i32 }
          cleanup
  br label %3289

3284:                                             ; preds = %2891
  %3285 = landingpad { ptr, i32 }
          cleanup
  br label %3288

3286:                                             ; preds = %2892
  %3287 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %480) #10
  br label %3288

3288:                                             ; preds = %3286, %3284
  %.pn1733 = phi { ptr, i32 } [ %3287, %3286 ], [ %3285, %3284 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %480) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %476) #10
  br label %3289

3289:                                             ; preds = %3288, %3282
  %.pn1733.pn = phi { ptr, i32 } [ %.pn1733, %3288 ], [ %3283, %3282 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %478) #10
  br label %3290

3290:                                             ; preds = %3289, %3280
  %.pn1733.pn.pn = phi { ptr, i32 } [ %.pn1733.pn, %3289 ], [ %3281, %3280 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %479) #10
  br label %3291

3291:                                             ; preds = %3290, %3278
  %.pn1733.pn.pn.pn = phi { ptr, i32 } [ %.pn1733.pn.pn, %3290 ], [ %3279, %3278 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %479) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %477) #10
  br label %3371

3292:                                             ; preds = %2894
  %3293 = landingpad { ptr, i32 }
          cleanup
  br label %3296

3294:                                             ; preds = %2895
  %3295 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %483) #10
  br label %3296

3296:                                             ; preds = %3294, %3292
  %.pn1738 = phi { ptr, i32 } [ %3295, %3294 ], [ %3293, %3292 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %483) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %482) #10
  br label %3371

3297:                                             ; preds = %2897
  %3298 = landingpad { ptr, i32 }
          cleanup
  br label %3304

3299:                                             ; preds = %2898
  %3300 = landingpad { ptr, i32 }
          cleanup
  br label %3303

3301:                                             ; preds = %2899
  %3302 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %486) #10
  br label %3303

3303:                                             ; preds = %3301, %3299
  %.pn1740 = phi { ptr, i32 } [ %3302, %3301 ], [ %3300, %3299 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %487) #10
  br label %3304

3304:                                             ; preds = %3303, %3297
  %.pn1740.pn = phi { ptr, i32 } [ %.pn1740, %3303 ], [ %3298, %3297 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %486) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %485) #10
  br label %3371

3305:                                             ; preds = %2900
  %3306 = landingpad { ptr, i32 }
          cleanup
  br label %3348

3307:                                             ; preds = %2901
  %3308 = landingpad { ptr, i32 }
          cleanup
  br label %3347

3309:                                             ; preds = %2902
  %3310 = landingpad { ptr, i32 }
          cleanup
  br label %3346

3311:                                             ; preds = %2903
  %3312 = landingpad { ptr, i32 }
          cleanup
  br label %3345

3313:                                             ; preds = %2904
  %3314 = landingpad { ptr, i32 }
          cleanup
  br label %3344

3315:                                             ; preds = %2905
  %3316 = landingpad { ptr, i32 }
          cleanup
  br label %3343

3317:                                             ; preds = %2906
  %3318 = landingpad { ptr, i32 }
          cleanup
  br label %3342

3319:                                             ; preds = %2907
  %3320 = landingpad { ptr, i32 }
          cleanup
  br label %3341

3321:                                             ; preds = %2908
  %3322 = landingpad { ptr, i32 }
          cleanup
  br label %3340

3323:                                             ; preds = %2909
  %3324 = landingpad { ptr, i32 }
          cleanup
  br label %3339

3325:                                             ; preds = %2910
  %3326 = landingpad { ptr, i32 }
          cleanup
  br label %3338

3327:                                             ; preds = %2911
  %3328 = landingpad { ptr, i32 }
          cleanup
  br label %3337

3329:                                             ; preds = %2912
  %3330 = landingpad { ptr, i32 }
          cleanup
  br label %3336

3331:                                             ; preds = %2913
  %3332 = landingpad { ptr, i32 }
          cleanup
  br label %3335

3333:                                             ; preds = %2914
  %3334 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %502) #10
  br label %3335

3335:                                             ; preds = %3333, %3331
  %.pn1743 = phi { ptr, i32 } [ %3334, %3333 ], [ %3332, %3331 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %502) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %489) #10
  br label %3336

3336:                                             ; preds = %3335, %3329
  %.pn1743.pn = phi { ptr, i32 } [ %.pn1743, %3335 ], [ %3330, %3329 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %496) #10
  br label %3337

3337:                                             ; preds = %3336, %3327
  %.pn1743.pn.pn = phi { ptr, i32 } [ %.pn1743.pn, %3336 ], [ %3328, %3327 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %497) #10
  br label %3338

3338:                                             ; preds = %3337, %3325
  %.pn1743.pn.pn.pn = phi { ptr, i32 } [ %.pn1743.pn.pn, %3337 ], [ %3326, %3325 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %500) #10
  br label %3339

3339:                                             ; preds = %3338, %3323
  %.pn1743.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1743.pn.pn.pn, %3338 ], [ %3324, %3323 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %501) #10
  br label %3340

3340:                                             ; preds = %3339, %3321
  %.pn1743.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1743.pn.pn.pn.pn, %3339 ], [ %3322, %3321 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %500) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %498) #10
  br label %3341

3341:                                             ; preds = %3340, %3319
  %.pn1743.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1743.pn.pn.pn.pn.pn, %3340 ], [ %3320, %3319 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %499) #10
  br label %3342

3342:                                             ; preds = %3341, %3317
  %.pn1743.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1743.pn.pn.pn.pn.pn.pn, %3341 ], [ %3318, %3317 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %497) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %490) #10
  br label %3343

3343:                                             ; preds = %3342, %3315
  %.pn1743.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1743.pn.pn.pn.pn.pn.pn.pn, %3342 ], [ %3316, %3315 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %491) #10
  br label %3344

3344:                                             ; preds = %3343, %3313
  %.pn1743.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1743.pn.pn.pn.pn.pn.pn.pn.pn, %3343 ], [ %3314, %3313 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %494) #10
  br label %3345

3345:                                             ; preds = %3344, %3311
  %.pn1743.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1743.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3344 ], [ %3312, %3311 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %495) #10
  br label %3346

3346:                                             ; preds = %3345, %3309
  %.pn1743.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1743.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3345 ], [ %3310, %3309 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %494) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %492) #10
  br label %3347

3347:                                             ; preds = %3346, %3307
  %.pn1743.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1743.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3346 ], [ %3308, %3307 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %493) #10
  br label %3348

3348:                                             ; preds = %3347, %3305
  %.pn1743.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1743.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3347 ], [ %3306, %3305 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %491) #10
  br label %3371

3349:                                             ; preds = %2916
  %3350 = landingpad { ptr, i32 }
          cleanup
  br label %3365

3351:                                             ; preds = %2917
  %3352 = landingpad { ptr, i32 }
          cleanup
  br label %3364

3353:                                             ; preds = %2920, %2918
  %3354 = landingpad { ptr, i32 }
          cleanup
  br label %3363

3355:                                             ; preds = %2921
  %3356 = landingpad { ptr, i32 }
          cleanup
  br label %3362

3357:                                             ; preds = %2922
  %3358 = landingpad { ptr, i32 }
          cleanup
  br label %3361

3359:                                             ; preds = %2923
  %3360 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %508) #10
  br label %3361

3361:                                             ; preds = %3359, %3357
  %.pn1758 = phi { ptr, i32 } [ %3360, %3359 ], [ %3358, %3357 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %507) #10
  br label %3362

3362:                                             ; preds = %3361, %3355
  %.pn1758.pn = phi { ptr, i32 } [ %.pn1758, %3361 ], [ %3356, %3355 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %506) #10
  br label %3363

3363:                                             ; preds = %3362, %3353
  %.pn1758.pn.pn = phi { ptr, i32 } [ %.pn1758.pn, %3362 ], [ %3354, %3353 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %505) #10
  br label %3364

3364:                                             ; preds = %3363, %3351
  %.pn1758.pn.pn.pn = phi { ptr, i32 } [ %.pn1758.pn.pn, %3363 ], [ %3352, %3351 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %504) #10
  br label %3365

3365:                                             ; preds = %3364, %3349
  %.pn1758.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1758.pn.pn.pn, %3364 ], [ %3350, %3349 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %503) #10
  br label %3371

3366:                                             ; preds = %2925
  %3367 = landingpad { ptr, i32 }
          cleanup
  br label %3370

3368:                                             ; preds = %2926
  %3369 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %510) #10
  br label %3370

3370:                                             ; preds = %3368, %3366
  %.pn1764 = phi { ptr, i32 } [ %3369, %3368 ], [ %3367, %3366 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %511) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %510) #10
  br label %3371

3371:                                             ; preds = %3370, %3365, %3348, %3304, %3296, %3291, %3276
  %.pn1764.pn = phi { ptr, i32 } [ %.pn1764, %3370 ], [ %.pn1758.pn.pn.pn.pn, %3365 ], [ %3277, %3276 ], [ %.pn1743.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3348 ], [ %.pn1740.pn, %3304 ], [ %.pn1738, %3296 ], [ %.pn1733.pn.pn.pn, %3291 ]
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %472) #10
  br label %3372

3372:                                             ; preds = %3371, %3275, %3269
  %.pn1764.pn.pn = phi { ptr, i32 } [ %.pn1764.pn, %3371 ], [ %.pn1731, %3275 ], [ %3270, %3269 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %472) #10
  br label %3373

3373:                                             ; preds = %3372, %3268, %3263, %3246, %3234
  %.pn1764.pn.pn.pn = phi { ptr, i32 } [ %.pn1764.pn.pn, %3372 ], [ %.pn1729, %3268 ], [ %3235, %3234 ], [ %.pn1723.pn.pn.pn.pn, %3263 ], [ %.pn1719.pn.pn, %3246 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %457) #10
  br label %3374

3374:                                             ; preds = %3373, %3232
  %.pn1764.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1764.pn.pn.pn, %3373 ], [ %3233, %3232 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %457) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %456) #10
  br label %3375

3375:                                             ; preds = %3374, %3230
  %.pn1764.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1764.pn.pn.pn.pn, %3374 ], [ %3231, %3230 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %456) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %453) #10
  br label %3376

3376:                                             ; preds = %3375, %3229
  %.pn1764.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1764.pn.pn.pn.pn.pn, %3375 ], [ %.pn1717, %3229 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %453) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %450) #10
  br label %3377

3377:                                             ; preds = %3376, %3224
  %.pn1764.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1764.pn.pn.pn.pn.pn.pn, %3376 ], [ %.pn1715, %3224 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %450) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %447) #10
  br label %3378

3378:                                             ; preds = %3377, %3219
  %.pn1764.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1764.pn.pn.pn.pn.pn.pn.pn, %3377 ], [ %.pn1713, %3219 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %447) #10
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %446) #10
  br label %3379

3379:                                             ; preds = %3378, %3213
  %.pn1764.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1764.pn.pn.pn.pn.pn.pn.pn.pn, %3378 ], [ %3214, %3213 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %446) #10
  br label %6795

3380:                                             ; preds = %2927
  %3381 = landingpad { ptr, i32 }
          cleanup
  br label %3746

3382:                                             ; preds = %2928
  %lpad.thr_comm.split-lp2873 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2725

.preheader2752.preheader:                         ; preds = %2929, %2930, %2931, %2932
  %.ptr1777.lcssa.ph = phi ptr [ %.ptr1777.4, %2932 ], [ %.ptr1777.3, %2931 ], [ %.ptr1777.2, %2930 ], [ %.ptr1777.1, %2929 ]
  %lpad.thr_comm2872 = landingpad { ptr, i32 }
          cleanup
  br label %.preheader2752

.preheader2752:                                   ; preds = %.preheader2752.preheader, %.preheader2752
  %3383 = phi ptr [ %3384, %.preheader2752 ], [ %.ptr1777.lcssa.ph, %.preheader2752.preheader ]
  %3384 = getelementptr inbounds i8, ptr %3383, i64 -32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3384) #10
  %3385 = icmp eq ptr %3384, %513
  br i1 %3385, label %.loopexit2725, label %.preheader2752

3386:                                             ; preds = %2933
  %lpad.thr_comm.split-lp2882 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2726

.preheader2750.preheader:                         ; preds = %2934, %2935, %2936, %2937
  %.ptr1781.lcssa.ph = phi ptr [ %.ptr1781.4, %2937 ], [ %.ptr1781.3, %2936 ], [ %.ptr1781.2, %2935 ], [ %.ptr1781.1, %2934 ]
  %lpad.thr_comm2881 = landingpad { ptr, i32 }
          cleanup
  br label %.preheader2750

.preheader2750:                                   ; preds = %.preheader2750.preheader, %.preheader2750
  %3387 = phi ptr [ %3388, %.preheader2750 ], [ %.ptr1781.lcssa.ph, %.preheader2750.preheader ]
  %3388 = getelementptr inbounds i8, ptr %3387, i64 -32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3388) #10
  %3389 = icmp eq ptr %3388, %514
  br i1 %3389, label %.loopexit2726, label %.preheader2750

3390:                                             ; preds = %2938
  %3391 = landingpad { ptr, i32 }
          cleanup
  br label %3394

3392:                                             ; preds = %2939
  %3393 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %516) #10
  br label %3394

3394:                                             ; preds = %3392, %3390
  %.pn1783 = phi { ptr, i32 } [ %3393, %3392 ], [ %3391, %3390 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %517) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %517) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %516) #10
  br label %.loopexit2726.loopexit

3395:                                             ; preds = %2940
  %3396 = landingpad { ptr, i32 }
          cleanup
  br label %3737

3397:                                             ; preds = %2941
  %3398 = landingpad { ptr, i32 }
          cleanup
  br label %3736

3399:                                             ; preds = %2942
  %3400 = landingpad { ptr, i32 }
          cleanup
  br label %3735

3401:                                             ; preds = %2943
  %3402 = landingpad { ptr, i32 }
          cleanup
  br label %3411

3403:                                             ; preds = %2944
  %3404 = landingpad { ptr, i32 }
          cleanup
  br label %3410

3405:                                             ; preds = %2945
  %3406 = landingpad { ptr, i32 }
          cleanup
  br label %3409

3407:                                             ; preds = %2946
  %3408 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %524) #10
  br label %3409

3409:                                             ; preds = %3407, %3405
  %.pn1785 = phi { ptr, i32 } [ %3408, %3407 ], [ %3406, %3405 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %524) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %521) #10
  br label %3410

3410:                                             ; preds = %3409, %3403
  %.pn1785.pn = phi { ptr, i32 } [ %.pn1785, %3409 ], [ %3404, %3403 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %523) #10
  br label %3411

3411:                                             ; preds = %3410, %3401
  %.pn1785.pn.pn = phi { ptr, i32 } [ %.pn1785.pn, %3410 ], [ %3402, %3401 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %522) #10
  br label %3735

3412:                                             ; preds = %2947
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %527, ptr noundef nonnull align 8 dereferenceable(56) %528)
          to label %3413 unwind label %3434

3413:                                             ; preds = %3412
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %526, ptr noundef nonnull %527, i32 noundef 1)
          to label %3414 unwind label %3436

3414:                                             ; preds = %3413
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %529) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %529, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1777.1, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3415 unwind label %3438

3415:                                             ; preds = %3414
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %525, ptr noundef nonnull align 8 dereferenceable(56) %529, ptr noundef nonnull %526)
          to label %3416 unwind label %3440

3416:                                             ; preds = %3415
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %525) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %529) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %529) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %526) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %527) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %528) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %528) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %528) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %528, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1777.1, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3417 unwind label %3432

3417:                                             ; preds = %3416
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %527, ptr noundef nonnull align 8 dereferenceable(56) %528)
          to label %3418 unwind label %3434

3418:                                             ; preds = %3417
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %526, ptr noundef nonnull %527, i32 noundef 1)
          to label %3419 unwind label %3436

3419:                                             ; preds = %3418
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %529) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %529, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1777.2, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3420 unwind label %3438

3420:                                             ; preds = %3419
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %525, ptr noundef nonnull align 8 dereferenceable(56) %529, ptr noundef nonnull %526)
          to label %3421 unwind label %3440

3421:                                             ; preds = %3420
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %525) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %529) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %529) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %526) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %527) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %528) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %528) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %528) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %528, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1777.2, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3422 unwind label %3432

3422:                                             ; preds = %3421
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %527, ptr noundef nonnull align 8 dereferenceable(56) %528)
          to label %3423 unwind label %3434

3423:                                             ; preds = %3422
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %526, ptr noundef nonnull %527, i32 noundef 1)
          to label %3424 unwind label %3436

3424:                                             ; preds = %3423
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %529) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %529, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1777.3, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3425 unwind label %3438

3425:                                             ; preds = %3424
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %525, ptr noundef nonnull align 8 dereferenceable(56) %529, ptr noundef nonnull %526)
          to label %3426 unwind label %3440

3426:                                             ; preds = %3425
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %525) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %529) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %529) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %526) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %527) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %528) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %528) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %528) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %528, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1777.3, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3427 unwind label %3432

3427:                                             ; preds = %3426
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %527, ptr noundef nonnull align 8 dereferenceable(56) %528)
          to label %3428 unwind label %3434

3428:                                             ; preds = %3427
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %526, ptr noundef nonnull %527, i32 noundef 1)
          to label %3429 unwind label %3436

3429:                                             ; preds = %3428
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %529) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %529, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1777.4, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3430 unwind label %3438

3430:                                             ; preds = %3429
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %525, ptr noundef nonnull align 8 dereferenceable(56) %529, ptr noundef nonnull %526)
          to label %3431 unwind label %3440

3431:                                             ; preds = %3430
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %525) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %529) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %529) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %526) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %527) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %528) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %528) #10
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %530) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %531, i32 noundef 1)
          to label %3446 unwind label %3468

3432:                                             ; preds = %3426, %3421, %3416, %2947
  %3433 = landingpad { ptr, i32 }
          cleanup
  br label %3445

3434:                                             ; preds = %3427, %3422, %3417, %3412
  %3435 = landingpad { ptr, i32 }
          cleanup
  br label %3444

3436:                                             ; preds = %3428, %3423, %3418, %3413
  %3437 = landingpad { ptr, i32 }
          cleanup
  br label %3443

3438:                                             ; preds = %3429, %3424, %3419, %3414
  %3439 = landingpad { ptr, i32 }
          cleanup
  br label %3442

3440:                                             ; preds = %3430, %3425, %3420, %3415
  %3441 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %529) #10
  br label %3442

3442:                                             ; preds = %3440, %3438
  %.pn2656 = phi { ptr, i32 } [ %3441, %3440 ], [ %3439, %3438 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %529) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %526) #10
  br label %3443

3443:                                             ; preds = %3442, %3436
  %.pn2656.pn = phi { ptr, i32 } [ %.pn2656, %3442 ], [ %3437, %3436 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %527) #10
  br label %3444

3444:                                             ; preds = %3443, %3434
  %.pn2656.pn.pn = phi { ptr, i32 } [ %.pn2656.pn, %3443 ], [ %3435, %3434 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %528) #10
  br label %3445

3445:                                             ; preds = %3444, %3432
  %.pn2656.pn.pn.pn = phi { ptr, i32 } [ %.pn2656.pn.pn, %3444 ], [ %3433, %3432 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %528) #10
  br label %3735

3446:                                             ; preds = %3431
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %532, i32 noundef 1023)
          to label %3447 unwind label %3470

3447:                                             ; preds = %3446
  invoke void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %530, ptr noundef nonnull %531, ptr noundef nonnull %532)
          to label %3448 unwind label %3472

3448:                                             ; preds = %3447
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %532) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %531) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %534) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %534, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1777.4, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3449 unwind label %3475

3449:                                             ; preds = %3448
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %535) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %535, ptr noundef nonnull align 8 dereferenceable(32) %515, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3450 unwind label %3477

3450:                                             ; preds = %3449
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %533, ptr noundef nonnull align 8 dereferenceable(56) %535, ptr noundef nonnull align 8 dereferenceable(56) %534)
          to label %3451 unwind label %3479

3451:                                             ; preds = %3450
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %533) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %535) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %535) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %534) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %534) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %537) #10
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %539, ptr noundef nonnull align 8 dereferenceable(200) %530)
          to label %3452 unwind label %3483

3452:                                             ; preds = %3451
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %538, ptr noundef nonnull %539, i32 noundef 1)
          to label %3453 unwind label %3485

3453:                                             ; preds = %3452
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %537, ptr noundef nonnull align 8 dereferenceable(32) %515, ptr noundef nonnull %538, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3454 unwind label %3487

3454:                                             ; preds = %3453
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %540) #10
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %541, ptr noundef nonnull align 8 dereferenceable(200) %530)
          to label %3455 unwind label %3489

3455:                                             ; preds = %3454
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %540, ptr noundef nonnull align 8 dereferenceable(32) %515, ptr noundef nonnull %541, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3456 unwind label %3491

3456:                                             ; preds = %3455
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %536, ptr noundef nonnull align 8 dereferenceable(56) %540, ptr noundef nonnull align 8 dereferenceable(56) %537)
          to label %3457 unwind label %3493

3457:                                             ; preds = %3456
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %536) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %540) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %541) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %540) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %537) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %538) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %539) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %537) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %545) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %545, ptr noundef nonnull align 8 dereferenceable(32) %515, ptr noundef nonnull align 8 dereferenceable(32) %519, ptr noundef nonnull align 8 dereferenceable(32) %518)
          to label %3458 unwind label %3500

3458:                                             ; preds = %3457
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %544, ptr noundef nonnull align 8 dereferenceable(56) %545)
          to label %3459 unwind label %3502

3459:                                             ; preds = %3458
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %547) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %548, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3460 unwind label %3504

3460:                                             ; preds = %3459
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %549) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %550, ptr noundef nonnull align 8 dereferenceable(32) %518)
          to label %3461 unwind label %3506

3461:                                             ; preds = %3460
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %549, ptr noundef nonnull %550, i32 noundef 100)
          to label %3462 unwind label %3508

3462:                                             ; preds = %3461
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %547, ptr noundef nonnull align 8 dereferenceable(32) %515, ptr noundef nonnull %548, ptr noundef nonnull align 8 dereferenceable(8) %549)
          to label %3463 unwind label %3510

3463:                                             ; preds = %3462
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %546, ptr noundef nonnull align 8 dereferenceable(56) %547)
          to label %3464 unwind label %3512

3464:                                             ; preds = %3463
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %543, ptr noundef nonnull %544, ptr noundef nonnull %546)
          to label %3465 unwind label %3514

3465:                                             ; preds = %3464
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %551) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %551, ptr noundef nonnull align 8 dereferenceable(32) %514, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3466 unwind label %3516

3466:                                             ; preds = %3465
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %542, ptr noundef nonnull align 8 dereferenceable(56) %551, ptr noundef nonnull %543)
          to label %3467 unwind label %3518

3467:                                             ; preds = %3466
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %542) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %551) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %551) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %543) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %546) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %547) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %549) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %550) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %549) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %548) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %547) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %544) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %545) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %545) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %555) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %555, ptr noundef nonnull align 8 dereferenceable(32) %514, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3529 unwind label %3549

3468:                                             ; preds = %3431
  %3469 = landingpad { ptr, i32 }
          cleanup
  br label %3734

3470:                                             ; preds = %3446
  %3471 = landingpad { ptr, i32 }
          cleanup
  br label %3474

3472:                                             ; preds = %3447
  %3473 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %532) #10
  br label %3474

3474:                                             ; preds = %3472, %3470
  %.pn1789 = phi { ptr, i32 } [ %3473, %3472 ], [ %3471, %3470 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %531) #10
  br label %3734

3475:                                             ; preds = %3448
  %3476 = landingpad { ptr, i32 }
          cleanup
  br label %3482

3477:                                             ; preds = %3449
  %3478 = landingpad { ptr, i32 }
          cleanup
  br label %3481

3479:                                             ; preds = %3450
  %3480 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %535) #10
  br label %3481

3481:                                             ; preds = %3479, %3477
  %.pn1791 = phi { ptr, i32 } [ %3480, %3479 ], [ %3478, %3477 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %535) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %534) #10
  br label %3482

3482:                                             ; preds = %3481, %3475
  %.pn1791.pn = phi { ptr, i32 } [ %.pn1791, %3481 ], [ %3476, %3475 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %534) #10
  br label %3733

3483:                                             ; preds = %3451
  %3484 = landingpad { ptr, i32 }
          cleanup
  br label %3499

3485:                                             ; preds = %3452
  %3486 = landingpad { ptr, i32 }
          cleanup
  br label %3498

3487:                                             ; preds = %3453
  %3488 = landingpad { ptr, i32 }
          cleanup
  br label %3497

3489:                                             ; preds = %3454
  %3490 = landingpad { ptr, i32 }
          cleanup
  br label %3496

3491:                                             ; preds = %3455
  %3492 = landingpad { ptr, i32 }
          cleanup
  br label %3495

3493:                                             ; preds = %3456
  %3494 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %540) #10
  br label %3495

3495:                                             ; preds = %3493, %3491
  %.pn1794 = phi { ptr, i32 } [ %3494, %3493 ], [ %3492, %3491 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %541) #10
  br label %3496

3496:                                             ; preds = %3495, %3489
  %.pn1794.pn = phi { ptr, i32 } [ %.pn1794, %3495 ], [ %3490, %3489 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %540) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %537) #10
  br label %3497

3497:                                             ; preds = %3496, %3487
  %.pn1794.pn.pn = phi { ptr, i32 } [ %.pn1794.pn, %3496 ], [ %3488, %3487 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %538) #10
  br label %3498

3498:                                             ; preds = %3497, %3485
  %.pn1794.pn.pn.pn = phi { ptr, i32 } [ %.pn1794.pn.pn, %3497 ], [ %3486, %3485 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %539) #10
  br label %3499

3499:                                             ; preds = %3498, %3483
  %.pn1794.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1794.pn.pn.pn, %3498 ], [ %3484, %3483 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %537) #10
  br label %3733

3500:                                             ; preds = %3457
  %3501 = landingpad { ptr, i32 }
          cleanup
  br label %3528

3502:                                             ; preds = %3458
  %3503 = landingpad { ptr, i32 }
          cleanup
  br label %3527

3504:                                             ; preds = %3459
  %3505 = landingpad { ptr, i32 }
          cleanup
  br label %3526

3506:                                             ; preds = %3460
  %3507 = landingpad { ptr, i32 }
          cleanup
  br label %3525

3508:                                             ; preds = %3461
  %3509 = landingpad { ptr, i32 }
          cleanup
  br label %3524

3510:                                             ; preds = %3462
  %3511 = landingpad { ptr, i32 }
          cleanup
  br label %3523

3512:                                             ; preds = %3463
  %3513 = landingpad { ptr, i32 }
          cleanup
  br label %3522

3514:                                             ; preds = %3464
  %3515 = landingpad { ptr, i32 }
          cleanup
  br label %3521

3516:                                             ; preds = %3465
  %3517 = landingpad { ptr, i32 }
          cleanup
  br label %3520

3518:                                             ; preds = %3466
  %3519 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %551) #10
  br label %3520

3520:                                             ; preds = %3518, %3516
  %.pn1800 = phi { ptr, i32 } [ %3519, %3518 ], [ %3517, %3516 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %551) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %543) #10
  br label %3521

3521:                                             ; preds = %3520, %3514
  %.pn1800.pn = phi { ptr, i32 } [ %.pn1800, %3520 ], [ %3515, %3514 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %546) #10
  br label %3522

3522:                                             ; preds = %3521, %3512
  %.pn1800.pn.pn = phi { ptr, i32 } [ %.pn1800.pn, %3521 ], [ %3513, %3512 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %547) #10
  br label %3523

3523:                                             ; preds = %3522, %3510
  %.pn1800.pn.pn.pn = phi { ptr, i32 } [ %.pn1800.pn.pn, %3522 ], [ %3511, %3510 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %549) #10
  br label %3524

3524:                                             ; preds = %3523, %3508
  %.pn1800.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1800.pn.pn.pn, %3523 ], [ %3509, %3508 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %550) #10
  br label %3525

3525:                                             ; preds = %3524, %3506
  %.pn1800.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1800.pn.pn.pn.pn, %3524 ], [ %3507, %3506 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %549) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %548) #10
  br label %3526

3526:                                             ; preds = %3525, %3504
  %.pn1800.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1800.pn.pn.pn.pn.pn, %3525 ], [ %3505, %3504 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %547) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %544) #10
  br label %3527

3527:                                             ; preds = %3526, %3502
  %.pn1800.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1800.pn.pn.pn.pn.pn.pn, %3526 ], [ %3503, %3502 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %545) #10
  br label %3528

3528:                                             ; preds = %3527, %3500
  %.pn1800.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1800.pn.pn.pn.pn.pn.pn.pn, %3527 ], [ %3501, %3500 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %545) #10
  br label %3733

3529:                                             ; preds = %3467
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %554, ptr noundef nonnull align 8 dereferenceable(56) %555)
          to label %3530 unwind label %3551

3530:                                             ; preds = %3529
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %553, ptr noundef nonnull %554, i32 noundef 1)
          to label %3531 unwind label %3553

3531:                                             ; preds = %3530
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %556) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %556, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1781.1, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3532 unwind label %3555

3532:                                             ; preds = %3531
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %552, ptr noundef nonnull align 8 dereferenceable(56) %556, ptr noundef nonnull %553)
          to label %3533 unwind label %3557

3533:                                             ; preds = %3532
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %552) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %556) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %556) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %553) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %554) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %555) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %555) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %555) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %555, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1781.1, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3534 unwind label %3549

3534:                                             ; preds = %3533
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %554, ptr noundef nonnull align 8 dereferenceable(56) %555)
          to label %3535 unwind label %3551

3535:                                             ; preds = %3534
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %553, ptr noundef nonnull %554, i32 noundef 1)
          to label %3536 unwind label %3553

3536:                                             ; preds = %3535
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %556) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %556, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1781.2, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3537 unwind label %3555

3537:                                             ; preds = %3536
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %552, ptr noundef nonnull align 8 dereferenceable(56) %556, ptr noundef nonnull %553)
          to label %3538 unwind label %3557

3538:                                             ; preds = %3537
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %552) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %556) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %556) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %553) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %554) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %555) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %555) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %555) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %555, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1781.2, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3539 unwind label %3549

3539:                                             ; preds = %3538
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %554, ptr noundef nonnull align 8 dereferenceable(56) %555)
          to label %3540 unwind label %3551

3540:                                             ; preds = %3539
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %553, ptr noundef nonnull %554, i32 noundef 1)
          to label %3541 unwind label %3553

3541:                                             ; preds = %3540
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %556) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %556, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1781.3, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3542 unwind label %3555

3542:                                             ; preds = %3541
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %552, ptr noundef nonnull align 8 dereferenceable(56) %556, ptr noundef nonnull %553)
          to label %3543 unwind label %3557

3543:                                             ; preds = %3542
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %552) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %556) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %556) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %553) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %554) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %555) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %555) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %555) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %555, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1781.3, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3544 unwind label %3549

3544:                                             ; preds = %3543
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %554, ptr noundef nonnull align 8 dereferenceable(56) %555)
          to label %3545 unwind label %3551

3545:                                             ; preds = %3544
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %553, ptr noundef nonnull %554, i32 noundef 1)
          to label %3546 unwind label %3553

3546:                                             ; preds = %3545
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %556) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %556, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1781.4, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3547 unwind label %3555

3547:                                             ; preds = %3546
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %552, ptr noundef nonnull align 8 dereferenceable(56) %556, ptr noundef nonnull %553)
          to label %3548 unwind label %3557

3548:                                             ; preds = %3547
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %552) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %556) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %556) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %553) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %554) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %555) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %555) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %557, ptr noundef nonnull align 8 dereferenceable(32) %518)
          to label %3563 unwind label %3709

3549:                                             ; preds = %3543, %3538, %3533, %3467
  %3550 = landingpad { ptr, i32 }
          cleanup
  br label %3562

3551:                                             ; preds = %3544, %3539, %3534, %3529
  %3552 = landingpad { ptr, i32 }
          cleanup
  br label %3561

3553:                                             ; preds = %3545, %3540, %3535, %3530
  %3554 = landingpad { ptr, i32 }
          cleanup
  br label %3560

3555:                                             ; preds = %3546, %3541, %3536, %3531
  %3556 = landingpad { ptr, i32 }
          cleanup
  br label %3559

3557:                                             ; preds = %3547, %3542, %3537, %3532
  %3558 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %556) #10
  br label %3559

3559:                                             ; preds = %3557, %3555
  %.pn2649 = phi { ptr, i32 } [ %3558, %3557 ], [ %3556, %3555 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %556) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %553) #10
  br label %3560

3560:                                             ; preds = %3559, %3553
  %.pn2649.pn = phi { ptr, i32 } [ %.pn2649, %3559 ], [ %3554, %3553 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %554) #10
  br label %3561

3561:                                             ; preds = %3560, %3551
  %.pn2649.pn.pn = phi { ptr, i32 } [ %.pn2649.pn, %3560 ], [ %3552, %3551 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %555) #10
  br label %3562

3562:                                             ; preds = %3561, %3549
  %.pn2649.pn.pn.pn = phi { ptr, i32 } [ %.pn2649.pn.pn, %3561 ], [ %3550, %3549 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %555) #10
  br label %3733

3563:                                             ; preds = %3548
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %558, i32 noundef 0)
          to label %3564 unwind label %3711

3564:                                             ; preds = %3563
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %559, i32 noundef 1024)
          to label %3565 unwind label %3713

3565:                                             ; preds = %3564
  %3566 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %.ptr1781.4, ptr noundef nonnull %557, ptr noundef nonnull %558, ptr noundef nonnull %559)
          to label %3567 unwind label %3715

3567:                                             ; preds = %3565
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %560, ptr noundef nonnull align 8 dereferenceable(32) %519)
          to label %3568 unwind label %3715

3568:                                             ; preds = %3567
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %561, i32 noundef 0)
          to label %3569 unwind label %3717

3569:                                             ; preds = %3568
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %562, i32 noundef 1024)
          to label %3570 unwind label %3719

3570:                                             ; preds = %3569
  %3571 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %3566, ptr noundef nonnull %560, ptr noundef nonnull %561, ptr noundef nonnull %562)
          to label %3572 unwind label %3721

3572:                                             ; preds = %3570
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %562) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %561) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %560) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %559) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %558) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %557) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %564) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %565, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1781.4) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %564, ptr noundef nonnull %565)
          to label %3573 unwind label %3728

3573:                                             ; preds = %3572
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %563, ptr noundef nonnull align 8 dereferenceable(8) %564, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %3574 unwind label %3730

3574:                                             ; preds = %3573
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %563) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %564) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %565) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %564) #10
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %530) #10
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %530) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %519) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %519) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %518) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %518) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %515) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %515) #10
  %3575 = getelementptr inbounds i8, ptr %514, i64 128
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3575) #10
  %3576 = getelementptr inbounds i8, ptr %514, i64 96
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3576) #10
  %3577 = getelementptr inbounds i8, ptr %514, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3577) #10
  %3578 = getelementptr inbounds i8, ptr %514, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3578) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %514) #10
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %514) #10
  %3579 = getelementptr inbounds i8, ptr %513, i64 128
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3579) #10
  %3580 = getelementptr inbounds i8, ptr %513, i64 96
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3580) #10
  %3581 = getelementptr inbounds i8, ptr %513, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3581) #10
  %3582 = getelementptr inbounds i8, ptr %513, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3582) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %513) #10
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %513) #10
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %512) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %512) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %566) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %567) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %568) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %568) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %567, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %568)
          to label %3583 unwind label %3747

3583:                                             ; preds = %3574
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %566, ptr noundef nonnull align 8 dereferenceable(32) %567)
          to label %3584 unwind label %3749

3584:                                             ; preds = %3583
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %567) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %568) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %568) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %567) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %569) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %570) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %571) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %571) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %570, ptr noundef nonnull @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %571)
          to label %3585 unwind label %3752

3585:                                             ; preds = %3584
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %569, ptr noundef nonnull align 8 dereferenceable(32) %570)
          to label %3586 unwind label %3754

3586:                                             ; preds = %3585
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %570) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %571) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %571) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %570) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %572) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %573) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %574) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %574) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %573, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %574)
          to label %3587 unwind label %3757

3587:                                             ; preds = %3586
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %572, ptr noundef nonnull align 8 dereferenceable(32) %573)
          to label %3588 unwind label %3759

3588:                                             ; preds = %3587
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %573) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %574) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %574) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %573) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %575) #10
  invoke void @_ZN6Halide6BufferIhEC2IJEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %575, i32 noundef 1048578)
          to label %3589 unwind label %3762

3589:                                             ; preds = %3588
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %576) #10
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %576)
          to label %3590 unwind label %3764

3590:                                             ; preds = %3589
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %587, ptr noundef nonnull align 8 dereferenceable(32) %576)
          to label %3591 unwind label %3766

3591:                                             ; preds = %3590
  invoke void @_ZNK6Halide6BufferIhEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %586, ptr noundef nonnull align 8 dereferenceable(16) %575, ptr noundef nonnull %587)
          to label %3592 unwind label %3768

3592:                                             ; preds = %3591
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %585, ptr noundef nonnull %586, i32 noundef 1)
          to label %3593 unwind label %3770

3593:                                             ; preds = %3592
  invoke void @_ZN6Halide3minENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %584, ptr noundef nonnull %585, i32 noundef 17)
          to label %3594 unwind label %3772

3594:                                             ; preds = %3593
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %590, ptr noundef nonnull align 8 dereferenceable(32) %576)
          to label %3595 unwind label %3774

3595:                                             ; preds = %3594
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %589, ptr noundef nonnull %590, i32 noundef 1)
          to label %3596 unwind label %3776

3596:                                             ; preds = %3595
  invoke void @_ZNK6Halide6BufferIhEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %588, ptr noundef nonnull align 8 dereferenceable(16) %575, ptr noundef nonnull %589)
          to label %3597 unwind label %3778

3597:                                             ; preds = %3596
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %583, ptr noundef nonnull %584, ptr noundef nonnull %588)
          to label %3598 unwind label %3780

3598:                                             ; preds = %3597
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %593, ptr noundef nonnull align 8 dereferenceable(32) %576)
          to label %3599 unwind label %3782

3599:                                             ; preds = %3598
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %592, ptr noundef nonnull %593, i32 noundef 2)
          to label %3600 unwind label %3784

3600:                                             ; preds = %3599
  invoke void @_ZNK6Halide6BufferIhEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %591, ptr noundef nonnull align 8 dereferenceable(16) %575, ptr noundef nonnull %592)
          to label %3601 unwind label %3786

3601:                                             ; preds = %3600
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %582, ptr noundef nonnull %583, ptr noundef nonnull %591)
          to label %3602 unwind label %3788

3602:                                             ; preds = %3601
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %595, ptr noundef nonnull align 8 dereferenceable(32) %576)
          to label %3603 unwind label %3790

3603:                                             ; preds = %3602
  invoke void @_ZNK6Halide6BufferIhEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %594, ptr noundef nonnull align 8 dereferenceable(16) %575, ptr noundef nonnull %595)
          to label %3604 unwind label %3792

3604:                                             ; preds = %3603
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %581, ptr noundef nonnull %582, ptr noundef nonnull %594)
          to label %3605 unwind label %3794

3605:                                             ; preds = %3604
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %597, ptr noundef nonnull align 8 dereferenceable(32) %576)
          to label %3606 unwind label %3796

3606:                                             ; preds = %3605
  invoke void @_ZNK6Halide6BufferIhEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %596, ptr noundef nonnull align 8 dereferenceable(16) %575, ptr noundef nonnull %597)
          to label %3607 unwind label %3798

3607:                                             ; preds = %3606
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %580, ptr noundef nonnull %581, ptr noundef nonnull %596)
          to label %3608 unwind label %3800

3608:                                             ; preds = %3607
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %600, ptr noundef nonnull align 8 dereferenceable(32) %576)
          to label %3609 unwind label %3802

3609:                                             ; preds = %3608
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %599, ptr noundef nonnull %600, i32 noundef 1)
          to label %3610 unwind label %3804

3610:                                             ; preds = %3609
  invoke void @_ZNK6Halide6BufferIhEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %598, ptr noundef nonnull align 8 dereferenceable(16) %575, ptr noundef nonnull %599)
          to label %3611 unwind label %3806

3611:                                             ; preds = %3610
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %579, ptr noundef nonnull %580, ptr noundef nonnull %598)
          to label %3612 unwind label %3808

3612:                                             ; preds = %3611
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %603, ptr noundef nonnull align 8 dereferenceable(32) %576)
          to label %3613 unwind label %3810

3613:                                             ; preds = %3612
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %602, ptr noundef nonnull %603, i32 noundef 1)
          to label %3614 unwind label %3812

3614:                                             ; preds = %3613
  invoke void @_ZNK6Halide6BufferIhEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %601, ptr noundef nonnull align 8 dereferenceable(16) %575, ptr noundef nonnull %602)
          to label %3615 unwind label %3814

3615:                                             ; preds = %3614
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %578, ptr noundef nonnull %579, ptr noundef nonnull %601)
          to label %3616 unwind label %3816

3616:                                             ; preds = %3615
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %604) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %604, ptr noundef nonnull align 8 dereferenceable(32) %566, ptr noundef nonnull align 8 dereferenceable(32) %576)
          to label %3617 unwind label %3818

3617:                                             ; preds = %3616
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %577, ptr noundef nonnull align 8 dereferenceable(56) %604, ptr noundef nonnull %578)
          to label %3618 unwind label %3820

3618:                                             ; preds = %3617
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %577) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %604) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %604) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %578) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %601) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %602) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %603) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %579) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %598) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %599) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %600) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %580) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %596) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %597) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %581) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %594) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %595) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %582) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %591) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %592) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %593) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %583) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %588) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %589) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %590) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %584) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %585) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %586) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %587) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %609) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %609, ptr noundef nonnull align 8 dereferenceable(32) %566, ptr noundef nonnull align 8 dereferenceable(32) %576)
          to label %3619 unwind label %3848

3619:                                             ; preds = %3618
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %608, ptr noundef nonnull align 8 dereferenceable(56) %609)
          to label %3620 unwind label %3850

3620:                                             ; preds = %3619
  invoke void @_ZN6Halide4castImEENS_4ExprES1_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %607, ptr noundef nonnull %608)
          to label %3621 unwind label %3852

3621:                                             ; preds = %3620
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %606, ptr noundef nonnull %607, i32 noundef 1)
          to label %3622 unwind label %3854

3622:                                             ; preds = %3621
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %610) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %610, ptr noundef nonnull align 8 dereferenceable(32) %569, ptr noundef nonnull align 8 dereferenceable(32) %576)
          to label %3623 unwind label %3856

3623:                                             ; preds = %3622
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %605, ptr noundef nonnull align 8 dereferenceable(56) %610, ptr noundef nonnull %606)
          to label %3624 unwind label %3858

3624:                                             ; preds = %3623
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %605) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %610) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %610) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %606) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %607) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %608) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %609) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %609) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %613) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %614) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %614, ptr noundef nonnull align 8 dereferenceable(32) %569, ptr noundef nonnull align 8 dereferenceable(32) %576)
          to label %3625 unwind label %3865

3625:                                             ; preds = %3624
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %613, ptr noundef nonnull align 8 dereferenceable(56) %614)
          to label %3626 unwind label %3867

3626:                                             ; preds = %3625
  invoke void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %612, ptr noundef nonnull align 8 dereferenceable(8) %613, i32 noundef 3)
          to label %3627 unwind label %3869

3627:                                             ; preds = %3626
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %615) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %615, ptr noundef nonnull align 8 dereferenceable(32) %572, ptr noundef nonnull align 8 dereferenceable(32) %576)
          to label %3628 unwind label %3871

3628:                                             ; preds = %3627
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %611, ptr noundef nonnull align 8 dereferenceable(56) %615, ptr noundef nonnull %612)
          to label %3629 unwind label %3873

3629:                                             ; preds = %3628
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %611) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %615) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %615) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %612) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %613) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %614) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %614) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %613) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %616, ptr noundef nonnull align 8 dereferenceable(32) %576)
          to label %3630 unwind label %3766

3630:                                             ; preds = %3629
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %617, i32 noundef 0)
          to label %3631 unwind label %3879

3631:                                             ; preds = %3630
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %618, i32 noundef 1048576)
          to label %3632 unwind label %3881

3632:                                             ; preds = %3631
  %3633 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %572, ptr noundef nonnull %616, ptr noundef nonnull %617, ptr noundef nonnull %618)
          to label %3634 unwind label %3883

3634:                                             ; preds = %3632
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %618) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %617) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %616) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %620) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %621, ptr noundef nonnull align 8 dereferenceable(32) %572) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %620, ptr noundef nonnull %621)
          to label %3635 unwind label %3887

3635:                                             ; preds = %3634
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %619, ptr noundef nonnull align 8 dereferenceable(8) %620, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %3636 unwind label %3889

3636:                                             ; preds = %3635
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %619) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %620) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %621) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %620) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %576) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %576) #10
  call void @_ZN6Halide6BufferIhED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %575) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %575) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %572) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %572) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %569) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %569) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %566) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %566) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %622) #10
  invoke void @_ZN6Halide6BufferIfEC2IJiPKcEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %622, i32 noundef 1024, i32 noundef 1024, ptr noundef nonnull @.str.17)
          to label %3637 unwind label %3898

3637:                                             ; preds = %3636
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %623) #10
  invoke void @_ZN6Halide6BufferIfEC2IJiPKcEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %623, i32 noundef 1024, i32 noundef 1024, ptr noundef nonnull @.str.18)
          to label %3638 unwind label %3900

3638:                                             ; preds = %3637
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %624) #10
  store float 0.000000e+00, ptr %624, align 4, !tbaa !15
  %3639 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6Halide6BufferIfE4fillIfEERS1_OT_(ptr noundef nonnull align 8 dereferenceable(16) %622, ptr noundef nonnull align 4 dereferenceable(4) %624)
          to label %3640 unwind label %3902

3640:                                             ; preds = %3638
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %624) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %625) #10
  store float 0.000000e+00, ptr %625, align 4, !tbaa !15
  %3641 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN6Halide6BufferIfE4fillIfEERS1_OT_(ptr noundef nonnull align 8 dereferenceable(16) %623, ptr noundef nonnull align 4 dereferenceable(4) %625)
          to label %3642 unwind label %3904

3642:                                             ; preds = %3640
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %625) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %626) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %627) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %628)
          to label %3643 unwind label %3906

3643:                                             ; preds = %3642
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %626, ptr noundef nonnull align 8 dereferenceable(32) %627)
          to label %3644 unwind label %3908

3644:                                             ; preds = %3643
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %627) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %628) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %628) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %627) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %629) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %630) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %631) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %631) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %630, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %631)
          to label %3645 unwind label %3911

3645:                                             ; preds = %3644
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %629, ptr noundef nonnull align 8 dereferenceable(32) %630)
          to label %3646 unwind label %3913

3646:                                             ; preds = %3645
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %630) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %631) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %631) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %630) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %632) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %633) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %634) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %634) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %633, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %634)
          to label %3647 unwind label %3916

3647:                                             ; preds = %3646
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %632, ptr noundef nonnull align 8 dereferenceable(32) %633)
          to label %3648 unwind label %3918

3648:                                             ; preds = %3647
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %633) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %634) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %634) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %633) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %635) #10
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %635)
          to label %3649 unwind label %3921

3649:                                             ; preds = %3648
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %636) #10
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %636)
          to label %3650 unwind label %3923

3650:                                             ; preds = %3649
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %639, ptr noundef nonnull align 8 dereferenceable(32) %636)
          to label %3651 unwind label %3925

3651:                                             ; preds = %3650
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %640, ptr noundef nonnull align 8 dereferenceable(32) %635)
          to label %3652 unwind label %3927

3652:                                             ; preds = %3651
  invoke void @_ZNK6Halide6BufferIfEclIJNS_3VarEEEENS_4ExprES4_DpT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %638, ptr noundef nonnull align 8 dereferenceable(16) %622, ptr noundef nonnull %639, ptr noundef nonnull %640)
          to label %3653 unwind label %3929

3653:                                             ; preds = %3652
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %641) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %641, ptr noundef nonnull align 8 dereferenceable(32) %629, ptr noundef nonnull align 8 dereferenceable(32) %636, ptr noundef nonnull align 8 dereferenceable(32) %635)
          to label %3654 unwind label %3931

3654:                                             ; preds = %3653
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %637, ptr noundef nonnull align 8 dereferenceable(56) %641, ptr noundef nonnull %638)
          to label %3655 unwind label %3933

3655:                                             ; preds = %3654
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %637) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %641) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %641) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %638) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %640) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %639) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %644, ptr noundef nonnull align 8 dereferenceable(32) %636)
          to label %3656 unwind label %3925

3656:                                             ; preds = %3655
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %645, ptr noundef nonnull align 8 dereferenceable(32) %635)
          to label %3657 unwind label %3938

3657:                                             ; preds = %3656
  invoke void @_ZNK6Halide6BufferIfEclIJNS_3VarEEEENS_4ExprES4_DpT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %643, ptr noundef nonnull align 8 dereferenceable(16) %623, ptr noundef nonnull %644, ptr noundef nonnull %645)
          to label %3658 unwind label %3940

3658:                                             ; preds = %3657
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %646) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %646, ptr noundef nonnull align 8 dereferenceable(32) %632, ptr noundef nonnull align 8 dereferenceable(32) %636, ptr noundef nonnull align 8 dereferenceable(32) %635)
          to label %3659 unwind label %3942

3659:                                             ; preds = %3658
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %642, ptr noundef nonnull align 8 dereferenceable(56) %646, ptr noundef nonnull %643)
          to label %3660 unwind label %3944

3660:                                             ; preds = %3659
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %642) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %646) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %646) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %643) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %645) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %644) #10
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %647) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %648, i32 noundef 0)
          to label %3661 unwind label %3949

3661:                                             ; preds = %3660
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %649, i32 noundef 1024)
          to label %3662 unwind label %3951

3662:                                             ; preds = %3661
  invoke void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %647, ptr noundef nonnull %648, ptr noundef nonnull %649)
          to label %3663 unwind label %3953

3663:                                             ; preds = %3662
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %649) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %648) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %653) #10
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %654, ptr noundef nonnull align 8 dereferenceable(200) %647)
          to label %3664 unwind label %3956

3664:                                             ; preds = %3663
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %653, ptr noundef nonnull align 8 dereferenceable(32) %629, ptr noundef nonnull %654, ptr noundef nonnull align 8 dereferenceable(32) %635)
          to label %3665 unwind label %3958

3665:                                             ; preds = %3664
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %652, ptr noundef nonnull align 8 dereferenceable(56) %653)
          to label %3666 unwind label %3960

3666:                                             ; preds = %3665
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %656) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %657, ptr noundef nonnull align 8 dereferenceable(32) %636)
          to label %3667 unwind label %3962

3667:                                             ; preds = %3666
  invoke void @_ZNK6Halide4FuncclIJRNS_4RDomEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %656, ptr noundef nonnull align 8 dereferenceable(32) %632, ptr noundef nonnull %657, ptr noundef nonnull align 8 dereferenceable(200) %647)
          to label %3668 unwind label %3964

3668:                                             ; preds = %3667
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %655, ptr noundef nonnull align 8 dereferenceable(56) %656)
          to label %3669 unwind label %3966

3669:                                             ; preds = %3668
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %651, ptr noundef nonnull %652, ptr noundef nonnull %655)
          to label %3670 unwind label %3968

3670:                                             ; preds = %3669
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %658) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %658, ptr noundef nonnull align 8 dereferenceable(32) %626, ptr noundef nonnull align 8 dereferenceable(32) %636, ptr noundef nonnull align 8 dereferenceable(32) %635)
          to label %3671 unwind label %3970

3671:                                             ; preds = %3670
  invoke void @_ZN6Halide7FuncRefpLENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %650, ptr noundef nonnull align 8 dereferenceable(56) %658, ptr noundef nonnull %651)
          to label %3672 unwind label %3972

3672:                                             ; preds = %3671
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %650) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %658) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %658) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %651) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %655) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %656) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %657) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %656) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %652) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %653) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %654) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %653) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %659) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %660) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %661) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %661) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %660, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %661)
          to label %3673 unwind label %3982

3673:                                             ; preds = %3672
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %659, ptr noundef nonnull align 8 dereferenceable(32) %660)
          to label %3674 unwind label %3984

3674:                                             ; preds = %3673
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %660) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %661) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %661) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %660) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %663) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %663, ptr noundef nonnull align 8 dereferenceable(32) %626, ptr noundef nonnull align 8 dereferenceable(32) %636, ptr noundef nonnull align 8 dereferenceable(32) %635)
          to label %3675 unwind label %3987

3675:                                             ; preds = %3674
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %664) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %664, ptr noundef nonnull align 8 dereferenceable(32) %659, ptr noundef nonnull align 8 dereferenceable(32) %636, ptr noundef nonnull align 8 dereferenceable(32) %635)
          to label %3676 unwind label %3989

3676:                                             ; preds = %3675
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %662, ptr noundef nonnull align 8 dereferenceable(56) %664, ptr noundef nonnull align 8 dereferenceable(56) %663)
          to label %3677 unwind label %3991

3677:                                             ; preds = %3676
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %662) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %664) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %664) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %663) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %663) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %665, ptr noundef nonnull align 8 dereferenceable(32) %636)
          to label %3678 unwind label %3995

3678:                                             ; preds = %3677
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %666, i32 noundef 0)
          to label %3679 unwind label %3997

3679:                                             ; preds = %3678
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %667, i32 noundef 1024)
          to label %3680 unwind label %3999

3680:                                             ; preds = %3679
  %3681 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %659, ptr noundef nonnull %665, ptr noundef nonnull %666, ptr noundef nonnull %667)
          to label %3682 unwind label %4001

3682:                                             ; preds = %3680
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %668, ptr noundef nonnull align 8 dereferenceable(32) %635)
          to label %3683 unwind label %4001

3683:                                             ; preds = %3682
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %669, i32 noundef 0)
          to label %3684 unwind label %4003

3684:                                             ; preds = %3683
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %670, i32 noundef 1024)
          to label %3685 unwind label %4005

3685:                                             ; preds = %3684
  %3686 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %3681, ptr noundef nonnull %668, ptr noundef nonnull %669, ptr noundef nonnull %670)
          to label %3687 unwind label %4007

3687:                                             ; preds = %3685
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %670) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %669) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %668) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %667) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %666) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %665) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %672) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %673, ptr noundef nonnull align 8 dereferenceable(32) %659) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %672, ptr noundef nonnull %673)
          to label %3688 unwind label %4014

3688:                                             ; preds = %3687
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %671, ptr noundef nonnull align 8 dereferenceable(8) %672, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %3689 unwind label %4016

3689:                                             ; preds = %3688
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %671) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %672) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %673) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %672) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %659) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %659) #10
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %647) #10
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %647) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %636) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %636) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %635) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %635) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %632) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %632) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %629) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %629) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %626) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %626) #10
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %623) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %623) #10
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %622) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %622) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %674) #10
  invoke void @_ZN6Halide6BufferIfEC2IJiEvEEiDpT_(ptr noundef nonnull align 8 dereferenceable(16) %674, i32 noundef 1024, i32 noundef 1024)
          to label %3690 unwind label %4032

3690:                                             ; preds = %3689
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %675) #10
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %675)
          to label %3691 unwind label %4034

3691:                                             ; preds = %3690
  %.ptr1926.1 = getelementptr inbounds i8, ptr %675, i64 32
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr1926.1)
          to label %3692 unwind label %.preheader2748.preheader

3692:                                             ; preds = %3691
  %.ptr1926.2 = getelementptr inbounds i8, ptr %675, i64 64
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr1926.2)
          to label %3693 unwind label %.preheader2748.preheader

3693:                                             ; preds = %3692
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %676) #10
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %676)
          to label %3694 unwind label %4038

3694:                                             ; preds = %3693
  %.ptr1930.1 = getelementptr inbounds i8, ptr %676, i64 32
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr1930.1)
          to label %3695 unwind label %.preheader2746.preheader

3695:                                             ; preds = %3694
  %.ptr1930.2 = getelementptr inbounds i8, ptr %676, i64 64
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr1930.2)
          to label %3696 unwind label %.preheader2746.preheader

3696:                                             ; preds = %3695
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %677) #10
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %677)
          to label %3697 unwind label %4042

3697:                                             ; preds = %3696
  %.ptr1934.1 = getelementptr inbounds i8, ptr %677, i64 32
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr1934.1)
          to label %3698 unwind label %.preheader2744.preheader

3698:                                             ; preds = %3697
  %.ptr1934.2 = getelementptr inbounds i8, ptr %677, i64 64
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr1934.2)
          to label %3699 unwind label %.preheader2744.preheader

3699:                                             ; preds = %3698
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %678) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %679) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %680) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %680) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %679, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %680)
          to label %3700 unwind label %4046

3700:                                             ; preds = %3699
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %678, ptr noundef nonnull align 8 dereferenceable(32) %679)
          to label %3701 unwind label %4048

3701:                                             ; preds = %3700
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %679) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %680) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %680) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %679) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %681) #10
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %681)
          to label %3702 unwind label %4051

3702:                                             ; preds = %3701
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %682) #10
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %3703 unwind label %4053

3703:                                             ; preds = %3702
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %685, ptr noundef nonnull align 8 dereferenceable(32) %681)
          to label %3704 unwind label %4055

3704:                                             ; preds = %3703
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %686, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %3705 unwind label %4057

3705:                                             ; preds = %3704
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %684, ptr noundef nonnull %685, ptr noundef nonnull %686)
          to label %3706 unwind label %4059

3706:                                             ; preds = %3705
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %687) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %687, ptr noundef nonnull align 8 dereferenceable(32) %675, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %3707 unwind label %4061

3707:                                             ; preds = %3706
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %683, ptr noundef nonnull align 8 dereferenceable(56) %687, ptr noundef nonnull %684)
          to label %3708 unwind label %4063

3708:                                             ; preds = %3707
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %683) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %687) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %687) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %684) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %686) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %685) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %691) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %691, ptr noundef nonnull align 8 dereferenceable(32) %675, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4068 unwind label %4078

3709:                                             ; preds = %3548
  %3710 = landingpad { ptr, i32 }
          cleanup
  br label %3733

3711:                                             ; preds = %3563
  %3712 = landingpad { ptr, i32 }
          cleanup
  br label %3727

3713:                                             ; preds = %3564
  %3714 = landingpad { ptr, i32 }
          cleanup
  br label %3726

3715:                                             ; preds = %3567, %3565
  %3716 = landingpad { ptr, i32 }
          cleanup
  br label %3725

3717:                                             ; preds = %3568
  %3718 = landingpad { ptr, i32 }
          cleanup
  br label %3724

3719:                                             ; preds = %3569
  %3720 = landingpad { ptr, i32 }
          cleanup
  br label %3723

3721:                                             ; preds = %3570
  %3722 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %562) #10
  br label %3723

3723:                                             ; preds = %3721, %3719
  %.pn1810 = phi { ptr, i32 } [ %3722, %3721 ], [ %3720, %3719 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %561) #10
  br label %3724

3724:                                             ; preds = %3723, %3717
  %.pn1810.pn = phi { ptr, i32 } [ %.pn1810, %3723 ], [ %3718, %3717 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %560) #10
  br label %3725

3725:                                             ; preds = %3724, %3715
  %.pn1810.pn.pn = phi { ptr, i32 } [ %.pn1810.pn, %3724 ], [ %3716, %3715 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %559) #10
  br label %3726

3726:                                             ; preds = %3725, %3713
  %.pn1810.pn.pn.pn = phi { ptr, i32 } [ %.pn1810.pn.pn, %3725 ], [ %3714, %3713 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %558) #10
  br label %3727

3727:                                             ; preds = %3726, %3711
  %.pn1810.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1810.pn.pn.pn, %3726 ], [ %3712, %3711 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %557) #10
  br label %3733

3728:                                             ; preds = %3572
  %3729 = landingpad { ptr, i32 }
          cleanup
  br label %3732

3730:                                             ; preds = %3573
  %3731 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %564) #10
  br label %3732

3732:                                             ; preds = %3730, %3728
  %.pn1816 = phi { ptr, i32 } [ %3731, %3730 ], [ %3729, %3728 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %565) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %564) #10
  br label %3733

3733:                                             ; preds = %3732, %3727, %3709, %3562, %3528, %3499, %3482
  %.pn2649.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2649.pn.pn.pn, %3562 ], [ %.pn1816, %3732 ], [ %.pn1810.pn.pn.pn.pn, %3727 ], [ %3710, %3709 ], [ %.pn1800.pn.pn.pn.pn.pn.pn.pn.pn, %3528 ], [ %.pn1794.pn.pn.pn.pn, %3499 ], [ %.pn1791.pn, %3482 ]
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %530) #10
  br label %3734

3734:                                             ; preds = %3733, %3474, %3468
  %.pn2649.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2649.pn.pn.pn.pn, %3733 ], [ %.pn1789, %3474 ], [ %3469, %3468 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %530) #10
  br label %3735

3735:                                             ; preds = %3734, %3445, %3411, %3399
  %.pn2656.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2656.pn.pn.pn, %3445 ], [ %.pn2649.pn.pn.pn.pn.pn, %3734 ], [ %.pn1785.pn.pn, %3411 ], [ %3400, %3399 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %519) #10
  br label %3736

3736:                                             ; preds = %3735, %3397
  %.pn2656.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2656.pn.pn.pn.pn, %3735 ], [ %3398, %3397 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %519) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %518) #10
  br label %3737

3737:                                             ; preds = %3736, %3395
  %.pn2656.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2656.pn.pn.pn.pn.pn, %3736 ], [ %3396, %3395 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %518) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %515) #10
  br label %.loopexit2726.loopexit

.loopexit2726.loopexit:                           ; preds = %3737, %3394
  %.pn2656.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2656.pn.pn.pn.pn.pn.pn, %3737 ], [ %.pn1783, %3394 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %515) #10
  %3738 = getelementptr inbounds i8, ptr %514, i64 128
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3738) #10
  %3739 = getelementptr inbounds i8, ptr %514, i64 96
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3739) #10
  %3740 = getelementptr inbounds i8, ptr %514, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3740) #10
  %3741 = getelementptr inbounds i8, ptr %514, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3741) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %514) #10
  br label %.loopexit2726

.loopexit2726:                                    ; preds = %.preheader2750, %3386, %.loopexit2726.loopexit
  %.pn2656.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %lpad.thr_comm.split-lp2882, %3386 ], [ %.pn2656.pn.pn.pn.pn.pn.pn.pn, %.loopexit2726.loopexit ], [ %lpad.thr_comm2881, %.preheader2750 ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %514) #10
  %3742 = getelementptr inbounds i8, ptr %513, i64 128
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3742) #10
  %3743 = getelementptr inbounds i8, ptr %513, i64 96
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3743) #10
  %3744 = getelementptr inbounds i8, ptr %513, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3744) #10
  %3745 = getelementptr inbounds i8, ptr %513, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3745) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %513) #10
  br label %.loopexit2725

.loopexit2725:                                    ; preds = %.preheader2752, %3382, %.loopexit2726
  %.pn2656.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %lpad.thr_comm.split-lp2873, %3382 ], [ %.pn2656.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2726 ], [ %lpad.thr_comm2872, %.preheader2752 ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %513) #10
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %512) #10
  br label %3746

3746:                                             ; preds = %.loopexit2725, %3380
  %.pn2656.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2656.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2725 ], [ %3381, %3380 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %512) #10
  br label %6795

3747:                                             ; preds = %3574
  %3748 = landingpad { ptr, i32 }
          cleanup
  br label %3751

3749:                                             ; preds = %3583
  %3750 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %567) #10
  br label %3751

3751:                                             ; preds = %3749, %3747
  %.pn1818 = phi { ptr, i32 } [ %3750, %3749 ], [ %3748, %3747 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %568) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %568) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %567) #10
  br label %3897

3752:                                             ; preds = %3584
  %3753 = landingpad { ptr, i32 }
          cleanup
  br label %3756

3754:                                             ; preds = %3585
  %3755 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %570) #10
  br label %3756

3756:                                             ; preds = %3754, %3752
  %.pn1820 = phi { ptr, i32 } [ %3755, %3754 ], [ %3753, %3752 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %571) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %571) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %570) #10
  br label %3896

3757:                                             ; preds = %3586
  %3758 = landingpad { ptr, i32 }
          cleanup
  br label %3761

3759:                                             ; preds = %3587
  %3760 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %573) #10
  br label %3761

3761:                                             ; preds = %3759, %3757
  %.pn1822 = phi { ptr, i32 } [ %3760, %3759 ], [ %3758, %3757 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %574) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %574) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %573) #10
  br label %3895

3762:                                             ; preds = %3588
  %3763 = landingpad { ptr, i32 }
          cleanup
  br label %3894

3764:                                             ; preds = %3589
  %3765 = landingpad { ptr, i32 }
          cleanup
  br label %3893

3766:                                             ; preds = %3629, %3590
  %3767 = landingpad { ptr, i32 }
          cleanup
  br label %3892

3768:                                             ; preds = %3591
  %3769 = landingpad { ptr, i32 }
          cleanup
  br label %3847

3770:                                             ; preds = %3592
  %3771 = landingpad { ptr, i32 }
          cleanup
  br label %3846

3772:                                             ; preds = %3593
  %3773 = landingpad { ptr, i32 }
          cleanup
  br label %3845

3774:                                             ; preds = %3594
  %3775 = landingpad { ptr, i32 }
          cleanup
  br label %3844

3776:                                             ; preds = %3595
  %3777 = landingpad { ptr, i32 }
          cleanup
  br label %3843

3778:                                             ; preds = %3596
  %3779 = landingpad { ptr, i32 }
          cleanup
  br label %3842

3780:                                             ; preds = %3597
  %3781 = landingpad { ptr, i32 }
          cleanup
  br label %3841

3782:                                             ; preds = %3598
  %3783 = landingpad { ptr, i32 }
          cleanup
  br label %3840

3784:                                             ; preds = %3599
  %3785 = landingpad { ptr, i32 }
          cleanup
  br label %3839

3786:                                             ; preds = %3600
  %3787 = landingpad { ptr, i32 }
          cleanup
  br label %3838

3788:                                             ; preds = %3601
  %3789 = landingpad { ptr, i32 }
          cleanup
  br label %3837

3790:                                             ; preds = %3602
  %3791 = landingpad { ptr, i32 }
          cleanup
  br label %3836

3792:                                             ; preds = %3603
  %3793 = landingpad { ptr, i32 }
          cleanup
  br label %3835

3794:                                             ; preds = %3604
  %3795 = landingpad { ptr, i32 }
          cleanup
  br label %3834

3796:                                             ; preds = %3605
  %3797 = landingpad { ptr, i32 }
          cleanup
  br label %3833

3798:                                             ; preds = %3606
  %3799 = landingpad { ptr, i32 }
          cleanup
  br label %3832

3800:                                             ; preds = %3607
  %3801 = landingpad { ptr, i32 }
          cleanup
  br label %3831

3802:                                             ; preds = %3608
  %3803 = landingpad { ptr, i32 }
          cleanup
  br label %3830

3804:                                             ; preds = %3609
  %3805 = landingpad { ptr, i32 }
          cleanup
  br label %3829

3806:                                             ; preds = %3610
  %3807 = landingpad { ptr, i32 }
          cleanup
  br label %3828

3808:                                             ; preds = %3611
  %3809 = landingpad { ptr, i32 }
          cleanup
  br label %3827

3810:                                             ; preds = %3612
  %3811 = landingpad { ptr, i32 }
          cleanup
  br label %3826

3812:                                             ; preds = %3613
  %3813 = landingpad { ptr, i32 }
          cleanup
  br label %3825

3814:                                             ; preds = %3614
  %3815 = landingpad { ptr, i32 }
          cleanup
  br label %3824

3816:                                             ; preds = %3615
  %3817 = landingpad { ptr, i32 }
          cleanup
  br label %3823

3818:                                             ; preds = %3616
  %3819 = landingpad { ptr, i32 }
          cleanup
  br label %3822

3820:                                             ; preds = %3617
  %3821 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %604) #10
  br label %3822

3822:                                             ; preds = %3820, %3818
  %.pn1824 = phi { ptr, i32 } [ %3821, %3820 ], [ %3819, %3818 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %604) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %578) #10
  br label %3823

3823:                                             ; preds = %3822, %3816
  %.pn1824.pn = phi { ptr, i32 } [ %.pn1824, %3822 ], [ %3817, %3816 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %601) #10
  br label %3824

3824:                                             ; preds = %3823, %3814
  %.pn1824.pn.pn = phi { ptr, i32 } [ %.pn1824.pn, %3823 ], [ %3815, %3814 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %602) #10
  br label %3825

3825:                                             ; preds = %3824, %3812
  %.pn1824.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn, %3824 ], [ %3813, %3812 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %603) #10
  br label %3826

3826:                                             ; preds = %3825, %3810
  %.pn1824.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn, %3825 ], [ %3811, %3810 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %579) #10
  br label %3827

3827:                                             ; preds = %3826, %3808
  %.pn1824.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn, %3826 ], [ %3809, %3808 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %598) #10
  br label %3828

3828:                                             ; preds = %3827, %3806
  %.pn1824.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn, %3827 ], [ %3807, %3806 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %599) #10
  br label %3829

3829:                                             ; preds = %3828, %3804
  %.pn1824.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn, %3828 ], [ %3805, %3804 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %600) #10
  br label %3830

3830:                                             ; preds = %3829, %3802
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn, %3829 ], [ %3803, %3802 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %580) #10
  br label %3831

3831:                                             ; preds = %3830, %3800
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn, %3830 ], [ %3801, %3800 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %596) #10
  br label %3832

3832:                                             ; preds = %3831, %3798
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3831 ], [ %3799, %3798 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %597) #10
  br label %3833

3833:                                             ; preds = %3832, %3796
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3832 ], [ %3797, %3796 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %581) #10
  br label %3834

3834:                                             ; preds = %3833, %3794
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3833 ], [ %3795, %3794 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %594) #10
  br label %3835

3835:                                             ; preds = %3834, %3792
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3834 ], [ %3793, %3792 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %595) #10
  br label %3836

3836:                                             ; preds = %3835, %3790
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3835 ], [ %3791, %3790 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %582) #10
  br label %3837

3837:                                             ; preds = %3836, %3788
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3836 ], [ %3789, %3788 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %591) #10
  br label %3838

3838:                                             ; preds = %3837, %3786
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3837 ], [ %3787, %3786 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %592) #10
  br label %3839

3839:                                             ; preds = %3838, %3784
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3838 ], [ %3785, %3784 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %593) #10
  br label %3840

3840:                                             ; preds = %3839, %3782
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3839 ], [ %3783, %3782 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %583) #10
  br label %3841

3841:                                             ; preds = %3840, %3780
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3840 ], [ %3781, %3780 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %588) #10
  br label %3842

3842:                                             ; preds = %3841, %3778
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3841 ], [ %3779, %3778 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %589) #10
  br label %3843

3843:                                             ; preds = %3842, %3776
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3842 ], [ %3777, %3776 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %590) #10
  br label %3844

3844:                                             ; preds = %3843, %3774
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3843 ], [ %3775, %3774 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %584) #10
  br label %3845

3845:                                             ; preds = %3844, %3772
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3844 ], [ %3773, %3772 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %585) #10
  br label %3846

3846:                                             ; preds = %3845, %3770
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3845 ], [ %3771, %3770 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %586) #10
  br label %3847

3847:                                             ; preds = %3846, %3768
  %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3846 ], [ %3769, %3768 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %587) #10
  br label %3892

3848:                                             ; preds = %3618
  %3849 = landingpad { ptr, i32 }
          cleanup
  br label %3864

3850:                                             ; preds = %3619
  %3851 = landingpad { ptr, i32 }
          cleanup
  br label %3863

3852:                                             ; preds = %3620
  %3853 = landingpad { ptr, i32 }
          cleanup
  br label %3862

3854:                                             ; preds = %3621
  %3855 = landingpad { ptr, i32 }
          cleanup
  br label %3861

3856:                                             ; preds = %3622
  %3857 = landingpad { ptr, i32 }
          cleanup
  br label %3860

3858:                                             ; preds = %3623
  %3859 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %610) #10
  br label %3860

3860:                                             ; preds = %3858, %3856
  %.pn1851 = phi { ptr, i32 } [ %3859, %3858 ], [ %3857, %3856 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %610) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %606) #10
  br label %3861

3861:                                             ; preds = %3860, %3854
  %.pn1851.pn = phi { ptr, i32 } [ %.pn1851, %3860 ], [ %3855, %3854 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %607) #10
  br label %3862

3862:                                             ; preds = %3861, %3852
  %.pn1851.pn.pn = phi { ptr, i32 } [ %.pn1851.pn, %3861 ], [ %3853, %3852 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %608) #10
  br label %3863

3863:                                             ; preds = %3862, %3850
  %.pn1851.pn.pn.pn = phi { ptr, i32 } [ %.pn1851.pn.pn, %3862 ], [ %3851, %3850 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %609) #10
  br label %3864

3864:                                             ; preds = %3863, %3848
  %.pn1851.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1851.pn.pn.pn, %3863 ], [ %3849, %3848 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %609) #10
  br label %3892

3865:                                             ; preds = %3624
  %3866 = landingpad { ptr, i32 }
          cleanup
  br label %3878

3867:                                             ; preds = %3625
  %3868 = landingpad { ptr, i32 }
          cleanup
  br label %3877

3869:                                             ; preds = %3626
  %3870 = landingpad { ptr, i32 }
          cleanup
  br label %3876

3871:                                             ; preds = %3627
  %3872 = landingpad { ptr, i32 }
          cleanup
  br label %3875

3873:                                             ; preds = %3628
  %3874 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %615) #10
  br label %3875

3875:                                             ; preds = %3873, %3871
  %.pn1857 = phi { ptr, i32 } [ %3874, %3873 ], [ %3872, %3871 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %615) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %612) #10
  br label %3876

3876:                                             ; preds = %3875, %3869
  %.pn1857.pn = phi { ptr, i32 } [ %.pn1857, %3875 ], [ %3870, %3869 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %613) #10
  br label %3877

3877:                                             ; preds = %3876, %3867
  %.pn1857.pn.pn = phi { ptr, i32 } [ %.pn1857.pn, %3876 ], [ %3868, %3867 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %614) #10
  br label %3878

3878:                                             ; preds = %3877, %3865
  %.pn1857.pn.pn.pn = phi { ptr, i32 } [ %.pn1857.pn.pn, %3877 ], [ %3866, %3865 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %614) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %613) #10
  br label %3892

3879:                                             ; preds = %3630
  %3880 = landingpad { ptr, i32 }
          cleanup
  br label %3886

3881:                                             ; preds = %3631
  %3882 = landingpad { ptr, i32 }
          cleanup
  br label %3885

3883:                                             ; preds = %3632
  %3884 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %618) #10
  br label %3885

3885:                                             ; preds = %3883, %3881
  %.pn1862 = phi { ptr, i32 } [ %3884, %3883 ], [ %3882, %3881 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %617) #10
  br label %3886

3886:                                             ; preds = %3885, %3879
  %.pn1862.pn = phi { ptr, i32 } [ %.pn1862, %3885 ], [ %3880, %3879 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %616) #10
  br label %3892

3887:                                             ; preds = %3634
  %3888 = landingpad { ptr, i32 }
          cleanup
  br label %3891

3889:                                             ; preds = %3635
  %3890 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %620) #10
  br label %3891

3891:                                             ; preds = %3889, %3887
  %.pn1865 = phi { ptr, i32 } [ %3890, %3889 ], [ %3888, %3887 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %621) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %620) #10
  br label %3892

3892:                                             ; preds = %3891, %3886, %3878, %3864, %3847, %3766
  %.pn1865.pn = phi { ptr, i32 } [ %.pn1865, %3891 ], [ %.pn1862.pn, %3886 ], [ %3767, %3766 ], [ %.pn1857.pn.pn.pn, %3878 ], [ %.pn1851.pn.pn.pn.pn, %3864 ], [ %.pn1824.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3847 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %576) #10
  br label %3893

3893:                                             ; preds = %3892, %3764
  %.pn1865.pn.pn = phi { ptr, i32 } [ %.pn1865.pn, %3892 ], [ %3765, %3764 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %576) #10
  call void @_ZN6Halide6BufferIhED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %575) #10
  br label %3894

3894:                                             ; preds = %3893, %3762
  %.pn1865.pn.pn.pn = phi { ptr, i32 } [ %.pn1865.pn.pn, %3893 ], [ %3763, %3762 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %575) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %572) #10
  br label %3895

3895:                                             ; preds = %3894, %3761
  %.pn1865.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1865.pn.pn.pn, %3894 ], [ %.pn1822, %3761 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %572) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %569) #10
  br label %3896

3896:                                             ; preds = %3895, %3756
  %.pn1865.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1865.pn.pn.pn.pn, %3895 ], [ %.pn1820, %3756 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %569) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %566) #10
  br label %3897

3897:                                             ; preds = %3896, %3751
  %.pn1865.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1865.pn.pn.pn.pn.pn, %3896 ], [ %.pn1818, %3751 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %566) #10
  br label %6795

3898:                                             ; preds = %3636
  %3899 = landingpad { ptr, i32 }
          cleanup
  br label %4031

3900:                                             ; preds = %3637
  %3901 = landingpad { ptr, i32 }
          cleanup
  br label %4030

3902:                                             ; preds = %3638
  %3903 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %624) #10
  br label %4029

3904:                                             ; preds = %3640
  %3905 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %625) #10
  br label %4029

3906:                                             ; preds = %3642
  %3907 = landingpad { ptr, i32 }
          cleanup
  br label %3910

3908:                                             ; preds = %3643
  %3909 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %627) #10
  br label %3910

3910:                                             ; preds = %3908, %3906
  %.pn1873 = phi { ptr, i32 } [ %3909, %3908 ], [ %3907, %3906 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %628) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %628) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %627) #10
  br label %4028

3911:                                             ; preds = %3644
  %3912 = landingpad { ptr, i32 }
          cleanup
  br label %3915

3913:                                             ; preds = %3645
  %3914 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %630) #10
  br label %3915

3915:                                             ; preds = %3913, %3911
  %.pn1875 = phi { ptr, i32 } [ %3914, %3913 ], [ %3912, %3911 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %631) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %631) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %630) #10
  br label %4027

3916:                                             ; preds = %3646
  %3917 = landingpad { ptr, i32 }
          cleanup
  br label %3920

3918:                                             ; preds = %3647
  %3919 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %633) #10
  br label %3920

3920:                                             ; preds = %3918, %3916
  %.pn1877 = phi { ptr, i32 } [ %3919, %3918 ], [ %3917, %3916 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %634) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %634) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %633) #10
  br label %4026

3921:                                             ; preds = %3648
  %3922 = landingpad { ptr, i32 }
          cleanup
  br label %4025

3923:                                             ; preds = %3649
  %3924 = landingpad { ptr, i32 }
          cleanup
  br label %4024

3925:                                             ; preds = %3655, %3650
  %3926 = landingpad { ptr, i32 }
          cleanup
  br label %4023

3927:                                             ; preds = %3651
  %3928 = landingpad { ptr, i32 }
          cleanup
  br label %3937

3929:                                             ; preds = %3652
  %3930 = landingpad { ptr, i32 }
          cleanup
  br label %3936

3931:                                             ; preds = %3653
  %3932 = landingpad { ptr, i32 }
          cleanup
  br label %3935

3933:                                             ; preds = %3654
  %3934 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %641) #10
  br label %3935

3935:                                             ; preds = %3933, %3931
  %.pn1879 = phi { ptr, i32 } [ %3934, %3933 ], [ %3932, %3931 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %641) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %638) #10
  br label %3936

3936:                                             ; preds = %3935, %3929
  %.pn1879.pn = phi { ptr, i32 } [ %.pn1879, %3935 ], [ %3930, %3929 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %640) #10
  br label %3937

3937:                                             ; preds = %3936, %3927
  %.pn1879.pn.pn = phi { ptr, i32 } [ %.pn1879.pn, %3936 ], [ %3928, %3927 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %639) #10
  br label %4023

3938:                                             ; preds = %3656
  %3939 = landingpad { ptr, i32 }
          cleanup
  br label %3948

3940:                                             ; preds = %3657
  %3941 = landingpad { ptr, i32 }
          cleanup
  br label %3947

3942:                                             ; preds = %3658
  %3943 = landingpad { ptr, i32 }
          cleanup
  br label %3946

3944:                                             ; preds = %3659
  %3945 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %646) #10
  br label %3946

3946:                                             ; preds = %3944, %3942
  %.pn1883 = phi { ptr, i32 } [ %3945, %3944 ], [ %3943, %3942 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %646) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %643) #10
  br label %3947

3947:                                             ; preds = %3946, %3940
  %.pn1883.pn = phi { ptr, i32 } [ %.pn1883, %3946 ], [ %3941, %3940 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %645) #10
  br label %3948

3948:                                             ; preds = %3947, %3938
  %.pn1883.pn.pn = phi { ptr, i32 } [ %.pn1883.pn, %3947 ], [ %3939, %3938 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %644) #10
  br label %4023

3949:                                             ; preds = %3660
  %3950 = landingpad { ptr, i32 }
          cleanup
  br label %4022

3951:                                             ; preds = %3661
  %3952 = landingpad { ptr, i32 }
          cleanup
  br label %3955

3953:                                             ; preds = %3662
  %3954 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %649) #10
  br label %3955

3955:                                             ; preds = %3953, %3951
  %.pn1887 = phi { ptr, i32 } [ %3954, %3953 ], [ %3952, %3951 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %648) #10
  br label %4022

3956:                                             ; preds = %3663
  %3957 = landingpad { ptr, i32 }
          cleanup
  br label %3981

3958:                                             ; preds = %3664
  %3959 = landingpad { ptr, i32 }
          cleanup
  br label %3980

3960:                                             ; preds = %3665
  %3961 = landingpad { ptr, i32 }
          cleanup
  br label %3979

3962:                                             ; preds = %3666
  %3963 = landingpad { ptr, i32 }
          cleanup
  br label %3978

3964:                                             ; preds = %3667
  %3965 = landingpad { ptr, i32 }
          cleanup
  br label %3977

3966:                                             ; preds = %3668
  %3967 = landingpad { ptr, i32 }
          cleanup
  br label %3976

3968:                                             ; preds = %3669
  %3969 = landingpad { ptr, i32 }
          cleanup
  br label %3975

3970:                                             ; preds = %3670
  %3971 = landingpad { ptr, i32 }
          cleanup
  br label %3974

3972:                                             ; preds = %3671
  %3973 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %658) #10
  br label %3974

3974:                                             ; preds = %3972, %3970
  %.pn1889 = phi { ptr, i32 } [ %3973, %3972 ], [ %3971, %3970 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %658) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %651) #10
  br label %3975

3975:                                             ; preds = %3974, %3968
  %.pn1889.pn = phi { ptr, i32 } [ %.pn1889, %3974 ], [ %3969, %3968 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %655) #10
  br label %3976

3976:                                             ; preds = %3975, %3966
  %.pn1889.pn.pn = phi { ptr, i32 } [ %.pn1889.pn, %3975 ], [ %3967, %3966 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %656) #10
  br label %3977

3977:                                             ; preds = %3976, %3964
  %.pn1889.pn.pn.pn = phi { ptr, i32 } [ %.pn1889.pn.pn, %3976 ], [ %3965, %3964 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %657) #10
  br label %3978

3978:                                             ; preds = %3977, %3962
  %.pn1889.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1889.pn.pn.pn, %3977 ], [ %3963, %3962 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %656) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %652) #10
  br label %3979

3979:                                             ; preds = %3978, %3960
  %.pn1889.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1889.pn.pn.pn.pn, %3978 ], [ %3961, %3960 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %653) #10
  br label %3980

3980:                                             ; preds = %3979, %3958
  %.pn1889.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1889.pn.pn.pn.pn.pn, %3979 ], [ %3959, %3958 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %654) #10
  br label %3981

3981:                                             ; preds = %3980, %3956
  %.pn1889.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1889.pn.pn.pn.pn.pn.pn, %3980 ], [ %3957, %3956 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %653) #10
  br label %4021

3982:                                             ; preds = %3672
  %3983 = landingpad { ptr, i32 }
          cleanup
  br label %3986

3984:                                             ; preds = %3673
  %3985 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %660) #10
  br label %3986

3986:                                             ; preds = %3984, %3982
  %.pn1898 = phi { ptr, i32 } [ %3985, %3984 ], [ %3983, %3982 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %661) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %661) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %660) #10
  br label %4020

3987:                                             ; preds = %3674
  %3988 = landingpad { ptr, i32 }
          cleanup
  br label %3994

3989:                                             ; preds = %3675
  %3990 = landingpad { ptr, i32 }
          cleanup
  br label %3993

3991:                                             ; preds = %3676
  %3992 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %664) #10
  br label %3993

3993:                                             ; preds = %3991, %3989
  %.pn1900 = phi { ptr, i32 } [ %3992, %3991 ], [ %3990, %3989 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %664) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %663) #10
  br label %3994

3994:                                             ; preds = %3993, %3987
  %.pn1900.pn = phi { ptr, i32 } [ %.pn1900, %3993 ], [ %3988, %3987 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %663) #10
  br label %4019

3995:                                             ; preds = %3677
  %3996 = landingpad { ptr, i32 }
          cleanup
  br label %4019

3997:                                             ; preds = %3678
  %3998 = landingpad { ptr, i32 }
          cleanup
  br label %4013

3999:                                             ; preds = %3679
  %4000 = landingpad { ptr, i32 }
          cleanup
  br label %4012

4001:                                             ; preds = %3682, %3680
  %4002 = landingpad { ptr, i32 }
          cleanup
  br label %4011

4003:                                             ; preds = %3683
  %4004 = landingpad { ptr, i32 }
          cleanup
  br label %4010

4005:                                             ; preds = %3684
  %4006 = landingpad { ptr, i32 }
          cleanup
  br label %4009

4007:                                             ; preds = %3685
  %4008 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %670) #10
  br label %4009

4009:                                             ; preds = %4007, %4005
  %.pn1903 = phi { ptr, i32 } [ %4008, %4007 ], [ %4006, %4005 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %669) #10
  br label %4010

4010:                                             ; preds = %4009, %4003
  %.pn1903.pn = phi { ptr, i32 } [ %.pn1903, %4009 ], [ %4004, %4003 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %668) #10
  br label %4011

4011:                                             ; preds = %4010, %4001
  %.pn1903.pn.pn = phi { ptr, i32 } [ %.pn1903.pn, %4010 ], [ %4002, %4001 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %667) #10
  br label %4012

4012:                                             ; preds = %4011, %3999
  %.pn1903.pn.pn.pn = phi { ptr, i32 } [ %.pn1903.pn.pn, %4011 ], [ %4000, %3999 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %666) #10
  br label %4013

4013:                                             ; preds = %4012, %3997
  %.pn1903.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1903.pn.pn.pn, %4012 ], [ %3998, %3997 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %665) #10
  br label %4019

4014:                                             ; preds = %3687
  %4015 = landingpad { ptr, i32 }
          cleanup
  br label %4018

4016:                                             ; preds = %3688
  %4017 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %672) #10
  br label %4018

4018:                                             ; preds = %4016, %4014
  %.pn1909 = phi { ptr, i32 } [ %4017, %4016 ], [ %4015, %4014 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %673) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %672) #10
  br label %4019

4019:                                             ; preds = %4018, %4013, %3995, %3994
  %.pn1909.pn = phi { ptr, i32 } [ %.pn1909, %4018 ], [ %.pn1903.pn.pn.pn.pn, %4013 ], [ %3996, %3995 ], [ %.pn1900.pn, %3994 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %659) #10
  br label %4020

4020:                                             ; preds = %4019, %3986
  %.pn1909.pn.pn = phi { ptr, i32 } [ %.pn1909.pn, %4019 ], [ %.pn1898, %3986 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %659) #10
  br label %4021

4021:                                             ; preds = %4020, %3981
  %.pn1909.pn.pn.pn = phi { ptr, i32 } [ %.pn1909.pn.pn, %4020 ], [ %.pn1889.pn.pn.pn.pn.pn.pn.pn, %3981 ]
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %647) #10
  br label %4022

4022:                                             ; preds = %4021, %3955, %3949
  %.pn1909.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1909.pn.pn.pn, %4021 ], [ %.pn1887, %3955 ], [ %3950, %3949 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %647) #10
  br label %4023

4023:                                             ; preds = %4022, %3948, %3937, %3925
  %.pn1909.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1909.pn.pn.pn.pn, %4022 ], [ %.pn1883.pn.pn, %3948 ], [ %3926, %3925 ], [ %.pn1879.pn.pn, %3937 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %636) #10
  br label %4024

4024:                                             ; preds = %4023, %3923
  %.pn1909.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1909.pn.pn.pn.pn.pn, %4023 ], [ %3924, %3923 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %636) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %635) #10
  br label %4025

4025:                                             ; preds = %4024, %3921
  %.pn1909.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1909.pn.pn.pn.pn.pn.pn, %4024 ], [ %3922, %3921 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %635) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %632) #10
  br label %4026

4026:                                             ; preds = %4025, %3920
  %.pn1909.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1909.pn.pn.pn.pn.pn.pn.pn, %4025 ], [ %.pn1877, %3920 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %632) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %629) #10
  br label %4027

4027:                                             ; preds = %4026, %3915
  %.pn1909.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1909.pn.pn.pn.pn.pn.pn.pn.pn, %4026 ], [ %.pn1875, %3915 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %629) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %626) #10
  br label %4028

4028:                                             ; preds = %4027, %3910
  %.pn1909.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1909.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4027 ], [ %.pn1873, %3910 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %626) #10
  br label %4029

4029:                                             ; preds = %4028, %3904, %3902
  %.pn1909.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1909.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4028 ], [ %3905, %3904 ], [ %3903, %3902 ]
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %623) #10
  br label %4030

4030:                                             ; preds = %4029, %3900
  %.pn1909.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1909.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4029 ], [ %3901, %3900 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %623) #10
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %622) #10
  br label %4031

4031:                                             ; preds = %4030, %3898
  %.pn1909.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1909.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4030 ], [ %3899, %3898 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %622) #10
  br label %6795

4032:                                             ; preds = %3689
  %4033 = landingpad { ptr, i32 }
          cleanup
  br label %4693

4034:                                             ; preds = %3690
  %lpad.thr_comm.split-lp2891 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2727

.preheader2748.preheader:                         ; preds = %3691, %3692
  %.ptr1926.lcssa.ph = phi ptr [ %.ptr1926.2, %3692 ], [ %.ptr1926.1, %3691 ]
  %lpad.thr_comm2890 = landingpad { ptr, i32 }
          cleanup
  br label %.preheader2748

.preheader2748:                                   ; preds = %.preheader2748.preheader, %.preheader2748
  %4035 = phi ptr [ %4036, %.preheader2748 ], [ %.ptr1926.lcssa.ph, %.preheader2748.preheader ]
  %4036 = getelementptr inbounds i8, ptr %4035, i64 -32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4036) #10
  %4037 = icmp eq ptr %4036, %675
  br i1 %4037, label %.loopexit2727, label %.preheader2748

4038:                                             ; preds = %3693
  %lpad.thr_comm.split-lp2900 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2728

.preheader2746.preheader:                         ; preds = %3694, %3695
  %.ptr1930.lcssa.ph = phi ptr [ %.ptr1930.2, %3695 ], [ %.ptr1930.1, %3694 ]
  %lpad.thr_comm2899 = landingpad { ptr, i32 }
          cleanup
  br label %.preheader2746

.preheader2746:                                   ; preds = %.preheader2746.preheader, %.preheader2746
  %4039 = phi ptr [ %4040, %.preheader2746 ], [ %.ptr1930.lcssa.ph, %.preheader2746.preheader ]
  %4040 = getelementptr inbounds i8, ptr %4039, i64 -32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4040) #10
  %4041 = icmp eq ptr %4040, %676
  br i1 %4041, label %.loopexit2728, label %.preheader2746

4042:                                             ; preds = %3696
  %lpad.thr_comm.split-lp2909 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2729

.preheader2744.preheader:                         ; preds = %3697, %3698
  %.ptr1934.lcssa.ph = phi ptr [ %.ptr1934.2, %3698 ], [ %.ptr1934.1, %3697 ]
  %lpad.thr_comm2908 = landingpad { ptr, i32 }
          cleanup
  br label %.preheader2744

.preheader2744:                                   ; preds = %.preheader2744.preheader, %.preheader2744
  %4043 = phi ptr [ %4044, %.preheader2744 ], [ %.ptr1934.lcssa.ph, %.preheader2744.preheader ]
  %4044 = getelementptr inbounds i8, ptr %4043, i64 -32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4044) #10
  %4045 = icmp eq ptr %4044, %677
  br i1 %4045, label %.loopexit2729, label %.preheader2744

4046:                                             ; preds = %3699
  %4047 = landingpad { ptr, i32 }
          cleanup
  br label %4050

4048:                                             ; preds = %3700
  %4049 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %679) #10
  br label %4050

4050:                                             ; preds = %4048, %4046
  %.pn1936 = phi { ptr, i32 } [ %4049, %4048 ], [ %4047, %4046 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %680) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %680) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %679) #10
  br label %.loopexit2729.loopexit

4051:                                             ; preds = %3701
  %4052 = landingpad { ptr, i32 }
          cleanup
  br label %4686

4053:                                             ; preds = %3702
  %4054 = landingpad { ptr, i32 }
          cleanup
  br label %4685

4055:                                             ; preds = %3703
  %4056 = landingpad { ptr, i32 }
          cleanup
  br label %4684

4057:                                             ; preds = %3704
  %4058 = landingpad { ptr, i32 }
          cleanup
  br label %4067

4059:                                             ; preds = %3705
  %4060 = landingpad { ptr, i32 }
          cleanup
  br label %4066

4061:                                             ; preds = %3706
  %4062 = landingpad { ptr, i32 }
          cleanup
  br label %4065

4063:                                             ; preds = %3707
  %4064 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %687) #10
  br label %4065

4065:                                             ; preds = %4063, %4061
  %.pn1938 = phi { ptr, i32 } [ %4064, %4063 ], [ %4062, %4061 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %687) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %684) #10
  br label %4066

4066:                                             ; preds = %4065, %4059
  %.pn1938.pn = phi { ptr, i32 } [ %.pn1938, %4065 ], [ %4060, %4059 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %686) #10
  br label %4067

4067:                                             ; preds = %4066, %4057
  %.pn1938.pn.pn = phi { ptr, i32 } [ %.pn1938.pn, %4066 ], [ %4058, %4057 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %685) #10
  br label %4684

4068:                                             ; preds = %3708
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %690, ptr noundef nonnull align 8 dereferenceable(56) %691)
          to label %4069 unwind label %4080

4069:                                             ; preds = %4068
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %689, ptr noundef nonnull %690, i32 noundef 1)
          to label %4070 unwind label %4082

4070:                                             ; preds = %4069
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %692) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %692, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1926.1, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4071 unwind label %4084

4071:                                             ; preds = %4070
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %688, ptr noundef nonnull align 8 dereferenceable(56) %692, ptr noundef nonnull %689)
          to label %4072 unwind label %4086

4072:                                             ; preds = %4071
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %688) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %692) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %692) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %689) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %690) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %691) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %691) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %691) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %691, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1926.1, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4073 unwind label %4078

4073:                                             ; preds = %4072
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %690, ptr noundef nonnull align 8 dereferenceable(56) %691)
          to label %4074 unwind label %4080

4074:                                             ; preds = %4073
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %689, ptr noundef nonnull %690, i32 noundef 1)
          to label %4075 unwind label %4082

4075:                                             ; preds = %4074
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %692) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %692, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1926.2, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4076 unwind label %4084

4076:                                             ; preds = %4075
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %688, ptr noundef nonnull align 8 dereferenceable(56) %692, ptr noundef nonnull %689)
          to label %4077 unwind label %4086

4077:                                             ; preds = %4076
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %688) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %692) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %692) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %689) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %690) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %691) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %691) #10
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %693) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %694, i32 noundef 1)
          to label %4092 unwind label %4107

4078:                                             ; preds = %4072, %3708
  %4079 = landingpad { ptr, i32 }
          cleanup
  br label %4091

4080:                                             ; preds = %4073, %4068
  %4081 = landingpad { ptr, i32 }
          cleanup
  br label %4090

4082:                                             ; preds = %4074, %4069
  %4083 = landingpad { ptr, i32 }
          cleanup
  br label %4089

4084:                                             ; preds = %4075, %4070
  %4085 = landingpad { ptr, i32 }
          cleanup
  br label %4088

4086:                                             ; preds = %4076, %4071
  %4087 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %692) #10
  br label %4088

4088:                                             ; preds = %4086, %4084
  %.pn2636 = phi { ptr, i32 } [ %4087, %4086 ], [ %4085, %4084 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %692) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %689) #10
  br label %4089

4089:                                             ; preds = %4088, %4082
  %.pn2636.pn = phi { ptr, i32 } [ %.pn2636, %4088 ], [ %4083, %4082 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %690) #10
  br label %4090

4090:                                             ; preds = %4089, %4080
  %.pn2636.pn.pn = phi { ptr, i32 } [ %.pn2636.pn, %4089 ], [ %4081, %4080 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %691) #10
  br label %4091

4091:                                             ; preds = %4090, %4078
  %.pn2636.pn.pn.pn = phi { ptr, i32 } [ %.pn2636.pn.pn, %4090 ], [ %4079, %4078 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %691) #10
  br label %4684

4092:                                             ; preds = %4077
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %695, i32 noundef 1023)
          to label %4093 unwind label %4109

4093:                                             ; preds = %4092
  invoke void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %693, ptr noundef nonnull %694, ptr noundef nonnull %695)
          to label %4094 unwind label %4111

4094:                                             ; preds = %4093
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %695) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %694) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %697) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %697, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1926.2, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4095 unwind label %4114

4095:                                             ; preds = %4094
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %698) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %698, ptr noundef nonnull align 8 dereferenceable(32) %678, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4096 unwind label %4116

4096:                                             ; preds = %4095
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %696, ptr noundef nonnull align 8 dereferenceable(56) %698, ptr noundef nonnull align 8 dereferenceable(56) %697)
          to label %4097 unwind label %4118

4097:                                             ; preds = %4096
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %696) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %698) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %698) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %697) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %697) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %700) #10
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %702, ptr noundef nonnull align 8 dereferenceable(200) %693)
          to label %4098 unwind label %4122

4098:                                             ; preds = %4097
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %701, ptr noundef nonnull %702, i32 noundef 1)
          to label %4099 unwind label %4124

4099:                                             ; preds = %4098
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %700, ptr noundef nonnull align 8 dereferenceable(32) %678, ptr noundef nonnull %701, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4100 unwind label %4126

4100:                                             ; preds = %4099
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %703) #10
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %704, ptr noundef nonnull align 8 dereferenceable(200) %693)
          to label %4101 unwind label %4128

4101:                                             ; preds = %4100
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %703, ptr noundef nonnull align 8 dereferenceable(32) %678, ptr noundef nonnull %704, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4102 unwind label %4130

4102:                                             ; preds = %4101
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %699, ptr noundef nonnull align 8 dereferenceable(56) %703, ptr noundef nonnull align 8 dereferenceable(56) %700)
          to label %4103 unwind label %4132

4103:                                             ; preds = %4102
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %699) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %703) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %704) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %703) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %700) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %701) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %702) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %700) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %706) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %706, ptr noundef nonnull align 8 dereferenceable(32) %678, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4104 unwind label %4139

4104:                                             ; preds = %4103
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %707) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %707, ptr noundef nonnull align 8 dereferenceable(32) %676, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4105 unwind label %4141

4105:                                             ; preds = %4104
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %705, ptr noundef nonnull align 8 dereferenceable(56) %707, ptr noundef nonnull align 8 dereferenceable(56) %706)
          to label %4106 unwind label %4143

4106:                                             ; preds = %4105
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %705) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %707) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %707) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %706) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %706) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %711) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %711, ptr noundef nonnull align 8 dereferenceable(32) %676, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4147 unwind label %4157

4107:                                             ; preds = %4077
  %4108 = landingpad { ptr, i32 }
          cleanup
  br label %4683

4109:                                             ; preds = %4092
  %4110 = landingpad { ptr, i32 }
          cleanup
  br label %4113

4111:                                             ; preds = %4093
  %4112 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %695) #10
  br label %4113

4113:                                             ; preds = %4111, %4109
  %.pn1942 = phi { ptr, i32 } [ %4112, %4111 ], [ %4110, %4109 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %694) #10
  br label %4683

4114:                                             ; preds = %4094
  %4115 = landingpad { ptr, i32 }
          cleanup
  br label %4121

4116:                                             ; preds = %4095
  %4117 = landingpad { ptr, i32 }
          cleanup
  br label %4120

4118:                                             ; preds = %4096
  %4119 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %698) #10
  br label %4120

4120:                                             ; preds = %4118, %4116
  %.pn1944 = phi { ptr, i32 } [ %4119, %4118 ], [ %4117, %4116 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %698) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %697) #10
  br label %4121

4121:                                             ; preds = %4120, %4114
  %.pn1944.pn = phi { ptr, i32 } [ %.pn1944, %4120 ], [ %4115, %4114 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %697) #10
  br label %4682

4122:                                             ; preds = %4097
  %4123 = landingpad { ptr, i32 }
          cleanup
  br label %4138

4124:                                             ; preds = %4098
  %4125 = landingpad { ptr, i32 }
          cleanup
  br label %4137

4126:                                             ; preds = %4099
  %4127 = landingpad { ptr, i32 }
          cleanup
  br label %4136

4128:                                             ; preds = %4100
  %4129 = landingpad { ptr, i32 }
          cleanup
  br label %4135

4130:                                             ; preds = %4101
  %4131 = landingpad { ptr, i32 }
          cleanup
  br label %4134

4132:                                             ; preds = %4102
  %4133 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %703) #10
  br label %4134

4134:                                             ; preds = %4132, %4130
  %.pn1947 = phi { ptr, i32 } [ %4133, %4132 ], [ %4131, %4130 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %704) #10
  br label %4135

4135:                                             ; preds = %4134, %4128
  %.pn1947.pn = phi { ptr, i32 } [ %.pn1947, %4134 ], [ %4129, %4128 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %703) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %700) #10
  br label %4136

4136:                                             ; preds = %4135, %4126
  %.pn1947.pn.pn = phi { ptr, i32 } [ %.pn1947.pn, %4135 ], [ %4127, %4126 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %701) #10
  br label %4137

4137:                                             ; preds = %4136, %4124
  %.pn1947.pn.pn.pn = phi { ptr, i32 } [ %.pn1947.pn.pn, %4136 ], [ %4125, %4124 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %702) #10
  br label %4138

4138:                                             ; preds = %4137, %4122
  %.pn1947.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1947.pn.pn.pn, %4137 ], [ %4123, %4122 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %700) #10
  br label %4682

4139:                                             ; preds = %4103
  %4140 = landingpad { ptr, i32 }
          cleanup
  br label %4146

4141:                                             ; preds = %4104
  %4142 = landingpad { ptr, i32 }
          cleanup
  br label %4145

4143:                                             ; preds = %4105
  %4144 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %707) #10
  br label %4145

4145:                                             ; preds = %4143, %4141
  %.pn1953 = phi { ptr, i32 } [ %4144, %4143 ], [ %4142, %4141 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %707) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %706) #10
  br label %4146

4146:                                             ; preds = %4145, %4139
  %.pn1953.pn = phi { ptr, i32 } [ %.pn1953, %4145 ], [ %4140, %4139 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %706) #10
  br label %4682

4147:                                             ; preds = %4106
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %710, ptr noundef nonnull align 8 dereferenceable(56) %711)
          to label %4148 unwind label %4159

4148:                                             ; preds = %4147
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %709, ptr noundef nonnull %710, i32 noundef 1)
          to label %4149 unwind label %4161

4149:                                             ; preds = %4148
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %712) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %712, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1930.1, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4150 unwind label %4163

4150:                                             ; preds = %4149
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %708, ptr noundef nonnull align 8 dereferenceable(56) %712, ptr noundef nonnull %709)
          to label %4151 unwind label %4165

4151:                                             ; preds = %4150
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %708) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %712) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %712) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %709) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %710) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %711) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %711) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %711) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %711, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1930.1, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4152 unwind label %4157

4152:                                             ; preds = %4151
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %710, ptr noundef nonnull align 8 dereferenceable(56) %711)
          to label %4153 unwind label %4159

4153:                                             ; preds = %4152
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %709, ptr noundef nonnull %710, i32 noundef 1)
          to label %4154 unwind label %4161

4154:                                             ; preds = %4153
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %712) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %712, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1930.2, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4155 unwind label %4163

4155:                                             ; preds = %4154
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %708, ptr noundef nonnull align 8 dereferenceable(56) %712, ptr noundef nonnull %709)
          to label %4156 unwind label %4165

4156:                                             ; preds = %4155
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %708) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %712) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %712) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %709) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %710) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %711) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %711) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %713) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %714) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %715) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %715) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %714, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %715)
          to label %4171 unwind label %4182

4157:                                             ; preds = %4151, %4106
  %4158 = landingpad { ptr, i32 }
          cleanup
  br label %4170

4159:                                             ; preds = %4152, %4147
  %4160 = landingpad { ptr, i32 }
          cleanup
  br label %4169

4161:                                             ; preds = %4153, %4148
  %4162 = landingpad { ptr, i32 }
          cleanup
  br label %4168

4163:                                             ; preds = %4154, %4149
  %4164 = landingpad { ptr, i32 }
          cleanup
  br label %4167

4165:                                             ; preds = %4155, %4150
  %4166 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %712) #10
  br label %4167

4167:                                             ; preds = %4165, %4163
  %.pn2629 = phi { ptr, i32 } [ %4166, %4165 ], [ %4164, %4163 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %712) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %709) #10
  br label %4168

4168:                                             ; preds = %4167, %4161
  %.pn2629.pn = phi { ptr, i32 } [ %.pn2629, %4167 ], [ %4162, %4161 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %710) #10
  br label %4169

4169:                                             ; preds = %4168, %4159
  %.pn2629.pn.pn = phi { ptr, i32 } [ %.pn2629.pn, %4168 ], [ %4160, %4159 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %711) #10
  br label %4170

4170:                                             ; preds = %4169, %4157
  %.pn2629.pn.pn.pn = phi { ptr, i32 } [ %.pn2629.pn.pn, %4169 ], [ %4158, %4157 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %711) #10
  br label %4682

4171:                                             ; preds = %4156
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %713, ptr noundef nonnull align 8 dereferenceable(32) %714)
          to label %4172 unwind label %4184

4172:                                             ; preds = %4171
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %714) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %715) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %715) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %714) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %717) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %718, ptr noundef nonnull align 8 dereferenceable(32) %681)
          to label %4173 unwind label %4187

4173:                                             ; preds = %4172
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %719) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %720, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4174 unwind label %4189

4174:                                             ; preds = %4173
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %719, i32 noundef 2, ptr noundef nonnull %720)
          to label %4175 unwind label %4191

4175:                                             ; preds = %4174
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %717, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1930.2, ptr noundef nonnull %718, ptr noundef nonnull align 8 dereferenceable(8) %719)
          to label %4176 unwind label %4193

4176:                                             ; preds = %4175
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %721) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %721, ptr noundef nonnull align 8 dereferenceable(32) %713, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4177 unwind label %4195

4177:                                             ; preds = %4176
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %716, ptr noundef nonnull align 8 dereferenceable(56) %721, ptr noundef nonnull align 8 dereferenceable(56) %717)
          to label %4178 unwind label %4197

4178:                                             ; preds = %4177
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %716) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %721) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %721) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %717) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %719) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %720) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %719) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %718) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %717) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %723) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %723, ptr noundef nonnull align 8 dereferenceable(32) %713, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4179 unwind label %4204

4179:                                             ; preds = %4178
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %724) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %724, ptr noundef nonnull align 8 dereferenceable(32) %677, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4180 unwind label %4206

4180:                                             ; preds = %4179
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %722, ptr noundef nonnull align 8 dereferenceable(56) %724, ptr noundef nonnull align 8 dereferenceable(56) %723)
          to label %4181 unwind label %4208

4181:                                             ; preds = %4180
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %722) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %724) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %724) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %723) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %723) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %728) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %728, ptr noundef nonnull align 8 dereferenceable(32) %677, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4212 unwind label %4222

4182:                                             ; preds = %4156
  %4183 = landingpad { ptr, i32 }
          cleanup
  br label %4186

4184:                                             ; preds = %4171
  %4185 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %714) #10
  br label %4186

4186:                                             ; preds = %4184, %4182
  %.pn1956 = phi { ptr, i32 } [ %4185, %4184 ], [ %4183, %4182 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %715) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %715) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %714) #10
  br label %4681

4187:                                             ; preds = %4172
  %4188 = landingpad { ptr, i32 }
          cleanup
  br label %4203

4189:                                             ; preds = %4173
  %4190 = landingpad { ptr, i32 }
          cleanup
  br label %4202

4191:                                             ; preds = %4174
  %4192 = landingpad { ptr, i32 }
          cleanup
  br label %4201

4193:                                             ; preds = %4175
  %4194 = landingpad { ptr, i32 }
          cleanup
  br label %4200

4195:                                             ; preds = %4176
  %4196 = landingpad { ptr, i32 }
          cleanup
  br label %4199

4197:                                             ; preds = %4177
  %4198 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %721) #10
  br label %4199

4199:                                             ; preds = %4197, %4195
  %.pn1958 = phi { ptr, i32 } [ %4198, %4197 ], [ %4196, %4195 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %721) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %717) #10
  br label %4200

4200:                                             ; preds = %4199, %4193
  %.pn1958.pn = phi { ptr, i32 } [ %.pn1958, %4199 ], [ %4194, %4193 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %719) #10
  br label %4201

4201:                                             ; preds = %4200, %4191
  %.pn1958.pn.pn = phi { ptr, i32 } [ %.pn1958.pn, %4200 ], [ %4192, %4191 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %720) #10
  br label %4202

4202:                                             ; preds = %4201, %4189
  %.pn1958.pn.pn.pn = phi { ptr, i32 } [ %.pn1958.pn.pn, %4201 ], [ %4190, %4189 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %719) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %718) #10
  br label %4203

4203:                                             ; preds = %4202, %4187
  %.pn1958.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1958.pn.pn.pn, %4202 ], [ %4188, %4187 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %717) #10
  br label %4680

4204:                                             ; preds = %4178
  %4205 = landingpad { ptr, i32 }
          cleanup
  br label %4211

4206:                                             ; preds = %4179
  %4207 = landingpad { ptr, i32 }
          cleanup
  br label %4210

4208:                                             ; preds = %4180
  %4209 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %724) #10
  br label %4210

4210:                                             ; preds = %4208, %4206
  %.pn1964 = phi { ptr, i32 } [ %4209, %4208 ], [ %4207, %4206 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %724) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %723) #10
  br label %4211

4211:                                             ; preds = %4210, %4204
  %.pn1964.pn = phi { ptr, i32 } [ %.pn1964, %4210 ], [ %4205, %4204 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %723) #10
  br label %4680

4212:                                             ; preds = %4181
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %727, ptr noundef nonnull align 8 dereferenceable(56) %728)
          to label %4213 unwind label %4224

4213:                                             ; preds = %4212
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %726, ptr noundef nonnull %727, i32 noundef 1)
          to label %4214 unwind label %4226

4214:                                             ; preds = %4213
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %729) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %729, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1934.1, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4215 unwind label %4228

4215:                                             ; preds = %4214
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %725, ptr noundef nonnull align 8 dereferenceable(56) %729, ptr noundef nonnull %726)
          to label %4216 unwind label %4230

4216:                                             ; preds = %4215
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %725) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %729) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %729) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %726) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %727) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %728) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %728) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %728) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %728, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1934.1, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4217 unwind label %4222

4217:                                             ; preds = %4216
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %727, ptr noundef nonnull align 8 dereferenceable(56) %728)
          to label %4218 unwind label %4224

4218:                                             ; preds = %4217
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %726, ptr noundef nonnull %727, i32 noundef 1)
          to label %4219 unwind label %4226

4219:                                             ; preds = %4218
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %729) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %729, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1934.2, ptr noundef nonnull align 8 dereferenceable(32) %681, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4220 unwind label %4228

4220:                                             ; preds = %4219
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %725, ptr noundef nonnull align 8 dereferenceable(56) %729, ptr noundef nonnull %726)
          to label %4221 unwind label %4230

4221:                                             ; preds = %4220
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %725) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %729) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %729) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %726) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %727) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %728) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %728) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %730, ptr noundef nonnull align 8 dereferenceable(32) %681)
          to label %4236 unwind label %4656

4222:                                             ; preds = %4216, %4181
  %4223 = landingpad { ptr, i32 }
          cleanup
  br label %4235

4224:                                             ; preds = %4217, %4212
  %4225 = landingpad { ptr, i32 }
          cleanup
  br label %4234

4226:                                             ; preds = %4218, %4213
  %4227 = landingpad { ptr, i32 }
          cleanup
  br label %4233

4228:                                             ; preds = %4219, %4214
  %4229 = landingpad { ptr, i32 }
          cleanup
  br label %4232

4230:                                             ; preds = %4220, %4215
  %4231 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %729) #10
  br label %4232

4232:                                             ; preds = %4230, %4228
  %.pn2622 = phi { ptr, i32 } [ %4231, %4230 ], [ %4229, %4228 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %729) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %726) #10
  br label %4233

4233:                                             ; preds = %4232, %4226
  %.pn2622.pn = phi { ptr, i32 } [ %.pn2622, %4232 ], [ %4227, %4226 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %727) #10
  br label %4234

4234:                                             ; preds = %4233, %4224
  %.pn2622.pn.pn = phi { ptr, i32 } [ %.pn2622.pn, %4233 ], [ %4225, %4224 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %728) #10
  br label %4235

4235:                                             ; preds = %4234, %4222
  %.pn2622.pn.pn.pn = phi { ptr, i32 } [ %.pn2622.pn.pn, %4234 ], [ %4223, %4222 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %728) #10
  br label %4680

4236:                                             ; preds = %4221
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %731, i32 noundef 0)
          to label %4237 unwind label %4658

4237:                                             ; preds = %4236
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %732, i32 noundef 1024)
          to label %4238 unwind label %4660

4238:                                             ; preds = %4237
  %4239 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %.ptr1934.2, ptr noundef nonnull %730, ptr noundef nonnull %731, ptr noundef nonnull %732)
          to label %4240 unwind label %4662

4240:                                             ; preds = %4238
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %733, ptr noundef nonnull align 8 dereferenceable(32) %682)
          to label %4241 unwind label %4662

4241:                                             ; preds = %4240
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %734, i32 noundef 0)
          to label %4242 unwind label %4664

4242:                                             ; preds = %4241
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %735, i32 noundef 1024)
          to label %4243 unwind label %4666

4243:                                             ; preds = %4242
  %4244 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4239, ptr noundef nonnull %733, ptr noundef nonnull %734, ptr noundef nonnull %735)
          to label %4245 unwind label %4668

4245:                                             ; preds = %4243
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %735) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %734) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %733) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %732) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %731) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %730) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %737) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %738, ptr noundef nonnull align 8 dereferenceable(32) %.ptr1934.2) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %737, ptr noundef nonnull %738)
          to label %4246 unwind label %4675

4246:                                             ; preds = %4245
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %736, ptr noundef nonnull align 8 dereferenceable(8) %737, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %4247 unwind label %4677

4247:                                             ; preds = %4246
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %736) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %737) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %738) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %737) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %713) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %713) #10
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %693) #10
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %693) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %682) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %682) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %681) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %681) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %678) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %678) #10
  %4248 = getelementptr inbounds i8, ptr %677, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4248) #10
  %4249 = getelementptr inbounds i8, ptr %677, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4249) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %677) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %677) #10
  %4250 = getelementptr inbounds i8, ptr %676, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4250) #10
  %4251 = getelementptr inbounds i8, ptr %676, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4251) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %676) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %676) #10
  %4252 = getelementptr inbounds i8, ptr %675, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4252) #10
  %4253 = getelementptr inbounds i8, ptr %675, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4253) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %675) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %675) #10
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %674) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %674) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %739) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %740) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %741) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %741) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %740, ptr noundef nonnull @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %741)
          to label %4254 unwind label %4694

4254:                                             ; preds = %4247
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %739, ptr noundef nonnull align 8 dereferenceable(32) %740)
          to label %4255 unwind label %4696

4255:                                             ; preds = %4254
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %740) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %741) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %741) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %740) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %742) #10
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %742)
          to label %4256 unwind label %4699

4256:                                             ; preds = %4255
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %750, ptr noundef nonnull align 8 dereferenceable(32) %742)
          to label %4257 unwind label %4701

4257:                                             ; preds = %4256
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %749, ptr noundef nonnull %750, i32 noundef 1)
          to label %4258 unwind label %4703

4258:                                             ; preds = %4257
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %752, ptr noundef nonnull align 8 dereferenceable(32) %742)
          to label %4259 unwind label %4705

4259:                                             ; preds = %4258
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %751, ptr noundef nonnull %752, i32 noundef 2)
          to label %4260 unwind label %4707

4260:                                             ; preds = %4259
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %748, ptr noundef nonnull %749, ptr noundef nonnull %751)
          to label %4261 unwind label %4709

4261:                                             ; preds = %4260
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %754, ptr noundef nonnull align 8 dereferenceable(32) %742)
          to label %4262 unwind label %4711

4262:                                             ; preds = %4261
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %753, ptr noundef nonnull %754, i32 noundef 3)
          to label %4263 unwind label %4713

4263:                                             ; preds = %4262
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %747, ptr noundef nonnull %748, ptr noundef nonnull %753)
          to label %4264 unwind label %4715

4264:                                             ; preds = %4263
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %756, ptr noundef nonnull align 8 dereferenceable(32) %742)
          to label %4265 unwind label %4717

4265:                                             ; preds = %4264
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %755, ptr noundef nonnull %756, i32 noundef 4)
          to label %4266 unwind label %4719

4266:                                             ; preds = %4265
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %746, ptr noundef nonnull %747, ptr noundef nonnull %755)
          to label %4267 unwind label %4721

4267:                                             ; preds = %4266
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %758, ptr noundef nonnull align 8 dereferenceable(32) %742)
          to label %4268 unwind label %4723

4268:                                             ; preds = %4267
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %757, ptr noundef nonnull %758, i32 noundef 5)
          to label %4269 unwind label %4725

4269:                                             ; preds = %4268
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %745, ptr noundef nonnull %746, ptr noundef nonnull %757)
          to label %4270 unwind label %4727

4270:                                             ; preds = %4269
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %760, ptr noundef nonnull align 8 dereferenceable(32) %742)
          to label %4271 unwind label %4729

4271:                                             ; preds = %4270
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %759, ptr noundef nonnull %760, i32 noundef 6)
          to label %4272 unwind label %4731

4272:                                             ; preds = %4271
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %744, ptr noundef nonnull %745, ptr noundef nonnull %759)
          to label %4273 unwind label %4733

4273:                                             ; preds = %4272
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %761) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %761, ptr noundef nonnull align 8 dereferenceable(32) %739, ptr noundef nonnull align 8 dereferenceable(32) %742)
          to label %4274 unwind label %4735

4274:                                             ; preds = %4273
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %743, ptr noundef nonnull align 8 dereferenceable(56) %761, ptr noundef nonnull %744)
          to label %4275 unwind label %4737

4275:                                             ; preds = %4274
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %743) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %761) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %761) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %744) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %759) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %760) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %745) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %757) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %758) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %746) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %755) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %756) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %747) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %753) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %754) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %748) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %751) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %752) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %749) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %750) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %762) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %763) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %764) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %764) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %763, ptr noundef nonnull @.str.23, ptr noundef nonnull align 1 dereferenceable(1) %764)
          to label %4276 unwind label %4756

4276:                                             ; preds = %4275
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %762, ptr noundef nonnull align 8 dereferenceable(32) %763)
          to label %4277 unwind label %4758

4277:                                             ; preds = %4276
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %763) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %764) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %764) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %763) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %767, ptr noundef nonnull align 8 dereferenceable(32) %742)
          to label %4278 unwind label %4761

4278:                                             ; preds = %4277
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %769, ptr noundef nonnull align 8 dereferenceable(32) %742)
          to label %4279 unwind label %4763

4279:                                             ; preds = %4278
  invoke void @_ZN6HalidemiEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %768, i32 noundef 10000, ptr noundef nonnull %769)
          to label %4280 unwind label %4765

4280:                                             ; preds = %4279
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %766, ptr noundef nonnull %767, ptr noundef nonnull %768)
          to label %4281 unwind label %4767

4281:                                             ; preds = %4280
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %770) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %770, ptr noundef nonnull align 8 dereferenceable(32) %762, ptr noundef nonnull align 8 dereferenceable(32) %742)
          to label %4282 unwind label %4769

4282:                                             ; preds = %4281
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %765, ptr noundef nonnull align 8 dereferenceable(56) %770, ptr noundef nonnull %766)
          to label %4283 unwind label %4771

4283:                                             ; preds = %4282
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %765) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %770) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %770) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %766) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %768) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %769) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %767) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %771) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %772) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %773) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %773) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %772, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %773)
          to label %4284 unwind label %4777

4284:                                             ; preds = %4283
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %771, ptr noundef nonnull align 8 dereferenceable(32) %772)
          to label %4285 unwind label %4779

4285:                                             ; preds = %4284
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %772) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %773) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %773) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %772) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %775) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %778) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %778, ptr noundef nonnull align 8 dereferenceable(32) %762, ptr noundef nonnull align 8 dereferenceable(32) %742)
          to label %4286 unwind label %4782

4286:                                             ; preds = %4285
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %777, ptr noundef nonnull align 8 dereferenceable(56) %778)
          to label %4287 unwind label %4784

4287:                                             ; preds = %4286
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %779, i32 noundef 0)
          to label %4288 unwind label %4786

4288:                                             ; preds = %4287
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %780, i32 noundef 100000)
          to label %4289 unwind label %4788

4289:                                             ; preds = %4288
  invoke void @_ZN6Halide5clampENS_4ExprES0_S0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %776, ptr noundef nonnull %777, ptr noundef nonnull %779, ptr noundef nonnull %780)
          to label %4290 unwind label %4790

4290:                                             ; preds = %4289
  invoke void @_ZNK6Halide4FuncclIJEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES3_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %775, ptr noundef nonnull align 8 dereferenceable(32) %739, ptr noundef nonnull %776)
          to label %4291 unwind label %4792

4291:                                             ; preds = %4290
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %781) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %781, ptr noundef nonnull align 8 dereferenceable(32) %771, ptr noundef nonnull align 8 dereferenceable(32) %742)
          to label %4292 unwind label %4794

4292:                                             ; preds = %4291
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %774, ptr noundef nonnull align 8 dereferenceable(56) %781, ptr noundef nonnull align 8 dereferenceable(56) %775)
          to label %4293 unwind label %4796

4293:                                             ; preds = %4292
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %774) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %781) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %781) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %775) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %776) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %780) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %779) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %777) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %778) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %778) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %775) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %782, ptr noundef nonnull align 8 dereferenceable(32) %742)
          to label %4294 unwind label %4805

4294:                                             ; preds = %4293
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %783, i32 noundef 0)
          to label %4295 unwind label %4807

4295:                                             ; preds = %4294
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %784, i32 noundef 10)
          to label %4296 unwind label %4809

4296:                                             ; preds = %4295
  %4297 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %771, ptr noundef nonnull %782, ptr noundef nonnull %783, ptr noundef nonnull %784)
          to label %4298 unwind label %4811

4298:                                             ; preds = %4296
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %784) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %783) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %782) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %786) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %787, ptr noundef nonnull align 8 dereferenceable(32) %771) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %786, ptr noundef nonnull %787)
          to label %4299 unwind label %4815

4299:                                             ; preds = %4298
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %785, ptr noundef nonnull align 8 dereferenceable(8) %786, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %4300 unwind label %4817

4300:                                             ; preds = %4299
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %785) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %786) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %787) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %786) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %771) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %771) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %762) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %762) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %742) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %742) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %739) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %739) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %788) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %789) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %790)
          to label %4301 unwind label %4827

4301:                                             ; preds = %4300
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %788, ptr noundef nonnull align 8 dereferenceable(32) %789)
          to label %4302 unwind label %4829

4302:                                             ; preds = %4301
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %789) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %790) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %790) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %789) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %791) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %792) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %793) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %793) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %792, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %793)
          to label %4303 unwind label %4832

4303:                                             ; preds = %4302
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %791, ptr noundef nonnull align 8 dereferenceable(32) %792)
          to label %4304 unwind label %4834

4304:                                             ; preds = %4303
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %792) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %793) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %793) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %792) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %795, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4305 unwind label %4837

4305:                                             ; preds = %4304
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %796) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %796, ptr noundef nonnull align 8 dereferenceable(32) %788, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4306 unwind label %4839

4306:                                             ; preds = %4305
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %794, ptr noundef nonnull align 8 dereferenceable(56) %796, ptr noundef nonnull %795)
          to label %4307 unwind label %4841

4307:                                             ; preds = %4306
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %794) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %796) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %796) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %795) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %798, i32 noundef 1)
          to label %4308 unwind label %4837

4308:                                             ; preds = %4307
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %799) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %799, ptr noundef nonnull align 8 dereferenceable(32) %788, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4309 unwind label %4844

4309:                                             ; preds = %4308
  invoke void @_ZN6Halide7FuncRefpLENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %797, ptr noundef nonnull align 8 dereferenceable(56) %799, ptr noundef nonnull %798)
          to label %4310 unwind label %4846

4310:                                             ; preds = %4309
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %797) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %799) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %799) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %798) #10
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %800) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %801, i32 noundef 0)
          to label %4311 unwind label %4849

4311:                                             ; preds = %4310
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %802, i32 noundef 100)
          to label %4312 unwind label %4851

4312:                                             ; preds = %4311
  invoke void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %800, ptr noundef nonnull %801, ptr noundef nonnull %802)
          to label %4313 unwind label %4853

4313:                                             ; preds = %4312
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %802) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %801) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %804, i32 noundef 0)
          to label %4314 unwind label %4856

4314:                                             ; preds = %4313
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %805) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %805, ptr noundef nonnull align 8 dereferenceable(32) %791, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4315 unwind label %4858

4315:                                             ; preds = %4314
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %803, ptr noundef nonnull align 8 dereferenceable(56) %805, ptr noundef nonnull %804)
          to label %4316 unwind label %4860

4316:                                             ; preds = %4315
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %803) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %805) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %805) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %804) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %807) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %808, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4317 unwind label %4863

4317:                                             ; preds = %4316
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %809) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %811, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4318 unwind label %4865

4318:                                             ; preds = %4317
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %812, ptr noundef nonnull align 8 dereferenceable(200) %800)
          to label %4319 unwind label %4867

4319:                                             ; preds = %4318
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %810, ptr noundef nonnull %811, ptr noundef nonnull %812)
          to label %4320 unwind label %4869

4320:                                             ; preds = %4319
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %809, i32 noundef 1000, ptr noundef nonnull %810)
          to label %4321 unwind label %4871

4321:                                             ; preds = %4320
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %807, ptr noundef nonnull align 8 dereferenceable(32) %788, ptr noundef nonnull %808, ptr noundef nonnull align 8 dereferenceable(8) %809)
          to label %4322 unwind label %4873

4322:                                             ; preds = %4321
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %813) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %813, ptr noundef nonnull align 8 dereferenceable(32) %791, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4323 unwind label %4875

4323:                                             ; preds = %4322
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %806, ptr noundef nonnull align 8 dereferenceable(56) %813, ptr noundef nonnull align 8 dereferenceable(56) %807)
          to label %4324 unwind label %4877

4324:                                             ; preds = %4323
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %806) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %813) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %813) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %807) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %809) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %810) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %812) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %811) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %809) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %808) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %807) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %814, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4325 unwind label %4856

4325:                                             ; preds = %4324
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %815, i32 noundef 0)
          to label %4326 unwind label %4886

4326:                                             ; preds = %4325
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %816, i32 noundef 1000)
          to label %4327 unwind label %4888

4327:                                             ; preds = %4326
  %4328 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %791, ptr noundef nonnull %814, ptr noundef nonnull %815, ptr noundef nonnull %816)
          to label %4329 unwind label %4890

4329:                                             ; preds = %4327
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %817, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4330 unwind label %4890

4330:                                             ; preds = %4329
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %818, i32 noundef 0)
          to label %4331 unwind label %4892

4331:                                             ; preds = %4330
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %819, i32 noundef 1000)
          to label %4332 unwind label %4894

4332:                                             ; preds = %4331
  %4333 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4328, ptr noundef nonnull %817, ptr noundef nonnull %818, ptr noundef nonnull %819)
          to label %4334 unwind label %4896

4334:                                             ; preds = %4332
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %819) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %818) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %817) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %816) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %815) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %814) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %821) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %822, ptr noundef nonnull align 8 dereferenceable(32) %791) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %821, ptr noundef nonnull %822)
          to label %4335 unwind label %4903

4335:                                             ; preds = %4334
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %820, ptr noundef nonnull align 8 dereferenceable(8) %821, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %4336 unwind label %4905

4336:                                             ; preds = %4335
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %820) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %821) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %822) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %821) #10
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %800) #10
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %800) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %791) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %791) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %788) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %788) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %823) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %824) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %825) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %825) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %824, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %825)
          to label %4337 unwind label %4913

4337:                                             ; preds = %4336
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %823, ptr noundef nonnull align 8 dereferenceable(32) %824)
          to label %4338 unwind label %4915

4338:                                             ; preds = %4337
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %824) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %825) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %825) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %824) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %826) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %827) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %828) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %828) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %827, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %828)
          to label %4339 unwind label %4918

4339:                                             ; preds = %4338
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %826, ptr noundef nonnull align 8 dereferenceable(32) %827)
          to label %4340 unwind label %4920

4340:                                             ; preds = %4339
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %827) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %828) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %828) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %827) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %829) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %830) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %831)
          to label %4341 unwind label %4923

4341:                                             ; preds = %4340
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %829, ptr noundef nonnull align 8 dereferenceable(32) %830)
          to label %4342 unwind label %4925

4342:                                             ; preds = %4341
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %830) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %831) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %831) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %830) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %834, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4343 unwind label %4928

4343:                                             ; preds = %4342
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %835, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4344 unwind label %4930

4344:                                             ; preds = %4343
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %833, ptr noundef nonnull %834, ptr noundef nonnull %835)
          to label %4345 unwind label %4932

4345:                                             ; preds = %4344
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %836) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %836, ptr noundef nonnull align 8 dereferenceable(32) %823, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4346 unwind label %4934

4346:                                             ; preds = %4345
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %832, ptr noundef nonnull align 8 dereferenceable(56) %836, ptr noundef nonnull %833)
          to label %4347 unwind label %4936

4347:                                             ; preds = %4346
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %832) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %836) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %836) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %833) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %835) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %834) #10
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %837) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %838, i32 noundef -50)
          to label %4348 unwind label %4941

4348:                                             ; preds = %4347
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %839, i32 noundef 100)
          to label %4349 unwind label %4943

4349:                                             ; preds = %4348
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %840) #10
  store i32 -50, ptr %840, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %841) #10
  store i32 100, ptr %841, align 4, !tbaa !17
  invoke void @_ZN6Halide4RDomC2IJiiEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %837, ptr noundef nonnull %838, ptr noundef nonnull %839, ptr noundef nonnull align 4 dereferenceable(4) %840, ptr noundef nonnull align 4 dereferenceable(4) %841)
          to label %4350 unwind label %4945

4350:                                             ; preds = %4349
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %841) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %840) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %839) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %838) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %843) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %845, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4351 unwind label %4948

4351:                                             ; preds = %4350
  %4352 = getelementptr inbounds i8, ptr %837, i64 56
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %846, ptr noundef nonnull align 8 dereferenceable(44) %4352)
          to label %4353 unwind label %4950

4353:                                             ; preds = %4351
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %844, ptr noundef nonnull %845, ptr noundef nonnull %846)
          to label %4354 unwind label %4952

4354:                                             ; preds = %4353
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %847) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %848, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4355 unwind label %4954

4355:                                             ; preds = %4354
  %4356 = getelementptr inbounds i8, ptr %837, i64 8
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %849, ptr noundef nonnull align 8 dereferenceable(44) %4356)
          to label %4357 unwind label %4956

4357:                                             ; preds = %4355
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %847, ptr noundef nonnull %848, ptr noundef nonnull %849)
          to label %4358 unwind label %4958

4358:                                             ; preds = %4357
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %843, ptr noundef nonnull align 8 dereferenceable(32) %823, ptr noundef nonnull %844, ptr noundef nonnull align 8 dereferenceable(8) %847)
          to label %4359 unwind label %4960

4359:                                             ; preds = %4358
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %850) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %850, ptr noundef nonnull align 8 dereferenceable(32) %826, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4360 unwind label %4962

4360:                                             ; preds = %4359
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %842, ptr noundef nonnull align 8 dereferenceable(56) %850, ptr noundef nonnull align 8 dereferenceable(56) %843)
          to label %4361 unwind label %4964

4361:                                             ; preds = %4360
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %842) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %850) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %850) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %843) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %847) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %849) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %848) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %847) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %844) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %846) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %845) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %843) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %852) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %854, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4362 unwind label %4974

4362:                                             ; preds = %4361
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %855, ptr noundef nonnull align 8 dereferenceable(44) %4352)
          to label %4363 unwind label %4976

4363:                                             ; preds = %4362
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %853, ptr noundef nonnull %854, ptr noundef nonnull %855)
          to label %4364 unwind label %4978

4364:                                             ; preds = %4363
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %856) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %857, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4365 unwind label %4980

4365:                                             ; preds = %4364
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %858, ptr noundef nonnull align 8 dereferenceable(44) %4352)
          to label %4366 unwind label %4982

4366:                                             ; preds = %4365
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %856, ptr noundef nonnull %857, ptr noundef nonnull %858)
          to label %4367 unwind label %4984

4367:                                             ; preds = %4366
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %852, ptr noundef nonnull align 8 dereferenceable(32) %826, ptr noundef nonnull %853, ptr noundef nonnull align 8 dereferenceable(8) %856)
          to label %4368 unwind label %4986

4368:                                             ; preds = %4367
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %859) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %859, ptr noundef nonnull align 8 dereferenceable(32) %829, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4369 unwind label %4988

4369:                                             ; preds = %4368
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %851, ptr noundef nonnull align 8 dereferenceable(56) %859, ptr noundef nonnull align 8 dereferenceable(56) %852)
          to label %4370 unwind label %4990

4370:                                             ; preds = %4369
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %851) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %859) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %859) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %852) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %856) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %858) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %857) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %856) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %853) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %855) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %854) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %852) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %860, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4371 unwind label %5000

4371:                                             ; preds = %4370
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %861, i32 noundef 0)
          to label %4372 unwind label %5002

4372:                                             ; preds = %4371
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %862, i32 noundef 1000)
          to label %4373 unwind label %5004

4373:                                             ; preds = %4372
  %4374 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %829, ptr noundef nonnull %860, ptr noundef nonnull %861, ptr noundef nonnull %862)
          to label %4375 unwind label %5006

4375:                                             ; preds = %4373
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %863, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4376 unwind label %5006

4376:                                             ; preds = %4375
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %864, i32 noundef 0)
          to label %4377 unwind label %5008

4377:                                             ; preds = %4376
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %865, i32 noundef 1000)
          to label %4378 unwind label %5010

4378:                                             ; preds = %4377
  %4379 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4374, ptr noundef nonnull %863, ptr noundef nonnull %864, ptr noundef nonnull %865)
          to label %4380 unwind label %5012

4380:                                             ; preds = %4378
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %865) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %864) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %863) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %862) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %861) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %860) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %867) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %868, ptr noundef nonnull align 8 dereferenceable(32) %829) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %867, ptr noundef nonnull %868)
          to label %4381 unwind label %5019

4381:                                             ; preds = %4380
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %866, ptr noundef nonnull align 8 dereferenceable(8) %867, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %4382 unwind label %5021

4382:                                             ; preds = %4381
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %866) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %867) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %868) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %867) #10
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %837) #10
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %837) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %829) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %829) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %826) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %826) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %823) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %823) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %869) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %870) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %871) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %871) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %870, ptr noundef nonnull @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %871)
          to label %4383 unwind label %5030

4383:                                             ; preds = %4382
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %869, ptr noundef nonnull align 8 dereferenceable(32) %870)
          to label %4384 unwind label %5032

4384:                                             ; preds = %4383
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %870) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %871) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %871) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %870) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %872) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %873) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %874)
          to label %4385 unwind label %5035

4385:                                             ; preds = %4384
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %872, ptr noundef nonnull align 8 dereferenceable(32) %873)
          to label %4386 unwind label %5037

4386:                                             ; preds = %4385
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %873) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %874) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %874) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %873) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %875) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %876) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %877) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %877) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %876, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %877)
          to label %4387 unwind label %5040

4387:                                             ; preds = %4386
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %875, ptr noundef nonnull align 8 dereferenceable(32) %876)
          to label %4388 unwind label %5042

4388:                                             ; preds = %4387
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %876) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %877) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %877) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %876) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %884, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4389 unwind label %5045

4389:                                             ; preds = %4388
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %885, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4390 unwind label %5047

4390:                                             ; preds = %4389
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %883, ptr noundef nonnull %884, ptr noundef nonnull %885)
          to label %4391 unwind label %5049

4391:                                             ; preds = %4390
  invoke void @_ZN6Halide4sqrtENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %882, ptr noundef nonnull %883)
          to label %4392 unwind label %5051

4392:                                             ; preds = %4391
  invoke void @_ZN6Halide4sqrtENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %881, ptr noundef nonnull %882)
          to label %4393 unwind label %5053

4393:                                             ; preds = %4392
  invoke void @_ZN6Halide4sqrtENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %880, ptr noundef nonnull %881)
          to label %4394 unwind label %5055

4394:                                             ; preds = %4393
  invoke void @_ZN6Halide4sqrtENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %879, ptr noundef nonnull %880)
          to label %4395 unwind label %5057

4395:                                             ; preds = %4394
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %886) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %886, ptr noundef nonnull align 8 dereferenceable(32) %869, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4396 unwind label %5059

4396:                                             ; preds = %4395
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %878, ptr noundef nonnull align 8 dereferenceable(56) %886, ptr noundef nonnull %879)
          to label %4397 unwind label %5061

4397:                                             ; preds = %4396
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %878) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %886) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %886) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %879) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %880) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %881) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %882) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %883) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %885) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %884) #10
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %887) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %888, i32 noundef -50)
          to label %4398 unwind label %5070

4398:                                             ; preds = %4397
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %889, i32 noundef 100)
          to label %4399 unwind label %5072

4399:                                             ; preds = %4398
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %890) #10
  store i32 -50, ptr %890, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %891) #10
  store i32 100, ptr %891, align 4, !tbaa !17
  invoke void @_ZN6Halide4RDomC2IJiiEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %887, ptr noundef nonnull %888, ptr noundef nonnull %889, ptr noundef nonnull align 4 dereferenceable(4) %890, ptr noundef nonnull align 4 dereferenceable(4) %891)
          to label %4400 unwind label %5074

4400:                                             ; preds = %4399
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %891) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %890) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %889) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %888) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %893) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %895, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4401 unwind label %5077

4401:                                             ; preds = %4400
  %4402 = getelementptr inbounds i8, ptr %887, i64 8
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %896, ptr noundef nonnull align 8 dereferenceable(44) %4402)
          to label %4403 unwind label %5079

4403:                                             ; preds = %4401
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %894, ptr noundef nonnull %895, ptr noundef nonnull %896)
          to label %4404 unwind label %5081

4404:                                             ; preds = %4403
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %897) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %898, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4405 unwind label %5083

4405:                                             ; preds = %4404
  %4406 = getelementptr inbounds i8, ptr %887, i64 56
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %899, ptr noundef nonnull align 8 dereferenceable(44) %4406)
          to label %4407 unwind label %5085

4407:                                             ; preds = %4405
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %897, ptr noundef nonnull %898, ptr noundef nonnull %899)
          to label %4408 unwind label %5087

4408:                                             ; preds = %4407
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %893, ptr noundef nonnull align 8 dereferenceable(32) %869, ptr noundef nonnull %894, ptr noundef nonnull align 8 dereferenceable(8) %897)
          to label %4409 unwind label %5089

4409:                                             ; preds = %4408
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %900) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %900, ptr noundef nonnull align 8 dereferenceable(32) %872, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4410 unwind label %5091

4410:                                             ; preds = %4409
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %892, ptr noundef nonnull align 8 dereferenceable(56) %900, ptr noundef nonnull align 8 dereferenceable(56) %893)
          to label %4411 unwind label %5093

4411:                                             ; preds = %4410
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %892) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %900) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %900) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %893) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %897) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %899) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %898) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %897) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %894) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %896) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %895) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %893) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %902) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %904, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4412 unwind label %5103

4412:                                             ; preds = %4411
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %905, ptr noundef nonnull align 8 dereferenceable(44) %4406)
          to label %4413 unwind label %5105

4413:                                             ; preds = %4412
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %903, ptr noundef nonnull %904, ptr noundef nonnull %905)
          to label %4414 unwind label %5107

4414:                                             ; preds = %4413
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %906) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %907, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4415 unwind label %5109

4415:                                             ; preds = %4414
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %908, ptr noundef nonnull align 8 dereferenceable(44) %4402)
          to label %4416 unwind label %5111

4416:                                             ; preds = %4415
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %906, ptr noundef nonnull %907, ptr noundef nonnull %908)
          to label %4417 unwind label %5113

4417:                                             ; preds = %4416
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %902, ptr noundef nonnull align 8 dereferenceable(32) %869, ptr noundef nonnull %903, ptr noundef nonnull align 8 dereferenceable(8) %906)
          to label %4418 unwind label %5115

4418:                                             ; preds = %4417
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %909) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %909, ptr noundef nonnull align 8 dereferenceable(32) %875, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4419 unwind label %5117

4419:                                             ; preds = %4418
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %901, ptr noundef nonnull align 8 dereferenceable(56) %909, ptr noundef nonnull align 8 dereferenceable(56) %902)
          to label %4420 unwind label %5119

4420:                                             ; preds = %4419
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %901) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %909) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %909) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %902) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %906) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %908) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %907) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %906) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %903) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %905) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %904) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %902) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %910, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4421 unwind label %5129

4421:                                             ; preds = %4420
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %911, i32 noundef 0)
          to label %4422 unwind label %5131

4422:                                             ; preds = %4421
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %912, i32 noundef 1000)
          to label %4423 unwind label %5133

4423:                                             ; preds = %4422
  %4424 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %872, ptr noundef nonnull %910, ptr noundef nonnull %911, ptr noundef nonnull %912)
          to label %4425 unwind label %5135

4425:                                             ; preds = %4423
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %913, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4426 unwind label %5135

4426:                                             ; preds = %4425
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %914, i32 noundef 0)
          to label %4427 unwind label %5137

4427:                                             ; preds = %4426
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %915, i32 noundef 1000)
          to label %4428 unwind label %5139

4428:                                             ; preds = %4427
  %4429 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4424, ptr noundef nonnull %913, ptr noundef nonnull %914, ptr noundef nonnull %915)
          to label %4430 unwind label %5141

4430:                                             ; preds = %4428
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %915) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %914) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %913) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %912) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %911) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %910) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %916, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4431 unwind label %5129

4431:                                             ; preds = %4430
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %917, i32 noundef 0)
          to label %4432 unwind label %5148

4432:                                             ; preds = %4431
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %918, i32 noundef 1000)
          to label %4433 unwind label %5150

4433:                                             ; preds = %4432
  %4434 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %875, ptr noundef nonnull %916, ptr noundef nonnull %917, ptr noundef nonnull %918)
          to label %4435 unwind label %5152

4435:                                             ; preds = %4433
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %919, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4436 unwind label %5152

4436:                                             ; preds = %4435
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %920, i32 noundef 0)
          to label %4437 unwind label %5154

4437:                                             ; preds = %4436
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %921, i32 noundef 1000)
          to label %4438 unwind label %5156

4438:                                             ; preds = %4437
  %4439 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4434, ptr noundef nonnull %919, ptr noundef nonnull %920, ptr noundef nonnull %921)
          to label %4440 unwind label %5158

4440:                                             ; preds = %4438
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %921) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %920) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %919) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %918) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %917) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %916) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %923) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %924) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %925) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %925, ptr noundef nonnull align 8 dereferenceable(32) %872) #10
  %4441 = getelementptr inbounds i8, ptr %925, i64 32
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %4441, ptr noundef nonnull align 8 dereferenceable(32) %875) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %926) #10
  call void @_ZNSaIN6Halide4FuncEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %926) #10
  invoke void @_ZNSt6vectorIN6Halide4FuncESaIS1_EEC2ESt16initializer_listIS1_ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %924, ptr nonnull %925, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %926)
          to label %4442 unwind label %5165

4442:                                             ; preds = %4440
  invoke void @_ZN6Halide8PipelineC1ERKSt6vectorINS_4FuncESaIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %923, ptr noundef nonnull align 8 dereferenceable(24) %924)
          to label %4443 unwind label %5167

4443:                                             ; preds = %4442
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %922, ptr noundef nonnull align 8 dereferenceable(8) %923, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %4444 unwind label %5169

4444:                                             ; preds = %4443
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %922) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %923) #10
  call void @_ZNSt6vectorIN6Halide4FuncESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %924) #10
  call void @_ZNSt15__new_allocatorIN6Halide4FuncEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %926) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %926) #10
  %4445 = getelementptr inbounds i8, ptr %925, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4445) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %925) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %925) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %924) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %923) #10
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %887) #10
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %887) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %875) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %875) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %872) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %872) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %869) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %869) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %927) #10
  %4446 = invoke { i64, ptr } @_ZN6Halide5FloatEii(i32 noundef 32, i32 noundef 1)
          to label %4447 unwind label %5180

4447:                                             ; preds = %4444
  %4448 = extractvalue { i64, ptr } %4446, 0
  %4449 = extractvalue { i64, ptr } %4446, 1
  invoke void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56) %927, i64 %4448, ptr %4449, i32 noundef 2)
          to label %4450 unwind label %5180

4450:                                             ; preds = %4447
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %928) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %929) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %930)
          to label %4451 unwind label %5182

4451:                                             ; preds = %4450
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %928, ptr noundef nonnull align 8 dereferenceable(32) %929)
          to label %4452 unwind label %5184

4452:                                             ; preds = %4451
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %929) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %930) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %930) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %929) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %931) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %932) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %933) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %933) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %932, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %933)
          to label %4453 unwind label %5187

4453:                                             ; preds = %4452
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %931, ptr noundef nonnull align 8 dereferenceable(32) %932)
          to label %4454 unwind label %5189

4454:                                             ; preds = %4453
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %932) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %933) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %933) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %932) #10
  invoke void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_EEENS_4ExprEDpOT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %935, ptr noundef nonnull align 8 dereferenceable(56) %927, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4455 unwind label %5192

4455:                                             ; preds = %4454
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %936) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %936, ptr noundef nonnull align 8 dereferenceable(32) %928, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4456 unwind label %5194

4456:                                             ; preds = %4455
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %934, ptr noundef nonnull align 8 dereferenceable(56) %936, ptr noundef nonnull %935)
          to label %4457 unwind label %5196

4457:                                             ; preds = %4456
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %934) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %936) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %936) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %935) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %938) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %938, ptr noundef nonnull align 8 dereferenceable(32) %928, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4458 unwind label %5199

4458:                                             ; preds = %4457
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %939) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %939, ptr noundef nonnull align 8 dereferenceable(32) %931, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4459 unwind label %5201

4459:                                             ; preds = %4458
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %937, ptr noundef nonnull align 8 dereferenceable(56) %939, ptr noundef nonnull align 8 dereferenceable(56) %938)
          to label %4460 unwind label %5203

4460:                                             ; preds = %4459
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %937) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %939) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %939) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %938) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %938) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %940, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4461 unwind label %5192

4461:                                             ; preds = %4460
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %941, i32 noundef 0)
          to label %4462 unwind label %5207

4462:                                             ; preds = %4461
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %942, i32 noundef 1000)
          to label %4463 unwind label %5209

4463:                                             ; preds = %4462
  %4464 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %931, ptr noundef nonnull %940, ptr noundef nonnull %941, ptr noundef nonnull %942)
          to label %4465 unwind label %5211

4465:                                             ; preds = %4463
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %943, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4466 unwind label %5211

4466:                                             ; preds = %4465
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %944, i32 noundef 0)
          to label %4467 unwind label %5213

4467:                                             ; preds = %4466
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %945, i32 noundef 1000)
          to label %4468 unwind label %5215

4468:                                             ; preds = %4467
  %4469 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4464, ptr noundef nonnull %943, ptr noundef nonnull %944, ptr noundef nonnull %945)
          to label %4470 unwind label %5217

4470:                                             ; preds = %4468
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %945) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %944) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %943) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %942) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %941) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %940) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %947) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %948, ptr noundef nonnull align 8 dereferenceable(32) %931) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %947, ptr noundef nonnull %948)
          to label %4471 unwind label %5224

4471:                                             ; preds = %4470
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %946, ptr noundef nonnull align 8 dereferenceable(8) %947, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %4472 unwind label %5226

4472:                                             ; preds = %4471
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %946) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %947) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %948) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %947) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %931) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %931) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %928) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %928) #10
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %927) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %927) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %949) #10
  %4473 = invoke { i64, ptr } @_ZN6Halide5FloatEii(i32 noundef 32, i32 noundef 1)
          to label %4474 unwind label %5233

4474:                                             ; preds = %4472
  %4475 = extractvalue { i64, ptr } %4473, 0
  %4476 = extractvalue { i64, ptr } %4473, 1
  invoke void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56) %949, i64 %4475, ptr %4476, i32 noundef 2)
          to label %4477 unwind label %5233

4477:                                             ; preds = %4474
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %950) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %951) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %952) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %952) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %951, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %952)
          to label %4478 unwind label %5235

4478:                                             ; preds = %4477
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %950, ptr noundef nonnull align 8 dereferenceable(32) %951)
          to label %4479 unwind label %5237

4479:                                             ; preds = %4478
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %951) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %952) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %952) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %951) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %955) #10
  invoke void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_EEENS_4ExprEDpOT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %955, ptr noundef nonnull align 8 dereferenceable(56) %949, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4480 unwind label %5240

4480:                                             ; preds = %4479
  invoke void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %954, ptr noundef nonnull align 8 dereferenceable(8) %955, i32 noundef 7)
          to label %4481 unwind label %5242

4481:                                             ; preds = %4480
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %956) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %956, ptr noundef nonnull align 8 dereferenceable(32) %950, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4482 unwind label %5244

4482:                                             ; preds = %4481
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %953, ptr noundef nonnull align 8 dereferenceable(56) %956, ptr noundef nonnull %954)
          to label %4483 unwind label %5246

4483:                                             ; preds = %4482
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %953) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %956) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %956) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %954) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %955) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %955) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %957, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4484 unwind label %5251

4484:                                             ; preds = %4483
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %958, i32 noundef 0)
          to label %4485 unwind label %5253

4485:                                             ; preds = %4484
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %959, i32 noundef 3)
          to label %4486 unwind label %5255

4486:                                             ; preds = %4485
  %4487 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %950, ptr noundef nonnull %957, ptr noundef nonnull %958, ptr noundef nonnull %959)
          to label %4488 unwind label %5257

4488:                                             ; preds = %4486
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %960, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4489 unwind label %5257

4489:                                             ; preds = %4488
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %961, i32 noundef 0)
          to label %4490 unwind label %5259

4490:                                             ; preds = %4489
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %962, i32 noundef 5)
          to label %4491 unwind label %5261

4491:                                             ; preds = %4490
  %4492 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4487, ptr noundef nonnull %960, ptr noundef nonnull %961, ptr noundef nonnull %962)
          to label %4493 unwind label %5263

4493:                                             ; preds = %4491
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %962) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %961) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %960) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %959) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %958) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %957) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %964) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %965, ptr noundef nonnull align 8 dereferenceable(32) %950) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %964, ptr noundef nonnull %965)
          to label %4494 unwind label %5270

4494:                                             ; preds = %4493
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %963, ptr noundef nonnull align 8 dereferenceable(8) %964, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %4495 unwind label %5272

4495:                                             ; preds = %4494
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %963) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %964) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %965) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %964) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %950) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %950) #10
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %949) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %949) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %966) #10
  %4496 = invoke { i64, ptr } @_ZN6Halide5FloatEii(i32 noundef 32, i32 noundef 1)
          to label %4497 unwind label %5278

4497:                                             ; preds = %4495
  %4498 = extractvalue { i64, ptr } %4496, 0
  %4499 = extractvalue { i64, ptr } %4496, 1
  invoke void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56) %966, i64 %4498, ptr %4499, i32 noundef 7)
          to label %4500 unwind label %5278

4500:                                             ; preds = %4497
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %967) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %968) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %969) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %969) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %968, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %969)
          to label %4501 unwind label %5280

4501:                                             ; preds = %4500
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %967, ptr noundef nonnull align 8 dereferenceable(32) %968)
          to label %4502 unwind label %5282

4502:                                             ; preds = %4501
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %968) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %969) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %969) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %968) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %970) #10
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %970)
          to label %4503 unwind label %5285

4503:                                             ; preds = %4502
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %971) #10
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %971)
          to label %4504 unwind label %5287

4504:                                             ; preds = %4503
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %972) #10
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %972)
          to label %4505 unwind label %5289

4505:                                             ; preds = %4504
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %973) #10
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %973)
          to label %4506 unwind label %5291

4506:                                             ; preds = %4505
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %974) #10
  invoke void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %974)
          to label %4507 unwind label %5293

4507:                                             ; preds = %4506
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %977) #10
  invoke void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_S3_S3_S3_S3_S3_EEENS_4ExprEDpOT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %977, ptr noundef nonnull align 8 dereferenceable(56) %966, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %970, ptr noundef nonnull align 8 dereferenceable(32) %971, ptr noundef nonnull align 8 dereferenceable(32) %972, ptr noundef nonnull align 8 dereferenceable(32) %973, ptr noundef nonnull align 8 dereferenceable(32) %974)
          to label %4508 unwind label %5295

4508:                                             ; preds = %4507
  invoke void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %976, ptr noundef nonnull align 8 dereferenceable(8) %977, i32 noundef 7)
          to label %4509 unwind label %5297

4509:                                             ; preds = %4508
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %978) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_S3_S3_S3_S3_S3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %978, ptr noundef nonnull align 8 dereferenceable(32) %967, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %970, ptr noundef nonnull align 8 dereferenceable(32) %971, ptr noundef nonnull align 8 dereferenceable(32) %972, ptr noundef nonnull align 8 dereferenceable(32) %973, ptr noundef nonnull align 8 dereferenceable(32) %974)
          to label %4510 unwind label %5299

4510:                                             ; preds = %4509
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %975, ptr noundef nonnull align 8 dereferenceable(56) %978, ptr noundef nonnull %976)
          to label %4511 unwind label %5301

4511:                                             ; preds = %4510
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %975) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %978) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %978) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %976) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %977) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %977) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %979, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4512 unwind label %5306

4512:                                             ; preds = %4511
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %980, i32 noundef 0)
          to label %4513 unwind label %5308

4513:                                             ; preds = %4512
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %981, i32 noundef 8)
          to label %4514 unwind label %5310

4514:                                             ; preds = %4513
  %4515 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %967, ptr noundef nonnull %979, ptr noundef nonnull %980, ptr noundef nonnull %981)
          to label %4516 unwind label %5312

4516:                                             ; preds = %4514
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %982, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4517 unwind label %5312

4517:                                             ; preds = %4516
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %983, i32 noundef 0)
          to label %4518 unwind label %5314

4518:                                             ; preds = %4517
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %984, i32 noundef 9)
          to label %4519 unwind label %5316

4519:                                             ; preds = %4518
  %4520 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4515, ptr noundef nonnull %982, ptr noundef nonnull %983, ptr noundef nonnull %984)
          to label %4521 unwind label %5318

4521:                                             ; preds = %4519
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %985, ptr noundef nonnull align 8 dereferenceable(32) %970)
          to label %4522 unwind label %5318

4522:                                             ; preds = %4521
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %986, i32 noundef 0)
          to label %4523 unwind label %5320

4523:                                             ; preds = %4522
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %987, i32 noundef 10)
          to label %4524 unwind label %5322

4524:                                             ; preds = %4523
  %4525 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4520, ptr noundef nonnull %985, ptr noundef nonnull %986, ptr noundef nonnull %987)
          to label %4526 unwind label %5324

4526:                                             ; preds = %4524
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %988, ptr noundef nonnull align 8 dereferenceable(32) %971)
          to label %4527 unwind label %5324

4527:                                             ; preds = %4526
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %989, i32 noundef 0)
          to label %4528 unwind label %5326

4528:                                             ; preds = %4527
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %990, i32 noundef 5)
          to label %4529 unwind label %5328

4529:                                             ; preds = %4528
  %4530 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4525, ptr noundef nonnull %988, ptr noundef nonnull %989, ptr noundef nonnull %990)
          to label %4531 unwind label %5330

4531:                                             ; preds = %4529
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %991, ptr noundef nonnull align 8 dereferenceable(32) %972)
          to label %4532 unwind label %5330

4532:                                             ; preds = %4531
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %992, i32 noundef 0)
          to label %4533 unwind label %5332

4533:                                             ; preds = %4532
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %993, i32 noundef 3)
          to label %4534 unwind label %5334

4534:                                             ; preds = %4533
  %4535 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4530, ptr noundef nonnull %991, ptr noundef nonnull %992, ptr noundef nonnull %993)
          to label %4536 unwind label %5336

4536:                                             ; preds = %4534
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %994, ptr noundef nonnull align 8 dereferenceable(32) %973)
          to label %4537 unwind label %5336

4537:                                             ; preds = %4536
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %995, i32 noundef 0)
          to label %4538 unwind label %5338

4538:                                             ; preds = %4537
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %996, i32 noundef 2)
          to label %4539 unwind label %5340

4539:                                             ; preds = %4538
  %4540 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4535, ptr noundef nonnull %994, ptr noundef nonnull %995, ptr noundef nonnull %996)
          to label %4541 unwind label %5342

4541:                                             ; preds = %4539
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %997, ptr noundef nonnull align 8 dereferenceable(32) %974)
          to label %4542 unwind label %5342

4542:                                             ; preds = %4541
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %998, i32 noundef 0)
          to label %4543 unwind label %5344

4543:                                             ; preds = %4542
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %999, i32 noundef 6)
          to label %4544 unwind label %5346

4544:                                             ; preds = %4543
  %4545 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4540, ptr noundef nonnull %997, ptr noundef nonnull %998, ptr noundef nonnull %999)
          to label %4546 unwind label %5348

4546:                                             ; preds = %4544
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %999) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %998) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %997) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %996) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %995) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %994) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %993) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %992) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %991) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %990) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %989) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %988) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %987) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %986) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %985) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %984) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %983) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %982) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %981) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %980) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %979) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1001) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1002, ptr noundef nonnull align 8 dereferenceable(32) %967) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %1001, ptr noundef nonnull %1002)
          to label %4547 unwind label %5370

4547:                                             ; preds = %4546
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %1000, ptr noundef nonnull align 8 dereferenceable(8) %1001, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %4548 unwind label %5372

4548:                                             ; preds = %4547
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %1000) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1001) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1002) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1001) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %974) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %974) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %973) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %973) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %972) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %972) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %971) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %971) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %970) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %970) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %967) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %967) #10
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %966) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %966) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1003) #10
  %4549 = invoke { i64, ptr } @_ZN6Halide5FloatEii(i32 noundef 32, i32 noundef 1)
          to label %4550 unwind label %5383

4550:                                             ; preds = %4548
  %4551 = extractvalue { i64, ptr } %4549, 0
  %4552 = extractvalue { i64, ptr } %4549, 1
  invoke void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56) %1003, i64 %4551, ptr %4552, i32 noundef 2)
          to label %4553 unwind label %5383

4553:                                             ; preds = %4550
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1004) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1005) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1006) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1006) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1005, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %1006)
          to label %4554 unwind label %5385

4554:                                             ; preds = %4553
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1004, ptr noundef nonnull align 8 dereferenceable(32) %1005)
          to label %4555 unwind label %5387

4555:                                             ; preds = %4554
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1005) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1006) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1006) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1005) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1007) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1008) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1009) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1009) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1008, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %1009)
          to label %4556 unwind label %5390

4556:                                             ; preds = %4555
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1007, ptr noundef nonnull align 8 dereferenceable(32) %1008)
          to label %4557 unwind label %5392

4557:                                             ; preds = %4556
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1008) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1009) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1009) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1008) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1010) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1011) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1012) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1012) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1011, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %1012)
          to label %4558 unwind label %5395

4558:                                             ; preds = %4557
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1010, ptr noundef nonnull align 8 dereferenceable(32) %1011)
          to label %4559 unwind label %5397

4559:                                             ; preds = %4558
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1011) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1012) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1012) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1011) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1015) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1017, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4560 unwind label %5400

4560:                                             ; preds = %4559
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1018, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4561 unwind label %5402

4561:                                             ; preds = %4560
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1016, ptr noundef nonnull %1017, ptr noundef nonnull %1018)
          to label %4562 unwind label %5404

4562:                                             ; preds = %4561
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1019, i32 noundef 0)
          to label %4563 unwind label %5406

4563:                                             ; preds = %4562
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1020, i32 noundef 999)
          to label %4564 unwind label %5408

4564:                                             ; preds = %4563
  invoke void @_ZN6Halide5clampENS_4ExprES0_S0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1015, ptr noundef nonnull %1016, ptr noundef nonnull %1019, ptr noundef nonnull %1020)
          to label %4565 unwind label %5410

4565:                                             ; preds = %4564
  invoke void @_ZNK6Halide10ImageParamclIJNS_4ExprERNS_3VarEEEES2_DpOT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1014, ptr noundef nonnull align 8 dereferenceable(56) %1003, ptr noundef nonnull align 8 dereferenceable(8) %1015, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4566 unwind label %5412

4566:                                             ; preds = %4565
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1021) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1021, ptr noundef nonnull align 8 dereferenceable(32) %1004, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4567 unwind label %5414

4567:                                             ; preds = %4566
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1013, ptr noundef nonnull align 8 dereferenceable(56) %1021, ptr noundef nonnull %1014)
          to label %4568 unwind label %5416

4568:                                             ; preds = %4567
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1013) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1021) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1021) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1014) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1015) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1020) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1019) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1016) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1018) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1017) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1015) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1023) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1026, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4569 unwind label %5426

4569:                                             ; preds = %4568
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1027, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4570 unwind label %5428

4570:                                             ; preds = %4569
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1025, ptr noundef nonnull %1026, ptr noundef nonnull %1027)
          to label %4571 unwind label %5430

4571:                                             ; preds = %4570
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1028, i32 noundef 0)
          to label %4572 unwind label %5432

4572:                                             ; preds = %4571
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1029, i32 noundef 999)
          to label %4573 unwind label %5434

4573:                                             ; preds = %4572
  invoke void @_ZN6Halide5clampENS_4ExprES0_S0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1024, ptr noundef nonnull %1025, ptr noundef nonnull %1028, ptr noundef nonnull %1029)
          to label %4574 unwind label %5436

4574:                                             ; preds = %4573
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1023, ptr noundef nonnull align 8 dereferenceable(32) %1004, ptr noundef nonnull %1024, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4575 unwind label %5438

4575:                                             ; preds = %4574
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1030) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1030, ptr noundef nonnull align 8 dereferenceable(32) %1007, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4576 unwind label %5440

4576:                                             ; preds = %4575
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1022, ptr noundef nonnull align 8 dereferenceable(56) %1030, ptr noundef nonnull align 8 dereferenceable(56) %1023)
          to label %4577 unwind label %5442

4577:                                             ; preds = %4576
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1022) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1030) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1030) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1023) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1024) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1029) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1028) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1025) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1027) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1026) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1023) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1032) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1035, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4578 unwind label %5452

4578:                                             ; preds = %4577
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1036, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4579 unwind label %5454

4579:                                             ; preds = %4578
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1034, ptr noundef nonnull %1035, ptr noundef nonnull %1036)
          to label %4580 unwind label %5456

4580:                                             ; preds = %4579
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1037, i32 noundef 0)
          to label %4581 unwind label %5458

4581:                                             ; preds = %4580
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1038, i32 noundef 999)
          to label %4582 unwind label %5460

4582:                                             ; preds = %4581
  invoke void @_ZN6Halide5clampENS_4ExprES0_S0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1033, ptr noundef nonnull %1034, ptr noundef nonnull %1037, ptr noundef nonnull %1038)
          to label %4583 unwind label %5462

4583:                                             ; preds = %4582
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1032, ptr noundef nonnull align 8 dereferenceable(32) %1007, ptr noundef nonnull %1033, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4584 unwind label %5464

4584:                                             ; preds = %4583
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1039) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1039, ptr noundef nonnull align 8 dereferenceable(32) %1010, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4585 unwind label %5466

4585:                                             ; preds = %4584
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1031, ptr noundef nonnull align 8 dereferenceable(56) %1039, ptr noundef nonnull align 8 dereferenceable(56) %1032)
          to label %4586 unwind label %5468

4586:                                             ; preds = %4585
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1031) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1039) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1039) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1032) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1033) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1038) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1037) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1034) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1036) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1035) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1032) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1040) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1041) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %1042)
          to label %4587 unwind label %5478

4587:                                             ; preds = %4586
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1040, ptr noundef nonnull align 8 dereferenceable(32) %1041)
          to label %4588 unwind label %5480

4588:                                             ; preds = %4587
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1041) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1042) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1042) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1041) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1043) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1044) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1045) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1045) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1044, ptr noundef nonnull @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %1045)
          to label %4589 unwind label %5483

4589:                                             ; preds = %4588
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1043, ptr noundef nonnull align 8 dereferenceable(32) %1044)
          to label %4590 unwind label %5485

4590:                                             ; preds = %4589
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1044) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1045) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1045) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1044) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1050) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1050, ptr noundef nonnull align 8 dereferenceable(32) %1004, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4591 unwind label %5488

4591:                                             ; preds = %4590
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1049, ptr noundef nonnull align 8 dereferenceable(56) %1050)
          to label %4592 unwind label %5490

4592:                                             ; preds = %4591
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1052) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1052, ptr noundef nonnull align 8 dereferenceable(32) %1007, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4593 unwind label %5492

4593:                                             ; preds = %4592
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1051, ptr noundef nonnull align 8 dereferenceable(56) %1052)
          to label %4594 unwind label %5494

4594:                                             ; preds = %4593
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1048, ptr noundef nonnull %1049, ptr noundef nonnull %1051)
          to label %4595 unwind label %5496

4595:                                             ; preds = %4594
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1054) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1054, ptr noundef nonnull align 8 dereferenceable(32) %1010, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4596 unwind label %5498

4596:                                             ; preds = %4595
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1053, ptr noundef nonnull align 8 dereferenceable(56) %1054)
          to label %4597 unwind label %5500

4597:                                             ; preds = %4596
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1047, ptr noundef nonnull %1048, ptr noundef nonnull %1053)
          to label %4598 unwind label %5502

4598:                                             ; preds = %4597
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1055) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1055, ptr noundef nonnull align 8 dereferenceable(32) %1040, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4599 unwind label %5504

4599:                                             ; preds = %4598
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1046, ptr noundef nonnull align 8 dereferenceable(56) %1055, ptr noundef nonnull %1047)
          to label %4600 unwind label %5506

4600:                                             ; preds = %4599
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1046) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1055) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1055) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1047) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1053) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1054) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1054) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1048) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1051) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1052) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1052) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1049) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1050) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1050) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1060) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1060, ptr noundef nonnull align 8 dereferenceable(32) %1004, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4601 unwind label %5517

4601:                                             ; preds = %4600
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1059, ptr noundef nonnull align 8 dereferenceable(56) %1060)
          to label %4602 unwind label %5519

4602:                                             ; preds = %4601
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1062) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1062, ptr noundef nonnull align 8 dereferenceable(32) %1007, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4603 unwind label %5521

4603:                                             ; preds = %4602
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1061, ptr noundef nonnull align 8 dereferenceable(56) %1062)
          to label %4604 unwind label %5523

4604:                                             ; preds = %4603
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1058, ptr noundef nonnull %1059, ptr noundef nonnull %1061)
          to label %4605 unwind label %5525

4605:                                             ; preds = %4604
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1064) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1064, ptr noundef nonnull align 8 dereferenceable(32) %1010, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4606 unwind label %5527

4606:                                             ; preds = %4605
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1063, ptr noundef nonnull align 8 dereferenceable(56) %1064)
          to label %4607 unwind label %5529

4607:                                             ; preds = %4606
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1057, ptr noundef nonnull %1058, ptr noundef nonnull %1063)
          to label %4608 unwind label %5531

4608:                                             ; preds = %4607
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1065) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1065, ptr noundef nonnull align 8 dereferenceable(32) %1043, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4609 unwind label %5533

4609:                                             ; preds = %4608
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1056, ptr noundef nonnull align 8 dereferenceable(56) %1065, ptr noundef nonnull %1057)
          to label %4610 unwind label %5535

4610:                                             ; preds = %4609
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1056) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1065) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1065) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1057) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1063) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1064) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1064) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1058) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1061) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1062) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1062) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1059) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1060) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1060) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1066, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4611 unwind label %5546

4611:                                             ; preds = %4610
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1067, i32 noundef 0)
          to label %4612 unwind label %5548

4612:                                             ; preds = %4611
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1068, i32 noundef 1000)
          to label %4613 unwind label %5550

4613:                                             ; preds = %4612
  %4614 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1040, ptr noundef nonnull %1066, ptr noundef nonnull %1067, ptr noundef nonnull %1068)
          to label %4615 unwind label %5552

4615:                                             ; preds = %4613
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1069, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4616 unwind label %5552

4616:                                             ; preds = %4615
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1070, i32 noundef 0)
          to label %4617 unwind label %5554

4617:                                             ; preds = %4616
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1071, i32 noundef 1000)
          to label %4618 unwind label %5556

4618:                                             ; preds = %4617
  %4619 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4614, ptr noundef nonnull %1069, ptr noundef nonnull %1070, ptr noundef nonnull %1071)
          to label %4620 unwind label %5558

4620:                                             ; preds = %4618
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1071) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1070) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1069) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1068) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1067) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1066) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1072, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %4621 unwind label %5546

4621:                                             ; preds = %4620
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1073, i32 noundef 0)
          to label %4622 unwind label %5565

4622:                                             ; preds = %4621
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1074, i32 noundef 1000)
          to label %4623 unwind label %5567

4623:                                             ; preds = %4622
  %4624 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1043, ptr noundef nonnull %1072, ptr noundef nonnull %1073, ptr noundef nonnull %1074)
          to label %4625 unwind label %5569

4625:                                             ; preds = %4623
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1075, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4626 unwind label %5569

4626:                                             ; preds = %4625
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1076, i32 noundef 0)
          to label %4627 unwind label %5571

4627:                                             ; preds = %4626
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1077, i32 noundef 1000)
          to label %4628 unwind label %5573

4628:                                             ; preds = %4627
  %4629 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %4624, ptr noundef nonnull %1075, ptr noundef nonnull %1076, ptr noundef nonnull %1077)
          to label %4630 unwind label %5575

4630:                                             ; preds = %4628
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1077) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1076) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1075) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1074) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1073) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1072) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1079) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %1080) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %1081) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1081, ptr noundef nonnull align 8 dereferenceable(32) %1040) #10
  %4631 = getelementptr inbounds i8, ptr %1081, i64 32
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %4631, ptr noundef nonnull align 8 dereferenceable(32) %1043) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1082) #10
  call void @_ZNSaIN6Halide4FuncEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1082) #10
  invoke void @_ZNSt6vectorIN6Halide4FuncESaIS1_EEC2ESt16initializer_listIS1_ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %1080, ptr nonnull %1081, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %1082)
          to label %4632 unwind label %5582

4632:                                             ; preds = %4630
  invoke void @_ZN6Halide8PipelineC1ERKSt6vectorINS_4FuncESaIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %1079, ptr noundef nonnull align 8 dereferenceable(24) %1080)
          to label %4633 unwind label %5584

4633:                                             ; preds = %4632
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %1078, ptr noundef nonnull align 8 dereferenceable(8) %1079, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %4634 unwind label %5586

4634:                                             ; preds = %4633
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %1078) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1079) #10
  call void @_ZNSt6vectorIN6Halide4FuncESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1080) #10
  call void @_ZNSt15__new_allocatorIN6Halide4FuncEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1082) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1082) #10
  %4635 = getelementptr inbounds i8, ptr %1081, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4635) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1081) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %1081) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1080) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1079) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1043) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1043) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1040) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1040) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1010) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1010) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1007) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1007) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1004) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1004) #10
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1003) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1003) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1083) #10
  %4636 = invoke { i64, ptr } @_ZN6Halide5FloatEii(i32 noundef 32, i32 noundef 1)
          to label %4637 unwind label %5599

4637:                                             ; preds = %4634
  %4638 = extractvalue { i64, ptr } %4636, 0
  %4639 = extractvalue { i64, ptr } %4636, 1
  invoke void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56) %1083, i64 %4638, ptr %4639, i32 noundef 2)
          to label %4640 unwind label %5599

4640:                                             ; preds = %4637
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %1084) #10
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %1084)
          to label %4641 unwind label %5601

4641:                                             ; preds = %4640
  %.ptr2313.1 = getelementptr inbounds i8, ptr %1084, i64 32
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2313.1)
          to label %4642 unwind label %.preheader2742.preheader

4642:                                             ; preds = %4641
  %.ptr2313.2 = getelementptr inbounds i8, ptr %1084, i64 64
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2313.2)
          to label %4643 unwind label %.preheader2742.preheader

4643:                                             ; preds = %4642
  %.ptr2313.3 = getelementptr inbounds i8, ptr %1084, i64 96
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2313.3)
          to label %4644 unwind label %.preheader2742.preheader

4644:                                             ; preds = %4643
  %.ptr2313.4 = getelementptr inbounds i8, ptr %1084, i64 128
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2313.4)
          to label %4645 unwind label %.preheader2742.preheader

4645:                                             ; preds = %4644
  %.ptr2313.5 = getelementptr inbounds i8, ptr %1084, i64 160
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2313.5)
          to label %4646 unwind label %.preheader2742.preheader

4646:                                             ; preds = %4645
  %.ptr2313.6 = getelementptr inbounds i8, ptr %1084, i64 192
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2313.6)
          to label %4647 unwind label %.preheader2742.preheader

4647:                                             ; preds = %4646
  %.ptr2313.7 = getelementptr inbounds i8, ptr %1084, i64 224
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2313.7)
          to label %4648 unwind label %.preheader2742.preheader

4648:                                             ; preds = %4647
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1085) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1086) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1087) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1087) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1086, ptr noundef nonnull @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %1087)
          to label %4649 unwind label %5605

4649:                                             ; preds = %4648
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1085, ptr noundef nonnull align 8 dereferenceable(32) %1086)
          to label %4650 unwind label %5607

4650:                                             ; preds = %4649
  %4651 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4FuncaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %1084, ptr noundef nonnull align 8 dereferenceable(32) %1085) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1085) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1086) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1087) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1087) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1086) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1085) #10
  invoke void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_EEENS_4ExprEDpOT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1089, ptr noundef nonnull align 8 dereferenceable(56) %1083, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4652 unwind label %5610

4652:                                             ; preds = %4650
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1090) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1090, ptr noundef nonnull align 8 dereferenceable(32) %1084, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %4653 unwind label %5612

4653:                                             ; preds = %4652
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1088, ptr noundef nonnull align 8 dereferenceable(56) %1090, ptr noundef nonnull %1089)
          to label %4654 unwind label %5614

4654:                                             ; preds = %4653
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1088) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1090) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1090) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1089) #10
  br label %5617

4655:                                             ; preds = %5670
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1101) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1102) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1103) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1103) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1102, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %1103)
          to label %5678 unwind label %5824

4656:                                             ; preds = %4221
  %4657 = landingpad { ptr, i32 }
          cleanup
  br label %4680

4658:                                             ; preds = %4236
  %4659 = landingpad { ptr, i32 }
          cleanup
  br label %4674

4660:                                             ; preds = %4237
  %4661 = landingpad { ptr, i32 }
          cleanup
  br label %4673

4662:                                             ; preds = %4240, %4238
  %4663 = landingpad { ptr, i32 }
          cleanup
  br label %4672

4664:                                             ; preds = %4241
  %4665 = landingpad { ptr, i32 }
          cleanup
  br label %4671

4666:                                             ; preds = %4242
  %4667 = landingpad { ptr, i32 }
          cleanup
  br label %4670

4668:                                             ; preds = %4243
  %4669 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %735) #10
  br label %4670

4670:                                             ; preds = %4668, %4666
  %.pn1967 = phi { ptr, i32 } [ %4669, %4668 ], [ %4667, %4666 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %734) #10
  br label %4671

4671:                                             ; preds = %4670, %4664
  %.pn1967.pn = phi { ptr, i32 } [ %.pn1967, %4670 ], [ %4665, %4664 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %733) #10
  br label %4672

4672:                                             ; preds = %4671, %4662
  %.pn1967.pn.pn = phi { ptr, i32 } [ %.pn1967.pn, %4671 ], [ %4663, %4662 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %732) #10
  br label %4673

4673:                                             ; preds = %4672, %4660
  %.pn1967.pn.pn.pn = phi { ptr, i32 } [ %.pn1967.pn.pn, %4672 ], [ %4661, %4660 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %731) #10
  br label %4674

4674:                                             ; preds = %4673, %4658
  %.pn1967.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1967.pn.pn.pn, %4673 ], [ %4659, %4658 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %730) #10
  br label %4680

4675:                                             ; preds = %4245
  %4676 = landingpad { ptr, i32 }
          cleanup
  br label %4679

4677:                                             ; preds = %4246
  %4678 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %737) #10
  br label %4679

4679:                                             ; preds = %4677, %4675
  %.pn1973 = phi { ptr, i32 } [ %4678, %4677 ], [ %4676, %4675 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %738) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %737) #10
  br label %4680

4680:                                             ; preds = %4679, %4674, %4656, %4235, %4211, %4203
  %.pn2622.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2622.pn.pn.pn, %4235 ], [ %.pn1973, %4679 ], [ %.pn1967.pn.pn.pn.pn, %4674 ], [ %4657, %4656 ], [ %.pn1964.pn, %4211 ], [ %.pn1958.pn.pn.pn.pn, %4203 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %713) #10
  br label %4681

4681:                                             ; preds = %4680, %4186
  %.pn2622.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2622.pn.pn.pn.pn, %4680 ], [ %.pn1956, %4186 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %713) #10
  br label %4682

4682:                                             ; preds = %4681, %4170, %4146, %4138, %4121
  %.pn2629.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2629.pn.pn.pn, %4170 ], [ %.pn2622.pn.pn.pn.pn.pn, %4681 ], [ %.pn1953.pn, %4146 ], [ %.pn1947.pn.pn.pn.pn, %4138 ], [ %.pn1944.pn, %4121 ]
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %693) #10
  br label %4683

4683:                                             ; preds = %4682, %4113, %4107
  %.pn2629.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2629.pn.pn.pn.pn, %4682 ], [ %.pn1942, %4113 ], [ %4108, %4107 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %693) #10
  br label %4684

4684:                                             ; preds = %4683, %4091, %4067, %4055
  %.pn2636.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2636.pn.pn.pn, %4091 ], [ %.pn2629.pn.pn.pn.pn.pn, %4683 ], [ %.pn1938.pn.pn, %4067 ], [ %4056, %4055 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %682) #10
  br label %4685

4685:                                             ; preds = %4684, %4053
  %.pn2636.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2636.pn.pn.pn.pn, %4684 ], [ %4054, %4053 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %682) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %681) #10
  br label %4686

4686:                                             ; preds = %4685, %4051
  %.pn2636.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2636.pn.pn.pn.pn.pn, %4685 ], [ %4052, %4051 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %681) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %678) #10
  br label %.loopexit2729.loopexit

.loopexit2729.loopexit:                           ; preds = %4686, %4050
  %.pn2636.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2636.pn.pn.pn.pn.pn.pn, %4686 ], [ %.pn1936, %4050 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %678) #10
  %4687 = getelementptr inbounds i8, ptr %677, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4687) #10
  %4688 = getelementptr inbounds i8, ptr %677, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4688) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %677) #10
  br label %.loopexit2729

.loopexit2729:                                    ; preds = %.preheader2744, %4042, %.loopexit2729.loopexit
  %.pn2636.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %lpad.thr_comm.split-lp2909, %4042 ], [ %.pn2636.pn.pn.pn.pn.pn.pn.pn, %.loopexit2729.loopexit ], [ %lpad.thr_comm2908, %.preheader2744 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %677) #10
  %4689 = getelementptr inbounds i8, ptr %676, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4689) #10
  %4690 = getelementptr inbounds i8, ptr %676, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4690) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %676) #10
  br label %.loopexit2728

.loopexit2728:                                    ; preds = %.preheader2746, %4038, %.loopexit2729
  %.pn2636.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %lpad.thr_comm.split-lp2900, %4038 ], [ %.pn2636.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2729 ], [ %lpad.thr_comm2899, %.preheader2746 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %676) #10
  %4691 = getelementptr inbounds i8, ptr %675, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4691) #10
  %4692 = getelementptr inbounds i8, ptr %675, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4692) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %675) #10
  br label %.loopexit2727

.loopexit2727:                                    ; preds = %.preheader2748, %4034, %.loopexit2728
  %.pn2636.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %lpad.thr_comm.split-lp2891, %4034 ], [ %.pn2636.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2728 ], [ %lpad.thr_comm2890, %.preheader2748 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %675) #10
  call void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %674) #10
  br label %4693

4693:                                             ; preds = %.loopexit2727, %4032
  %.pn2636.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2636.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2727 ], [ %4033, %4032 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %674) #10
  br label %6795

4694:                                             ; preds = %4247
  %4695 = landingpad { ptr, i32 }
          cleanup
  br label %4698

4696:                                             ; preds = %4254
  %4697 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %740) #10
  br label %4698

4698:                                             ; preds = %4696, %4694
  %.pn1975 = phi { ptr, i32 } [ %4697, %4696 ], [ %4695, %4694 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %741) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %741) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %740) #10
  br label %4826

4699:                                             ; preds = %4255
  %4700 = landingpad { ptr, i32 }
          cleanup
  br label %4825

4701:                                             ; preds = %4256
  %4702 = landingpad { ptr, i32 }
          cleanup
  br label %4824

4703:                                             ; preds = %4257
  %4704 = landingpad { ptr, i32 }
          cleanup
  br label %4755

4705:                                             ; preds = %4258
  %4706 = landingpad { ptr, i32 }
          cleanup
  br label %4754

4707:                                             ; preds = %4259
  %4708 = landingpad { ptr, i32 }
          cleanup
  br label %4753

4709:                                             ; preds = %4260
  %4710 = landingpad { ptr, i32 }
          cleanup
  br label %4752

4711:                                             ; preds = %4261
  %4712 = landingpad { ptr, i32 }
          cleanup
  br label %4751

4713:                                             ; preds = %4262
  %4714 = landingpad { ptr, i32 }
          cleanup
  br label %4750

4715:                                             ; preds = %4263
  %4716 = landingpad { ptr, i32 }
          cleanup
  br label %4749

4717:                                             ; preds = %4264
  %4718 = landingpad { ptr, i32 }
          cleanup
  br label %4748

4719:                                             ; preds = %4265
  %4720 = landingpad { ptr, i32 }
          cleanup
  br label %4747

4721:                                             ; preds = %4266
  %4722 = landingpad { ptr, i32 }
          cleanup
  br label %4746

4723:                                             ; preds = %4267
  %4724 = landingpad { ptr, i32 }
          cleanup
  br label %4745

4725:                                             ; preds = %4268
  %4726 = landingpad { ptr, i32 }
          cleanup
  br label %4744

4727:                                             ; preds = %4269
  %4728 = landingpad { ptr, i32 }
          cleanup
  br label %4743

4729:                                             ; preds = %4270
  %4730 = landingpad { ptr, i32 }
          cleanup
  br label %4742

4731:                                             ; preds = %4271
  %4732 = landingpad { ptr, i32 }
          cleanup
  br label %4741

4733:                                             ; preds = %4272
  %4734 = landingpad { ptr, i32 }
          cleanup
  br label %4740

4735:                                             ; preds = %4273
  %4736 = landingpad { ptr, i32 }
          cleanup
  br label %4739

4737:                                             ; preds = %4274
  %4738 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %761) #10
  br label %4739

4739:                                             ; preds = %4737, %4735
  %.pn1977 = phi { ptr, i32 } [ %4738, %4737 ], [ %4736, %4735 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %761) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %744) #10
  br label %4740

4740:                                             ; preds = %4739, %4733
  %.pn1977.pn = phi { ptr, i32 } [ %.pn1977, %4739 ], [ %4734, %4733 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %759) #10
  br label %4741

4741:                                             ; preds = %4740, %4731
  %.pn1977.pn.pn = phi { ptr, i32 } [ %.pn1977.pn, %4740 ], [ %4732, %4731 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %760) #10
  br label %4742

4742:                                             ; preds = %4741, %4729
  %.pn1977.pn.pn.pn = phi { ptr, i32 } [ %.pn1977.pn.pn, %4741 ], [ %4730, %4729 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %745) #10
  br label %4743

4743:                                             ; preds = %4742, %4727
  %.pn1977.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1977.pn.pn.pn, %4742 ], [ %4728, %4727 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %757) #10
  br label %4744

4744:                                             ; preds = %4743, %4725
  %.pn1977.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1977.pn.pn.pn.pn, %4743 ], [ %4726, %4725 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %758) #10
  br label %4745

4745:                                             ; preds = %4744, %4723
  %.pn1977.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1977.pn.pn.pn.pn.pn, %4744 ], [ %4724, %4723 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %746) #10
  br label %4746

4746:                                             ; preds = %4745, %4721
  %.pn1977.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1977.pn.pn.pn.pn.pn.pn, %4745 ], [ %4722, %4721 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %755) #10
  br label %4747

4747:                                             ; preds = %4746, %4719
  %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1977.pn.pn.pn.pn.pn.pn.pn, %4746 ], [ %4720, %4719 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %756) #10
  br label %4748

4748:                                             ; preds = %4747, %4717
  %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn, %4747 ], [ %4718, %4717 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %747) #10
  br label %4749

4749:                                             ; preds = %4748, %4715
  %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4748 ], [ %4716, %4715 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %753) #10
  br label %4750

4750:                                             ; preds = %4749, %4713
  %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4749 ], [ %4714, %4713 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %754) #10
  br label %4751

4751:                                             ; preds = %4750, %4711
  %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4750 ], [ %4712, %4711 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %748) #10
  br label %4752

4752:                                             ; preds = %4751, %4709
  %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4751 ], [ %4710, %4709 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %751) #10
  br label %4753

4753:                                             ; preds = %4752, %4707
  %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4752 ], [ %4708, %4707 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %752) #10
  br label %4754

4754:                                             ; preds = %4753, %4705
  %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4753 ], [ %4706, %4705 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %749) #10
  br label %4755

4755:                                             ; preds = %4754, %4703
  %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4754 ], [ %4704, %4703 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %750) #10
  br label %4824

4756:                                             ; preds = %4275
  %4757 = landingpad { ptr, i32 }
          cleanup
  br label %4760

4758:                                             ; preds = %4276
  %4759 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %763) #10
  br label %4760

4760:                                             ; preds = %4758, %4756
  %.pn1995 = phi { ptr, i32 } [ %4759, %4758 ], [ %4757, %4756 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %764) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %764) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %763) #10
  br label %4823

4761:                                             ; preds = %4277
  %4762 = landingpad { ptr, i32 }
          cleanup
  br label %4822

4763:                                             ; preds = %4278
  %4764 = landingpad { ptr, i32 }
          cleanup
  br label %4776

4765:                                             ; preds = %4279
  %4766 = landingpad { ptr, i32 }
          cleanup
  br label %4775

4767:                                             ; preds = %4280
  %4768 = landingpad { ptr, i32 }
          cleanup
  br label %4774

4769:                                             ; preds = %4281
  %4770 = landingpad { ptr, i32 }
          cleanup
  br label %4773

4771:                                             ; preds = %4282
  %4772 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %770) #10
  br label %4773

4773:                                             ; preds = %4771, %4769
  %.pn1997 = phi { ptr, i32 } [ %4772, %4771 ], [ %4770, %4769 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %770) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %766) #10
  br label %4774

4774:                                             ; preds = %4773, %4767
  %.pn1997.pn = phi { ptr, i32 } [ %.pn1997, %4773 ], [ %4768, %4767 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %768) #10
  br label %4775

4775:                                             ; preds = %4774, %4765
  %.pn1997.pn.pn = phi { ptr, i32 } [ %.pn1997.pn, %4774 ], [ %4766, %4765 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %769) #10
  br label %4776

4776:                                             ; preds = %4775, %4763
  %.pn1997.pn.pn.pn = phi { ptr, i32 } [ %.pn1997.pn.pn, %4775 ], [ %4764, %4763 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %767) #10
  br label %4822

4777:                                             ; preds = %4283
  %4778 = landingpad { ptr, i32 }
          cleanup
  br label %4781

4779:                                             ; preds = %4284
  %4780 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %772) #10
  br label %4781

4781:                                             ; preds = %4779, %4777
  %.pn2002 = phi { ptr, i32 } [ %4780, %4779 ], [ %4778, %4777 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %773) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %773) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %772) #10
  br label %4821

4782:                                             ; preds = %4285
  %4783 = landingpad { ptr, i32 }
          cleanup
  br label %4804

4784:                                             ; preds = %4286
  %4785 = landingpad { ptr, i32 }
          cleanup
  br label %4803

4786:                                             ; preds = %4287
  %4787 = landingpad { ptr, i32 }
          cleanup
  br label %4802

4788:                                             ; preds = %4288
  %4789 = landingpad { ptr, i32 }
          cleanup
  br label %4801

4790:                                             ; preds = %4289
  %4791 = landingpad { ptr, i32 }
          cleanup
  br label %4800

4792:                                             ; preds = %4290
  %4793 = landingpad { ptr, i32 }
          cleanup
  br label %4799

4794:                                             ; preds = %4291
  %4795 = landingpad { ptr, i32 }
          cleanup
  br label %4798

4796:                                             ; preds = %4292
  %4797 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %781) #10
  br label %4798

4798:                                             ; preds = %4796, %4794
  %.pn2004 = phi { ptr, i32 } [ %4797, %4796 ], [ %4795, %4794 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %781) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %775) #10
  br label %4799

4799:                                             ; preds = %4798, %4792
  %.pn2004.pn = phi { ptr, i32 } [ %.pn2004, %4798 ], [ %4793, %4792 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %776) #10
  br label %4800

4800:                                             ; preds = %4799, %4790
  %.pn2004.pn.pn = phi { ptr, i32 } [ %.pn2004.pn, %4799 ], [ %4791, %4790 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %780) #10
  br label %4801

4801:                                             ; preds = %4800, %4788
  %.pn2004.pn.pn.pn = phi { ptr, i32 } [ %.pn2004.pn.pn, %4800 ], [ %4789, %4788 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %779) #10
  br label %4802

4802:                                             ; preds = %4801, %4786
  %.pn2004.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2004.pn.pn.pn, %4801 ], [ %4787, %4786 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %777) #10
  br label %4803

4803:                                             ; preds = %4802, %4784
  %.pn2004.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2004.pn.pn.pn.pn, %4802 ], [ %4785, %4784 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %778) #10
  br label %4804

4804:                                             ; preds = %4803, %4782
  %.pn2004.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2004.pn.pn.pn.pn.pn, %4803 ], [ %4783, %4782 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %778) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %775) #10
  br label %4820

4805:                                             ; preds = %4293
  %4806 = landingpad { ptr, i32 }
          cleanup
  br label %4820

4807:                                             ; preds = %4294
  %4808 = landingpad { ptr, i32 }
          cleanup
  br label %4814

4809:                                             ; preds = %4295
  %4810 = landingpad { ptr, i32 }
          cleanup
  br label %4813

4811:                                             ; preds = %4296
  %4812 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %784) #10
  br label %4813

4813:                                             ; preds = %4811, %4809
  %.pn2012 = phi { ptr, i32 } [ %4812, %4811 ], [ %4810, %4809 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %783) #10
  br label %4814

4814:                                             ; preds = %4813, %4807
  %.pn2012.pn = phi { ptr, i32 } [ %.pn2012, %4813 ], [ %4808, %4807 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %782) #10
  br label %4820

4815:                                             ; preds = %4298
  %4816 = landingpad { ptr, i32 }
          cleanup
  br label %4819

4817:                                             ; preds = %4299
  %4818 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %786) #10
  br label %4819

4819:                                             ; preds = %4817, %4815
  %.pn2015 = phi { ptr, i32 } [ %4818, %4817 ], [ %4816, %4815 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %787) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %786) #10
  br label %4820

4820:                                             ; preds = %4819, %4814, %4805, %4804
  %.pn2015.pn = phi { ptr, i32 } [ %.pn2015, %4819 ], [ %.pn2012.pn, %4814 ], [ %4806, %4805 ], [ %.pn2004.pn.pn.pn.pn.pn.pn, %4804 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %771) #10
  br label %4821

4821:                                             ; preds = %4820, %4781
  %.pn2015.pn.pn = phi { ptr, i32 } [ %.pn2015.pn, %4820 ], [ %.pn2002, %4781 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %771) #10
  br label %4822

4822:                                             ; preds = %4821, %4776, %4761
  %.pn2015.pn.pn.pn = phi { ptr, i32 } [ %.pn2015.pn.pn, %4821 ], [ %.pn1997.pn.pn.pn, %4776 ], [ %4762, %4761 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %762) #10
  br label %4823

4823:                                             ; preds = %4822, %4760
  %.pn2015.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2015.pn.pn.pn, %4822 ], [ %.pn1995, %4760 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %762) #10
  br label %4824

4824:                                             ; preds = %4823, %4755, %4701
  %.pn2015.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2015.pn.pn.pn.pn, %4823 ], [ %.pn1977.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4755 ], [ %4702, %4701 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %742) #10
  br label %4825

4825:                                             ; preds = %4824, %4699
  %.pn2015.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2015.pn.pn.pn.pn.pn, %4824 ], [ %4700, %4699 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %742) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %739) #10
  br label %4826

4826:                                             ; preds = %4825, %4698
  %.pn2015.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2015.pn.pn.pn.pn.pn.pn, %4825 ], [ %.pn1975, %4698 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %739) #10
  br label %6795

4827:                                             ; preds = %4300
  %4828 = landingpad { ptr, i32 }
          cleanup
  br label %4831

4829:                                             ; preds = %4301
  %4830 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %789) #10
  br label %4831

4831:                                             ; preds = %4829, %4827
  %.pn2024 = phi { ptr, i32 } [ %4830, %4829 ], [ %4828, %4827 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %790) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %790) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %789) #10
  br label %4912

4832:                                             ; preds = %4302
  %4833 = landingpad { ptr, i32 }
          cleanup
  br label %4836

4834:                                             ; preds = %4303
  %4835 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %792) #10
  br label %4836

4836:                                             ; preds = %4834, %4832
  %.pn2026 = phi { ptr, i32 } [ %4835, %4834 ], [ %4833, %4832 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %793) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %793) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %792) #10
  br label %4911

4837:                                             ; preds = %4307, %4304
  %4838 = landingpad { ptr, i32 }
          cleanup
  br label %4910

4839:                                             ; preds = %4305
  %4840 = landingpad { ptr, i32 }
          cleanup
  br label %4843

4841:                                             ; preds = %4306
  %4842 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %796) #10
  br label %4843

4843:                                             ; preds = %4841, %4839
  %.pn2028 = phi { ptr, i32 } [ %4842, %4841 ], [ %4840, %4839 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %796) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %795) #10
  br label %4910

4844:                                             ; preds = %4308
  %4845 = landingpad { ptr, i32 }
          cleanup
  br label %4848

4846:                                             ; preds = %4309
  %4847 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %799) #10
  br label %4848

4848:                                             ; preds = %4846, %4844
  %.pn2030 = phi { ptr, i32 } [ %4847, %4846 ], [ %4845, %4844 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %799) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %798) #10
  br label %4910

4849:                                             ; preds = %4310
  %4850 = landingpad { ptr, i32 }
          cleanup
  br label %4909

4851:                                             ; preds = %4311
  %4852 = landingpad { ptr, i32 }
          cleanup
  br label %4855

4853:                                             ; preds = %4312
  %4854 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %802) #10
  br label %4855

4855:                                             ; preds = %4853, %4851
  %.pn2032 = phi { ptr, i32 } [ %4854, %4853 ], [ %4852, %4851 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %801) #10
  br label %4909

4856:                                             ; preds = %4324, %4313
  %4857 = landingpad { ptr, i32 }
          cleanup
  br label %4908

4858:                                             ; preds = %4314
  %4859 = landingpad { ptr, i32 }
          cleanup
  br label %4862

4860:                                             ; preds = %4315
  %4861 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %805) #10
  br label %4862

4862:                                             ; preds = %4860, %4858
  %.pn2034 = phi { ptr, i32 } [ %4861, %4860 ], [ %4859, %4858 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %805) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %804) #10
  br label %4908

4863:                                             ; preds = %4316
  %4864 = landingpad { ptr, i32 }
          cleanup
  br label %4885

4865:                                             ; preds = %4317
  %4866 = landingpad { ptr, i32 }
          cleanup
  br label %4884

4867:                                             ; preds = %4318
  %4868 = landingpad { ptr, i32 }
          cleanup
  br label %4883

4869:                                             ; preds = %4319
  %4870 = landingpad { ptr, i32 }
          cleanup
  br label %4882

4871:                                             ; preds = %4320
  %4872 = landingpad { ptr, i32 }
          cleanup
  br label %4881

4873:                                             ; preds = %4321
  %4874 = landingpad { ptr, i32 }
          cleanup
  br label %4880

4875:                                             ; preds = %4322
  %4876 = landingpad { ptr, i32 }
          cleanup
  br label %4879

4877:                                             ; preds = %4323
  %4878 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %813) #10
  br label %4879

4879:                                             ; preds = %4877, %4875
  %.pn2036 = phi { ptr, i32 } [ %4878, %4877 ], [ %4876, %4875 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %813) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %807) #10
  br label %4880

4880:                                             ; preds = %4879, %4873
  %.pn2036.pn = phi { ptr, i32 } [ %.pn2036, %4879 ], [ %4874, %4873 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %809) #10
  br label %4881

4881:                                             ; preds = %4880, %4871
  %.pn2036.pn.pn = phi { ptr, i32 } [ %.pn2036.pn, %4880 ], [ %4872, %4871 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %810) #10
  br label %4882

4882:                                             ; preds = %4881, %4869
  %.pn2036.pn.pn.pn = phi { ptr, i32 } [ %.pn2036.pn.pn, %4881 ], [ %4870, %4869 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %812) #10
  br label %4883

4883:                                             ; preds = %4882, %4867
  %.pn2036.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2036.pn.pn.pn, %4882 ], [ %4868, %4867 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %811) #10
  br label %4884

4884:                                             ; preds = %4883, %4865
  %.pn2036.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2036.pn.pn.pn.pn, %4883 ], [ %4866, %4865 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %809) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %808) #10
  br label %4885

4885:                                             ; preds = %4884, %4863
  %.pn2036.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2036.pn.pn.pn.pn.pn, %4884 ], [ %4864, %4863 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %807) #10
  br label %4908

4886:                                             ; preds = %4325
  %4887 = landingpad { ptr, i32 }
          cleanup
  br label %4902

4888:                                             ; preds = %4326
  %4889 = landingpad { ptr, i32 }
          cleanup
  br label %4901

4890:                                             ; preds = %4329, %4327
  %4891 = landingpad { ptr, i32 }
          cleanup
  br label %4900

4892:                                             ; preds = %4330
  %4893 = landingpad { ptr, i32 }
          cleanup
  br label %4899

4894:                                             ; preds = %4331
  %4895 = landingpad { ptr, i32 }
          cleanup
  br label %4898

4896:                                             ; preds = %4332
  %4897 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %819) #10
  br label %4898

4898:                                             ; preds = %4896, %4894
  %.pn2044 = phi { ptr, i32 } [ %4897, %4896 ], [ %4895, %4894 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %818) #10
  br label %4899

4899:                                             ; preds = %4898, %4892
  %.pn2044.pn = phi { ptr, i32 } [ %.pn2044, %4898 ], [ %4893, %4892 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %817) #10
  br label %4900

4900:                                             ; preds = %4899, %4890
  %.pn2044.pn.pn = phi { ptr, i32 } [ %.pn2044.pn, %4899 ], [ %4891, %4890 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %816) #10
  br label %4901

4901:                                             ; preds = %4900, %4888
  %.pn2044.pn.pn.pn = phi { ptr, i32 } [ %.pn2044.pn.pn, %4900 ], [ %4889, %4888 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %815) #10
  br label %4902

4902:                                             ; preds = %4901, %4886
  %.pn2044.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2044.pn.pn.pn, %4901 ], [ %4887, %4886 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %814) #10
  br label %4908

4903:                                             ; preds = %4334
  %4904 = landingpad { ptr, i32 }
          cleanup
  br label %4907

4905:                                             ; preds = %4335
  %4906 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %821) #10
  br label %4907

4907:                                             ; preds = %4905, %4903
  %.pn2050 = phi { ptr, i32 } [ %4906, %4905 ], [ %4904, %4903 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %822) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %821) #10
  br label %4908

4908:                                             ; preds = %4907, %4902, %4885, %4862, %4856
  %.pn2050.pn = phi { ptr, i32 } [ %.pn2050, %4907 ], [ %.pn2044.pn.pn.pn.pn, %4902 ], [ %4857, %4856 ], [ %.pn2036.pn.pn.pn.pn.pn.pn, %4885 ], [ %.pn2034, %4862 ]
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %800) #10
  br label %4909

4909:                                             ; preds = %4908, %4855, %4849
  %.pn2050.pn.pn = phi { ptr, i32 } [ %.pn2050.pn, %4908 ], [ %.pn2032, %4855 ], [ %4850, %4849 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %800) #10
  br label %4910

4910:                                             ; preds = %4909, %4848, %4843, %4837
  %.pn2050.pn.pn.pn = phi { ptr, i32 } [ %.pn2050.pn.pn, %4909 ], [ %.pn2030, %4848 ], [ %4838, %4837 ], [ %.pn2028, %4843 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %791) #10
  br label %4911

4911:                                             ; preds = %4910, %4836
  %.pn2050.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2050.pn.pn.pn, %4910 ], [ %.pn2026, %4836 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %791) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %788) #10
  br label %4912

4912:                                             ; preds = %4911, %4831
  %.pn2050.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2050.pn.pn.pn.pn, %4911 ], [ %.pn2024, %4831 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %788) #10
  br label %6795

4913:                                             ; preds = %4336
  %4914 = landingpad { ptr, i32 }
          cleanup
  br label %4917

4915:                                             ; preds = %4337
  %4916 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %824) #10
  br label %4917

4917:                                             ; preds = %4915, %4913
  %.pn2057 = phi { ptr, i32 } [ %4916, %4915 ], [ %4914, %4913 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %825) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %825) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %824) #10
  br label %5029

4918:                                             ; preds = %4338
  %4919 = landingpad { ptr, i32 }
          cleanup
  br label %4922

4920:                                             ; preds = %4339
  %4921 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %827) #10
  br label %4922

4922:                                             ; preds = %4920, %4918
  %.pn2059 = phi { ptr, i32 } [ %4921, %4920 ], [ %4919, %4918 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %828) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %828) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %827) #10
  br label %5028

4923:                                             ; preds = %4340
  %4924 = landingpad { ptr, i32 }
          cleanup
  br label %4927

4925:                                             ; preds = %4341
  %4926 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %830) #10
  br label %4927

4927:                                             ; preds = %4925, %4923
  %.pn2061 = phi { ptr, i32 } [ %4926, %4925 ], [ %4924, %4923 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %831) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %831) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %830) #10
  br label %5027

4928:                                             ; preds = %4342
  %4929 = landingpad { ptr, i32 }
          cleanup
  br label %5026

4930:                                             ; preds = %4343
  %4931 = landingpad { ptr, i32 }
          cleanup
  br label %4940

4932:                                             ; preds = %4344
  %4933 = landingpad { ptr, i32 }
          cleanup
  br label %4939

4934:                                             ; preds = %4345
  %4935 = landingpad { ptr, i32 }
          cleanup
  br label %4938

4936:                                             ; preds = %4346
  %4937 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %836) #10
  br label %4938

4938:                                             ; preds = %4936, %4934
  %.pn2063 = phi { ptr, i32 } [ %4937, %4936 ], [ %4935, %4934 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %836) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %833) #10
  br label %4939

4939:                                             ; preds = %4938, %4932
  %.pn2063.pn = phi { ptr, i32 } [ %.pn2063, %4938 ], [ %4933, %4932 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %835) #10
  br label %4940

4940:                                             ; preds = %4939, %4930
  %.pn2063.pn.pn = phi { ptr, i32 } [ %.pn2063.pn, %4939 ], [ %4931, %4930 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %834) #10
  br label %5026

4941:                                             ; preds = %4347
  %4942 = landingpad { ptr, i32 }
          cleanup
  br label %5025

4943:                                             ; preds = %4348
  %4944 = landingpad { ptr, i32 }
          cleanup
  br label %4947

4945:                                             ; preds = %4349
  %4946 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %841) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %840) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %839) #10
  br label %4947

4947:                                             ; preds = %4945, %4943
  %.pn2067 = phi { ptr, i32 } [ %4946, %4945 ], [ %4944, %4943 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %838) #10
  br label %5025

4948:                                             ; preds = %4350
  %4949 = landingpad { ptr, i32 }
          cleanup
  br label %4973

4950:                                             ; preds = %4351
  %4951 = landingpad { ptr, i32 }
          cleanup
  br label %4972

4952:                                             ; preds = %4353
  %4953 = landingpad { ptr, i32 }
          cleanup
  br label %4971

4954:                                             ; preds = %4354
  %4955 = landingpad { ptr, i32 }
          cleanup
  br label %4970

4956:                                             ; preds = %4355
  %4957 = landingpad { ptr, i32 }
          cleanup
  br label %4969

4958:                                             ; preds = %4357
  %4959 = landingpad { ptr, i32 }
          cleanup
  br label %4968

4960:                                             ; preds = %4358
  %4961 = landingpad { ptr, i32 }
          cleanup
  br label %4967

4962:                                             ; preds = %4359
  %4963 = landingpad { ptr, i32 }
          cleanup
  br label %4966

4964:                                             ; preds = %4360
  %4965 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %850) #10
  br label %4966

4966:                                             ; preds = %4964, %4962
  %.pn2069 = phi { ptr, i32 } [ %4965, %4964 ], [ %4963, %4962 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %850) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %843) #10
  br label %4967

4967:                                             ; preds = %4966, %4960
  %.pn2069.pn = phi { ptr, i32 } [ %.pn2069, %4966 ], [ %4961, %4960 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %847) #10
  br label %4968

4968:                                             ; preds = %4967, %4958
  %.pn2069.pn.pn = phi { ptr, i32 } [ %.pn2069.pn, %4967 ], [ %4959, %4958 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %849) #10
  br label %4969

4969:                                             ; preds = %4968, %4956
  %.pn2069.pn.pn.pn = phi { ptr, i32 } [ %.pn2069.pn.pn, %4968 ], [ %4957, %4956 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %848) #10
  br label %4970

4970:                                             ; preds = %4969, %4954
  %.pn2069.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2069.pn.pn.pn, %4969 ], [ %4955, %4954 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %847) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %844) #10
  br label %4971

4971:                                             ; preds = %4970, %4952
  %.pn2069.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2069.pn.pn.pn.pn, %4970 ], [ %4953, %4952 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %846) #10
  br label %4972

4972:                                             ; preds = %4971, %4950
  %.pn2069.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2069.pn.pn.pn.pn.pn, %4971 ], [ %4951, %4950 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %845) #10
  br label %4973

4973:                                             ; preds = %4972, %4948
  %.pn2069.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2069.pn.pn.pn.pn.pn.pn, %4972 ], [ %4949, %4948 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %843) #10
  br label %5024

4974:                                             ; preds = %4361
  %4975 = landingpad { ptr, i32 }
          cleanup
  br label %4999

4976:                                             ; preds = %4362
  %4977 = landingpad { ptr, i32 }
          cleanup
  br label %4998

4978:                                             ; preds = %4363
  %4979 = landingpad { ptr, i32 }
          cleanup
  br label %4997

4980:                                             ; preds = %4364
  %4981 = landingpad { ptr, i32 }
          cleanup
  br label %4996

4982:                                             ; preds = %4365
  %4983 = landingpad { ptr, i32 }
          cleanup
  br label %4995

4984:                                             ; preds = %4366
  %4985 = landingpad { ptr, i32 }
          cleanup
  br label %4994

4986:                                             ; preds = %4367
  %4987 = landingpad { ptr, i32 }
          cleanup
  br label %4993

4988:                                             ; preds = %4368
  %4989 = landingpad { ptr, i32 }
          cleanup
  br label %4992

4990:                                             ; preds = %4369
  %4991 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %859) #10
  br label %4992

4992:                                             ; preds = %4990, %4988
  %.pn2078 = phi { ptr, i32 } [ %4991, %4990 ], [ %4989, %4988 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %859) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %852) #10
  br label %4993

4993:                                             ; preds = %4992, %4986
  %.pn2078.pn = phi { ptr, i32 } [ %.pn2078, %4992 ], [ %4987, %4986 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %856) #10
  br label %4994

4994:                                             ; preds = %4993, %4984
  %.pn2078.pn.pn = phi { ptr, i32 } [ %.pn2078.pn, %4993 ], [ %4985, %4984 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %858) #10
  br label %4995

4995:                                             ; preds = %4994, %4982
  %.pn2078.pn.pn.pn = phi { ptr, i32 } [ %.pn2078.pn.pn, %4994 ], [ %4983, %4982 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %857) #10
  br label %4996

4996:                                             ; preds = %4995, %4980
  %.pn2078.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2078.pn.pn.pn, %4995 ], [ %4981, %4980 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %856) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %853) #10
  br label %4997

4997:                                             ; preds = %4996, %4978
  %.pn2078.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2078.pn.pn.pn.pn, %4996 ], [ %4979, %4978 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %855) #10
  br label %4998

4998:                                             ; preds = %4997, %4976
  %.pn2078.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2078.pn.pn.pn.pn.pn, %4997 ], [ %4977, %4976 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %854) #10
  br label %4999

4999:                                             ; preds = %4998, %4974
  %.pn2078.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2078.pn.pn.pn.pn.pn.pn, %4998 ], [ %4975, %4974 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %852) #10
  br label %5024

5000:                                             ; preds = %4370
  %5001 = landingpad { ptr, i32 }
          cleanup
  br label %5024

5002:                                             ; preds = %4371
  %5003 = landingpad { ptr, i32 }
          cleanup
  br label %5018

5004:                                             ; preds = %4372
  %5005 = landingpad { ptr, i32 }
          cleanup
  br label %5017

5006:                                             ; preds = %4375, %4373
  %5007 = landingpad { ptr, i32 }
          cleanup
  br label %5016

5008:                                             ; preds = %4376
  %5009 = landingpad { ptr, i32 }
          cleanup
  br label %5015

5010:                                             ; preds = %4377
  %5011 = landingpad { ptr, i32 }
          cleanup
  br label %5014

5012:                                             ; preds = %4378
  %5013 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %865) #10
  br label %5014

5014:                                             ; preds = %5012, %5010
  %.pn2087 = phi { ptr, i32 } [ %5013, %5012 ], [ %5011, %5010 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %864) #10
  br label %5015

5015:                                             ; preds = %5014, %5008
  %.pn2087.pn = phi { ptr, i32 } [ %.pn2087, %5014 ], [ %5009, %5008 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %863) #10
  br label %5016

5016:                                             ; preds = %5015, %5006
  %.pn2087.pn.pn = phi { ptr, i32 } [ %.pn2087.pn, %5015 ], [ %5007, %5006 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %862) #10
  br label %5017

5017:                                             ; preds = %5016, %5004
  %.pn2087.pn.pn.pn = phi { ptr, i32 } [ %.pn2087.pn.pn, %5016 ], [ %5005, %5004 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %861) #10
  br label %5018

5018:                                             ; preds = %5017, %5002
  %.pn2087.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2087.pn.pn.pn, %5017 ], [ %5003, %5002 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %860) #10
  br label %5024

5019:                                             ; preds = %4380
  %5020 = landingpad { ptr, i32 }
          cleanup
  br label %5023

5021:                                             ; preds = %4381
  %5022 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %867) #10
  br label %5023

5023:                                             ; preds = %5021, %5019
  %.pn2093 = phi { ptr, i32 } [ %5022, %5021 ], [ %5020, %5019 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %868) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %867) #10
  br label %5024

5024:                                             ; preds = %5023, %5018, %5000, %4999, %4973
  %.pn2093.pn = phi { ptr, i32 } [ %.pn2093, %5023 ], [ %.pn2087.pn.pn.pn.pn, %5018 ], [ %5001, %5000 ], [ %.pn2078.pn.pn.pn.pn.pn.pn.pn, %4999 ], [ %.pn2069.pn.pn.pn.pn.pn.pn.pn, %4973 ]
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %837) #10
  br label %5025

5025:                                             ; preds = %5024, %4947, %4941
  %.pn2093.pn.pn = phi { ptr, i32 } [ %.pn2093.pn, %5024 ], [ %.pn2067, %4947 ], [ %4942, %4941 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %837) #10
  br label %5026

5026:                                             ; preds = %5025, %4940, %4928
  %.pn2093.pn.pn.pn = phi { ptr, i32 } [ %.pn2093.pn.pn, %5025 ], [ %.pn2063.pn.pn, %4940 ], [ %4929, %4928 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %829) #10
  br label %5027

5027:                                             ; preds = %5026, %4927
  %.pn2093.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2093.pn.pn.pn, %5026 ], [ %.pn2061, %4927 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %829) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %826) #10
  br label %5028

5028:                                             ; preds = %5027, %4922
  %.pn2093.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2093.pn.pn.pn.pn, %5027 ], [ %.pn2059, %4922 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %826) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %823) #10
  br label %5029

5029:                                             ; preds = %5028, %4917
  %.pn2093.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2093.pn.pn.pn.pn.pn, %5028 ], [ %.pn2057, %4917 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %823) #10
  br label %6795

5030:                                             ; preds = %4382
  %5031 = landingpad { ptr, i32 }
          cleanup
  br label %5034

5032:                                             ; preds = %4383
  %5033 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %870) #10
  br label %5034

5034:                                             ; preds = %5032, %5030
  %.pn2101 = phi { ptr, i32 } [ %5033, %5032 ], [ %5031, %5030 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %871) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %871) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %870) #10
  br label %5179

5035:                                             ; preds = %4384
  %5036 = landingpad { ptr, i32 }
          cleanup
  br label %5039

5037:                                             ; preds = %4385
  %5038 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %873) #10
  br label %5039

5039:                                             ; preds = %5037, %5035
  %.pn2103 = phi { ptr, i32 } [ %5038, %5037 ], [ %5036, %5035 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %874) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %874) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %873) #10
  br label %5178

5040:                                             ; preds = %4386
  %5041 = landingpad { ptr, i32 }
          cleanup
  br label %5044

5042:                                             ; preds = %4387
  %5043 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %876) #10
  br label %5044

5044:                                             ; preds = %5042, %5040
  %.pn2105 = phi { ptr, i32 } [ %5043, %5042 ], [ %5041, %5040 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %877) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %877) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %876) #10
  br label %5177

5045:                                             ; preds = %4388
  %5046 = landingpad { ptr, i32 }
          cleanup
  br label %5176

5047:                                             ; preds = %4389
  %5048 = landingpad { ptr, i32 }
          cleanup
  br label %5069

5049:                                             ; preds = %4390
  %5050 = landingpad { ptr, i32 }
          cleanup
  br label %5068

5051:                                             ; preds = %4391
  %5052 = landingpad { ptr, i32 }
          cleanup
  br label %5067

5053:                                             ; preds = %4392
  %5054 = landingpad { ptr, i32 }
          cleanup
  br label %5066

5055:                                             ; preds = %4393
  %5056 = landingpad { ptr, i32 }
          cleanup
  br label %5065

5057:                                             ; preds = %4394
  %5058 = landingpad { ptr, i32 }
          cleanup
  br label %5064

5059:                                             ; preds = %4395
  %5060 = landingpad { ptr, i32 }
          cleanup
  br label %5063

5061:                                             ; preds = %4396
  %5062 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %886) #10
  br label %5063

5063:                                             ; preds = %5061, %5059
  %.pn2107 = phi { ptr, i32 } [ %5062, %5061 ], [ %5060, %5059 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %886) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %879) #10
  br label %5064

5064:                                             ; preds = %5063, %5057
  %.pn2107.pn = phi { ptr, i32 } [ %.pn2107, %5063 ], [ %5058, %5057 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %880) #10
  br label %5065

5065:                                             ; preds = %5064, %5055
  %.pn2107.pn.pn = phi { ptr, i32 } [ %.pn2107.pn, %5064 ], [ %5056, %5055 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %881) #10
  br label %5066

5066:                                             ; preds = %5065, %5053
  %.pn2107.pn.pn.pn = phi { ptr, i32 } [ %.pn2107.pn.pn, %5065 ], [ %5054, %5053 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %882) #10
  br label %5067

5067:                                             ; preds = %5066, %5051
  %.pn2107.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2107.pn.pn.pn, %5066 ], [ %5052, %5051 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %883) #10
  br label %5068

5068:                                             ; preds = %5067, %5049
  %.pn2107.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2107.pn.pn.pn.pn, %5067 ], [ %5050, %5049 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %885) #10
  br label %5069

5069:                                             ; preds = %5068, %5047
  %.pn2107.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2107.pn.pn.pn.pn.pn, %5068 ], [ %5048, %5047 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %884) #10
  br label %5176

5070:                                             ; preds = %4397
  %5071 = landingpad { ptr, i32 }
          cleanup
  br label %5175

5072:                                             ; preds = %4398
  %5073 = landingpad { ptr, i32 }
          cleanup
  br label %5076

5074:                                             ; preds = %4399
  %5075 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %891) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %890) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %889) #10
  br label %5076

5076:                                             ; preds = %5074, %5072
  %.pn2115 = phi { ptr, i32 } [ %5075, %5074 ], [ %5073, %5072 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %888) #10
  br label %5175

5077:                                             ; preds = %4400
  %5078 = landingpad { ptr, i32 }
          cleanup
  br label %5102

5079:                                             ; preds = %4401
  %5080 = landingpad { ptr, i32 }
          cleanup
  br label %5101

5081:                                             ; preds = %4403
  %5082 = landingpad { ptr, i32 }
          cleanup
  br label %5100

5083:                                             ; preds = %4404
  %5084 = landingpad { ptr, i32 }
          cleanup
  br label %5099

5085:                                             ; preds = %4405
  %5086 = landingpad { ptr, i32 }
          cleanup
  br label %5098

5087:                                             ; preds = %4407
  %5088 = landingpad { ptr, i32 }
          cleanup
  br label %5097

5089:                                             ; preds = %4408
  %5090 = landingpad { ptr, i32 }
          cleanup
  br label %5096

5091:                                             ; preds = %4409
  %5092 = landingpad { ptr, i32 }
          cleanup
  br label %5095

5093:                                             ; preds = %4410
  %5094 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %900) #10
  br label %5095

5095:                                             ; preds = %5093, %5091
  %.pn2117 = phi { ptr, i32 } [ %5094, %5093 ], [ %5092, %5091 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %900) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %893) #10
  br label %5096

5096:                                             ; preds = %5095, %5089
  %.pn2117.pn = phi { ptr, i32 } [ %.pn2117, %5095 ], [ %5090, %5089 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %897) #10
  br label %5097

5097:                                             ; preds = %5096, %5087
  %.pn2117.pn.pn = phi { ptr, i32 } [ %.pn2117.pn, %5096 ], [ %5088, %5087 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %899) #10
  br label %5098

5098:                                             ; preds = %5097, %5085
  %.pn2117.pn.pn.pn = phi { ptr, i32 } [ %.pn2117.pn.pn, %5097 ], [ %5086, %5085 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %898) #10
  br label %5099

5099:                                             ; preds = %5098, %5083
  %.pn2117.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2117.pn.pn.pn, %5098 ], [ %5084, %5083 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %897) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %894) #10
  br label %5100

5100:                                             ; preds = %5099, %5081
  %.pn2117.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2117.pn.pn.pn.pn, %5099 ], [ %5082, %5081 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %896) #10
  br label %5101

5101:                                             ; preds = %5100, %5079
  %.pn2117.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2117.pn.pn.pn.pn.pn, %5100 ], [ %5080, %5079 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %895) #10
  br label %5102

5102:                                             ; preds = %5101, %5077
  %.pn2117.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2117.pn.pn.pn.pn.pn.pn, %5101 ], [ %5078, %5077 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %893) #10
  br label %5174

5103:                                             ; preds = %4411
  %5104 = landingpad { ptr, i32 }
          cleanup
  br label %5128

5105:                                             ; preds = %4412
  %5106 = landingpad { ptr, i32 }
          cleanup
  br label %5127

5107:                                             ; preds = %4413
  %5108 = landingpad { ptr, i32 }
          cleanup
  br label %5126

5109:                                             ; preds = %4414
  %5110 = landingpad { ptr, i32 }
          cleanup
  br label %5125

5111:                                             ; preds = %4415
  %5112 = landingpad { ptr, i32 }
          cleanup
  br label %5124

5113:                                             ; preds = %4416
  %5114 = landingpad { ptr, i32 }
          cleanup
  br label %5123

5115:                                             ; preds = %4417
  %5116 = landingpad { ptr, i32 }
          cleanup
  br label %5122

5117:                                             ; preds = %4418
  %5118 = landingpad { ptr, i32 }
          cleanup
  br label %5121

5119:                                             ; preds = %4419
  %5120 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %909) #10
  br label %5121

5121:                                             ; preds = %5119, %5117
  %.pn2126 = phi { ptr, i32 } [ %5120, %5119 ], [ %5118, %5117 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %909) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %902) #10
  br label %5122

5122:                                             ; preds = %5121, %5115
  %.pn2126.pn = phi { ptr, i32 } [ %.pn2126, %5121 ], [ %5116, %5115 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %906) #10
  br label %5123

5123:                                             ; preds = %5122, %5113
  %.pn2126.pn.pn = phi { ptr, i32 } [ %.pn2126.pn, %5122 ], [ %5114, %5113 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %908) #10
  br label %5124

5124:                                             ; preds = %5123, %5111
  %.pn2126.pn.pn.pn = phi { ptr, i32 } [ %.pn2126.pn.pn, %5123 ], [ %5112, %5111 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %907) #10
  br label %5125

5125:                                             ; preds = %5124, %5109
  %.pn2126.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2126.pn.pn.pn, %5124 ], [ %5110, %5109 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %906) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %903) #10
  br label %5126

5126:                                             ; preds = %5125, %5107
  %.pn2126.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2126.pn.pn.pn.pn, %5125 ], [ %5108, %5107 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %905) #10
  br label %5127

5127:                                             ; preds = %5126, %5105
  %.pn2126.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2126.pn.pn.pn.pn.pn, %5126 ], [ %5106, %5105 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %904) #10
  br label %5128

5128:                                             ; preds = %5127, %5103
  %.pn2126.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2126.pn.pn.pn.pn.pn.pn, %5127 ], [ %5104, %5103 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %902) #10
  br label %5174

5129:                                             ; preds = %4430, %4420
  %5130 = landingpad { ptr, i32 }
          cleanup
  br label %5174

5131:                                             ; preds = %4421
  %5132 = landingpad { ptr, i32 }
          cleanup
  br label %5147

5133:                                             ; preds = %4422
  %5134 = landingpad { ptr, i32 }
          cleanup
  br label %5146

5135:                                             ; preds = %4425, %4423
  %5136 = landingpad { ptr, i32 }
          cleanup
  br label %5145

5137:                                             ; preds = %4426
  %5138 = landingpad { ptr, i32 }
          cleanup
  br label %5144

5139:                                             ; preds = %4427
  %5140 = landingpad { ptr, i32 }
          cleanup
  br label %5143

5141:                                             ; preds = %4428
  %5142 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %915) #10
  br label %5143

5143:                                             ; preds = %5141, %5139
  %.pn2135 = phi { ptr, i32 } [ %5142, %5141 ], [ %5140, %5139 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %914) #10
  br label %5144

5144:                                             ; preds = %5143, %5137
  %.pn2135.pn = phi { ptr, i32 } [ %.pn2135, %5143 ], [ %5138, %5137 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %913) #10
  br label %5145

5145:                                             ; preds = %5144, %5135
  %.pn2135.pn.pn = phi { ptr, i32 } [ %.pn2135.pn, %5144 ], [ %5136, %5135 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %912) #10
  br label %5146

5146:                                             ; preds = %5145, %5133
  %.pn2135.pn.pn.pn = phi { ptr, i32 } [ %.pn2135.pn.pn, %5145 ], [ %5134, %5133 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %911) #10
  br label %5147

5147:                                             ; preds = %5146, %5131
  %.pn2135.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2135.pn.pn.pn, %5146 ], [ %5132, %5131 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %910) #10
  br label %5174

5148:                                             ; preds = %4431
  %5149 = landingpad { ptr, i32 }
          cleanup
  br label %5164

5150:                                             ; preds = %4432
  %5151 = landingpad { ptr, i32 }
          cleanup
  br label %5163

5152:                                             ; preds = %4435, %4433
  %5153 = landingpad { ptr, i32 }
          cleanup
  br label %5162

5154:                                             ; preds = %4436
  %5155 = landingpad { ptr, i32 }
          cleanup
  br label %5161

5156:                                             ; preds = %4437
  %5157 = landingpad { ptr, i32 }
          cleanup
  br label %5160

5158:                                             ; preds = %4438
  %5159 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %921) #10
  br label %5160

5160:                                             ; preds = %5158, %5156
  %.pn2141 = phi { ptr, i32 } [ %5159, %5158 ], [ %5157, %5156 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %920) #10
  br label %5161

5161:                                             ; preds = %5160, %5154
  %.pn2141.pn = phi { ptr, i32 } [ %.pn2141, %5160 ], [ %5155, %5154 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %919) #10
  br label %5162

5162:                                             ; preds = %5161, %5152
  %.pn2141.pn.pn = phi { ptr, i32 } [ %.pn2141.pn, %5161 ], [ %5153, %5152 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %918) #10
  br label %5163

5163:                                             ; preds = %5162, %5150
  %.pn2141.pn.pn.pn = phi { ptr, i32 } [ %.pn2141.pn.pn, %5162 ], [ %5151, %5150 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %917) #10
  br label %5164

5164:                                             ; preds = %5163, %5148
  %.pn2141.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2141.pn.pn.pn, %5163 ], [ %5149, %5148 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %916) #10
  br label %5174

5165:                                             ; preds = %4440
  %5166 = landingpad { ptr, i32 }
          cleanup
  br label %5172

5167:                                             ; preds = %4442
  %5168 = landingpad { ptr, i32 }
          cleanup
  br label %5171

5169:                                             ; preds = %4443
  %5170 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %923) #10
  br label %5171

5171:                                             ; preds = %5169, %5167
  %.pn2147 = phi { ptr, i32 } [ %5170, %5169 ], [ %5168, %5167 ]
  call void @_ZNSt6vectorIN6Halide4FuncESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %924) #10
  br label %5172

5172:                                             ; preds = %5171, %5165
  %.pn2147.pn = phi { ptr, i32 } [ %.pn2147, %5171 ], [ %5166, %5165 ]
  call void @_ZNSt15__new_allocatorIN6Halide4FuncEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %926) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %926) #10
  %5173 = getelementptr inbounds i8, ptr %925, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5173) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %925) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %925) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %924) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %923) #10
  br label %5174

5174:                                             ; preds = %5172, %5164, %5147, %5129, %5128, %5102
  %.pn2147.pn.pn = phi { ptr, i32 } [ %.pn2147.pn, %5172 ], [ %.pn2141.pn.pn.pn.pn, %5164 ], [ %5130, %5129 ], [ %.pn2135.pn.pn.pn.pn, %5147 ], [ %.pn2126.pn.pn.pn.pn.pn.pn.pn, %5128 ], [ %.pn2117.pn.pn.pn.pn.pn.pn.pn, %5102 ]
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %887) #10
  br label %5175

5175:                                             ; preds = %5174, %5076, %5070
  %.pn2147.pn.pn.pn = phi { ptr, i32 } [ %.pn2147.pn.pn, %5174 ], [ %.pn2115, %5076 ], [ %5071, %5070 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %887) #10
  br label %5176

5176:                                             ; preds = %5175, %5069, %5045
  %.pn2147.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2147.pn.pn.pn, %5175 ], [ %.pn2107.pn.pn.pn.pn.pn.pn, %5069 ], [ %5046, %5045 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %875) #10
  br label %5177

5177:                                             ; preds = %5176, %5044
  %.pn2147.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2147.pn.pn.pn.pn, %5176 ], [ %.pn2105, %5044 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %875) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %872) #10
  br label %5178

5178:                                             ; preds = %5177, %5039
  %.pn2147.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2147.pn.pn.pn.pn.pn, %5177 ], [ %.pn2103, %5039 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %872) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %869) #10
  br label %5179

5179:                                             ; preds = %5178, %5034
  %.pn2147.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2147.pn.pn.pn.pn.pn.pn, %5178 ], [ %.pn2101, %5034 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %869) #10
  br label %6795

5180:                                             ; preds = %4447, %4444
  %5181 = landingpad { ptr, i32 }
          cleanup
  br label %5232

5182:                                             ; preds = %4450
  %5183 = landingpad { ptr, i32 }
          cleanup
  br label %5186

5184:                                             ; preds = %4451
  %5185 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %929) #10
  br label %5186

5186:                                             ; preds = %5184, %5182
  %.pn2156 = phi { ptr, i32 } [ %5185, %5184 ], [ %5183, %5182 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %930) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %930) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %929) #10
  br label %5231

5187:                                             ; preds = %4452
  %5188 = landingpad { ptr, i32 }
          cleanup
  br label %5191

5189:                                             ; preds = %4453
  %5190 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %932) #10
  br label %5191

5191:                                             ; preds = %5189, %5187
  %.pn2158 = phi { ptr, i32 } [ %5190, %5189 ], [ %5188, %5187 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %933) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %933) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %932) #10
  br label %5230

5192:                                             ; preds = %4460, %4454
  %5193 = landingpad { ptr, i32 }
          cleanup
  br label %5229

5194:                                             ; preds = %4455
  %5195 = landingpad { ptr, i32 }
          cleanup
  br label %5198

5196:                                             ; preds = %4456
  %5197 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %936) #10
  br label %5198

5198:                                             ; preds = %5196, %5194
  %.pn2160 = phi { ptr, i32 } [ %5197, %5196 ], [ %5195, %5194 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %936) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %935) #10
  br label %5229

5199:                                             ; preds = %4457
  %5200 = landingpad { ptr, i32 }
          cleanup
  br label %5206

5201:                                             ; preds = %4458
  %5202 = landingpad { ptr, i32 }
          cleanup
  br label %5205

5203:                                             ; preds = %4459
  %5204 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %939) #10
  br label %5205

5205:                                             ; preds = %5203, %5201
  %.pn2162 = phi { ptr, i32 } [ %5204, %5203 ], [ %5202, %5201 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %939) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %938) #10
  br label %5206

5206:                                             ; preds = %5205, %5199
  %.pn2162.pn = phi { ptr, i32 } [ %.pn2162, %5205 ], [ %5200, %5199 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %938) #10
  br label %5229

5207:                                             ; preds = %4461
  %5208 = landingpad { ptr, i32 }
          cleanup
  br label %5223

5209:                                             ; preds = %4462
  %5210 = landingpad { ptr, i32 }
          cleanup
  br label %5222

5211:                                             ; preds = %4465, %4463
  %5212 = landingpad { ptr, i32 }
          cleanup
  br label %5221

5213:                                             ; preds = %4466
  %5214 = landingpad { ptr, i32 }
          cleanup
  br label %5220

5215:                                             ; preds = %4467
  %5216 = landingpad { ptr, i32 }
          cleanup
  br label %5219

5217:                                             ; preds = %4468
  %5218 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %945) #10
  br label %5219

5219:                                             ; preds = %5217, %5215
  %.pn2165 = phi { ptr, i32 } [ %5218, %5217 ], [ %5216, %5215 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %944) #10
  br label %5220

5220:                                             ; preds = %5219, %5213
  %.pn2165.pn = phi { ptr, i32 } [ %.pn2165, %5219 ], [ %5214, %5213 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %943) #10
  br label %5221

5221:                                             ; preds = %5220, %5211
  %.pn2165.pn.pn = phi { ptr, i32 } [ %.pn2165.pn, %5220 ], [ %5212, %5211 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %942) #10
  br label %5222

5222:                                             ; preds = %5221, %5209
  %.pn2165.pn.pn.pn = phi { ptr, i32 } [ %.pn2165.pn.pn, %5221 ], [ %5210, %5209 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %941) #10
  br label %5223

5223:                                             ; preds = %5222, %5207
  %.pn2165.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2165.pn.pn.pn, %5222 ], [ %5208, %5207 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %940) #10
  br label %5229

5224:                                             ; preds = %4470
  %5225 = landingpad { ptr, i32 }
          cleanup
  br label %5228

5226:                                             ; preds = %4471
  %5227 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %947) #10
  br label %5228

5228:                                             ; preds = %5226, %5224
  %.pn2171 = phi { ptr, i32 } [ %5227, %5226 ], [ %5225, %5224 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %948) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %947) #10
  br label %5229

5229:                                             ; preds = %5228, %5223, %5206, %5198, %5192
  %.pn2171.pn = phi { ptr, i32 } [ %.pn2171, %5228 ], [ %.pn2165.pn.pn.pn.pn, %5223 ], [ %5193, %5192 ], [ %.pn2162.pn, %5206 ], [ %.pn2160, %5198 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %931) #10
  br label %5230

5230:                                             ; preds = %5229, %5191
  %.pn2171.pn.pn = phi { ptr, i32 } [ %.pn2171.pn, %5229 ], [ %.pn2158, %5191 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %931) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %928) #10
  br label %5231

5231:                                             ; preds = %5230, %5186
  %.pn2171.pn.pn.pn = phi { ptr, i32 } [ %.pn2171.pn.pn, %5230 ], [ %.pn2156, %5186 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %928) #10
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %927) #10
  br label %5232

5232:                                             ; preds = %5231, %5180
  %.pn2171.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2171.pn.pn.pn, %5231 ], [ %5181, %5180 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %927) #10
  br label %6795

5233:                                             ; preds = %4474, %4472
  %5234 = landingpad { ptr, i32 }
          cleanup
  br label %5277

5235:                                             ; preds = %4477
  %5236 = landingpad { ptr, i32 }
          cleanup
  br label %5239

5237:                                             ; preds = %4478
  %5238 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %951) #10
  br label %5239

5239:                                             ; preds = %5237, %5235
  %.pn2177 = phi { ptr, i32 } [ %5238, %5237 ], [ %5236, %5235 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %952) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %952) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %951) #10
  br label %5276

5240:                                             ; preds = %4479
  %5241 = landingpad { ptr, i32 }
          cleanup
  br label %5250

5242:                                             ; preds = %4480
  %5243 = landingpad { ptr, i32 }
          cleanup
  br label %5249

5244:                                             ; preds = %4481
  %5245 = landingpad { ptr, i32 }
          cleanup
  br label %5248

5246:                                             ; preds = %4482
  %5247 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %956) #10
  br label %5248

5248:                                             ; preds = %5246, %5244
  %.pn2179 = phi { ptr, i32 } [ %5247, %5246 ], [ %5245, %5244 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %956) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %954) #10
  br label %5249

5249:                                             ; preds = %5248, %5242
  %.pn2179.pn = phi { ptr, i32 } [ %.pn2179, %5248 ], [ %5243, %5242 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %955) #10
  br label %5250

5250:                                             ; preds = %5249, %5240
  %.pn2179.pn.pn = phi { ptr, i32 } [ %.pn2179.pn, %5249 ], [ %5241, %5240 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %955) #10
  br label %5275

5251:                                             ; preds = %4483
  %5252 = landingpad { ptr, i32 }
          cleanup
  br label %5275

5253:                                             ; preds = %4484
  %5254 = landingpad { ptr, i32 }
          cleanup
  br label %5269

5255:                                             ; preds = %4485
  %5256 = landingpad { ptr, i32 }
          cleanup
  br label %5268

5257:                                             ; preds = %4488, %4486
  %5258 = landingpad { ptr, i32 }
          cleanup
  br label %5267

5259:                                             ; preds = %4489
  %5260 = landingpad { ptr, i32 }
          cleanup
  br label %5266

5261:                                             ; preds = %4490
  %5262 = landingpad { ptr, i32 }
          cleanup
  br label %5265

5263:                                             ; preds = %4491
  %5264 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %962) #10
  br label %5265

5265:                                             ; preds = %5263, %5261
  %.pn2183 = phi { ptr, i32 } [ %5264, %5263 ], [ %5262, %5261 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %961) #10
  br label %5266

5266:                                             ; preds = %5265, %5259
  %.pn2183.pn = phi { ptr, i32 } [ %.pn2183, %5265 ], [ %5260, %5259 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %960) #10
  br label %5267

5267:                                             ; preds = %5266, %5257
  %.pn2183.pn.pn = phi { ptr, i32 } [ %.pn2183.pn, %5266 ], [ %5258, %5257 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %959) #10
  br label %5268

5268:                                             ; preds = %5267, %5255
  %.pn2183.pn.pn.pn = phi { ptr, i32 } [ %.pn2183.pn.pn, %5267 ], [ %5256, %5255 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %958) #10
  br label %5269

5269:                                             ; preds = %5268, %5253
  %.pn2183.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2183.pn.pn.pn, %5268 ], [ %5254, %5253 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %957) #10
  br label %5275

5270:                                             ; preds = %4493
  %5271 = landingpad { ptr, i32 }
          cleanup
  br label %5274

5272:                                             ; preds = %4494
  %5273 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %964) #10
  br label %5274

5274:                                             ; preds = %5272, %5270
  %.pn2189 = phi { ptr, i32 } [ %5273, %5272 ], [ %5271, %5270 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %965) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %964) #10
  br label %5275

5275:                                             ; preds = %5274, %5269, %5251, %5250
  %.pn2189.pn = phi { ptr, i32 } [ %.pn2189, %5274 ], [ %.pn2183.pn.pn.pn.pn, %5269 ], [ %5252, %5251 ], [ %.pn2179.pn.pn, %5250 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %950) #10
  br label %5276

5276:                                             ; preds = %5275, %5239
  %.pn2189.pn.pn = phi { ptr, i32 } [ %.pn2189.pn, %5275 ], [ %.pn2177, %5239 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %950) #10
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %949) #10
  br label %5277

5277:                                             ; preds = %5276, %5233
  %.pn2189.pn.pn.pn = phi { ptr, i32 } [ %.pn2189.pn.pn, %5276 ], [ %5234, %5233 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %949) #10
  br label %6795

5278:                                             ; preds = %4497, %4495
  %5279 = landingpad { ptr, i32 }
          cleanup
  br label %5382

5280:                                             ; preds = %4500
  %5281 = landingpad { ptr, i32 }
          cleanup
  br label %5284

5282:                                             ; preds = %4501
  %5283 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %968) #10
  br label %5284

5284:                                             ; preds = %5282, %5280
  %.pn2194 = phi { ptr, i32 } [ %5283, %5282 ], [ %5281, %5280 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %969) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %969) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %968) #10
  br label %5381

5285:                                             ; preds = %4502
  %5286 = landingpad { ptr, i32 }
          cleanup
  br label %5380

5287:                                             ; preds = %4503
  %5288 = landingpad { ptr, i32 }
          cleanup
  br label %5379

5289:                                             ; preds = %4504
  %5290 = landingpad { ptr, i32 }
          cleanup
  br label %5378

5291:                                             ; preds = %4505
  %5292 = landingpad { ptr, i32 }
          cleanup
  br label %5377

5293:                                             ; preds = %4506
  %5294 = landingpad { ptr, i32 }
          cleanup
  br label %5376

5295:                                             ; preds = %4507
  %5296 = landingpad { ptr, i32 }
          cleanup
  br label %5305

5297:                                             ; preds = %4508
  %5298 = landingpad { ptr, i32 }
          cleanup
  br label %5304

5299:                                             ; preds = %4509
  %5300 = landingpad { ptr, i32 }
          cleanup
  br label %5303

5301:                                             ; preds = %4510
  %5302 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %978) #10
  br label %5303

5303:                                             ; preds = %5301, %5299
  %.pn2196 = phi { ptr, i32 } [ %5302, %5301 ], [ %5300, %5299 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %978) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %976) #10
  br label %5304

5304:                                             ; preds = %5303, %5297
  %.pn2196.pn = phi { ptr, i32 } [ %.pn2196, %5303 ], [ %5298, %5297 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %977) #10
  br label %5305

5305:                                             ; preds = %5304, %5295
  %.pn2196.pn.pn = phi { ptr, i32 } [ %.pn2196.pn, %5304 ], [ %5296, %5295 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %977) #10
  br label %5375

5306:                                             ; preds = %4511
  %5307 = landingpad { ptr, i32 }
          cleanup
  br label %5375

5308:                                             ; preds = %4512
  %5309 = landingpad { ptr, i32 }
          cleanup
  br label %5369

5310:                                             ; preds = %4513
  %5311 = landingpad { ptr, i32 }
          cleanup
  br label %5368

5312:                                             ; preds = %4516, %4514
  %5313 = landingpad { ptr, i32 }
          cleanup
  br label %5367

5314:                                             ; preds = %4517
  %5315 = landingpad { ptr, i32 }
          cleanup
  br label %5366

5316:                                             ; preds = %4518
  %5317 = landingpad { ptr, i32 }
          cleanup
  br label %5365

5318:                                             ; preds = %4521, %4519
  %5319 = landingpad { ptr, i32 }
          cleanup
  br label %5364

5320:                                             ; preds = %4522
  %5321 = landingpad { ptr, i32 }
          cleanup
  br label %5363

5322:                                             ; preds = %4523
  %5323 = landingpad { ptr, i32 }
          cleanup
  br label %5362

5324:                                             ; preds = %4526, %4524
  %5325 = landingpad { ptr, i32 }
          cleanup
  br label %5361

5326:                                             ; preds = %4527
  %5327 = landingpad { ptr, i32 }
          cleanup
  br label %5360

5328:                                             ; preds = %4528
  %5329 = landingpad { ptr, i32 }
          cleanup
  br label %5359

5330:                                             ; preds = %4531, %4529
  %5331 = landingpad { ptr, i32 }
          cleanup
  br label %5358

5332:                                             ; preds = %4532
  %5333 = landingpad { ptr, i32 }
          cleanup
  br label %5357

5334:                                             ; preds = %4533
  %5335 = landingpad { ptr, i32 }
          cleanup
  br label %5356

5336:                                             ; preds = %4536, %4534
  %5337 = landingpad { ptr, i32 }
          cleanup
  br label %5355

5338:                                             ; preds = %4537
  %5339 = landingpad { ptr, i32 }
          cleanup
  br label %5354

5340:                                             ; preds = %4538
  %5341 = landingpad { ptr, i32 }
          cleanup
  br label %5353

5342:                                             ; preds = %4541, %4539
  %5343 = landingpad { ptr, i32 }
          cleanup
  br label %5352

5344:                                             ; preds = %4542
  %5345 = landingpad { ptr, i32 }
          cleanup
  br label %5351

5346:                                             ; preds = %4543
  %5347 = landingpad { ptr, i32 }
          cleanup
  br label %5350

5348:                                             ; preds = %4544
  %5349 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %999) #10
  br label %5350

5350:                                             ; preds = %5348, %5346
  %.pn2200 = phi { ptr, i32 } [ %5349, %5348 ], [ %5347, %5346 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %998) #10
  br label %5351

5351:                                             ; preds = %5350, %5344
  %.pn2200.pn = phi { ptr, i32 } [ %.pn2200, %5350 ], [ %5345, %5344 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %997) #10
  br label %5352

5352:                                             ; preds = %5351, %5342
  %.pn2200.pn.pn = phi { ptr, i32 } [ %.pn2200.pn, %5351 ], [ %5343, %5342 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %996) #10
  br label %5353

5353:                                             ; preds = %5352, %5340
  %.pn2200.pn.pn.pn = phi { ptr, i32 } [ %.pn2200.pn.pn, %5352 ], [ %5341, %5340 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %995) #10
  br label %5354

5354:                                             ; preds = %5353, %5338
  %.pn2200.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2200.pn.pn.pn, %5353 ], [ %5339, %5338 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %994) #10
  br label %5355

5355:                                             ; preds = %5354, %5336
  %.pn2200.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2200.pn.pn.pn.pn, %5354 ], [ %5337, %5336 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %993) #10
  br label %5356

5356:                                             ; preds = %5355, %5334
  %.pn2200.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2200.pn.pn.pn.pn.pn, %5355 ], [ %5335, %5334 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %992) #10
  br label %5357

5357:                                             ; preds = %5356, %5332
  %.pn2200.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2200.pn.pn.pn.pn.pn.pn, %5356 ], [ %5333, %5332 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %991) #10
  br label %5358

5358:                                             ; preds = %5357, %5330
  %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2200.pn.pn.pn.pn.pn.pn.pn, %5357 ], [ %5331, %5330 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %990) #10
  br label %5359

5359:                                             ; preds = %5358, %5328
  %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn, %5358 ], [ %5329, %5328 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %989) #10
  br label %5360

5360:                                             ; preds = %5359, %5326
  %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5359 ], [ %5327, %5326 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %988) #10
  br label %5361

5361:                                             ; preds = %5360, %5324
  %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5360 ], [ %5325, %5324 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %987) #10
  br label %5362

5362:                                             ; preds = %5361, %5322
  %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5361 ], [ %5323, %5322 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %986) #10
  br label %5363

5363:                                             ; preds = %5362, %5320
  %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5362 ], [ %5321, %5320 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %985) #10
  br label %5364

5364:                                             ; preds = %5363, %5318
  %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5363 ], [ %5319, %5318 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %984) #10
  br label %5365

5365:                                             ; preds = %5364, %5316
  %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5364 ], [ %5317, %5316 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %983) #10
  br label %5366

5366:                                             ; preds = %5365, %5314
  %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5365 ], [ %5315, %5314 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %982) #10
  br label %5367

5367:                                             ; preds = %5366, %5312
  %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5366 ], [ %5313, %5312 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %981) #10
  br label %5368

5368:                                             ; preds = %5367, %5310
  %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5367 ], [ %5311, %5310 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %980) #10
  br label %5369

5369:                                             ; preds = %5368, %5308
  %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5368 ], [ %5309, %5308 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %979) #10
  br label %5375

5370:                                             ; preds = %4546
  %5371 = landingpad { ptr, i32 }
          cleanup
  br label %5374

5372:                                             ; preds = %4547
  %5373 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1001) #10
  br label %5374

5374:                                             ; preds = %5372, %5370
  %.pn2221 = phi { ptr, i32 } [ %5373, %5372 ], [ %5371, %5370 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1002) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1001) #10
  br label %5375

5375:                                             ; preds = %5374, %5369, %5306, %5305
  %.pn2221.pn = phi { ptr, i32 } [ %.pn2221, %5374 ], [ %.pn2200.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5369 ], [ %5307, %5306 ], [ %.pn2196.pn.pn, %5305 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %974) #10
  br label %5376

5376:                                             ; preds = %5375, %5293
  %.pn2221.pn.pn = phi { ptr, i32 } [ %.pn2221.pn, %5375 ], [ %5294, %5293 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %974) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %973) #10
  br label %5377

5377:                                             ; preds = %5376, %5291
  %.pn2221.pn.pn.pn = phi { ptr, i32 } [ %.pn2221.pn.pn, %5376 ], [ %5292, %5291 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %973) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %972) #10
  br label %5378

5378:                                             ; preds = %5377, %5289
  %.pn2221.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2221.pn.pn.pn, %5377 ], [ %5290, %5289 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %972) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %971) #10
  br label %5379

5379:                                             ; preds = %5378, %5287
  %.pn2221.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2221.pn.pn.pn.pn, %5378 ], [ %5288, %5287 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %971) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %970) #10
  br label %5380

5380:                                             ; preds = %5379, %5285
  %.pn2221.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2221.pn.pn.pn.pn.pn, %5379 ], [ %5286, %5285 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %970) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %967) #10
  br label %5381

5381:                                             ; preds = %5380, %5284
  %.pn2221.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2221.pn.pn.pn.pn.pn.pn, %5380 ], [ %.pn2194, %5284 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %967) #10
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %966) #10
  br label %5382

5382:                                             ; preds = %5381, %5278
  %.pn2221.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2221.pn.pn.pn.pn.pn.pn.pn, %5381 ], [ %5279, %5278 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %966) #10
  br label %6795

5383:                                             ; preds = %4550, %4548
  %5384 = landingpad { ptr, i32 }
          cleanup
  br label %5598

5385:                                             ; preds = %4553
  %5386 = landingpad { ptr, i32 }
          cleanup
  br label %5389

5387:                                             ; preds = %4554
  %5388 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1005) #10
  br label %5389

5389:                                             ; preds = %5387, %5385
  %.pn2231 = phi { ptr, i32 } [ %5388, %5387 ], [ %5386, %5385 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1006) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1006) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1005) #10
  br label %5597

5390:                                             ; preds = %4555
  %5391 = landingpad { ptr, i32 }
          cleanup
  br label %5394

5392:                                             ; preds = %4556
  %5393 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1008) #10
  br label %5394

5394:                                             ; preds = %5392, %5390
  %.pn2233 = phi { ptr, i32 } [ %5393, %5392 ], [ %5391, %5390 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1009) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1009) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1008) #10
  br label %5596

5395:                                             ; preds = %4557
  %5396 = landingpad { ptr, i32 }
          cleanup
  br label %5399

5397:                                             ; preds = %4558
  %5398 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1011) #10
  br label %5399

5399:                                             ; preds = %5397, %5395
  %.pn2235 = phi { ptr, i32 } [ %5398, %5397 ], [ %5396, %5395 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1012) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1012) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1011) #10
  br label %5595

5400:                                             ; preds = %4559
  %5401 = landingpad { ptr, i32 }
          cleanup
  br label %5425

5402:                                             ; preds = %4560
  %5403 = landingpad { ptr, i32 }
          cleanup
  br label %5424

5404:                                             ; preds = %4561
  %5405 = landingpad { ptr, i32 }
          cleanup
  br label %5423

5406:                                             ; preds = %4562
  %5407 = landingpad { ptr, i32 }
          cleanup
  br label %5422

5408:                                             ; preds = %4563
  %5409 = landingpad { ptr, i32 }
          cleanup
  br label %5421

5410:                                             ; preds = %4564
  %5411 = landingpad { ptr, i32 }
          cleanup
  br label %5420

5412:                                             ; preds = %4565
  %5413 = landingpad { ptr, i32 }
          cleanup
  br label %5419

5414:                                             ; preds = %4566
  %5415 = landingpad { ptr, i32 }
          cleanup
  br label %5418

5416:                                             ; preds = %4567
  %5417 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1021) #10
  br label %5418

5418:                                             ; preds = %5416, %5414
  %.pn2237 = phi { ptr, i32 } [ %5417, %5416 ], [ %5415, %5414 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1021) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1014) #10
  br label %5419

5419:                                             ; preds = %5418, %5412
  %.pn2237.pn = phi { ptr, i32 } [ %.pn2237, %5418 ], [ %5413, %5412 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1015) #10
  br label %5420

5420:                                             ; preds = %5419, %5410
  %.pn2237.pn.pn = phi { ptr, i32 } [ %.pn2237.pn, %5419 ], [ %5411, %5410 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1020) #10
  br label %5421

5421:                                             ; preds = %5420, %5408
  %.pn2237.pn.pn.pn = phi { ptr, i32 } [ %.pn2237.pn.pn, %5420 ], [ %5409, %5408 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1019) #10
  br label %5422

5422:                                             ; preds = %5421, %5406
  %.pn2237.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2237.pn.pn.pn, %5421 ], [ %5407, %5406 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1016) #10
  br label %5423

5423:                                             ; preds = %5422, %5404
  %.pn2237.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2237.pn.pn.pn.pn, %5422 ], [ %5405, %5404 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1018) #10
  br label %5424

5424:                                             ; preds = %5423, %5402
  %.pn2237.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2237.pn.pn.pn.pn.pn, %5423 ], [ %5403, %5402 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1017) #10
  br label %5425

5425:                                             ; preds = %5424, %5400
  %.pn2237.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2237.pn.pn.pn.pn.pn.pn, %5424 ], [ %5401, %5400 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1015) #10
  br label %5594

5426:                                             ; preds = %4568
  %5427 = landingpad { ptr, i32 }
          cleanup
  br label %5451

5428:                                             ; preds = %4569
  %5429 = landingpad { ptr, i32 }
          cleanup
  br label %5450

5430:                                             ; preds = %4570
  %5431 = landingpad { ptr, i32 }
          cleanup
  br label %5449

5432:                                             ; preds = %4571
  %5433 = landingpad { ptr, i32 }
          cleanup
  br label %5448

5434:                                             ; preds = %4572
  %5435 = landingpad { ptr, i32 }
          cleanup
  br label %5447

5436:                                             ; preds = %4573
  %5437 = landingpad { ptr, i32 }
          cleanup
  br label %5446

5438:                                             ; preds = %4574
  %5439 = landingpad { ptr, i32 }
          cleanup
  br label %5445

5440:                                             ; preds = %4575
  %5441 = landingpad { ptr, i32 }
          cleanup
  br label %5444

5442:                                             ; preds = %4576
  %5443 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1030) #10
  br label %5444

5444:                                             ; preds = %5442, %5440
  %.pn2246 = phi { ptr, i32 } [ %5443, %5442 ], [ %5441, %5440 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1030) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1023) #10
  br label %5445

5445:                                             ; preds = %5444, %5438
  %.pn2246.pn = phi { ptr, i32 } [ %.pn2246, %5444 ], [ %5439, %5438 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1024) #10
  br label %5446

5446:                                             ; preds = %5445, %5436
  %.pn2246.pn.pn = phi { ptr, i32 } [ %.pn2246.pn, %5445 ], [ %5437, %5436 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1029) #10
  br label %5447

5447:                                             ; preds = %5446, %5434
  %.pn2246.pn.pn.pn = phi { ptr, i32 } [ %.pn2246.pn.pn, %5446 ], [ %5435, %5434 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1028) #10
  br label %5448

5448:                                             ; preds = %5447, %5432
  %.pn2246.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2246.pn.pn.pn, %5447 ], [ %5433, %5432 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1025) #10
  br label %5449

5449:                                             ; preds = %5448, %5430
  %.pn2246.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2246.pn.pn.pn.pn, %5448 ], [ %5431, %5430 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1027) #10
  br label %5450

5450:                                             ; preds = %5449, %5428
  %.pn2246.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2246.pn.pn.pn.pn.pn, %5449 ], [ %5429, %5428 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1026) #10
  br label %5451

5451:                                             ; preds = %5450, %5426
  %.pn2246.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2246.pn.pn.pn.pn.pn.pn, %5450 ], [ %5427, %5426 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1023) #10
  br label %5594

5452:                                             ; preds = %4577
  %5453 = landingpad { ptr, i32 }
          cleanup
  br label %5477

5454:                                             ; preds = %4578
  %5455 = landingpad { ptr, i32 }
          cleanup
  br label %5476

5456:                                             ; preds = %4579
  %5457 = landingpad { ptr, i32 }
          cleanup
  br label %5475

5458:                                             ; preds = %4580
  %5459 = landingpad { ptr, i32 }
          cleanup
  br label %5474

5460:                                             ; preds = %4581
  %5461 = landingpad { ptr, i32 }
          cleanup
  br label %5473

5462:                                             ; preds = %4582
  %5463 = landingpad { ptr, i32 }
          cleanup
  br label %5472

5464:                                             ; preds = %4583
  %5465 = landingpad { ptr, i32 }
          cleanup
  br label %5471

5466:                                             ; preds = %4584
  %5467 = landingpad { ptr, i32 }
          cleanup
  br label %5470

5468:                                             ; preds = %4585
  %5469 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1039) #10
  br label %5470

5470:                                             ; preds = %5468, %5466
  %.pn2255 = phi { ptr, i32 } [ %5469, %5468 ], [ %5467, %5466 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1039) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1032) #10
  br label %5471

5471:                                             ; preds = %5470, %5464
  %.pn2255.pn = phi { ptr, i32 } [ %.pn2255, %5470 ], [ %5465, %5464 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1033) #10
  br label %5472

5472:                                             ; preds = %5471, %5462
  %.pn2255.pn.pn = phi { ptr, i32 } [ %.pn2255.pn, %5471 ], [ %5463, %5462 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1038) #10
  br label %5473

5473:                                             ; preds = %5472, %5460
  %.pn2255.pn.pn.pn = phi { ptr, i32 } [ %.pn2255.pn.pn, %5472 ], [ %5461, %5460 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1037) #10
  br label %5474

5474:                                             ; preds = %5473, %5458
  %.pn2255.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2255.pn.pn.pn, %5473 ], [ %5459, %5458 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1034) #10
  br label %5475

5475:                                             ; preds = %5474, %5456
  %.pn2255.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2255.pn.pn.pn.pn, %5474 ], [ %5457, %5456 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1036) #10
  br label %5476

5476:                                             ; preds = %5475, %5454
  %.pn2255.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2255.pn.pn.pn.pn.pn, %5475 ], [ %5455, %5454 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1035) #10
  br label %5477

5477:                                             ; preds = %5476, %5452
  %.pn2255.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2255.pn.pn.pn.pn.pn.pn, %5476 ], [ %5453, %5452 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1032) #10
  br label %5594

5478:                                             ; preds = %4586
  %5479 = landingpad { ptr, i32 }
          cleanup
  br label %5482

5480:                                             ; preds = %4587
  %5481 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1041) #10
  br label %5482

5482:                                             ; preds = %5480, %5478
  %.pn2264 = phi { ptr, i32 } [ %5481, %5480 ], [ %5479, %5478 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1042) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1042) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1041) #10
  br label %5593

5483:                                             ; preds = %4588
  %5484 = landingpad { ptr, i32 }
          cleanup
  br label %5487

5485:                                             ; preds = %4589
  %5486 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1044) #10
  br label %5487

5487:                                             ; preds = %5485, %5483
  %.pn2266 = phi { ptr, i32 } [ %5486, %5485 ], [ %5484, %5483 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1045) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1045) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1044) #10
  br label %5592

5488:                                             ; preds = %4590
  %5489 = landingpad { ptr, i32 }
          cleanup
  br label %5516

5490:                                             ; preds = %4591
  %5491 = landingpad { ptr, i32 }
          cleanup
  br label %5515

5492:                                             ; preds = %4592
  %5493 = landingpad { ptr, i32 }
          cleanup
  br label %5514

5494:                                             ; preds = %4593
  %5495 = landingpad { ptr, i32 }
          cleanup
  br label %5513

5496:                                             ; preds = %4594
  %5497 = landingpad { ptr, i32 }
          cleanup
  br label %5512

5498:                                             ; preds = %4595
  %5499 = landingpad { ptr, i32 }
          cleanup
  br label %5511

5500:                                             ; preds = %4596
  %5501 = landingpad { ptr, i32 }
          cleanup
  br label %5510

5502:                                             ; preds = %4597
  %5503 = landingpad { ptr, i32 }
          cleanup
  br label %5509

5504:                                             ; preds = %4598
  %5505 = landingpad { ptr, i32 }
          cleanup
  br label %5508

5506:                                             ; preds = %4599
  %5507 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1055) #10
  br label %5508

5508:                                             ; preds = %5506, %5504
  %.pn2268 = phi { ptr, i32 } [ %5507, %5506 ], [ %5505, %5504 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1055) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1047) #10
  br label %5509

5509:                                             ; preds = %5508, %5502
  %.pn2268.pn = phi { ptr, i32 } [ %.pn2268, %5508 ], [ %5503, %5502 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1053) #10
  br label %5510

5510:                                             ; preds = %5509, %5500
  %.pn2268.pn.pn = phi { ptr, i32 } [ %.pn2268.pn, %5509 ], [ %5501, %5500 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1054) #10
  br label %5511

5511:                                             ; preds = %5510, %5498
  %.pn2268.pn.pn.pn = phi { ptr, i32 } [ %.pn2268.pn.pn, %5510 ], [ %5499, %5498 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1054) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1048) #10
  br label %5512

5512:                                             ; preds = %5511, %5496
  %.pn2268.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2268.pn.pn.pn, %5511 ], [ %5497, %5496 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1051) #10
  br label %5513

5513:                                             ; preds = %5512, %5494
  %.pn2268.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2268.pn.pn.pn.pn, %5512 ], [ %5495, %5494 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1052) #10
  br label %5514

5514:                                             ; preds = %5513, %5492
  %.pn2268.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2268.pn.pn.pn.pn.pn, %5513 ], [ %5493, %5492 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1052) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1049) #10
  br label %5515

5515:                                             ; preds = %5514, %5490
  %.pn2268.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2268.pn.pn.pn.pn.pn.pn, %5514 ], [ %5491, %5490 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1050) #10
  br label %5516

5516:                                             ; preds = %5515, %5488
  %.pn2268.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2268.pn.pn.pn.pn.pn.pn.pn, %5515 ], [ %5489, %5488 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1050) #10
  br label %5591

5517:                                             ; preds = %4600
  %5518 = landingpad { ptr, i32 }
          cleanup
  br label %5545

5519:                                             ; preds = %4601
  %5520 = landingpad { ptr, i32 }
          cleanup
  br label %5544

5521:                                             ; preds = %4602
  %5522 = landingpad { ptr, i32 }
          cleanup
  br label %5543

5523:                                             ; preds = %4603
  %5524 = landingpad { ptr, i32 }
          cleanup
  br label %5542

5525:                                             ; preds = %4604
  %5526 = landingpad { ptr, i32 }
          cleanup
  br label %5541

5527:                                             ; preds = %4605
  %5528 = landingpad { ptr, i32 }
          cleanup
  br label %5540

5529:                                             ; preds = %4606
  %5530 = landingpad { ptr, i32 }
          cleanup
  br label %5539

5531:                                             ; preds = %4607
  %5532 = landingpad { ptr, i32 }
          cleanup
  br label %5538

5533:                                             ; preds = %4608
  %5534 = landingpad { ptr, i32 }
          cleanup
  br label %5537

5535:                                             ; preds = %4609
  %5536 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1065) #10
  br label %5537

5537:                                             ; preds = %5535, %5533
  %.pn2278 = phi { ptr, i32 } [ %5536, %5535 ], [ %5534, %5533 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1065) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1057) #10
  br label %5538

5538:                                             ; preds = %5537, %5531
  %.pn2278.pn = phi { ptr, i32 } [ %.pn2278, %5537 ], [ %5532, %5531 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1063) #10
  br label %5539

5539:                                             ; preds = %5538, %5529
  %.pn2278.pn.pn = phi { ptr, i32 } [ %.pn2278.pn, %5538 ], [ %5530, %5529 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1064) #10
  br label %5540

5540:                                             ; preds = %5539, %5527
  %.pn2278.pn.pn.pn = phi { ptr, i32 } [ %.pn2278.pn.pn, %5539 ], [ %5528, %5527 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1064) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1058) #10
  br label %5541

5541:                                             ; preds = %5540, %5525
  %.pn2278.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2278.pn.pn.pn, %5540 ], [ %5526, %5525 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1061) #10
  br label %5542

5542:                                             ; preds = %5541, %5523
  %.pn2278.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2278.pn.pn.pn.pn, %5541 ], [ %5524, %5523 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1062) #10
  br label %5543

5543:                                             ; preds = %5542, %5521
  %.pn2278.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2278.pn.pn.pn.pn.pn, %5542 ], [ %5522, %5521 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1062) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1059) #10
  br label %5544

5544:                                             ; preds = %5543, %5519
  %.pn2278.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2278.pn.pn.pn.pn.pn.pn, %5543 ], [ %5520, %5519 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1060) #10
  br label %5545

5545:                                             ; preds = %5544, %5517
  %.pn2278.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2278.pn.pn.pn.pn.pn.pn.pn, %5544 ], [ %5518, %5517 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1060) #10
  br label %5591

5546:                                             ; preds = %4620, %4610
  %5547 = landingpad { ptr, i32 }
          cleanup
  br label %5591

5548:                                             ; preds = %4611
  %5549 = landingpad { ptr, i32 }
          cleanup
  br label %5564

5550:                                             ; preds = %4612
  %5551 = landingpad { ptr, i32 }
          cleanup
  br label %5563

5552:                                             ; preds = %4615, %4613
  %5553 = landingpad { ptr, i32 }
          cleanup
  br label %5562

5554:                                             ; preds = %4616
  %5555 = landingpad { ptr, i32 }
          cleanup
  br label %5561

5556:                                             ; preds = %4617
  %5557 = landingpad { ptr, i32 }
          cleanup
  br label %5560

5558:                                             ; preds = %4618
  %5559 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1071) #10
  br label %5560

5560:                                             ; preds = %5558, %5556
  %.pn2288 = phi { ptr, i32 } [ %5559, %5558 ], [ %5557, %5556 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1070) #10
  br label %5561

5561:                                             ; preds = %5560, %5554
  %.pn2288.pn = phi { ptr, i32 } [ %.pn2288, %5560 ], [ %5555, %5554 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1069) #10
  br label %5562

5562:                                             ; preds = %5561, %5552
  %.pn2288.pn.pn = phi { ptr, i32 } [ %.pn2288.pn, %5561 ], [ %5553, %5552 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1068) #10
  br label %5563

5563:                                             ; preds = %5562, %5550
  %.pn2288.pn.pn.pn = phi { ptr, i32 } [ %.pn2288.pn.pn, %5562 ], [ %5551, %5550 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1067) #10
  br label %5564

5564:                                             ; preds = %5563, %5548
  %.pn2288.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2288.pn.pn.pn, %5563 ], [ %5549, %5548 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1066) #10
  br label %5591

5565:                                             ; preds = %4621
  %5566 = landingpad { ptr, i32 }
          cleanup
  br label %5581

5567:                                             ; preds = %4622
  %5568 = landingpad { ptr, i32 }
          cleanup
  br label %5580

5569:                                             ; preds = %4625, %4623
  %5570 = landingpad { ptr, i32 }
          cleanup
  br label %5579

5571:                                             ; preds = %4626
  %5572 = landingpad { ptr, i32 }
          cleanup
  br label %5578

5573:                                             ; preds = %4627
  %5574 = landingpad { ptr, i32 }
          cleanup
  br label %5577

5575:                                             ; preds = %4628
  %5576 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1077) #10
  br label %5577

5577:                                             ; preds = %5575, %5573
  %.pn2294 = phi { ptr, i32 } [ %5576, %5575 ], [ %5574, %5573 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1076) #10
  br label %5578

5578:                                             ; preds = %5577, %5571
  %.pn2294.pn = phi { ptr, i32 } [ %.pn2294, %5577 ], [ %5572, %5571 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1075) #10
  br label %5579

5579:                                             ; preds = %5578, %5569
  %.pn2294.pn.pn = phi { ptr, i32 } [ %.pn2294.pn, %5578 ], [ %5570, %5569 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1074) #10
  br label %5580

5580:                                             ; preds = %5579, %5567
  %.pn2294.pn.pn.pn = phi { ptr, i32 } [ %.pn2294.pn.pn, %5579 ], [ %5568, %5567 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1073) #10
  br label %5581

5581:                                             ; preds = %5580, %5565
  %.pn2294.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2294.pn.pn.pn, %5580 ], [ %5566, %5565 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1072) #10
  br label %5591

5582:                                             ; preds = %4630
  %5583 = landingpad { ptr, i32 }
          cleanup
  br label %5589

5584:                                             ; preds = %4632
  %5585 = landingpad { ptr, i32 }
          cleanup
  br label %5588

5586:                                             ; preds = %4633
  %5587 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1079) #10
  br label %5588

5588:                                             ; preds = %5586, %5584
  %.pn2300 = phi { ptr, i32 } [ %5587, %5586 ], [ %5585, %5584 ]
  call void @_ZNSt6vectorIN6Halide4FuncESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1080) #10
  br label %5589

5589:                                             ; preds = %5588, %5582
  %.pn2300.pn = phi { ptr, i32 } [ %.pn2300, %5588 ], [ %5583, %5582 ]
  call void @_ZNSt15__new_allocatorIN6Halide4FuncEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1082) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1082) #10
  %5590 = getelementptr inbounds i8, ptr %1081, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5590) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1081) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %1081) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1080) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1079) #10
  br label %5591

5591:                                             ; preds = %5589, %5581, %5564, %5546, %5545, %5516
  %.pn2300.pn.pn = phi { ptr, i32 } [ %.pn2300.pn, %5589 ], [ %.pn2294.pn.pn.pn.pn, %5581 ], [ %5547, %5546 ], [ %.pn2288.pn.pn.pn.pn, %5564 ], [ %.pn2278.pn.pn.pn.pn.pn.pn.pn.pn, %5545 ], [ %.pn2268.pn.pn.pn.pn.pn.pn.pn.pn, %5516 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1043) #10
  br label %5592

5592:                                             ; preds = %5591, %5487
  %.pn2300.pn.pn.pn = phi { ptr, i32 } [ %.pn2300.pn.pn, %5591 ], [ %.pn2266, %5487 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1043) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1040) #10
  br label %5593

5593:                                             ; preds = %5592, %5482
  %.pn2300.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2300.pn.pn.pn, %5592 ], [ %.pn2264, %5482 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1040) #10
  br label %5594

5594:                                             ; preds = %5593, %5477, %5451, %5425
  %.pn2300.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2300.pn.pn.pn.pn, %5593 ], [ %.pn2255.pn.pn.pn.pn.pn.pn.pn, %5477 ], [ %.pn2246.pn.pn.pn.pn.pn.pn.pn, %5451 ], [ %.pn2237.pn.pn.pn.pn.pn.pn.pn, %5425 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1010) #10
  br label %5595

5595:                                             ; preds = %5594, %5399
  %.pn2300.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2300.pn.pn.pn.pn.pn, %5594 ], [ %.pn2235, %5399 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1010) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1007) #10
  br label %5596

5596:                                             ; preds = %5595, %5394
  %.pn2300.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2300.pn.pn.pn.pn.pn.pn, %5595 ], [ %.pn2233, %5394 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1007) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1004) #10
  br label %5597

5597:                                             ; preds = %5596, %5389
  %.pn2300.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2300.pn.pn.pn.pn.pn.pn.pn, %5596 ], [ %.pn2231, %5389 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1004) #10
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1003) #10
  br label %5598

5598:                                             ; preds = %5597, %5383
  %.pn2300.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2300.pn.pn.pn.pn.pn.pn.pn.pn, %5597 ], [ %5384, %5383 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1003) #10
  br label %6795

5599:                                             ; preds = %4637, %4634
  %5600 = landingpad { ptr, i32 }
          cleanup
  br label %5930

5601:                                             ; preds = %4640
  %lpad.thr_comm.split-lp2918 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2730

.preheader2742.preheader:                         ; preds = %4641, %4642, %4643, %4644, %4645, %4646, %4647
  %.ptr2313.lcssa.ph = phi ptr [ %.ptr2313.7, %4647 ], [ %.ptr2313.6, %4646 ], [ %.ptr2313.5, %4645 ], [ %.ptr2313.4, %4644 ], [ %.ptr2313.3, %4643 ], [ %.ptr2313.2, %4642 ], [ %.ptr2313.1, %4641 ]
  %lpad.thr_comm2917 = landingpad { ptr, i32 }
          cleanup
  br label %.preheader2742

.preheader2742:                                   ; preds = %.preheader2742.preheader, %.preheader2742
  %5602 = phi ptr [ %5603, %.preheader2742 ], [ %.ptr2313.lcssa.ph, %.preheader2742.preheader ]
  %5603 = getelementptr inbounds i8, ptr %5602, i64 -32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5603) #10
  %5604 = icmp eq ptr %5603, %1084
  br i1 %5604, label %.loopexit2730, label %.preheader2742

5605:                                             ; preds = %4648
  %5606 = landingpad { ptr, i32 }
          cleanup
  br label %5609

5607:                                             ; preds = %4649
  %5608 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1086) #10
  br label %5609

5609:                                             ; preds = %5607, %5605
  %.pn2315 = phi { ptr, i32 } [ %5608, %5607 ], [ %5606, %5605 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1087) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1087) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1086) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1085) #10
  br label %.loopexit2730.loopexit

5610:                                             ; preds = %4650
  %5611 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2730.loopexit

5612:                                             ; preds = %4652
  %5613 = landingpad { ptr, i32 }
          cleanup
  br label %5616

5614:                                             ; preds = %4653
  %5615 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1090) #10
  br label %5616

5616:                                             ; preds = %5614, %5612
  %.pn2317 = phi { ptr, i32 } [ %5615, %5614 ], [ %5613, %5612 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1090) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1089) #10
  br label %.loopexit2730.loopexit

5617:                                             ; preds = %4654, %5670
  %indvars.iv2854 = phi i64 [ 1, %4654 ], [ %indvars.iv.next2855, %5670 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1091) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1091, i32 noundef 0)
          to label %.preheader2741 unwind label %5622

.preheader2741:                                   ; preds = %5617
  %5618 = add nsw i64 %indvars.iv2854, -1
  %5619 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1084, i64 0, i64 %5618
  br label %.preheader2740

.preheader2740:                                   ; preds = %.preheader2741, %5647
  %.012732794 = phi i32 [ -1, %.preheader2741 ], [ %5648, %5647 ]
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1093) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1095, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %5624 unwind label %5649

5620:                                             ; preds = %5647
  call void @_ZN6Halide4ExprC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %1099, ptr noundef nonnull align 8 dereferenceable(8) %1091) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1100) #10
  %5621 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1084, i64 0, i64 %indvars.iv2854
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1100, ptr noundef nonnull align 8 dereferenceable(32) %5621, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5669 unwind label %5671

5622:                                             ; preds = %5617
  %5623 = landingpad { ptr, i32 }
          cleanup
  br label %5677

5624:                                             ; preds = %.preheader2740
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1094, ptr noundef nonnull %1095, i32 noundef -1)
          to label %5625 unwind label %5651

5625:                                             ; preds = %5624
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1096) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1097, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5626 unwind label %5653

5626:                                             ; preds = %5625
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1096, ptr noundef nonnull %1097, i32 noundef %.012732794)
          to label %5627 unwind label %5655

5627:                                             ; preds = %5626
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1093, ptr noundef nonnull align 8 dereferenceable(32) %5619, ptr noundef nonnull %1094, ptr noundef nonnull align 8 dereferenceable(8) %1096)
          to label %5628 unwind label %5657

5628:                                             ; preds = %5627
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1092, ptr noundef nonnull align 8 dereferenceable(56) %1093)
          to label %5629 unwind label %5659

5629:                                             ; preds = %5628
  %5630 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %1091, ptr noundef nonnull %1092)
          to label %5631 unwind label %5661

5631:                                             ; preds = %5629
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1092) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1093) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1096) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1097) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1096) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1094) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1095) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1093) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1093) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1095, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %5632 unwind label %5649

5632:                                             ; preds = %5631
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1094, ptr noundef nonnull %1095, i32 noundef 0)
          to label %5633 unwind label %5651

5633:                                             ; preds = %5632
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1096) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1097, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5634 unwind label %5653

5634:                                             ; preds = %5633
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1096, ptr noundef nonnull %1097, i32 noundef %.012732794)
          to label %5635 unwind label %5655

5635:                                             ; preds = %5634
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1093, ptr noundef nonnull align 8 dereferenceable(32) %5619, ptr noundef nonnull %1094, ptr noundef nonnull align 8 dereferenceable(8) %1096)
          to label %5636 unwind label %5657

5636:                                             ; preds = %5635
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1092, ptr noundef nonnull align 8 dereferenceable(56) %1093)
          to label %5637 unwind label %5659

5637:                                             ; preds = %5636
  %5638 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %1091, ptr noundef nonnull %1092)
          to label %5639 unwind label %5661

5639:                                             ; preds = %5637
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1092) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1093) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1096) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1097) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1096) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1094) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1095) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1093) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1093) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1095, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %5640 unwind label %5649

5640:                                             ; preds = %5639
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1094, ptr noundef nonnull %1095, i32 noundef 1)
          to label %5641 unwind label %5651

5641:                                             ; preds = %5640
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1096) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1097, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5642 unwind label %5653

5642:                                             ; preds = %5641
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1096, ptr noundef nonnull %1097, i32 noundef %.012732794)
          to label %5643 unwind label %5655

5643:                                             ; preds = %5642
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1093, ptr noundef nonnull align 8 dereferenceable(32) %5619, ptr noundef nonnull %1094, ptr noundef nonnull align 8 dereferenceable(8) %1096)
          to label %5644 unwind label %5657

5644:                                             ; preds = %5643
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1092, ptr noundef nonnull align 8 dereferenceable(56) %1093)
          to label %5645 unwind label %5659

5645:                                             ; preds = %5644
  %5646 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8) %1091, ptr noundef nonnull %1092)
          to label %5647 unwind label %5661

5647:                                             ; preds = %5645
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1092) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1093) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1096) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1097) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1096) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1094) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1095) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1093) #10
  %5648 = add nsw i32 %.012732794, 1
  %exitcond2853.not = icmp eq i32 %5648, 2
  br i1 %exitcond2853.not, label %5620, label %.preheader2740, !llvm.loop !19

5649:                                             ; preds = %5639, %5631, %.preheader2740
  %5650 = landingpad { ptr, i32 }
          cleanup
  br label %5668

5651:                                             ; preds = %5640, %5632, %5624
  %5652 = landingpad { ptr, i32 }
          cleanup
  br label %5667

5653:                                             ; preds = %5641, %5633, %5625
  %5654 = landingpad { ptr, i32 }
          cleanup
  br label %5666

5655:                                             ; preds = %5642, %5634, %5626
  %5656 = landingpad { ptr, i32 }
          cleanup
  br label %5665

5657:                                             ; preds = %5643, %5635, %5627
  %5658 = landingpad { ptr, i32 }
          cleanup
  br label %5664

5659:                                             ; preds = %5644, %5636, %5628
  %5660 = landingpad { ptr, i32 }
          cleanup
  br label %5663

5661:                                             ; preds = %5645, %5637, %5629
  %5662 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1092) #10
  br label %5663

5663:                                             ; preds = %5661, %5659
  %.pn2610 = phi { ptr, i32 } [ %5662, %5661 ], [ %5660, %5659 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1093) #10
  br label %5664

5664:                                             ; preds = %5663, %5657
  %.pn2610.pn = phi { ptr, i32 } [ %.pn2610, %5663 ], [ %5658, %5657 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1096) #10
  br label %5665

5665:                                             ; preds = %5664, %5655
  %.pn2610.pn.pn = phi { ptr, i32 } [ %.pn2610.pn, %5664 ], [ %5656, %5655 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1097) #10
  br label %5666

5666:                                             ; preds = %5665, %5653
  %.pn2610.pn.pn.pn = phi { ptr, i32 } [ %.pn2610.pn.pn, %5665 ], [ %5654, %5653 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1096) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1094) #10
  br label %5667

5667:                                             ; preds = %5666, %5651
  %.pn2610.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2610.pn.pn.pn, %5666 ], [ %5652, %5651 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1095) #10
  br label %5668

5668:                                             ; preds = %5667, %5649
  %.pn2610.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2610.pn.pn.pn.pn, %5667 ], [ %5650, %5649 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1093) #10
  br label %5676

5669:                                             ; preds = %5620
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1098, ptr noundef nonnull align 8 dereferenceable(56) %1100, ptr noundef nonnull %1099)
          to label %5670 unwind label %5673

5670:                                             ; preds = %5669
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1098) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1100) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1100) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1099) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1091) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1091) #10
  %indvars.iv.next2855 = add nuw nsw i64 %indvars.iv2854, 1
  %exitcond2857.not = icmp eq i64 %indvars.iv.next2855, 8
  br i1 %exitcond2857.not, label %4655, label %5617, !llvm.loop !20

5671:                                             ; preds = %5620
  %5672 = landingpad { ptr, i32 }
          cleanup
  br label %5675

5673:                                             ; preds = %5669
  %5674 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1100) #10
  br label %5675

5675:                                             ; preds = %5673, %5671
  %.pn2608 = phi { ptr, i32 } [ %5674, %5673 ], [ %5672, %5671 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1100) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1099) #10
  br label %5676

5676:                                             ; preds = %5675, %5668
  %.pn2610.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2610.pn.pn.pn.pn.pn, %5668 ], [ %.pn2608, %5675 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1091) #10
  br label %5677

5677:                                             ; preds = %5676, %5622
  %.pn2610.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2610.pn.pn.pn.pn.pn.pn, %5676 ], [ %5623, %5622 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1091) #10
  br label %.loopexit2730.loopexit

5678:                                             ; preds = %4655
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1101, ptr noundef nonnull align 8 dereferenceable(32) %1102)
          to label %5679 unwind label %5826

5679:                                             ; preds = %5678
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1102) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1103) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1103) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1102) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1107) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1107, ptr noundef nonnull align 8 dereferenceable(32) %.ptr2313.7, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5680 unwind label %5829

5680:                                             ; preds = %5679
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1106, ptr noundef nonnull align 8 dereferenceable(56) %1107)
          to label %5681 unwind label %5831

5681:                                             ; preds = %5680
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1109) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1113) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1114, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %5682 unwind label %5833

5682:                                             ; preds = %5681
  invoke void @_ZN6Halide3sinENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1113, ptr noundef nonnull %1114)
          to label %5683 unwind label %5835

5683:                                             ; preds = %5682
  invoke void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1112, ptr noundef nonnull align 8 dereferenceable(8) %1113, i32 noundef 10000)
          to label %5684 unwind label %5837

5684:                                             ; preds = %5683
  invoke void @_ZN6Halide4castIiEENS_4ExprES1_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1111, ptr noundef nonnull %1112)
          to label %5685 unwind label %5839

5685:                                             ; preds = %5684
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1115, i32 noundef 0)
          to label %5686 unwind label %5841

5686:                                             ; preds = %5685
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1116, i32 noundef 100000)
          to label %5687 unwind label %5843

5687:                                             ; preds = %5686
  invoke void @_ZN6Halide5clampENS_4ExprES0_S0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1110, ptr noundef nonnull %1111, ptr noundef nonnull %1115, ptr noundef nonnull %1116)
          to label %5688 unwind label %5845

5688:                                             ; preds = %5687
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1117) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1120) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1122, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %5689 unwind label %5847

5689:                                             ; preds = %5688
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1123, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5690 unwind label %5849

5690:                                             ; preds = %5689
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1121, ptr noundef nonnull %1122, ptr noundef nonnull %1123)
          to label %5691 unwind label %5851

5691:                                             ; preds = %5690
  invoke void @_ZN6Halide3sinENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1120, ptr noundef nonnull %1121)
          to label %5692 unwind label %5853

5692:                                             ; preds = %5691
  invoke void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1119, ptr noundef nonnull align 8 dereferenceable(8) %1120, i32 noundef 10000)
          to label %5693 unwind label %5855

5693:                                             ; preds = %5692
  invoke void @_ZN6Halide4castIiEENS_4ExprES1_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1118, ptr noundef nonnull %1119)
          to label %5694 unwind label %5857

5694:                                             ; preds = %5693
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1124, i32 noundef 0)
          to label %5695 unwind label %5859

5695:                                             ; preds = %5694
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1125, i32 noundef 100000)
          to label %5696 unwind label %5861

5696:                                             ; preds = %5695
  invoke void @_ZN6Halide5clampENS_4ExprES0_S0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1117, ptr noundef nonnull %1118, ptr noundef nonnull %1124, ptr noundef nonnull %1125)
          to label %5697 unwind label %5863

5697:                                             ; preds = %5696
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1109, ptr noundef nonnull align 8 dereferenceable(32) %1084, ptr noundef nonnull %1110, ptr noundef nonnull align 8 dereferenceable(8) %1117)
          to label %5698 unwind label %5865

5698:                                             ; preds = %5697
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1108, ptr noundef nonnull align 8 dereferenceable(56) %1109)
          to label %5699 unwind label %5867

5699:                                             ; preds = %5698
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1105, ptr noundef nonnull %1106, ptr noundef nonnull %1108)
          to label %5700 unwind label %5869

5700:                                             ; preds = %5699
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1126) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1126, ptr noundef nonnull align 8 dereferenceable(32) %1101, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5701 unwind label %5871

5701:                                             ; preds = %5700
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1104, ptr noundef nonnull align 8 dereferenceable(56) %1126, ptr noundef nonnull %1105)
          to label %5702 unwind label %5873

5702:                                             ; preds = %5701
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1104) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1126) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1126) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1105) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1108) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1109) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1117) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1125) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1124) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1118) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1119) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1120) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1121) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1123) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1122) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1120) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1117) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1110) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1116) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1115) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1111) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1112) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1113) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1114) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1113) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1109) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1106) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1107) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1107) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1127, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %5703 unwind label %5897

5703:                                             ; preds = %5702
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1128, i32 noundef 0)
          to label %5704 unwind label %5899

5704:                                             ; preds = %5703
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1129, i32 noundef 2048)
          to label %5705 unwind label %5901

5705:                                             ; preds = %5704
  %5706 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1101, ptr noundef nonnull %1127, ptr noundef nonnull %1128, ptr noundef nonnull %1129)
          to label %5707 unwind label %5903

5707:                                             ; preds = %5705
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1130, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5708 unwind label %5903

5708:                                             ; preds = %5707
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1131, i32 noundef 0)
          to label %5709 unwind label %5905

5709:                                             ; preds = %5708
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1132, i32 noundef 2048)
          to label %5710 unwind label %5907

5710:                                             ; preds = %5709
  %5711 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %5706, ptr noundef nonnull %1130, ptr noundef nonnull %1131, ptr noundef nonnull %1132)
          to label %5712 unwind label %5909

5712:                                             ; preds = %5710
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1132) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1131) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1130) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1129) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1128) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1127) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1134) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1135, ptr noundef nonnull align 8 dereferenceable(32) %1101) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %1134, ptr noundef nonnull %1135)
          to label %5713 unwind label %5916

5713:                                             ; preds = %5712
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %1133, ptr noundef nonnull align 8 dereferenceable(8) %1134, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %5714 unwind label %5918

5714:                                             ; preds = %5713
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %1133) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1134) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1135) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1134) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1101) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1101) #10
  %5715 = getelementptr inbounds i8, ptr %1084, i64 224
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5715) #10
  %5716 = getelementptr inbounds i8, ptr %1084, i64 192
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5716) #10
  %5717 = getelementptr inbounds i8, ptr %1084, i64 160
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5717) #10
  %5718 = getelementptr inbounds i8, ptr %1084, i64 128
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5718) #10
  %5719 = getelementptr inbounds i8, ptr %1084, i64 96
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5719) #10
  %5720 = getelementptr inbounds i8, ptr %1084, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5720) #10
  %5721 = getelementptr inbounds i8, ptr %1084, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5721) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1084) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %1084) #10
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1083) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1083) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1136) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1137) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1138) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1138) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1137, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %1138)
          to label %5722 unwind label %5931

5722:                                             ; preds = %5714
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1136, ptr noundef nonnull align 8 dereferenceable(32) %1137)
          to label %5723 unwind label %5933

5723:                                             ; preds = %5722
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1137) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1138) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1138) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1137) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1139) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1140) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1141) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1141) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1140, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %1141)
          to label %5724 unwind label %5936

5724:                                             ; preds = %5723
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1139, ptr noundef nonnull align 8 dereferenceable(32) %1140)
          to label %5725 unwind label %5938

5725:                                             ; preds = %5724
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1140) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1141) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1141) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1140) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1142) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1143) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %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 nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %1144)
          to label %5726 unwind label %5941

5726:                                             ; preds = %5725
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1142, ptr noundef nonnull align 8 dereferenceable(32) %1143)
          to label %5727 unwind label %5943

5727:                                             ; preds = %5726
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1143) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1144) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1144) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1143) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1147, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %5728 unwind label %5946

5728:                                             ; preds = %5727
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1148, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5729 unwind label %5948

5729:                                             ; preds = %5728
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1146, ptr noundef nonnull %1147, ptr noundef nonnull %1148)
          to label %5730 unwind label %5950

5730:                                             ; preds = %5729
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1149) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1149, ptr noundef nonnull align 8 dereferenceable(32) %1136, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5731 unwind label %5952

5731:                                             ; preds = %5730
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1145, ptr noundef nonnull align 8 dereferenceable(56) %1149, ptr noundef nonnull %1146)
          to label %5732 unwind label %5954

5732:                                             ; preds = %5731
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1145) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1149) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1149) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1146) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1148) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1147) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1151) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1152, i32 noundef 3)
          to label %5733 unwind label %5959

5733:                                             ; preds = %5732
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %1153) #10
  store i32 2, ptr %1153, align 4, !tbaa !17
  invoke void @_ZNK6Halide4FuncclIJiEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES3_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1151, ptr noundef nonnull align 8 dereferenceable(32) %1136, ptr noundef nonnull %1152, ptr noundef nonnull align 4 dereferenceable(4) %1153)
          to label %5734 unwind label %5961

5734:                                             ; preds = %5733
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1154) #10
  invoke void @_ZNK6Halide4FuncclIJEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_3VarEDpT_EE5valueENS_7FuncRefEE4typeEDpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1154, ptr noundef nonnull align 8 dereferenceable(32) %1139)
          to label %5735 unwind label %5963

5735:                                             ; preds = %5734
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1150, ptr noundef nonnull align 8 dereferenceable(56) %1154, ptr noundef nonnull align 8 dereferenceable(56) %1151)
          to label %5736 unwind label %5965

5736:                                             ; preds = %5735
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1150) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1154) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1154) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1151) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1153) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1152) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1151) #10
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %1155) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1156, i32 noundef 0)
          to label %5737 unwind label %5970

5737:                                             ; preds = %5736
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1157, i32 noundef 100)
          to label %5738 unwind label %5972

5738:                                             ; preds = %5737
  invoke void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %1155, ptr noundef nonnull %1156, ptr noundef nonnull %1157)
          to label %5739 unwind label %5974

5739:                                             ; preds = %5738
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1157) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1156) #10
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1159, ptr noundef nonnull align 8 dereferenceable(200) %1155)
          to label %5740 unwind label %5977

5740:                                             ; preds = %5739
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1160) #10
  invoke void @_ZNK6Halide4FuncclIJEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_3VarEDpT_EE5valueENS_7FuncRefEE4typeEDpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1160, ptr noundef nonnull align 8 dereferenceable(32) %1139)
          to label %5741 unwind label %5979

5741:                                             ; preds = %5740
  invoke void @_ZN6Halide7FuncRefpLENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1158, ptr noundef nonnull align 8 dereferenceable(56) %1160, ptr noundef nonnull %1159)
          to label %5742 unwind label %5981

5742:                                             ; preds = %5741
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1158) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1160) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1160) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1159) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1165) #10
  invoke void @_ZNK6Halide4FuncclIJEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_3VarEDpT_EE5valueENS_7FuncRefEE4typeEDpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1165, ptr noundef nonnull align 8 dereferenceable(32) %1139)
          to label %5743 unwind label %5984

5743:                                             ; preds = %5742
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1164, ptr noundef nonnull align 8 dereferenceable(56) %1165)
          to label %5744 unwind label %5986

5744:                                             ; preds = %5743
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1166, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %5745 unwind label %5988

5745:                                             ; preds = %5744
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1163, ptr noundef nonnull %1164, ptr noundef nonnull %1166)
          to label %5746 unwind label %5990

5746:                                             ; preds = %5745
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1167, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5747 unwind label %5992

5747:                                             ; preds = %5746
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1162, ptr noundef nonnull %1163, ptr noundef nonnull %1167)
          to label %5748 unwind label %5994

5748:                                             ; preds = %5747
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1168) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1168, ptr noundef nonnull align 8 dereferenceable(32) %1142, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5749 unwind label %5996

5749:                                             ; preds = %5748
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1161, ptr noundef nonnull align 8 dereferenceable(56) %1168, ptr noundef nonnull %1162)
          to label %5750 unwind label %5998

5750:                                             ; preds = %5749
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1161) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1168) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1168) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1162) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1167) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1163) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1166) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1164) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1165) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1165) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1169, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %5751 unwind label %5977

5751:                                             ; preds = %5750
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1170, i32 noundef 0)
          to label %5752 unwind label %6007

5752:                                             ; preds = %5751
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1171, i32 noundef 1024)
          to label %5753 unwind label %6009

5753:                                             ; preds = %5752
  %5754 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1142, ptr noundef nonnull %1169, ptr noundef nonnull %1170, ptr noundef nonnull %1171)
          to label %5755 unwind label %6011

5755:                                             ; preds = %5753
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1172, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5756 unwind label %6011

5756:                                             ; preds = %5755
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1173, i32 noundef 0)
          to label %5757 unwind label %6013

5757:                                             ; preds = %5756
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1174, i32 noundef 2048)
          to label %5758 unwind label %6015

5758:                                             ; preds = %5757
  %5759 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %5754, ptr noundef nonnull %1172, ptr noundef nonnull %1173, ptr noundef nonnull %1174)
          to label %5760 unwind label %6017

5760:                                             ; preds = %5758
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1174) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1173) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1172) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1171) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1170) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1169) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1176) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1177, ptr noundef nonnull align 8 dereferenceable(32) %1142) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %1176, ptr noundef nonnull %1177)
          to label %5761 unwind label %6024

5761:                                             ; preds = %5760
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %1175, ptr noundef nonnull align 8 dereferenceable(8) %1176, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %5762 unwind label %6026

5762:                                             ; preds = %5761
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %1175) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1176) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1177) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1176) #10
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %1155) #10
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %1155) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1142) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1142) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1139) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1139) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1136) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1136) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1178) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1179) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1180) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1180) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1179, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %1180)
          to label %5763 unwind label %6035

5763:                                             ; preds = %5762
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1178, ptr noundef nonnull align 8 dereferenceable(32) %1179)
          to label %5764 unwind label %6037

5764:                                             ; preds = %5763
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1179) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1180) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1180) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1179) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1181) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1182) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1183) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1183) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1182, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %1183)
          to label %5765 unwind label %6040

5765:                                             ; preds = %5764
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1181, ptr noundef nonnull align 8 dereferenceable(32) %1182)
          to label %5766 unwind label %6042

5766:                                             ; preds = %5765
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1182) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1183) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1183) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1182) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1186, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %5767 unwind label %6045

5767:                                             ; preds = %5766
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1187, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5768 unwind label %6047

5768:                                             ; preds = %5767
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1185, ptr noundef nonnull %1186, ptr noundef nonnull %1187)
          to label %5769 unwind label %6049

5769:                                             ; preds = %5768
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1188) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1188, ptr noundef nonnull align 8 dereferenceable(32) %1178, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5770 unwind label %6051

5770:                                             ; preds = %5769
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1184, ptr noundef nonnull align 8 dereferenceable(56) %1188, ptr noundef nonnull %1185)
          to label %5771 unwind label %6053

5771:                                             ; preds = %5770
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1184) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1188) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1188) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1185) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1187) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1186) #10
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %1189) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1190, i32 noundef 0)
          to label %5772 unwind label %6058

5772:                                             ; preds = %5771
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1191, i32 noundef 10)
          to label %5773 unwind label %6060

5773:                                             ; preds = %5772
  invoke void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %1189, ptr noundef nonnull %1190, ptr noundef nonnull %1191)
          to label %5774 unwind label %6062

5774:                                             ; preds = %5773
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1191) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1190) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1195) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1195, ptr noundef nonnull align 8 dereferenceable(32) %1178, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5775 unwind label %6065

5775:                                             ; preds = %5774
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1194, ptr noundef nonnull align 8 dereferenceable(56) %1195)
          to label %5776 unwind label %6067

5776:                                             ; preds = %5775
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1196, ptr noundef nonnull align 8 dereferenceable(200) %1189)
          to label %5777 unwind label %6069

5777:                                             ; preds = %5776
  invoke void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1193, ptr noundef nonnull %1194, ptr noundef nonnull %1196)
          to label %5778 unwind label %6071

5778:                                             ; preds = %5777
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1197) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1197, ptr noundef nonnull align 8 dereferenceable(32) %1178, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5779 unwind label %6073

5779:                                             ; preds = %5778
  invoke void @_ZN6Halide7FuncRefpLENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1192, ptr noundef nonnull align 8 dereferenceable(56) %1197, ptr noundef nonnull %1193)
          to label %5780 unwind label %6075

5780:                                             ; preds = %5779
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1192) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1197) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1197) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1193) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1196) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1194) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1195) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1195) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1199) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1199, ptr noundef nonnull align 8 dereferenceable(32) %1178, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5781 unwind label %6082

5781:                                             ; preds = %5780
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1200) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1200, ptr noundef nonnull align 8 dereferenceable(32) %1181, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5782 unwind label %6084

5782:                                             ; preds = %5781
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1198, ptr noundef nonnull align 8 dereferenceable(56) %1200, ptr noundef nonnull align 8 dereferenceable(56) %1199)
          to label %5783 unwind label %6086

5783:                                             ; preds = %5782
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1198) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1200) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1200) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1199) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1199) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1201, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %5784 unwind label %6090

5784:                                             ; preds = %5783
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1202, i32 noundef 0)
          to label %5785 unwind label %6092

5785:                                             ; preds = %5784
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1203, i32 noundef 10)
          to label %5786 unwind label %6094

5786:                                             ; preds = %5785
  %5787 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1181, ptr noundef nonnull %1201, ptr noundef nonnull %1202, ptr noundef nonnull %1203)
          to label %5788 unwind label %6096

5788:                                             ; preds = %5786
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1204, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5789 unwind label %6096

5789:                                             ; preds = %5788
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1205, i32 noundef 0)
          to label %5790 unwind label %6098

5790:                                             ; preds = %5789
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1206, i32 noundef 2048)
          to label %5791 unwind label %6100

5791:                                             ; preds = %5790
  %5792 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %5787, ptr noundef nonnull %1204, ptr noundef nonnull %1205, ptr noundef nonnull %1206)
          to label %5793 unwind label %6102

5793:                                             ; preds = %5791
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1206) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1205) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1204) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1203) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1202) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1201) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1208) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1209, ptr noundef nonnull align 8 dereferenceable(32) %1181) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %1208, ptr noundef nonnull %1209)
          to label %5794 unwind label %6109

5794:                                             ; preds = %5793
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %1207, ptr noundef nonnull align 8 dereferenceable(8) %1208, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %5795 unwind label %6111

5795:                                             ; preds = %5794
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %1207) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1208) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1209) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1208) #10
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %1189) #10
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %1189) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1181) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1181) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1178) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1178) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1210) #10
  %5796 = invoke { i64, ptr } @_ZN6Halide5FloatEii(i32 noundef 32, i32 noundef 1)
          to label %5797 unwind label %6119

5797:                                             ; preds = %5795
  %5798 = extractvalue { i64, ptr } %5796, 0
  %5799 = extractvalue { i64, ptr } %5796, 1
  invoke void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56) %1210, i64 %5798, ptr %5799, i32 noundef 2)
          to label %5800 unwind label %6119

5800:                                             ; preds = %5797
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %1211) #10
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %1211)
          to label %5801 unwind label %6121

5801:                                             ; preds = %5800
  %.ptr2428.1 = getelementptr inbounds i8, ptr %1211, i64 32
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2428.1)
          to label %5802 unwind label %.preheader2738.preheader

5802:                                             ; preds = %5801
  %.ptr2428.2 = getelementptr inbounds i8, ptr %1211, i64 64
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2428.2)
          to label %5803 unwind label %.preheader2738.preheader

5803:                                             ; preds = %5802
  %.ptr2428.3 = getelementptr inbounds i8, ptr %1211, i64 96
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2428.3)
          to label %5804 unwind label %.preheader2738.preheader

5804:                                             ; preds = %5803
  %.ptr2428.4 = getelementptr inbounds i8, ptr %1211, i64 128
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2428.4)
          to label %5805 unwind label %.preheader2738.preheader

5805:                                             ; preds = %5804
  %.ptr2428.5 = getelementptr inbounds i8, ptr %1211, i64 160
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2428.5)
          to label %5806 unwind label %.preheader2738.preheader

5806:                                             ; preds = %5805
  %.ptr2428.6 = getelementptr inbounds i8, ptr %1211, i64 192
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2428.6)
          to label %5807 unwind label %.preheader2738.preheader

5807:                                             ; preds = %5806
  %.ptr2428.7 = getelementptr inbounds i8, ptr %1211, i64 224
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2428.7)
          to label %5808 unwind label %.preheader2738.preheader

5808:                                             ; preds = %5807
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %1212) #10
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %1212)
          to label %5809 unwind label %6125

5809:                                             ; preds = %5808
  %.ptr2432.1 = getelementptr inbounds i8, ptr %1212, i64 32
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2432.1)
          to label %5810 unwind label %.preheader2736.preheader

5810:                                             ; preds = %5809
  %.ptr2432.2 = getelementptr inbounds i8, ptr %1212, i64 64
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2432.2)
          to label %5811 unwind label %.preheader2736.preheader

5811:                                             ; preds = %5810
  %.ptr2432.3 = getelementptr inbounds i8, ptr %1212, i64 96
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2432.3)
          to label %5812 unwind label %.preheader2736.preheader

5812:                                             ; preds = %5811
  %.ptr2432.4 = getelementptr inbounds i8, ptr %1212, i64 128
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2432.4)
          to label %5813 unwind label %.preheader2736.preheader

5813:                                             ; preds = %5812
  %.ptr2432.5 = getelementptr inbounds i8, ptr %1212, i64 160
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2432.5)
          to label %5814 unwind label %.preheader2736.preheader

5814:                                             ; preds = %5813
  %.ptr2432.6 = getelementptr inbounds i8, ptr %1212, i64 192
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2432.6)
          to label %5815 unwind label %.preheader2736.preheader

5815:                                             ; preds = %5814
  %.ptr2432.7 = getelementptr inbounds i8, ptr %1212, i64 224
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.ptr2432.7)
          to label %5816 unwind label %.preheader2736.preheader

5816:                                             ; preds = %5815
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1213) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1214) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1215) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1215) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1214, ptr noundef nonnull @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %1215)
          to label %5817 unwind label %6129

5817:                                             ; preds = %5816
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1213, ptr noundef nonnull align 8 dereferenceable(32) %1214)
          to label %5818 unwind label %6131

5818:                                             ; preds = %5817
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1214) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1215) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1215) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1214) #10
  invoke void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_EEENS_4ExprEDpOT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1217, ptr noundef nonnull align 8 dereferenceable(56) %1210, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5819 unwind label %6134

5819:                                             ; preds = %5818
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1218) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1218, ptr noundef nonnull align 8 dereferenceable(32) %1213, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %5820 unwind label %6136

5820:                                             ; preds = %5819
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1216, ptr noundef nonnull align 8 dereferenceable(56) %1218, ptr noundef nonnull %1217)
          to label %5821 unwind label %6138

5821:                                             ; preds = %5820
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1216) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1218) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1218) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1217) #10
  %5822 = getelementptr inbounds i8, ptr %1246, i64 16
  %5823 = getelementptr inbounds i8, ptr %1246, i64 16
  br label %6141

5824:                                             ; preds = %4655
  %5825 = landingpad { ptr, i32 }
          cleanup
  br label %5828

5826:                                             ; preds = %5678
  %5827 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1102) #10
  br label %5828

5828:                                             ; preds = %5826, %5824
  %.pn2319 = phi { ptr, i32 } [ %5827, %5826 ], [ %5825, %5824 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1103) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1103) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1102) #10
  br label %5922

5829:                                             ; preds = %5679
  %5830 = landingpad { ptr, i32 }
          cleanup
  br label %5896

5831:                                             ; preds = %5680
  %5832 = landingpad { ptr, i32 }
          cleanup
  br label %5895

5833:                                             ; preds = %5681
  %5834 = landingpad { ptr, i32 }
          cleanup
  br label %5894

5835:                                             ; preds = %5682
  %5836 = landingpad { ptr, i32 }
          cleanup
  br label %5893

5837:                                             ; preds = %5683
  %5838 = landingpad { ptr, i32 }
          cleanup
  br label %5892

5839:                                             ; preds = %5684
  %5840 = landingpad { ptr, i32 }
          cleanup
  br label %5891

5841:                                             ; preds = %5685
  %5842 = landingpad { ptr, i32 }
          cleanup
  br label %5890

5843:                                             ; preds = %5686
  %5844 = landingpad { ptr, i32 }
          cleanup
  br label %5889

5845:                                             ; preds = %5687
  %5846 = landingpad { ptr, i32 }
          cleanup
  br label %5888

5847:                                             ; preds = %5688
  %5848 = landingpad { ptr, i32 }
          cleanup
  br label %5887

5849:                                             ; preds = %5689
  %5850 = landingpad { ptr, i32 }
          cleanup
  br label %5886

5851:                                             ; preds = %5690
  %5852 = landingpad { ptr, i32 }
          cleanup
  br label %5885

5853:                                             ; preds = %5691
  %5854 = landingpad { ptr, i32 }
          cleanup
  br label %5884

5855:                                             ; preds = %5692
  %5856 = landingpad { ptr, i32 }
          cleanup
  br label %5883

5857:                                             ; preds = %5693
  %5858 = landingpad { ptr, i32 }
          cleanup
  br label %5882

5859:                                             ; preds = %5694
  %5860 = landingpad { ptr, i32 }
          cleanup
  br label %5881

5861:                                             ; preds = %5695
  %5862 = landingpad { ptr, i32 }
          cleanup
  br label %5880

5863:                                             ; preds = %5696
  %5864 = landingpad { ptr, i32 }
          cleanup
  br label %5879

5865:                                             ; preds = %5697
  %5866 = landingpad { ptr, i32 }
          cleanup
  br label %5878

5867:                                             ; preds = %5698
  %5868 = landingpad { ptr, i32 }
          cleanup
  br label %5877

5869:                                             ; preds = %5699
  %5870 = landingpad { ptr, i32 }
          cleanup
  br label %5876

5871:                                             ; preds = %5700
  %5872 = landingpad { ptr, i32 }
          cleanup
  br label %5875

5873:                                             ; preds = %5701
  %5874 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1126) #10
  br label %5875

5875:                                             ; preds = %5873, %5871
  %.pn2321 = phi { ptr, i32 } [ %5874, %5873 ], [ %5872, %5871 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1126) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1105) #10
  br label %5876

5876:                                             ; preds = %5875, %5869
  %.pn2321.pn = phi { ptr, i32 } [ %.pn2321, %5875 ], [ %5870, %5869 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1108) #10
  br label %5877

5877:                                             ; preds = %5876, %5867
  %.pn2321.pn.pn = phi { ptr, i32 } [ %.pn2321.pn, %5876 ], [ %5868, %5867 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1109) #10
  br label %5878

5878:                                             ; preds = %5877, %5865
  %.pn2321.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn, %5877 ], [ %5866, %5865 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1117) #10
  br label %5879

5879:                                             ; preds = %5878, %5863
  %.pn2321.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn, %5878 ], [ %5864, %5863 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1125) #10
  br label %5880

5880:                                             ; preds = %5879, %5861
  %.pn2321.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn.pn, %5879 ], [ %5862, %5861 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1124) #10
  br label %5881

5881:                                             ; preds = %5880, %5859
  %.pn2321.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn.pn.pn, %5880 ], [ %5860, %5859 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1118) #10
  br label %5882

5882:                                             ; preds = %5881, %5857
  %.pn2321.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn.pn.pn.pn, %5881 ], [ %5858, %5857 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1119) #10
  br label %5883

5883:                                             ; preds = %5882, %5855
  %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn.pn.pn.pn.pn, %5882 ], [ %5856, %5855 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1120) #10
  br label %5884

5884:                                             ; preds = %5883, %5853
  %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn, %5883 ], [ %5854, %5853 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1121) #10
  br label %5885

5885:                                             ; preds = %5884, %5851
  %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5884 ], [ %5852, %5851 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1123) #10
  br label %5886

5886:                                             ; preds = %5885, %5849
  %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5885 ], [ %5850, %5849 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1122) #10
  br label %5887

5887:                                             ; preds = %5886, %5847
  %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5886 ], [ %5848, %5847 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1120) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1117) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1110) #10
  br label %5888

5888:                                             ; preds = %5887, %5845
  %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5887 ], [ %5846, %5845 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1116) #10
  br label %5889

5889:                                             ; preds = %5888, %5843
  %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5888 ], [ %5844, %5843 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1115) #10
  br label %5890

5890:                                             ; preds = %5889, %5841
  %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5889 ], [ %5842, %5841 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1111) #10
  br label %5891

5891:                                             ; preds = %5890, %5839
  %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5890 ], [ %5840, %5839 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1112) #10
  br label %5892

5892:                                             ; preds = %5891, %5837
  %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5891 ], [ %5838, %5837 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1113) #10
  br label %5893

5893:                                             ; preds = %5892, %5835
  %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5892 ], [ %5836, %5835 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1114) #10
  br label %5894

5894:                                             ; preds = %5893, %5833
  %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5893 ], [ %5834, %5833 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1113) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1109) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1106) #10
  br label %5895

5895:                                             ; preds = %5894, %5831
  %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5894 ], [ %5832, %5831 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1107) #10
  br label %5896

5896:                                             ; preds = %5895, %5829
  %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5895 ], [ %5830, %5829 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1107) #10
  br label %5921

5897:                                             ; preds = %5702
  %5898 = landingpad { ptr, i32 }
          cleanup
  br label %5921

5899:                                             ; preds = %5703
  %5900 = landingpad { ptr, i32 }
          cleanup
  br label %5915

5901:                                             ; preds = %5704
  %5902 = landingpad { ptr, i32 }
          cleanup
  br label %5914

5903:                                             ; preds = %5707, %5705
  %5904 = landingpad { ptr, i32 }
          cleanup
  br label %5913

5905:                                             ; preds = %5708
  %5906 = landingpad { ptr, i32 }
          cleanup
  br label %5912

5907:                                             ; preds = %5709
  %5908 = landingpad { ptr, i32 }
          cleanup
  br label %5911

5909:                                             ; preds = %5710
  %5910 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1132) #10
  br label %5911

5911:                                             ; preds = %5909, %5907
  %.pn2344 = phi { ptr, i32 } [ %5910, %5909 ], [ %5908, %5907 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1131) #10
  br label %5912

5912:                                             ; preds = %5911, %5905
  %.pn2344.pn = phi { ptr, i32 } [ %.pn2344, %5911 ], [ %5906, %5905 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1130) #10
  br label %5913

5913:                                             ; preds = %5912, %5903
  %.pn2344.pn.pn = phi { ptr, i32 } [ %.pn2344.pn, %5912 ], [ %5904, %5903 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1129) #10
  br label %5914

5914:                                             ; preds = %5913, %5901
  %.pn2344.pn.pn.pn = phi { ptr, i32 } [ %.pn2344.pn.pn, %5913 ], [ %5902, %5901 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1128) #10
  br label %5915

5915:                                             ; preds = %5914, %5899
  %.pn2344.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2344.pn.pn.pn, %5914 ], [ %5900, %5899 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1127) #10
  br label %5921

5916:                                             ; preds = %5712
  %5917 = landingpad { ptr, i32 }
          cleanup
  br label %5920

5918:                                             ; preds = %5713
  %5919 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1134) #10
  br label %5920

5920:                                             ; preds = %5918, %5916
  %.pn2350 = phi { ptr, i32 } [ %5919, %5918 ], [ %5917, %5916 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1135) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1134) #10
  br label %5921

5921:                                             ; preds = %5920, %5915, %5897, %5896
  %.pn2350.pn = phi { ptr, i32 } [ %.pn2350, %5920 ], [ %.pn2344.pn.pn.pn.pn, %5915 ], [ %5898, %5897 ], [ %.pn2321.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5896 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1101) #10
  br label %5922

5922:                                             ; preds = %5921, %5828
  %.pn2350.pn.pn = phi { ptr, i32 } [ %.pn2350.pn, %5921 ], [ %.pn2319, %5828 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1101) #10
  br label %.loopexit2730.loopexit

.loopexit2730.loopexit:                           ; preds = %5922, %5677, %5616, %5610, %5609
  %.pn2610.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2610.pn.pn.pn.pn.pn.pn.pn, %5677 ], [ %.pn2350.pn.pn, %5922 ], [ %.pn2317, %5616 ], [ %5611, %5610 ], [ %.pn2315, %5609 ]
  %5923 = getelementptr inbounds i8, ptr %1084, i64 224
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5923) #10
  %5924 = getelementptr inbounds i8, ptr %1084, i64 192
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5924) #10
  %5925 = getelementptr inbounds i8, ptr %1084, i64 160
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5925) #10
  %5926 = getelementptr inbounds i8, ptr %1084, i64 128
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5926) #10
  %5927 = getelementptr inbounds i8, ptr %1084, i64 96
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5927) #10
  %5928 = getelementptr inbounds i8, ptr %1084, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5928) #10
  %5929 = getelementptr inbounds i8, ptr %1084, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5929) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1084) #10
  br label %.loopexit2730

.loopexit2730:                                    ; preds = %.preheader2742, %5601, %.loopexit2730.loopexit
  %.pn2610.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %lpad.thr_comm.split-lp2918, %5601 ], [ %.pn2610.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2730.loopexit ], [ %lpad.thr_comm2917, %.preheader2742 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %1084) #10
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1083) #10
  br label %5930

5930:                                             ; preds = %.loopexit2730, %5599
  %.pn2610.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2610.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2730 ], [ %5600, %5599 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1083) #10
  br label %6795

5931:                                             ; preds = %5714
  %5932 = landingpad { ptr, i32 }
          cleanup
  br label %5935

5933:                                             ; preds = %5722
  %5934 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1137) #10
  br label %5935

5935:                                             ; preds = %5933, %5931
  %.pn2354 = phi { ptr, i32 } [ %5934, %5933 ], [ %5932, %5931 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1138) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1138) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1137) #10
  br label %6034

5936:                                             ; preds = %5723
  %5937 = landingpad { ptr, i32 }
          cleanup
  br label %5940

5938:                                             ; preds = %5724
  %5939 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1140) #10
  br label %5940

5940:                                             ; preds = %5938, %5936
  %.pn2356 = phi { ptr, i32 } [ %5939, %5938 ], [ %5937, %5936 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1141) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1141) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1140) #10
  br label %6033

5941:                                             ; preds = %5725
  %5942 = landingpad { ptr, i32 }
          cleanup
  br label %5945

5943:                                             ; preds = %5726
  %5944 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1143) #10
  br label %5945

5945:                                             ; preds = %5943, %5941
  %.pn2358 = phi { ptr, i32 } [ %5944, %5943 ], [ %5942, %5941 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1144) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1144) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1143) #10
  br label %6032

5946:                                             ; preds = %5727
  %5947 = landingpad { ptr, i32 }
          cleanup
  br label %6031

5948:                                             ; preds = %5728
  %5949 = landingpad { ptr, i32 }
          cleanup
  br label %5958

5950:                                             ; preds = %5729
  %5951 = landingpad { ptr, i32 }
          cleanup
  br label %5957

5952:                                             ; preds = %5730
  %5953 = landingpad { ptr, i32 }
          cleanup
  br label %5956

5954:                                             ; preds = %5731
  %5955 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1149) #10
  br label %5956

5956:                                             ; preds = %5954, %5952
  %.pn2360 = phi { ptr, i32 } [ %5955, %5954 ], [ %5953, %5952 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1149) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1146) #10
  br label %5957

5957:                                             ; preds = %5956, %5950
  %.pn2360.pn = phi { ptr, i32 } [ %.pn2360, %5956 ], [ %5951, %5950 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1148) #10
  br label %5958

5958:                                             ; preds = %5957, %5948
  %.pn2360.pn.pn = phi { ptr, i32 } [ %.pn2360.pn, %5957 ], [ %5949, %5948 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1147) #10
  br label %6031

5959:                                             ; preds = %5732
  %5960 = landingpad { ptr, i32 }
          cleanup
  br label %5969

5961:                                             ; preds = %5733
  %5962 = landingpad { ptr, i32 }
          cleanup
  br label %5968

5963:                                             ; preds = %5734
  %5964 = landingpad { ptr, i32 }
          cleanup
  br label %5967

5965:                                             ; preds = %5735
  %5966 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1154) #10
  br label %5967

5967:                                             ; preds = %5965, %5963
  %.pn2364 = phi { ptr, i32 } [ %5966, %5965 ], [ %5964, %5963 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1154) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1151) #10
  br label %5968

5968:                                             ; preds = %5967, %5961
  %.pn2364.pn = phi { ptr, i32 } [ %.pn2364, %5967 ], [ %5962, %5961 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1153) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1152) #10
  br label %5969

5969:                                             ; preds = %5968, %5959
  %.pn2364.pn.pn = phi { ptr, i32 } [ %.pn2364.pn, %5968 ], [ %5960, %5959 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1151) #10
  br label %6031

5970:                                             ; preds = %5736
  %5971 = landingpad { ptr, i32 }
          cleanup
  br label %6030

5972:                                             ; preds = %5737
  %5973 = landingpad { ptr, i32 }
          cleanup
  br label %5976

5974:                                             ; preds = %5738
  %5975 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1157) #10
  br label %5976

5976:                                             ; preds = %5974, %5972
  %.pn2368 = phi { ptr, i32 } [ %5975, %5974 ], [ %5973, %5972 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1156) #10
  br label %6030

5977:                                             ; preds = %5750, %5739
  %5978 = landingpad { ptr, i32 }
          cleanup
  br label %6029

5979:                                             ; preds = %5740
  %5980 = landingpad { ptr, i32 }
          cleanup
  br label %5983

5981:                                             ; preds = %5741
  %5982 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1160) #10
  br label %5983

5983:                                             ; preds = %5981, %5979
  %.pn2370 = phi { ptr, i32 } [ %5982, %5981 ], [ %5980, %5979 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1160) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1159) #10
  br label %6029

5984:                                             ; preds = %5742
  %5985 = landingpad { ptr, i32 }
          cleanup
  br label %6006

5986:                                             ; preds = %5743
  %5987 = landingpad { ptr, i32 }
          cleanup
  br label %6005

5988:                                             ; preds = %5744
  %5989 = landingpad { ptr, i32 }
          cleanup
  br label %6004

5990:                                             ; preds = %5745
  %5991 = landingpad { ptr, i32 }
          cleanup
  br label %6003

5992:                                             ; preds = %5746
  %5993 = landingpad { ptr, i32 }
          cleanup
  br label %6002

5994:                                             ; preds = %5747
  %5995 = landingpad { ptr, i32 }
          cleanup
  br label %6001

5996:                                             ; preds = %5748
  %5997 = landingpad { ptr, i32 }
          cleanup
  br label %6000

5998:                                             ; preds = %5749
  %5999 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1168) #10
  br label %6000

6000:                                             ; preds = %5998, %5996
  %.pn2372 = phi { ptr, i32 } [ %5999, %5998 ], [ %5997, %5996 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1168) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1162) #10
  br label %6001

6001:                                             ; preds = %6000, %5994
  %.pn2372.pn = phi { ptr, i32 } [ %.pn2372, %6000 ], [ %5995, %5994 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1167) #10
  br label %6002

6002:                                             ; preds = %6001, %5992
  %.pn2372.pn.pn = phi { ptr, i32 } [ %.pn2372.pn, %6001 ], [ %5993, %5992 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1163) #10
  br label %6003

6003:                                             ; preds = %6002, %5990
  %.pn2372.pn.pn.pn = phi { ptr, i32 } [ %.pn2372.pn.pn, %6002 ], [ %5991, %5990 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1166) #10
  br label %6004

6004:                                             ; preds = %6003, %5988
  %.pn2372.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2372.pn.pn.pn, %6003 ], [ %5989, %5988 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1164) #10
  br label %6005

6005:                                             ; preds = %6004, %5986
  %.pn2372.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2372.pn.pn.pn.pn, %6004 ], [ %5987, %5986 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1165) #10
  br label %6006

6006:                                             ; preds = %6005, %5984
  %.pn2372.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2372.pn.pn.pn.pn.pn, %6005 ], [ %5985, %5984 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1165) #10
  br label %6029

6007:                                             ; preds = %5751
  %6008 = landingpad { ptr, i32 }
          cleanup
  br label %6023

6009:                                             ; preds = %5752
  %6010 = landingpad { ptr, i32 }
          cleanup
  br label %6022

6011:                                             ; preds = %5755, %5753
  %6012 = landingpad { ptr, i32 }
          cleanup
  br label %6021

6013:                                             ; preds = %5756
  %6014 = landingpad { ptr, i32 }
          cleanup
  br label %6020

6015:                                             ; preds = %5757
  %6016 = landingpad { ptr, i32 }
          cleanup
  br label %6019

6017:                                             ; preds = %5758
  %6018 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1174) #10
  br label %6019

6019:                                             ; preds = %6017, %6015
  %.pn2380 = phi { ptr, i32 } [ %6018, %6017 ], [ %6016, %6015 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1173) #10
  br label %6020

6020:                                             ; preds = %6019, %6013
  %.pn2380.pn = phi { ptr, i32 } [ %.pn2380, %6019 ], [ %6014, %6013 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1172) #10
  br label %6021

6021:                                             ; preds = %6020, %6011
  %.pn2380.pn.pn = phi { ptr, i32 } [ %.pn2380.pn, %6020 ], [ %6012, %6011 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1171) #10
  br label %6022

6022:                                             ; preds = %6021, %6009
  %.pn2380.pn.pn.pn = phi { ptr, i32 } [ %.pn2380.pn.pn, %6021 ], [ %6010, %6009 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1170) #10
  br label %6023

6023:                                             ; preds = %6022, %6007
  %.pn2380.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2380.pn.pn.pn, %6022 ], [ %6008, %6007 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1169) #10
  br label %6029

6024:                                             ; preds = %5760
  %6025 = landingpad { ptr, i32 }
          cleanup
  br label %6028

6026:                                             ; preds = %5761
  %6027 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1176) #10
  br label %6028

6028:                                             ; preds = %6026, %6024
  %.pn2386 = phi { ptr, i32 } [ %6027, %6026 ], [ %6025, %6024 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1177) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1176) #10
  br label %6029

6029:                                             ; preds = %6028, %6023, %6006, %5983, %5977
  %.pn2386.pn = phi { ptr, i32 } [ %.pn2386, %6028 ], [ %.pn2380.pn.pn.pn.pn, %6023 ], [ %5978, %5977 ], [ %.pn2372.pn.pn.pn.pn.pn.pn, %6006 ], [ %.pn2370, %5983 ]
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %1155) #10
  br label %6030

6030:                                             ; preds = %6029, %5976, %5970
  %.pn2386.pn.pn = phi { ptr, i32 } [ %.pn2386.pn, %6029 ], [ %.pn2368, %5976 ], [ %5971, %5970 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %1155) #10
  br label %6031

6031:                                             ; preds = %6030, %5969, %5958, %5946
  %.pn2386.pn.pn.pn = phi { ptr, i32 } [ %.pn2386.pn.pn, %6030 ], [ %.pn2364.pn.pn, %5969 ], [ %.pn2360.pn.pn, %5958 ], [ %5947, %5946 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1142) #10
  br label %6032

6032:                                             ; preds = %6031, %5945
  %.pn2386.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2386.pn.pn.pn, %6031 ], [ %.pn2358, %5945 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1142) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1139) #10
  br label %6033

6033:                                             ; preds = %6032, %5940
  %.pn2386.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2386.pn.pn.pn.pn, %6032 ], [ %.pn2356, %5940 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1139) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1136) #10
  br label %6034

6034:                                             ; preds = %6033, %5935
  %.pn2386.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2386.pn.pn.pn.pn.pn, %6033 ], [ %.pn2354, %5935 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1136) #10
  br label %6795

6035:                                             ; preds = %5762
  %6036 = landingpad { ptr, i32 }
          cleanup
  br label %6039

6037:                                             ; preds = %5763
  %6038 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1179) #10
  br label %6039

6039:                                             ; preds = %6037, %6035
  %.pn2394 = phi { ptr, i32 } [ %6038, %6037 ], [ %6036, %6035 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1180) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1180) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1179) #10
  br label %6118

6040:                                             ; preds = %5764
  %6041 = landingpad { ptr, i32 }
          cleanup
  br label %6044

6042:                                             ; preds = %5765
  %6043 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1182) #10
  br label %6044

6044:                                             ; preds = %6042, %6040
  %.pn2396 = phi { ptr, i32 } [ %6043, %6042 ], [ %6041, %6040 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1183) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1183) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1182) #10
  br label %6117

6045:                                             ; preds = %5766
  %6046 = landingpad { ptr, i32 }
          cleanup
  br label %6116

6047:                                             ; preds = %5767
  %6048 = landingpad { ptr, i32 }
          cleanup
  br label %6057

6049:                                             ; preds = %5768
  %6050 = landingpad { ptr, i32 }
          cleanup
  br label %6056

6051:                                             ; preds = %5769
  %6052 = landingpad { ptr, i32 }
          cleanup
  br label %6055

6053:                                             ; preds = %5770
  %6054 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1188) #10
  br label %6055

6055:                                             ; preds = %6053, %6051
  %.pn2398 = phi { ptr, i32 } [ %6054, %6053 ], [ %6052, %6051 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1188) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1185) #10
  br label %6056

6056:                                             ; preds = %6055, %6049
  %.pn2398.pn = phi { ptr, i32 } [ %.pn2398, %6055 ], [ %6050, %6049 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1187) #10
  br label %6057

6057:                                             ; preds = %6056, %6047
  %.pn2398.pn.pn = phi { ptr, i32 } [ %.pn2398.pn, %6056 ], [ %6048, %6047 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1186) #10
  br label %6116

6058:                                             ; preds = %5771
  %6059 = landingpad { ptr, i32 }
          cleanup
  br label %6115

6060:                                             ; preds = %5772
  %6061 = landingpad { ptr, i32 }
          cleanup
  br label %6064

6062:                                             ; preds = %5773
  %6063 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1191) #10
  br label %6064

6064:                                             ; preds = %6062, %6060
  %.pn2402 = phi { ptr, i32 } [ %6063, %6062 ], [ %6061, %6060 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1190) #10
  br label %6115

6065:                                             ; preds = %5774
  %6066 = landingpad { ptr, i32 }
          cleanup
  br label %6081

6067:                                             ; preds = %5775
  %6068 = landingpad { ptr, i32 }
          cleanup
  br label %6080

6069:                                             ; preds = %5776
  %6070 = landingpad { ptr, i32 }
          cleanup
  br label %6079

6071:                                             ; preds = %5777
  %6072 = landingpad { ptr, i32 }
          cleanup
  br label %6078

6073:                                             ; preds = %5778
  %6074 = landingpad { ptr, i32 }
          cleanup
  br label %6077

6075:                                             ; preds = %5779
  %6076 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1197) #10
  br label %6077

6077:                                             ; preds = %6075, %6073
  %.pn2404 = phi { ptr, i32 } [ %6076, %6075 ], [ %6074, %6073 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1197) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1193) #10
  br label %6078

6078:                                             ; preds = %6077, %6071
  %.pn2404.pn = phi { ptr, i32 } [ %.pn2404, %6077 ], [ %6072, %6071 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1196) #10
  br label %6079

6079:                                             ; preds = %6078, %6069
  %.pn2404.pn.pn = phi { ptr, i32 } [ %.pn2404.pn, %6078 ], [ %6070, %6069 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1194) #10
  br label %6080

6080:                                             ; preds = %6079, %6067
  %.pn2404.pn.pn.pn = phi { ptr, i32 } [ %.pn2404.pn.pn, %6079 ], [ %6068, %6067 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1195) #10
  br label %6081

6081:                                             ; preds = %6080, %6065
  %.pn2404.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2404.pn.pn.pn, %6080 ], [ %6066, %6065 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1195) #10
  br label %6114

6082:                                             ; preds = %5780
  %6083 = landingpad { ptr, i32 }
          cleanup
  br label %6089

6084:                                             ; preds = %5781
  %6085 = landingpad { ptr, i32 }
          cleanup
  br label %6088

6086:                                             ; preds = %5782
  %6087 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1200) #10
  br label %6088

6088:                                             ; preds = %6086, %6084
  %.pn2410 = phi { ptr, i32 } [ %6087, %6086 ], [ %6085, %6084 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1200) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1199) #10
  br label %6089

6089:                                             ; preds = %6088, %6082
  %.pn2410.pn = phi { ptr, i32 } [ %.pn2410, %6088 ], [ %6083, %6082 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1199) #10
  br label %6114

6090:                                             ; preds = %5783
  %6091 = landingpad { ptr, i32 }
          cleanup
  br label %6114

6092:                                             ; preds = %5784
  %6093 = landingpad { ptr, i32 }
          cleanup
  br label %6108

6094:                                             ; preds = %5785
  %6095 = landingpad { ptr, i32 }
          cleanup
  br label %6107

6096:                                             ; preds = %5788, %5786
  %6097 = landingpad { ptr, i32 }
          cleanup
  br label %6106

6098:                                             ; preds = %5789
  %6099 = landingpad { ptr, i32 }
          cleanup
  br label %6105

6100:                                             ; preds = %5790
  %6101 = landingpad { ptr, i32 }
          cleanup
  br label %6104

6102:                                             ; preds = %5791
  %6103 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1206) #10
  br label %6104

6104:                                             ; preds = %6102, %6100
  %.pn2413 = phi { ptr, i32 } [ %6103, %6102 ], [ %6101, %6100 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1205) #10
  br label %6105

6105:                                             ; preds = %6104, %6098
  %.pn2413.pn = phi { ptr, i32 } [ %.pn2413, %6104 ], [ %6099, %6098 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1204) #10
  br label %6106

6106:                                             ; preds = %6105, %6096
  %.pn2413.pn.pn = phi { ptr, i32 } [ %.pn2413.pn, %6105 ], [ %6097, %6096 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1203) #10
  br label %6107

6107:                                             ; preds = %6106, %6094
  %.pn2413.pn.pn.pn = phi { ptr, i32 } [ %.pn2413.pn.pn, %6106 ], [ %6095, %6094 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1202) #10
  br label %6108

6108:                                             ; preds = %6107, %6092
  %.pn2413.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2413.pn.pn.pn, %6107 ], [ %6093, %6092 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1201) #10
  br label %6114

6109:                                             ; preds = %5793
  %6110 = landingpad { ptr, i32 }
          cleanup
  br label %6113

6111:                                             ; preds = %5794
  %6112 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1208) #10
  br label %6113

6113:                                             ; preds = %6111, %6109
  %.pn2419 = phi { ptr, i32 } [ %6112, %6111 ], [ %6110, %6109 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1209) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1208) #10
  br label %6114

6114:                                             ; preds = %6113, %6108, %6090, %6089, %6081
  %.pn2419.pn = phi { ptr, i32 } [ %.pn2419, %6113 ], [ %.pn2413.pn.pn.pn.pn, %6108 ], [ %6091, %6090 ], [ %.pn2410.pn, %6089 ], [ %.pn2404.pn.pn.pn.pn, %6081 ]
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %1189) #10
  br label %6115

6115:                                             ; preds = %6114, %6064, %6058
  %.pn2419.pn.pn = phi { ptr, i32 } [ %.pn2419.pn, %6114 ], [ %.pn2402, %6064 ], [ %6059, %6058 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %1189) #10
  br label %6116

6116:                                             ; preds = %6115, %6057, %6045
  %.pn2419.pn.pn.pn = phi { ptr, i32 } [ %.pn2419.pn.pn, %6115 ], [ %.pn2398.pn.pn, %6057 ], [ %6046, %6045 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1181) #10
  br label %6117

6117:                                             ; preds = %6116, %6044
  %.pn2419.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2419.pn.pn.pn, %6116 ], [ %.pn2396, %6044 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1181) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1178) #10
  br label %6118

6118:                                             ; preds = %6117, %6039
  %.pn2419.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2419.pn.pn.pn.pn, %6117 ], [ %.pn2394, %6039 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1178) #10
  br label %6795

6119:                                             ; preds = %5797, %5795
  %6120 = landingpad { ptr, i32 }
          cleanup
  br label %6550

6121:                                             ; preds = %5800
  %lpad.thr_comm.split-lp2927 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2731

.preheader2738.preheader:                         ; preds = %5801, %5802, %5803, %5804, %5805, %5806, %5807
  %.ptr2428.lcssa.ph = phi ptr [ %.ptr2428.7, %5807 ], [ %.ptr2428.6, %5806 ], [ %.ptr2428.5, %5805 ], [ %.ptr2428.4, %5804 ], [ %.ptr2428.3, %5803 ], [ %.ptr2428.2, %5802 ], [ %.ptr2428.1, %5801 ]
  %lpad.thr_comm2926 = landingpad { ptr, i32 }
          cleanup
  br label %.preheader2738

.preheader2738:                                   ; preds = %.preheader2738.preheader, %.preheader2738
  %6122 = phi ptr [ %6123, %.preheader2738 ], [ %.ptr2428.lcssa.ph, %.preheader2738.preheader ]
  %6123 = getelementptr inbounds i8, ptr %6122, i64 -32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6123) #10
  %6124 = icmp eq ptr %6123, %1211
  br i1 %6124, label %.loopexit2731, label %.preheader2738

6125:                                             ; preds = %5808
  %lpad.thr_comm.split-lp2936 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2732

.preheader2736.preheader:                         ; preds = %5809, %5810, %5811, %5812, %5813, %5814, %5815
  %.ptr2432.lcssa.ph = phi ptr [ %.ptr2432.7, %5815 ], [ %.ptr2432.6, %5814 ], [ %.ptr2432.5, %5813 ], [ %.ptr2432.4, %5812 ], [ %.ptr2432.3, %5811 ], [ %.ptr2432.2, %5810 ], [ %.ptr2432.1, %5809 ]
  %lpad.thr_comm2935 = landingpad { ptr, i32 }
          cleanup
  br label %.preheader2736

.preheader2736:                                   ; preds = %.preheader2736.preheader, %.preheader2736
  %6126 = phi ptr [ %6127, %.preheader2736 ], [ %.ptr2432.lcssa.ph, %.preheader2736.preheader ]
  %6127 = getelementptr inbounds i8, ptr %6126, i64 -32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6127) #10
  %6128 = icmp eq ptr %6127, %1212
  br i1 %6128, label %.loopexit2732, label %.preheader2736

6129:                                             ; preds = %5816
  %6130 = landingpad { ptr, i32 }
          cleanup
  br label %6133

6131:                                             ; preds = %5817
  %6132 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1214) #10
  br label %6133

6133:                                             ; preds = %6131, %6129
  %.pn2434 = phi { ptr, i32 } [ %6132, %6131 ], [ %6130, %6129 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1215) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1215) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1214) #10
  br label %.loopexit2732.loopexit

6134:                                             ; preds = %5818
  %6135 = landingpad { ptr, i32 }
          cleanup
  br label %6535

6136:                                             ; preds = %5819
  %6137 = landingpad { ptr, i32 }
          cleanup
  br label %6140

6138:                                             ; preds = %5820
  %6139 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1218) #10
  br label %6140

6140:                                             ; preds = %6138, %6136
  %.pn2436 = phi { ptr, i32 } [ %6139, %6138 ], [ %6137, %6136 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1218) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1217) #10
  br label %6535

6141:                                             ; preds = %5821, %6177
  %indvars.iv2858 = phi i64 [ 0, %5821 ], [ %indvars.iv.next2859, %6177 ]
  %.012692796 = phi i32 [ 2048, %5821 ], [ %6179, %6177 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1219) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1220) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1221) #10
  %6142 = trunc nuw nsw i64 %indvars.iv2858 to i32
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %1221, i32 noundef %6142) #10
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %1220, ptr noundef nonnull @.str.30, ptr noundef nonnull align 8 dereferenceable(32) %1221)
          to label %6143 unwind label %6180

6143:                                             ; preds = %6141
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1219, ptr noundef nonnull align 8 dereferenceable(32) %1220)
          to label %6144 unwind label %6182

6144:                                             ; preds = %6143
  %6145 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1211, i64 0, i64 %indvars.iv2858
  %6146 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4FuncaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %6145, ptr noundef nonnull align 8 dereferenceable(32) %1219) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1219) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1220) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1221) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1221) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1220) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1219) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1222) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1223) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1224) #10
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %1224, i32 noundef %6142) #10
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %1223, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(32) %1224)
          to label %6147 unwind label %6185

6147:                                             ; preds = %6144
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1222, ptr noundef nonnull align 8 dereferenceable(32) %1223)
          to label %6148 unwind label %6187

6148:                                             ; preds = %6147
  %6149 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1212, i64 0, i64 %indvars.iv2858
  %6150 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4FuncaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %6149, ptr noundef nonnull align 8 dereferenceable(32) %1222) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1222) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1223) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1224) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1224) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1223) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1222) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1228) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1231, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %6151 unwind label %6190

6151:                                             ; preds = %6148
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1230, i32 noundef 2, ptr noundef nonnull %1231)
          to label %6152 unwind label %6192

6152:                                             ; preds = %6151
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1229, ptr noundef nonnull %1230, i32 noundef 10)
          to label %6153 unwind label %6194

6153:                                             ; preds = %6152
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1232) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1234, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6154 unwind label %6196

6154:                                             ; preds = %6153
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1233, i32 noundef 2, ptr noundef nonnull %1234)
          to label %6155 unwind label %6198

6155:                                             ; preds = %6154
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1232, ptr noundef nonnull %1233, i32 noundef 10)
          to label %6156 unwind label %6200

6156:                                             ; preds = %6155
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1228, ptr noundef nonnull align 8 dereferenceable(32) %1213, ptr noundef nonnull %1229, ptr noundef nonnull align 8 dereferenceable(8) %1232)
          to label %6157 unwind label %6202

6157:                                             ; preds = %6156
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1227, ptr noundef nonnull align 8 dereferenceable(56) %1228)
          to label %6158 unwind label %6204

6158:                                             ; preds = %6157
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1236) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1239, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %6159 unwind label %6206

6159:                                             ; preds = %6158
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1238, i32 noundef 2, ptr noundef nonnull %1239)
          to label %6160 unwind label %6208

6160:                                             ; preds = %6159
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1237, ptr noundef nonnull %1238, i32 noundef 10)
          to label %6161 unwind label %6210

6161:                                             ; preds = %6160
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1240) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1242, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6162 unwind label %6212

6162:                                             ; preds = %6161
  invoke void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1241, i32 noundef 2, ptr noundef nonnull %1242)
          to label %6163 unwind label %6214

6163:                                             ; preds = %6162
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1240, ptr noundef nonnull %1241, i32 noundef 10)
          to label %6164 unwind label %6216

6164:                                             ; preds = %6163
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1236, ptr noundef nonnull align 8 dereferenceable(32) %1213, ptr noundef nonnull %1237, ptr noundef nonnull align 8 dereferenceable(8) %1240)
          to label %6165 unwind label %6218

6165:                                             ; preds = %6164
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1235, ptr noundef nonnull align 8 dereferenceable(56) %1236)
          to label %6166 unwind label %6220

6166:                                             ; preds = %6165
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1226, ptr noundef nonnull %1227, ptr noundef nonnull %1235)
          to label %6167 unwind label %6222

6167:                                             ; preds = %6166
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1243) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1243, ptr noundef nonnull align 8 dereferenceable(32) %6149, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6168 unwind label %6224

6168:                                             ; preds = %6167
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1225, ptr noundef nonnull align 8 dereferenceable(56) %1243, ptr noundef nonnull %1226)
          to label %6169 unwind label %6226

6169:                                             ; preds = %6168
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1225) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1243) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1243) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1226) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1235) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1236) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1240) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1241) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1242) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1240) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1237) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1238) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1239) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1236) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1227) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1228) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1232) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1233) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1234) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1232) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1229) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1230) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1231) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1228) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1244) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %1245) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1246) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1247) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1247, i32 noundef 0)
          to label %6170 unwind label %.thread

6170:                                             ; preds = %6169
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1248) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1248, i32 noundef %.012692796)
          to label %6171 unwind label %.thread2720

6171:                                             ; preds = %6170
  invoke void @_ZN6Halide5RangeC1ERKNS_4ExprES3_(ptr noundef nonnull align 8 dereferenceable(16) %1246, ptr noundef nonnull align 8 dereferenceable(8) %1247, ptr noundef nonnull align 8 dereferenceable(8) %1248)
          to label %6172 unwind label %6248

6172:                                             ; preds = %6171
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1249) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1249, i32 noundef 0)
          to label %6173 unwind label %6250

6173:                                             ; preds = %6172
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1250) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1250, i32 noundef %.012692796)
          to label %6174 unwind label %6252

6174:                                             ; preds = %6173
  invoke void @_ZN6Halide5RangeC1ERKNS_4ExprES3_(ptr noundef nonnull align 8 dereferenceable(16) %5822, ptr noundef nonnull align 8 dereferenceable(8) %1249, ptr noundef nonnull align 8 dereferenceable(8) %1250)
          to label %6175 unwind label %6254

6175:                                             ; preds = %6174
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1251) #10
  call void @_ZNSaIN6Halide5RangeEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1251) #10
  invoke void @_ZNSt6vectorIN6Halide5RangeESaIS1_EEC2ESt16initializer_listIS1_ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %1245, ptr nonnull %1246, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %1251)
          to label %6176 unwind label %6256

6176:                                             ; preds = %6175
  invoke void @_ZN6Halide18BoundaryConditions11repeat_edgeERKNS_4FuncERKSt6vectorINS_5RangeESaIS5_EE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Func") align 8 %1244, ptr noundef nonnull align 8 dereferenceable(32) %6149, ptr noundef nonnull align 8 dereferenceable(24) %1245)
          to label %6177 unwind label %6258

6177:                                             ; preds = %6176
  %6178 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4FuncaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %1213, ptr noundef nonnull align 8 dereferenceable(32) %1244) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1244) #10
  call void @_ZNSt6vectorIN6Halide5RangeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1245) #10
  call void @_ZNSt15__new_allocatorIN6Halide5RangeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1251) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1251) #10
  call void @_ZN6Halide5RangeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5823) #10
  call void @_ZN6Halide5RangeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1246) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1250) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1250) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1249) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1249) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1248) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1248) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1247) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1247) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1246) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1245) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1244) #10
  %6179 = sdiv i32 %.012692796, 2
  %indvars.iv.next2859 = add nuw nsw i64 %indvars.iv2858, 1
  %exitcond2861.not = icmp eq i64 %indvars.iv.next2859, 4
  br i1 %exitcond2861.not, label %.preheader2735, label %6141, !llvm.loop !21

6180:                                             ; preds = %6141
  %6181 = landingpad { ptr, i32 }
          cleanup
  br label %6184

6182:                                             ; preds = %6143
  %6183 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1220) #10
  br label %6184

6184:                                             ; preds = %6182, %6180
  %.pn2570 = phi { ptr, i32 } [ %6183, %6182 ], [ %6181, %6180 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1221) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1221) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1220) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1219) #10
  br label %6535

6185:                                             ; preds = %6144
  %6186 = landingpad { ptr, i32 }
          cleanup
  br label %6189

6187:                                             ; preds = %6147
  %6188 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1223) #10
  br label %6189

6189:                                             ; preds = %6187, %6185
  %.pn2572 = phi { ptr, i32 } [ %6188, %6187 ], [ %6186, %6185 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1224) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1224) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1223) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1222) #10
  br label %6535

6190:                                             ; preds = %6148
  %6191 = landingpad { ptr, i32 }
          cleanup
  br label %6245

6192:                                             ; preds = %6151
  %6193 = landingpad { ptr, i32 }
          cleanup
  br label %6244

6194:                                             ; preds = %6152
  %6195 = landingpad { ptr, i32 }
          cleanup
  br label %6243

6196:                                             ; preds = %6153
  %6197 = landingpad { ptr, i32 }
          cleanup
  br label %6242

6198:                                             ; preds = %6154
  %6199 = landingpad { ptr, i32 }
          cleanup
  br label %6241

6200:                                             ; preds = %6155
  %6201 = landingpad { ptr, i32 }
          cleanup
  br label %6240

6202:                                             ; preds = %6156
  %6203 = landingpad { ptr, i32 }
          cleanup
  br label %6239

6204:                                             ; preds = %6157
  %6205 = landingpad { ptr, i32 }
          cleanup
  br label %6238

6206:                                             ; preds = %6158
  %6207 = landingpad { ptr, i32 }
          cleanup
  br label %6237

6208:                                             ; preds = %6159
  %6209 = landingpad { ptr, i32 }
          cleanup
  br label %6236

6210:                                             ; preds = %6160
  %6211 = landingpad { ptr, i32 }
          cleanup
  br label %6235

6212:                                             ; preds = %6161
  %6213 = landingpad { ptr, i32 }
          cleanup
  br label %6234

6214:                                             ; preds = %6162
  %6215 = landingpad { ptr, i32 }
          cleanup
  br label %6233

6216:                                             ; preds = %6163
  %6217 = landingpad { ptr, i32 }
          cleanup
  br label %6232

6218:                                             ; preds = %6164
  %6219 = landingpad { ptr, i32 }
          cleanup
  br label %6231

6220:                                             ; preds = %6165
  %6221 = landingpad { ptr, i32 }
          cleanup
  br label %6230

6222:                                             ; preds = %6166
  %6223 = landingpad { ptr, i32 }
          cleanup
  br label %6229

6224:                                             ; preds = %6167
  %6225 = landingpad { ptr, i32 }
          cleanup
  br label %6228

6226:                                             ; preds = %6168
  %6227 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1243) #10
  br label %6228

6228:                                             ; preds = %6226, %6224
  %.pn2574 = phi { ptr, i32 } [ %6227, %6226 ], [ %6225, %6224 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1243) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1226) #10
  br label %6229

6229:                                             ; preds = %6228, %6222
  %.pn2574.pn = phi { ptr, i32 } [ %.pn2574, %6228 ], [ %6223, %6222 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1235) #10
  br label %6230

6230:                                             ; preds = %6229, %6220
  %.pn2574.pn.pn = phi { ptr, i32 } [ %.pn2574.pn, %6229 ], [ %6221, %6220 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1236) #10
  br label %6231

6231:                                             ; preds = %6230, %6218
  %.pn2574.pn.pn.pn = phi { ptr, i32 } [ %.pn2574.pn.pn, %6230 ], [ %6219, %6218 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1240) #10
  br label %6232

6232:                                             ; preds = %6231, %6216
  %.pn2574.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2574.pn.pn.pn, %6231 ], [ %6217, %6216 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1241) #10
  br label %6233

6233:                                             ; preds = %6232, %6214
  %.pn2574.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2574.pn.pn.pn.pn, %6232 ], [ %6215, %6214 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1242) #10
  br label %6234

6234:                                             ; preds = %6233, %6212
  %.pn2574.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2574.pn.pn.pn.pn.pn, %6233 ], [ %6213, %6212 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1240) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1237) #10
  br label %6235

6235:                                             ; preds = %6234, %6210
  %.pn2574.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2574.pn.pn.pn.pn.pn.pn, %6234 ], [ %6211, %6210 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1238) #10
  br label %6236

6236:                                             ; preds = %6235, %6208
  %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2574.pn.pn.pn.pn.pn.pn.pn, %6235 ], [ %6209, %6208 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1239) #10
  br label %6237

6237:                                             ; preds = %6236, %6206
  %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn, %6236 ], [ %6207, %6206 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1236) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1227) #10
  br label %6238

6238:                                             ; preds = %6237, %6204
  %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6237 ], [ %6205, %6204 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1228) #10
  br label %6239

6239:                                             ; preds = %6238, %6202
  %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6238 ], [ %6203, %6202 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1232) #10
  br label %6240

6240:                                             ; preds = %6239, %6200
  %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6239 ], [ %6201, %6200 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1233) #10
  br label %6241

6241:                                             ; preds = %6240, %6198
  %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6240 ], [ %6199, %6198 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1234) #10
  br label %6242

6242:                                             ; preds = %6241, %6196
  %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6241 ], [ %6197, %6196 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1232) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1229) #10
  br label %6243

6243:                                             ; preds = %6242, %6194
  %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6242 ], [ %6195, %6194 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1230) #10
  br label %6244

6244:                                             ; preds = %6243, %6192
  %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6243 ], [ %6193, %6192 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1231) #10
  br label %6245

6245:                                             ; preds = %6244, %6190
  %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6244 ], [ %6191, %6190 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1228) #10
  br label %6535

.thread:                                          ; preds = %6169
  %6246 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1247) #10
  br label %.loopexit2733

.thread2720:                                      ; preds = %6170
  %6247 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1248) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1247) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1247) #10
  br label %.loopexit2733

6248:                                             ; preds = %6171
  %6249 = landingpad { ptr, i32 }
          cleanup
  br label %6264

6250:                                             ; preds = %6172
  %6251 = landingpad { ptr, i32 }
          cleanup
  br label %6263

6252:                                             ; preds = %6173
  %6253 = landingpad { ptr, i32 }
          cleanup
  br label %6262

6254:                                             ; preds = %6174
  %6255 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2734

6256:                                             ; preds = %6175
  %6257 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit2734.loopexit

6258:                                             ; preds = %6176
  %6259 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIN6Halide5RangeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1245) #10
  br label %.loopexit2734.loopexit

.loopexit2734.loopexit:                           ; preds = %6258, %6256
  %.pn2593 = phi { ptr, i32 } [ %6259, %6258 ], [ %6257, %6256 ]
  call void @_ZNSt15__new_allocatorIN6Halide5RangeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1251) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1251) #10
  %6260 = getelementptr inbounds i8, ptr %1246, i64 16
  call void @_ZN6Halide5RangeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6260) #10
  call void @_ZN6Halide5RangeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1246) #10
  br label %.loopexit2734

.loopexit2734:                                    ; preds = %.loopexit2734.loopexit, %6254
  %6261 = phi i1 [ false, %6254 ], [ true, %.loopexit2734.loopexit ]
  %.pn2593.pn = phi { ptr, i32 } [ %6255, %6254 ], [ %.pn2593, %.loopexit2734.loopexit ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1250) #10
  br label %6262

6262:                                             ; preds = %.loopexit2734, %6252
  %.11258 = phi i1 [ %6261, %.loopexit2734 ], [ false, %6252 ]
  %.pn2593.pn.pn = phi { ptr, i32 } [ %.pn2593.pn, %.loopexit2734 ], [ %6253, %6252 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1250) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1249) #10
  br label %6263

6263:                                             ; preds = %6262, %6250
  %.21259 = phi i1 [ %.11258, %6262 ], [ false, %6250 ]
  %.pn2593.pn.pn.pn = phi { ptr, i32 } [ %.pn2593.pn.pn, %6262 ], [ %6251, %6250 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1249) #10
  br label %6264

6264:                                             ; preds = %6248, %6263
  %.01263 = phi ptr [ %5822, %6263 ], [ %1246, %6248 ]
  %.31260 = phi i1 [ %.21259, %6263 ], [ false, %6248 ]
  %.pn2593.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2593.pn.pn.pn, %6263 ], [ %6249, %6248 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1248) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1248) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1247) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1247) #10
  %6265 = icmp eq ptr %1246, %.01263
  %or.cond = select i1 %.31260, i1 true, i1 %6265
  br i1 %or.cond, label %.loopexit2733, label %.preheader

.preheader:                                       ; preds = %6264, %.preheader
  %6266 = phi ptr [ %6267, %.preheader ], [ %.01263, %6264 ]
  %6267 = getelementptr inbounds i8, ptr %6266, i64 -16
  call void @_ZN6Halide5RangeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6267) #10
  %6268 = icmp eq ptr %6267, %1246
  br i1 %6268, label %.loopexit2733, label %.preheader

.loopexit2733:                                    ; preds = %.preheader, %.thread2720, %.thread, %6264
  %.pn2593.pn.pn.pn.pn.pn.pn2719 = phi { ptr, i32 } [ %6246, %.thread ], [ %.pn2593.pn.pn.pn.pn, %6264 ], [ %6247, %.thread2720 ], [ %.pn2593.pn.pn.pn.pn, %.preheader ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1246) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1245) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1244) #10
  br label %6535

6269:                                             ; preds = %6295
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1274) #10
  invoke void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %1274)
          to label %6363 unwind label %6499

.preheader2735:                                   ; preds = %6177, %6295
  %indvars.iv2862 = phi i64 [ %indvars.iv.next2863, %6295 ], [ 3, %6177 ]
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1256) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1259, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %6270 unwind label %6296

6270:                                             ; preds = %.preheader2735
  invoke void @_ZN6HalidedvENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1258, ptr noundef nonnull %1259, i32 noundef 2)
          to label %6271 unwind label %6298

6271:                                             ; preds = %6270
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1257, ptr noundef nonnull %1258, i32 noundef 10)
          to label %6272 unwind label %6300

6272:                                             ; preds = %6271
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1260) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1262, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6273 unwind label %6302

6273:                                             ; preds = %6272
  invoke void @_ZN6HalidedvENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1261, ptr noundef nonnull %1262, i32 noundef 2)
          to label %6274 unwind label %6304

6274:                                             ; preds = %6273
  invoke void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1260, ptr noundef nonnull %1261, i32 noundef 10)
          to label %6275 unwind label %6306

6275:                                             ; preds = %6274
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1256, ptr noundef nonnull align 8 dereferenceable(32) %1213, ptr noundef nonnull %1257, ptr noundef nonnull align 8 dereferenceable(8) %1260)
          to label %6276 unwind label %6308

6276:                                             ; preds = %6275
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1255, ptr noundef nonnull align 8 dereferenceable(56) %1256)
          to label %6277 unwind label %6310

6277:                                             ; preds = %6276
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1264) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1267, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %6278 unwind label %6312

6278:                                             ; preds = %6277
  invoke void @_ZN6HalidedvENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1266, ptr noundef nonnull %1267, i32 noundef 2)
          to label %6279 unwind label %6314

6279:                                             ; preds = %6278
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1265, ptr noundef nonnull %1266, i32 noundef 10)
          to label %6280 unwind label %6316

6280:                                             ; preds = %6279
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1268) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1270, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6281 unwind label %6318

6281:                                             ; preds = %6280
  invoke void @_ZN6HalidedvENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1269, ptr noundef nonnull %1270, i32 noundef 2)
          to label %6282 unwind label %6320

6282:                                             ; preds = %6281
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1268, ptr noundef nonnull %1269, i32 noundef 10)
          to label %6283 unwind label %6322

6283:                                             ; preds = %6282
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1264, ptr noundef nonnull align 8 dereferenceable(32) %1213, ptr noundef nonnull %1265, ptr noundef nonnull align 8 dereferenceable(8) %1268)
          to label %6284 unwind label %6324

6284:                                             ; preds = %6283
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1263, ptr noundef nonnull align 8 dereferenceable(56) %1264)
          to label %6285 unwind label %6326

6285:                                             ; preds = %6284
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1254, ptr noundef nonnull %1255, ptr noundef nonnull %1263)
          to label %6286 unwind label %6328

6286:                                             ; preds = %6285
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1272) #10
  %6287 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1212, i64 0, i64 %indvars.iv2862
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1272, ptr noundef nonnull align 8 dereferenceable(32) %6287, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6288 unwind label %6330

6288:                                             ; preds = %6286
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1271, ptr noundef nonnull align 8 dereferenceable(56) %1272)
          to label %6289 unwind label %6332

6289:                                             ; preds = %6288
  invoke void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1253, ptr noundef nonnull %1254, ptr noundef nonnull %1271)
          to label %6290 unwind label %6334

6290:                                             ; preds = %6289
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1273) #10
  %6291 = getelementptr inbounds [8 x %"class.Halide::Func"], ptr %1211, i64 0, i64 %indvars.iv2862
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1273, ptr noundef nonnull align 8 dereferenceable(32) %6291, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6292 unwind label %6336

6292:                                             ; preds = %6290
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1252, ptr noundef nonnull align 8 dereferenceable(56) %1273, ptr noundef nonnull %1253)
          to label %6293 unwind label %6338

6293:                                             ; preds = %6292
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1252) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1273) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1273) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1253) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1271) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1272) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1272) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1254) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1263) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1264) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1268) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1269) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1270) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1268) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1265) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1266) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1267) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1264) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1255) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1256) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1260) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1261) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1262) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1260) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1257) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1258) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1259) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1256) #10
  %6294 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4FuncaSERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1213, ptr noundef nonnull align 8 dereferenceable(32) %6291)
          to label %6295 unwind label %6361

6295:                                             ; preds = %6293
  %indvars.iv.next2863 = add nsw i64 %indvars.iv2862, -1
  %.not = icmp eq i64 %indvars.iv2862, 0
  br i1 %.not, label %6269, label %.preheader2735, !llvm.loop !22

6296:                                             ; preds = %.preheader2735
  %6297 = landingpad { ptr, i32 }
          cleanup
  br label %6360

6298:                                             ; preds = %6270
  %6299 = landingpad { ptr, i32 }
          cleanup
  br label %6359

6300:                                             ; preds = %6271
  %6301 = landingpad { ptr, i32 }
          cleanup
  br label %6358

6302:                                             ; preds = %6272
  %6303 = landingpad { ptr, i32 }
          cleanup
  br label %6357

6304:                                             ; preds = %6273
  %6305 = landingpad { ptr, i32 }
          cleanup
  br label %6356

6306:                                             ; preds = %6274
  %6307 = landingpad { ptr, i32 }
          cleanup
  br label %6355

6308:                                             ; preds = %6275
  %6309 = landingpad { ptr, i32 }
          cleanup
  br label %6354

6310:                                             ; preds = %6276
  %6311 = landingpad { ptr, i32 }
          cleanup
  br label %6353

6312:                                             ; preds = %6277
  %6313 = landingpad { ptr, i32 }
          cleanup
  br label %6352

6314:                                             ; preds = %6278
  %6315 = landingpad { ptr, i32 }
          cleanup
  br label %6351

6316:                                             ; preds = %6279
  %6317 = landingpad { ptr, i32 }
          cleanup
  br label %6350

6318:                                             ; preds = %6280
  %6319 = landingpad { ptr, i32 }
          cleanup
  br label %6349

6320:                                             ; preds = %6281
  %6321 = landingpad { ptr, i32 }
          cleanup
  br label %6348

6322:                                             ; preds = %6282
  %6323 = landingpad { ptr, i32 }
          cleanup
  br label %6347

6324:                                             ; preds = %6283
  %6325 = landingpad { ptr, i32 }
          cleanup
  br label %6346

6326:                                             ; preds = %6284
  %6327 = landingpad { ptr, i32 }
          cleanup
  br label %6345

6328:                                             ; preds = %6285
  %6329 = landingpad { ptr, i32 }
          cleanup
  br label %6344

6330:                                             ; preds = %6286
  %6331 = landingpad { ptr, i32 }
          cleanup
  br label %6343

6332:                                             ; preds = %6288
  %6333 = landingpad { ptr, i32 }
          cleanup
  br label %6342

6334:                                             ; preds = %6289
  %6335 = landingpad { ptr, i32 }
          cleanup
  br label %6341

6336:                                             ; preds = %6290
  %6337 = landingpad { ptr, i32 }
          cleanup
  br label %6340

6338:                                             ; preds = %6292
  %6339 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1273) #10
  br label %6340

6340:                                             ; preds = %6338, %6336
  %.pn2546 = phi { ptr, i32 } [ %6339, %6338 ], [ %6337, %6336 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1273) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1253) #10
  br label %6341

6341:                                             ; preds = %6340, %6334
  %.pn2546.pn = phi { ptr, i32 } [ %.pn2546, %6340 ], [ %6335, %6334 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1271) #10
  br label %6342

6342:                                             ; preds = %6341, %6332
  %.pn2546.pn.pn = phi { ptr, i32 } [ %.pn2546.pn, %6341 ], [ %6333, %6332 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1272) #10
  br label %6343

6343:                                             ; preds = %6342, %6330
  %.pn2546.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn, %6342 ], [ %6331, %6330 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1272) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1254) #10
  br label %6344

6344:                                             ; preds = %6343, %6328
  %.pn2546.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn.pn, %6343 ], [ %6329, %6328 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1263) #10
  br label %6345

6345:                                             ; preds = %6344, %6326
  %.pn2546.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn.pn.pn, %6344 ], [ %6327, %6326 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1264) #10
  br label %6346

6346:                                             ; preds = %6345, %6324
  %.pn2546.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn.pn.pn.pn, %6345 ], [ %6325, %6324 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1268) #10
  br label %6347

6347:                                             ; preds = %6346, %6322
  %.pn2546.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn.pn.pn.pn.pn, %6346 ], [ %6323, %6322 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1269) #10
  br label %6348

6348:                                             ; preds = %6347, %6320
  %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn.pn.pn.pn.pn.pn, %6347 ], [ %6321, %6320 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1270) #10
  br label %6349

6349:                                             ; preds = %6348, %6318
  %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn, %6348 ], [ %6319, %6318 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1268) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1265) #10
  br label %6350

6350:                                             ; preds = %6349, %6316
  %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6349 ], [ %6317, %6316 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1266) #10
  br label %6351

6351:                                             ; preds = %6350, %6314
  %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6350 ], [ %6315, %6314 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1267) #10
  br label %6352

6352:                                             ; preds = %6351, %6312
  %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6351 ], [ %6313, %6312 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1264) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1255) #10
  br label %6353

6353:                                             ; preds = %6352, %6310
  %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6352 ], [ %6311, %6310 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1256) #10
  br label %6354

6354:                                             ; preds = %6353, %6308
  %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6353 ], [ %6309, %6308 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1260) #10
  br label %6355

6355:                                             ; preds = %6354, %6306
  %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6354 ], [ %6307, %6306 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1261) #10
  br label %6356

6356:                                             ; preds = %6355, %6304
  %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6355 ], [ %6305, %6304 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1262) #10
  br label %6357

6357:                                             ; preds = %6356, %6302
  %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6356 ], [ %6303, %6302 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1260) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1257) #10
  br label %6358

6358:                                             ; preds = %6357, %6300
  %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6357 ], [ %6301, %6300 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1258) #10
  br label %6359

6359:                                             ; preds = %6358, %6298
  %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6358 ], [ %6299, %6298 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1259) #10
  br label %6360

6360:                                             ; preds = %6359, %6296
  %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6359 ], [ %6297, %6296 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1256) #10
  br label %6535

6361:                                             ; preds = %6293
  %6362 = landingpad { ptr, i32 }
          cleanup
  br label %6535

6363:                                             ; preds = %6269
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1276) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1276, ptr noundef nonnull align 8 dereferenceable(32) %1211, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6364 unwind label %6501

6364:                                             ; preds = %6363
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1277) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1277, ptr noundef nonnull align 8 dereferenceable(32) %1274, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6365 unwind label %6503

6365:                                             ; preds = %6364
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1275, ptr noundef nonnull align 8 dereferenceable(56) %1277, ptr noundef nonnull align 8 dereferenceable(56) %1276)
          to label %6366 unwind label %6505

6366:                                             ; preds = %6365
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1275) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1277) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1277) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1276) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1276) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1278, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %6367 unwind label %6509

6367:                                             ; preds = %6366
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1279, i32 noundef 0)
          to label %6368 unwind label %6511

6368:                                             ; preds = %6367
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1280, i32 noundef 2048)
          to label %6369 unwind label %6513

6369:                                             ; preds = %6368
  %6370 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1274, ptr noundef nonnull %1278, ptr noundef nonnull %1279, ptr noundef nonnull %1280)
          to label %6371 unwind label %6515

6371:                                             ; preds = %6369
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1281, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6372 unwind label %6515

6372:                                             ; preds = %6371
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1282, i32 noundef 0)
          to label %6373 unwind label %6517

6373:                                             ; preds = %6372
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1283, i32 noundef 2048)
          to label %6374 unwind label %6519

6374:                                             ; preds = %6373
  %6375 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %6370, ptr noundef nonnull %1281, ptr noundef nonnull %1282, ptr noundef nonnull %1283)
          to label %6376 unwind label %6521

6376:                                             ; preds = %6374
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1283) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1282) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1281) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1280) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1279) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1278) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1285) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1286, ptr noundef nonnull align 8 dereferenceable(32) %1274) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %1285, ptr noundef nonnull %1286)
          to label %6377 unwind label %6528

6377:                                             ; preds = %6376
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %1284, ptr noundef nonnull align 8 dereferenceable(8) %1285, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %6378 unwind label %6530

6378:                                             ; preds = %6377
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %1284) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1285) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1286) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1285) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1274) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1274) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1213) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1213) #10
  %6379 = getelementptr inbounds i8, ptr %1212, i64 224
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6379) #10
  %6380 = getelementptr inbounds i8, ptr %1212, i64 192
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6380) #10
  %6381 = getelementptr inbounds i8, ptr %1212, i64 160
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6381) #10
  %6382 = getelementptr inbounds i8, ptr %1212, i64 128
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6382) #10
  %6383 = getelementptr inbounds i8, ptr %1212, i64 96
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6383) #10
  %6384 = getelementptr inbounds i8, ptr %1212, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6384) #10
  %6385 = getelementptr inbounds i8, ptr %1212, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6385) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1212) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %1212) #10
  %6386 = getelementptr inbounds i8, ptr %1211, i64 224
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6386) #10
  %6387 = getelementptr inbounds i8, ptr %1211, i64 192
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6387) #10
  %6388 = getelementptr inbounds i8, ptr %1211, i64 160
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6388) #10
  %6389 = getelementptr inbounds i8, ptr %1211, i64 128
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6389) #10
  %6390 = getelementptr inbounds i8, ptr %1211, i64 96
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6390) #10
  %6391 = getelementptr inbounds i8, ptr %1211, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6391) #10
  %6392 = getelementptr inbounds i8, ptr %1211, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6392) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1211) #10
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %1211) #10
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1210) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1210) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1287) #10
  %6393 = invoke { i64, ptr } @_ZN6Halide5FloatEii(i32 noundef 32, i32 noundef 1)
          to label %6394 unwind label %6551

6394:                                             ; preds = %6378
  %6395 = extractvalue { i64, ptr } %6393, 0
  %6396 = extractvalue { i64, ptr } %6393, 1
  invoke void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56) %1287, i64 %6395, ptr %6396, i32 noundef 2)
          to label %6397 unwind label %6551

6397:                                             ; preds = %6394
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1288) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1289) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1290) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1290) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1289, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %1290)
          to label %6398 unwind label %6553

6398:                                             ; preds = %6397
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1288, ptr noundef nonnull align 8 dereferenceable(32) %1289)
          to label %6399 unwind label %6555

6399:                                             ; preds = %6398
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1289) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1290) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1290) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1289) #10
  invoke void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_EEENS_4ExprEDpOT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1292, ptr noundef nonnull align 8 dereferenceable(56) %1287, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6400 unwind label %6558

6400:                                             ; preds = %6399
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1293) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1293, ptr noundef nonnull align 8 dereferenceable(32) %1288, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6401 unwind label %6560

6401:                                             ; preds = %6400
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1291, ptr noundef nonnull align 8 dereferenceable(56) %1293, ptr noundef nonnull %1292)
          to label %6402 unwind label %6562

6402:                                             ; preds = %6401
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1291) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1293) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1293) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1292) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1294) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1295) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1296) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1296) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1295, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %1296)
          to label %6403 unwind label %6565

6403:                                             ; preds = %6402
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1294, ptr noundef nonnull align 8 dereferenceable(32) %1295)
          to label %6404 unwind label %6567

6404:                                             ; preds = %6403
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1295) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1296) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1296) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1295) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1298) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1298, ptr noundef nonnull align 8 dereferenceable(32) %1288, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6405 unwind label %6570

6405:                                             ; preds = %6404
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1299) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1299, ptr noundef nonnull align 8 dereferenceable(32) %1294, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6406 unwind label %6572

6406:                                             ; preds = %6405
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1297, ptr noundef nonnull align 8 dereferenceable(56) %1299, ptr noundef nonnull align 8 dereferenceable(56) %1298)
          to label %6407 unwind label %6574

6407:                                             ; preds = %6406
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1297) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1299) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1299) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1298) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1298) #10
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %1300) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1301, i32 noundef 1)
          to label %6408 unwind label %6578

6408:                                             ; preds = %6407
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1302, i32 noundef 1999)
          to label %6409 unwind label %6580

6409:                                             ; preds = %6408
  invoke void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %1300, ptr noundef nonnull %1301, ptr noundef nonnull %1302)
          to label %6410 unwind label %6582

6410:                                             ; preds = %6409
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1302) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1301) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1304) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1305, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %6411 unwind label %6585

6411:                                             ; preds = %6410
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1306) #10
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1307, ptr noundef nonnull align 8 dereferenceable(200) %1300)
          to label %6412 unwind label %6587

6412:                                             ; preds = %6411
  invoke void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1306, ptr noundef nonnull %1307, i32 noundef 1)
          to label %6413 unwind label %6589

6413:                                             ; preds = %6412
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1304, ptr noundef nonnull align 8 dereferenceable(32) %1294, ptr noundef nonnull %1305, ptr noundef nonnull align 8 dereferenceable(8) %1306)
          to label %6414 unwind label %6591

6414:                                             ; preds = %6413
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1308) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1309, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %6415 unwind label %6593

6415:                                             ; preds = %6414
  invoke void @_ZNK6Halide4FuncclIJRNS_4RDomEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1308, ptr noundef nonnull align 8 dereferenceable(32) %1294, ptr noundef nonnull %1309, ptr noundef nonnull align 8 dereferenceable(200) %1300)
          to label %6416 unwind label %6595

6416:                                             ; preds = %6415
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1303, ptr noundef nonnull align 8 dereferenceable(56) %1308, ptr noundef nonnull align 8 dereferenceable(56) %1304)
          to label %6417 unwind label %6597

6417:                                             ; preds = %6416
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1303) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1308) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1309) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1308) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1304) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1306) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1307) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1306) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1305) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1304) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1311) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1312, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %6418 unwind label %6605

6418:                                             ; preds = %6417
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1313) #10
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1314, ptr noundef nonnull align 8 dereferenceable(200) %1300)
          to label %6419 unwind label %6607

6419:                                             ; preds = %6418
  invoke void @_ZN6HalidemiEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1313, i32 noundef 2000, ptr noundef nonnull %1314)
          to label %6420 unwind label %6609

6420:                                             ; preds = %6419
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1311, ptr noundef nonnull align 8 dereferenceable(32) %1294, ptr noundef nonnull %1312, ptr noundef nonnull align 8 dereferenceable(8) %1313)
          to label %6421 unwind label %6611

6421:                                             ; preds = %6420
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1315) #10
  invoke void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1316, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %6422 unwind label %6613

6422:                                             ; preds = %6421
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1317) #10
  invoke void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1318, ptr noundef nonnull align 8 dereferenceable(200) %1300)
          to label %6423 unwind label %6615

6423:                                             ; preds = %6422
  invoke void @_ZN6HalidemiEiNS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1317, i32 noundef 1999, ptr noundef nonnull %1318)
          to label %6424 unwind label %6617

6424:                                             ; preds = %6423
  invoke void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1315, ptr noundef nonnull align 8 dereferenceable(32) %1294, ptr noundef nonnull %1316, ptr noundef nonnull align 8 dereferenceable(8) %1317)
          to label %6425 unwind label %6619

6425:                                             ; preds = %6424
  invoke void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1310, ptr noundef nonnull align 8 dereferenceable(56) %1315, ptr noundef nonnull align 8 dereferenceable(56) %1311)
          to label %6426 unwind label %6621

6426:                                             ; preds = %6425
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1310) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1315) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1317) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1318) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1317) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1316) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1315) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1311) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1313) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1314) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1313) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1312) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1311) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1319) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1320) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1321) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1321) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1320, ptr noundef nonnull @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %1321)
          to label %6427 unwind label %6631

6427:                                             ; preds = %6426
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1319, ptr noundef nonnull align 8 dereferenceable(32) %1320)
          to label %6428 unwind label %6633

6428:                                             ; preds = %6427
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1320) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1321) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1321) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1320) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1323) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1323, ptr noundef nonnull align 8 dereferenceable(32) %1294, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6429 unwind label %6636

6429:                                             ; preds = %6428
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1324) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1324, ptr noundef nonnull align 8 dereferenceable(32) %1319, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6430 unwind label %6638

6430:                                             ; preds = %6429
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1322, ptr noundef nonnull align 8 dereferenceable(56) %1324, ptr noundef nonnull align 8 dereferenceable(56) %1323)
          to label %6431 unwind label %6640

6431:                                             ; preds = %6430
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1322) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1324) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1324) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1323) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1323) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1325, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %6432 unwind label %6644

6432:                                             ; preds = %6431
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1326, i32 noundef 0)
          to label %6433 unwind label %6646

6433:                                             ; preds = %6432
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1327, i32 noundef 2000)
          to label %6434 unwind label %6648

6434:                                             ; preds = %6433
  %6435 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1319, ptr noundef nonnull %1325, ptr noundef nonnull %1326, ptr noundef nonnull %1327)
          to label %6436 unwind label %6650

6436:                                             ; preds = %6434
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1328, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6437 unwind label %6650

6437:                                             ; preds = %6436
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1329, i32 noundef 0)
          to label %6438 unwind label %6652

6438:                                             ; preds = %6437
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1330, i32 noundef 2000)
          to label %6439 unwind label %6654

6439:                                             ; preds = %6438
  %6440 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %6435, ptr noundef nonnull %1328, ptr noundef nonnull %1329, ptr noundef nonnull %1330)
          to label %6441 unwind label %6656

6441:                                             ; preds = %6439
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1330) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1329) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1328) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1327) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1326) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1325) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1332) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1333, ptr noundef nonnull align 8 dereferenceable(32) %1319) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %1332, ptr noundef nonnull %1333)
          to label %6442 unwind label %6663

6442:                                             ; preds = %6441
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %1331, ptr noundef nonnull align 8 dereferenceable(8) %1332, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %6443 unwind label %6665

6443:                                             ; preds = %6442
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %1331) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1332) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1333) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1332) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1319) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1319) #10
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %1300) #10
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %1300) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1294) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1294) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1288) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1288) #10
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1287) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1287) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1334) #10
  %6444 = invoke { i64, ptr } @_ZN6Halide3IntEii(i32 noundef 32, i32 noundef 1)
          to label %6445 unwind label %6677

6445:                                             ; preds = %6443
  %6446 = extractvalue { i64, ptr } %6444, 0
  %6447 = extractvalue { i64, ptr } %6444, 1
  invoke void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56) %1334, i64 %6446, ptr %6447, i32 noundef 2)
          to label %6448 unwind label %6677

6448:                                             ; preds = %6445
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1335) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1336) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1337) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1337) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1336, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %1337)
          to label %6449 unwind label %6679

6449:                                             ; preds = %6448
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1335, ptr noundef nonnull align 8 dereferenceable(32) %1336)
          to label %6450 unwind label %6681

6450:                                             ; preds = %6449
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1336) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1337) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1337) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1336) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1338) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1339) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1340) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1340) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1339, ptr noundef nonnull @.str.33, ptr noundef nonnull align 1 dereferenceable(1) %1340)
          to label %6451 unwind label %6684

6451:                                             ; preds = %6450
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1338, ptr noundef nonnull align 8 dereferenceable(32) %1339)
          to label %6452 unwind label %6686

6452:                                             ; preds = %6451
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1339) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1340) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1340) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1339) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1341) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1342) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1343) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1343) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1342, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %1343)
          to label %6453 unwind label %6689

6453:                                             ; preds = %6452
  invoke void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1341, ptr noundef nonnull align 8 dereferenceable(32) %1342)
          to label %6454 unwind label %6691

6454:                                             ; preds = %6453
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1342) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1343) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1343) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1342) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1344) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1345) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1346) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1346) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1345, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %1346)
          to label %6455 unwind label %6694

6455:                                             ; preds = %6454
  invoke void @_ZN6Halide3VarC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %1344, ptr noundef nonnull align 8 dereferenceable(32) %1345)
          to label %6456 unwind label %6696

6456:                                             ; preds = %6455
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1345) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1346) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1346) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1345) #10
  invoke void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_EEENS_4ExprEDpOT_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1349, ptr noundef nonnull align 8 dereferenceable(56) %1334, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6457 unwind label %6699

6457:                                             ; preds = %6456
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1350, i32 noundef 0)
          to label %6458 unwind label %6701

6458:                                             ; preds = %6457
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1351, i32 noundef 255)
          to label %6459 unwind label %6703

6459:                                             ; preds = %6458
  invoke void @_ZN6Halide5clampENS_4ExprES0_S0_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1348, ptr noundef nonnull %1349, ptr noundef nonnull %1350, ptr noundef nonnull %1351)
          to label %6460 unwind label %6705

6460:                                             ; preds = %6459
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1352) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1352, ptr noundef nonnull align 8 dereferenceable(32) %1335, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6461 unwind label %6707

6461:                                             ; preds = %6460
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1347, ptr noundef nonnull align 8 dereferenceable(56) %1352, ptr noundef nonnull %1348)
          to label %6462 unwind label %6709

6462:                                             ; preds = %6461
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1347) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1352) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1352) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1348) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1351) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1350) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1349) #10
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %1353) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1354, i32 noundef 0)
          to label %6463 unwind label %6715

6463:                                             ; preds = %6462
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1355, i32 noundef 2000)
          to label %6464 unwind label %6717

6464:                                             ; preds = %6463
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %1356) #10
  store i32 0, ptr %1356, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %1357) #10
  store i32 2000, ptr %1357, align 4, !tbaa !17
  invoke void @_ZN6Halide4RDomC2IJiiEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200) %1353, ptr noundef nonnull %1354, ptr noundef nonnull %1355, ptr noundef nonnull align 4 dereferenceable(4) %1356, ptr noundef nonnull align 4 dereferenceable(4) %1357)
          to label %6465 unwind label %6719

6465:                                             ; preds = %6464
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1357) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1356) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1355) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1354) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1360, i32 noundef 0)
          to label %6466 unwind label %6722

6466:                                             ; preds = %6465
  invoke void @_ZN6Halide4castIjEENS_4ExprES1_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1359, ptr noundef nonnull %1360)
          to label %6467 unwind label %6724

6467:                                             ; preds = %6466
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1361) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1361, ptr noundef nonnull align 8 dereferenceable(32) %1338, ptr noundef nonnull align 8 dereferenceable(32) %1344)
          to label %6468 unwind label %6726

6468:                                             ; preds = %6467
  invoke void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1358, ptr noundef nonnull align 8 dereferenceable(56) %1361, ptr noundef nonnull %1359)
          to label %6469 unwind label %6728

6469:                                             ; preds = %6468
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1358) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1361) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1361) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1359) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1360) #10
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1364, i32 noundef 1)
          to label %6470 unwind label %6722

6470:                                             ; preds = %6469
  invoke void @_ZN6Halide4castIjEENS_4ExprES1_(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1363, ptr noundef nonnull %1364)
          to label %6471 unwind label %6732

6471:                                             ; preds = %6470
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1365) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1367) #10
  %6472 = getelementptr inbounds i8, ptr %1353, i64 8
  invoke void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1368, ptr noundef nonnull align 8 dereferenceable(44) %6472)
          to label %6473 unwind label %6734

6473:                                             ; preds = %6471
  %6474 = getelementptr inbounds i8, ptr %1353, i64 56
  invoke void @_ZNK6Halide4FuncclIJRNS_4RVarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1367, ptr noundef nonnull align 8 dereferenceable(32) %1335, ptr noundef nonnull %1368, ptr noundef nonnull align 8 dereferenceable(44) %6474)
          to label %6475 unwind label %6736

6475:                                             ; preds = %6473
  invoke void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::Expr") align 8 %1366, ptr noundef nonnull align 8 dereferenceable(56) %1367)
          to label %6476 unwind label %6738

6476:                                             ; preds = %6475
  invoke void @_ZNK6Halide4FuncclIJEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES3_DpOS4_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1365, ptr noundef nonnull align 8 dereferenceable(32) %1338, ptr noundef nonnull %1366)
          to label %6477 unwind label %6740

6477:                                             ; preds = %6476
  invoke void @_ZN6Halide7FuncRefpLENS_4ExprE(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1362, ptr noundef nonnull align 8 dereferenceable(56) %1365, ptr noundef nonnull %1363)
          to label %6478 unwind label %6742

6478:                                             ; preds = %6477
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1362) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1365) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1366) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1367) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1368) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1367) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1365) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1363) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1364) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1370) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1370, ptr noundef nonnull align 8 dereferenceable(32) %1338, ptr noundef nonnull align 8 dereferenceable(32) %1344)
          to label %6479 unwind label %6749

6479:                                             ; preds = %6478
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %1371) #10
  invoke void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::FuncRef") align 8 %1371, ptr noundef nonnull align 8 dereferenceable(32) %1341, ptr noundef nonnull align 8 dereferenceable(32) %1344)
          to label %6480 unwind label %6751

6480:                                             ; preds = %6479
  invoke void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.Halide::Stage") align 8 %1369, ptr noundef nonnull align 8 dereferenceable(56) %1371, ptr noundef nonnull align 8 dereferenceable(56) %1370)
          to label %6481 unwind label %6753

6481:                                             ; preds = %6480
  call void @_ZN6Halide5StageD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %1369) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1371) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1371) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1370) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1370) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1372, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %6482 unwind label %6722

6482:                                             ; preds = %6481
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1373, i32 noundef 0)
          to label %6483 unwind label %6757

6483:                                             ; preds = %6482
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1374, i32 noundef 2000)
          to label %6484 unwind label %6759

6484:                                             ; preds = %6483
  %6485 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1335, ptr noundef nonnull %1372, ptr noundef nonnull %1373, ptr noundef nonnull %1374)
          to label %6486 unwind label %6761

6486:                                             ; preds = %6484
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1375, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %6487 unwind label %6761

6487:                                             ; preds = %6486
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1376, i32 noundef 0)
          to label %6488 unwind label %6763

6488:                                             ; preds = %6487
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1377, i32 noundef 2000)
          to label %6489 unwind label %6765

6489:                                             ; preds = %6488
  %6490 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %6485, ptr noundef nonnull %1375, ptr noundef nonnull %1376, ptr noundef nonnull %1377)
          to label %6491 unwind label %6767

6491:                                             ; preds = %6489
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1377) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1376) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1375) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1374) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1373) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1372) #10
  invoke void @_ZN6Halide3VarC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1378, ptr noundef nonnull align 8 dereferenceable(32) %1344)
          to label %6492 unwind label %6722

6492:                                             ; preds = %6491
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1379, i32 noundef 0)
          to label %6493 unwind label %6774

6493:                                             ; preds = %6492
  invoke void @_ZN6Halide4ExprC2Ei(ptr noundef nonnull align 8 dereferenceable(8) %1380, i32 noundef 256)
          to label %6494 unwind label %6776

6494:                                             ; preds = %6493
  %6495 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32) %1341, ptr noundef nonnull %1378, ptr noundef nonnull %1379, ptr noundef nonnull %1380)
          to label %6496 unwind label %6778

6496:                                             ; preds = %6494
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1380) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1379) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1378) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1382) #10
  call void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %1383, ptr noundef nonnull align 8 dereferenceable(32) %1341) #10
  invoke void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8) %1382, ptr noundef nonnull %1383)
          to label %6497 unwind label %6782

6497:                                             ; preds = %6496
  invoke void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind nonnull writable sret(%"struct.Halide::AutoSchedulerResults") align 8 %1381, ptr noundef nonnull align 8 dereferenceable(8) %1382, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(20) %5)
          to label %6498 unwind label %6784

6498:                                             ; preds = %6497
  call void @_ZN6Halide20AutoSchedulerResultsD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %1381) #10
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1382) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1383) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1382) #10
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %1353) #10
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %1353) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1344) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1344) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1341) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1341) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1338) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1338) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1335) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1335) #10
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1334) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1334) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #10
  br label %6798

6499:                                             ; preds = %6269
  %6500 = landingpad { ptr, i32 }
          cleanup
  br label %6534

6501:                                             ; preds = %6363
  %6502 = landingpad { ptr, i32 }
          cleanup
  br label %6508

6503:                                             ; preds = %6364
  %6504 = landingpad { ptr, i32 }
          cleanup
  br label %6507

6505:                                             ; preds = %6365
  %6506 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1277) #10
  br label %6507

6507:                                             ; preds = %6505, %6503
  %.pn2438 = phi { ptr, i32 } [ %6506, %6505 ], [ %6504, %6503 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1277) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1276) #10
  br label %6508

6508:                                             ; preds = %6507, %6501
  %.pn2438.pn = phi { ptr, i32 } [ %.pn2438, %6507 ], [ %6502, %6501 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1276) #10
  br label %6533

6509:                                             ; preds = %6366
  %6510 = landingpad { ptr, i32 }
          cleanup
  br label %6533

6511:                                             ; preds = %6367
  %6512 = landingpad { ptr, i32 }
          cleanup
  br label %6527

6513:                                             ; preds = %6368
  %6514 = landingpad { ptr, i32 }
          cleanup
  br label %6526

6515:                                             ; preds = %6371, %6369
  %6516 = landingpad { ptr, i32 }
          cleanup
  br label %6525

6517:                                             ; preds = %6372
  %6518 = landingpad { ptr, i32 }
          cleanup
  br label %6524

6519:                                             ; preds = %6373
  %6520 = landingpad { ptr, i32 }
          cleanup
  br label %6523

6521:                                             ; preds = %6374
  %6522 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1283) #10
  br label %6523

6523:                                             ; preds = %6521, %6519
  %.pn2441 = phi { ptr, i32 } [ %6522, %6521 ], [ %6520, %6519 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1282) #10
  br label %6524

6524:                                             ; preds = %6523, %6517
  %.pn2441.pn = phi { ptr, i32 } [ %.pn2441, %6523 ], [ %6518, %6517 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1281) #10
  br label %6525

6525:                                             ; preds = %6524, %6515
  %.pn2441.pn.pn = phi { ptr, i32 } [ %.pn2441.pn, %6524 ], [ %6516, %6515 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1280) #10
  br label %6526

6526:                                             ; preds = %6525, %6513
  %.pn2441.pn.pn.pn = phi { ptr, i32 } [ %.pn2441.pn.pn, %6525 ], [ %6514, %6513 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1279) #10
  br label %6527

6527:                                             ; preds = %6526, %6511
  %.pn2441.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2441.pn.pn.pn, %6526 ], [ %6512, %6511 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1278) #10
  br label %6533

6528:                                             ; preds = %6376
  %6529 = landingpad { ptr, i32 }
          cleanup
  br label %6532

6530:                                             ; preds = %6377
  %6531 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1285) #10
  br label %6532

6532:                                             ; preds = %6530, %6528
  %.pn2447 = phi { ptr, i32 } [ %6531, %6530 ], [ %6529, %6528 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1286) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1285) #10
  br label %6533

6533:                                             ; preds = %6532, %6527, %6509, %6508
  %.pn2447.pn = phi { ptr, i32 } [ %.pn2447, %6532 ], [ %.pn2441.pn.pn.pn.pn, %6527 ], [ %6510, %6509 ], [ %.pn2438.pn, %6508 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1274) #10
  br label %6534

6534:                                             ; preds = %6533, %6499
  %.pn2447.pn.pn = phi { ptr, i32 } [ %.pn2447.pn, %6533 ], [ %6500, %6499 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1274) #10
  br label %6535

6535:                                             ; preds = %6534, %.loopexit2733, %6245, %6189, %6184, %6361, %6360, %6140, %6134
  %.pn2593.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2436, %6140 ], [ %6135, %6134 ], [ %.pn2447.pn.pn, %6534 ], [ %.pn2593.pn.pn.pn.pn.pn.pn2719, %.loopexit2733 ], [ %.pn2574.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6245 ], [ %.pn2572, %6189 ], [ %.pn2570, %6184 ], [ %6362, %6361 ], [ %.pn2546.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6360 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1213) #10
  br label %.loopexit2732.loopexit

.loopexit2732.loopexit:                           ; preds = %6535, %6133
  %.pn2593.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2593.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6535 ], [ %.pn2434, %6133 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1213) #10
  %6536 = getelementptr inbounds i8, ptr %1212, i64 224
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6536) #10
  %6537 = getelementptr inbounds i8, ptr %1212, i64 192
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6537) #10
  %6538 = getelementptr inbounds i8, ptr %1212, i64 160
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6538) #10
  %6539 = getelementptr inbounds i8, ptr %1212, i64 128
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6539) #10
  %6540 = getelementptr inbounds i8, ptr %1212, i64 96
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6540) #10
  %6541 = getelementptr inbounds i8, ptr %1212, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6541) #10
  %6542 = getelementptr inbounds i8, ptr %1212, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6542) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1212) #10
  br label %.loopexit2732

.loopexit2732:                                    ; preds = %.preheader2736, %6125, %.loopexit2732.loopexit
  %.pn2593.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %lpad.thr_comm.split-lp2936, %6125 ], [ %.pn2593.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2732.loopexit ], [ %lpad.thr_comm2935, %.preheader2736 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %1212) #10
  %6543 = getelementptr inbounds i8, ptr %1211, i64 224
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6543) #10
  %6544 = getelementptr inbounds i8, ptr %1211, i64 192
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6544) #10
  %6545 = getelementptr inbounds i8, ptr %1211, i64 160
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6545) #10
  %6546 = getelementptr inbounds i8, ptr %1211, i64 128
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6546) #10
  %6547 = getelementptr inbounds i8, ptr %1211, i64 96
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6547) #10
  %6548 = getelementptr inbounds i8, ptr %1211, i64 64
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6548) #10
  %6549 = getelementptr inbounds i8, ptr %1211, i64 32
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6549) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1211) #10
  br label %.loopexit2731

.loopexit2731:                                    ; preds = %.preheader2738, %6121, %.loopexit2732
  %.pn2593.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %lpad.thr_comm.split-lp2927, %6121 ], [ %.pn2593.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2732 ], [ %lpad.thr_comm2926, %.preheader2738 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %1211) #10
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1210) #10
  br label %6550

6550:                                             ; preds = %.loopexit2731, %6119
  %.pn2593.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2593.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit2731 ], [ %6120, %6119 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1210) #10
  br label %6795

6551:                                             ; preds = %6394, %6378
  %6552 = landingpad { ptr, i32 }
          cleanup
  br label %6676

6553:                                             ; preds = %6397
  %6554 = landingpad { ptr, i32 }
          cleanup
  br label %6557

6555:                                             ; preds = %6398
  %6556 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1289) #10
  br label %6557

6557:                                             ; preds = %6555, %6553
  %.pn2451 = phi { ptr, i32 } [ %6556, %6555 ], [ %6554, %6553 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1290) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1290) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1289) #10
  br label %6675

6558:                                             ; preds = %6399
  %6559 = landingpad { ptr, i32 }
          cleanup
  br label %6674

6560:                                             ; preds = %6400
  %6561 = landingpad { ptr, i32 }
          cleanup
  br label %6564

6562:                                             ; preds = %6401
  %6563 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1293) #10
  br label %6564

6564:                                             ; preds = %6562, %6560
  %.pn2453 = phi { ptr, i32 } [ %6563, %6562 ], [ %6561, %6560 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1293) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1292) #10
  br label %6674

6565:                                             ; preds = %6402
  %6566 = landingpad { ptr, i32 }
          cleanup
  br label %6569

6567:                                             ; preds = %6403
  %6568 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1295) #10
  br label %6569

6569:                                             ; preds = %6567, %6565
  %.pn2455 = phi { ptr, i32 } [ %6568, %6567 ], [ %6566, %6565 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1296) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1296) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1295) #10
  br label %6673

6570:                                             ; preds = %6404
  %6571 = landingpad { ptr, i32 }
          cleanup
  br label %6577

6572:                                             ; preds = %6405
  %6573 = landingpad { ptr, i32 }
          cleanup
  br label %6576

6574:                                             ; preds = %6406
  %6575 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1299) #10
  br label %6576

6576:                                             ; preds = %6574, %6572
  %.pn2457 = phi { ptr, i32 } [ %6575, %6574 ], [ %6573, %6572 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1299) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1298) #10
  br label %6577

6577:                                             ; preds = %6576, %6570
  %.pn2457.pn = phi { ptr, i32 } [ %.pn2457, %6576 ], [ %6571, %6570 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1298) #10
  br label %6672

6578:                                             ; preds = %6407
  %6579 = landingpad { ptr, i32 }
          cleanup
  br label %6671

6580:                                             ; preds = %6408
  %6581 = landingpad { ptr, i32 }
          cleanup
  br label %6584

6582:                                             ; preds = %6409
  %6583 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1302) #10
  br label %6584

6584:                                             ; preds = %6582, %6580
  %.pn2460 = phi { ptr, i32 } [ %6583, %6582 ], [ %6581, %6580 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1301) #10
  br label %6671

6585:                                             ; preds = %6410
  %6586 = landingpad { ptr, i32 }
          cleanup
  br label %6604

6587:                                             ; preds = %6411
  %6588 = landingpad { ptr, i32 }
          cleanup
  br label %6603

6589:                                             ; preds = %6412
  %6590 = landingpad { ptr, i32 }
          cleanup
  br label %6602

6591:                                             ; preds = %6413
  %6592 = landingpad { ptr, i32 }
          cleanup
  br label %6601

6593:                                             ; preds = %6414
  %6594 = landingpad { ptr, i32 }
          cleanup
  br label %6600

6595:                                             ; preds = %6415
  %6596 = landingpad { ptr, i32 }
          cleanup
  br label %6599

6597:                                             ; preds = %6416
  %6598 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1308) #10
  br label %6599

6599:                                             ; preds = %6597, %6595
  %.pn2462 = phi { ptr, i32 } [ %6598, %6597 ], [ %6596, %6595 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1309) #10
  br label %6600

6600:                                             ; preds = %6599, %6593
  %.pn2462.pn = phi { ptr, i32 } [ %.pn2462, %6599 ], [ %6594, %6593 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1308) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1304) #10
  br label %6601

6601:                                             ; preds = %6600, %6591
  %.pn2462.pn.pn = phi { ptr, i32 } [ %.pn2462.pn, %6600 ], [ %6592, %6591 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1306) #10
  br label %6602

6602:                                             ; preds = %6601, %6589
  %.pn2462.pn.pn.pn = phi { ptr, i32 } [ %.pn2462.pn.pn, %6601 ], [ %6590, %6589 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1307) #10
  br label %6603

6603:                                             ; preds = %6602, %6587
  %.pn2462.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2462.pn.pn.pn, %6602 ], [ %6588, %6587 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1306) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1305) #10
  br label %6604

6604:                                             ; preds = %6603, %6585
  %.pn2462.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2462.pn.pn.pn.pn, %6603 ], [ %6586, %6585 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1304) #10
  br label %6670

6605:                                             ; preds = %6417
  %6606 = landingpad { ptr, i32 }
          cleanup
  br label %6630

6607:                                             ; preds = %6418
  %6608 = landingpad { ptr, i32 }
          cleanup
  br label %6629

6609:                                             ; preds = %6419
  %6610 = landingpad { ptr, i32 }
          cleanup
  br label %6628

6611:                                             ; preds = %6420
  %6612 = landingpad { ptr, i32 }
          cleanup
  br label %6627

6613:                                             ; preds = %6421
  %6614 = landingpad { ptr, i32 }
          cleanup
  br label %6626

6615:                                             ; preds = %6422
  %6616 = landingpad { ptr, i32 }
          cleanup
  br label %6625

6617:                                             ; preds = %6423
  %6618 = landingpad { ptr, i32 }
          cleanup
  br label %6624

6619:                                             ; preds = %6424
  %6620 = landingpad { ptr, i32 }
          cleanup
  br label %6623

6621:                                             ; preds = %6425
  %6622 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1315) #10
  br label %6623

6623:                                             ; preds = %6621, %6619
  %.pn2469 = phi { ptr, i32 } [ %6622, %6621 ], [ %6620, %6619 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1317) #10
  br label %6624

6624:                                             ; preds = %6623, %6617
  %.pn2469.pn = phi { ptr, i32 } [ %.pn2469, %6623 ], [ %6618, %6617 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1318) #10
  br label %6625

6625:                                             ; preds = %6624, %6615
  %.pn2469.pn.pn = phi { ptr, i32 } [ %.pn2469.pn, %6624 ], [ %6616, %6615 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1317) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1316) #10
  br label %6626

6626:                                             ; preds = %6625, %6613
  %.pn2469.pn.pn.pn = phi { ptr, i32 } [ %.pn2469.pn.pn, %6625 ], [ %6614, %6613 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1315) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1311) #10
  br label %6627

6627:                                             ; preds = %6626, %6611
  %.pn2469.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2469.pn.pn.pn, %6626 ], [ %6612, %6611 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1313) #10
  br label %6628

6628:                                             ; preds = %6627, %6609
  %.pn2469.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2469.pn.pn.pn.pn, %6627 ], [ %6610, %6609 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1314) #10
  br label %6629

6629:                                             ; preds = %6628, %6607
  %.pn2469.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2469.pn.pn.pn.pn.pn, %6628 ], [ %6608, %6607 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1313) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1312) #10
  br label %6630

6630:                                             ; preds = %6629, %6605
  %.pn2469.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2469.pn.pn.pn.pn.pn.pn, %6629 ], [ %6606, %6605 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1311) #10
  br label %6670

6631:                                             ; preds = %6426
  %6632 = landingpad { ptr, i32 }
          cleanup
  br label %6635

6633:                                             ; preds = %6427
  %6634 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1320) #10
  br label %6635

6635:                                             ; preds = %6633, %6631
  %.pn2478 = phi { ptr, i32 } [ %6634, %6633 ], [ %6632, %6631 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1321) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1321) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1320) #10
  br label %6669

6636:                                             ; preds = %6428
  %6637 = landingpad { ptr, i32 }
          cleanup
  br label %6643

6638:                                             ; preds = %6429
  %6639 = landingpad { ptr, i32 }
          cleanup
  br label %6642

6640:                                             ; preds = %6430
  %6641 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1324) #10
  br label %6642

6642:                                             ; preds = %6640, %6638
  %.pn2480 = phi { ptr, i32 } [ %6641, %6640 ], [ %6639, %6638 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1324) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1323) #10
  br label %6643

6643:                                             ; preds = %6642, %6636
  %.pn2480.pn = phi { ptr, i32 } [ %.pn2480, %6642 ], [ %6637, %6636 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1323) #10
  br label %6668

6644:                                             ; preds = %6431
  %6645 = landingpad { ptr, i32 }
          cleanup
  br label %6668

6646:                                             ; preds = %6432
  %6647 = landingpad { ptr, i32 }
          cleanup
  br label %6662

6648:                                             ; preds = %6433
  %6649 = landingpad { ptr, i32 }
          cleanup
  br label %6661

6650:                                             ; preds = %6436, %6434
  %6651 = landingpad { ptr, i32 }
          cleanup
  br label %6660

6652:                                             ; preds = %6437
  %6653 = landingpad { ptr, i32 }
          cleanup
  br label %6659

6654:                                             ; preds = %6438
  %6655 = landingpad { ptr, i32 }
          cleanup
  br label %6658

6656:                                             ; preds = %6439
  %6657 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1330) #10
  br label %6658

6658:                                             ; preds = %6656, %6654
  %.pn2483 = phi { ptr, i32 } [ %6657, %6656 ], [ %6655, %6654 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1329) #10
  br label %6659

6659:                                             ; preds = %6658, %6652
  %.pn2483.pn = phi { ptr, i32 } [ %.pn2483, %6658 ], [ %6653, %6652 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1328) #10
  br label %6660

6660:                                             ; preds = %6659, %6650
  %.pn2483.pn.pn = phi { ptr, i32 } [ %.pn2483.pn, %6659 ], [ %6651, %6650 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1327) #10
  br label %6661

6661:                                             ; preds = %6660, %6648
  %.pn2483.pn.pn.pn = phi { ptr, i32 } [ %.pn2483.pn.pn, %6660 ], [ %6649, %6648 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1326) #10
  br label %6662

6662:                                             ; preds = %6661, %6646
  %.pn2483.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2483.pn.pn.pn, %6661 ], [ %6647, %6646 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1325) #10
  br label %6668

6663:                                             ; preds = %6441
  %6664 = landingpad { ptr, i32 }
          cleanup
  br label %6667

6665:                                             ; preds = %6442
  %6666 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1332) #10
  br label %6667

6667:                                             ; preds = %6665, %6663
  %.pn2489 = phi { ptr, i32 } [ %6666, %6665 ], [ %6664, %6663 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1333) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1332) #10
  br label %6668

6668:                                             ; preds = %6667, %6662, %6644, %6643
  %.pn2489.pn = phi { ptr, i32 } [ %.pn2489, %6667 ], [ %.pn2483.pn.pn.pn.pn, %6662 ], [ %6645, %6644 ], [ %.pn2480.pn, %6643 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1319) #10
  br label %6669

6669:                                             ; preds = %6668, %6635
  %.pn2489.pn.pn = phi { ptr, i32 } [ %.pn2489.pn, %6668 ], [ %.pn2478, %6635 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1319) #10
  br label %6670

6670:                                             ; preds = %6669, %6630, %6604
  %.pn2489.pn.pn.pn = phi { ptr, i32 } [ %.pn2489.pn.pn, %6669 ], [ %.pn2469.pn.pn.pn.pn.pn.pn.pn, %6630 ], [ %.pn2462.pn.pn.pn.pn.pn, %6604 ]
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %1300) #10
  br label %6671

6671:                                             ; preds = %6670, %6584, %6578
  %.pn2489.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2489.pn.pn.pn, %6670 ], [ %.pn2460, %6584 ], [ %6579, %6578 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %1300) #10
  br label %6672

6672:                                             ; preds = %6671, %6577
  %.pn2489.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2489.pn.pn.pn.pn, %6671 ], [ %.pn2457.pn, %6577 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1294) #10
  br label %6673

6673:                                             ; preds = %6672, %6569
  %.pn2489.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2489.pn.pn.pn.pn.pn, %6672 ], [ %.pn2455, %6569 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1294) #10
  br label %6674

6674:                                             ; preds = %6673, %6564, %6558
  %.pn2489.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2489.pn.pn.pn.pn.pn.pn, %6673 ], [ %.pn2453, %6564 ], [ %6559, %6558 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1288) #10
  br label %6675

6675:                                             ; preds = %6674, %6557
  %.pn2489.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2489.pn.pn.pn.pn.pn.pn.pn, %6674 ], [ %.pn2451, %6557 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1288) #10
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1287) #10
  br label %6676

6676:                                             ; preds = %6675, %6551
  %.pn2489.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2489.pn.pn.pn.pn.pn.pn.pn.pn, %6675 ], [ %6552, %6551 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1287) #10
  br label %6795

6677:                                             ; preds = %6445, %6443
  %6678 = landingpad { ptr, i32 }
          cleanup
  br label %6794

6679:                                             ; preds = %6448
  %6680 = landingpad { ptr, i32 }
          cleanup
  br label %6683

6681:                                             ; preds = %6449
  %6682 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1336) #10
  br label %6683

6683:                                             ; preds = %6681, %6679
  %.pn2500 = phi { ptr, i32 } [ %6682, %6681 ], [ %6680, %6679 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1337) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1337) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1336) #10
  br label %6793

6684:                                             ; preds = %6450
  %6685 = landingpad { ptr, i32 }
          cleanup
  br label %6688

6686:                                             ; preds = %6451
  %6687 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1339) #10
  br label %6688

6688:                                             ; preds = %6686, %6684
  %.pn2502 = phi { ptr, i32 } [ %6687, %6686 ], [ %6685, %6684 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1340) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1340) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1339) #10
  br label %6792

6689:                                             ; preds = %6452
  %6690 = landingpad { ptr, i32 }
          cleanup
  br label %6693

6691:                                             ; preds = %6453
  %6692 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1342) #10
  br label %6693

6693:                                             ; preds = %6691, %6689
  %.pn2504 = phi { ptr, i32 } [ %6692, %6691 ], [ %6690, %6689 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1343) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1343) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1342) #10
  br label %6791

6694:                                             ; preds = %6454
  %6695 = landingpad { ptr, i32 }
          cleanup
  br label %6698

6696:                                             ; preds = %6455
  %6697 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1345) #10
  br label %6698

6698:                                             ; preds = %6696, %6694
  %.pn2506 = phi { ptr, i32 } [ %6697, %6696 ], [ %6695, %6694 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %1346) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1346) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1345) #10
  br label %6790

6699:                                             ; preds = %6456
  %6700 = landingpad { ptr, i32 }
          cleanup
  br label %6789

6701:                                             ; preds = %6457
  %6702 = landingpad { ptr, i32 }
          cleanup
  br label %6714

6703:                                             ; preds = %6458
  %6704 = landingpad { ptr, i32 }
          cleanup
  br label %6713

6705:                                             ; preds = %6459
  %6706 = landingpad { ptr, i32 }
          cleanup
  br label %6712

6707:                                             ; preds = %6460
  %6708 = landingpad { ptr, i32 }
          cleanup
  br label %6711

6709:                                             ; preds = %6461
  %6710 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1352) #10
  br label %6711

6711:                                             ; preds = %6709, %6707
  %.pn2508 = phi { ptr, i32 } [ %6710, %6709 ], [ %6708, %6707 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1352) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1348) #10
  br label %6712

6712:                                             ; preds = %6711, %6705
  %.pn2508.pn = phi { ptr, i32 } [ %.pn2508, %6711 ], [ %6706, %6705 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1351) #10
  br label %6713

6713:                                             ; preds = %6712, %6703
  %.pn2508.pn.pn = phi { ptr, i32 } [ %.pn2508.pn, %6712 ], [ %6704, %6703 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1350) #10
  br label %6714

6714:                                             ; preds = %6713, %6701
  %.pn2508.pn.pn.pn = phi { ptr, i32 } [ %.pn2508.pn.pn, %6713 ], [ %6702, %6701 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1349) #10
  br label %6789

6715:                                             ; preds = %6462
  %6716 = landingpad { ptr, i32 }
          cleanup
  br label %6788

6717:                                             ; preds = %6463
  %6718 = landingpad { ptr, i32 }
          cleanup
  br label %6721

6719:                                             ; preds = %6464
  %6720 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1357) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1356) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1355) #10
  br label %6721

6721:                                             ; preds = %6719, %6717
  %.pn2513 = phi { ptr, i32 } [ %6720, %6719 ], [ %6718, %6717 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1354) #10
  br label %6788

6722:                                             ; preds = %6491, %6481, %6469, %6465
  %6723 = landingpad { ptr, i32 }
          cleanup
  br label %6787

6724:                                             ; preds = %6466
  %6725 = landingpad { ptr, i32 }
          cleanup
  br label %6731

6726:                                             ; preds = %6467
  %6727 = landingpad { ptr, i32 }
          cleanup
  br label %6730

6728:                                             ; preds = %6468
  %6729 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1361) #10
  br label %6730

6730:                                             ; preds = %6728, %6726
  %.pn2515 = phi { ptr, i32 } [ %6729, %6728 ], [ %6727, %6726 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1361) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1359) #10
  br label %6731

6731:                                             ; preds = %6730, %6724
  %.pn2515.pn = phi { ptr, i32 } [ %.pn2515, %6730 ], [ %6725, %6724 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1360) #10
  br label %6787

6732:                                             ; preds = %6470
  %6733 = landingpad { ptr, i32 }
          cleanup
  br label %6748

6734:                                             ; preds = %6471
  %6735 = landingpad { ptr, i32 }
          cleanup
  br label %6747

6736:                                             ; preds = %6473
  %6737 = landingpad { ptr, i32 }
          cleanup
  br label %6746

6738:                                             ; preds = %6475
  %6739 = landingpad { ptr, i32 }
          cleanup
  br label %6745

6740:                                             ; preds = %6476
  %6741 = landingpad { ptr, i32 }
          cleanup
  br label %6744

6742:                                             ; preds = %6477
  %6743 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1365) #10
  br label %6744

6744:                                             ; preds = %6742, %6740
  %.pn2518 = phi { ptr, i32 } [ %6743, %6742 ], [ %6741, %6740 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1366) #10
  br label %6745

6745:                                             ; preds = %6744, %6738
  %.pn2518.pn = phi { ptr, i32 } [ %.pn2518, %6744 ], [ %6739, %6738 ]
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1367) #10
  br label %6746

6746:                                             ; preds = %6745, %6736
  %.pn2518.pn.pn = phi { ptr, i32 } [ %.pn2518.pn, %6745 ], [ %6737, %6736 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1368) #10
  br label %6747

6747:                                             ; preds = %6746, %6734
  %.pn2518.pn.pn.pn = phi { ptr, i32 } [ %.pn2518.pn.pn, %6746 ], [ %6735, %6734 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1367) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1365) #10
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1363) #10
  br label %6748

6748:                                             ; preds = %6747, %6732
  %.pn2518.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2518.pn.pn.pn, %6747 ], [ %6733, %6732 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1364) #10
  br label %6787

6749:                                             ; preds = %6478
  %6750 = landingpad { ptr, i32 }
          cleanup
  br label %6756

6751:                                             ; preds = %6479
  %6752 = landingpad { ptr, i32 }
          cleanup
  br label %6755

6753:                                             ; preds = %6480
  %6754 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1371) #10
  br label %6755

6755:                                             ; preds = %6753, %6751
  %.pn2524 = phi { ptr, i32 } [ %6754, %6753 ], [ %6752, %6751 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1371) #10
  call void @_ZN6Halide7FuncRefD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1370) #10
  br label %6756

6756:                                             ; preds = %6755, %6749
  %.pn2524.pn = phi { ptr, i32 } [ %.pn2524, %6755 ], [ %6750, %6749 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1370) #10
  br label %6787

6757:                                             ; preds = %6482
  %6758 = landingpad { ptr, i32 }
          cleanup
  br label %6773

6759:                                             ; preds = %6483
  %6760 = landingpad { ptr, i32 }
          cleanup
  br label %6772

6761:                                             ; preds = %6486, %6484
  %6762 = landingpad { ptr, i32 }
          cleanup
  br label %6771

6763:                                             ; preds = %6487
  %6764 = landingpad { ptr, i32 }
          cleanup
  br label %6770

6765:                                             ; preds = %6488
  %6766 = landingpad { ptr, i32 }
          cleanup
  br label %6769

6767:                                             ; preds = %6489
  %6768 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1377) #10
  br label %6769

6769:                                             ; preds = %6767, %6765
  %.pn2527 = phi { ptr, i32 } [ %6768, %6767 ], [ %6766, %6765 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1376) #10
  br label %6770

6770:                                             ; preds = %6769, %6763
  %.pn2527.pn = phi { ptr, i32 } [ %.pn2527, %6769 ], [ %6764, %6763 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1375) #10
  br label %6771

6771:                                             ; preds = %6770, %6761
  %.pn2527.pn.pn = phi { ptr, i32 } [ %.pn2527.pn, %6770 ], [ %6762, %6761 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1374) #10
  br label %6772

6772:                                             ; preds = %6771, %6759
  %.pn2527.pn.pn.pn = phi { ptr, i32 } [ %.pn2527.pn.pn, %6771 ], [ %6760, %6759 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1373) #10
  br label %6773

6773:                                             ; preds = %6772, %6757
  %.pn2527.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2527.pn.pn.pn, %6772 ], [ %6758, %6757 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1372) #10
  br label %6787

6774:                                             ; preds = %6492
  %6775 = landingpad { ptr, i32 }
          cleanup
  br label %6781

6776:                                             ; preds = %6493
  %6777 = landingpad { ptr, i32 }
          cleanup
  br label %6780

6778:                                             ; preds = %6494
  %6779 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1380) #10
  br label %6780

6780:                                             ; preds = %6778, %6776
  %.pn2533 = phi { ptr, i32 } [ %6779, %6778 ], [ %6777, %6776 ]
  call void @_ZN6Halide8Internal12IntrusivePtrIKNS0_6IRNodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1379) #10
  br label %6781

6781:                                             ; preds = %6780, %6774
  %.pn2533.pn = phi { ptr, i32 } [ %.pn2533, %6780 ], [ %6775, %6774 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1378) #10
  br label %6787

6782:                                             ; preds = %6496
  %6783 = landingpad { ptr, i32 }
          cleanup
  br label %6786

6784:                                             ; preds = %6497
  %6785 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Halide8PipelineD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %1382) #10
  br label %6786

6786:                                             ; preds = %6784, %6782
  %.pn2536 = phi { ptr, i32 } [ %6785, %6784 ], [ %6783, %6782 ]
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1383) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1382) #10
  br label %6787

6787:                                             ; preds = %6786, %6781, %6773, %6756, %6748, %6731, %6722
  %.pn2536.pn = phi { ptr, i32 } [ %.pn2536, %6786 ], [ %.pn2533.pn, %6781 ], [ %6723, %6722 ], [ %.pn2527.pn.pn.pn.pn, %6773 ], [ %.pn2524.pn, %6756 ], [ %.pn2518.pn.pn.pn.pn, %6748 ], [ %.pn2515.pn, %6731 ]
  call void @_ZN6Halide4RDomD2Ev(ptr noundef nonnull align 8 dereferenceable(200) %1353) #10
  br label %6788

6788:                                             ; preds = %6787, %6721, %6715
  %.pn2536.pn.pn = phi { ptr, i32 } [ %.pn2536.pn, %6787 ], [ %.pn2513, %6721 ], [ %6716, %6715 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %1353) #10
  br label %6789

6789:                                             ; preds = %6788, %6714, %6699
  %.pn2536.pn.pn.pn = phi { ptr, i32 } [ %.pn2536.pn.pn, %6788 ], [ %.pn2508.pn.pn.pn, %6714 ], [ %6700, %6699 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1344) #10
  br label %6790

6790:                                             ; preds = %6789, %6698
  %.pn2536.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2536.pn.pn.pn, %6789 ], [ %.pn2506, %6698 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1344) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1341) #10
  br label %6791

6791:                                             ; preds = %6790, %6693
  %.pn2536.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2536.pn.pn.pn.pn, %6790 ], [ %.pn2504, %6693 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1341) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1338) #10
  br label %6792

6792:                                             ; preds = %6791, %6688
  %.pn2536.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2536.pn.pn.pn.pn.pn, %6791 ], [ %.pn2502, %6688 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1338) #10
  call void @_ZN6Halide4FuncD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %1335) #10
  br label %6793

6793:                                             ; preds = %6792, %6683
  %.pn2536.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2536.pn.pn.pn.pn.pn.pn, %6792 ], [ %.pn2500, %6683 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1335) #10
  call void @_ZN6Halide16OutputImageParamD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %1334) #10
  br label %6794

6794:                                             ; preds = %6793, %6677
  %.pn2536.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2536.pn.pn.pn.pn.pn.pn.pn, %6793 ], [ %6678, %6677 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %1334) #10
  br label %6795

6795:                                             ; preds = %6794, %6676, %6550, %6118, %6034, %5930, %5598, %5382, %5277, %5232, %5179, %5029, %4912, %4826, %4693, %4031, %3897, %3746, %3379, %3212, %2730, %.loopexit, %2474, %2229, %1990, %1582
  %.pn2698.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2698.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %1990 ], [ %.pn2680.pn.pn.pn.pn.pn.pn.pn.pn.pn, %.loopexit ], [ %.pn2668.pn.pn.pn.pn.pn.pn.pn.pn, %3212 ], [ %.pn2656.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3746 ], [ %.pn2636.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4693 ], [ %.pn2610.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5930 ], [ %.pn2593.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6550 ], [ %.pn2536.pn.pn.pn.pn.pn.pn.pn.pn, %6794 ], [ %.pn2489.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6676 ], [ %.pn2419.pn.pn.pn.pn.pn, %6118 ], [ %.pn2386.pn.pn.pn.pn.pn.pn, %6034 ], [ %.pn2300.pn.pn.pn.pn.pn.pn.pn.pn.pn, %5598 ], [ %.pn2221.pn.pn.pn.pn.pn.pn.pn.pn, %5382 ], [ %.pn2189.pn.pn.pn, %5277 ], [ %.pn2171.pn.pn.pn.pn, %5232 ], [ %.pn2147.pn.pn.pn.pn.pn.pn.pn, %5179 ], [ %.pn2093.pn.pn.pn.pn.pn.pn, %5029 ], [ %.pn2050.pn.pn.pn.pn.pn, %4912 ], [ %.pn2015.pn.pn.pn.pn.pn.pn.pn, %4826 ], [ %.pn1909.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %4031 ], [ %.pn1865.pn.pn.pn.pn.pn.pn, %3897 ], [ %.pn1764.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3379 ], [ %.pn1612.pn.pn.pn.pn, %2730 ], [ %.pn1571.pn.pn.pn.pn, %2474 ], [ %.pn1486.pn.pn.pn, %2229 ], [ %.pn1360.pn.pn.pn.pn, %1582 ]
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  br label %6796

6796:                                             ; preds = %6795, %1482
  %.pn2698.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2698.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6795 ], [ %.pn1326, %1482 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #10
  call void @_ZN6Halide3VarD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #10
  br label %6797

6797:                                             ; preds = %6796, %1477
  %.pn2698.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2698.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6796 ], [ %.pn1324, %1477 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #10
  br label %6799

6798:                                             ; preds = %6498, %1384
  %.0 = phi i32 [ 1, %1384 ], [ 0, %6498 ]
  ret i32 %.0

6799:                                             ; preds = %6797, %1472
  %.pn2698.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn2698.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %6797 ], [ %.pn, %1472 ]
  resume { ptr, i32 } %.pn2698.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

declare void @_ZN6Halide11load_pluginERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 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 #4 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6Halide13MachineParamsC2Eimf(ptr noundef nonnull align 8 dereferenceable(20), i32 noundef, i64 noundef, float noundef) unnamed_addr #4 align 2

declare void @_ZN6Halide6TargetC1EPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) unnamed_addr #2

declare void @_ZN6Halide3VarC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2

declare void @_ZN6Halide4FuncC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2

declare void @_ZN6HalidemlENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @_ZN6HalideplENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Halide3VarcvNS_4ExprEEv(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6 align 2

declare void @_ZN6Halide7FuncRefaSENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef) local_unnamed_addr #2

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

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

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

declare void @_ZN6HalideplENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @_ZN6HalidemlERKNS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #2

declare void @_ZNK6Halide7FuncRefcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #2

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZN6Halide4Func12set_estimateENS_3VarENS_4ExprES2_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6Halide4FuncC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #7 align 2

declare void @_ZN6Halide8PipelineC1ENS_4FuncE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) unnamed_addr #2

declare void @_ZN6Halide8Pipeline13auto_scheduleERKNS_6TargetERKNS_13MachineParamsE(ptr dead_on_unwind writable sret(%"struct.Halide::AutoSchedulerResults") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(20)) local_unnamed_addr #2

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

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

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

declare void @_ZN6HalidemlEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, i32 noundef, ptr noundef) local_unnamed_addr #2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidepLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJNS_4ExprEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS4_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6 align 2

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

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

declare void @_ZN6HalidemiENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6 align 2

declare void @_ZN6Halide4FuncC1Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Halide6BufferIfEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6Halide6BufferIfED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4 align 2

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

declare void @_ZN6Halide3VarC1Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN6HalidemLERNS_4ExprES0_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #2

declare void @_ZN6HalideplEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, i32 noundef, ptr noundef) local_unnamed_addr #2

declare void @_ZN6Halide4sqrtENS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJRNS_3VarES3_S3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, 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)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJNS_4ExprERNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeES2_DpOS6_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJRNS_3VarES3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6 align 2

declare void @_ZN6Halide3powENS_4ExprES0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Halide6BufferIfEclIJNS_3VarEEEENS_4ExprES4_DpT_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, ptr noundef) local_unnamed_addr #5 align 2

declare void @_ZN6Halide7FuncRefpLENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZN6Halide4RDomC2IJEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef, ptr noundef) unnamed_addr #6 align 2

declare void @_ZNK6Halide4RDomcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(200)) local_unnamed_addr #2

declare void @_ZN6Halide7FuncRefmLENS_4ExprE(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef) local_unnamed_addr #2

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

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

declare void @_ZN6Halide7FuncRefaSERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #2

declare void @_ZN6Halide7FuncRefpLERKS0_(ptr dead_on_unwind writable sret(%"class.Halide::Stage") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #2

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

declare void @_ZN6Halide3minENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Halide6BufferIhEclIJEEENS_4ExprES3_DpT_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJRNS_3VarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6Halide4castImEENS_4ExprES1_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef) local_unnamed_addr #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6Halide6BufferIhED2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN6Halide6BufferIfE4fillIfEERS1_OT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJRNS_4RDomEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(200)) local_unnamed_addr #6 align 2

declare void @_ZN6HalidemiEiNS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES3_DpOS4_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #6 align 2

declare void @_ZN6Halide5clampENS_4ExprES0_S0_(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZN6Halide4RDomC2IJiiEEENS_4ExprES2_DpOT_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #6 align 2

declare void @_ZNK6Halide4RVarcvNS_4ExprEEv(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(44)) local_unnamed_addr #2

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

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

declare void @_ZN6Halide8PipelineC1ERKSt6vectorINS_4FuncESaIS2_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { i64, ptr } @_ZN6Halide5FloatEii(i32 noundef, i32 noundef) local_unnamed_addr #8

declare void @_ZN6Halide10ImageParamC1ENS_4TypeEi(ptr noundef nonnull align 8 dereferenceable(56), i64, ptr, i32 noundef) unnamed_addr #2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_EEENS_4ExprEDpOT_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6 align 2

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

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide10ImageParamclIJRNS_3VarES3_S3_S3_S3_S3_S3_EEENS_4ExprEDpOT_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(56), 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), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJRNS_3VarES3_S3_S3_S3_S3_S3_EEENSt9enable_ifIXsr8Internal19all_are_convertibleIS2_DpT_EE5valueENS_7FuncRefEE4typeEDpOS5_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, 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), 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)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide10ImageParamclIJNS_4ExprERNS_3VarEEEES2_DpOT_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6Halide4castIiEENS_4ExprES1_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef) local_unnamed_addr #8

declare void @_ZN6Halide3sinENS_4ExprE(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJiEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES3_DpOS4_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_3VarEDpT_EE5valueENS_7FuncRefEE4typeEDpOS4_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) local_unnamed_addr #7

declare void @_ZN6Halide18BoundaryConditions11repeat_edgeERKNS_4FuncERKSt6vectorINS_5RangeESaIS5_EE(ptr dead_on_unwind writable sret(%"class.Halide::Func") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2

declare void @_ZN6Halide5RangeC1ERKNS_4ExprES3_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2

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

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

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

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

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

declare void @_ZN6HalidedvENS_4ExprEi(ptr dead_on_unwind writable sret(%"struct.Halide::Expr") align 8, ptr noundef, i32 noundef) local_unnamed_addr #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { i64, ptr } @_ZN6Halide3IntEii(i32 noundef, i32 noundef) local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6Halide4castIjEENS_4ExprES1_(ptr dead_on_unwind noalias writable sret(%"struct.Halide::Expr") align 8, ptr noundef) local_unnamed_addr #8

; Function Attrs: mustprogress noinline uwtable
declare dso_local void @_ZNK6Halide4FuncclIJRNS_4RVarEEEENSt9enable_ifIXsr8Internal19all_are_convertibleINS_4ExprEDpT_EE5valueENS_7FuncRefEE4typeES5_DpOS6_(ptr dead_on_unwind noalias writable sret(%"class.Halide::FuncRef") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(44)) local_unnamed_addr #6 align 2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = distinct !{!11, !10}
!12 = distinct !{!12, !10}
!13 = distinct !{!13, !10}
!14 = distinct !{!14, !10}
!15 = !{!16, !16, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"int", !7, i64 0}
!19 = distinct !{!19, !10}
!20 = distinct !{!20, !10}
!21 = distinct !{!21, !10}
!22 = distinct !{!22, !10}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass