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

; 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.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 }
%struct.TensorDesc = type { i32, i32, i32, [20 x i32] }
%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" }

@.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 [14 x i8], align 1

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

129:                                              ; preds = %3
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %130 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %131 = trunc i64 %130 to i32
  store i32 %131, ptr %7, align 4, !tbaa !5
  %132 = load i32, ptr %7, align 4, !tbaa !5
  %133 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %132)
  %134 = load ptr, ptr @stdout, align 8, !tbaa !9
  %135 = call i32 @fflush(ptr noundef %134)
  %136 = call i32 (ptr, ...) @printf(ptr noundef @.str.1)
  %137 = load ptr, ptr @stdout, align 8, !tbaa !9
  %138 = call i32 @fflush(ptr noundef %137)
  call void @exit(i32 noundef 1) #11
  unreachable

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

203:                                              ; preds = %139
  %204 = load i32, ptr %20, align 4, !tbaa !5
  %205 = urem i32 %204, 8
  %206 = icmp eq i32 %205, 0
  br i1 %206, label %217, label %207

207:                                              ; preds = %203, %139
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %208 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %209 = trunc i64 %208 to i32
  store i32 %209, ptr %23, align 4, !tbaa !5
  %210 = load i32, ptr %23, align 4, !tbaa !5
  %211 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %210)
  %212 = load ptr, ptr @stdout, align 8, !tbaa !9
  %213 = call i32 @fflush(ptr noundef %212)
  %214 = call i32 (ptr, ...) @printf(ptr noundef @.str.1)
  %215 = load ptr, ptr @stdout, align 8, !tbaa !9
  %216 = call i32 @fflush(ptr noundef %215)
  call void @exit(i32 noundef 1) #11
  unreachable

217:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 20, ptr %24) #10
  call void @_ZN19ActivationParamSpecC2Ev(ptr noundef nonnull align 4 dereferenceable(20) %24) #10
  %218 = getelementptr inbounds %struct.ActivationParamSpec, ptr %24, i32 0, i32 0
  store i32 0, ptr %218, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 108, ptr %25) #10
  %219 = load i32, ptr %16, align 4, !tbaa !5
  %220 = load i32, ptr %14, align 4, !tbaa !5
  %221 = load i32, ptr %15, align 4, !tbaa !5
  %222 = load i32, ptr %17, align 4, !tbaa !5
  %223 = load i32, ptr %17, align 4, !tbaa !5
  %224 = load i32, ptr %18, align 4, !tbaa !5
  %225 = load i32, ptr %18, align 4, !tbaa !5
  %226 = load i32, ptr %18, align 4, !tbaa !5
  %227 = load i32, ptr %18, align 4, !tbaa !5
  %228 = load i32, ptr %12, align 4, !tbaa !5
  call void @_Z26createConvolutionParamSpecjjjjjjjjjjjjjjjjj15ConvolutionMode(ptr dead_on_unwind writable sret(%struct.ConvolutionParamSpec) align 4 %25, i32 noundef %219, i32 noundef 1, i32 noundef %220, i32 noundef %221, i32 noundef 1, i32 noundef %222, i32 noundef %223, i32 noundef 0, i32 noundef 0, i32 noundef %224, i32 noundef %225, i32 noundef %226, i32 noundef %227, i32 noundef 1, i32 noundef 1, i32 noundef 1, i32 noundef %228, i32 noundef 4)
  call void @llvm.lifetime.start.p0(i64 92, ptr %26) #10
  call void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92) %26) #10
  call void @llvm.lifetime.start.p0(i64 92, ptr %27) #10
  %229 = load i32, ptr %6, align 4, !tbaa !11
  %230 = load i32, ptr %8, align 4, !tbaa !5
  %231 = load i32, ptr %9, align 4, !tbaa !5
  %232 = load i32, ptr %10, align 4, !tbaa !5
  %233 = load i32, ptr %11, align 4, !tbaa !5
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %27, i32 noundef %229, i32 noundef 2, i32 noundef %230, i32 noundef %231, i32 noundef %232, i32 noundef %233)
  call void @llvm.lifetime.start.p0(i64 92, ptr %28) #10
  %234 = load i32, ptr %6, align 4, !tbaa !11
  %235 = load i32, ptr %12, align 4, !tbaa !5
  %236 = load i32, ptr %13, align 4, !tbaa !5
  %237 = load i32, ptr %14, align 4, !tbaa !5
  %238 = load i32, ptr %15, align 4, !tbaa !5
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %28, i32 noundef %234, i32 noundef 0, i32 noundef %235, i32 noundef %236, i32 noundef %237, i32 noundef %238)
  call void @llvm.lifetime.start.p0(i64 92, ptr %29) #10
  %239 = load i32, ptr %6, align 4, !tbaa !11
  %240 = load i32, ptr %20, align 4, !tbaa !5
  call void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %29, i32 noundef %239, i32 noundef %240)
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #10
  %241 = load i32, ptr %8, align 4, !tbaa !5
  %242 = load i32, ptr %9, align 4, !tbaa !5
  %243 = mul i32 %241, %242
  %244 = load i32, ptr %10, align 4, !tbaa !5
  %245 = mul i32 %243, %244
  %246 = load i32, ptr %11, align 4, !tbaa !5
  %247 = mul i32 %245, %246
  %248 = load i32, ptr %6, align 4, !tbaa !11
  %249 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %247, i32 noundef %248, i32 noundef 0)
  store ptr %249, ptr %30, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  %250 = load i32, ptr %12, align 4, !tbaa !5
  %251 = load i32, ptr %13, align 4, !tbaa !5
  %252 = mul i32 %250, %251
  %253 = load i32, ptr %14, align 4, !tbaa !5
  %254 = mul i32 %252, %253
  %255 = load i32, ptr %15, align 4, !tbaa !5
  %256 = mul i32 %254, %255
  %257 = load i32, ptr %6, align 4, !tbaa !11
  %258 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %256, i32 noundef %257, i32 noundef 0)
  store ptr %258, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #10
  %259 = load i32, ptr %20, align 4, !tbaa !5
  %260 = load i32, ptr %6, align 4, !tbaa !11
  %261 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %259, i32 noundef %260, i32 noundef 0)
  store ptr %261, ptr %32, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #10
  call void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %33, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 1)
          to label %262 unwind label %353

262:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %37, i32 noundef 1)
          to label %263 unwind label %357

263:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %38, i32 noundef 1)
          to label %264 unwind label %361

264:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %39, i32 noundef 1)
          to label %265 unwind label %365

265:                                              ; preds = %264
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %40, i32 noundef 1)
          to label %266 unwind label %369

266:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %41, i32 noundef 1)
          to label %267 unwind label %373

267:                                              ; preds = %266
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %42, ptr align 4 %27, i64 92, i1 false), !tbaa.struct !16
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef byval(%struct.TensorDesc) align 8 %42)
          to label %268 unwind label %377

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

269:                                              ; preds = %268
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %44, ptr align 4 %28, i64 92, i1 false), !tbaa.struct !16
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef byval(%struct.TensorDesc) align 8 %44)
          to label %270 unwind label %377

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

271:                                              ; preds = %270
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 %29, i64 92, i1 false), !tbaa.struct !16
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef byval(%struct.TensorDesc) align 8 %46)
          to label %272 unwind label %377

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

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

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

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

276:                                              ; preds = %275
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %277 unwind label %377

277:                                              ; preds = %276
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  %278 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %47, i32 noundef 1)
          to label %279 unwind label %381

279:                                              ; preds = %277
  %280 = load ptr, ptr %30, align 8, !tbaa !9
  %281 = load i32, ptr %6, align 4, !tbaa !11
  %282 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %281)
          to label %283 unwind label %381

283:                                              ; preds = %279
  %284 = load i32, ptr %8, align 4, !tbaa !5
  %285 = mul i32 %282, %284
  %286 = load i32, ptr %9, align 4, !tbaa !5
  %287 = mul i32 %285, %286
  %288 = load i32, ptr %10, align 4, !tbaa !5
  %289 = mul i32 %287, %288
  %290 = load i32, ptr %11, align 4, !tbaa !5
  %291 = mul i32 %289, %290
  %292 = zext i32 %291 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %278, ptr noundef %280, i64 noundef %292)
          to label %293 unwind label %381

293:                                              ; preds = %283
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %34) #10
  %294 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %48, i32 noundef 1)
          to label %295 unwind label %385

295:                                              ; preds = %293
  %296 = load ptr, ptr %30, align 8, !tbaa !9
  %297 = load i32, ptr %6, align 4, !tbaa !11
  %298 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %297)
          to label %299 unwind label %385

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

309:                                              ; preds = %299
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  %310 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %49, i32 noundef 1)
          to label %311 unwind label %389

311:                                              ; preds = %309
  %312 = load ptr, ptr %31, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %50, ptr align 4 %28, i64 92, i1 false), !tbaa.struct !16
  %313 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %50)
          to label %314 unwind label %389

314:                                              ; preds = %311
  %315 = zext i32 %313 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %310, ptr noundef %312, i64 noundef %315)
          to label %316 unwind label %389

316:                                              ; preds = %314
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %38) #10
  %317 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %51, i32 noundef 1)
          to label %318 unwind label %393

318:                                              ; preds = %316
  %319 = load ptr, ptr %31, 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 !16
  %320 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %52)
          to label %321 unwind label %393

321:                                              ; preds = %318
  %322 = zext i32 %320 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %317, ptr noundef %319, i64 noundef %322)
          to label %323 unwind label %393

323:                                              ; preds = %321
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %41) #10
  %324 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %53, i32 noundef 1)
          to label %325 unwind label %397

325:                                              ; preds = %323
  %326 = load ptr, ptr %32, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %54, ptr align 4 %29, i64 92, i1 false), !tbaa.struct !16
  %327 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %54)
          to label %328 unwind label %397

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

330:                                              ; preds = %328
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %57, ptr align 4 %25, i64 108, i1 false), !tbaa.struct !20
  %331 = load i32, ptr %6, align 4, !tbaa !11
  %332 = invoke noundef i32 @_Z31deconvolution_infer_output_sizeP6TensorS_20ConvolutionParamSpecS0_8DataTypeP8ArchInfo(ptr noundef %33, ptr noundef %56, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %57, ptr noundef %39, i32 noundef %331, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %333 unwind label %401

333:                                              ; preds = %330
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #10
  store i32 %332, ptr %55, align 4, !tbaa !26
  %334 = load i32, ptr %55, align 4, !tbaa !26
  %335 = icmp ne i32 %334, 0
  br i1 %335, label %336, label %409

336:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #10
  %337 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %338 = trunc i64 %337 to i32
  store i32 %338, ptr %58, align 4, !tbaa !5
  %339 = load i32, ptr %58, align 4, !tbaa !5
  %340 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %339)
          to label %341 unwind label %405

341:                                              ; preds = %336
  %342 = load ptr, ptr @stdout, align 8, !tbaa !9
  %343 = invoke i32 @fflush(ptr noundef %342)
          to label %344 unwind label %405

344:                                              ; preds = %341
  %345 = load i32, ptr %55, align 4, !tbaa !26
  %346 = invoke ptr @ee2str(i32 noundef %345)
          to label %347 unwind label %405

347:                                              ; preds = %344
  %348 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %346)
          to label %349 unwind label %405

349:                                              ; preds = %347
  %350 = load ptr, ptr @stdout, align 8, !tbaa !9
  %351 = invoke i32 @fflush(ptr noundef %350)
          to label %352 unwind label %405

352:                                              ; preds = %349
  call void @exit(i32 noundef 1) #11
  unreachable

353:                                              ; preds = %217
  %354 = landingpad { ptr, i32 }
          cleanup
  %355 = extractvalue { ptr, i32 } %354, 0
  store ptr %355, ptr %35, align 8
  %356 = extractvalue { ptr, i32 } %354, 1
  store i32 %356, ptr %36, align 4
  br label %786

357:                                              ; preds = %262
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %35, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %36, align 4
  br label %785

361:                                              ; preds = %263
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %35, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %36, align 4
  br label %784

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

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

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

377:                                              ; preds = %276, %275, %274, %273, %272, %271, %270, %269, %268, %267
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %35, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %36, align 4
  br label %780

381:                                              ; preds = %283, %279, %277
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %35, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #10
  br label %780

385:                                              ; preds = %299, %295, %293
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %35, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #10
  br label %780

389:                                              ; preds = %314, %311, %309
  %390 = landingpad { ptr, i32 }
          cleanup
  %391 = extractvalue { ptr, i32 } %390, 0
  store ptr %391, ptr %35, align 8
  %392 = extractvalue { ptr, i32 } %390, 1
  store i32 %392, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #10
  br label %780

393:                                              ; preds = %321, %318, %316
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %35, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #10
  br label %780

397:                                              ; preds = %328, %325, %323
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %35, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  br label %780

401:                                              ; preds = %330
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %35, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #10
  br label %439

405:                                              ; preds = %349, %347, %344, %341, %336
  %406 = landingpad { ptr, i32 }
          cleanup
  %407 = extractvalue { ptr, i32 } %406, 0
  store ptr %407, ptr %35, align 8
  %408 = extractvalue { ptr, i32 } %406, 1
  store i32 %408, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  br label %439

409:                                              ; preds = %333
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #10
  %410 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %411 unwind label %440

411:                                              ; preds = %409
  store i32 %410, ptr %59, align 4, !tbaa !5
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %412 unwind label %440

412:                                              ; preds = %411
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %60, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %413 unwind label %440

413:                                              ; preds = %412
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef byval(%struct.TensorDesc) align 8 %60)
          to label %414 unwind label %440

414:                                              ; preds = %413
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %415 unwind label %440

415:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  store i32 1, ptr %61, align 4, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  store i32 9, ptr %62, align 4, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %39) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %67, ptr align 4 %25, i64 108, i1 false), !tbaa.struct !20
  %416 = load i32, ptr %61, align 4, !tbaa !28
  %417 = load i32, ptr %6, align 4, !tbaa !11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %68, ptr align 4 %24, i64 20, i1 false), !tbaa.struct !32
  %418 = invoke noundef i32 @_Z37deconvolution_infer_forward_algorithm6TensorS_S_20ConvolutionParamSpec17ConvolutionPolicyP27ConvolutionForwardAlgorithm8DataType19ActivationParamSpecP8ArchInfo(ptr noundef %64, ptr noundef %65, ptr noundef %66, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %67, i32 noundef %416, ptr noundef %62, i32 noundef %417, ptr noundef byval(%struct.ActivationParamSpec) align 8 %68, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %419 unwind label %444

419:                                              ; preds = %415
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #10
  store i32 %418, ptr %63, align 4, !tbaa !26
  %420 = load i32, ptr %63, align 4, !tbaa !26
  %421 = icmp ne i32 %420, 0
  br i1 %421, label %422, label %452

422:                                              ; preds = %419
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  %423 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %424 = trunc i64 %423 to i32
  store i32 %424, ptr %69, align 4, !tbaa !5
  %425 = load i32, ptr %69, align 4, !tbaa !5
  %426 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %425)
          to label %427 unwind label %448

427:                                              ; preds = %422
  %428 = load ptr, ptr @stdout, align 8, !tbaa !9
  %429 = invoke i32 @fflush(ptr noundef %428)
          to label %430 unwind label %448

430:                                              ; preds = %427
  %431 = load i32, ptr %63, align 4, !tbaa !26
  %432 = invoke ptr @ee2str(i32 noundef %431)
          to label %433 unwind label %448

433:                                              ; preds = %430
  %434 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %432)
          to label %435 unwind label %448

435:                                              ; preds = %433
  %436 = load ptr, ptr @stdout, align 8, !tbaa !9
  %437 = invoke i32 @fflush(ptr noundef %436)
          to label %438 unwind label %448

438:                                              ; preds = %435
  call void @exit(i32 noundef 1) #11
  unreachable

439:                                              ; preds = %405, %401
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #10
  br label %780

440:                                              ; preds = %414, %413, %412, %411, %409
  %441 = landingpad { ptr, i32 }
          cleanup
  %442 = extractvalue { ptr, i32 } %441, 0
  store ptr %442, ptr %35, align 8
  %443 = extractvalue { ptr, i32 } %441, 1
  store i32 %443, ptr %36, align 4
  br label %779

444:                                              ; preds = %415
  %445 = landingpad { ptr, i32 }
          cleanup
  %446 = extractvalue { ptr, i32 } %445, 0
  store ptr %446, ptr %35, align 8
  %447 = extractvalue { ptr, i32 } %445, 1
  store i32 %447, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #10
  br label %475

448:                                              ; preds = %435, %433, %430, %427, %422
  %449 = landingpad { ptr, i32 }
          cleanup
  %450 = extractvalue { ptr, i32 } %449, 0
  store ptr %450, ptr %35, align 8
  %451 = extractvalue { ptr, i32 } %449, 1
  store i32 %451, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %475

452:                                              ; preds = %419
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %39) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %75, ptr align 4 %25, i64 108, i1 false), !tbaa.struct !20
  %453 = load i32, ptr %62, align 4, !tbaa !30
  %454 = invoke noundef i32 @_Z37deconvolution_infer_forward_tmp_bytes6TensorS_S_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPjP8ArchInfo(ptr noundef %72, ptr noundef %73, ptr noundef %74, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %75, i32 noundef %453, ptr noundef %70, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %455 unwind label %476

455:                                              ; preds = %452
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #10
  store i32 %454, ptr %71, align 4, !tbaa !26
  %456 = load i32, ptr %71, align 4, !tbaa !26
  %457 = icmp ne i32 %456, 0
  br i1 %457, label %458, label %484

458:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #10
  %459 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %460 = trunc i64 %459 to i32
  store i32 %460, ptr %76, align 4, !tbaa !5
  %461 = load i32, ptr %76, align 4, !tbaa !5
  %462 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %461)
          to label %463 unwind label %480

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

466:                                              ; preds = %463
  %467 = load i32, ptr %71, align 4, !tbaa !26
  %468 = invoke ptr @ee2str(i32 noundef %467)
          to label %469 unwind label %480

469:                                              ; preds = %466
  %470 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %468)
          to label %471 unwind label %480

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

474:                                              ; preds = %471
  call void @exit(i32 noundef 1) #11
  unreachable

475:                                              ; preds = %448, %444
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %778

476:                                              ; preds = %452
  %477 = landingpad { ptr, i32 }
          cleanup
  %478 = extractvalue { ptr, i32 } %477, 0
  store ptr %478, ptr %35, align 8
  %479 = extractvalue { ptr, i32 } %477, 1
  store i32 %479, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #10
  br label %512

480:                                              ; preds = %471, %469, %466, %463, %458
  %481 = landingpad { ptr, i32 }
          cleanup
  %482 = extractvalue { ptr, i32 } %481, 0
  store ptr %482, ptr %35, align 8
  %483 = extractvalue { ptr, i32 } %481, 1
  store i32 %483, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #10
  br label %512

484:                                              ; preds = %455
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %77, i32 noundef 1)
          to label %485 unwind label %513

485:                                              ; preds = %484
  %486 = load i32, ptr %70, align 4, !tbaa !5
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %78, i32 noundef 0, i32 noundef %486)
          to label %487 unwind label %517

487:                                              ; preds = %485
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef byval(%struct.TensorDesc) align 8 %78)
          to label %488 unwind label %517

488:                                              ; preds = %487
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %489 unwind label %517

489:                                              ; preds = %488
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %82, ptr align 4 %25, i64 108, i1 false), !tbaa.struct !20
  %490 = load i32, ptr %62, align 4, !tbaa !30
  %491 = invoke noundef i32 @_Z36deconvolution_transform_filter_bytes6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvP8ArchInfo(ptr noundef %81, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %82, i32 noundef %490, ptr noundef %79, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %492 unwind label %521

492:                                              ; preds = %489
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #10
  store i32 %491, ptr %80, align 4, !tbaa !26
  %493 = load i32, ptr %80, align 4, !tbaa !26
  %494 = icmp ne i32 %493, 0
  br i1 %494, label %495, label %529

495:                                              ; preds = %492
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #10
  %496 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %497 = trunc i64 %496 to i32
  store i32 %497, ptr %83, align 4, !tbaa !5
  %498 = load i32, ptr %83, align 4, !tbaa !5
  %499 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %498)
          to label %500 unwind label %525

500:                                              ; preds = %495
  %501 = load ptr, ptr @stdout, align 8, !tbaa !9
  %502 = invoke i32 @fflush(ptr noundef %501)
          to label %503 unwind label %525

503:                                              ; preds = %500
  %504 = load i32, ptr %80, align 4, !tbaa !26
  %505 = invoke ptr @ee2str(i32 noundef %504)
          to label %506 unwind label %525

506:                                              ; preds = %503
  %507 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %505)
          to label %508 unwind label %525

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

511:                                              ; preds = %508
  call void @exit(i32 noundef 1) #11
  unreachable

512:                                              ; preds = %480, %476
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %777

513:                                              ; preds = %484
  %514 = landingpad { ptr, i32 }
          cleanup
  %515 = extractvalue { ptr, i32 } %514, 0
  store ptr %515, ptr %35, align 8
  %516 = extractvalue { ptr, i32 } %514, 1
  store i32 %516, ptr %36, align 4
  br label %776

517:                                              ; preds = %488, %487, %485
  %518 = landingpad { ptr, i32 }
          cleanup
  %519 = extractvalue { ptr, i32 } %518, 0
  store ptr %519, ptr %35, align 8
  %520 = extractvalue { ptr, i32 } %518, 1
  store i32 %520, ptr %36, align 4
  br label %775

521:                                              ; preds = %489
  %522 = landingpad { ptr, i32 }
          cleanup
  %523 = extractvalue { ptr, i32 } %522, 0
  store ptr %523, ptr %35, align 8
  %524 = extractvalue { ptr, i32 } %522, 1
  store i32 %524, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #10
  br label %557

525:                                              ; preds = %508, %506, %503, %500, %495
  %526 = landingpad { ptr, i32 }
          cleanup
  %527 = extractvalue { ptr, i32 } %526, 0
  store ptr %527, ptr %35, align 8
  %528 = extractvalue { ptr, i32 } %526, 1
  store i32 %528, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #10
  br label %557

529:                                              ; preds = %492
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %84, i32 noundef 1)
          to label %530 unwind label %558

530:                                              ; preds = %529
  %531 = load i32, ptr %79, align 4, !tbaa !5
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %85, i32 noundef 0, i32 noundef %531)
          to label %532 unwind label %562

532:                                              ; preds = %530
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef byval(%struct.TensorDesc) align 8 %85)
          to label %533 unwind label %562

533:                                              ; preds = %532
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %84)
          to label %534 unwind label %562

534:                                              ; preds = %533
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %88, ptr align 4 %25, i64 108, i1 false), !tbaa.struct !20
  %535 = load i32, ptr %62, align 4, !tbaa !30
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(32) %77) #10
  %536 = invoke noundef i32 @_Z30deconvolution_transform_filter6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmS_PS_P8ArchInfo(ptr noundef %87, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %88, i32 noundef %535, ptr noundef %89, ptr noundef %84, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %537 unwind label %566

537:                                              ; preds = %534
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #10
  store i32 %536, ptr %86, align 4, !tbaa !26
  %538 = load i32, ptr %86, align 4, !tbaa !26
  %539 = icmp ne i32 %538, 0
  br i1 %539, label %540, label %574

540:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #10
  %541 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %542 = trunc i64 %541 to i32
  store i32 %542, ptr %90, align 4, !tbaa !5
  %543 = load i32, ptr %90, align 4, !tbaa !5
  %544 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %543)
          to label %545 unwind label %570

545:                                              ; preds = %540
  %546 = load ptr, ptr @stdout, align 8, !tbaa !9
  %547 = invoke i32 @fflush(ptr noundef %546)
          to label %548 unwind label %570

548:                                              ; preds = %545
  %549 = load i32, ptr %86, align 4, !tbaa !26
  %550 = invoke ptr @ee2str(i32 noundef %549)
          to label %551 unwind label %570

551:                                              ; preds = %548
  %552 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %550)
          to label %553 unwind label %570

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

556:                                              ; preds = %553
  call void @exit(i32 noundef 1) #11
  unreachable

557:                                              ; preds = %525, %521
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  br label %774

558:                                              ; preds = %529
  %559 = landingpad { ptr, i32 }
          cleanup
  %560 = extractvalue { ptr, i32 } %559, 0
  store ptr %560, ptr %35, align 8
  %561 = extractvalue { ptr, i32 } %559, 1
  store i32 %561, ptr %36, align 4
  br label %773

562:                                              ; preds = %533, %532, %530
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %35, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %36, align 4
  br label %772

566:                                              ; preds = %534
  %567 = landingpad { ptr, i32 }
          cleanup
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %35, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #10
  br label %597

570:                                              ; preds = %553, %551, %548, %545, %540
  %571 = landingpad { ptr, i32 }
          cleanup
  %572 = extractvalue { ptr, i32 } %571, 0
  store ptr %572, ptr %35, align 8
  %573 = extractvalue { ptr, i32 } %571, 1
  store i32 %573, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #10
  br label %597

574:                                              ; preds = %537
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %84) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %94, ptr align 4 %25, i64 108, i1 false), !tbaa.struct !20
  %575 = load i32, ptr %62, align 4, !tbaa !30
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull align 8 dereferenceable(32) %41) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 8 dereferenceable(32) %77) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(32) %39) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %98, ptr align 4 %24, i64 20, i1 false), !tbaa.struct !32
  %576 = invoke noundef i32 @_Z13deconvolution6TensorS_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS_S_S_19ActivationParamSpecP8ArchInfo(ptr noundef %92, ptr noundef %93, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %94, i32 noundef %575, ptr noundef null, ptr noundef %95, ptr noundef %96, ptr noundef %97, ptr noundef byval(%struct.ActivationParamSpec) align 8 %98, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %577 unwind label %598

577:                                              ; preds = %574
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #10
  store i32 %576, ptr %91, align 4, !tbaa !26
  %578 = load i32, ptr %91, align 4, !tbaa !26
  %579 = icmp ne i32 %578, 0
  br i1 %579, label %580, label %606

580:                                              ; preds = %577
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #10
  %581 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %582 = trunc i64 %581 to i32
  store i32 %582, ptr %99, align 4, !tbaa !5
  %583 = load i32, ptr %99, align 4, !tbaa !5
  %584 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %583)
          to label %585 unwind label %602

585:                                              ; preds = %580
  %586 = load ptr, ptr @stdout, align 8, !tbaa !9
  %587 = invoke i32 @fflush(ptr noundef %586)
          to label %588 unwind label %602

588:                                              ; preds = %585
  %589 = load i32, ptr %91, align 4, !tbaa !26
  %590 = invoke ptr @ee2str(i32 noundef %589)
          to label %591 unwind label %602

591:                                              ; preds = %588
  %592 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %590)
          to label %593 unwind label %602

593:                                              ; preds = %591
  %594 = load ptr, ptr @stdout, align 8, !tbaa !9
  %595 = invoke i32 @fflush(ptr noundef %594)
          to label %596 unwind label %602

596:                                              ; preds = %593
  call void @exit(i32 noundef 1) #11
  unreachable

597:                                              ; preds = %570, %566
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #10
  br label %772

598:                                              ; preds = %574
  %599 = landingpad { ptr, i32 }
          cleanup
  %600 = extractvalue { ptr, i32 } %599, 0
  store ptr %600, ptr %35, align 8
  %601 = extractvalue { ptr, i32 } %599, 1
  store i32 %601, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #10
  br label %629

602:                                              ; preds = %593, %591, %588, %585, %580
  %603 = landingpad { ptr, i32 }
          cleanup
  %604 = extractvalue { ptr, i32 } %603, 0
  store ptr %604, ptr %35, align 8
  %605 = extractvalue { ptr, i32 } %603, 1
  store i32 %605, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #10
  br label %629

606:                                              ; preds = %577
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef nonnull align 8 dereferenceable(32) %34) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull align 8 dereferenceable(32) %38) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %103, ptr align 4 %25, i64 108, i1 false), !tbaa.struct !20
  %607 = load i32, ptr %62, align 4, !tbaa !30
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull align 8 dereferenceable(32) %41) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 8 dereferenceable(32) %77) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %107, ptr align 4 %24, i64 20, i1 false), !tbaa.struct !32
  %608 = invoke noundef i32 @_Z13deconvolution6TensorS_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS_S_S_19ActivationParamSpecP8ArchInfo(ptr noundef %101, ptr noundef %102, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %103, i32 noundef %607, ptr noundef null, ptr noundef %104, ptr noundef %105, ptr noundef %106, ptr noundef byval(%struct.ActivationParamSpec) align 8 %107, ptr noundef @_ZL18UT_SERIAL_ARCHINFO)
          to label %609 unwind label %630

609:                                              ; preds = %606
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #10
  store i32 %608, ptr %100, align 4, !tbaa !26
  %610 = load i32, ptr %100, align 4, !tbaa !26
  %611 = icmp ne i32 %610, 0
  br i1 %611, label %612, label %638

612:                                              ; preds = %609
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #10
  %613 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %614 = trunc i64 %613 to i32
  store i32 %614, ptr %108, align 4, !tbaa !5
  %615 = load i32, ptr %108, align 4, !tbaa !5
  %616 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %615)
          to label %617 unwind label %634

617:                                              ; preds = %612
  %618 = load ptr, ptr @stdout, align 8, !tbaa !9
  %619 = invoke i32 @fflush(ptr noundef %618)
          to label %620 unwind label %634

620:                                              ; preds = %617
  %621 = load i32, ptr %100, align 4, !tbaa !26
  %622 = invoke ptr @ee2str(i32 noundef %621)
          to label %623 unwind label %634

623:                                              ; preds = %620
  %624 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %622)
          to label %625 unwind label %634

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

628:                                              ; preds = %625
  call void @exit(i32 noundef 1) #11
  unreachable

629:                                              ; preds = %602, %598
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  br label %772

630:                                              ; preds = %606
  %631 = landingpad { ptr, i32 }
          cleanup
  %632 = extractvalue { ptr, i32 } %631, 0
  store ptr %632, ptr %35, align 8
  %633 = extractvalue { ptr, i32 } %631, 1
  store i32 %633, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #10
  br label %652

634:                                              ; preds = %625, %623, %620, %617, %612
  %635 = landingpad { ptr, i32 }
          cleanup
  %636 = extractvalue { ptr, i32 } %635, 0
  store ptr %636, ptr %35, align 8
  %637 = extractvalue { ptr, i32 } %635, 1
  store i32 %637, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #10
  br label %652

638:                                              ; preds = %609
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %39) #10
  %639 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %109, i32 noundef 1)
          to label %640 unwind label %653

640:                                              ; preds = %638
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  %641 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %110, i32 noundef 1)
          to label %642 unwind label %657

642:                                              ; preds = %640
  %643 = load i32, ptr %59, align 4, !tbaa !5
  %644 = load i32, ptr %6, align 4, !tbaa !11
  invoke void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef %639, ptr noundef %641, i32 noundef %643, i32 noundef %644, float noundef 1.000000e+00)
          to label %645 unwind label %657

645:                                              ; preds = %642
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #10
  %646 = invoke noundef double @_Z10ut_time_msv()
          to label %647 unwind label %662

647:                                              ; preds = %645
  store double %646, ptr %111, align 8, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #10
  store i32 0, ptr %112, align 4, !tbaa !5
  br label %648

648:                                              ; preds = %698, %647
  %649 = load i32, ptr %112, align 4, !tbaa !5
  %650 = icmp slt i32 %649, 6
  br i1 %650, label %666, label %651

651:                                              ; preds = %648
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #10
  br label %702

652:                                              ; preds = %634, %630
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #10
  br label %772

653:                                              ; preds = %638
  %654 = landingpad { ptr, i32 }
          cleanup
  %655 = extractvalue { ptr, i32 } %654, 0
  store ptr %655, ptr %35, align 8
  %656 = extractvalue { ptr, i32 } %654, 1
  store i32 %656, ptr %36, align 4
  br label %661

657:                                              ; preds = %642, %640
  %658 = landingpad { ptr, i32 }
          cleanup
  %659 = extractvalue { ptr, i32 } %658, 0
  store ptr %659, ptr %35, align 8
  %660 = extractvalue { ptr, i32 } %658, 1
  store i32 %660, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #10
  br label %661

661:                                              ; preds = %657, %653
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #10
  br label %772

662:                                              ; preds = %645
  %663 = landingpad { ptr, i32 }
          cleanup
  %664 = extractvalue { ptr, i32 } %663, 0
  store ptr %664, ptr %35, align 8
  %665 = extractvalue { ptr, i32 } %663, 1
  store i32 %665, ptr %36, align 4
  br label %771

666:                                              ; preds = %648
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull align 8 dereferenceable(32) %84) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %116, ptr align 4 %25, i64 108, i1 false), !tbaa.struct !20
  %667 = load i32, ptr %62, align 4, !tbaa !30
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull align 8 dereferenceable(32) %41) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull align 8 dereferenceable(32) %77) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull align 8 dereferenceable(32) %39) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %120, ptr align 4 %24, i64 20, i1 false), !tbaa.struct !32
  %668 = invoke noundef i32 @_Z13deconvolution6TensorS_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS_S_S_19ActivationParamSpecP8ArchInfo(ptr noundef %114, ptr noundef %115, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %116, i32 noundef %667, ptr noundef null, ptr noundef %117, ptr noundef %118, ptr noundef %119, ptr noundef byval(%struct.ActivationParamSpec) align 8 %120, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %669 unwind label %689

669:                                              ; preds = %666
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #10
  store i32 %668, ptr %113, align 4, !tbaa !26
  %670 = load i32, ptr %113, align 4, !tbaa !26
  %671 = icmp ne i32 %670, 0
  br i1 %671, label %672, label %697

672:                                              ; preds = %669
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #10
  %673 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %674 = trunc i64 %673 to i32
  store i32 %674, ptr %121, align 4, !tbaa !5
  %675 = load i32, ptr %121, align 4, !tbaa !5
  %676 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %675)
          to label %677 unwind label %693

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

680:                                              ; preds = %677
  %681 = load i32, ptr %113, align 4, !tbaa !26
  %682 = invoke ptr @ee2str(i32 noundef %681)
          to label %683 unwind label %693

683:                                              ; preds = %680
  %684 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %682)
          to label %685 unwind label %693

685:                                              ; preds = %683
  %686 = load ptr, ptr @stdout, align 8, !tbaa !9
  %687 = invoke i32 @fflush(ptr noundef %686)
          to label %688 unwind label %693

688:                                              ; preds = %685
  call void @exit(i32 noundef 1) #11
  unreachable

689:                                              ; preds = %666
  %690 = landingpad { ptr, i32 }
          cleanup
  %691 = extractvalue { ptr, i32 } %690, 0
  store ptr %691, ptr %35, align 8
  %692 = extractvalue { ptr, i32 } %690, 1
  store i32 %692, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #10
  br label %701

693:                                              ; preds = %685, %683, %680, %677, %672
  %694 = landingpad { ptr, i32 }
          cleanup
  %695 = extractvalue { ptr, i32 } %694, 0
  store ptr %695, ptr %35, align 8
  %696 = extractvalue { ptr, i32 } %694, 1
  store i32 %696, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #10
  br label %701

697:                                              ; preds = %669
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #10
  br label %698

698:                                              ; preds = %697
  %699 = load i32, ptr %112, align 4, !tbaa !5
  %700 = add nsw i32 %699, 1
  store i32 %700, ptr %112, align 4, !tbaa !5
  br label %648, !llvm.loop !35

701:                                              ; preds = %693, %689
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #10
  br label %771

702:                                              ; preds = %651
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #10
  %703 = invoke noundef double @_Z10ut_time_msv()
          to label %704 unwind label %762

704:                                              ; preds = %702
  store double %703, ptr %122, align 8, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #10
  %705 = load double, ptr %122, align 8, !tbaa !33
  %706 = load double, ptr %111, align 8, !tbaa !33
  %707 = fsub double %705, %706
  %708 = fdiv double %707, 6.000000e+00
  store double %708, ptr %123, align 8, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 150, ptr %124) #10
  call void @llvm.lifetime.start.p0(i64 120, ptr %125) #10
  %709 = getelementptr inbounds [120 x i8], ptr %125, i64 0, i64 0
  %710 = load i32, ptr %8, align 4, !tbaa !5
  %711 = load i32, ptr %9, align 4, !tbaa !5
  %712 = load i32, ptr %10, align 4, !tbaa !5
  %713 = load i32, ptr %11, align 4, !tbaa !5
  %714 = load i32, ptr %12, align 4, !tbaa !5
  %715 = load i32, ptr %13, align 4, !tbaa !5
  %716 = load i32, ptr %14, align 4, !tbaa !5
  %717 = load i32, ptr %15, align 4, !tbaa !5
  %718 = load i32, ptr %17, align 4, !tbaa !5
  %719 = load i32, ptr %18, align 4, !tbaa !5
  %720 = load i32, ptr %19, align 4, !tbaa !5
  %721 = load i32, ptr %20, align 4, !tbaa !5
  %722 = load i32, ptr %21, align 4, !tbaa !5
  %723 = load i32, ptr %22, align 4, !tbaa !5
  %724 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %709, ptr noundef @.str.3, i32 noundef %710, i32 noundef %711, i32 noundef %712, i32 noundef %713, i32 noundef %714, i32 noundef %715, i32 noundef %716, i32 noundef %717, i32 noundef %718, i32 noundef %719, i32 noundef %720, i32 noundef %721, i32 noundef %722, i32 noundef %723) #10
  %725 = getelementptr inbounds [150 x i8], ptr %124, i64 0, i64 0
  %726 = getelementptr inbounds [120 x i8], ptr %125, i64 0, i64 0
  %727 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %725, ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef %726) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #10
  %728 = load i32, ptr %19, align 4, !tbaa !5
  %729 = uitofp i32 %728 to double
  %730 = fmul double 1.000000e+00, %729
  %731 = load i32, ptr %20, align 4, !tbaa !5
  %732 = uitofp i32 %731 to double
  %733 = fmul double %730, %732
  %734 = load i32, ptr %10, align 4, !tbaa !5
  %735 = uitofp i32 %734 to double
  %736 = fmul double %733, %735
  %737 = load i32, ptr %11, align 4, !tbaa !5
  %738 = uitofp i32 %737 to double
  %739 = fmul double %736, %738
  %740 = load i32, ptr %9, align 4, !tbaa !5
  %741 = uitofp i32 %740 to double
  %742 = fmul double 2.000000e+00, %741
  %743 = load i32, ptr %14, align 4, !tbaa !5
  %744 = uitofp i32 %743 to double
  %745 = fmul double %742, %744
  %746 = load i32, ptr %15, align 4, !tbaa !5
  %747 = uitofp i32 %746 to double
  %748 = load i32, ptr %14, align 4, !tbaa !5
  %749 = load i32, ptr %15, align 4, !tbaa !5
  %750 = mul i32 %748, %749
  %751 = uitofp i32 %750 to double
  %752 = call double @llvm.fmuladd.f64(double %745, double %747, double %751)
  %753 = fmul double %739, %752
  store double %753, ptr %126, align 8, !tbaa !33
  %754 = load i32, ptr %6, align 4, !tbaa !11
  %755 = getelementptr inbounds [150 x i8], ptr %124, i64 0, i64 0
  %756 = load double, ptr %126, align 8, !tbaa !33
  %757 = load double, ptr %123, align 8, !tbaa !33
  invoke void @_Z6ut_log8DataTypePcdd(i32 noundef %754, ptr noundef %755, double noundef %756, double noundef %757)
          to label %758 unwind label %766

758:                                              ; preds = %704
  %759 = load ptr, ptr %30, align 8, !tbaa !9
  call void @free(ptr noundef %759) #10
  %760 = load ptr, ptr %31, align 8, !tbaa !9
  call void @free(ptr noundef %760) #10
  %761 = load ptr, ptr %32, align 8, !tbaa !9
  call void @free(ptr noundef %761) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #10
  call void @llvm.lifetime.end.p0(i64 120, ptr %125) #10
  call void @llvm.lifetime.end.p0(i64 150, ptr %124) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr %29) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr %28) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 108, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 20, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  ret i32 0

762:                                              ; preds = %702
  %763 = landingpad { ptr, i32 }
          cleanup
  %764 = extractvalue { ptr, i32 } %763, 0
  store ptr %764, ptr %35, align 8
  %765 = extractvalue { ptr, i32 } %763, 1
  store i32 %765, ptr %36, align 4
  br label %770

766:                                              ; preds = %704
  %767 = landingpad { ptr, i32 }
          cleanup
  %768 = extractvalue { ptr, i32 } %767, 0
  store ptr %768, ptr %35, align 8
  %769 = extractvalue { ptr, i32 } %767, 1
  store i32 %769, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #10
  call void @llvm.lifetime.end.p0(i64 120, ptr %125) #10
  call void @llvm.lifetime.end.p0(i64 150, ptr %124) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #10
  br label %770

770:                                              ; preds = %766, %762
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #10
  br label %771

771:                                              ; preds = %770, %701, %662
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #10
  br label %772

772:                                              ; preds = %771, %661, %652, %629, %597, %562
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #10
  br label %773

773:                                              ; preds = %772, %558
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #10
  br label %774

774:                                              ; preds = %773, %557
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %775

775:                                              ; preds = %774, %517
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #10
  br label %776

776:                                              ; preds = %775, %513
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #10
  br label %777

777:                                              ; preds = %776, %512
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  br label %778

778:                                              ; preds = %777, %475
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %779

779:                                              ; preds = %778, %440
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  br label %780

780:                                              ; preds = %779, %439, %397, %393, %389, %385, %381, %377
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #10
  br label %781

781:                                              ; preds = %780, %373
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  br label %782

782:                                              ; preds = %781, %369
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #10
  br label %783

783:                                              ; preds = %782, %365
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #10
  br label %784

784:                                              ; preds = %783, %361
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  br label %785

785:                                              ; preds = %784, %357
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #10
  br label %786

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

787:                                              ; preds = %786
  %788 = load ptr, ptr %35, align 8
  %789 = load i32, ptr %36, align 4
  %790 = insertvalue { ptr, i32 } poison, ptr %788, 0
  %791 = insertvalue { ptr, i32 } %790, i32 %789, 1
  resume { ptr, i32 } %791
}

; 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 @_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 nounwind uwtable
declare dso_local void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92)) unnamed_addr #6 align 2

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

; 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 @_Z37deconvolution_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 @_Z37deconvolution_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 @_Z36deconvolution_transform_filter_bytes6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvP8ArchInfo(ptr noundef, ptr noundef byval(%struct.ConvolutionParamSpec) align 8, i32 noundef, ptr noundef, ptr noundef) #3

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

declare noundef i32 @_Z13deconvolution6TensorS_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS_S_S_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: inlinehint mustprogress uwtable
declare dso_local void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef, ptr noundef, i32 noundef, i32 noundef, float noundef) #7

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) #9

; 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

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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #10 = { nounwind }
attributes #11 = { noreturn nounwind }
attributes #12 = { 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 = !{i64 0, i64 4, !11, i64 4, i64 4, !17, i64 8, i64 4, !5, i64 12, i64 80, !19}
!17 = !{!18, !18, i64 0}
!18 = !{!"_ZTS10DataFormat", !7, i64 0}
!19 = !{!7, !7, i64 0}
!20 = !{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, !21, i64 76, i64 4, !23, i64 80, i64 4, !23, i64 84, i64 8, !19, i64 92, i64 4, !24, i64 96, i64 4, !5, i64 100, i64 4, !5, i64 104, i64 4, !5}
!21 = !{!22, !22, i64 0}
!22 = !{!"_ZTS15ConvolutionMode", !7, i64 0}
!23 = !{!15, !15, i64 0}
!24 = !{!25, !25, i64 0}
!25 = !{!"_ZTS9RoundMode", !7, i64 0}
!26 = !{!27, !27, i64 0}
!27 = !{!"_ZTS2EE", !7, i64 0}
!28 = !{!29, !29, i64 0}
!29 = !{!"_ZTS17ConvolutionPolicy", !7, i64 0}
!30 = !{!31, !31, i64 0}
!31 = !{!"_ZTS27ConvolutionForwardAlgorithm", !7, i64 0}
!32 = !{i64 0, i64 4, !23, i64 4, i64 16, !19}
!33 = !{!34, !34, i64 0}
!34 = !{!"double", !7, i64 0}
!35 = distinct !{!35, !36}
!36 = !{!"llvm.loop.mustprogress"}


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

%struct.ArchInfo = type { i32, ptr }
%struct.ActivationParamSpec = type { i32, [4 x float] }
%struct.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 }
%struct.TensorDesc = type { i32, i32, i32, [20 x i32] }
%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" }

@.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 [14 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z17deconvolutionTestiPPc8DataType(i32 noundef %0, ptr nocapture noundef readonly %1, i32 noundef %2) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %4 = alloca %struct.ActivationParamSpec, align 8
  %5 = alloca %struct.ConvolutionParamSpec, align 8
  %6 = alloca %struct.TensorDesc, align 4
  %7 = alloca %struct.TensorDesc, align 8
  %8 = alloca %struct.TensorDesc, align 8
  %9 = alloca %struct.TensorDesc, 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.Tensor, align 8
  %42 = alloca %class.Tensor, align 8
  %43 = alloca %struct.ConvolutionParamSpec, align 8
  %44 = alloca %class.Tensor, align 8
  %45 = alloca %class.Tensor, align 8
  %46 = alloca %class.Tensor, align 8
  %47 = alloca %class.Tensor, align 8
  %48 = alloca %class.Tensor, align 8
  %49 = alloca %struct.ConvolutionParamSpec, align 8
  %50 = alloca %class.Tensor, align 8
  %51 = alloca %class.Tensor, align 8
  %52 = alloca %class.Tensor, align 8
  %53 = alloca %class.Tensor, align 8
  %54 = alloca %class.Tensor, align 8
  %55 = alloca %class.Tensor, align 8
  %56 = alloca %class.Tensor, align 8
  %57 = alloca %struct.ConvolutionParamSpec, align 8
  %58 = alloca %class.Tensor, align 8
  %59 = alloca %class.Tensor, align 8
  %60 = alloca %class.Tensor, align 8
  %61 = alloca [150 x i8], align 16
  %62 = alloca [120 x i8], align 16
  %63 = icmp eq i32 %0, 16
  br i1 %63, label %73, label %64

64:                                               ; preds = %3
  %65 = tail call i64 (i64, ...) @syscall(i64 noundef 186) #12
  %66 = trunc i64 %65 to i32
  %67 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %66)
  %68 = load ptr, ptr @stdout, align 8, !tbaa !5
  %69 = tail call i32 @fflush(ptr noundef %68)
  %70 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1)
  %71 = load ptr, ptr @stdout, align 8, !tbaa !5
  %72 = tail call i32 @fflush(ptr noundef %71)
  tail call void @exit(i32 noundef 1) #13
  unreachable

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

120:                                              ; preds = %73
  %121 = tail call i64 (i64, ...) @syscall(i64 noundef 186) #12
  %122 = trunc i64 %121 to i32
  %123 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %122)
  %124 = load ptr, ptr @stdout, align 8, !tbaa !5
  %125 = tail call i32 @fflush(ptr noundef %124)
  %126 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1)
  %127 = load ptr, ptr @stdout, align 8, !tbaa !5
  %128 = tail call i32 @fflush(ptr noundef %127)
  tail call void @exit(i32 noundef 1) #13
  unreachable

129:                                              ; preds = %73
  %130 = getelementptr inbounds i8, ptr %1, i64 72
  %131 = load ptr, ptr %130, align 8, !tbaa !5
  %132 = tail call i32 @atoi(ptr nocapture noundef %131) #14
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %4) #12
  call void @_ZN19ActivationParamSpecC2Ev(ptr noundef nonnull align 4 dereferenceable(20) %4) #12
  store i32 0, ptr %4, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 108, ptr nonnull %5) #12
  call void @_Z26createConvolutionParamSpecjjjjjjjjjjjjjjjjj15ConvolutionMode(ptr dead_on_unwind nonnull writable sret(%struct.ConvolutionParamSpec) align 4 %5, i32 noundef %132, i32 noundef 1, i32 noundef %94, i32 noundef %97, i32 noundef 1, i32 noundef %100, i32 noundef %100, i32 noundef 0, i32 noundef 0, i32 noundef %103, i32 noundef %103, i32 noundef %103, i32 noundef %103, i32 noundef 1, i32 noundef 1, i32 noundef 1, i32 noundef %88, i32 noundef 4)
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %6) #12
  call void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92) %6) #12
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %7) #12
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %7, i32 noundef %2, i32 noundef 2, i32 noundef %76, i32 noundef %79, i32 noundef %82, i32 noundef %85)
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %8) #12
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %8, i32 noundef %2, i32 noundef 0, i32 noundef %88, i32 noundef %91, i32 noundef %94, i32 noundef %97)
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %9) #12
  call void @_Z8tensor1d8DataTypej(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %9, i32 noundef %2, i32 noundef %109)
  %133 = mul i32 %79, %76
  %134 = mul i32 %133, %82
  %135 = mul i32 %134, %85
  %136 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %135, i32 noundef %2, i32 noundef 0)
  %137 = mul i32 %97, %94
  %138 = mul i32 %137, %88
  %139 = mul i32 %138, %91
  %140 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %139, i32 noundef %2, i32 noundef 0)
  %141 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %109, i32 noundef %2, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #12
  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) #12
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %11, i32 noundef 1)
          to label %142 unwind label %202

142:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #12
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef 1)
          to label %143 unwind label %204

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

144:                                              ; preds = %143
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #12
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %14, i32 noundef 1)
          to label %145 unwind label %208

145:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #12
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %15, i32 noundef 1)
          to label %146 unwind label %210

146:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #12
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %16, i32 noundef 1)
          to label %147 unwind label %212

147:                                              ; preds = %146
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %7)
          to label %148 unwind label %214

148:                                              ; preds = %147
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %7)
          to label %149 unwind label %214

149:                                              ; preds = %148
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %8)
          to label %150 unwind label %214

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

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

152:                                              ; preds = %151
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %153 unwind label %214

153:                                              ; preds = %152
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %154 unwind label %214

154:                                              ; preds = %153
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %155 unwind label %214

155:                                              ; preds = %154
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %156 unwind label %214

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

157:                                              ; preds = %156
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  %158 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %17, i32 noundef 1)
          to label %159 unwind label %216

159:                                              ; preds = %157
  %160 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %2)
          to label %161 unwind label %216

161:                                              ; preds = %159
  %162 = mul i32 %135, %160
  %163 = zext i32 %162 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %158, ptr noundef %136, i64 noundef %163)
          to label %164 unwind label %216

164:                                              ; preds = %161
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %11) #12
  %165 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %18, i32 noundef 1)
          to label %166 unwind label %218

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

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

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

173:                                              ; preds = %171
  %174 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %8)
          to label %175 unwind label %220

175:                                              ; preds = %173
  %176 = zext i32 %174 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %172, ptr noundef %140, i64 noundef %176)
          to label %177 unwind label %220

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

179:                                              ; preds = %177
  %180 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %8)
          to label %181 unwind label %222

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

183:                                              ; preds = %181
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %16) #12
  %184 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %21, i32 noundef 1)
          to label %185 unwind label %224

185:                                              ; preds = %183
  %186 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %9)
          to label %187 unwind label %224

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

189:                                              ; preds = %187
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %12) #12
  %190 = invoke noundef i32 @_Z31deconvolution_infer_output_sizeP6TensorS_20ConvolutionParamSpecS0_8DataTypeP8ArchInfo(ptr noundef nonnull %10, ptr noundef nonnull %22, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %5, ptr noundef nonnull %14, i32 noundef %2, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %191 unwind label %226

191:                                              ; preds = %189
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #12
  %.not = icmp eq i32 %190, 0
  br i1 %.not, label %228, label %192

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

202:                                              ; preds = %129
  %203 = landingpad { ptr, i32 }
          cleanup
  br label %433

204:                                              ; preds = %142
  %205 = landingpad { ptr, i32 }
          cleanup
  br label %432

206:                                              ; preds = %143
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %431

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

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

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

214:                                              ; preds = %156, %155, %154, %153, %152, %151, %150, %149, %148, %147
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %427

216:                                              ; preds = %161, %159, %157
  %217 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #12
  br label %427

218:                                              ; preds = %168, %166, %164
  %219 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #12
  br label %427

220:                                              ; preds = %175, %173, %171
  %221 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #12
  br label %427

222:                                              ; preds = %181, %179, %177
  %223 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #12
  br label %427

224:                                              ; preds = %187, %185, %183
  %225 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #12
  br label %427

226:                                              ; preds = %189
  %227 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #12
  br label %427

228:                                              ; preds = %191
  %229 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %230 unwind label %247

230:                                              ; preds = %228
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %231 unwind label %247

231:                                              ; preds = %230
  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 %232 unwind label %247

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

233:                                              ; preds = %232
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %234 unwind label %247

234:                                              ; preds = %233
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #12
  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) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %12) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %14) #12
  %235 = invoke noundef i32 @_Z37deconvolution_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 %5, i32 noundef 1, ptr noundef nonnull %24, i32 noundef %2, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %236 unwind label %249

236:                                              ; preds = %234
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #12
  %.not159 = icmp eq i32 %235, 0
  br i1 %.not159, label %251, label %237

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

247:                                              ; preds = %233, %232, %231, %230, %228
  %248 = landingpad { ptr, i32 }
          cleanup
  br label %427

249:                                              ; preds = %234
  %250 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #12
  br label %426

251:                                              ; preds = %236
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %12) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(32) %14) #12
  %252 = load i32, ptr %24, align 4, !tbaa !12
  %253 = invoke noundef i32 @_Z37deconvolution_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 %5, 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) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #12
  %.not160 = icmp eq i32 %253, 0
  br i1 %.not160, label %267, label %255

255:                                              ; preds = %254
  %256 = call i64 (i64, ...) @syscall(i64 noundef 186) #12
  %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) #13
  unreachable

265:                                              ; preds = %251
  %266 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #12
  br label %425

267:                                              ; preds = %254
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #12
  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) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 8 dereferenceable(32) %12) #12
  %273 = load i32, ptr %24, align 4, !tbaa !12
  %274 = invoke noundef i32 @_Z36deconvolution_transform_filter_bytes6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvP8ArchInfo(ptr noundef nonnull %35, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %5, 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) #12
  %.not161 = icmp eq i32 %274, 0
  br i1 %.not161, label %292, label %276

276:                                              ; preds = %275
  %277 = call i64 (i64, ...) @syscall(i64 noundef 186) #12
  %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) #13
  unreachable

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

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

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

292:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #12
  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) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %39, ptr noundef nonnull align 8 dereferenceable(108) %5, 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) #12
  %299 = invoke noundef i32 @_Z30deconvolution_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) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #12
  %.not162 = icmp eq i32 %299, 0
  br i1 %.not162, label %317, label %301

301:                                              ; preds = %300
  %302 = call i64 (i64, ...) @syscall(i64 noundef 186) #12
  %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) #13
  unreachable

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

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

315:                                              ; preds = %297
  %316 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #12
  br label %420

317:                                              ; preds = %300
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %36) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %43, ptr noundef nonnull align 8 dereferenceable(108) %5, i64 108, i1 false), !tbaa.struct !16
  %318 = load i32, ptr %24, align 4, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %16) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %32) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %14) #12
  %319 = invoke noundef i32 @_Z13deconvolution6TensorS_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS_S_S_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %41, ptr noundef nonnull %42, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %43, i32 noundef %318, ptr noundef null, ptr noundef nonnull %44, ptr noundef nonnull %45, ptr noundef nonnull %46, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %320 unwind label %331

320:                                              ; preds = %317
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #12
  %.not163 = icmp eq i32 %319, 0
  br i1 %.not163, label %333, label %321

321:                                              ; preds = %320
  %322 = call i64 (i64, ...) @syscall(i64 noundef 186) #12
  %323 = trunc i64 %322 to i32
  %324 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %323)
  %325 = load ptr, ptr @stdout, align 8, !tbaa !5
  %326 = call i32 @fflush(ptr noundef %325)
  %327 = call ptr @ee2str(i32 noundef %319)
  %328 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %327)
  %329 = load ptr, ptr @stdout, align 8, !tbaa !5
  %330 = call i32 @fflush(ptr noundef %329)
  call void @exit(i32 noundef 1) #13
  unreachable

331:                                              ; preds = %317
  %332 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #12
  br label %420

333:                                              ; preds = %320
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(32) %11) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %13) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %49, ptr noundef nonnull align 8 dereferenceable(108) %5, i64 108, i1 false), !tbaa.struct !16
  %334 = 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) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %32) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %15) #12
  %335 = invoke noundef i32 @_Z13deconvolution6TensorS_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS_S_S_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %47, ptr noundef nonnull %48, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %49, i32 noundef %334, ptr noundef null, ptr noundef nonnull %50, ptr noundef nonnull %51, ptr noundef nonnull %52, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL18UT_SERIAL_ARCHINFO)
          to label %336 unwind label %347

336:                                              ; preds = %333
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #12
  %.not164 = icmp eq i32 %335, 0
  br i1 %.not164, label %349, label %337

337:                                              ; preds = %336
  %338 = call i64 (i64, ...) @syscall(i64 noundef 186) #12
  %339 = trunc i64 %338 to i32
  %340 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %339)
  %341 = load ptr, ptr @stdout, align 8, !tbaa !5
  %342 = call i32 @fflush(ptr noundef %341)
  %343 = call ptr @ee2str(i32 noundef %335)
  %344 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %343)
  %345 = load ptr, ptr @stdout, align 8, !tbaa !5
  %346 = call i32 @fflush(ptr noundef %345)
  call void @exit(i32 noundef 1) #13
  unreachable

347:                                              ; preds = %333
  %348 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #12
  br label %420

349:                                              ; preds = %336
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %14) #12
  %350 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %53, i32 noundef 1)
          to label %351 unwind label %375

351:                                              ; preds = %349
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %15) #12
  %352 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %54, i32 noundef 1)
          to label %353 unwind label %377

353:                                              ; preds = %351
  invoke void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef %350, ptr noundef %352, i32 noundef %229, i32 noundef %2, float noundef 1.000000e+00)
          to label %354 unwind label %377

354:                                              ; preds = %353
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #12
  %355 = invoke noundef double @_Z10ut_time_msv()
          to label %.preheader.preheader unwind label %380

.preheader.preheader:                             ; preds = %354
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %36) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %57, ptr noundef nonnull align 8 dereferenceable(108) %5, i64 108, i1 false), !tbaa.struct !16
  %356 = load i32, ptr %24, align 4, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %16) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %32) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %14) #12
  %357 = invoke noundef i32 @_Z13deconvolution6TensorS_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS_S_S_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %55, ptr noundef nonnull %56, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %57, i32 noundef %356, ptr noundef null, ptr noundef nonnull %58, ptr noundef nonnull %59, ptr noundef nonnull %60, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %382 unwind label %393

.preheader.1:                                     ; preds = %382
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %36) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %57, ptr noundef nonnull align 8 dereferenceable(108) %5, i64 108, i1 false), !tbaa.struct !16
  %358 = load i32, ptr %24, align 4, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %16) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %32) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %14) #12
  %359 = invoke noundef i32 @_Z13deconvolution6TensorS_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS_S_S_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %55, ptr noundef nonnull %56, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %57, i32 noundef %358, ptr noundef null, ptr noundef nonnull %58, ptr noundef nonnull %59, ptr noundef nonnull %60, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %360 unwind label %393

360:                                              ; preds = %.preheader.1
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #12
  %.not185.1 = icmp eq i32 %359, 0
  br i1 %.not185.1, label %.preheader.2, label %383

.preheader.2:                                     ; preds = %360
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %36) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %57, ptr noundef nonnull align 8 dereferenceable(108) %5, i64 108, i1 false), !tbaa.struct !16
  %361 = load i32, ptr %24, align 4, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %16) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %32) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %14) #12
  %362 = invoke noundef i32 @_Z13deconvolution6TensorS_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS_S_S_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %55, ptr noundef nonnull %56, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %57, i32 noundef %361, ptr noundef null, ptr noundef nonnull %58, ptr noundef nonnull %59, ptr noundef nonnull %60, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %363 unwind label %393

363:                                              ; preds = %.preheader.2
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #12
  %.not185.2 = icmp eq i32 %362, 0
  br i1 %.not185.2, label %.preheader.3, label %383

.preheader.3:                                     ; preds = %363
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %36) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %57, ptr noundef nonnull align 8 dereferenceable(108) %5, i64 108, i1 false), !tbaa.struct !16
  %364 = load i32, ptr %24, align 4, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %16) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %32) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %14) #12
  %365 = invoke noundef i32 @_Z13deconvolution6TensorS_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS_S_S_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %55, ptr noundef nonnull %56, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %57, i32 noundef %364, ptr noundef null, ptr noundef nonnull %58, ptr noundef nonnull %59, ptr noundef nonnull %60, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %366 unwind label %393

366:                                              ; preds = %.preheader.3
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #12
  %.not185.3 = icmp eq i32 %365, 0
  br i1 %.not185.3, label %.preheader.4, label %383

.preheader.4:                                     ; preds = %366
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %36) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %57, ptr noundef nonnull align 8 dereferenceable(108) %5, i64 108, i1 false), !tbaa.struct !16
  %367 = load i32, ptr %24, align 4, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %16) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %32) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %14) #12
  %368 = invoke noundef i32 @_Z13deconvolution6TensorS_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS_S_S_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %55, ptr noundef nonnull %56, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %57, i32 noundef %367, ptr noundef null, ptr noundef nonnull %58, ptr noundef nonnull %59, ptr noundef nonnull %60, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %369 unwind label %393

369:                                              ; preds = %.preheader.4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #12
  %.not185.4 = icmp eq i32 %368, 0
  br i1 %.not185.4, label %.preheader.5, label %383

.preheader.5:                                     ; preds = %369
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %36) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %57, ptr noundef nonnull align 8 dereferenceable(108) %5, i64 108, i1 false), !tbaa.struct !16
  %370 = load i32, ptr %24, align 4, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %16) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %32) #12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %14) #12
  %371 = invoke noundef i32 @_Z13deconvolution6TensorS_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS_S_S_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %55, ptr noundef nonnull %56, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %57, i32 noundef %370, ptr noundef null, ptr noundef nonnull %58, ptr noundef nonnull %59, ptr noundef nonnull %60, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %4, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %372 unwind label %393

372:                                              ; preds = %.preheader.5
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #12
  %.not185.5 = icmp eq i32 %371, 0
  br i1 %.not185.5, label %373, label %383

373:                                              ; preds = %372
  %374 = invoke noundef double @_Z10ut_time_msv()
          to label %395 unwind label %416

375:                                              ; preds = %349
  %376 = landingpad { ptr, i32 }
          cleanup
  br label %379

377:                                              ; preds = %353, %351
  %378 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #12
  br label %379

379:                                              ; preds = %377, %375
  %.pn = phi { ptr, i32 } [ %378, %377 ], [ %376, %375 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #12
  br label %420

380:                                              ; preds = %354
  %381 = landingpad { ptr, i32 }
          cleanup
  br label %420

382:                                              ; preds = %.preheader.preheader
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #12
  %.not185 = icmp eq i32 %357, 0
  br i1 %.not185, label %.preheader.1, label %383

383:                                              ; preds = %372, %369, %366, %363, %360, %382
  %.lcssa = phi i32 [ %357, %382 ], [ %359, %360 ], [ %362, %363 ], [ %365, %366 ], [ %368, %369 ], [ %371, %372 ]
  %384 = call i64 (i64, ...) @syscall(i64 noundef 186) #12
  %385 = trunc i64 %384 to i32
  %386 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %385)
  %387 = load ptr, ptr @stdout, align 8, !tbaa !5
  %388 = call i32 @fflush(ptr noundef %387)
  %389 = call ptr @ee2str(i32 noundef %.lcssa)
  %390 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %389)
  %391 = load ptr, ptr @stdout, align 8, !tbaa !5
  %392 = call i32 @fflush(ptr noundef %391)
  call void @exit(i32 noundef 1) #13
  unreachable

393:                                              ; preds = %.preheader.5, %.preheader.4, %.preheader.3, %.preheader.2, %.preheader.1, %.preheader.preheader
  %394 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #12
  br label %420

395:                                              ; preds = %373
  %396 = fsub double %374, %355
  %397 = fdiv double %396, 6.000000e+00
  call void @llvm.lifetime.start.p0(i64 150, ptr nonnull %61) #12
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %62) #12
  %398 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %62, ptr noundef nonnull dereferenceable(1) @.str.3, i32 noundef %76, i32 noundef %79, i32 noundef %82, i32 noundef %85, i32 noundef %88, i32 noundef %91, i32 noundef %94, i32 noundef %97, i32 noundef %100, i32 noundef %103, i32 noundef %106, i32 noundef %109, i32 noundef %112, i32 noundef %115) #12
  %399 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %61, ptr noundef nonnull dereferenceable(1) @.str.4, ptr noundef nonnull @.str.5, ptr noundef nonnull %62) #12
  %400 = uitofp i32 %106 to double
  %401 = uitofp i32 %109 to double
  %402 = fmul double %400, %401
  %403 = uitofp i32 %82 to double
  %404 = fmul double %402, %403
  %405 = uitofp i32 %85 to double
  %406 = fmul double %404, %405
  %407 = uitofp i32 %79 to double
  %408 = fmul double %407, 2.000000e+00
  %409 = uitofp i32 %94 to double
  %410 = fmul double %408, %409
  %411 = uitofp i32 %97 to double
  %412 = uitofp i32 %137 to double
  %413 = call double @llvm.fmuladd.f64(double %410, double %411, double %412)
  %414 = fmul double %413, %406
  invoke void @_Z6ut_log8DataTypePcdd(i32 noundef %2, ptr noundef nonnull %61, double noundef %414, double noundef %397)
          to label %415 unwind label %418

415:                                              ; preds = %395
  call void @free(ptr noundef %136) #12
  call void @free(ptr noundef %140) #12
  call void @free(ptr noundef %141) #12
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %62) #12
  call void @llvm.lifetime.end.p0(i64 150, ptr nonnull %61) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 108, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %4) #12
  ret i32 0

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

418:                                              ; preds = %395
  %419 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %62) #12
  call void @llvm.lifetime.end.p0(i64 150, ptr nonnull %61) #12
  br label %420

420:                                              ; preds = %380, %393, %418, %416, %379, %347, %331, %315, %313
  %.pn168.pn = phi { ptr, i32 } [ %.pn, %379 ], [ %348, %347 ], [ %332, %331 ], [ %316, %315 ], [ %314, %313 ], [ %394, %393 ], [ %381, %380 ], [ %419, %418 ], [ %417, %416 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #12
  br label %421

421:                                              ; preds = %420, %311
  %.pn168.pn.pn = phi { ptr, i32 } [ %.pn168.pn, %420 ], [ %312, %311 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #12
  br label %422

422:                                              ; preds = %421, %290
  %.pn168.pn.pn.pn = phi { ptr, i32 } [ %.pn168.pn.pn, %421 ], [ %291, %290 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #12
  br label %423

423:                                              ; preds = %422, %288
  %.pn168.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn168.pn.pn.pn, %422 ], [ %289, %288 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #12
  br label %424

424:                                              ; preds = %423, %286
  %.pn168.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn168.pn.pn.pn.pn, %423 ], [ %287, %286 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #12
  br label %425

425:                                              ; preds = %424, %265
  %.pn168.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn168.pn.pn.pn.pn.pn, %424 ], [ %266, %265 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #12
  br label %426

426:                                              ; preds = %425, %249
  %.pn168.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn168.pn.pn.pn.pn.pn.pn, %425 ], [ %250, %249 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #12
  br label %427

427:                                              ; preds = %247, %426, %226, %224, %222, %220, %218, %216, %214
  %.pn168.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %227, %226 ], [ %225, %224 ], [ %223, %222 ], [ %221, %220 ], [ %219, %218 ], [ %217, %216 ], [ %215, %214 ], [ %.pn168.pn.pn.pn.pn.pn.pn.pn, %426 ], [ %248, %247 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #12
  br label %428

428:                                              ; preds = %427, %212
  %.pn168.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn168.pn.pn.pn.pn.pn.pn.pn.pn.pn, %427 ], [ %213, %212 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #12
  br label %429

429:                                              ; preds = %428, %210
  %.pn168.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn168.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %428 ], [ %211, %210 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #12
  br label %430

430:                                              ; preds = %429, %208
  %.pn168.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn168.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %429 ], [ %209, %208 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #12
  br label %431

431:                                              ; preds = %430, %206
  %.pn168.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn168.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %430 ], [ %207, %206 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #12
  br label %432

432:                                              ; preds = %431, %204
  %.pn168.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn168.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %431 ], [ %205, %204 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #12
  br label %433

433:                                              ; preds = %432, %202
  %.pn168.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn168.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %432 ], [ %203, %202 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 108, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %4) #12
  resume { ptr, i32 } %.pn168.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 @_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 nounwind uwtable
declare dso_local void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92)) unnamed_addr #6 align 2

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

; 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 @_Z37deconvolution_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 @_Z37deconvolution_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 @_Z36deconvolution_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 @_Z30deconvolution_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

declare noundef i32 @_Z13deconvolution6TensorS_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS_S_S_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: 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

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) #10

; 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 #11

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 nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #11 = { 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 #12 = { nounwind }
attributes #13 = { noreturn nounwind }
attributes #14 = { 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: DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,LCSSAPass,LoopRotatePass,LoopSimplifyPass,MemCpyOptPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass