; LLVM IR from huawei-noah/bolt :: compute/tensor/tests/test_dilated_convolution.ll (Z22dilatedConvolutionTestiPPc8DataType)

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

%struct.ArchInfo = type { i32, ptr }
%struct.ActivationParamSpec = type { i32, [4 x float] }
%struct.TensorDesc = type { i32, i32, i32, [20 x i32] }
%struct.ConvolutionParamSpec = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %union.ActivationSpec, i32, i32, i32, i32 }
%union.ActivationSpec = type { %struct.ClipParamSpec }
%struct.ClipParamSpec = type { float, float }
%class.Tensor = type { %"class.std::shared_ptr", %"class.std::shared_ptr.0" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.0" = type { %"class.std::__shared_ptr.1" }
%"class.std::__shared_ptr.1" = type { ptr, %"class.std::__shared_count" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl" }
%"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl" = type { %"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }

@.str = external hidden unnamed_addr constant [20 x i8], align 1
@stdout = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [23 x i8], align 1
@_ZL15UT_CPU_ARCHINFO = external hidden global %struct.ArchInfo, align 8
@.str.2 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZL18UT_SERIAL_ARCHINFO = external hidden global %struct.ArchInfo, align 8
@.str.3 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [19 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z22dilatedConvolutionTestiPPc8DataType(i32 noundef %0, ptr noundef %1, i32 noundef %2) #0 personality ptr @__gxx_personality_v0 {
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca %struct.ActivationParamSpec, align 4
  %26 = alloca %struct.TensorDesc, align 4
  %27 = alloca %struct.TensorDesc, align 4
  %28 = alloca %struct.TensorDesc, align 4
  %29 = alloca %struct.TensorDesc, align 4
  %30 = alloca %struct.ConvolutionParamSpec, align 4
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca %class.Tensor, align 8
  %35 = alloca %class.Tensor, align 8
  %36 = alloca ptr, align 8
  %37 = alloca i32, align 4
  %38 = alloca %class.Tensor, align 8
  %39 = alloca %class.Tensor, align 8
  %40 = alloca %class.Tensor, align 8
  %41 = alloca %class.Tensor, align 8
  %42 = alloca %class.Tensor, align 8
  %43 = alloca %struct.TensorDesc, align 8
  %44 = alloca %struct.TensorDesc, align 8
  %45 = alloca %struct.TensorDesc, align 8
  %46 = alloca %struct.TensorDesc, align 8
  %47 = alloca %struct.TensorDesc, align 8
  %48 = alloca %class.Tensor, align 8
  %49 = alloca %class.Tensor, align 8
  %50 = alloca %class.Tensor, align 8
  %51 = alloca %struct.TensorDesc, align 8
  %52 = alloca %class.Tensor, align 8
  %53 = alloca %struct.TensorDesc, align 8
  %54 = alloca %class.Tensor, align 8
  %55 = alloca %struct.TensorDesc, align 8
  %56 = alloca i32, align 4
  %57 = alloca %class.Tensor, align 8
  %58 = alloca %struct.ConvolutionParamSpec, align 8
  %59 = alloca i32, align 4
  %60 = alloca %struct.TensorDesc, align 8
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca %class.Tensor, align 8
  %65 = alloca %class.Tensor, align 8
  %66 = alloca %class.Tensor, align 8
  %67 = alloca %struct.ConvolutionParamSpec, align 8
  %68 = alloca %struct.ActivationParamSpec, align 8
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca %class.Tensor, align 8
  %73 = alloca %class.Tensor, align 8
  %74 = alloca %class.Tensor, align 8
  %75 = alloca %struct.ConvolutionParamSpec, align 8
  %76 = alloca i32, align 4
  %77 = alloca %class.Tensor, align 8
  %78 = alloca %struct.TensorDesc, align 8
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca %class.Tensor, align 8
  %82 = alloca %struct.ConvolutionParamSpec, align 8
  %83 = alloca i32, align 4
  %84 = alloca %class.Tensor, align 8
  %85 = alloca %struct.TensorDesc, align 8
  %86 = alloca i32, align 4
  %87 = alloca %class.Tensor, align 8
  %88 = alloca %struct.ConvolutionParamSpec, align 8
  %89 = alloca %class.Tensor, align 8
  %90 = alloca i32, align 4
  %91 = alloca %"class.std::vector", align 8
  %92 = alloca %"class.std::allocator", align 1
  %93 = alloca %"class.std::vector", align 8
  %94 = alloca %"class.std::allocator", align 1
  %95 = alloca %"class.std::vector", align 8
  %96 = alloca %"class.std::allocator", align 1
  %97 = alloca i32, align 4
  %98 = alloca %"class.std::vector", align 8
  %99 = alloca %class.Tensor, align 8
  %100 = alloca %struct.ConvolutionParamSpec, align 8
  %101 = alloca %class.Tensor, align 8
  %102 = alloca %"class.std::vector", align 8
  %103 = alloca %class.Tensor, align 8
  %104 = alloca %struct.ActivationParamSpec, align 8
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca %"class.std::vector", align 8
  %108 = alloca %class.Tensor, align 8
  %109 = alloca %struct.ConvolutionParamSpec, align 8
  %110 = alloca %class.Tensor, align 8
  %111 = alloca %"class.std::vector", align 8
  %112 = alloca %class.Tensor, align 8
  %113 = alloca %struct.ActivationParamSpec, align 8
  %114 = alloca i32, align 4
  %115 = alloca %class.Tensor, align 8
  %116 = alloca %class.Tensor, align 8
  %117 = alloca double, align 8
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca %"class.std::vector", align 8
  %121 = alloca %class.Tensor, align 8
  %122 = alloca %struct.ConvolutionParamSpec, align 8
  %123 = alloca %class.Tensor, align 8
  %124 = alloca %"class.std::vector", align 8
  %125 = alloca %class.Tensor, align 8
  %126 = alloca %struct.ActivationParamSpec, align 8
  %127 = alloca i32, align 4
  %128 = alloca double, align 8
  %129 = alloca double, align 8
  %130 = alloca [150 x i8], align 16
  %131 = alloca [120 x i8], align 16
  %132 = alloca double, align 8
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  store i32 %2, ptr %6, align 4, !tbaa !11
  %133 = load i32, ptr %4, align 4, !tbaa !5
  %134 = icmp eq i32 %133, 17
  br i1 %134, label %145, label %135

135:                                              ; preds = %3
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %136 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %137 = trunc i64 %136 to i32
  store i32 %137, ptr %7, align 4, !tbaa !5
  %138 = load i32, ptr %7, align 4, !tbaa !5
  %139 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %138)
  %140 = load ptr, ptr @stdout, align 8, !tbaa !9
  %141 = call i32 @fflush(ptr noundef %140)
  %142 = call i32 (ptr, ...) @printf(ptr noundef @.str.1)
  %143 = load ptr, ptr @stdout, align 8, !tbaa !9
  %144 = call i32 @fflush(ptr noundef %143)
  call void @exit(i32 noundef 1) #12
  unreachable

145:                                              ; preds = %3
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %146 = load ptr, ptr %5, align 8, !tbaa !9
  %147 = getelementptr inbounds ptr, ptr %146, i64 1
  %148 = load ptr, ptr %147, align 8, !tbaa !9
  %149 = call i32 @atoi(ptr noundef %148) #13
  store i32 %149, ptr %8, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #11
  %150 = load ptr, ptr %5, align 8, !tbaa !9
  %151 = getelementptr inbounds ptr, ptr %150, i64 2
  %152 = load ptr, ptr %151, align 8, !tbaa !9
  %153 = call i32 @atoi(ptr noundef %152) #13
  store i32 %153, ptr %9, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #11
  %154 = load ptr, ptr %5, align 8, !tbaa !9
  %155 = getelementptr inbounds ptr, ptr %154, i64 3
  %156 = load ptr, ptr %155, align 8, !tbaa !9
  %157 = call i32 @atoi(ptr noundef %156) #13
  store i32 %157, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #11
  %158 = load ptr, ptr %5, align 8, !tbaa !9
  %159 = getelementptr inbounds ptr, ptr %158, i64 4
  %160 = load ptr, ptr %159, align 8, !tbaa !9
  %161 = call i32 @atoi(ptr noundef %160) #13
  store i32 %161, ptr %11, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #11
  %162 = load ptr, ptr %5, align 8, !tbaa !9
  %163 = getelementptr inbounds ptr, ptr %162, i64 5
  %164 = load ptr, ptr %163, align 8, !tbaa !9
  %165 = call i32 @atoi(ptr noundef %164) #13
  store i32 %165, ptr %12, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #11
  %166 = load ptr, ptr %5, align 8, !tbaa !9
  %167 = getelementptr inbounds ptr, ptr %166, i64 6
  %168 = load ptr, ptr %167, align 8, !tbaa !9
  %169 = call i32 @atoi(ptr noundef %168) #13
  store i32 %169, ptr %13, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  %170 = load ptr, ptr %5, align 8, !tbaa !9
  %171 = getelementptr inbounds ptr, ptr %170, i64 7
  %172 = load ptr, ptr %171, align 8, !tbaa !9
  %173 = call i32 @atoi(ptr noundef %172) #13
  store i32 %173, ptr %14, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #11
  %174 = load ptr, ptr %5, align 8, !tbaa !9
  %175 = getelementptr inbounds ptr, ptr %174, i64 8
  %176 = load ptr, ptr %175, align 8, !tbaa !9
  %177 = call i32 @atoi(ptr noundef %176) #13
  store i32 %177, ptr %15, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #11
  %178 = load ptr, ptr %5, align 8, !tbaa !9
  %179 = getelementptr inbounds ptr, ptr %178, i64 9
  %180 = load ptr, ptr %179, align 8, !tbaa !9
  %181 = call i32 @atoi(ptr noundef %180) #13
  store i32 %181, ptr %16, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #11
  %182 = load ptr, ptr %5, align 8, !tbaa !9
  %183 = getelementptr inbounds ptr, ptr %182, i64 10
  %184 = load ptr, ptr %183, align 8, !tbaa !9
  %185 = call i32 @atoi(ptr noundef %184) #13
  store i32 %185, ptr %17, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #11
  %186 = load ptr, ptr %5, align 8, !tbaa !9
  %187 = getelementptr inbounds ptr, ptr %186, i64 11
  %188 = load ptr, ptr %187, align 8, !tbaa !9
  %189 = call i32 @atoi(ptr noundef %188) #13
  store i32 %189, ptr %18, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #11
  %190 = load ptr, ptr %5, align 8, !tbaa !9
  %191 = getelementptr inbounds ptr, ptr %190, i64 12
  %192 = load ptr, ptr %191, align 8, !tbaa !9
  %193 = call i32 @atoi(ptr noundef %192) #13
  store i32 %193, ptr %19, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  %194 = load ptr, ptr %5, align 8, !tbaa !9
  %195 = getelementptr inbounds ptr, ptr %194, i64 13
  %196 = load ptr, ptr %195, align 8, !tbaa !9
  %197 = call i32 @atoi(ptr noundef %196) #13
  store i32 %197, ptr %20, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  %198 = load ptr, ptr %5, align 8, !tbaa !9
  %199 = getelementptr inbounds ptr, ptr %198, i64 14
  %200 = load ptr, ptr %199, align 8, !tbaa !9
  %201 = call i32 @atoi(ptr noundef %200) #13
  store i32 %201, ptr %21, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #11
  %202 = load ptr, ptr %5, align 8, !tbaa !9
  %203 = getelementptr inbounds ptr, ptr %202, i64 15
  %204 = load ptr, ptr %203, align 8, !tbaa !9
  %205 = call i32 @atoi(ptr noundef %204) #13
  store i32 %205, ptr %22, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  %206 = load ptr, ptr %5, align 8, !tbaa !9
  %207 = getelementptr inbounds ptr, ptr %206, i64 16
  %208 = load ptr, ptr %207, align 8, !tbaa !9
  %209 = call i32 @atoi(ptr noundef %208) #13
  store i32 %209, ptr %23, align 4, !tbaa !5
  %210 = load i32, ptr %8, align 4, !tbaa !5
  %211 = icmp eq i32 %210, 1
  br i1 %211, label %212, label %215

212:                                              ; preds = %145
  %213 = load i32, ptr %20, align 4, !tbaa !5
  %214 = icmp eq i32 %213, 1
  br i1 %214, label %225, label %215

215:                                              ; preds = %212, %145
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  %216 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %217 = trunc i64 %216 to i32
  store i32 %217, ptr %24, align 4, !tbaa !5
  %218 = load i32, ptr %24, align 4, !tbaa !5
  %219 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %218)
  %220 = load ptr, ptr @stdout, align 8, !tbaa !9
  %221 = call i32 @fflush(ptr noundef %220)
  %222 = call i32 (ptr, ...) @printf(ptr noundef @.str.1)
  %223 = load ptr, ptr @stdout, align 8, !tbaa !9
  %224 = call i32 @fflush(ptr noundef %223)
  call void @exit(i32 noundef 1) #12
  unreachable

225:                                              ; preds = %212
  call void @llvm.lifetime.start.p0(i64 20, ptr %25) #11
  call void @_ZN19ActivationParamSpecC2Ev(ptr noundef nonnull align 4 dereferenceable(20) %25) #11
  %226 = getelementptr inbounds %struct.ActivationParamSpec, ptr %25, i32 0, i32 0
  store i32 1, ptr %226, align 4, !tbaa !13
  %227 = getelementptr inbounds %struct.ActivationParamSpec, ptr %25, i32 0, i32 1
  %228 = getelementptr inbounds [4 x float], ptr %227, i64 0, i64 0
  store float 0.000000e+00, ptr %228, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 92, ptr %26) #11
  call void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92) %26) #11
  call void @llvm.lifetime.start.p0(i64 92, ptr %27) #11
  %229 = load i32, ptr %6, align 4, !tbaa !11
  %230 = load i32, ptr %8, align 4, !tbaa !5
  %231 = load i32, ptr %9, align 4, !tbaa !5
  %232 = load i32, ptr %10, align 4, !tbaa !5
  %233 = load i32, ptr %11, align 4, !tbaa !5
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %27, i32 noundef %229, i32 noundef 2, i32 noundef %230, i32 noundef %231, i32 noundef %232, i32 noundef %233)
  call void @llvm.lifetime.start.p0(i64 92, ptr %28) #11
  %234 = load i32, ptr %6, align 4, !tbaa !11
  %235 = load i32, ptr %21, align 4, !tbaa !5
  %236 = load i32, ptr %9, align 4, !tbaa !5
  %237 = load i32, ptr %14, align 4, !tbaa !5
  %238 = load i32, ptr %15, align 4, !tbaa !5
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %28, i32 noundef %234, i32 noundef 0, i32 noundef %235, i32 noundef %236, i32 noundef %237, i32 noundef %238)
  call void @llvm.lifetime.start.p0(i64 92, ptr %29) #11
  %239 = load i32, ptr %6, align 4, !tbaa !11
  %240 = load i32, ptr %21, align 4, !tbaa !5
  call void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %29, i32 noundef %239, i32 noundef %240)
  call void @llvm.lifetime.start.p0(i64 108, ptr %30) #11
  %241 = load i32, ptr %16, align 4, !tbaa !5
  %242 = load i32, ptr %14, align 4, !tbaa !5
  %243 = load i32, ptr %15, align 4, !tbaa !5
  %244 = load i32, ptr %17, align 4, !tbaa !5
  %245 = load i32, ptr %17, align 4, !tbaa !5
  %246 = load i32, ptr %18, align 4, !tbaa !5
  %247 = load i32, ptr %18, align 4, !tbaa !5
  %248 = load i32, ptr %18, align 4, !tbaa !5
  %249 = load i32, ptr %18, align 4, !tbaa !5
  %250 = load i32, ptr %19, align 4, !tbaa !5
  %251 = load i32, ptr %19, align 4, !tbaa !5
  %252 = load i32, ptr %12, align 4, !tbaa !5
  call void @_Z26createConvolutionParamSpecjjjjjjjjjjjjjjjjj15ConvolutionMode(ptr dead_on_unwind writable sret(%struct.ConvolutionParamSpec) align 4 %30, i32 noundef %241, i32 noundef 1, i32 noundef %242, i32 noundef %243, i32 noundef 1, i32 noundef %244, i32 noundef %245, i32 noundef 0, i32 noundef 0, i32 noundef %246, i32 noundef %247, i32 noundef %248, i32 noundef %249, i32 noundef 1, i32 noundef %250, i32 noundef %251, i32 noundef %252, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #11
  %253 = load i32, ptr %8, align 4, !tbaa !5
  %254 = load i32, ptr %9, align 4, !tbaa !5
  %255 = mul i32 %253, %254
  %256 = load i32, ptr %10, align 4, !tbaa !5
  %257 = mul i32 %255, %256
  %258 = load i32, ptr %11, align 4, !tbaa !5
  %259 = mul i32 %257, %258
  %260 = load i32, ptr %6, align 4, !tbaa !11
  %261 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %259, i32 noundef %260, i32 noundef 0)
  store ptr %261, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #11
  %262 = load i32, ptr %12, align 4, !tbaa !5
  %263 = load i32, ptr %13, align 4, !tbaa !5
  %264 = mul i32 %262, %263
  %265 = load i32, ptr %14, align 4, !tbaa !5
  %266 = mul i32 %264, %265
  %267 = load i32, ptr %15, align 4, !tbaa !5
  %268 = mul i32 %266, %267
  %269 = load i32, ptr %6, align 4, !tbaa !11
  %270 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %268, i32 noundef %269, i32 noundef 0)
  store ptr %270, ptr %32, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #11
  %271 = load i32, ptr %21, align 4, !tbaa !5
  %272 = load i32, ptr %6, align 4, !tbaa !11
  %273 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %271, i32 noundef %272, i32 noundef 0)
  store ptr %273, ptr %33, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #11
  call void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %35, i32 noundef 1)
          to label %274 unwind label %365

274:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %38, i32 noundef 1)
          to label %275 unwind label %369

275:                                              ; preds = %274
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %39, i32 noundef 1)
          to label %276 unwind label %373

276:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %40, i32 noundef 1)
          to label %277 unwind label %377

277:                                              ; preds = %276
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %41, i32 noundef 1)
          to label %278 unwind label %381

278:                                              ; preds = %277
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %42, i32 noundef 1)
          to label %279 unwind label %385

279:                                              ; preds = %278
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %43, ptr align 4 %27, i64 92, i1 false), !tbaa.struct !18
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef byval(%struct.TensorDesc) align 8 %43)
          to label %280 unwind label %389

280:                                              ; preds = %279
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %44, ptr align 4 %27, i64 92, i1 false), !tbaa.struct !18
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef byval(%struct.TensorDesc) align 8 %44)
          to label %281 unwind label %389

281:                                              ; preds = %280
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %45, ptr align 4 %28, i64 92, i1 false), !tbaa.struct !18
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef byval(%struct.TensorDesc) align 8 %45)
          to label %282 unwind label %389

282:                                              ; preds = %281
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 %28, i64 92, i1 false), !tbaa.struct !18
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef byval(%struct.TensorDesc) align 8 %46)
          to label %283 unwind label %389

283:                                              ; preds = %282
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %47, ptr align 4 %29, i64 92, i1 false), !tbaa.struct !18
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef byval(%struct.TensorDesc) align 8 %47)
          to label %284 unwind label %389

284:                                              ; preds = %283
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %285 unwind label %389

285:                                              ; preds = %284
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %286 unwind label %389

286:                                              ; preds = %285
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %287 unwind label %389

287:                                              ; preds = %286
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %288 unwind label %389

288:                                              ; preds = %287
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %289 unwind label %389

289:                                              ; preds = %288
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  %290 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %48, i32 noundef 1)
          to label %291 unwind label %393

291:                                              ; preds = %289
  %292 = load ptr, ptr %31, align 8, !tbaa !9
  %293 = load i32, ptr %6, align 4, !tbaa !11
  %294 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %293)
          to label %295 unwind label %393

295:                                              ; preds = %291
  %296 = load i32, ptr %8, align 4, !tbaa !5
  %297 = mul i32 %294, %296
  %298 = load i32, ptr %9, align 4, !tbaa !5
  %299 = mul i32 %297, %298
  %300 = load i32, ptr %10, align 4, !tbaa !5
  %301 = mul i32 %299, %300
  %302 = load i32, ptr %11, align 4, !tbaa !5
  %303 = mul i32 %301, %302
  %304 = zext i32 %303 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %290, ptr noundef %292, i64 noundef %304)
          to label %305 unwind label %393

305:                                              ; preds = %295
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  %306 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %49, i32 noundef 1)
          to label %307 unwind label %397

307:                                              ; preds = %305
  %308 = load ptr, ptr %31, align 8, !tbaa !9
  %309 = load i32, ptr %6, align 4, !tbaa !11
  %310 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %309)
          to label %311 unwind label %397

311:                                              ; preds = %307
  %312 = load i32, ptr %8, align 4, !tbaa !5
  %313 = mul i32 %310, %312
  %314 = load i32, ptr %9, align 4, !tbaa !5
  %315 = mul i32 %313, %314
  %316 = load i32, ptr %10, align 4, !tbaa !5
  %317 = mul i32 %315, %316
  %318 = load i32, ptr %11, align 4, !tbaa !5
  %319 = mul i32 %317, %318
  %320 = zext i32 %319 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %306, ptr noundef %308, i64 noundef %320)
          to label %321 unwind label %397

321:                                              ; preds = %311
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  %322 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %50, i32 noundef 1)
          to label %323 unwind label %401

323:                                              ; preds = %321
  %324 = load ptr, ptr %32, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %51, ptr align 4 %28, i64 92, i1 false), !tbaa.struct !18
  %325 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %51)
          to label %326 unwind label %401

326:                                              ; preds = %323
  %327 = zext i32 %325 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %322, ptr noundef %324, i64 noundef %327)
          to label %328 unwind label %401

328:                                              ; preds = %326
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  %329 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %52, i32 noundef 1)
          to label %330 unwind label %405

330:                                              ; preds = %328
  %331 = load ptr, ptr %32, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %53, ptr align 4 %28, i64 92, i1 false), !tbaa.struct !18
  %332 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %53)
          to label %333 unwind label %405

333:                                              ; preds = %330
  %334 = zext i32 %332 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %329, ptr noundef %331, i64 noundef %334)
          to label %335 unwind label %405

335:                                              ; preds = %333
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  %336 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %54, i32 noundef 1)
          to label %337 unwind label %409

337:                                              ; preds = %335
  %338 = load ptr, ptr %33, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %55, ptr align 4 %29, i64 92, i1 false), !tbaa.struct !18
  %339 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %55)
          to label %340 unwind label %409

340:                                              ; preds = %337
  %341 = zext i32 %339 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %336, ptr noundef %338, i64 noundef %341)
          to label %342 unwind label %409

342:                                              ; preds = %340
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %58, ptr align 4 %30, i64 108, i1 false), !tbaa.struct !22
  %343 = load i32, ptr %6, align 4, !tbaa !11
  %344 = invoke noundef i32 @_Z29convolution_infer_output_sizeP6TensorS_20ConvolutionParamSpecS0_8DataTypeP8ArchInfo(ptr noundef %34, ptr noundef %57, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %58, ptr noundef %40, i32 noundef %343, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %345 unwind label %413

345:                                              ; preds = %342
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #11
  store i32 %344, ptr %56, align 4, !tbaa !28
  %346 = load i32, ptr %56, align 4, !tbaa !28
  %347 = icmp ne i32 %346, 0
  br i1 %347, label %348, label %421

348:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #11
  %349 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %350 = trunc i64 %349 to i32
  store i32 %350, ptr %59, align 4, !tbaa !5
  %351 = load i32, ptr %59, align 4, !tbaa !5
  %352 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %351)
          to label %353 unwind label %417

353:                                              ; preds = %348
  %354 = load ptr, ptr @stdout, align 8, !tbaa !9
  %355 = invoke i32 @fflush(ptr noundef %354)
          to label %356 unwind label %417

356:                                              ; preds = %353
  %357 = load i32, ptr %56, align 4, !tbaa !28
  %358 = invoke ptr @ee2str(i32 noundef %357)
          to label %359 unwind label %417

359:                                              ; preds = %356
  %360 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %358)
          to label %361 unwind label %417

361:                                              ; preds = %359
  %362 = load ptr, ptr @stdout, align 8, !tbaa !9
  %363 = invoke i32 @fflush(ptr noundef %362)
          to label %364 unwind label %417

364:                                              ; preds = %361
  call void @exit(i32 noundef 1) #12
  unreachable

365:                                              ; preds = %225
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %36, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %37, align 4
  br label %841

369:                                              ; preds = %274
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %36, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %37, align 4
  br label %840

373:                                              ; preds = %275
  %374 = landingpad { ptr, i32 }
          cleanup
  %375 = extractvalue { ptr, i32 } %374, 0
  store ptr %375, ptr %36, align 8
  %376 = extractvalue { ptr, i32 } %374, 1
  store i32 %376, ptr %37, align 4
  br label %839

377:                                              ; preds = %276
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %36, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %37, align 4
  br label %838

381:                                              ; preds = %277
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %36, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %37, align 4
  br label %837

385:                                              ; preds = %278
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %36, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %37, align 4
  br label %836

389:                                              ; preds = %424, %423, %422, %421, %288, %287, %286, %285, %284, %283, %282, %281, %280, %279
  %390 = landingpad { ptr, i32 }
          cleanup
  %391 = extractvalue { ptr, i32 } %390, 0
  store ptr %391, ptr %36, align 8
  %392 = extractvalue { ptr, i32 } %390, 1
  store i32 %392, ptr %37, align 4
  br label %835

393:                                              ; preds = %295, %291, %289
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %36, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %37, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #11
  br label %835

397:                                              ; preds = %311, %307, %305
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %36, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %37, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #11
  br label %835

401:                                              ; preds = %326, %323, %321
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %36, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %37, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #11
  br label %835

405:                                              ; preds = %333, %330, %328
  %406 = landingpad { ptr, i32 }
          cleanup
  %407 = extractvalue { ptr, i32 } %406, 0
  store ptr %407, ptr %36, align 8
  %408 = extractvalue { ptr, i32 } %406, 1
  store i32 %408, ptr %37, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #11
  br label %835

409:                                              ; preds = %340, %337, %335
  %410 = landingpad { ptr, i32 }
          cleanup
  %411 = extractvalue { ptr, i32 } %410, 0
  store ptr %411, ptr %36, align 8
  %412 = extractvalue { ptr, i32 } %410, 1
  store i32 %412, ptr %37, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #11
  br label %835

413:                                              ; preds = %342
  %414 = landingpad { ptr, i32 }
          cleanup
  %415 = extractvalue { ptr, i32 } %414, 0
  store ptr %415, ptr %36, align 8
  %416 = extractvalue { ptr, i32 } %414, 1
  store i32 %416, ptr %37, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #11
  br label %449

417:                                              ; preds = %361, %359, %356, %353, %348
  %418 = landingpad { ptr, i32 }
          cleanup
  %419 = extractvalue { ptr, i32 } %418, 0
  store ptr %419, ptr %36, align 8
  %420 = extractvalue { ptr, i32 } %418, 1
  store i32 %420, ptr %37, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %449

421:                                              ; preds = %345
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %422 unwind label %389

422:                                              ; preds = %421
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %60, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %423 unwind label %389

423:                                              ; preds = %422
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef byval(%struct.TensorDesc) align 8 %60)
          to label %424 unwind label %389

424:                                              ; preds = %423
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %425 unwind label %389

