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

; 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 [50 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [16 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z18bnnConvolutionTestiPPc8DataTypeS1_(i32 noundef %0, ptr noundef %1, i32 noundef %2, i32 noundef %3) #0 personality ptr @__gxx_personality_v0 {
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %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 i32, align 4
  %26 = alloca %struct.ActivationParamSpec, 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 i32, align 4
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca %class.Tensor, align 8
  %36 = alloca %class.Tensor, align 8
  %37 = alloca ptr, align 8
  %38 = alloca i32, align 4
  %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 %class.Tensor, 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 %struct.TensorDesc, align 8
  %49 = alloca %class.Tensor, align 8
  %50 = alloca %class.Tensor, align 8
  %51 = alloca %class.Tensor, align 8
  %52 = alloca %struct.TensorDesc, align 8
  %53 = alloca %class.Tensor, align 8
  %54 = alloca %struct.TensorDesc, align 8
  %55 = alloca %class.Tensor, align 8
  %56 = alloca %struct.TensorDesc, align 8
  %57 = alloca i32, align 4
  %58 = alloca %class.Tensor, align 8
  %59 = alloca %struct.ConvolutionParamSpec, align 8
  %60 = alloca i32, align 4
  %61 = alloca %struct.TensorDesc, align 8
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca %class.Tensor, align 8
  %66 = alloca %class.Tensor, align 8
  %67 = alloca %class.Tensor, align 8
  %68 = alloca %struct.ConvolutionParamSpec, align 8
  %69 = alloca %struct.ActivationParamSpec, align 8
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca %class.Tensor, align 8
  %74 = alloca %class.Tensor, align 8
  %75 = alloca %class.Tensor, align 8
  %76 = alloca %struct.ConvolutionParamSpec, align 8
  %77 = alloca i32, align 4
  %78 = alloca %class.Tensor, align 8
  %79 = alloca %struct.TensorDesc, align 8
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca %class.Tensor, align 8
  %83 = alloca %struct.ConvolutionParamSpec, align 8
  %84 = alloca i32, align 4
  %85 = alloca %class.Tensor, align 8
  %86 = alloca %struct.TensorDesc, align 8
  %87 = alloca i32, align 4
  %88 = alloca %class.Tensor, align 8
  %89 = alloca %struct.ConvolutionParamSpec, align 8
  %90 = alloca %class.Tensor, align 8
  %91 = alloca i32, align 4
  %92 = alloca %"class.std::vector", align 8
  %93 = alloca %"class.std::allocator", align 1
  %94 = alloca %"class.std::vector", align 8
  %95 = alloca %"class.std::allocator", align 1
  %96 = alloca %"class.std::vector", align 8
  %97 = alloca %"class.std::allocator", align 1
  %98 = alloca i32, align 4
  %99 = alloca %"class.std::vector", align 8
  %100 = alloca %class.Tensor, align 8
  %101 = alloca %struct.ConvolutionParamSpec, align 8
  %102 = alloca %class.Tensor, align 8
  %103 = alloca %"class.std::vector", align 8
  %104 = alloca %class.Tensor, align 8
  %105 = alloca %struct.ActivationParamSpec, align 8
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca %"class.std::vector", align 8
  %109 = alloca %class.Tensor, align 8
  %110 = alloca %struct.ConvolutionParamSpec, align 8
  %111 = alloca %class.Tensor, align 8
  %112 = alloca %"class.std::vector", align 8
  %113 = alloca %class.Tensor, align 8
  %114 = alloca %struct.ActivationParamSpec, align 8
  %115 = alloca i32, align 4
  %116 = alloca %class.Tensor, align 8
  %117 = alloca %class.Tensor, align 8
  %118 = alloca double, align 8
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca %"class.std::vector", align 8
  %122 = alloca %class.Tensor, align 8
  %123 = alloca %struct.ConvolutionParamSpec, align 8
  %124 = alloca %class.Tensor, align 8
  %125 = alloca %"class.std::vector", align 8
  %126 = alloca %class.Tensor, align 8
  %127 = alloca %struct.ActivationParamSpec, align 8
  %128 = alloca i32, align 4
  %129 = alloca double, align 8
  %130 = alloca double, align 8
  %131 = alloca [150 x i8], align 16
  %132 = alloca [120 x i8], align 16
  %133 = alloca double, align 8
  store i32 %0, ptr %5, align 4, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !9
  store i32 %2, ptr %7, align 4, !tbaa !11
  store i32 %3, ptr %8, align 4, !tbaa !11
  %134 = load i32, ptr %5, align 4, !tbaa !5
  %135 = icmp eq i32 %134, 16
  br i1 %135, label %146, label %136

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

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

209:                                              ; preds = %146
  %210 = load i32, ptr %21, align 4, !tbaa !5
  %211 = icmp eq i32 %210, 1
  br i1 %211, label %222, label %212

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

222:                                              ; preds = %209
  call void @llvm.lifetime.start.p0(i64 20, ptr %26) #11
  call void @_ZN19ActivationParamSpecC2Ev(ptr noundef nonnull align 4 dereferenceable(20) %26) #11
  %223 = getelementptr inbounds %struct.ActivationParamSpec, ptr %26, i32 0, i32 0
  store i32 0, ptr %223, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 92, ptr %27) #11
  %224 = load i32, ptr %7, align 4, !tbaa !11
  %225 = load i32, ptr %10, align 4, !tbaa !5
  %226 = load i32, ptr %11, align 4, !tbaa !5
  %227 = load i32, ptr %12, align 4, !tbaa !5
  %228 = load i32, ptr %13, align 4, !tbaa !5
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %27, i32 noundef %224, i32 noundef 2, i32 noundef %225, i32 noundef %226, i32 noundef %227, i32 noundef %228)
  call void @llvm.lifetime.start.p0(i64 92, ptr %28) #11
  %229 = load i32, ptr %8, align 4, !tbaa !11
  %230 = load i32, ptr %22, align 4, !tbaa !5
  %231 = load i32, ptr %11, align 4, !tbaa !5
  %232 = load i32, ptr %16, align 4, !tbaa !5
  %233 = load i32, ptr %17, align 4, !tbaa !5
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %28, i32 noundef %229, i32 noundef 0, i32 noundef %230, i32 noundef %231, i32 noundef %232, i32 noundef %233)
  call void @llvm.lifetime.start.p0(i64 92, ptr %29) #11
  %234 = load i32, ptr %7, align 4, !tbaa !11
  %235 = load i32, ptr %22, align 4, !tbaa !5
  %236 = mul i32 %235, 2
  call void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %29, i32 noundef %234, i32 noundef %236)
  call void @llvm.lifetime.start.p0(i64 108, ptr %30) #11
  %237 = load i32, ptr %18, align 4, !tbaa !5
  %238 = load i32, ptr %16, align 4, !tbaa !5
  %239 = load i32, ptr %17, align 4, !tbaa !5
  %240 = load i32, ptr %19, align 4, !tbaa !5
  %241 = load i32, ptr %19, align 4, !tbaa !5
  %242 = load i32, ptr %20, align 4, !tbaa !5
  %243 = load i32, ptr %20, align 4, !tbaa !5
  %244 = load i32, ptr %20, align 4, !tbaa !5
  %245 = load i32, ptr %20, align 4, !tbaa !5
  %246 = load i32, ptr %22, align 4, !tbaa !5
  call void @_Z26createConvolutionParamSpecjjjjjjjjjjjjjjjjj15ConvolutionMode(ptr dead_on_unwind writable sret(%struct.ConvolutionParamSpec) align 4 %30, i32 noundef %237, i32 noundef 1, i32 noundef %238, i32 noundef %239, i32 noundef 1, i32 noundef %240, i32 noundef %241, i32 noundef 0, i32 noundef 0, i32 noundef %242, i32 noundef %243, i32 noundef %244, i32 noundef %245, i32 noundef 1, i32 noundef 1, i32 noundef 1, i32 noundef %246, i32 noundef 3)
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #11
  %247 = load i32, ptr %10, align 4, !tbaa !5
  %248 = load i32, ptr %11, align 4, !tbaa !5
  %249 = mul i32 %247, %248
  %250 = load i32, ptr %12, align 4, !tbaa !5
  %251 = mul i32 %249, %250
  %252 = load i32, ptr %13, align 4, !tbaa !5
  %253 = mul i32 %251, %252
  %254 = load i32, ptr %7, align 4, !tbaa !11
  %255 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %253, i32 noundef %254, i32 noundef 0)
  store ptr %255, ptr %31, align 8, !tbaa !9
  %256 = load i32, ptr %8, align 4, !tbaa !11
  %257 = icmp eq i32 %256, 7
  br i1 %257, label %258, label %278

258:                                              ; preds = %222
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #11
  store i32 0, ptr %32, align 4, !tbaa !5
  br label %259

259:                                              ; preds = %274, %258
  %260 = load i32, ptr %32, align 4, !tbaa !5
  %261 = load i32, ptr %10, align 4, !tbaa !5
  %262 = load i32, ptr %11, align 4, !tbaa !5
  %263 = mul i32 %261, %262
  %264 = load i32, ptr %12, align 4, !tbaa !5
  %265 = mul i32 %263, %264
  %266 = load i32, ptr %13, align 4, !tbaa !5
  %267 = mul i32 %265, %266
  %268 = icmp ult i32 %260, %267
  br i1 %268, label %270, label %269

269:                                              ; preds = %259
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %277

270:                                              ; preds = %259
  %271 = load i32, ptr %7, align 4, !tbaa !11
  switch i32 %271, label %272 [
  ]

272:                                              ; preds = %270
  br label %273

273:                                              ; preds = %272
  br label %274

274:                                              ; preds = %273
  %275 = load i32, ptr %32, align 4, !tbaa !5
  %276 = add i32 %275, 1
  store i32 %276, ptr %32, align 4, !tbaa !5
  br label %259, !llvm.loop !16

277:                                              ; preds = %269
  br label %278

278:                                              ; preds = %277, %222
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #11
  %279 = load i32, ptr %14, align 4, !tbaa !5
  %280 = load i32, ptr %15, align 4, !tbaa !5
  %281 = mul i32 %279, %280
  %282 = load i32, ptr %16, align 4, !tbaa !5
  %283 = mul i32 %281, %282
  %284 = load i32, ptr %17, align 4, !tbaa !5
  %285 = mul i32 %283, %284
  %286 = udiv i32 %285, 8
  %287 = load i32, ptr %8, align 4, !tbaa !11
  %288 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %286, i32 noundef %287, i32 noundef 2)
  store ptr %288, ptr %33, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #11
  %289 = load i32, ptr %22, align 4, !tbaa !5
  %290 = mul i32 %289, 2
  %291 = load i32, ptr %7, align 4, !tbaa !11
  %292 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %290, i32 noundef %291, i32 noundef 0)
  store ptr %292, ptr %34, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #11
  call void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %35, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %36, i32 noundef 1)
          to label %293 unwind label %384

293:                                              ; preds = %278
  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 %294 unwind label %388

294:                                              ; preds = %293
  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 %295 unwind label %392

295:                                              ; preds = %294
  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 %296 unwind label %396

296:                                              ; preds = %295
  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 %297 unwind label %400

297:                                              ; preds = %296
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %43, i32 noundef 1)
          to label %298 unwind label %404

298:                                              ; preds = %297
  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 %299 unwind label %408

299:                                              ; preds = %298
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %45, ptr align 4 %27, i64 92, i1 false), !tbaa.struct !18
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef byval(%struct.TensorDesc) align 8 %45)
          to label %300 unwind label %408

300:                                              ; preds = %299
  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 %301 unwind label %408

301:                                              ; preds = %300
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %47, ptr align 4 %28, i64 92, i1 false), !tbaa.struct !18
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef byval(%struct.TensorDesc) align 8 %47)
          to label %302 unwind label %408

302:                                              ; preds = %301
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %48, ptr align 4 %29, i64 92, i1 false), !tbaa.struct !18
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef byval(%struct.TensorDesc) align 8 %48)
          to label %303 unwind label %408

303:                                              ; preds = %302
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %304 unwind label %408

304:                                              ; preds = %303
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %305 unwind label %408

305:                                              ; preds = %304
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %306 unwind label %408

306:                                              ; preds = %305
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %307 unwind label %408

307:                                              ; preds = %306
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %308 unwind label %408

308:                                              ; preds = %307
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  %309 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %49, i32 noundef 1)
          to label %310 unwind label %412

310:                                              ; preds = %308
  %311 = load ptr, ptr %31, align 8, !tbaa !9
  %312 = load i32, ptr %7, align 4, !tbaa !11
  %313 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %312)
          to label %314 unwind label %412

314:                                              ; preds = %310
  %315 = load i32, ptr %10, align 4, !tbaa !5
  %316 = mul i32 %313, %315
  %317 = load i32, ptr %11, align 4, !tbaa !5
  %318 = mul i32 %316, %317
  %319 = load i32, ptr %12, align 4, !tbaa !5
  %320 = mul i32 %318, %319
  %321 = load i32, ptr %13, align 4, !tbaa !5
  %322 = mul i32 %320, %321
  %323 = zext i32 %322 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %309, ptr noundef %311, i64 noundef %323)
          to label %324 unwind label %412

324:                                              ; preds = %314
  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) %36) #11
  %325 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %50, i32 noundef 1)
          to label %326 unwind label %416

326:                                              ; preds = %324
  %327 = load ptr, ptr %31, align 8, !tbaa !9
  %328 = load i32, ptr %7, align 4, !tbaa !11
  %329 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %328)
          to label %330 unwind label %416

330:                                              ; preds = %326
  %331 = load i32, ptr %10, align 4, !tbaa !5
  %332 = mul i32 %329, %331
  %333 = load i32, ptr %11, align 4, !tbaa !5
  %334 = mul i32 %332, %333
  %335 = load i32, ptr %12, align 4, !tbaa !5
  %336 = mul i32 %334, %335
  %337 = load i32, ptr %13, align 4, !tbaa !5
  %338 = mul i32 %336, %337
  %339 = zext i32 %338 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %325, ptr noundef %327, i64 noundef %339)
          to label %340 unwind label %416

340:                                              ; preds = %330
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  %341 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %51, i32 noundef 1)
          to label %342 unwind label %420

342:                                              ; preds = %340
  %343 = load ptr, ptr %33, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %52, ptr align 4 %28, i64 92, i1 false), !tbaa.struct !18
  %344 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %52)
          to label %345 unwind label %420

345:                                              ; preds = %342
  %346 = zext i32 %344 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %341, ptr noundef %343, i64 noundef %346)
          to label %347 unwind label %420

347:                                              ; preds = %345
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  %348 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %53, i32 noundef 1)
          to label %349 unwind label %424

349:                                              ; preds = %347
  %350 = load ptr, ptr %33, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %54, ptr align 4 %28, i64 92, i1 false), !tbaa.struct !18
  %351 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %54)
          to label %352 unwind label %424

352:                                              ; preds = %349
  %353 = zext i32 %351 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %348, ptr noundef %350, i64 noundef %353)
          to label %354 unwind label %424

354:                                              ; preds = %352
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  %355 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %55, i32 noundef 1)
          to label %356 unwind label %428

356:                                              ; preds = %354
  %357 = load ptr, ptr %34, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %56, ptr align 4 %29, i64 92, i1 false), !tbaa.struct !18
  %358 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %56)
          to label %359 unwind label %428

359:                                              ; preds = %356
  %360 = zext i32 %358 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %355, ptr noundef %357, i64 noundef %360)
          to label %361 unwind label %428

361:                                              ; preds = %359
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %59, ptr align 4 %30, i64 108, i1 false), !tbaa.struct !22
  %362 = load i32, ptr %7, align 4, !tbaa !11
  %363 = invoke noundef i32 @_Z29convolution_infer_output_sizeP6TensorS_20ConvolutionParamSpecS0_8DataTypeP8ArchInfo(ptr noundef %35, ptr noundef %58, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %59, ptr noundef %41, i32 noundef %362, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %364 unwind label %432

364:                                              ; preds = %361
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #11
  store i32 %363, ptr %57, align 4, !tbaa !28
  %365 = load i32, ptr %57, align 4, !tbaa !28
  %366 = icmp ne i32 %365, 0
  br i1 %366, label %367, label %440

367:                                              ; preds = %364
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #11
  %368 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %369 = trunc i64 %368 to i32
  store i32 %369, ptr %60, align 4, !tbaa !5
  %370 = load i32, ptr %60, align 4, !tbaa !5
  %371 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %370)
          to label %372 unwind label %436

372:                                              ; preds = %367
  %373 = load ptr, ptr @stdout, align 8, !tbaa !9
  %374 = invoke i32 @fflush(ptr noundef %373)
          to label %375 unwind label %436

375:                                              ; preds = %372
  %376 = load i32, ptr %57, align 4, !tbaa !28
  %377 = invoke ptr @ee2str(i32 noundef %376)
          to label %378 unwind label %436

378:                                              ; preds = %375
  %379 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %377)
          to label %380 unwind label %436

380:                                              ; preds = %378
  %381 = load ptr, ptr @stdout, align 8, !tbaa !9
  %382 = invoke i32 @fflush(ptr noundef %381)
          to label %383 unwind label %436

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

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

388:                                              ; preds = %293
  %389 = landingpad { ptr, i32 }
          cleanup
  %390 = extractvalue { ptr, i32 } %389, 0
  store ptr %390, ptr %37, align 8
  %391 = extractvalue { ptr, i32 } %389, 1
  store i32 %391, ptr %38, align 4
  br label %857

392:                                              ; preds = %294
  %393 = landingpad { ptr, i32 }
          cleanup
  %394 = extractvalue { ptr, i32 } %393, 0
  store ptr %394, ptr %37, align 8
  %395 = extractvalue { ptr, i32 } %393, 1
  store i32 %395, ptr %38, align 4
  br label %856

396:                                              ; preds = %295
  %397 = landingpad { ptr, i32 }
          cleanup
  %398 = extractvalue { ptr, i32 } %397, 0
  store ptr %398, ptr %37, align 8
  %399 = extractvalue { ptr, i32 } %397, 1
  store i32 %399, ptr %38, align 4
  br label %855

400:                                              ; preds = %296
  %401 = landingpad { ptr, i32 }
          cleanup
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %37, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %38, align 4
  br label %854

404:                                              ; preds = %297
  %405 = landingpad { ptr, i32 }
          cleanup
  %406 = extractvalue { ptr, i32 } %405, 0
  store ptr %406, ptr %37, align 8
  %407 = extractvalue { ptr, i32 } %405, 1
  store i32 %407, ptr %38, align 4
  br label %853

408:                                              ; preds = %443, %442, %441, %440, %307, %306, %305, %304, %303, %302, %301, %300, %299, %298
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %37, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %38, align 4
  br label %852

412:                                              ; preds = %314, %310, %308
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %37, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #11
  br label %852

416:                                              ; preds = %330, %326, %324
  %417 = landingpad { ptr, i32 }
          cleanup
  %418 = extractvalue { ptr, i32 } %417, 0
  store ptr %418, ptr %37, align 8
  %419 = extractvalue { ptr, i32 } %417, 1
  store i32 %419, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #11
  br label %852

420:                                              ; preds = %345, %342, %340
  %421 = landingpad { ptr, i32 }
          cleanup
  %422 = extractvalue { ptr, i32 } %421, 0
  store ptr %422, ptr %37, align 8
  %423 = extractvalue { ptr, i32 } %421, 1
  store i32 %423, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  br label %852

424:                                              ; preds = %352, %349, %347
  %425 = landingpad { ptr, i32 }
          cleanup
  %426 = extractvalue { ptr, i32 } %425, 0
  store ptr %426, ptr %37, align 8
  %427 = extractvalue { ptr, i32 } %425, 1
  store i32 %427, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #11
  br label %852

428:                                              ; preds = %359, %356, %354
  %429 = landingpad { ptr, i32 }
          cleanup
  %430 = extractvalue { ptr, i32 } %429, 0
  store ptr %430, ptr %37, align 8
  %431 = extractvalue { ptr, i32 } %429, 1
  store i32 %431, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #11
  br label %852

432:                                              ; preds = %361
  %433 = landingpad { ptr, i32 }
          cleanup
  %434 = extractvalue { ptr, i32 } %433, 0
  store ptr %434, ptr %37, align 8
  %435 = extractvalue { ptr, i32 } %433, 1
  store i32 %435, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #11
  br label %468

436:                                              ; preds = %380, %378, %375, %372, %367
  %437 = landingpad { ptr, i32 }
          cleanup
  %438 = extractvalue { ptr, i32 } %437, 0
  store ptr %438, ptr %37, align 8
  %439 = extractvalue { ptr, i32 } %437, 1
  store i32 %439, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %468

440:                                              ; preds = %364
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %441 unwind label %408

441:                                              ; preds = %440
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %61, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %442 unwind label %408

442:                                              ; preds = %441
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef byval(%struct.TensorDesc) align 8 %61)
          to label %443 unwind label %408

443:                                              ; preds = %442
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %444 unwind label %408

444:                                              ; preds = %443
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  store i32 1, ptr %62, align 4, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  store i32 9, ptr %63, align 4, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %68, ptr align 4 %30, i64 108, i1 false), !tbaa.struct !22
  %445 = load i32, ptr %62, align 4, !tbaa !30
  %446 = load i32, ptr %8, align 4, !tbaa !11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %69, ptr align 4 %26, i64 20, i1 false), !tbaa.struct !34
  %447 = invoke noundef i32 @_Z35convolution_infer_forward_algorithm6TensorS_S_20ConvolutionParamSpec17ConvolutionPolicyP27ConvolutionForwardAlgorithm8DataType19ActivationParamSpecP8ArchInfo(ptr noundef %65, ptr noundef %66, ptr noundef %67, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %68, i32 noundef %445, ptr noundef %63, i32 noundef %446, ptr noundef byval(%struct.ActivationParamSpec) align 8 %69, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %448 unwind label %469

448:                                              ; preds = %444
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #11
  store i32 %447, ptr %64, align 4, !tbaa !28
  %449 = load i32, ptr %64, align 4, !tbaa !28
  %450 = icmp ne i32 %449, 0
  br i1 %450, label %451, label %477

451:                                              ; preds = %448
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  %452 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %453 = trunc i64 %452 to i32
  store i32 %453, ptr %70, align 4, !tbaa !5
  %454 = load i32, ptr %70, align 4, !tbaa !5
  %455 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %454)
          to label %456 unwind label %473

456:                                              ; preds = %451
  %457 = load ptr, ptr @stdout, align 8, !tbaa !9
  %458 = invoke i32 @fflush(ptr noundef %457)
          to label %459 unwind label %473

459:                                              ; preds = %456
  %460 = load i32, ptr %64, align 4, !tbaa !28
  %461 = invoke ptr @ee2str(i32 noundef %460)
          to label %462 unwind label %473

462:                                              ; preds = %459
  %463 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %461)
          to label %464 unwind label %473

464:                                              ; preds = %462
  %465 = load ptr, ptr @stdout, align 8, !tbaa !9
  %466 = invoke i32 @fflush(ptr noundef %465)
          to label %467 unwind label %473

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

468:                                              ; preds = %436, %432
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %852

469:                                              ; preds = %444
  %470 = landingpad { ptr, i32 }
          cleanup
  %471 = extractvalue { ptr, i32 } %470, 0
  store ptr %471, ptr %37, align 8
  %472 = extractvalue { ptr, i32 } %470, 1
  store i32 %472, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #11
  br label %500

473:                                              ; preds = %464, %462, %459, %456, %451
  %474 = landingpad { ptr, i32 }
          cleanup
  %475 = extractvalue { ptr, i32 } %474, 0
  store ptr %475, ptr %37, align 8
  %476 = extractvalue { ptr, i32 } %474, 1
  store i32 %476, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %500

477:                                              ; preds = %448
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %76, ptr align 4 %30, i64 108, i1 false), !tbaa.struct !22
  %478 = load i32, ptr %63, align 4, !tbaa !32
  %479 = invoke noundef i32 @_Z35convolution_infer_forward_tmp_bytes6TensorS_S_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPjP8ArchInfo(ptr noundef %73, ptr noundef %74, ptr noundef %75, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %76, i32 noundef %478, ptr noundef %71, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %480 unwind label %501

480:                                              ; preds = %477
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  store i32 %479, ptr %72, align 4, !tbaa !28
  %481 = load i32, ptr %72, align 4, !tbaa !28
  %482 = icmp ne i32 %481, 0
  br i1 %482, label %483, label %509

483:                                              ; preds = %480
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  %484 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %485 = trunc i64 %484 to i32
  store i32 %485, ptr %77, align 4, !tbaa !5
  %486 = load i32, ptr %77, align 4, !tbaa !5
  %487 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %486)
          to label %488 unwind label %505

488:                                              ; preds = %483
  %489 = load ptr, ptr @stdout, align 8, !tbaa !9
  %490 = invoke i32 @fflush(ptr noundef %489)
          to label %491 unwind label %505

491:                                              ; preds = %488
  %492 = load i32, ptr %72, align 4, !tbaa !28
  %493 = invoke ptr @ee2str(i32 noundef %492)
          to label %494 unwind label %505

494:                                              ; preds = %491
  %495 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %493)
          to label %496 unwind label %505

496:                                              ; preds = %494
  %497 = load ptr, ptr @stdout, align 8, !tbaa !9
  %498 = invoke i32 @fflush(ptr noundef %497)
          to label %499 unwind label %505

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

500:                                              ; preds = %473, %469
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %851

501:                                              ; preds = %477
  %502 = landingpad { ptr, i32 }
          cleanup
  %503 = extractvalue { ptr, i32 } %502, 0
  store ptr %503, ptr %37, align 8
  %504 = extractvalue { ptr, i32 } %502, 1
  store i32 %504, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  br label %537

505:                                              ; preds = %496, %494, %491, %488, %483
  %506 = landingpad { ptr, i32 }
          cleanup
  %507 = extractvalue { ptr, i32 } %506, 0
  store ptr %507, ptr %37, align 8
  %508 = extractvalue { ptr, i32 } %506, 1
  store i32 %508, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %537

509:                                              ; preds = %480
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %78, i32 noundef 1)
          to label %510 unwind label %538

510:                                              ; preds = %509
  %511 = load i32, ptr %71, align 4, !tbaa !5
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %79, i32 noundef 0, i32 noundef %511)
          to label %512 unwind label %542

512:                                              ; preds = %510
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef byval(%struct.TensorDesc) align 8 %79)
          to label %513 unwind label %542

513:                                              ; preds = %512
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %514 unwind label %542

514:                                              ; preds = %513
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %83, ptr align 4 %30, i64 108, i1 false), !tbaa.struct !22
  %515 = load i32, ptr %63, align 4, !tbaa !32
  %516 = invoke noundef i32 @_Z34convolution_transform_filter_bytes6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvP8ArchInfo(ptr noundef %82, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %83, i32 noundef %515, ptr noundef %80, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %517 unwind label %546

517:                                              ; preds = %514
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #11
  store i32 %516, ptr %81, align 4, !tbaa !28
  %518 = load i32, ptr %81, align 4, !tbaa !28
  %519 = icmp ne i32 %518, 0
  br i1 %519, label %520, label %554

520:                                              ; preds = %517
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #11
  %521 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %522 = trunc i64 %521 to i32
  store i32 %522, ptr %84, align 4, !tbaa !5
  %523 = load i32, ptr %84, align 4, !tbaa !5
  %524 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %523)
          to label %525 unwind label %550

525:                                              ; preds = %520
  %526 = load ptr, ptr @stdout, align 8, !tbaa !9
  %527 = invoke i32 @fflush(ptr noundef %526)
          to label %528 unwind label %550

528:                                              ; preds = %525
  %529 = load i32, ptr %81, align 4, !tbaa !28
  %530 = invoke ptr @ee2str(i32 noundef %529)
          to label %531 unwind label %550

531:                                              ; preds = %528
  %532 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %530)
          to label %533 unwind label %550

533:                                              ; preds = %531
  %534 = load ptr, ptr @stdout, align 8, !tbaa !9
  %535 = invoke i32 @fflush(ptr noundef %534)
          to label %536 unwind label %550

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

537:                                              ; preds = %505, %501
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %850

538:                                              ; preds = %509
  %539 = landingpad { ptr, i32 }
          cleanup
  %540 = extractvalue { ptr, i32 } %539, 0
  store ptr %540, ptr %37, align 8
  %541 = extractvalue { ptr, i32 } %539, 1
  store i32 %541, ptr %38, align 4
  br label %849

542:                                              ; preds = %513, %512, %510
  %543 = landingpad { ptr, i32 }
          cleanup
  %544 = extractvalue { ptr, i32 } %543, 0
  store ptr %544, ptr %37, align 8
  %545 = extractvalue { ptr, i32 } %543, 1
  store i32 %545, ptr %38, align 4
  br label %848

546:                                              ; preds = %514
  %547 = landingpad { ptr, i32 }
          cleanup
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %37, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #11
  br label %582

550:                                              ; preds = %533, %531, %528, %525, %520
  %551 = landingpad { ptr, i32 }
          cleanup
  %552 = extractvalue { ptr, i32 } %551, 0
  store ptr %552, ptr %37, align 8
  %553 = extractvalue { ptr, i32 } %551, 1
  store i32 %553, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  br label %582

554:                                              ; preds = %517
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %85, i32 noundef 1)
          to label %555 unwind label %583

555:                                              ; preds = %554
  %556 = load i32, ptr %80, align 4, !tbaa !5
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %86, i32 noundef 0, i32 noundef %556)
          to label %557 unwind label %587

557:                                              ; preds = %555
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef byval(%struct.TensorDesc) align 8 %86)
          to label %558 unwind label %587

558:                                              ; preds = %557
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %559 unwind label %587

559:                                              ; preds = %558
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %89, ptr align 4 %30, i64 108, i1 false), !tbaa.struct !22
  %560 = load i32, ptr %63, align 4, !tbaa !32
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull align 8 dereferenceable(32) %78) #11
  %561 = invoke noundef i32 @_Z28convolution_transform_filter6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmS_PS_P8ArchInfo(ptr noundef %88, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %89, i32 noundef %560, ptr noundef %90, ptr noundef %85, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %562 unwind label %591

562:                                              ; preds = %559
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #11
  store i32 %561, ptr %87, align 4, !tbaa !28
  %563 = load i32, ptr %87, align 4, !tbaa !28
  %564 = icmp ne i32 %563, 0
  br i1 %564, label %565, label %599

565:                                              ; preds = %562
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %566 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %567 = trunc i64 %566 to i32
  store i32 %567, ptr %91, align 4, !tbaa !5
  %568 = load i32, ptr %91, align 4, !tbaa !5
  %569 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %568)
          to label %570 unwind label %595

570:                                              ; preds = %565
  %571 = load ptr, ptr @stdout, align 8, !tbaa !9
  %572 = invoke i32 @fflush(ptr noundef %571)
          to label %573 unwind label %595

573:                                              ; preds = %570
  %574 = load i32, ptr %87, align 4, !tbaa !28
  %575 = invoke ptr @ee2str(i32 noundef %574)
          to label %576 unwind label %595

576:                                              ; preds = %573
  %577 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %575)
          to label %578 unwind label %595

578:                                              ; preds = %576
  %579 = load ptr, ptr @stdout, align 8, !tbaa !9
  %580 = invoke i32 @fflush(ptr noundef %579)
          to label %581 unwind label %595

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

582:                                              ; preds = %550, %546
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %847

583:                                              ; preds = %554
  %584 = landingpad { ptr, i32 }
          cleanup
  %585 = extractvalue { ptr, i32 } %584, 0
  store ptr %585, ptr %37, align 8
  %586 = extractvalue { ptr, i32 } %584, 1
  store i32 %586, ptr %38, align 4
  br label %846

587:                                              ; preds = %558, %557, %555
  %588 = landingpad { ptr, i32 }
          cleanup
  %589 = extractvalue { ptr, i32 } %588, 0
  store ptr %589, ptr %37, align 8
  %590 = extractvalue { ptr, i32 } %588, 1
  store i32 %590, ptr %38, align 4
  br label %845

591:                                              ; preds = %559
  %592 = landingpad { ptr, i32 }
          cleanup
  %593 = extractvalue { ptr, i32 } %592, 0
  store ptr %593, ptr %37, align 8
  %594 = extractvalue { ptr, i32 } %592, 1
  store i32 %594, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #11
  br label %627

595:                                              ; preds = %578, %576, %573, %570, %565
  %596 = landingpad { ptr, i32 }
          cleanup
  %597 = extractvalue { ptr, i32 } %596, 0
  store ptr %597, ptr %37, align 8
  %598 = extractvalue { ptr, i32 } %596, 1
  store i32 %598, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %627

599:                                              ; preds = %562
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %92) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %93) #11
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %92, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 1 dereferenceable(1) %93)
          to label %600 unwind label %628

600:                                              ; preds = %599
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %93) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %94) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #11
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %94, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 1 dereferenceable(1) %95)
          to label %601 unwind label %632

601:                                              ; preds = %600
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %96) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #11
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %96, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 1 dereferenceable(1) %97)
          to label %602 unwind label %636

602:                                              ; preds = %601
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %99, ptr noundef nonnull align 8 dereferenceable(24) %92)
          to label %603 unwind label %640

603:                                              ; preds = %602
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull align 8 dereferenceable(32) %85) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %101, ptr align 4 %30, i64 108, i1 false), !tbaa.struct !22
  %604 = load i32, ptr %63, align 4, !tbaa !32
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %103, ptr noundef nonnull align 8 dereferenceable(24) %96)
          to label %605 unwind label %644

605:                                              ; preds = %603
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %105, ptr align 4 %26, i64 20, i1 false), !tbaa.struct !34
  %606 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef %99, ptr noundef %100, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %101, i32 noundef %604, ptr noundef null, ptr noundef %102, ptr noundef %103, ptr noundef %104, ptr noundef byval(%struct.ActivationParamSpec) align 8 %105, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %607 unwind label %648

607:                                              ; preds = %605
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %103) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %99) #11
  store i32 %606, ptr %98, align 4, !tbaa !28
  %608 = load i32, ptr %98, align 4, !tbaa !28
  %609 = icmp ne i32 %608, 0
  br i1 %609, label %610, label %657

610:                                              ; preds = %607
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #11
  %611 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %612 = trunc i64 %611 to i32
  store i32 %612, ptr %106, align 4, !tbaa !5
  %613 = load i32, ptr %106, align 4, !tbaa !5
  %614 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %613)
          to label %615 unwind label %653

615:                                              ; preds = %610
  %616 = load ptr, ptr @stdout, align 8, !tbaa !9
  %617 = invoke i32 @fflush(ptr noundef %616)
          to label %618 unwind label %653

618:                                              ; preds = %615
  %619 = load i32, ptr %98, align 4, !tbaa !28
  %620 = invoke ptr @ee2str(i32 noundef %619)
          to label %621 unwind label %653

621:                                              ; preds = %618
  %622 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %620)
          to label %623 unwind label %653

623:                                              ; preds = %621
  %624 = load ptr, ptr @stdout, align 8, !tbaa !9
  %625 = invoke i32 @fflush(ptr noundef %624)
          to label %626 unwind label %653

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

627:                                              ; preds = %595, %591
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %845

628:                                              ; preds = %599
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %37, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %38, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %93) #11
  br label %844

632:                                              ; preds = %600
  %633 = landingpad { ptr, i32 }
          cleanup
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %37, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %38, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #11
  br label %843

636:                                              ; preds = %601
  %637 = landingpad { ptr, i32 }
          cleanup
  %638 = extractvalue { ptr, i32 } %637, 0
  store ptr %638, ptr %37, align 8
  %639 = extractvalue { ptr, i32 } %637, 1
  store i32 %639, ptr %38, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #11
  br label %842

640:                                              ; preds = %602
  %641 = landingpad { ptr, i32 }
          cleanup
  %642 = extractvalue { ptr, i32 } %641, 0
  store ptr %642, ptr %37, align 8
  %643 = extractvalue { ptr, i32 } %641, 1
  store i32 %643, ptr %38, align 4
  br label %682

644:                                              ; preds = %603
  %645 = landingpad { ptr, i32 }
          cleanup
  %646 = extractvalue { ptr, i32 } %645, 0
  store ptr %646, ptr %37, align 8
  %647 = extractvalue { ptr, i32 } %645, 1
  store i32 %647, ptr %38, align 4
  br label %652

648:                                              ; preds = %605
  %649 = landingpad { ptr, i32 }
          cleanup
  %650 = extractvalue { ptr, i32 } %649, 0
  store ptr %650, ptr %37, align 8
  %651 = extractvalue { ptr, i32 } %649, 1
  store i32 %651, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %103) #11
  br label %652

652:                                              ; preds = %648, %644
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %99) #11
  br label %682

653:                                              ; preds = %623, %621, %618, %615, %610
  %654 = landingpad { ptr, i32 }
          cleanup
  %655 = extractvalue { ptr, i32 } %654, 0
  store ptr %655, ptr %37, align 8
  %656 = extractvalue { ptr, i32 } %654, 1
  store i32 %656, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #11
  br label %682

657:                                              ; preds = %607
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %108, ptr noundef nonnull align 8 dereferenceable(24) %94)
          to label %658 unwind label %683

658:                                              ; preds = %657
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %110, ptr align 4 %30, i64 108, i1 false), !tbaa.struct !22
  %659 = load i32, ptr %63, align 4, !tbaa !32
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %112, ptr noundef nonnull align 8 dereferenceable(24) %96)
          to label %660 unwind label %687

660:                                              ; preds = %658
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %114, ptr align 4 %26, i64 20, i1 false), !tbaa.struct !34
  %661 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef %108, ptr noundef %109, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %110, i32 noundef %659, ptr noundef null, ptr noundef %111, ptr noundef %112, ptr noundef %113, ptr noundef byval(%struct.ActivationParamSpec) align 8 %114, ptr noundef @_ZL18UT_SERIAL_ARCHINFO)
          to label %662 unwind label %691

662:                                              ; preds = %660
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %112) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %108) #11
  store i32 %661, ptr %107, align 4, !tbaa !28
  %663 = load i32, ptr %107, align 4, !tbaa !28
  %664 = icmp ne i32 %663, 0
  br i1 %664, label %665, label %700

665:                                              ; preds = %662
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #11
  %666 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %667 = trunc i64 %666 to i32
  store i32 %667, ptr %115, align 4, !tbaa !5
  %668 = load i32, ptr %115, align 4, !tbaa !5
  %669 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %668)
          to label %670 unwind label %696

670:                                              ; preds = %665
  %671 = load ptr, ptr @stdout, align 8, !tbaa !9
  %672 = invoke i32 @fflush(ptr noundef %671)
          to label %673 unwind label %696

673:                                              ; preds = %670
  %674 = load i32, ptr %107, align 4, !tbaa !28
  %675 = invoke ptr @ee2str(i32 noundef %674)
          to label %676 unwind label %696

676:                                              ; preds = %673
  %677 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %675)
          to label %678 unwind label %696

678:                                              ; preds = %676
  %679 = load ptr, ptr @stdout, align 8, !tbaa !9
  %680 = invoke i32 @fflush(ptr noundef %679)
          to label %681 unwind label %696

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

682:                                              ; preds = %653, %652, %640
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %841

683:                                              ; preds = %657
  %684 = landingpad { ptr, i32 }
          cleanup
  %685 = extractvalue { ptr, i32 } %684, 0
  store ptr %685, ptr %37, align 8
  %686 = extractvalue { ptr, i32 } %684, 1
  store i32 %686, ptr %38, align 4
  br label %715

687:                                              ; preds = %658
  %688 = landingpad { ptr, i32 }
          cleanup
  %689 = extractvalue { ptr, i32 } %688, 0
  store ptr %689, ptr %37, align 8
  %690 = extractvalue { ptr, i32 } %688, 1
  store i32 %690, ptr %38, align 4
  br label %695

691:                                              ; preds = %660
  %692 = landingpad { ptr, i32 }
          cleanup
  %693 = extractvalue { ptr, i32 } %692, 0
  store ptr %693, ptr %37, align 8
  %694 = extractvalue { ptr, i32 } %692, 1
  store i32 %694, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %112) #11
  br label %695

695:                                              ; preds = %691, %687
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %108) #11
  br label %715

696:                                              ; preds = %678, %676, %673, %670, %665
  %697 = landingpad { ptr, i32 }
          cleanup
  %698 = extractvalue { ptr, i32 } %697, 0
  store ptr %698, ptr %37, align 8
  %699 = extractvalue { ptr, i32 } %697, 1
  store i32 %699, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %715

700:                                              ; preds = %662
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  %701 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %116, i32 noundef 1)
          to label %702 unwind label %716

702:                                              ; preds = %700
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  %703 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %117, i32 noundef 1)
          to label %704 unwind label %720

704:                                              ; preds = %702
  %705 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %706 unwind label %720

706:                                              ; preds = %704
  %707 = load i32, ptr %7, align 4, !tbaa !11
  invoke void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef %701, ptr noundef %703, i32 noundef %705, i32 noundef %707, float noundef 1.000000e+00)
          to label %708 unwind label %720

708:                                              ; preds = %706
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #11
  %709 = invoke noundef double @_Z10ut_time_msv()
          to label %710 unwind label %725

710:                                              ; preds = %708
  store double %709, ptr %118, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  store i32 0, ptr %119, align 4, !tbaa !5
  br label %711

711:                                              ; preds = %772, %710
  %712 = load i32, ptr %119, align 4, !tbaa !5
  %713 = icmp slt i32 %712, 6
  br i1 %713, label %729, label %714

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

715:                                              ; preds = %696, %695, %683
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %841

716:                                              ; preds = %700
  %717 = landingpad { ptr, i32 }
          cleanup
  %718 = extractvalue { ptr, i32 } %717, 0
  store ptr %718, ptr %37, align 8
  %719 = extractvalue { ptr, i32 } %717, 1
  store i32 %719, ptr %38, align 4
  br label %724

720:                                              ; preds = %706, %704, %702
  %721 = landingpad { ptr, i32 }
          cleanup
  %722 = extractvalue { ptr, i32 } %721, 0
  store ptr %722, ptr %37, align 8
  %723 = extractvalue { ptr, i32 } %721, 1
  store i32 %723, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #11
  br label %724

724:                                              ; preds = %720, %716
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #11
  br label %841

725:                                              ; preds = %708
  %726 = landingpad { ptr, i32 }
          cleanup
  %727 = extractvalue { ptr, i32 } %726, 0
  store ptr %727, ptr %37, align 8
  %728 = extractvalue { ptr, i32 } %726, 1
  store i32 %728, ptr %38, align 4
  br label %840

729:                                              ; preds = %711
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %121, ptr noundef nonnull align 8 dereferenceable(24) %92)
          to label %730 unwind label %754

730:                                              ; preds = %729
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull align 8 dereferenceable(32) %85) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %123, ptr align 4 %30, i64 108, i1 false), !tbaa.struct !22
  %731 = load i32, ptr %63, align 4, !tbaa !32
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %125, ptr noundef nonnull align 8 dereferenceable(24) %96)
          to label %732 unwind label %758

732:                                              ; preds = %730
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %127, ptr align 4 %26, i64 20, i1 false), !tbaa.struct !34
  %733 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef %121, ptr noundef %122, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %123, i32 noundef %731, ptr noundef null, ptr noundef %124, ptr noundef %125, ptr noundef %126, ptr noundef byval(%struct.ActivationParamSpec) align 8 %127, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %734 unwind label %762

734:                                              ; preds = %732
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %125) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %121) #11
  store i32 %733, ptr %120, align 4, !tbaa !28
  %735 = load i32, ptr %120, align 4, !tbaa !28
  %736 = icmp ne i32 %735, 0
  br i1 %736, label %737, label %771

737:                                              ; preds = %734
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #11
  %738 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %739 = trunc i64 %738 to i32
  store i32 %739, ptr %128, align 4, !tbaa !5
  %740 = load i32, ptr %128, align 4, !tbaa !5
  %741 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %740)
          to label %742 unwind label %767

742:                                              ; preds = %737
  %743 = load ptr, ptr @stdout, align 8, !tbaa !9
  %744 = invoke i32 @fflush(ptr noundef %743)
          to label %745 unwind label %767

745:                                              ; preds = %742
  %746 = load i32, ptr %120, align 4, !tbaa !28
  %747 = invoke ptr @ee2str(i32 noundef %746)
          to label %748 unwind label %767

748:                                              ; preds = %745
  %749 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %747)
          to label %750 unwind label %767

750:                                              ; preds = %748
  %751 = load ptr, ptr @stdout, align 8, !tbaa !9
  %752 = invoke i32 @fflush(ptr noundef %751)
          to label %753 unwind label %767

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

754:                                              ; preds = %729
  %755 = landingpad { ptr, i32 }
          cleanup
  %756 = extractvalue { ptr, i32 } %755, 0
  store ptr %756, ptr %37, align 8
  %757 = extractvalue { ptr, i32 } %755, 1
  store i32 %757, ptr %38, align 4
  br label %775

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

762:                                              ; preds = %732
  %763 = landingpad { ptr, i32 }
          cleanup
  %764 = extractvalue { ptr, i32 } %763, 0
  store ptr %764, ptr %37, align 8
  %765 = extractvalue { ptr, i32 } %763, 1
  store i32 %765, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %125) #11
  br label %766

766:                                              ; preds = %762, %758
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %121) #11
  br label %775

767:                                              ; preds = %750, %748, %745, %742, %737
  %768 = landingpad { ptr, i32 }
          cleanup
  %769 = extractvalue { ptr, i32 } %768, 0
  store ptr %769, ptr %37, align 8
  %770 = extractvalue { ptr, i32 } %768, 1
  store i32 %770, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #11
  br label %775

771:                                              ; preds = %734
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %772

772:                                              ; preds = %771
  %773 = load i32, ptr %119, align 4, !tbaa !5
  %774 = add nsw i32 %773, 1
  store i32 %774, ptr %119, align 4, !tbaa !5
  br label %711, !llvm.loop !37

775:                                              ; preds = %767, %766, %754
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  br label %840

776:                                              ; preds = %714
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #11
  %777 = invoke noundef double @_Z10ut_time_msv()
          to label %778 unwind label %831

778:                                              ; preds = %776
  store double %777, ptr %129, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #11
  %779 = load double, ptr %129, align 8, !tbaa !35
  %780 = load double, ptr %118, align 8, !tbaa !35
  %781 = fsub double %779, %780
  %782 = fdiv double %781, 6.000000e+00
  store double %782, ptr %130, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 150, ptr %131) #11
  call void @llvm.lifetime.start.p0(i64 120, ptr %132) #11
  %783 = getelementptr inbounds [120 x i8], ptr %132, i64 0, i64 0
  %784 = load i32, ptr %10, align 4, !tbaa !5
  %785 = load i32, ptr %11, align 4, !tbaa !5
  %786 = load i32, ptr %12, align 4, !tbaa !5
  %787 = load i32, ptr %13, align 4, !tbaa !5
  %788 = load i32, ptr %14, align 4, !tbaa !5
  %789 = load i32, ptr %15, align 4, !tbaa !5
  %790 = load i32, ptr %16, align 4, !tbaa !5
  %791 = load i32, ptr %17, align 4, !tbaa !5
  %792 = load i32, ptr %19, align 4, !tbaa !5
  %793 = load i32, ptr %20, align 4, !tbaa !5
  %794 = load i32, ptr %21, align 4, !tbaa !5
  %795 = load i32, ptr %22, align 4, !tbaa !5
  %796 = load i32, ptr %23, align 4, !tbaa !5
  %797 = load i32, ptr %24, align 4, !tbaa !5
  %798 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %783, ptr noundef @.str.3, i32 noundef %784, i32 noundef %785, i32 noundef %786, i32 noundef %787, i32 noundef %788, i32 noundef %789, i32 noundef %790, i32 noundef %791, i32 noundef %792, i32 noundef %793, i32 noundef %794, i32 noundef %795, i32 noundef %796, i32 noundef %797) #11
  %799 = getelementptr inbounds [150 x i8], ptr %131, i64 0, i64 0
  %800 = getelementptr inbounds [120 x i8], ptr %132, i64 0, i64 0
  %801 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %799, ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef %800) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #11
  %802 = load i32, ptr %21, align 4, !tbaa !5
  %803 = uitofp i32 %802 to double
  %804 = fmul double 1.000000e+00, %803
  %805 = load i32, ptr %22, align 4, !tbaa !5
  %806 = uitofp i32 %805 to double
  %807 = fmul double %804, %806
  %808 = load i32, ptr %23, align 4, !tbaa !5
  %809 = uitofp i32 %808 to double
  %810 = fmul double %807, %809
  %811 = load i32, ptr %24, align 4, !tbaa !5
  %812 = uitofp i32 %811 to double
  %813 = fmul double %810, %812
  %814 = load i32, ptr %11, align 4, !tbaa !5
  %815 = uitofp i32 %814 to double
  %816 = fmul double 2.000000e+00, %815
  %817 = load i32, ptr %16, align 4, !tbaa !5
  %818 = uitofp i32 %817 to double
  %819 = fmul double %816, %818
  %820 = load i32, ptr %17, align 4, !tbaa !5
  %821 = uitofp i32 %820 to double
  %822 = call double @llvm.fmuladd.f64(double %819, double %821, double 1.000000e+00)
  %823 = fmul double %813, %822
  store double %823, ptr %133, align 8, !tbaa !35
  %824 = getelementptr inbounds [150 x i8], ptr %131, i64 0, i64 0
  %825 = load double, ptr %133, align 8, !tbaa !35
  %826 = load double, ptr %130, align 8, !tbaa !35
  invoke void @_Z6ut_log8DataTypePcdd(i32 noundef 1, ptr noundef %824, double noundef %825, double noundef %826)
          to label %827 unwind label %835

827:                                              ; preds = %778
  %828 = load ptr, ptr %31, align 8, !tbaa !9
  call void @free(ptr noundef %828) #11
  %829 = load ptr, ptr %33, align 8, !tbaa !9
  call void @free(ptr noundef %829) #11
  %830 = load ptr, ptr %34, align 8, !tbaa !9
  call void @free(ptr noundef %830) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #11
  call void @llvm.lifetime.end.p0(i64 120, ptr %132) #11
  call void @llvm.lifetime.end.p0(i64 150, ptr %131) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %96) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %96) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %94) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %94) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %92) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %92) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #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) %36) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #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 @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #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 20, ptr %26) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #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
  ret i32 0

831:                                              ; preds = %776
  %832 = landingpad { ptr, i32 }
          cleanup
  %833 = extractvalue { ptr, i32 } %832, 0
  store ptr %833, ptr %37, align 8
  %834 = extractvalue { ptr, i32 } %832, 1
  store i32 %834, ptr %38, align 4
  br label %839

835:                                              ; preds = %778
  %836 = landingpad { ptr, i32 }
          cleanup
  %837 = extractvalue { ptr, i32 } %836, 0
  store ptr %837, ptr %37, align 8
  %838 = extractvalue { ptr, i32 } %836, 1
  store i32 %838, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #11
  call void @llvm.lifetime.end.p0(i64 120, ptr %132) #11
  call void @llvm.lifetime.end.p0(i64 150, ptr %131) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #11
  br label %839

839:                                              ; preds = %835, %831
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #11
  br label %840

840:                                              ; preds = %839, %775, %725
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #11
  br label %841

841:                                              ; preds = %840, %724, %715, %682
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %96) #11
  br label %842

842:                                              ; preds = %841, %636
  call void @llvm.lifetime.end.p0(i64 24, ptr %96) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %94) #11
  br label %843

843:                                              ; preds = %842, %632
  call void @llvm.lifetime.end.p0(i64 24, ptr %94) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %92) #11
  br label %844

844:                                              ; preds = %843, %628
  call void @llvm.lifetime.end.p0(i64 24, ptr %92) #11
  br label %845

845:                                              ; preds = %844, %627, %587
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #11
  br label %846

846:                                              ; preds = %845, %583
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #11
  br label %847

847:                                              ; preds = %846, %582
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %848

848:                                              ; preds = %847, %542
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #11
  br label %849

849:                                              ; preds = %848, %538
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #11
  br label %850

850:                                              ; preds = %849, %537
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %851

851:                                              ; preds = %850, %500
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %852

852:                                              ; preds = %851, %468, %428, %424, %420, %416, %412, %408
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  br label %853

853:                                              ; preds = %852, %404
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  br label %854

854:                                              ; preds = %853, %400
  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 %855

855:                                              ; preds = %854, %396
  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 %856

856:                                              ; preds = %855, %392
  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 %857

857:                                              ; preds = %856, %388
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  br label %858

858:                                              ; preds = %857, %384
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #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 @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #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 20, ptr %26) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #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
  br label %859

859:                                              ; preds = %858
  %860 = load ptr, ptr %37, align 8
  %861 = load i32, ptr %38, align 4
  %862 = insertvalue { ptr, i32 } poison, ptr %860, 0
  %863 = insertvalue { ptr, i32 } %862, i32 %861, 1
  resume { ptr, i32 } %863
}

; 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 @_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: 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 @_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: 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 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!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, !17}


; 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 [50 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [16 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z18bnnConvolutionTestiPPc8DataTypeS1_(i32 noundef %0, ptr nocapture noundef readonly %1, i32 noundef %2, i32 noundef %3) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %5 = alloca %struct.ActivationParamSpec, align 8
  %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, 16
  br i1 %69, label %79, label %70

70:                                               ; preds = %4
  %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 = %4
  %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 = icmp eq i32 %82, 1
  %123 = icmp eq i32 %112, 1
  %or.cond = select i1 %122, i1 %123, i1 false
  br i1 %or.cond, label %.loopexit, label %124

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

.loopexit:                                        ; preds = %79
  %133 = getelementptr inbounds i8, ptr %1, i64 72
  %134 = load ptr, ptr %133, align 8, !tbaa !5
  %135 = tail call i32 @atoi(ptr nocapture noundef %134) #15
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %5) #13
  call void @_ZN19ActivationParamSpecC2Ev(ptr noundef nonnull align 4 dereferenceable(20) %5) #13
  store i32 0, ptr %5, align 8, !tbaa !9
  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 %3, i32 noundef 0, i32 noundef %115, i32 noundef %85, i32 noundef %100, i32 noundef %103)
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %8) #13
  %136 = shl i32 %115, 1
  call void @_Z8tensor1d8DataTypej(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %8, i32 noundef %2, i32 noundef %136)
  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 %135, 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 1, i32 noundef 1, i32 noundef %115, i32 noundef 3)
  %137 = mul i32 %88, %85
  %138 = mul i32 %137, %91
  %139 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %138, i32 noundef %2, i32 noundef 0)
  %140 = mul i32 %97, %94
  %141 = mul i32 %140, %100
  %142 = mul i32 %141, %103
  %143 = lshr i32 %142, 3
  %144 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %143, i32 noundef %3, i32 noundef 2)
  %145 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %136, 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 %146 unwind label %206

146:                                              ; preds = %.loopexit
  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 %147 unwind label %208

147:                                              ; preds = %146
  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 %148 unwind label %210

148:                                              ; preds = %147
  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 %149 unwind label %212

149:                                              ; preds = %148
  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 %150 unwind label %214

150:                                              ; preds = %149
  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 %151 unwind label %216

151:                                              ; preds = %150
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %6)
          to label %152 unwind label %218

152:                                              ; preds = %151
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %6)
          to label %153 unwind label %218

153:                                              ; preds = %152
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %7)
          to label %154 unwind label %218

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

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

156:                                              ; preds = %155
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %157 unwind label %218

157:                                              ; preds = %156
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %158 unwind label %218

158:                                              ; preds = %157
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %159 unwind label %218

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

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

161:                                              ; preds = %160
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %10) #13
  %162 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %17, i32 noundef 1)
          to label %163 unwind label %220

163:                                              ; preds = %161
  %164 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %2)
          to label %165 unwind label %220

165:                                              ; preds = %163
  %166 = mul i32 %138, %164
  %167 = zext i32 %166 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %162, ptr noundef %139, i64 noundef %167)
          to label %168 unwind label %220

168:                                              ; preds = %165
  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
  %169 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %18, i32 noundef 1)
          to label %170 unwind label %222

170:                                              ; preds = %168
  %171 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %2)
          to label %172 unwind label %222

172:                                              ; preds = %170
  %173 = mul i32 %138, %171
  %174 = zext i32 %173 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %169, ptr noundef %139, i64 noundef %174)
          to label %175 unwind label %222

175:                                              ; preds = %172
  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
  %176 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %19, i32 noundef 1)
          to label %177 unwind label %224

177:                                              ; preds = %175
  %178 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %7)
          to label %179 unwind label %224

179:                                              ; preds = %177
  %180 = zext i32 %178 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %176, ptr noundef %144, i64 noundef %180)
          to label %181 unwind label %224

181:                                              ; preds = %179
  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
  %182 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %20, i32 noundef 1)
          to label %183 unwind label %226

183:                                              ; preds = %181
  %184 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %7)
          to label %185 unwind label %226

185:                                              ; preds = %183
  %186 = zext i32 %184 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %182, ptr noundef %144, i64 noundef %186)
          to label %187 unwind label %226

187:                                              ; preds = %185
  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
  %188 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %21, i32 noundef 1)
          to label %189 unwind label %228

189:                                              ; preds = %187
  %190 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %8)
          to label %191 unwind label %228

191:                                              ; preds = %189
  %192 = zext i32 %190 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %188, ptr noundef %145, i64 noundef %192)
          to label %193 unwind label %228

193:                                              ; preds = %191
  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
  %194 = 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 %195 unwind label %230

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

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

206:                                              ; preds = %.loopexit
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %476

208:                                              ; preds = %146
  %209 = landingpad { ptr, i32 }
          cleanup
  br label %475

210:                                              ; preds = %147
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %474

212:                                              ; preds = %148
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %473

214:                                              ; preds = %149
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %472

216:                                              ; preds = %150
  %217 = landingpad { ptr, i32 }
          cleanup
  br label %471

218:                                              ; preds = %235, %234, %233, %232, %160, %159, %158, %157, %156, %155, %154, %153, %152, %151
  %219 = landingpad { ptr, i32 }
          cleanup
  br label %470

220:                                              ; preds = %165, %163, %161
  %221 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #13
  br label %470

222:                                              ; preds = %172, %170, %168
  %223 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #13
  br label %470

224:                                              ; preds = %179, %177, %175
  %225 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #13
  br label %470

226:                                              ; preds = %185, %183, %181
  %227 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #13
  br label %470

228:                                              ; preds = %191, %189, %187
  %229 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #13
  br label %470

230:                                              ; preds = %193
  %231 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #13
  br label %470

232:                                              ; preds = %195
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %233 unwind label %218

233:                                              ; preds = %232
  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 %234 unwind label %218

234:                                              ; preds = %233
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %23)
          to label %235 unwind label %218

235:                                              ; preds = %234
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %236 unwind label %218

236:                                              ; preds = %235
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #13
  store i32 9, ptr %24, align 4, !tbaa !12
  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
  %237 = 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 %3, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %5, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %238 unwind label %249

238:                                              ; preds = %236
  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
  %.not175 = icmp eq i32 %237, 0
  br i1 %.not175, label %251, label %239

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

249:                                              ; preds = %236
  %250 = 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 %469

251:                                              ; preds = %238
  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
  %252 = load i32, ptr %24, align 4, !tbaa !12
  %253 = 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 %252, ptr noundef nonnull %28, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %254 unwind label %265

254:                                              ; preds = %251
  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
  %.not176 = icmp eq i32 %253, 0
  br i1 %.not176, label %267, label %255

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

265:                                              ; preds = %251
  %266 = 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 %468

267:                                              ; preds = %254
  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 %268 unwind label %286

268:                                              ; preds = %267
  %269 = load i32, ptr %28, align 4, !tbaa !14
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %33, i32 noundef 0, i32 noundef %269)
          to label %270 unwind label %288

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

271:                                              ; preds = %270
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %272 unwind label %288

272:                                              ; preds = %271
  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
  %273 = load i32, ptr %24, align 4, !tbaa !12
  %274 = invoke noundef i32 @_Z34convolution_transform_filter_bytes6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvP8ArchInfo(ptr noundef nonnull %35, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %9, i32 noundef %273, ptr noundef nonnull %34, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %275 unwind label %290

275:                                              ; preds = %272
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #13
  %.not177 = icmp eq i32 %274, 0
  br i1 %.not177, label %292, label %276

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

286:                                              ; preds = %267
  %287 = landingpad { ptr, i32 }
          cleanup
  br label %467

288:                                              ; preds = %271, %270, %268
  %289 = landingpad { ptr, i32 }
          cleanup
  br label %466

290:                                              ; preds = %272
  %291 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #13
  br label %465

292:                                              ; preds = %275
  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 %293 unwind label %311

293:                                              ; preds = %292
  %294 = load i32, ptr %34, align 4, !tbaa !14
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %37, i32 noundef 0, i32 noundef %294)
          to label %295 unwind label %313

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

296:                                              ; preds = %295
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %297 unwind label %313

297:                                              ; preds = %296
  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 !16
  %298 = load i32, ptr %24, align 4, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(32) %32) #13
  %299 = invoke noundef i32 @_Z28convolution_transform_filter6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmS_PS_P8ArchInfo(ptr noundef nonnull %38, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %39, i32 noundef %298, ptr noundef nonnull %40, ptr noundef nonnull %36, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %300 unwind label %315

300:                                              ; preds = %297
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #13
  %.not178 = icmp eq i32 %299, 0
  br i1 %.not178, label %317, label %301

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

311:                                              ; preds = %292
  %312 = landingpad { ptr, i32 }
          cleanup
  br label %464

313:                                              ; preds = %296, %295, %293
  %314 = landingpad { ptr, i32 }
          cleanup
  br label %463

315:                                              ; preds = %297
  %316 = 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 %463

317:                                              ; preds = %300
  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 %318 unwind label %336

318:                                              ; preds = %317
  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 %319 unwind label %338

319:                                              ; preds = %318
  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 %320 unwind label %340

320:                                              ; preds = %319
  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 %321 unwind label %342

321:                                              ; preds = %320
  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 !16
  %322 = load i32, ptr %24, align 4, !tbaa !12
  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 %323 unwind label %344

323:                                              ; preds = %321
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %324 = 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 %322, ptr noundef null, ptr noundef nonnull %50, ptr noundef nonnull %51, ptr noundef nonnull %52, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %5, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %325 unwind label %346

325:                                              ; preds = %323
  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
  %.not181 = icmp eq i32 %324, 0
  br i1 %.not181, label %349, label %326

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

336:                                              ; preds = %317
  %337 = 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 %462

338:                                              ; preds = %318
  %339 = 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 %461

340:                                              ; preds = %319
  %341 = 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 %460

342:                                              ; preds = %320
  %343 = landingpad { ptr, i32 }
          cleanup
  br label %459

344:                                              ; preds = %321
  %345 = landingpad { ptr, i32 }
          cleanup
  br label %348

346:                                              ; preds = %323
  %347 = 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 %348

348:                                              ; preds = %346, %344
  %.pn = phi { ptr, i32 } [ %347, %346 ], [ %345, %344 ]
  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 %459

349:                                              ; preds = %325
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %53, ptr noundef nonnull align 8 dereferenceable(24) %43)
          to label %350 unwind label %365

350:                                              ; preds = %349
  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 !16
  %351 = load i32, ptr %24, align 4, !tbaa !12
  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 %352 unwind label %367

352:                                              ; preds = %350
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %15) #13
  %353 = 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 %351, ptr noundef null, ptr noundef nonnull %56, ptr noundef nonnull %57, ptr noundef nonnull %58, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %5, ptr noundef nonnull @_ZL18UT_SERIAL_ARCHINFO)
          to label %354 unwind label %369

354:                                              ; preds = %352
  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
  %.not185 = icmp eq i32 %353, 0
  br i1 %.not185, label %372, label %355

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

365:                                              ; preds = %349
  %366 = landingpad { ptr, i32 }
          cleanup
  br label %459

367:                                              ; preds = %350
  %368 = landingpad { ptr, i32 }
          cleanup
  br label %371

369:                                              ; preds = %352
  %370 = 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 %371

371:                                              ; preds = %369, %367
  %.pn182 = phi { ptr, i32 } [ %370, %369 ], [ %368, %367 ]
  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 %459

372:                                              ; preds = %354
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %373 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %59, i32 noundef 1)
          to label %374 unwind label %408

374:                                              ; preds = %372
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %15) #13
  %375 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %60, i32 noundef 1)
          to label %376 unwind label %410

376:                                              ; preds = %374
  %377 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %378 unwind label %410

378:                                              ; preds = %376
  invoke void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef %373, ptr noundef %375, i32 noundef %377, i32 noundef %2, float noundef 1.000000e+00)
          to label %379 unwind label %410

379:                                              ; preds = %378
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #13
  %380 = invoke noundef double @_Z10ut_time_msv()
          to label %.preheader.preheader unwind label %413

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

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

381:                                              ; 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 !16
  %382 = load i32, ptr %24, align 4, !tbaa !12
  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 %383 unwind label %432

383:                                              ; preds = %381
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %384 = 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 %382, ptr noundef null, ptr noundef nonnull %64, ptr noundef nonnull %65, ptr noundef nonnull %66, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %5, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %385 unwind label %434

385:                                              ; preds = %383
  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
  %.not212.1 = icmp eq i32 %384, 0
  br i1 %.not212.1, label %.preheader.2, label %420

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

386:                                              ; 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 !16
  %387 = load i32, ptr %24, align 4, !tbaa !12
  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 %388 unwind label %432

388:                                              ; preds = %386
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %389 = 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 %387, ptr noundef null, ptr noundef nonnull %64, ptr noundef nonnull %65, ptr noundef nonnull %66, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %5, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %390 unwind label %434

390:                                              ; preds = %388
  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
  %.not212.2 = icmp eq i32 %389, 0
  br i1 %.not212.2, label %.preheader.3, label %420

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

391:                                              ; 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 !16
  %392 = load i32, ptr %24, align 4, !tbaa !12
  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 %393 unwind label %432

393:                                              ; preds = %391
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %394 = 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 %392, ptr noundef null, ptr noundef nonnull %64, ptr noundef nonnull %65, ptr noundef nonnull %66, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %5, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %395 unwind label %434

395:                                              ; preds = %393
  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
  %.not212.3 = icmp eq i32 %394, 0
  br i1 %.not212.3, label %.preheader.4, label %420

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

396:                                              ; 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 !16
  %397 = load i32, ptr %24, align 4, !tbaa !12
  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 %398 unwind label %432

398:                                              ; preds = %396
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %399 = 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 %397, ptr noundef null, ptr noundef nonnull %64, ptr noundef nonnull %65, ptr noundef nonnull %66, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %5, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %400 unwind label %434

400:                                              ; preds = %398
  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
  %.not212.4 = icmp eq i32 %399, 0
  br i1 %.not212.4, label %.preheader.5, label %420

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

401:                                              ; 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 !16
  %402 = load i32, ptr %24, align 4, !tbaa !12
  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 %403 unwind label %432

403:                                              ; preds = %401
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %404 = 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 %402, ptr noundef null, ptr noundef nonnull %64, ptr noundef nonnull %65, ptr noundef nonnull %66, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %5, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %405 unwind label %434

405:                                              ; preds = %403
  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
  %.not212.5 = icmp eq i32 %404, 0
  br i1 %.not212.5, label %406, label %420

406:                                              ; preds = %405
  %407 = invoke noundef double @_Z10ut_time_msv()
          to label %437 unwind label %455

408:                                              ; preds = %372
  %409 = landingpad { ptr, i32 }
          cleanup
  br label %412

410:                                              ; preds = %378, %376, %374
  %411 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #13
  br label %412

412:                                              ; preds = %410, %408
  %.pn186 = phi { ptr, i32 } [ %411, %410 ], [ %409, %408 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #13
  br label %459

413:                                              ; preds = %379
  %414 = landingpad { ptr, i32 }
          cleanup
  br label %459

415:                                              ; 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 !16
  %416 = load i32, ptr %24, align 4, !tbaa !12
  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 %417 unwind label %432

417:                                              ; preds = %415
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  %418 = 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 %416, ptr noundef null, ptr noundef nonnull %64, ptr noundef nonnull %65, ptr noundef nonnull %66, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %5, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %419 unwind label %434

419:                                              ; preds = %417
  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
  %.not212 = icmp eq i32 %418, 0
  br i1 %.not212, label %.preheader.1, label %420

420:                                              ; preds = %405, %400, %395, %390, %385, %419
  %.lcssa = phi i32 [ %418, %419 ], [ %384, %385 ], [ %389, %390 ], [ %394, %395 ], [ %399, %400 ], [ %404, %405 ]
  %421 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %422 = trunc i64 %421 to i32
  %423 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %422)
  %424 = load ptr, ptr @stdout, align 8, !tbaa !5
  %425 = call i32 @fflush(ptr noundef %424)
  %426 = call ptr @ee2str(i32 noundef %.lcssa)
  %427 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %426)
  %428 = load ptr, ptr @stdout, align 8, !tbaa !5
  %429 = call i32 @fflush(ptr noundef %428)
  call void @exit(i32 noundef 1) #14
  unreachable

430:                                              ; preds = %.preheader.5, %.preheader.4, %.preheader.3, %.preheader.2, %.preheader.1, %.preheader.preheader
  %431 = landingpad { ptr, i32 }
          cleanup
  br label %459

432:                                              ; preds = %401, %396, %391, %386, %381, %415
  %433 = landingpad { ptr, i32 }
          cleanup
  br label %436

434:                                              ; preds = %403, %398, %393, %388, %383, %417
  %435 = 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 %436

436:                                              ; preds = %434, %432
  %.pn190 = phi { ptr, i32 } [ %435, %434 ], [ %433, %432 ]
  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 %459

437:                                              ; preds = %406
  %438 = fsub double %407, %380
  %439 = fdiv double %438, 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
  %440 = 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 1, i32 noundef %115, i32 noundef %118, i32 noundef %121) #13
  %441 = 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
  %442 = uitofp i32 %115 to double
  %443 = uitofp i32 %118 to double
  %444 = fmul double %442, %443
  %445 = uitofp i32 %121 to double
  %446 = fmul double %444, %445
  %447 = uitofp i32 %85 to double
  %448 = fmul double %447, 2.000000e+00
  %449 = uitofp i32 %100 to double
  %450 = fmul double %448, %449
  %451 = uitofp i32 %103 to double
  %452 = call double @llvm.fmuladd.f64(double %450, double %451, double 1.000000e+00)
  %453 = fmul double %452, %446
  invoke void @_Z6ut_log8DataTypePcdd(i32 noundef 1, ptr noundef nonnull %67, double noundef %453, double noundef %439)
          to label %454 unwind label %457

454:                                              ; preds = %437
  call void @free(ptr noundef %139) #13
  call void @free(ptr noundef %144) #13
  call void @free(ptr noundef %145) #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 20, ptr nonnull %5) #13
  ret i32 0

455:                                              ; preds = %406
  %456 = landingpad { ptr, i32 }
          cleanup
  br label %459

457:                                              ; preds = %437
  %458 = 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 %459

459:                                              ; preds = %413, %436, %430, %457, %455, %365, %371, %342, %348, %412
  %.pn190.pn.pn.pn = phi { ptr, i32 } [ %.pn186, %412 ], [ %.pn, %348 ], [ %343, %342 ], [ %.pn182, %371 ], [ %366, %365 ], [ %414, %413 ], [ %.pn190, %436 ], [ %431, %430 ], [ %458, %457 ], [ %456, %455 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #13
  br label %460

460:                                              ; preds = %459, %340
  %.pn190.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn190.pn.pn.pn, %459 ], [ %341, %340 ]
  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 %461

461:                                              ; preds = %460, %338
  %.pn190.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn190.pn.pn.pn.pn, %460 ], [ %339, %338 ]
  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 %462

462:                                              ; preds = %461, %336
  %.pn190.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn190.pn.pn.pn.pn.pn, %461 ], [ %337, %336 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %41) #13
  br label %463

463:                                              ; preds = %462, %315, %313
  %.pn190.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn190.pn.pn.pn.pn.pn.pn, %462 ], [ %316, %315 ], [ %314, %313 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #13
  br label %464

464:                                              ; preds = %463, %311
  %.pn190.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn190.pn.pn.pn.pn.pn.pn.pn, %463 ], [ %312, %311 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #13
  br label %465

465:                                              ; preds = %464, %290
  %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn190.pn.pn.pn.pn.pn.pn.pn.pn, %464 ], [ %291, %290 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #13
  br label %466

466:                                              ; preds = %465, %288
  %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn, %465 ], [ %289, %288 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #13
  br label %467

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

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

469:                                              ; preds = %468, %249
  %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %468 ], [ %250, %249 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #13
  br label %470

470:                                              ; preds = %469, %230, %228, %226, %224, %222, %220, %218
  %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %469 ], [ %219, %218 ], [ %231, %230 ], [ %229, %228 ], [ %227, %226 ], [ %225, %224 ], [ %223, %222 ], [ %221, %220 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #13
  br label %471

471:                                              ; preds = %470, %216
  %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %470 ], [ %217, %216 ]
  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 %472

472:                                              ; preds = %471, %214
  %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %471 ], [ %215, %214 ]
  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 %473

473:                                              ; preds = %472, %212
  %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %472 ], [ %213, %212 ]
  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 %474

474:                                              ; preds = %473, %210
  %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %473 ], [ %211, %210 ]
  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 %475

475:                                              ; preds = %474, %208
  %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %474 ], [ %209, %208 ]
  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 %476

476:                                              ; preds = %475, %206
  %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn190.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %475 ], [ %207, %206 ]
  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 20, ptr nonnull %5) #13
  resume { ptr, i32 } %.pn190.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 @_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 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 @_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 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 = !{!"_ZTS27ConvolutionForwardAlgorithm", !7, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"int", !7, i64 0}
!16 = !{i64 0, i64 4, !14, i64 4, i64 4, !14, i64 8, i64 4, !14, i64 12, i64 4, !14, i64 16, i64 4, !14, i64 20, i64 4, !14, i64 24, i64 4, !14, i64 28, i64 4, !14, i64 32, i64 4, !14, i64 36, i64 4, !14, i64 40, i64 4, !14, i64 44, i64 4, !14, i64 48, i64 4, !14, i64 52, i64 4, !14, i64 56, i64 4, !14, i64 60, i64 4, !14, i64 64, i64 4, !14, i64 68, i64 4, !14, i64 72, i64 4, !17, i64 76, i64 4, !19, i64 80, i64 4, !19, i64 84, i64 8, !20, i64 92, i64 4, !21, i64 96, i64 4, !14, i64 100, i64 4, !14, i64 104, i64 4, !14}
!17 = !{!18, !18, i64 0}
!18 = !{!"_ZTS15ConvolutionMode", !7, i64 0}
!19 = !{!11, !11, i64 0}
!20 = !{!7, !7, i64 0}
!21 = !{!22, !22, i64 0}
!22 = !{!"_ZTS9RoundMode", !7, i64 0}


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