425:                                              ; preds = %424
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  store i32 1, ptr %61, align 4, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  store i32 9, ptr %62, align 4, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %67, ptr align 4 %30, i64 108, i1 false), !tbaa.struct !22
  %426 = load i32, ptr %61, align 4, !tbaa !30
  %427 = load i32, ptr %6, align 4, !tbaa !11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %68, ptr align 4 %25, i64 20, i1 false), !tbaa.struct !34
  %428 = invoke noundef i32 @_Z35convolution_infer_forward_algorithm6TensorS_S_20ConvolutionParamSpec17ConvolutionPolicyP27ConvolutionForwardAlgorithm8DataType19ActivationParamSpecP8ArchInfo(ptr noundef %64, ptr noundef %65, ptr noundef %66, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %67, i32 noundef %426, ptr noundef %62, i32 noundef %427, ptr noundef byval(%struct.ActivationParamSpec) align 8 %68, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %429 unwind label %450

429:                                              ; preds = %425
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #11
  store i32 %428, ptr %63, align 4, !tbaa !28
  %430 = load i32, ptr %63, align 4, !tbaa !28
  %431 = icmp ne i32 %430, 0
  br i1 %431, label %432, label %458

432:                                              ; preds = %429
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #11
  %433 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %434 = trunc i64 %433 to i32
  store i32 %434, ptr %69, align 4, !tbaa !5
  %435 = load i32, ptr %69, align 4, !tbaa !5
  %436 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %435)
          to label %437 unwind label %454

437:                                              ; preds = %432
  %438 = load ptr, ptr @stdout, align 8, !tbaa !9
  %439 = invoke i32 @fflush(ptr noundef %438)
          to label %440 unwind label %454

440:                                              ; preds = %437
  %441 = load i32, ptr %63, align 4, !tbaa !28
  %442 = invoke ptr @ee2str(i32 noundef %441)
          to label %443 unwind label %454

443:                                              ; preds = %440
  %444 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %442)
          to label %445 unwind label %454

445:                                              ; preds = %443
  %446 = load ptr, ptr @stdout, align 8, !tbaa !9
  %447 = invoke i32 @fflush(ptr noundef %446)
          to label %448 unwind label %454

448:                                              ; preds = %445
  call void @exit(i32 noundef 1) #12
  unreachable

449:                                              ; preds = %417, %413
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %835

450:                                              ; preds = %425
  %451 = landingpad { ptr, i32 }
          cleanup
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %36, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %37, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #11
  br label %481

454:                                              ; preds = %445, %443, %440, %437, %432
  %455 = landingpad { ptr, i32 }
          cleanup
  %456 = extractvalue { ptr, i32 } %455, 0
  store ptr %456, ptr %36, align 8
  %457 = extractvalue { ptr, i32 } %455, 1
  store i32 %457, ptr %37, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %481

458:                                              ; preds = %429
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %75, ptr align 4 %30, i64 108, i1 false), !tbaa.struct !22
  %459 = load i32, ptr %62, align 4, !tbaa !32
  %460 = invoke noundef i32 @_Z35convolution_infer_forward_tmp_bytes6TensorS_S_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPjP8ArchInfo(ptr noundef %72, ptr noundef %73, ptr noundef %74, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %75, i32 noundef %459, ptr noundef %70, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %461 unwind label %482

461:                                              ; preds = %458
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #11
  store i32 %460, ptr %71, align 4, !tbaa !28
  %462 = load i32, ptr %71, align 4, !tbaa !28
  %463 = icmp ne i32 %462, 0
  br i1 %463, label %464, label %490

464:                                              ; preds = %461
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #11
  %465 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %466 = trunc i64 %465 to i32
  store i32 %466, ptr %76, align 4, !tbaa !5
  %467 = load i32, ptr %76, align 4, !tbaa !5
  %468 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %467)
          to label %469 unwind label %486

469:                                              ; preds = %464
  %470 = load ptr, ptr @stdout, align 8, !tbaa !9
  %471 = invoke i32 @fflush(ptr noundef %470)
          to label %472 unwind label %486

472:                                              ; preds = %469
  %473 = load i32, ptr %71, align 4, !tbaa !28
  %474 = invoke ptr @ee2str(i32 noundef %473)
          to label %475 unwind label %486

475:                                              ; preds = %472
  %476 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %474)
          to label %477 unwind label %486

477:                                              ; preds = %475
  %478 = load ptr, ptr @stdout, align 8, !tbaa !9
  %479 = invoke i32 @fflush(ptr noundef %478)
          to label %480 unwind label %486

480:                                              ; preds = %477
  call void @exit(i32 noundef 1) #12
  unreachable

481:                                              ; preds = %454, %450
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %834

482:                                              ; preds = %458
  %483 = landingpad { ptr, i32 }
          cleanup
  %484 = extractvalue { ptr, i32 } %483, 0
  store ptr %484, ptr %36, align 8
  %485 = extractvalue { ptr, i32 } %483, 1
  store i32 %485, ptr %37, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #11
  br label %518

486:                                              ; preds = %477, %475, %472, %469, %464
  %487 = landingpad { ptr, i32 }
          cleanup
  %488 = extractvalue { ptr, i32 } %487, 0
  store ptr %488, ptr %36, align 8
  %489 = extractvalue { ptr, i32 } %487, 1
  store i32 %489, ptr %37, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %518

490:                                              ; preds = %461
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %77, i32 noundef 1)
          to label %491 unwind label %519

491:                                              ; preds = %490
  %492 = load i32, ptr %70, align 4, !tbaa !5
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %78, i32 noundef 0, i32 noundef %492)
          to label %493 unwind label %523

493:                                              ; preds = %491
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef byval(%struct.TensorDesc) align 8 %78)
          to label %494 unwind label %523

494:                                              ; preds = %493
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %495 unwind label %523

495:                                              ; preds = %494
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %82, ptr align 4 %30, i64 108, i1 false), !tbaa.struct !22
  %496 = load i32, ptr %62, align 4, !tbaa !32
  %497 = invoke noundef i32 @_Z34convolution_transform_filter_bytes6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvP8ArchInfo(ptr noundef %81, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %82, i32 noundef %496, ptr noundef %79, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %498 unwind label %527

498:                                              ; preds = %495
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #11
  store i32 %497, ptr %80, align 4, !tbaa !28
  %499 = load i32, ptr %80, align 4, !tbaa !28
  %500 = icmp ne i32 %499, 0
  br i1 %500, label %501, label %535

501:                                              ; preds = %498
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #11
  %502 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %503 = trunc i64 %502 to i32
  store i32 %503, ptr %83, align 4, !tbaa !5
  %504 = load i32, ptr %83, align 4, !tbaa !5
  %505 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %504)
          to label %506 unwind label %531

506:                                              ; preds = %501
  %507 = load ptr, ptr @stdout, align 8, !tbaa !9
  %508 = invoke i32 @fflush(ptr noundef %507)
          to label %509 unwind label %531

509:                                              ; preds = %506
  %510 = load i32, ptr %80, align 4, !tbaa !28
  %511 = invoke ptr @ee2str(i32 noundef %510)
          to label %512 unwind label %531

512:                                              ; preds = %509
  %513 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %511)
          to label %514 unwind label %531

514:                                              ; preds = %512
  %515 = load ptr, ptr @stdout, align 8, !tbaa !9
  %516 = invoke i32 @fflush(ptr noundef %515)
          to label %517 unwind label %531

517:                                              ; preds = %514
  call void @exit(i32 noundef 1) #12
  unreachable

518:                                              ; preds = %486, %482
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %833

519:                                              ; preds = %490
  %520 = landingpad { ptr, i32 }
          cleanup
  %521 = extractvalue { ptr, i32 } %520, 0
  store ptr %521, ptr %36, align 8
  %522 = extractvalue { ptr, i32 } %520, 1
  store i32 %522, ptr %37, align 4
  br label %832

523:                                              ; preds = %494, %493, %491
  %524 = landingpad { ptr, i32 }
          cleanup
  %525 = extractvalue { ptr, i32 } %524, 0
  store ptr %525, ptr %36, align 8
  %526 = extractvalue { ptr, i32 } %524, 1
  store i32 %526, ptr %37, align 4
  br label %831

527:                                              ; preds = %495
  %528 = landingpad { ptr, i32 }
          cleanup
  %529 = extractvalue { ptr, i32 } %528, 0
  store ptr %529, ptr %36, align 8
  %530 = extractvalue { ptr, i32 } %528, 1
  store i32 %530, ptr %37, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #11
  br label %563

531:                                              ; preds = %514, %512, %509, %506, %501
  %532 = landingpad { ptr, i32 }
          cleanup
  %533 = extractvalue { ptr, i32 } %532, 0
  store ptr %533, ptr %36, align 8
  %534 = extractvalue { ptr, i32 } %532, 1
  store i32 %534, ptr %37, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %563

535:                                              ; preds = %498
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %84, i32 noundef 1)
          to label %536 unwind label %564

536:                                              ; preds = %535
  %537 = load i32, ptr %79, align 4, !tbaa !5
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %85, i32 noundef 0, i32 noundef %537)
          to label %538 unwind label %568

538:                                              ; preds = %536
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef byval(%struct.TensorDesc) align 8 %85)
          to label %539 unwind label %568

539:                                              ; preds = %538
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %84)
          to label %540 unwind label %568

540:                                              ; preds = %539
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %88, ptr align 4 %30, i64 108, i1 false), !tbaa.struct !22
  %541 = load i32, ptr %62, align 4, !tbaa !32
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(32) %77) #11
  %542 = invoke noundef i32 @_Z28convolution_transform_filter6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmS_PS_P8ArchInfo(ptr noundef %87, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %88, i32 noundef %541, ptr noundef %89, ptr noundef %84, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %543 unwind label %572

543:                                              ; preds = %540
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #11
  store i32 %542, ptr %86, align 4, !tbaa !28
  %544 = load i32, ptr %86, align 4, !tbaa !28
  %545 = icmp ne i32 %544, 0
  br i1 %545, label %546, label %580

546:                                              ; preds = %543
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %547 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %548 = trunc i64 %547 to i32
  store i32 %548, ptr %90, align 4, !tbaa !5
  %549 = load i32, ptr %90, align 4, !tbaa !5
  %550 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %549)
          to label %551 unwind label %576

551:                                              ; preds = %546
  %552 = load ptr, ptr @stdout, align 8, !tbaa !9
  %553 = invoke i32 @fflush(ptr noundef %552)
          to label %554 unwind label %576

554:                                              ; preds = %551
  %555 = load i32, ptr %86, align 4, !tbaa !28
  %556 = invoke ptr @ee2str(i32 noundef %555)
          to label %557 unwind label %576

557:                                              ; preds = %554
  %558 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %556)
          to label %559 unwind label %576

559:                                              ; preds = %557
  %560 = load ptr, ptr @stdout, align 8, !tbaa !9
  %561 = invoke i32 @fflush(ptr noundef %560)
          to label %562 unwind label %576

562:                                              ; preds = %559
  call void @exit(i32 noundef 1) #12
  unreachable

563:                                              ; preds = %531, %527
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %830

564:                                              ; preds = %535
  %565 = landingpad { ptr, i32 }
          cleanup
  %566 = extractvalue { ptr, i32 } %565, 0
  store ptr %566, ptr %36, align 8
  %567 = extractvalue { ptr, i32 } %565, 1
  store i32 %567, ptr %37, align 4
  br label %829

568:                                              ; preds = %539, %538, %536
  %569 = landingpad { ptr, i32 }
          cleanup
  %570 = extractvalue { ptr, i32 } %569, 0
  store ptr %570, ptr %36, align 8
  %571 = extractvalue { ptr, i32 } %569, 1
  store i32 %571, ptr %37, align 4
  br label %828

572:                                              ; preds = %540
  %573 = landingpad { ptr, i32 }
          cleanup
  %574 = extractvalue { ptr, i32 } %573, 0
  store ptr %574, ptr %36, align 8
  %575 = extractvalue { ptr, i32 } %573, 1
  store i32 %575, ptr %37, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #11
  br label %608

576:                                              ; preds = %559, %557, %554, %551, %546
  %577 = landingpad { ptr, i32 }
          cleanup
  %578 = extractvalue { ptr, i32 } %577, 0
  store ptr %578, ptr %36, align 8
  %579 = extractvalue { ptr, i32 } %577, 1
  store i32 %579, ptr %37, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %608

580:                                              ; preds = %543
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %91) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #11
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 1 dereferenceable(1) %92)
          to label %581 unwind label %609

581:                                              ; preds = %580
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %93) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %94) #11
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %93, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 1 dereferenceable(1) %94)
          to label %582 unwind label %613

582:                                              ; preds = %581
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %95) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %96) #11
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %95, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 1 dereferenceable(1) %96)
          to label %583 unwind label %617

583:                                              ; preds = %582
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %98, ptr noundef nonnull align 8 dereferenceable(24) %91)
          to label %584 unwind label %621

584:                                              ; preds = %583
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull align 8 dereferenceable(32) %84) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %100, ptr align 4 %30, i64 108, i1 false), !tbaa.struct !22
  %585 = load i32, ptr %62, align 4, !tbaa !32
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %102, ptr noundef nonnull align 8 dereferenceable(24) %95)
          to label %586 unwind label %625

586:                                              ; preds = %584
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %104, ptr align 4 %25, i64 20, i1 false), !tbaa.struct !34
  %587 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef %98, ptr noundef %99, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %100, i32 noundef %585, ptr noundef null, ptr noundef %101, ptr noundef %102, ptr noundef %103, ptr noundef byval(%struct.ActivationParamSpec) align 8 %104, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %588 unwind label %629

588:                                              ; preds = %586
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %102) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %98) #11
  store i32 %587, ptr %97, align 4, !tbaa !28
  %589 = load i32, ptr %97, align 4, !tbaa !28
  %590 = icmp ne i32 %589, 0
  br i1 %590, label %591, label %638

591:                                              ; preds = %588
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #11
  %592 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %593 = trunc i64 %592 to i32
  store i32 %593, ptr %105, align 4, !tbaa !5
  %594 = load i32, ptr %105, align 4, !tbaa !5
  %595 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %594)
          to label %596 unwind label %634

596:                                              ; preds = %591
  %597 = load ptr, ptr @stdout, align 8, !tbaa !9
  %598 = invoke i32 @fflush(ptr noundef %597)
          to label %599 unwind label %634

599:                                              ; preds = %596
  %600 = load i32, ptr %97, align 4, !tbaa !28
  %601 = invoke ptr @ee2str(i32 noundef %600)
          to label %602 unwind label %634

602:                                              ; preds = %599
  %603 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %601)
          to label %604 unwind label %634

604:                                              ; preds = %602
  %605 = load ptr, ptr @stdout, align 8, !tbaa !9
  %606 = invoke i32 @fflush(ptr noundef %605)
          to label %607 unwind label %634

607:                                              ; preds = %604
  call void @exit(i32 noundef 1) #12
  unreachable

608:                                              ; preds = %576, %572
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %828

609:                                              ; preds = %580
  %610 = landingpad { ptr, i32 }
          cleanup
  %611 = extractvalue { ptr, i32 } %610, 0
  store ptr %611, ptr %36, align 8
  %612 = extractvalue { ptr, i32 } %610, 1
  store i32 %612, ptr %37, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #11
  br label %827

613:                                              ; preds = %581
  %614 = landingpad { ptr, i32 }
          cleanup
  %615 = extractvalue { ptr, i32 } %614, 0
  store ptr %615, ptr %36, align 8
  %616 = extractvalue { ptr, i32 } %614, 1
  store i32 %616, ptr %37, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #11
  br label %826

617:                                              ; preds = %582
  %618 = landingpad { ptr, i32 }
          cleanup
  %619 = extractvalue { ptr, i32 } %618, 0
  store ptr %619, ptr %36, align 8
  %620 = extractvalue { ptr, i32 } %618, 1
  store i32 %620, ptr %37, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #11
  br label %825

621:                                              ; preds = %583
  %622 = landingpad { ptr, i32 }
          cleanup
  %623 = extractvalue { ptr, i32 } %622, 0
  store ptr %623, ptr %36, align 8
  %624 = extractvalue { ptr, i32 } %622, 1
  store i32 %624, ptr %37, align 4
  br label %663

625:                                              ; preds = %584
  %626 = landingpad { ptr, i32 }
          cleanup
  %627 = extractvalue { ptr, i32 } %626, 0
  store ptr %627, ptr %36, align 8
  %628 = extractvalue { ptr, i32 } %626, 1
  store i32 %628, ptr %37, align 4
  br label %633

629:                                              ; preds = %586
  %630 = landingpad { ptr, i32 }
          cleanup
  %631 = extractvalue { ptr, i32 } %630, 0
  store ptr %631, ptr %36, align 8
  %632 = extractvalue { ptr, i32 } %630, 1
  store i32 %632, ptr %37, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %102) #11
  br label %633

633:                                              ; preds = %629, %625
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %98) #11
  br label %663

634:                                              ; preds = %604, %602, %599, %596, %591
  %635 = landingpad { ptr, i32 }
          cleanup
  %636 = extractvalue { ptr, i32 } %635, 0
  store ptr %636, ptr %36, align 8
  %637 = extractvalue { ptr, i32 } %635, 1
  store i32 %637, ptr %37, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  br label %663

638:                                              ; preds = %588
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %107, ptr noundef nonnull align 8 dereferenceable(24) %93)
          to label %639 unwind label %664

639:                                              ; preds = %638
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %109, ptr align 4 %30, i64 108, i1 false), !tbaa.struct !22
  %640 = load i32, ptr %62, align 4, !tbaa !32
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %111, ptr noundef nonnull align 8 dereferenceable(24) %95)
          to label %641 unwind label %668

641:                                              ; preds = %639
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %113, ptr align 4 %25, i64 20, i1 false), !tbaa.struct !34
  %642 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef %107, ptr noundef %108, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %109, i32 noundef %640, ptr noundef null, ptr noundef %110, ptr noundef %111, ptr noundef %112, ptr noundef byval(%struct.ActivationParamSpec) align 8 %113, ptr noundef @_ZL18UT_SERIAL_ARCHINFO)
          to label %643 unwind label %672

643:                                              ; preds = %641
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %111) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %107) #11
  store i32 %642, ptr %106, align 4, !tbaa !28
  %644 = load i32, ptr %106, align 4, !tbaa !28
  %645 = icmp ne i32 %644, 0
  br i1 %645, label %646, label %681

646:                                              ; preds = %643
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #11
  %647 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %648 = trunc i64 %647 to i32
  store i32 %648, ptr %114, align 4, !tbaa !5
  %649 = load i32, ptr %114, align 4, !tbaa !5
  %650 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %649)
          to label %651 unwind label %677

651:                                              ; preds = %646
  %652 = load ptr, ptr @stdout, align 8, !tbaa !9
  %653 = invoke i32 @fflush(ptr noundef %652)
          to label %654 unwind label %677

654:                                              ; preds = %651
  %655 = load i32, ptr %106, align 4, !tbaa !28
  %656 = invoke ptr @ee2str(i32 noundef %655)
          to label %657 unwind label %677

657:                                              ; preds = %654
  %658 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %656)
          to label %659 unwind label %677

659:                                              ; preds = %657
  %660 = load ptr, ptr @stdout, align 8, !tbaa !9
  %661 = invoke i32 @fflush(ptr noundef %660)
          to label %662 unwind label %677

662:                                              ; preds = %659
  call void @exit(i32 noundef 1) #12
  unreachable

663:                                              ; preds = %634, %633, %621
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  br label %824

664:                                              ; preds = %638
  %665 = landingpad { ptr, i32 }
          cleanup
  %666 = extractvalue { ptr, i32 } %665, 0
  store ptr %666, ptr %36, align 8
  %667 = extractvalue { ptr, i32 } %665, 1
  store i32 %667, ptr %37, align 4
  br label %696

668:                                              ; preds = %639
  %669 = landingpad { ptr, i32 }
          cleanup
  %670 = extractvalue { ptr, i32 } %669, 0
  store ptr %670, ptr %36, align 8
  %671 = extractvalue { ptr, i32 } %669, 1
  store i32 %671, ptr %37, align 4
  br label %676

672:                                              ; preds = %641
  %673 = landingpad { ptr, i32 }
          cleanup
  %674 = extractvalue { ptr, i32 } %673, 0
  store ptr %674, ptr %36, align 8
  %675 = extractvalue { ptr, i32 } %673, 1
  store i32 %675, ptr %37, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %111) #11
  br label %676

676:                                              ; preds = %672, %668
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %107) #11
  br label %696

677:                                              ; preds = %659, %657, %654, %651, %646
  %678 = landingpad { ptr, i32 }
          cleanup
  %679 = extractvalue { ptr, i32 } %678, 0
  store ptr %679, ptr %36, align 8
  %680 = extractvalue { ptr, i32 } %678, 1
  store i32 %680, ptr %37, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %696

681:                                              ; preds = %643
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  %682 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %115, i32 noundef 1)
          to label %683 unwind label %697

683:                                              ; preds = %681
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  %684 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %116, i32 noundef 1)
          to label %685 unwind label %701

685:                                              ; preds = %683
  %686 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %687 unwind label %701

687:                                              ; preds = %685
  %688 = load i32, ptr %6, align 4, !tbaa !11
  invoke void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef %682, ptr noundef %684, i32 noundef %686, i32 noundef %688, float noundef 1.000000e+00)
          to label %689 unwind label %701

689:                                              ; preds = %687
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #11
  %690 = invoke noundef double @_Z10ut_time_msv()
          to label %691 unwind label %706

691:                                              ; preds = %689
  store double %690, ptr %117, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #11
  store i32 0, ptr %118, align 4, !tbaa !5
  br label %692

692:                                              ; preds = %753, %691
  %693 = load i32, ptr %118, align 4, !tbaa !5
  %694 = icmp slt i32 %693, 6
  br i1 %694, label %710, label %695

695:                                              ; preds = %692
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %757

696:                                              ; preds = %677, %676, %664
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #11
  br label %824

697:                                              ; preds = %681
  %698 = landingpad { ptr, i32 }
          cleanup
  %699 = extractvalue { ptr, i32 } %698, 0
  store ptr %699, ptr %36, align 8
  %700 = extractvalue { ptr, i32 } %698, 1
  store i32 %700, ptr %37, align 4
  br label %705

701:                                              ; preds = %687, %685, %683
  %702 = landingpad { ptr, i32 }
          cleanup
  %703 = extractvalue { ptr, i32 } %702, 0
  store ptr %703, ptr %36, align 8
  %704 = extractvalue { ptr, i32 } %702, 1
  store i32 %704, ptr %37, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #11
  br label %705

705:                                              ; preds = %701, %697
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #11
  br label %824

706:                                              ; preds = %689
  %707 = landingpad { ptr, i32 }
          cleanup
  %708 = extractvalue { ptr, i32 } %707, 0
  store ptr %708, ptr %36, align 8
  %709 = extractvalue { ptr, i32 } %707, 1
  store i32 %709, ptr %37, align 4
  br label %823

710:                                              ; preds = %692
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %120, ptr noundef nonnull align 8 dereferenceable(24) %91)
          to label %711 unwind label %735

711:                                              ; preds = %710
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %121, ptr noundef nonnull align 8 dereferenceable(32) %84) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %122, ptr align 4 %30, i64 108, i1 false), !tbaa.struct !22
  %712 = load i32, ptr %62, align 4, !tbaa !32
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %124, ptr noundef nonnull align 8 dereferenceable(24) %95)
          to label %713 unwind label %739

713:                                              ; preds = %711
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %126, ptr align 4 %25, i64 20, i1 false), !tbaa.struct !34
  %714 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef %120, ptr noundef %121, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %122, i32 noundef %712, ptr noundef null, ptr noundef %123, ptr noundef %124, ptr noundef %125, ptr noundef byval(%struct.ActivationParamSpec) align 8 %126, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %715 unwind label %743

715:                                              ; preds = %713
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %124) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %120) #11
  store i32 %714, ptr %119, align 4, !tbaa !28
  %716 = load i32, ptr %119, align 4, !tbaa !28
  %717 = icmp ne i32 %716, 0
  br i1 %717, label %718, label %752

718:                                              ; preds = %715
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #11
  %719 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %720 = trunc i64 %719 to i32
  store i32 %720, ptr %127, align 4, !tbaa !5
  %721 = load i32, ptr %127, align 4, !tbaa !5
  %722 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %721)
          to label %723 unwind label %748

723:                                              ; preds = %718
  %724 = load ptr, ptr @stdout, align 8, !tbaa !9
  %725 = invoke i32 @fflush(ptr noundef %724)
          to label %726 unwind label %748

726:                                              ; preds = %723
  %727 = load i32, ptr %119, align 4, !tbaa !28
  %728 = invoke ptr @ee2str(i32 noundef %727)
          to label %729 unwind label %748

729:                                              ; preds = %726
  %730 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %728)
          to label %731 unwind label %748

731:                                              ; preds = %729
  %732 = load ptr, ptr @stdout, align 8, !tbaa !9
  %733 = invoke i32 @fflush(ptr noundef %732)
          to label %734 unwind label %748

734:                                              ; preds = %731
  call void @exit(i32 noundef 1) #12
  unreachable

735:                                              ; preds = %710
  %736 = landingpad { ptr, i32 }
          cleanup
  %737 = extractvalue { ptr, i32 } %736, 0
  store ptr %737, ptr %36, align 8
  %738 = extractvalue { ptr, i32 } %736, 1
  store i32 %738, ptr %37, align 4
  br label %756

739:                                              ; preds = %711
  %740 = landingpad { ptr, i32 }
          cleanup
  %741 = extractvalue { ptr, i32 } %740, 0
  store ptr %741, ptr %36, align 8
  %742 = extractvalue { ptr, i32 } %740, 1
  store i32 %742, ptr %37, align 4
  br label %747

743:                                              ; preds = %713
  %744 = landingpad { ptr, i32 }
          cleanup
  %745 = extractvalue { ptr, i32 } %744, 0
  store ptr %745, ptr %36, align 8
  %746 = extractvalue { ptr, i32 } %744, 1
  store i32 %746, ptr %37, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %124) #11
  br label %747

747:                                              ; preds = %743, %739
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %120) #11
  br label %756

748:                                              ; preds = %731, %729, %726, %723, %718
  %749 = landingpad { ptr, i32 }
          cleanup
  %750 = extractvalue { ptr, i32 } %749, 0
  store ptr %750, ptr %36, align 8
  %751 = extractvalue { ptr, i32 } %749, 1
  store i32 %751, ptr %37, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  br label %756

752:                                              ; preds = %715
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  br label %753

753:                                              ; preds = %752
  %754 = load i32, ptr %118, align 4, !tbaa !5
  %755 = add nsw i32 %754, 1
  store i32 %755, ptr %118, align 4, !tbaa !5
  br label %692, !llvm.loop !37

756:                                              ; preds = %748, %747, %735
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %823

757:                                              ; preds = %695
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #11
  %758 = invoke noundef double @_Z10ut_time_msv()
          to label %759 unwind label %814

759:                                              ; preds = %757
  store double %758, ptr %128, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #11
  %760 = load double, ptr %128, align 8, !tbaa !35
  %761 = load double, ptr %117, align 8, !tbaa !35
  %762 = fsub double %760, %761
  %763 = fdiv double %762, 6.000000e+00
  store double %763, ptr %129, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 150, ptr %130) #11
  call void @llvm.lifetime.start.p0(i64 120, ptr %131) #11
  %764 = getelementptr inbounds [120 x i8], ptr %131, i64 0, i64 0
  %765 = load i32, ptr %8, align 4, !tbaa !5
  %766 = load i32, ptr %9, align 4, !tbaa !5
  %767 = load i32, ptr %10, align 4, !tbaa !5
  %768 = load i32, ptr %11, align 4, !tbaa !5
  %769 = load i32, ptr %12, align 4, !tbaa !5
  %770 = load i32, ptr %13, align 4, !tbaa !5
  %771 = load i32, ptr %14, align 4, !tbaa !5
  %772 = load i32, ptr %15, align 4, !tbaa !5
  %773 = load i32, ptr %17, align 4, !tbaa !5
  %774 = load i32, ptr %18, align 4, !tbaa !5
  %775 = load i32, ptr %19, align 4, !tbaa !5
  %776 = load i32, ptr %20, align 4, !tbaa !5
  %777 = load i32, ptr %21, align 4, !tbaa !5
  %778 = load i32, ptr %22, align 4, !tbaa !5
  %779 = load i32, ptr %23, align 4, !tbaa !5
  %780 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %764, ptr noundef @.str.3, i32 noundef %765, i32 noundef %766, i32 noundef %767, i32 noundef %768, i32 noundef %769, i32 noundef %770, i32 noundef %771, i32 noundef %772, i32 noundef %773, i32 noundef %774, i32 noundef %775, i32 noundef %776, i32 noundef %777, i32 noundef %778, i32 noundef %779) #11
  %781 = getelementptr inbounds [150 x i8], ptr %130, i64 0, i64 0
  %782 = getelementptr inbounds [120 x i8], ptr %131, i64 0, i64 0
  %783 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %781, ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef %782) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #11
  %784 = load i32, ptr %20, align 4, !tbaa !5
  %785 = uitofp i32 %784 to double
  %786 = fmul double 1.000000e+00, %785
  %787 = load i32, ptr %21, align 4, !tbaa !5
  %788 = uitofp i32 %787 to double
  %789 = fmul double %786, %788
  %790 = load i32, ptr %22, align 4, !tbaa !5
  %791 = uitofp i32 %790 to double
  %792 = fmul double %789, %791
  %793 = load i32, ptr %23, align 4, !tbaa !5
  %794 = uitofp i32 %793 to double
  %795 = fmul double %792, %794
  %796 = load i32, ptr %9, align 4, !tbaa !5
  %797 = uitofp i32 %796 to double
  %798 = fmul double 2.000000e+00, %797
  %799 = load i32, ptr %14, align 4, !tbaa !5
  %800 = uitofp i32 %799 to double
  %801 = fmul double %798, %800
  %802 = load i32, ptr %15, align 4, !tbaa !5
  %803 = uitofp i32 %802 to double
  %804 = call double @llvm.fmuladd.f64(double %801, double %803, double 1.000000e+00)
  %805 = fmul double %795, %804
  store double %805, ptr %132, align 8, !tbaa !35
  %806 = load i32, ptr %6, align 4, !tbaa !11
  %807 = getelementptr inbounds [150 x i8], ptr %130, i64 0, i64 0
  %808 = load double, ptr %132, align 8, !tbaa !35
  %809 = load double, ptr %129, align 8, !tbaa !35
  invoke void @_Z6ut_log8DataTypePcdd(i32 noundef %806, ptr noundef %807, double noundef %808, double noundef %809)
          to label %810 unwind label %818

810:                                              ; preds = %759
  %811 = load ptr, ptr %31, align 8, !tbaa !9
  call void @free(ptr noundef %811) #11
  %812 = load ptr, ptr %32, align 8, !tbaa !9
  call void @free(ptr noundef %812) #11
  %813 = load ptr, ptr %33, align 8, !tbaa !9
  call void @free(ptr noundef %813) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #11
  call void @llvm.lifetime.end.p0(i64 120, ptr %131) #11
  call void @llvm.lifetime.end.p0(i64 150, ptr %130) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %95) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %95) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %93) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %93) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %91) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %91) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #11
  call void @llvm.lifetime.end.p0(i64 108, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %29) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %28) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %27) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %26) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %25) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  ret i32 0

814:                                              ; preds = %757
  %815 = landingpad { ptr, i32 }
          cleanup
  %816 = extractvalue { ptr, i32 } %815, 0
  store ptr %816, ptr %36, align 8
  %817 = extractvalue { ptr, i32 } %815, 1
  store i32 %817, ptr %37, align 4
  br label %822

818:                                              ; preds = %759
  %819 = landingpad { ptr, i32 }
          cleanup
  %820 = extractvalue { ptr, i32 } %819, 0
  store ptr %820, ptr %36, align 8
  %821 = extractvalue { ptr, i32 } %819, 1
  store i32 %821, ptr %37, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #11
  call void @llvm.lifetime.end.p0(i64 120, ptr %131) #11
  call void @llvm.lifetime.end.p0(i64 150, ptr %130) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #11
  br label %822

822:                                              ; preds = %818, %814
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #11
  br label %823

823:                                              ; preds = %822, %756, %706
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #11
  br label %824

824:                                              ; preds = %823, %705, %696, %663
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %95) #11
  br label %825

825:                                              ; preds = %824, %617
  call void @llvm.lifetime.end.p0(i64 24, ptr %95) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %93) #11
  br label %826

826:                                              ; preds = %825, %613
  call void @llvm.lifetime.end.p0(i64 24, ptr %93) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %91) #11
  br label %827

827:                                              ; preds = %826, %609
  call void @llvm.lifetime.end.p0(i64 24, ptr %91) #11
  br label %828

828:                                              ; preds = %827, %608, %568
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #11
  br label %829

829:                                              ; preds = %828, %564
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #11
  br label %830

830:                                              ; preds = %829, %563
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %831

831:                                              ; preds = %830, %523
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #11
  br label %832

832:                                              ; preds = %831, %519
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #11
  br label %833

833:                                              ; preds = %832, %518
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %834

834:                                              ; preds = %833, %481
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %835

835:                                              ; preds = %834, %449, %409, %405, %401, %397, %393, %389
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  br label %836

836:                                              ; preds = %835, %385
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  br label %837

837:                                              ; preds = %836, %381
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  br label %838

838:                                              ; preds = %837, %377
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  br label %839

839:                                              ; preds = %838, %373
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  br label %840

840:                                              ; preds = %839, %369
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  br label %841

841:                                              ; preds = %840, %365
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #11
  call void @llvm.lifetime.end.p0(i64 108, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %29) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %28) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %27) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %26) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %25) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %842

842:                                              ; preds = %841
  %843 = load ptr, ptr %36, align 8
  %844 = load i32, ptr %37, align 4
  %845 = insertvalue { ptr, i32 } poison, ptr %843, 0
  %846 = insertvalue { ptr, i32 } %845, i32 %844, 1
  resume { ptr, i32 } %846
}

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

; Function Attrs: nounwind
declare i64 @syscall(i64 noundef, ...) #2

declare i32 @printf(ptr noundef, ...) #3

declare i32 @fflush(ptr noundef) #3

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #4

; Function Attrs: inlinehint mustprogress nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr noundef nonnull) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN19ActivationParamSpecC2Ev(ptr noundef nonnull align 4 dereferenceable(20)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind noalias writable sret(%struct.TensorDesc) align 4, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z8tensor1d8DataTypej(ptr dead_on_unwind noalias writable sret(%struct.TensorDesc) align 4, i32 noundef, i32 noundef) #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_Z26createConvolutionParamSpecjjjjjjjjjjjjjjjjj15ConvolutionMode(ptr dead_on_unwind noalias writable sret(%struct.ConvolutionParamSpec) align 4, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef, i32 noundef, i32 noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #0 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef byval(%struct.TensorDesc) align 8) #0 align 2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #8

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z10UNI_MEMCPYPvPKvm(ptr noundef, ptr noundef, i64 noundef) #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef, i32 noundef) #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_Z7bytesOf8DataType(i32 noundef) #7

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8) #7

declare noundef i32 @_Z29convolution_infer_output_sizeP6TensorS_20ConvolutionParamSpecS0_8DataTypeP8ArchInfo(ptr noundef, ptr noundef, ptr noundef byval(%struct.ConvolutionParamSpec) align 8, ptr noundef, i32 noundef, ptr noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local ptr @ee2str(i32 noundef) #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Tensor8get_descEv(ptr dead_on_unwind noalias writable sret(%struct.TensorDesc) align 4, ptr noundef nonnull align 8 dereferenceable(32)) #0 align 2

declare noundef i32 @_Z35convolution_infer_forward_algorithm6TensorS_S_20ConvolutionParamSpec17ConvolutionPolicyP27ConvolutionForwardAlgorithm8DataType19ActivationParamSpecP8ArchInfo(ptr noundef, ptr noundef, ptr noundef, ptr noundef byval(%struct.ConvolutionParamSpec) align 8, i32 noundef, ptr noundef, i32 noundef, ptr noundef byval(%struct.ActivationParamSpec) align 8, ptr noundef) #3

declare noundef i32 @_Z35convolution_infer_forward_tmp_bytes6TensorS_S_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPjP8ArchInfo(ptr noundef, ptr noundef, ptr noundef, ptr noundef byval(%struct.ConvolutionParamSpec) align 8, i32 noundef, ptr noundef, ptr noundef) #3

declare noundef i32 @_Z34convolution_transform_filter_bytes6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvP8ArchInfo(ptr noundef, ptr noundef byval(%struct.ConvolutionParamSpec) align 8, i32 noundef, ptr noundef, ptr noundef) #3

declare noundef i32 @_Z28convolution_transform_filter6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmS_PS_P8ArchInfo(ptr noundef, ptr noundef byval(%struct.ConvolutionParamSpec) align 8, i32 noundef, ptr noundef, ptr noundef, ptr noundef) #3

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

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

declare noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef, ptr noundef, ptr noundef byval(%struct.ConvolutionParamSpec) align 8, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef byval(%struct.ActivationParamSpec) align 8, ptr noundef) #3

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef, ptr noundef, i32 noundef, i32 noundef, float noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32)) #0 align 2

declare noundef double @_Z10ut_time_msv() #3

; Function Attrs: nounwind
declare i32 @sprintf(ptr noundef, ptr noundef, ...) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #10

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z6ut_log8DataTypePcdd(i32 noundef, ptr noundef, double noundef, double noundef) #7

; Function Attrs: nounwind
declare void @free(ptr noundef) #2

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

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

!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 = !{!12, !12, i64 0}
!12 = !{!"_ZTS8DataType", !7, i64 0}
!13 = !{!14, !15, i64 0}
!14 = !{!"_ZTS19ActivationParamSpec", !15, i64 0, !7, i64 4}
!15 = !{!"_ZTS14ActivationMode", !7, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"float", !7, i64 0}
!18 = !{i64 0, i64 4, !11, i64 4, i64 4, !19, i64 8, i64 4, !5, i64 12, i64 80, !21}
!19 = !{!20, !20, i64 0}
!20 = !{!"_ZTS10DataFormat", !7, i64 0}
!21 = !{!7, !7, i64 0}
!22 = !{i64 0, i64 4, !5, i64 4, i64 4, !5, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 4, !5, i64 20, i64 4, !5, i64 24, i64 4, !5, i64 28, i64 4, !5, i64 32, i64 4, !5, i64 36, i64 4, !5, i64 40, i64 4, !5, i64 44, i64 4, !5, i64 48, i64 4, !5, i64 52, i64 4, !5, i64 56, i64 4, !5, i64 60, i64 4, !5, i64 64, i64 4, !5, i64 68, i64 4, !5, i64 72, i64 4, !23, i64 76, i64 4, !25, i64 80, i64 4, !25, i64 84, i64 8, !21, i64 92, i64 4, !26, i64 96, i64 4, !5, i64 100, i64 4, !5, i64 104, i64 4, !5}
!23 = !{!24, !24, i64 0}
!24 = !{!"_ZTS15ConvolutionMode", !7, i64 0}
!25 = !{!15, !15, i64 0}
!26 = !{!27, !27, i64 0}
!27 = !{!"_ZTS9RoundMode", !7, i64 0}
!28 = !{!29, !29, i64 0}
!29 = !{!"_ZTS2EE", !7, i64 0}
!30 = !{!31, !31, i64 0}
!31 = !{!"_ZTS17ConvolutionPolicy", !7, i64 0}
!32 = !{!33, !33, i64 0}
!33 = !{!"_ZTS27ConvolutionForwardAlgorithm", !7, i64 0}
!34 = !{i64 0, i64 4, !25, i64 4, i64 16, !21}
!35 = !{!36, !36, i64 0}
!36 = !{!"double", !7, i64 0}
!37 = distinct !{!37, !38}
!38 = !{!"llvm.loop.mustprogress"}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.ArchInfo = type { i32, ptr }
%struct.ActivationParamSpec = type { i32, [4 x float] }
%struct.TensorDesc = type { i32, i32, i32, [20 x i32] }
%struct.ConvolutionParamSpec = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %union.ActivationSpec, i32, i32, i32, i32 }
%union.ActivationSpec = type { %struct.ClipParamSpec }
%struct.ClipParamSpec = type { float, float }
%class.Tensor = type { %"class.std::shared_ptr", %"class.std::shared_ptr.0" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.0" = type { %"class.std::__shared_ptr.1" }
%"class.std::__shared_ptr.1" = type { ptr, %"class.std::__shared_count" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl" }
%"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl" = type { %"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }

@.str = external hidden unnamed_addr constant [20 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [23 x i8], align 1
@_ZL15UT_CPU_ARCHINFO = external hidden global %struct.ArchInfo, align 8
@.str.2 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZL18UT_SERIAL_ARCHINFO = external hidden global %struct.ArchInfo, align 8
@.str.3 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [19 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z22dilatedConvolutionTestiPPc8DataType(i32 noundef %0, ptr nocapture noundef readonly %1, i32 noundef %2) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %4 = alloca %struct.ActivationParamSpec, align 8
  %5 = alloca %struct.TensorDesc, align 4
  %6 = alloca %struct.TensorDesc, align 8
  %7 = alloca %struct.TensorDesc, align 8
  %8 = alloca %struct.TensorDesc, align 8
  %9 = alloca %struct.ConvolutionParamSpec, align 8
  %10 = alloca %class.Tensor, align 8
  %11 = alloca %class.Tensor, align 8
  %12 = alloca %class.Tensor, align 8
  %13 = alloca %class.Tensor, align 8
  %14 = alloca %class.Tensor, align 8
  %15 = alloca %class.Tensor, align 8
  %16 = alloca %class.Tensor, align 8
  %17 = alloca %class.Tensor, align 8
  %18 = alloca %class.Tensor, align 8
  %19 = alloca %class.Tensor, align 8
  %20 = alloca %class.Tensor, align 8
  %21 = alloca %class.Tensor, align 8
  %22 = alloca %class.Tensor, align 8
  %23 = alloca %struct.TensorDesc, align 8
  %24 = alloca i32, align 4
  %25 = alloca %class.Tensor, align 8
  %26 = alloca %class.Tensor, align 8
  %27 = alloca %class.Tensor, align 8
  %28 = alloca i32, align 4
  %29 = alloca %class.Tensor, align 8
  %30 = alloca %class.Tensor, align 8
  %31 = alloca %class.Tensor, align 8
  %32 = alloca %class.Tensor, align 8
  %33 = alloca %struct.TensorDesc, align 8
  %34 = alloca i32, align 4
  %35 = alloca %class.Tensor, align 8
  %36 = alloca %class.Tensor, align 8
  %37 = alloca %struct.TensorDesc, align 8
  %38 = alloca %class.Tensor, align 8
  %39 = alloca %struct.ConvolutionParamSpec, align 8
  %40 = alloca %class.Tensor, align 8
  %41 = alloca %"class.std::vector", align 8
  %42 = alloca %"class.std::allocator", align 1
  %43 = alloca %"class.std::vector", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca %"class.std::vector", align 8
  %46 = alloca %"class.std::allocator", align 1
  %47 = alloca %"class.std::vector", align 8
  %48 = alloca %class.Tensor, align 8
  %49 = alloca %struct.ConvolutionParamSpec, align 8
  %50 = alloca %class.Tensor, align 8
  %51 = alloca %"class.std::vector", align 8
  %52 = alloca %class.Tensor, align 8
  %53 = alloca %"class.std::vector", align 8
  %54 = alloca %class.Tensor, align 8
  %55 = alloca %struct.ConvolutionParamSpec, align 8
  %56 = alloca %class.Tensor, align 8
  %57 = alloca %"class.std::vector", align 8
  %58 = alloca %class.Tensor, align 8
  %59 = alloca %class.Tensor, align 8
  %60 = alloca %class.Tensor, align 8
  %61 = alloca %"class.std::vector", align 8
  %62 = alloca %class.Tensor, align 8
  %63 = alloca %struct.ConvolutionParamSpec, align 8
  %64 = alloca %class.Tensor, align 8
  %65 = alloca %"class.std::vector", align 8
  %66 = alloca %class.Tensor, align 8
  %67 = alloca [150 x i8], align 16
  %68 = alloca [120 x i8], align 16
  %69 = icmp eq i32 %0, 17
  br i1 %69, label %79, label %70

70:                                               ; preds = %3
  %71 = tail call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %72 = trunc i64 %71 to i32
  %73 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %72)
  %74 = load ptr, ptr @stdout, align 8, !tbaa !5
  %75 = tail call i32 @fflush(ptr noundef %74)
  %76 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1)
  %77 = load ptr, ptr @stdout, align 8, !tbaa !5
  %78 = tail call i32 @fflush(ptr noundef %77)
  tail call void @exit(i32 noundef 1) #14
  unreachable

79:                                               ; preds = %3
  %80 = getelementptr inbounds i8, ptr %1, i64 8
  %81 = load ptr, ptr %80, align 8, !tbaa !5
  %82 = tail call i32 @atoi(ptr nocapture noundef %81) #15
  %83 = getelementptr inbounds i8, ptr %1, i64 16
  %84 = load ptr, ptr %83, align 8, !tbaa !5
  %85 = tail call i32 @atoi(ptr nocapture noundef %84) #15
  %86 = getelementptr inbounds i8, ptr %1, i64 24
  %87 = load ptr, ptr %86, align 8, !tbaa !5
  %88 = tail call i32 @atoi(ptr nocapture noundef %87) #15
  %89 = getelementptr inbounds i8, ptr %1, i64 32
  %90 = load ptr, ptr %89, align 8, !tbaa !5
  %91 = tail call i32 @atoi(ptr nocapture noundef %90) #15
  %92 = getelementptr inbounds i8, ptr %1, i64 40
  %93 = load ptr, ptr %92, align 8, !tbaa !5
  %94 = tail call i32 @atoi(ptr nocapture noundef %93) #15
  %95 = getelementptr inbounds i8, ptr %1, i64 48
  %96 = load ptr, ptr %95, align 8, !tbaa !5
  %97 = tail call i32 @atoi(ptr nocapture noundef %96) #15
  %98 = getelementptr inbounds i8, ptr %1, i64 56
  %99 = load ptr, ptr %98, align 8, !tbaa !5
  %100 = tail call i32 @atoi(ptr nocapture noundef %99) #15
  %101 = getelementptr inbounds i8, ptr %1, i64 64
  %102 = load ptr, ptr %101, align 8, !tbaa !5
  %103 = tail call i32 @atoi(ptr nocapture noundef %102) #15
  %104 = getelementptr inbounds i8, ptr %1, i64 80
  %105 = load ptr, ptr %104, align 8, !tbaa !5
  %106 = tail call i32 @atoi(ptr nocapture noundef %105) #15
  %107 = getelementptr inbounds i8, ptr %1, i64 88
  %108 = load ptr, ptr %107, align 8, !tbaa !5
  %109 = tail call i32 @atoi(ptr nocapture noundef %108) #15
  %110 = getelementptr inbounds i8, ptr %1, i64 96
  %111 = load ptr, ptr %110, align 8, !tbaa !5
  %112 = tail call i32 @atoi(ptr nocapture noundef %111) #15
  %113 = getelementptr inbounds i8, ptr %1, i64 104
  %114 = load ptr, ptr %113, align 8, !tbaa !5
  %115 = tail call i32 @atoi(ptr nocapture noundef %114) #15
  %116 = getelementptr inbounds i8, ptr %1, i64 112
  %117 = load ptr, ptr %116, align 8, !tbaa !5
  %118 = tail call i32 @atoi(ptr nocapture noundef %117) #15
  %119 = getelementptr inbounds i8, ptr %1, i64 120
  %120 = load ptr, ptr %119, align 8, !tbaa !5
  %121 = tail call i32 @atoi(ptr nocapture noundef %120) #15
  %122 = getelementptr inbounds i8, ptr %1, i64 128
  %123 = load ptr, ptr %122, align 8, !tbaa !5
  %124 = tail call i32 @atoi(ptr nocapture noundef %123) #15
  %125 = icmp eq i32 %82, 1
  %126 = icmp eq i32 %115, 1
  %or.cond = select i1 %125, i1 %126, i1 false
  br i1 %or.cond, label %136, label %127

127:                                              ; preds = %79
  %128 = tail call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %129 = trunc i64 %128 to i32
  %130 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %129)
  %131 = load ptr, ptr @stdout, align 8, !tbaa !5
  %132 = tail call i32 @fflush(ptr noundef %131)
  %133 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1)
  %134 = load ptr, ptr @stdout, align 8, !tbaa !5
  %135 = tail call i32 @fflush(ptr noundef %134)
  tail call void @exit(i32 noundef 1) #14
  unreachable

136:                                              ; preds = %79
  %137 = getelementptr inbounds i8, ptr %1, i64 72
  %138 = load ptr, ptr %137, align 8, !tbaa !5
  %139 = tail call i32 @atoi(ptr nocapture noundef %138) #15
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %4) #13
  call void @_ZN19ActivationParamSpecC2Ev(ptr noundef nonnull align 4 dereferenceable(20) %4) #13
  store i32 1, ptr %4, align 8, !tbaa !9
  %140 = getelementptr inbounds i8, ptr %4, i64 4
  store float 0.000000e+00, ptr %140, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %5) #13
  call void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92) %5) #13
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %6) #13
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %6, i32 noundef %2, i32 noundef 2, i32 noundef 1, i32 noundef %85, i32 noundef %88, i32 noundef %91)
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %7) #13
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %7, i32 noundef %2, i32 noundef 0, i32 noundef %118, i32 noundef %85, i32 noundef %100, i32 noundef %103)
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %8) #13
  call void @_Z8tensor1d8DataTypej(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %8, i32 noundef %2, i32 noundef %118)
  call void @llvm.lifetime.start.p0(i64 108, ptr nonnull %9) #13
  call void @_Z26createConvolutionParamSpecjjjjjjjjjjjjjjjjj15ConvolutionMode(ptr dead_on_unwind nonnull writable sret(%struct.ConvolutionParamSpec) align 4 %9, i32 noundef %139, i32 noundef 1, i32 noundef %100, i32 noundef %103, i32 noundef 1, i32 noundef %106, i32 noundef %106, i32 noundef 0, i32 noundef 0, i32 noundef %109, i32 noundef %109, i32 noundef %109, i32 noundef %109, i32 noundef 1, i32 noundef %112, i32 noundef %112, i32 noundef %94, i32 noundef 1)
  %141 = mul i32 %88, %85
  %142 = mul i32 %141, %91
  %143 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %142, i32 noundef %2, i32 noundef 0)
  %144 = mul i32 %97, %94
  %145 = mul i32 %144, %100
  %146 = mul i32 %145, %103
  %147 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %146, i32 noundef %2, i32 noundef 0)
  %148 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %118, i32 noundef %2, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #13
  call void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %10, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #13
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %11, i32 noundef 1)
          to label %149 unwind label %209

149:                                              ; preds = %136
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #13
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef 1)
          to label %150 unwind label %211

150:                                              ; preds = %149
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #13
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %13, i32 noundef 1)
          to label %151 unwind label %213

151:                                              ; preds = %150
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #13
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %14, i32 noundef 1)
          to label %152 unwind label %215

152:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #13
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %15, i32 noundef 1)
          to label %153 unwind label %217

153:                                              ; preds = %152
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #13
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %16, i32 noundef 1)
          to label %154 unwind label %219

154:                                              ; preds = %153
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %6)
          to label %155 unwind label %221

155:                                              ; preds = %154
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %6)
          to label %156 unwind label %221

156:                                              ; preds = %155
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %7)
          to label %157 unwind label %221

157:                                              ; preds = %156
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %7)
          to label %158 unwind label %221

158:                                              ; preds = %157
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %8)
          to label %159 unwind label %221

159:                                              ; preds = %158
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %160 unwind label %221

160:                                              ; preds = %159
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %161 unwind label %221

161:                                              ; preds = %160
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %162 unwind label %221

162:                                              ; preds = %161
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %163 unwind label %221

163:                                              ; preds = %162
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %164 unwind label %221

164:                                              ; preds = %163
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %10) #13
  %165 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %17, i32 noundef 1)
          to label %166 unwind label %223

166:                                              ; preds = %164
  %167 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %2)
          to label %168 unwind label %223

168:                                              ; preds = %166
  %169 = mul i32 %142, %167
  %170 = zext i32 %169 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %165, ptr noundef %143, i64 noundef %170)
          to label %171 unwind label %223

171:                                              ; preds = %168
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %11) #13
  %172 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %18, i32 noundef 1)
          to label %173 unwind label %225

173:                                              ; preds = %171
  %174 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %2)
          to label %175 unwind label %225

175:                                              ; preds = %173
  %176 = mul i32 %142, %174
  %177 = zext i32 %176 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %172, ptr noundef %143, i64 noundef %177)
          to label %178 unwind label %225

178:                                              ; preds = %175
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %12) #13
  %179 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %19, i32 noundef 1)
          to label %180 unwind label %227

180:                                              ; preds = %178
  %181 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %7)
          to label %182 unwind label %227

182:                                              ; preds = %180
  %183 = zext i32 %181 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %179, ptr noundef %147, i64 noundef %183)
          to label %184 unwind label %227

184:                                              ; preds = %182
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %13) #13
  %185 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %20, i32 noundef 1)
          to label %186 unwind label %229

186:                                              ; preds = %184
  %187 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %7)
          to label %188 unwind label %229

188:                                              ; preds = %186
  %189 = zext i32 %187 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %185, ptr noundef %147, i64 noundef %189)
          to label %190 unwind label %229

190:                                              ; preds = %188
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %16) #13
  %191 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %21, i32 noundef 1)
          to label %192 unwind label %231

192:                                              ; preds = %190
  %193 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %8)
          to label %194 unwind label %231

194:                                              ; preds = %192
  %195 = zext i32 %193 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %191, ptr noundef %148, i64 noundef %195)
          to label %196 unwind label %231

196:                                              ; preds = %194
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %12) #13
  %197 = invoke noundef i32 @_Z29convolution_infer_output_sizeP6TensorS_20ConvolutionParamSpecS0_8DataTypeP8ArchInfo(ptr noundef nonnull %10, ptr noundef nonnull %22, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %9, ptr noundef nonnull %14, i32 noundef %2, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %198 unwind label %233

198:                                              ; preds = %196
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #13
  %.not = icmp eq i32 %197, 0
  br i1 %.not, label %235, label %199

199:                                              ; preds = %198
  %200 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %201 = trunc i64 %200 to i32
  %202 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %201)
  %203 = load ptr, ptr @stdout, align 8, !tbaa !5
  %204 = call i32 @fflush(ptr noundef %203)
  %205 = call ptr @ee2str(i32 noundef %197)
  %206 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %205)
  %207 = load ptr, ptr @stdout, align 8, !tbaa !5
  %208 = call i32 @fflush(ptr noundef %207)
  call void @exit(i32 noundef 1) #14
  unreachable

209:                                              ; preds = %136
  %210 = landingpad { ptr, i32 }
          cleanup
  br label %479

211:                                              ; preds = %149
  %212 = landingpad { ptr, i32 }
          cleanup
  br label %478

213:                                              ; preds = %150
  %214 = landingpad { ptr, i32 }
          cleanup
  br label %477

215:                                              ; preds = %151
  %216 = landingpad { ptr, i32 }
          cleanup
  br label %476

217:                                              ; preds = %152
  %218 = landingpad { ptr, i32 }
          cleanup
  br label %475

219:                                              ; preds = %153
  %220 = landingpad { ptr, i32 }
          cleanup
  br label %474

221:                                              ; preds = %238, %237, %236, %235, %163, %162, %161, %160, %159, %158, %157, %156, %155, %154
  %222 = landingpad { ptr, i32 }
          cleanup
  br label %473

223:                                              ; preds = %168, %166, %164
  %224 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #13
  br label %473

225:                                              ; preds = %175, %173, %171
  %226 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #13
  br label %473

227:                                              ; preds = %182, %180, %178
  %228 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #13
  br label %473

229:                                              ; preds = %188, %186, %184
  %230 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #13
  br label %473

231:                                              ; preds = %194, %192, %190
  %232 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #13
  br label %473

233:                                              ; preds = %196
  %234 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #13
  br label %473

235:                                              ; preds = %198
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %236 unwind label %221

236:                                              ; preds = %235
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %23, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %237 unwind label %221

237:                                              ; preds = %236
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %23)
          to label %238 unwind label %221

238:                                              ; preds = %237
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %239 unwind label %221

239:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #13
  store i32 9, ptr %24, align 4, !tbaa !14
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %10) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %12) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %240 = invoke noundef i32 @_Z35convolution_infer_forward_algorithm6TensorS_S_20ConvolutionParamSpec17ConvolutionPolicyP27ConvolutionForwardAlgorithm8DataType19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %9, i32 noundef 1, ptr noundef nonnull %24, i32 noundef %2, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %241 unwind label %252

241:                                              ; preds = %239
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #13
  %.not172 = icmp eq i32 %240, 0
  br i1 %.not172, label %254, label %242

242:                                              ; preds = %241
  %243 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %244 = trunc i64 %243 to i32
  %245 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %244)
  %246 = load ptr, ptr @stdout, align 8, !tbaa !5
  %247 = call i32 @fflush(ptr noundef %246)
  %248 = call ptr @ee2str(i32 noundef %240)
  %249 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %248)
  %250 = load ptr, ptr @stdout, align 8, !tbaa !5
  %251 = call i32 @fflush(ptr noundef %250)
  call void @exit(i32 noundef 1) #14
  unreachable

252:                                              ; preds = %239
  %253 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #13
  br label %472

254:                                              ; preds = %241
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %10) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %12) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %255 = load i32, ptr %24, align 4, !tbaa !14
  %256 = invoke noundef i32 @_Z35convolution_infer_forward_tmp_bytes6TensorS_S_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPjP8ArchInfo(ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %9, i32 noundef %255, ptr noundef nonnull %28, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %257 unwind label %268

257:                                              ; preds = %254
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #13
  %.not173 = icmp eq i32 %256, 0
  br i1 %.not173, label %270, label %258

258:                                              ; preds = %257
  %259 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %260 = trunc i64 %259 to i32
  %261 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %260)
  %262 = load ptr, ptr @stdout, align 8, !tbaa !5
  %263 = call i32 @fflush(ptr noundef %262)
  %264 = call ptr @ee2str(i32 noundef %256)
  %265 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %264)
  %266 = load ptr, ptr @stdout, align 8, !tbaa !5
  %267 = call i32 @fflush(ptr noundef %266)
  call void @exit(i32 noundef 1) #14
  unreachable

268:                                              ; preds = %254
  %269 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #13
  br label %471

270:                                              ; preds = %257
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #13
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %32, i32 noundef 1)
          to label %271 unwind label %289

271:                                              ; preds = %270
  %272 = load i32, ptr %28, align 4, !tbaa !16
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %33, i32 noundef 0, i32 noundef %272)
          to label %273 unwind label %291

273:                                              ; preds = %271
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %33)
          to label %274 unwind label %291

274:                                              ; preds = %273
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %275 unwind label %291

275:                                              ; preds = %274
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 8 dereferenceable(32) %12) #13
  %276 = load i32, ptr %24, align 4, !tbaa !14
  %277 = invoke noundef i32 @_Z34convolution_transform_filter_bytes6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvP8ArchInfo(ptr noundef nonnull %35, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %9, i32 noundef %276, ptr noundef nonnull %34, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %278 unwind label %293

278:                                              ; preds = %275
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #13
  %.not174 = icmp eq i32 %277, 0
  br i1 %.not174, label %295, label %279

279:                                              ; preds = %278
  %280 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %281 = trunc i64 %280 to i32
  %282 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %281)
  %283 = load ptr, ptr @stdout, align 8, !tbaa !5
  %284 = call i32 @fflush(ptr noundef %283)
  %285 = call ptr @ee2str(i32 noundef %277)
  %286 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %285)
  %287 = load ptr, ptr @stdout, align 8, !tbaa !5
  %288 = call i32 @fflush(ptr noundef %287)
  call void @exit(i32 noundef 1) #14
  unreachable

289:                                              ; preds = %270
  %290 = landingpad { ptr, i32 }
          cleanup
  br label %470

291:                                              ; preds = %274, %273, %271
  %292 = landingpad { ptr, i32 }
          cleanup
  br label %469

293:                                              ; preds = %275
  %294 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #13
  br label %468

295:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #13
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %36, i32 noundef 1)
          to label %296 unwind label %314

296:                                              ; preds = %295
  %297 = load i32, ptr %34, align 4, !tbaa !16
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %37, i32 noundef 0, i32 noundef %297)
          to label %298 unwind label %316

298:                                              ; preds = %296
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %37)
          to label %299 unwind label %316

299:                                              ; preds = %298
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %300 unwind label %316

300:                                              ; preds = %299
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %12) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %39, ptr noundef nonnull align 8 dereferenceable(108) %9, i64 108, i1 false), !tbaa.struct !18
  %301 = load i32, ptr %24, align 4, !tbaa !14
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(32) %32) #13
  %302 = invoke noundef i32 @_Z28convolution_transform_filter6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmS_PS_P8ArchInfo(ptr noundef nonnull %38, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %39, i32 noundef %301, ptr noundef nonnull %40, ptr noundef nonnull %36, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %303 unwind label %318

303:                                              ; preds = %300
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #13
  %.not175 = icmp eq i32 %302, 0
  br i1 %.not175, label %320, label %304

304:                                              ; preds = %303
  %305 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %306 = trunc i64 %305 to i32
  %307 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %306)
  %308 = load ptr, ptr @stdout, align 8, !tbaa !5
  %309 = call i32 @fflush(ptr noundef %308)
  %310 = call ptr @ee2str(i32 noundef %302)
  %311 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %310)
  %312 = load ptr, ptr @stdout, align 8, !tbaa !5
  %313 = call i32 @fflush(ptr noundef %312)
  call void @exit(i32 noundef 1) #14
  unreachable

314:                                              ; preds = %295
  %315 = landingpad { ptr, i32 }
          cleanup
  br label %467

316:                                              ; preds = %299, %298, %296
  %317 = landingpad { ptr, i32 }
          cleanup
  br label %466

318:                                              ; preds = %300
  %319 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #13
  br label %466

320:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %41) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #13
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %321 unwind label %339

321:                                              ; preds = %320
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #13
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %43) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #13
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %322 unwind label %341

322:                                              ; preds = %321
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #13
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %45) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %46) #13
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %323 unwind label %343

323:                                              ; preds = %322
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %47, ptr noundef nonnull align 8 dereferenceable(24) %41)
          to label %324 unwind label %345

324:                                              ; preds = %323
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %36) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %49, ptr noundef nonnull align 8 dereferenceable(108) %9, i64 108, i1 false), !tbaa.struct !18
  %325 = load i32, ptr %24, align 4, !tbaa !14
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %16) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %51, ptr noundef nonnull align 8 dereferenceable(24) %45)
          to label %326 unwind label %347

326:                                              ; preds = %324
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %327 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %47, ptr noundef nonnull %48, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %49, i32 noundef %325, ptr noundef null, ptr noundef nonnull %50, ptr noundef nonnull %51, ptr noundef nonnull %52, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %328 unwind label %349

328:                                              ; preds = %326
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #13
  %.not178 = icmp eq i32 %327, 0
  br i1 %.not178, label %352, label %329

329:                                              ; preds = %328
  %330 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %331 = trunc i64 %330 to i32
  %332 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %331)
  %333 = load ptr, ptr @stdout, align 8, !tbaa !5
  %334 = call i32 @fflush(ptr noundef %333)
  %335 = call ptr @ee2str(i32 noundef %327)
  %336 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %335)
  %337 = load ptr, ptr @stdout, align 8, !tbaa !5
  %338 = call i32 @fflush(ptr noundef %337)
  call void @exit(i32 noundef 1) #14
  unreachable

339:                                              ; preds = %320
  %340 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #13
  br label %465

341:                                              ; preds = %321
  %342 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #13
  br label %464

343:                                              ; preds = %322
  %344 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #13
  br label %463

345:                                              ; preds = %323
  %346 = landingpad { ptr, i32 }
          cleanup
  br label %462

347:                                              ; preds = %324
  %348 = landingpad { ptr, i32 }
          cleanup
  br label %351

349:                                              ; preds = %326
  %350 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #13
  br label %351

351:                                              ; preds = %349, %347
  %.pn = phi { ptr, i32 } [ %350, %349 ], [ %348, %347 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #13
  br label %462

352:                                              ; preds = %328
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %53, ptr noundef nonnull align 8 dereferenceable(24) %43)
          to label %353 unwind label %368

353:                                              ; preds = %352
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %13) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %55, ptr noundef nonnull align 8 dereferenceable(108) %9, i64 108, i1 false), !tbaa.struct !18
  %354 = load i32, ptr %24, align 4, !tbaa !14
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %16) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %57, ptr noundef nonnull align 8 dereferenceable(24) %45)
          to label %355 unwind label %370

355:                                              ; preds = %353
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %15) #13
  %356 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %53, ptr noundef nonnull %54, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %55, i32 noundef %354, ptr noundef null, ptr noundef nonnull %56, ptr noundef nonnull %57, ptr noundef nonnull %58, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL18UT_SERIAL_ARCHINFO)
          to label %357 unwind label %372

357:                                              ; preds = %355
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #13
  %.not182 = icmp eq i32 %356, 0
  br i1 %.not182, label %375, label %358

358:                                              ; preds = %357
  %359 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %360 = trunc i64 %359 to i32
  %361 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %360)
  %362 = load ptr, ptr @stdout, align 8, !tbaa !5
  %363 = call i32 @fflush(ptr noundef %362)
  %364 = call ptr @ee2str(i32 noundef %356)
  %365 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %364)
  %366 = load ptr, ptr @stdout, align 8, !tbaa !5
  %367 = call i32 @fflush(ptr noundef %366)
  call void @exit(i32 noundef 1) #14
  unreachable

368:                                              ; preds = %352
  %369 = landingpad { ptr, i32 }
          cleanup
  br label %462

370:                                              ; preds = %353
  %371 = landingpad { ptr, i32 }
          cleanup
  br label %374

372:                                              ; preds = %355
  %373 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #13
  br label %374

374:                                              ; preds = %372, %370
  %.pn179 = phi { ptr, i32 } [ %373, %372 ], [ %371, %370 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #13
  br label %462

375:                                              ; preds = %357
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %376 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %59, i32 noundef 1)
          to label %377 unwind label %411

377:                                              ; preds = %375
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %15) #13
  %378 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %60, i32 noundef 1)
          to label %379 unwind label %413

379:                                              ; preds = %377
  %380 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %381 unwind label %413

381:                                              ; preds = %379
  invoke void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef %376, ptr noundef %378, i32 noundef %380, i32 noundef %2, float noundef 1.000000e+00)
          to label %382 unwind label %413

382:                                              ; preds = %381
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #13
  %383 = invoke noundef double @_Z10ut_time_msv()
          to label %.preheader.preheader unwind label %416

.preheader.preheader:                             ; preds = %382
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 8 dereferenceable(24) %41)
          to label %418 unwind label %433

.preheader.1:                                     ; preds = %422
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 8 dereferenceable(24) %41)
          to label %384 unwind label %433

384:                                              ; preds = %.preheader.1
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %36) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %63, ptr noundef nonnull align 8 dereferenceable(108) %9, i64 108, i1 false), !tbaa.struct !18
  %385 = load i32, ptr %24, align 4, !tbaa !14
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %16) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %65, ptr noundef nonnull align 8 dereferenceable(24) %45)
          to label %386 unwind label %435

386:                                              ; preds = %384
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %387 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %61, ptr noundef nonnull %62, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %63, i32 noundef %385, ptr noundef null, ptr noundef nonnull %64, ptr noundef nonnull %65, ptr noundef nonnull %66, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %388 unwind label %437

388:                                              ; preds = %386
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #13
  %.not209.1 = icmp eq i32 %387, 0
  br i1 %.not209.1, label %.preheader.2, label %423

.preheader.2:                                     ; preds = %388
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 8 dereferenceable(24) %41)
          to label %389 unwind label %433

389:                                              ; preds = %.preheader.2
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %36) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %63, ptr noundef nonnull align 8 dereferenceable(108) %9, i64 108, i1 false), !tbaa.struct !18
  %390 = load i32, ptr %24, align 4, !tbaa !14
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %16) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %65, ptr noundef nonnull align 8 dereferenceable(24) %45)
          to label %391 unwind label %435

391:                                              ; preds = %389
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %392 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %61, ptr noundef nonnull %62, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %63, i32 noundef %390, ptr noundef null, ptr noundef nonnull %64, ptr noundef nonnull %65, ptr noundef nonnull %66, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %393 unwind label %437

393:                                              ; preds = %391
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #13
  %.not209.2 = icmp eq i32 %392, 0
  br i1 %.not209.2, label %.preheader.3, label %423

.preheader.3:                                     ; preds = %393
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 8 dereferenceable(24) %41)
          to label %394 unwind label %433

394:                                              ; preds = %.preheader.3
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %36) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %63, ptr noundef nonnull align 8 dereferenceable(108) %9, i64 108, i1 false), !tbaa.struct !18
  %395 = load i32, ptr %24, align 4, !tbaa !14
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %16) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %65, ptr noundef nonnull align 8 dereferenceable(24) %45)
          to label %396 unwind label %435

396:                                              ; preds = %394
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %397 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %61, ptr noundef nonnull %62, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %63, i32 noundef %395, ptr noundef null, ptr noundef nonnull %64, ptr noundef nonnull %65, ptr noundef nonnull %66, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %398 unwind label %437

398:                                              ; preds = %396
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #13
  %.not209.3 = icmp eq i32 %397, 0
  br i1 %.not209.3, label %.preheader.4, label %423

.preheader.4:                                     ; preds = %398
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 8 dereferenceable(24) %41)
          to label %399 unwind label %433

399:                                              ; preds = %.preheader.4
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %36) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %63, ptr noundef nonnull align 8 dereferenceable(108) %9, i64 108, i1 false), !tbaa.struct !18
  %400 = load i32, ptr %24, align 4, !tbaa !14
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %16) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %65, ptr noundef nonnull align 8 dereferenceable(24) %45)
          to label %401 unwind label %435

401:                                              ; preds = %399
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %402 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %61, ptr noundef nonnull %62, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %63, i32 noundef %400, ptr noundef null, ptr noundef nonnull %64, ptr noundef nonnull %65, ptr noundef nonnull %66, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %403 unwind label %437

403:                                              ; preds = %401
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #13
  %.not209.4 = icmp eq i32 %402, 0
  br i1 %.not209.4, label %.preheader.5, label %423

.preheader.5:                                     ; preds = %403
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 8 dereferenceable(24) %41)
          to label %404 unwind label %433

404:                                              ; preds = %.preheader.5
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %36) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %63, ptr noundef nonnull align 8 dereferenceable(108) %9, i64 108, i1 false), !tbaa.struct !18
  %405 = load i32, ptr %24, align 4, !tbaa !14
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %16) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %65, ptr noundef nonnull align 8 dereferenceable(24) %45)
          to label %406 unwind label %435

406:                                              ; preds = %404
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %407 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %61, ptr noundef nonnull %62, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %63, i32 noundef %405, ptr noundef null, ptr noundef nonnull %64, ptr noundef nonnull %65, ptr noundef nonnull %66, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %408 unwind label %437

408:                                              ; preds = %406
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #13
  %.not209.5 = icmp eq i32 %407, 0
  br i1 %.not209.5, label %409, label %423

409:                                              ; preds = %408
  %410 = invoke noundef double @_Z10ut_time_msv()
          to label %440 unwind label %458

411:                                              ; preds = %375
  %412 = landingpad { ptr, i32 }
          cleanup
  br label %415

413:                                              ; preds = %381, %379, %377
  %414 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #13
  br label %415

415:                                              ; preds = %413, %411
  %.pn183 = phi { ptr, i32 } [ %414, %413 ], [ %412, %411 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #13
  br label %462

416:                                              ; preds = %382
  %417 = landingpad { ptr, i32 }
          cleanup
  br label %462

418:                                              ; preds = %.preheader.preheader
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %36) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %63, ptr noundef nonnull align 8 dereferenceable(108) %9, i64 108, i1 false), !tbaa.struct !18
  %419 = load i32, ptr %24, align 4, !tbaa !14
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %16) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %65, ptr noundef nonnull align 8 dereferenceable(24) %45)
          to label %420 unwind label %435

420:                                              ; preds = %418
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %421 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %61, ptr noundef nonnull %62, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %63, i32 noundef %419, ptr noundef null, ptr noundef nonnull %64, ptr noundef nonnull %65, ptr noundef nonnull %66, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %422 unwind label %437

422:                                              ; preds = %420
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #13
  %.not209 = icmp eq i32 %421, 0
  br i1 %.not209, label %.preheader.1, label %423

423:                                              ; preds = %408, %403, %398, %393, %388, %422
  %.lcssa = phi i32 [ %421, %422 ], [ %387, %388 ], [ %392, %393 ], [ %397, %398 ], [ %402, %403 ], [ %407, %408 ]
  %424 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %425 = trunc i64 %424 to i32
  %426 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %425)
  %427 = load ptr, ptr @stdout, align 8, !tbaa !5
  %428 = call i32 @fflush(ptr noundef %427)
  %429 = call ptr @ee2str(i32 noundef %.lcssa)
  %430 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %429)
  %431 = load ptr, ptr @stdout, align 8, !tbaa !5
  %432 = call i32 @fflush(ptr noundef %431)
  call void @exit(i32 noundef 1) #14
  unreachable

433:                                              ; preds = %.preheader.5, %.preheader.4, %.preheader.3, %.preheader.2, %.preheader.1, %.preheader.preheader
  %434 = landingpad { ptr, i32 }
          cleanup
  br label %462

435:                                              ; preds = %404, %399, %394, %389, %384, %418
  %436 = landingpad { ptr, i32 }
          cleanup
  br label %439

437:                                              ; preds = %406, %401, %396, %391, %386, %420
  %438 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #13
  br label %439

439:                                              ; preds = %437, %435
  %.pn187 = phi { ptr, i32 } [ %438, %437 ], [ %436, %435 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #13
  br label %462

440:                                              ; preds = %409
  %441 = fsub double %410, %383
  %442 = fdiv double %441, 6.000000e+00
  call void @llvm.lifetime.start.p0(i64 150, ptr nonnull %67) #13
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %68) #13
  %443 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %68, ptr noundef nonnull dereferenceable(1) @.str.3, i32 noundef 1, i32 noundef %85, i32 noundef %88, i32 noundef %91, i32 noundef %94, i32 noundef %97, i32 noundef %100, i32 noundef %103, i32 noundef %106, i32 noundef %109, i32 noundef %112, i32 noundef 1, i32 noundef %118, i32 noundef %121, i32 noundef %124) #13
  %444 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %67, ptr noundef nonnull dereferenceable(1) @.str.4, ptr noundef nonnull @.str.5, ptr noundef nonnull %68) #13
  %445 = uitofp i32 %118 to double
  %446 = uitofp i32 %121 to double
  %447 = fmul double %445, %446
  %448 = uitofp i32 %124 to double
  %449 = fmul double %447, %448
  %450 = uitofp i32 %85 to double
  %451 = fmul double %450, 2.000000e+00
  %452 = uitofp i32 %100 to double
  %453 = fmul double %451, %452
  %454 = uitofp i32 %103 to double
  %455 = call double @llvm.fmuladd.f64(double %453, double %454, double 1.000000e+00)
  %456 = fmul double %455, %449
  invoke void @_Z6ut_log8DataTypePcdd(i32 noundef %2, ptr noundef nonnull %67, double noundef %456, double noundef %442)
          to label %457 unwind label %460

457:                                              ; preds = %440
  call void @free(ptr noundef %143) #13
  call void @free(ptr noundef %147) #13
  call void @free(ptr noundef %148) #13
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %68) #13
  call void @llvm.lifetime.end.p0(i64 150, ptr nonnull %67) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %43) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %41) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #13
  call void @llvm.lifetime.end.p0(i64 108, ptr nonnull %9) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %8) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %7) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %6) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %5) #13
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %4) #13
  ret i32 0

458:                                              ; preds = %409
  %459 = landingpad { ptr, i32 }
          cleanup
  br label %462

460:                                              ; preds = %440
  %461 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %68) #13
  call void @llvm.lifetime.end.p0(i64 150, ptr nonnull %67) #13
  br label %462

462:                                              ; preds = %416, %439, %433, %460, %458, %368, %374, %345, %351, %415
  %.pn187.pn.pn.pn = phi { ptr, i32 } [ %.pn183, %415 ], [ %.pn, %351 ], [ %346, %345 ], [ %.pn179, %374 ], [ %369, %368 ], [ %417, %416 ], [ %.pn187, %439 ], [ %434, %433 ], [ %461, %460 ], [ %459, %458 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #13
  br label %463

463:                                              ; preds = %462, %343
  %.pn187.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn, %462 ], [ %344, %343 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #13
  br label %464

464:                                              ; preds = %463, %341
  %.pn187.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn.pn, %463 ], [ %342, %341 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %43) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #13
  br label %465

465:                                              ; preds = %464, %339
  %.pn187.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn.pn.pn, %464 ], [ %340, %339 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %41) #13
  br label %466

466:                                              ; preds = %465, %318, %316
  %.pn187.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn.pn.pn.pn, %465 ], [ %319, %318 ], [ %317, %316 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #13
  br label %467

467:                                              ; preds = %466, %314
  %.pn187.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn.pn.pn.pn.pn, %466 ], [ %315, %314 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #13
  br label %468

468:                                              ; preds = %467, %293
  %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn.pn.pn.pn.pn.pn, %467 ], [ %294, %293 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #13
  br label %469

469:                                              ; preds = %468, %291
  %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn, %468 ], [ %292, %291 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #13
  br label %470

470:                                              ; preds = %469, %289
  %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %469 ], [ %290, %289 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #13
  br label %471

471:                                              ; preds = %470, %268
  %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %470 ], [ %269, %268 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #13
  br label %472

472:                                              ; preds = %471, %252
  %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %471 ], [ %253, %252 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #13
  br label %473

473:                                              ; preds = %472, %233, %231, %229, %227, %225, %223, %221
  %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %472 ], [ %222, %221 ], [ %234, %233 ], [ %232, %231 ], [ %230, %229 ], [ %228, %227 ], [ %226, %225 ], [ %224, %223 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #13
  br label %474

474:                                              ; preds = %473, %219
  %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %473 ], [ %220, %219 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #13
  br label %475

475:                                              ; preds = %474, %217
  %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %474 ], [ %218, %217 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  br label %476

476:                                              ; preds = %475, %215
  %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %475 ], [ %216, %215 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #13
  br label %477

477:                                              ; preds = %476, %213
  %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %476 ], [ %214, %213 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #13
  br label %478

478:                                              ; preds = %477, %211
  %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %477 ], [ %212, %211 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #13
  br label %479

479:                                              ; preds = %478, %209
  %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %478 ], [ %210, %209 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #13
  call void @llvm.lifetime.end.p0(i64 108, ptr nonnull %9) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %8) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %7) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %6) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %5) #13
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %4) #13
  resume { ptr, i32 } %.pn187.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

; Function Attrs: nounwind
declare i64 @syscall(i64 noundef, ...) local_unnamed_addr #2

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #3

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #3

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr nocapture noundef nonnull) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN19ActivationParamSpecC2Ev(ptr noundef nonnull align 4 dereferenceable(20)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind noalias writable sret(%struct.TensorDesc) align 4, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z8tensor1d8DataTypej(ptr dead_on_unwind noalias writable sret(%struct.TensorDesc) align 4, i32 noundef, i32 noundef) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_Z26createConvolutionParamSpecjjjjjjjjjjjjjjjjj15ConvolutionMode(ptr dead_on_unwind noalias writable sret(%struct.ConvolutionParamSpec) align 4, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #0 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef byval(%struct.TensorDesc) align 8) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #8

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z10UNI_MEMCPYPvPKvm(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef, i32 noundef) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_Z7bytesOf8DataType(i32 noundef) local_unnamed_addr #7

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8) local_unnamed_addr #7

declare noundef i32 @_Z29convolution_infer_output_sizeP6TensorS_20ConvolutionParamSpecS0_8DataTypeP8ArchInfo(ptr noundef, ptr noundef, ptr noundef byval(%struct.ConvolutionParamSpec) align 8, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #9

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local ptr @ee2str(i32 noundef) local_unnamed_addr #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Tensor8get_descEv(ptr dead_on_unwind noalias writable sret(%struct.TensorDesc) align 4, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

declare noundef i32 @_Z35convolution_infer_forward_algorithm6TensorS_S_20ConvolutionParamSpec17ConvolutionPolicyP27ConvolutionForwardAlgorithm8DataType19ActivationParamSpecP8ArchInfo(ptr noundef, ptr noundef, ptr noundef, ptr noundef byval(%struct.ConvolutionParamSpec) align 8, i32 noundef, ptr noundef, i32 noundef, ptr noundef byval(%struct.ActivationParamSpec) align 8, ptr noundef) local_unnamed_addr #9

declare noundef i32 @_Z35convolution_infer_forward_tmp_bytes6TensorS_S_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPjP8ArchInfo(ptr noundef, ptr noundef, ptr noundef, ptr noundef byval(%struct.ConvolutionParamSpec) align 8, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #9

declare noundef i32 @_Z34convolution_transform_filter_bytes6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvP8ArchInfo(ptr noundef, ptr noundef byval(%struct.ConvolutionParamSpec) align 8, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #9

declare noundef i32 @_Z28convolution_transform_filter6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmS_PS_P8ArchInfo(ptr noundef, ptr noundef byval(%struct.ConvolutionParamSpec) align 8, i32 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #9

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

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

declare noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef, ptr noundef, ptr noundef byval(%struct.ConvolutionParamSpec) align 8, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef byval(%struct.ActivationParamSpec) align 8, ptr noundef) local_unnamed_addr #9

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef, ptr noundef, i32 noundef, i32 noundef, float noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

declare noundef double @_Z10ut_time_msv() local_unnamed_addr #9

; Function Attrs: nofree nounwind
declare noundef i32 @sprintf(ptr noalias nocapture noundef writeonly, ptr nocapture noundef readonly, ...) local_unnamed_addr #3

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #11

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z6ut_log8DataTypePcdd(i32 noundef, ptr noundef, double noundef, double noundef) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #12

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { 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 #4 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { 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 #11 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #12 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #13 = { nounwind }
attributes #14 = { noreturn nounwind }
attributes #15 = { nounwind willreturn memory(read) }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTS19ActivationParamSpec", !11, i64 0, !7, i64 4}
!11 = !{!"_ZTS14ActivationMode", !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"float", !7, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"_ZTS27ConvolutionForwardAlgorithm", !7, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"int", !7, i64 0}
!18 = !{i64 0, i64 4, !16, i64 4, i64 4, !16, i64 8, i64 4, !16, i64 12, i64 4, !16, i64 16, i64 4, !16, i64 20, i64 4, !16, i64 24, i64 4, !16, i64 28, i64 4, !16, i64 32, i64 4, !16, i64 36, i64 4, !16, i64 40, i64 4, !16, i64 44, i64 4, !16, i64 48, i64 4, !16, i64 52, i64 4, !16, i64 56, i64 4, !16, i64 60, i64 4, !16, i64 64, i64 4, !16, i64 68, i64 4, !16, i64 72, i64 4, !19, i64 76, i64 4, !21, i64 80, i64 4, !21, i64 84, i64 8, !22, i64 92, i64 4, !23, i64 96, i64 4, !16, i64 100, i64 4, !16, i64 104, i64 4, !16}
!19 = !{!20, !20, i64 0}
!20 = !{!"_ZTS15ConvolutionMode", !7, i64 0}
!21 = !{!11, !11, i64 0}
!22 = !{!7, !7, i64 0}
!23 = !{!24, !24, i64 0}
!24 = !{!"_ZTS9RoundMode", !7, i64 0}


; Effective O3 passes: DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,LCSSAPass,LoopRotatePass,LoopSimplifyPass,MemCpyOptPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass