; LLVM IR from huawei-noah/bolt :: compute/tensor/src/cpu/x86/int8/avx (convolution_1x1_direct)

; 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.TensorDesc = type { i32, i32, i32, [20 x i32] }
%struct.ConvolutionParamSpec = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %union.ActivationSpec, i32, i32, i32, i32 }
%union.ActivationSpec = type { %struct.ClipParamSpec }
%struct.ClipParamSpec = type { float, float }
%struct.ActivationParamSpec = type { i32, [4 x float] }
%struct.ConvController = type { ptr, ptr, ptr, ptr, ptr, ptr, i64, i64, i64, ptr, i64, i64, i64, i64, i64, i64, i64, i64, ptr, i8, i64, i64, ptr }

@.str = external hidden unnamed_addr constant [20 x i8], align 1
@stdout = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [18 x i8], align 1
@__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.ocSizeArray = external hidden unnamed_addr constant [3 x i32], align 4
@__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.wSizeArray = external hidden unnamed_addr constant [3 x i32], align 4
@__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.kernel = external hidden unnamed_addr constant [3 x [3 x ptr]], align 16

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

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

146:                                              ; preds = %14
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 8 %3, i64 92, i1 false), !tbaa.struct !11
  %147 = call noundef i32 @_Z11tensor4dGet10TensorDescP8DataTypeP10DataFormatPjS4_S4_S4_(ptr noundef byval(%struct.TensorDesc) align 8 %46, ptr noundef %25, ptr noundef %28, ptr noundef %34, ptr noundef %35, ptr noundef %36, ptr noundef %37)
  store i32 %147, ptr %45, align 4, !tbaa !17
  %148 = load i32, ptr %45, align 4, !tbaa !17
  %149 = icmp ne i32 %148, 0
  br i1 %149, label %150, label %162

150:                                              ; preds = %146
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  %151 = call i64 (i64, ...) @syscall(i64 noundef 186) #8
  %152 = trunc i64 %151 to i32
  store i32 %152, ptr %47, align 4, !tbaa !9
  %153 = load i32, ptr %47, align 4, !tbaa !9
  %154 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %153)
  %155 = load ptr, ptr @stdout, align 8, !tbaa !5
  %156 = call i32 @fflush(ptr noundef %155)
  %157 = load i32, ptr %45, align 4, !tbaa !17
  %158 = call ptr @ee2str(i32 noundef %157)
  %159 = call i32 (ptr, ...) @printf(ptr noundef @.str.1, ptr noundef %158)
  %160 = load ptr, ptr @stdout, align 8, !tbaa !5
  %161 = call i32 @fflush(ptr noundef %160)
  call void @exit(i32 noundef 1) #9
  unreachable

162:                                              ; preds = %146
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %49, ptr align 8 %10, i64 92, i1 false), !tbaa.struct !11
  %163 = call noundef i32 @_Z11tensor4dGet10TensorDescP8DataTypeP10DataFormatPjS4_S4_S4_(ptr noundef byval(%struct.TensorDesc) align 8 %49, ptr noundef %26, ptr noundef %29, ptr noundef %38, ptr noundef %39, ptr noundef %40, ptr noundef %41)
  store i32 %163, ptr %48, align 4, !tbaa !17
  %164 = load i32, ptr %48, align 4, !tbaa !17
  %165 = icmp ne i32 %164, 0
  br i1 %165, label %166, label %178

166:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #8
  %167 = call i64 (i64, ...) @syscall(i64 noundef 186) #8
  %168 = trunc i64 %167 to i32
  store i32 %168, ptr %50, align 4, !tbaa !9
  %169 = load i32, ptr %50, align 4, !tbaa !9
  %170 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %169)
  %171 = load ptr, ptr @stdout, align 8, !tbaa !5
  %172 = call i32 @fflush(ptr noundef %171)
  %173 = load i32, ptr %48, align 4, !tbaa !17
  %174 = call ptr @ee2str(i32 noundef %173)
  %175 = call i32 (ptr, ...) @printf(ptr noundef @.str.1, ptr noundef %174)
  %176 = load ptr, ptr @stdout, align 8, !tbaa !5
  %177 = call i32 @fflush(ptr noundef %176)
  call void @exit(i32 noundef 1) #9
  unreachable

178:                                              ; preds = %162
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  %179 = load i32, ptr %27, align 4, !tbaa !14
  %180 = icmp eq i32 %179, 15
  br i1 %180, label %181, label %182

181:                                              ; preds = %178
  store i32 0, ptr %27, align 4, !tbaa !14
  br label %182

182:                                              ; preds = %181, %178
  %183 = load i32, ptr %28, align 4, !tbaa !14
  %184 = icmp ne i32 %183, 42
  br i1 %184, label %188, label %185

185:                                              ; preds = %182
  %186 = load i32, ptr %27, align 4, !tbaa !14
  %187 = icmp ne i32 %186, 2
  br i1 %187, label %188, label %204

188:                                              ; preds = %185, %182
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  store i32 2, ptr %51, align 4, !tbaa !17
  %189 = load i32, ptr %51, align 4, !tbaa !17
  %190 = icmp ne i32 %189, 0
  br i1 %190, label %191, label %203

191:                                              ; preds = %188
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #8
  %192 = call i64 (i64, ...) @syscall(i64 noundef 186) #8
  %193 = trunc i64 %192 to i32
  store i32 %193, ptr %52, align 4, !tbaa !9
  %194 = load i32, ptr %52, align 4, !tbaa !9
  %195 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %194)
  %196 = load ptr, ptr @stdout, align 8, !tbaa !5
  %197 = call i32 @fflush(ptr noundef %196)
  %198 = load i32, ptr %51, align 4, !tbaa !17
  %199 = call ptr @ee2str(i32 noundef %198)
  %200 = call i32 (ptr, ...) @printf(ptr noundef @.str.1, ptr noundef %199)
  %201 = load ptr, ptr @stdout, align 8, !tbaa !5
  %202 = call i32 @fflush(ptr noundef %201)
  call void @exit(i32 noundef 1) #9
  unreachable

203:                                              ; preds = %188
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  br label %204

204:                                              ; preds = %203, %185
  call void @llvm.lifetime.start.p0(i64 12, ptr %53) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %53, ptr align 4 @__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.ocSizeArray, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 12, ptr %54) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %54, ptr align 4 @__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.wSizeArray, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 72, ptr %55) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %55, ptr align 16 @__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.kernel, i64 72, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #8
  %205 = getelementptr inbounds %struct.ConvolutionParamSpec, ptr %5, i32 0, i32 5
  %206 = load i32, ptr %205, align 4, !tbaa !19
  store i32 %206, ptr %56, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #8
  %207 = getelementptr inbounds %struct.ConvolutionParamSpec, ptr %5, i32 0, i32 6
  %208 = load i32, ptr %207, align 8, !tbaa !24
  store i32 %208, ptr %57, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #8
  %209 = getelementptr inbounds %struct.ConvolutionParamSpec, ptr %5, i32 0, i32 9
  %210 = load i32, ptr %209, align 4, !tbaa !25
  store i32 %210, ptr %58, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #8
  %211 = getelementptr inbounds %struct.ConvolutionParamSpec, ptr %5, i32 0, i32 10
  %212 = load i32, ptr %211, align 8, !tbaa !26
  store i32 %212, ptr %59, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #8
  %213 = getelementptr inbounds %struct.ConvolutionParamSpec, ptr %5, i32 0, i32 11
  %214 = load i32, ptr %213, align 4, !tbaa !27
  store i32 %214, ptr %60, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #8
  %215 = getelementptr inbounds %struct.ConvolutionParamSpec, ptr %5, i32 0, i32 12
  %216 = load i32, ptr %215, align 8, !tbaa !28
  store i32 %216, ptr %61, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #8
  %217 = getelementptr inbounds %struct.ConvolutionParamSpec, ptr %5, i32 0, i32 15
  %218 = load i32, ptr %217, align 4, !tbaa !29
  store i32 %218, ptr %62, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #8
  %219 = getelementptr inbounds %struct.ConvolutionParamSpec, ptr %5, i32 0, i32 16
  %220 = load i32, ptr %219, align 8, !tbaa !30
  store i32 %220, ptr %63, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #8
  %221 = load i32, ptr %32, align 4, !tbaa !9
  %222 = load i32, ptr %56, align 4, !tbaa !9
  %223 = add i32 %221, %222
  %224 = sub i32 %223, 1
  %225 = load i32, ptr %56, align 4, !tbaa !9
  %226 = udiv i32 %224, %225
  store i32 %226, ptr %64, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #8
  %227 = load i32, ptr %33, align 4, !tbaa !9
  %228 = load i32, ptr %57, align 4, !tbaa !9
  %229 = add i32 %227, %228
  %230 = sub i32 %229, 1
  %231 = load i32, ptr %57, align 4, !tbaa !9
  %232 = udiv i32 %230, %231
  store i32 %232, ptr %65, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #8
  %233 = load i32, ptr %40, align 4, !tbaa !9
  %234 = load i32, ptr %41, align 4, !tbaa !9
  %235 = mul i32 %233, %234
  store i32 %235, ptr %66, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #8
  %236 = load ptr, ptr %22, align 8, !tbaa !5
  store ptr %236, ptr %67, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 184, ptr %68) #8
  %237 = load i32, ptr %40, align 4, !tbaa !9
  %238 = load i32, ptr %41, align 4, !tbaa !9
  %239 = mul i32 %237, %238
  %240 = mul i32 %239, 8
  %241 = mul i32 %240, 4
  %242 = zext i32 %241 to i64
  %243 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 12
  store i64 %242, ptr %243, align 8, !tbaa !31
  %244 = load i32, ptr %63, align 4, !tbaa !9
  %245 = mul i32 %244, 8
  %246 = zext i32 %245 to i64
  %247 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 10
  store i64 %246, ptr %247, align 8, !tbaa !35
  %248 = load i32, ptr %65, align 4, !tbaa !9
  %249 = load i32, ptr %37, align 4, !tbaa !9
  %250 = load i32, ptr %63, align 4, !tbaa !9
  %251 = mul i32 %249, %250
  %252 = sub i32 %248, %251
  %253 = load i32, ptr %62, align 4, !tbaa !9
  %254 = sub i32 %253, 1
  %255 = load i32, ptr %65, align 4, !tbaa !9
  %256 = mul i32 %254, %255
  %257 = add i32 %252, %256
  %258 = mul i32 %257, 8
  %259 = zext i32 %258 to i64
  %260 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 11
  store i64 %259, ptr %260, align 8, !tbaa !36
  %261 = load i32, ptr %64, align 4, !tbaa !9
  %262 = load i32, ptr %65, align 4, !tbaa !9
  %263 = mul i32 %261, %262
  %264 = mul i32 %263, 8
  %265 = zext i32 %264 to i64
  %266 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 14
  store i64 %265, ptr %266, align 8, !tbaa !37
  %267 = load i32, ptr %37, align 4, !tbaa !9
  %268 = zext i32 %267 to i64
  %269 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 7
  store i64 %268, ptr %269, align 8, !tbaa !38
  %270 = load i32, ptr %36, align 4, !tbaa !9
  %271 = zext i32 %270 to i64
  %272 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 8
  store i64 %271, ptr %272, align 8, !tbaa !39
  %273 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 18
  store ptr null, ptr %273, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #8
  store i32 24, ptr %69, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #8
  %274 = load ptr, ptr %23, align 8, !tbaa !5
  store ptr %274, ptr %70, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #8
  %275 = load ptr, ptr %23, align 8, !tbaa !5
  %276 = getelementptr inbounds float, ptr %275, i64 1
  store ptr %276, ptr %71, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #8
  %277 = load ptr, ptr %23, align 8, !tbaa !5
  %278 = getelementptr inbounds float, ptr %277, i64 2
  store ptr %278, ptr %72, align 8, !tbaa !5
  %279 = load i32, ptr %24, align 4, !tbaa !12
  %280 = icmp ne i32 %279, 10
  br i1 %280, label %281, label %307

281:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 92, ptr %73) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %73, ptr align 8 %0, i64 92, i1 false), !tbaa.struct !11
  %282 = getelementptr inbounds %struct.TensorDesc, ptr %73, i32 0, i32 0
  store i32 10, ptr %282, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %75, ptr align 8 %0, i64 92, i1 false), !tbaa.struct !11
  %283 = load ptr, ptr %16, align 8, !tbaa !5
  %284 = load ptr, ptr %21, align 8, !tbaa !5
  %285 = load ptr, ptr %70, align 8, !tbaa !5
  %286 = call noundef i32 @_Z12quantize_x8610TensorDescPKvPS_PvPfi(ptr noundef byval(%struct.TensorDesc) align 8 %75, ptr noundef %283, ptr noundef %73, ptr noundef %284, ptr noundef %285, i32 noundef 0)
  store i32 %286, ptr %74, align 4, !tbaa !17
  %287 = load i32, ptr %74, align 4, !tbaa !17
  %288 = icmp ne i32 %287, 0
  br i1 %288, label %289, label %301

289:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #8
  %290 = call i64 (i64, ...) @syscall(i64 noundef 186) #8
  %291 = trunc i64 %290 to i32
  store i32 %291, ptr %76, align 4, !tbaa !9
  %292 = load i32, ptr %76, align 4, !tbaa !9
  %293 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %292)
  %294 = load ptr, ptr @stdout, align 8, !tbaa !5
  %295 = call i32 @fflush(ptr noundef %294)
  %296 = load i32, ptr %74, align 4, !tbaa !17
  %297 = call ptr @ee2str(i32 noundef %296)
  %298 = call i32 (ptr, ...) @printf(ptr noundef @.str.1, ptr noundef %297)
  %299 = load ptr, ptr @stdout, align 8, !tbaa !5
  %300 = call i32 @fflush(ptr noundef %299)
  call void @exit(i32 noundef 1) #9
  unreachable

301:                                              ; preds = %281
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #8
  %302 = load ptr, ptr %21, align 8, !tbaa !5
  store ptr %302, ptr %16, align 8, !tbaa !5
  %303 = load ptr, ptr %21, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %77, ptr align 4 %73, i64 92, i1 false), !tbaa.struct !11
  %304 = call noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %77)
  %305 = zext i32 %304 to i64
  %306 = getelementptr inbounds i8, ptr %303, i64 %305
  store ptr %306, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 92, ptr %73) #8
  br label %307

307:                                              ; preds = %301, %204
  %308 = load ptr, ptr %70, align 8, !tbaa !5
  %309 = getelementptr inbounds float, ptr %308, i64 0
  %310 = load float, ptr %309, align 4, !tbaa !43
  %311 = load ptr, ptr %72, align 8, !tbaa !5
  %312 = getelementptr inbounds float, ptr %311, i64 0
  %313 = load float, ptr %312, align 4, !tbaa !43
  %314 = fmul float %310, %313
  %315 = load ptr, ptr %71, align 8, !tbaa !5
  store float %314, ptr %315, align 4, !tbaa !43
  %316 = load i32, ptr %26, align 4, !tbaa !12
  %317 = icmp ne i32 %316, 6
  br i1 %317, label %318, label %330

318:                                              ; preds = %307
  %319 = load i32, ptr %26, align 4, !tbaa !12
  %320 = icmp ne i32 %319, 3
  br i1 %320, label %321, label %330

321:                                              ; preds = %318
  %322 = load ptr, ptr %21, align 8, !tbaa !5
  store ptr %322, ptr %67, align 8, !tbaa !5
  %323 = load ptr, ptr %21, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %78, ptr align 8 %10, i64 92, i1 false), !tbaa.struct !11
  %324 = call noundef i32 @_Z17tensorNumElements10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %78)
  %325 = call noundef i32 @_Z7bytesOf8DataType(i32 noundef 3)
  %326 = mul i32 %324, %325
  %327 = zext i32 %326 to i64
  %328 = getelementptr inbounds i8, ptr %323, i64 %327
  store ptr %328, ptr %21, align 8, !tbaa !5
  %329 = getelementptr inbounds %struct.TensorDesc, ptr %10, i32 0, i32 0
  store i32 3, ptr %329, align 8, !tbaa !41
  br label %330

330:                                              ; preds = %321, %318, %307
  %331 = load ptr, ptr %17, align 8, !tbaa !5
  %332 = icmp ne ptr %331, null
  br i1 %332, label %333, label %335

333:                                              ; preds = %330
  %334 = getelementptr inbounds %struct.TensorDesc, ptr %10, i32 0, i32 0
  store i32 6, ptr %334, align 8, !tbaa !41
  br label %335

335:                                              ; preds = %333, %330
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #8
  store ptr null, ptr %79, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #8
  store float 0.000000e+00, ptr %80, align 4, !tbaa !43
  %336 = load ptr, ptr %23, align 8, !tbaa !5
  %337 = icmp ne ptr %336, null
  br i1 %337, label %338, label %346

338:                                              ; preds = %335
  %339 = getelementptr inbounds %struct.TensorDesc, ptr %10, i32 0, i32 0
  %340 = load i32, ptr %339, align 8, !tbaa !41
  %341 = icmp eq i32 %340, 6
  br i1 %341, label %342, label %346

342:                                              ; preds = %338
  %343 = load ptr, ptr %71, align 8, !tbaa !5
  %344 = load float, ptr %343, align 4, !tbaa !43
  %345 = fdiv float 1.000000e+00, %344
  store float %345, ptr %80, align 4, !tbaa !43
  store ptr %80, ptr %79, align 8, !tbaa !5
  br label %346

346:                                              ; preds = %342, %338, %335
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #8
  %347 = load ptr, ptr %21, align 8, !tbaa !5
  store ptr %347, ptr %81, align 8, !tbaa !5
  %348 = load ptr, ptr %21, align 8, !tbaa !5
  %349 = load i32, ptr %39, align 4, !tbaa !9
  %350 = call noundef i32 @_Z7bytesOf8DataType(i32 noundef 3)
  %351 = mul i32 %349, %350
  %352 = zext i32 %351 to i64
  %353 = getelementptr inbounds i8, ptr %348, i64 %352
  store ptr %353, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #8
  %354 = load ptr, ptr %19, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %83, ptr align 8 %6, i64 92, i1 false), !tbaa.struct !11
  %355 = load ptr, ptr %18, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %84, ptr align 8 %3, i64 92, i1 false), !tbaa.struct !11
  %356 = load ptr, ptr %71, align 8, !tbaa !5
  %357 = load ptr, ptr %81, align 8, !tbaa !5
  %358 = call noundef i32 @_Z21quantize_bias_offsetCPKv10TensorDesc8DataTypeS0_S1_PKfPv(ptr noundef %354, ptr noundef byval(%struct.TensorDesc) align 8 %83, i32 noundef 3, ptr noundef %355, ptr noundef byval(%struct.TensorDesc) align 8 %84, ptr noundef %356, ptr noundef %357)
  store i32 %358, ptr %82, align 4, !tbaa !17
  %359 = load i32, ptr %82, align 4, !tbaa !17
  %360 = icmp ne i32 %359, 0
  br i1 %360, label %361, label %373

361:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #8
  %362 = call i64 (i64, ...) @syscall(i64 noundef 186) #8
  %363 = trunc i64 %362 to i32
  store i32 %363, ptr %85, align 4, !tbaa !9
  %364 = load i32, ptr %85, align 4, !tbaa !9
  %365 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %364)
  %366 = load ptr, ptr @stdout, align 8, !tbaa !5
  %367 = call i32 @fflush(ptr noundef %366)
  %368 = load i32, ptr %82, align 4, !tbaa !17
  %369 = call ptr @ee2str(i32 noundef %368)
  %370 = call i32 (ptr, ...) @printf(ptr noundef @.str.1, ptr noundef %369)
  %371 = load ptr, ptr @stdout, align 8, !tbaa !5
  %372 = call i32 @fflush(ptr noundef %371)
  call void @exit(i32 noundef 1) #9
  unreachable

373:                                              ; preds = %346
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #8
  %374 = load i32, ptr %39, align 4, !tbaa !9
  %375 = mul i32 %374, 4
  %376 = load ptr, ptr %18, align 8, !tbaa !5
  %377 = zext i32 %375 to i64
  %378 = getelementptr inbounds i8, ptr %376, i64 %377
  store ptr %378, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #8
  %379 = load ptr, ptr %21, align 8, !tbaa !5
  store ptr %379, ptr %86, align 8, !tbaa !5
  %380 = load i32, ptr %58, align 4, !tbaa !9
  %381 = icmp ugt i32 %380, 0
  br i1 %381, label %391, label %382

382:                                              ; preds = %373
  %383 = load i32, ptr %59, align 4, !tbaa !9
  %384 = icmp ugt i32 %383, 0
  br i1 %384, label %391, label %385

385:                                              ; preds = %382
  %386 = load i32, ptr %60, align 4, !tbaa !9
  %387 = icmp ugt i32 %386, 0
  br i1 %387, label %391, label %388

388:                                              ; preds = %385
  %389 = load i32, ptr %61, align 4, !tbaa !9
  %390 = icmp ugt i32 %389, 0
  br i1 %390, label %391, label %406

391:                                              ; preds = %388, %385, %382, %373
  %392 = load ptr, ptr %19, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %87, ptr align 8 %6, i64 92, i1 false), !tbaa.struct !11
  %393 = getelementptr inbounds %struct.TensorDesc, ptr %10, i32 0, i32 0
  %394 = load i32, ptr %393, align 8, !tbaa !41
  %395 = load ptr, ptr %86, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct.ActivationParamSpec, ptr %13, i32 0, i32 0
  %397 = load i32, ptr %396, align 8, !tbaa !45
  %398 = load ptr, ptr %71, align 8, !tbaa !5
  %399 = load float, ptr %398, align 4, !tbaa !43
  call void @_Z26getActivatedBiasForPaddingPKf10TensorDesc8DataTypePv14ActivationModef(ptr noundef %392, ptr noundef byval(%struct.TensorDesc) align 8 %87, i32 noundef %394, ptr noundef %395, i32 noundef %397, float noundef %399)
  %400 = load ptr, ptr %21, align 8, !tbaa !5
  %401 = load i32, ptr %39, align 4, !tbaa !9
  %402 = call noundef i32 @_Z7bytesOf8DataType(i32 noundef 6)
  %403 = mul i32 %401, %402
  %404 = zext i32 %403 to i64
  %405 = getelementptr inbounds i8, ptr %400, i64 %404
  store ptr %405, ptr %21, align 8, !tbaa !5
  br label %406

406:                                              ; preds = %391, %388
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #8
  %407 = getelementptr inbounds %struct.TensorDesc, ptr %10, i32 0, i32 0
  %408 = load i32, ptr %407, align 8, !tbaa !41
  %409 = call noundef i32 @_Z7bytesOf8DataType(i32 noundef %408)
  store i32 %409, ptr %88, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #8
  %410 = load ptr, ptr %21, align 8, !tbaa !5
  store ptr %410, ptr %89, align 8, !tbaa !5
  %411 = load i32, ptr %27, align 4, !tbaa !14
  %412 = icmp ne i32 %411, 2
  br i1 %412, label %413, label %422

413:                                              ; preds = %406
  %414 = load ptr, ptr %21, align 8, !tbaa !5
  %415 = load i32, ptr %31, align 4, !tbaa !9
  %416 = load i32, ptr %32, align 4, !tbaa !9
  %417 = mul i32 %415, %416
  %418 = load i32, ptr %33, align 4, !tbaa !9
  %419 = mul i32 %417, %418
  %420 = zext i32 %419 to i64
  %421 = getelementptr inbounds i8, ptr %414, i64 %420
  store ptr %421, ptr %21, align 8, !tbaa !5
  br label %422

422:                                              ; preds = %413, %406
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #8
  %423 = load ptr, ptr %21, align 8, !tbaa !5
  store ptr %423, ptr %90, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #8
  store i32 0, ptr %91, align 4, !tbaa !9
  br label %424

424:                                              ; preds = %1068, %422
  %425 = load i32, ptr %91, align 4, !tbaa !9
  %426 = load i32, ptr %30, align 4, !tbaa !9
  %427 = icmp ult i32 %425, %426
  br i1 %427, label %429, label %428

428:                                              ; preds = %424
  store i32 2, ptr %92, align 4
  br label %1071

429:                                              ; preds = %424
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #8
  %430 = load ptr, ptr %16, align 8, !tbaa !5
  %431 = load i32, ptr %91, align 4, !tbaa !9
  %432 = load i32, ptr %31, align 4, !tbaa !9
  %433 = mul i32 %431, %432
  %434 = load i32, ptr %32, align 4, !tbaa !9
  %435 = mul i32 %433, %434
  %436 = load i32, ptr %33, align 4, !tbaa !9
  %437 = mul i32 %435, %436
  %438 = zext i32 %437 to i64
  %439 = getelementptr inbounds i8, ptr %430, i64 %438
  store ptr %439, ptr %93, align 8, !tbaa !5
  %440 = load i32, ptr %27, align 4, !tbaa !14
  %441 = icmp eq i32 %440, 2
  br i1 %441, label %442, label %444

442:                                              ; preds = %429
  %443 = load ptr, ptr %93, align 8, !tbaa !5
  store ptr %443, ptr %89, align 8, !tbaa !5
  br label %445

444:                                              ; preds = %429
  store i32 51, ptr %15, align 4
  store i32 1, ptr %92, align 4
  br label %1065

445:                                              ; preds = %442
  %446 = load i32, ptr %56, align 4, !tbaa !9
  %447 = icmp ugt i32 %446, 1
  br i1 %447, label %451, label %448

448:                                              ; preds = %445
  %449 = load i32, ptr %57, align 4, !tbaa !9
  %450 = icmp ugt i32 %449, 1
  br i1 %450, label %451, label %522

451:                                              ; preds = %448, %445
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #8
  %452 = load i32, ptr %31, align 4, !tbaa !9
  %453 = udiv i32 %452, 8
  store i32 %453, ptr %94, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #8
  store i32 0, ptr %95, align 4, !tbaa !9
  br label %454

454:                                              ; preds = %518, %451
  %455 = load i32, ptr %95, align 4, !tbaa !9
  %456 = load i32, ptr %64, align 4, !tbaa !9
  %457 = load i32, ptr %94, align 4, !tbaa !9
  %458 = mul i32 %456, %457
  %459 = icmp ult i32 %455, %458
  br i1 %459, label %461, label %460

460:                                              ; preds = %454
  store i32 5, ptr %92, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #8
  br label %521

461:                                              ; preds = %454
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #8
  %462 = load i32, ptr %95, align 4, !tbaa !9
  %463 = load i32, ptr %64, align 4, !tbaa !9
  %464 = udiv i32 %462, %463
  store i32 %464, ptr %96, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #8
  %465 = load i32, ptr %95, align 4, !tbaa !9
  %466 = load i32, ptr %64, align 4, !tbaa !9
  %467 = urem i32 %465, %466
  store i32 %467, ptr %97, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #8
  store i32 0, ptr %98, align 4, !tbaa !9
  br label %468

468:                                              ; preds = %514, %461
  %469 = load i32, ptr %98, align 4, !tbaa !9
  %470 = load i32, ptr %65, align 4, !tbaa !9
  %471 = icmp ult i32 %469, %470
  br i1 %471, label %473, label %472

472:                                              ; preds = %468
  store i32 8, ptr %92, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #8
  br label %517

473:                                              ; preds = %468
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #8
  %474 = load i32, ptr %97, align 4, !tbaa !9
  %475 = load i32, ptr %56, align 4, !tbaa !9
  %476 = mul i32 %474, %475
  store i32 %476, ptr %99, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #8
  %477 = load i32, ptr %98, align 4, !tbaa !9
  %478 = load i32, ptr %57, align 4, !tbaa !9
  %479 = mul i32 %477, %478
  store i32 %479, ptr %100, align 4, !tbaa !9
  %480 = load ptr, ptr %90, align 8, !tbaa !5
  %481 = load i32, ptr %96, align 4, !tbaa !9
  %482 = load i32, ptr %64, align 4, !tbaa !9
  %483 = mul i32 %481, %482
  %484 = load i32, ptr %65, align 4, !tbaa !9
  %485 = mul i32 %483, %484
  %486 = mul i32 %485, 8
  %487 = zext i32 %486 to i64
  %488 = getelementptr inbounds i8, ptr %480, i64 %487
  %489 = load i32, ptr %97, align 4, !tbaa !9
  %490 = load i32, ptr %65, align 4, !tbaa !9
  %491 = mul i32 %489, %490
  %492 = load i32, ptr %98, align 4, !tbaa !9
  %493 = add i32 %491, %492
  %494 = mul i32 %493, 8
  %495 = zext i32 %494 to i64
  %496 = getelementptr inbounds i8, ptr %488, i64 %495
  %497 = load ptr, ptr %89, align 8, !tbaa !5
  %498 = load i32, ptr %96, align 4, !tbaa !9
  %499 = load i32, ptr %32, align 4, !tbaa !9
  %500 = mul i32 %498, %499
  %501 = load i32, ptr %33, align 4, !tbaa !9
  %502 = mul i32 %500, %501
  %503 = mul i32 %502, 8
  %504 = zext i32 %503 to i64
  %505 = getelementptr inbounds i8, ptr %497, i64 %504
  %506 = load i32, ptr %99, align 4, !tbaa !9
  %507 = load i32, ptr %33, align 4, !tbaa !9
  %508 = mul i32 %506, %507
  %509 = load i32, ptr %100, align 4, !tbaa !9
  %510 = add i32 %508, %509
  %511 = mul i32 %510, 8
  %512 = zext i32 %511 to i64
  %513 = getelementptr inbounds i8, ptr %505, i64 %512
  call void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %496, ptr noundef %513, i64 noundef 8)
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #8
  br label %514

514:                                              ; preds = %473
  %515 = load i32, ptr %98, align 4, !tbaa !9
  %516 = add i32 %515, 1
  store i32 %516, ptr %98, align 4, !tbaa !9
  br label %468, !llvm.loop !47

517:                                              ; preds = %472
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #8
  br label %518

518:                                              ; preds = %517
  %519 = load i32, ptr %95, align 4, !tbaa !9
  %520 = add i32 %519, 1
  store i32 %520, ptr %95, align 4, !tbaa !9
  br label %454, !llvm.loop !49

521:                                              ; preds = %460
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #8
  br label %524

522:                                              ; preds = %448
  %523 = load ptr, ptr %89, align 8, !tbaa !5
  store ptr %523, ptr %90, align 8, !tbaa !5
  br label %524

524:                                              ; preds = %522, %521
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #8
  store i32 0, ptr %101, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #8
  store i32 0, ptr %102, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #8
  store i32 0, ptr %103, align 4, !tbaa !9
  br label %525

525:                                              ; preds = %1060, %524
  %526 = load i32, ptr %103, align 4, !tbaa !9
  %527 = load i32, ptr %31, align 4, !tbaa !9
  %528 = icmp ult i32 %526, %527
  br i1 %528, label %530, label %529

529:                                              ; preds = %525
  store i32 11, ptr %92, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #8
  br label %1064

530:                                              ; preds = %525
  %531 = load i32, ptr %31, align 4, !tbaa !9
  %532 = load i32, ptr %103, align 4, !tbaa !9
  %533 = sub i32 %531, %532
  %534 = icmp ult i32 256, %533
  br i1 %534, label %535, label %536

535:                                              ; preds = %530
  br label %540

536:                                              ; preds = %530
  %537 = load i32, ptr %31, align 4, !tbaa !9
  %538 = load i32, ptr %103, align 4, !tbaa !9
  %539 = sub i32 %537, %538
  br label %540

540:                                              ; preds = %536, %535
  %541 = phi i32 [ 256, %535 ], [ %539, %536 ]
  store i32 %541, ptr %102, align 4, !tbaa !9
  %542 = load i32, ptr %103, align 4, !tbaa !9
  %543 = icmp ugt i32 %542, 0
  %544 = zext i1 %543 to i32
  %545 = load i32, ptr %101, align 4, !tbaa !9
  %546 = or i32 %545, %544
  store i32 %546, ptr %101, align 4, !tbaa !9
  %547 = load i32, ptr %103, align 4, !tbaa !9
  %548 = load i32, ptr %31, align 4, !tbaa !9
  %549 = load i32, ptr %102, align 4, !tbaa !9
  %550 = sub i32 %548, %549
  %551 = icmp eq i32 %547, %550
  br i1 %551, label %552, label %566

552:                                              ; preds = %540
  %553 = load ptr, ptr %17, align 8, !tbaa !5
  %554 = icmp ne ptr %553, null
  %555 = zext i1 %554 to i32
  %556 = shl i32 %555, 1
  %557 = load i32, ptr %101, align 4, !tbaa !9
  %558 = or i32 %557, %556
  store i32 %558, ptr %101, align 4, !tbaa !9
  %559 = getelementptr inbounds %struct.ActivationParamSpec, ptr %13, i32 0, i32 0
  %560 = load i32, ptr %559, align 8, !tbaa !45
  %561 = shl i32 %560, 2
  %562 = load i32, ptr %101, align 4, !tbaa !9
  %563 = or i32 %562, %561
  store i32 %563, ptr %101, align 4, !tbaa !9
  %564 = load ptr, ptr %79, align 8, !tbaa !5
  %565 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 18
  store ptr %564, ptr %565, align 8, !tbaa !40
  br label %566

566:                                              ; preds = %552, %540
  %567 = load i32, ptr %101, align 4, !tbaa !9
  %568 = zext i32 %567 to i64
  %569 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 13
  store i64 %568, ptr %569, align 8, !tbaa !50
  %570 = load i32, ptr %58, align 4, !tbaa !9
  %571 = icmp eq i32 %570, 0
  br i1 %571, label %572, label %779

572:                                              ; preds = %566
  %573 = load i32, ptr %59, align 4, !tbaa !9
  %574 = icmp eq i32 %573, 0
  br i1 %574, label %575, label %779

575:                                              ; preds = %572
  %576 = load i32, ptr %60, align 4, !tbaa !9
  %577 = icmp eq i32 %576, 0
  br i1 %577, label %578, label %779

578:                                              ; preds = %575
  %579 = load i32, ptr %61, align 4, !tbaa !9
  %580 = icmp eq i32 %579, 0
  br i1 %580, label %581, label %779

581:                                              ; preds = %578
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #8
  store i32 0, ptr %104, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #8
  store i32 0, ptr %105, align 4, !tbaa !9
  br label %582

582:                                              ; preds = %774, %581
  %583 = load i32, ptr %105, align 4, !tbaa !9
  %584 = load i32, ptr %66, align 4, !tbaa !9
  %585 = icmp ult i32 %583, %584
  br i1 %585, label %587, label %586

586:                                              ; preds = %582
  store i32 14, ptr %92, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #8
  br label %778

587:                                              ; preds = %582
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #8
  store i32 0, ptr %106, align 4, !tbaa !9
  %588 = load i32, ptr %66, align 4, !tbaa !9
  %589 = load i32, ptr %105, align 4, !tbaa !9
  %590 = sub i32 %588, %589
  %591 = icmp ult i32 768, %590
  br i1 %591, label %592, label %593

592:                                              ; preds = %587
  br label %597

593:                                              ; preds = %587
  %594 = load i32, ptr %66, align 4, !tbaa !9
  %595 = load i32, ptr %105, align 4, !tbaa !9
  %596 = sub i32 %594, %595
  br label %597

597:                                              ; preds = %593, %592
  %598 = phi i32 [ 768, %592 ], [ %596, %593 ]
  store i32 %598, ptr %104, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #8
  store i32 0, ptr %107, align 4, !tbaa !9
  br label %599

599:                                              ; preds = %769, %597
  %600 = load i32, ptr %107, align 4, !tbaa !9
  %601 = load i32, ptr %39, align 4, !tbaa !9
  %602 = icmp ult i32 %600, %601
  br i1 %602, label %604, label %603

603:                                              ; preds = %599
  store i32 17, ptr %92, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #8
  br label %773

604:                                              ; preds = %599
  %605 = load i32, ptr %69, align 4, !tbaa !9
  %606 = load i32, ptr %39, align 4, !tbaa !9
  %607 = load i32, ptr %107, align 4, !tbaa !9
  %608 = sub i32 %606, %607
  %609 = icmp ult i32 %605, %608
  br i1 %609, label %610, label %612

610:                                              ; preds = %604
  %611 = load i32, ptr %69, align 4, !tbaa !9
  br label %616

612:                                              ; preds = %604
  %613 = load i32, ptr %39, align 4, !tbaa !9
  %614 = load i32, ptr %107, align 4, !tbaa !9
  %615 = sub i32 %613, %614
  br label %616

616:                                              ; preds = %612, %610
  %617 = phi i32 [ %611, %610 ], [ %615, %612 ]
  store i32 %617, ptr %106, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #8
  %618 = load i32, ptr %106, align 4, !tbaa !9
  %619 = lshr i32 %618, 3
  %620 = sub i32 %619, 1
  store i32 %620, ptr %108, align 4, !tbaa !9
  %621 = load i32, ptr %108, align 4, !tbaa !9
  %622 = zext i32 %621 to i64
  %623 = getelementptr inbounds [3 x i32], ptr %53, i64 0, i64 %622
  %624 = load i32, ptr %623, align 4, !tbaa !9
  store i32 %624, ptr %106, align 4, !tbaa !9
  %625 = load ptr, ptr %81, align 8, !tbaa !5
  %626 = load i32, ptr %107, align 4, !tbaa !9
  %627 = zext i32 %626 to i64
  %628 = getelementptr inbounds i32, ptr %625, i64 %627
  %629 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 5
  store ptr %628, ptr %629, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #8
  %630 = load ptr, ptr %90, align 8, !tbaa !5
  %631 = load i32, ptr %103, align 4, !tbaa !9
  %632 = load i32, ptr %64, align 4, !tbaa !9
  %633 = mul i32 %631, %632
  %634 = load i32, ptr %65, align 4, !tbaa !9
  %635 = mul i32 %633, %634
  %636 = zext i32 %635 to i64
  %637 = getelementptr inbounds i8, ptr %630, i64 %636
  store ptr %637, ptr %109, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #8
  store i32 8, ptr %110, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #8
  %638 = load i32, ptr %108, align 4, !tbaa !9
  %639 = zext i32 %638 to i64
  %640 = getelementptr inbounds [3 x i32], ptr %54, i64 0, i64 %639
  %641 = load i32, ptr %640, align 4, !tbaa !9
  store i32 %641, ptr %111, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #8
  %642 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %642, ptr %112, align 4, !tbaa !9
  br label %643

643:                                              ; preds = %764, %616
  %644 = load i32, ptr %112, align 4, !tbaa !9
  %645 = load i32, ptr %105, align 4, !tbaa !9
  %646 = load i32, ptr %104, align 4, !tbaa !9
  %647 = add i32 %645, %646
  %648 = icmp ult i32 %644, %647
  br i1 %648, label %650, label %649

649:                                              ; preds = %643
  store i32 20, ptr %92, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #8
  br label %768

650:                                              ; preds = %643
  %651 = load i32, ptr %105, align 4, !tbaa !9
  %652 = load i32, ptr %104, align 4, !tbaa !9
  %653 = add i32 %651, %652
  %654 = load i32, ptr %112, align 4, !tbaa !9
  %655 = sub i32 %653, %654
  %656 = load i32, ptr %111, align 4, !tbaa !9
  %657 = icmp ult i32 %655, %656
  br i1 %657, label %658, label %664

658:                                              ; preds = %650
  %659 = load i32, ptr %105, align 4, !tbaa !9
  %660 = load i32, ptr %104, align 4, !tbaa !9
  %661 = add i32 %659, %660
  %662 = load i32, ptr %112, align 4, !tbaa !9
  %663 = sub i32 %661, %662
  br label %666

664:                                              ; preds = %650
  %665 = load i32, ptr %111, align 4, !tbaa !9
  br label %666

666:                                              ; preds = %664, %658
  %667 = phi i32 [ %663, %658 ], [ %665, %664 ]
  store i32 %667, ptr %110, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #8
  %668 = load i32, ptr %110, align 4, !tbaa !9
  %669 = mul i32 %668, 2
  %670 = load i32, ptr %111, align 4, !tbaa !9
  %671 = udiv i32 %669, %670
  store i32 %671, ptr %113, align 4, !tbaa !9
  %672 = load i32, ptr %113, align 4, !tbaa !9
  %673 = load i32, ptr %111, align 4, !tbaa !9
  %674 = mul i32 %672, %673
  %675 = udiv i32 %674, 2
  %676 = icmp ugt i32 %675, 1
  br i1 %676, label %677, label %682

677:                                              ; preds = %666
  %678 = load i32, ptr %113, align 4, !tbaa !9
  %679 = load i32, ptr %111, align 4, !tbaa !9
  %680 = mul i32 %678, %679
  %681 = udiv i32 %680, 2
  br label %683

682:                                              ; preds = %666
  br label %683

683:                                              ; preds = %682, %677
  %684 = phi i32 [ %681, %677 ], [ 1, %682 ]
  store i32 %684, ptr %110, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #8
  %685 = load i32, ptr %112, align 4, !tbaa !9
  %686 = load i32, ptr %41, align 4, !tbaa !9
  %687 = udiv i32 %685, %686
  store i32 %687, ptr %114, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #8
  %688 = load i32, ptr %112, align 4, !tbaa !9
  %689 = load i32, ptr %41, align 4, !tbaa !9
  %690 = urem i32 %688, %689
  store i32 %690, ptr %115, align 4, !tbaa !9
  %691 = load ptr, ptr %109, align 8, !tbaa !5
  %692 = load i32, ptr %114, align 4, !tbaa !9
  %693 = load i32, ptr %65, align 4, !tbaa !9
  %694 = mul i32 %692, %693
  %695 = mul i32 %694, 8
  %696 = zext i32 %695 to i64
  %697 = getelementptr inbounds i8, ptr %691, i64 %696
  %698 = load i32, ptr %115, align 4, !tbaa !9
  %699 = mul i32 %698, 8
  %700 = zext i32 %699 to i64
  %701 = getelementptr inbounds i8, ptr %697, i64 %700
  %702 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 0
  store ptr %701, ptr %702, align 8, !tbaa !52
  %703 = load ptr, ptr %67, align 8, !tbaa !5
  %704 = load i32, ptr %91, align 4, !tbaa !9
  %705 = load i32, ptr %39, align 4, !tbaa !9
  %706 = mul i32 %704, %705
  %707 = load i32, ptr %107, align 4, !tbaa !9
  %708 = add i32 %706, %707
  %709 = load i32, ptr %66, align 4, !tbaa !9
  %710 = mul i32 %708, %709
  %711 = load i32, ptr %112, align 4, !tbaa !9
  %712 = mul i32 %711, 8
  %713 = add i32 %710, %712
  %714 = load i32, ptr %88, align 4, !tbaa !9
  %715 = mul i32 %713, %714
  %716 = zext i32 %715 to i64
  %717 = getelementptr inbounds i8, ptr %703, i64 %716
  %718 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 2
  store ptr %717, ptr %718, align 8, !tbaa !53
  %719 = load ptr, ptr %17, align 8, !tbaa !5
  %720 = load i32, ptr %91, align 4, !tbaa !9
  %721 = load i32, ptr %39, align 4, !tbaa !9
  %722 = mul i32 %720, %721
  %723 = load i32, ptr %107, align 4, !tbaa !9
  %724 = add i32 %722, %723
  %725 = load i32, ptr %66, align 4, !tbaa !9
  %726 = mul i32 %724, %725
  %727 = zext i32 %726 to i64
  %728 = getelementptr inbounds float, ptr %719, i64 %727
  %729 = load i32, ptr %112, align 4, !tbaa !9
  %730 = mul i32 %729, 8
  %731 = zext i32 %730 to i64
  %732 = getelementptr inbounds float, ptr %728, i64 %731
  %733 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 3
  store ptr %732, ptr %733, align 8, !tbaa !54
  %734 = load ptr, ptr %18, align 8, !tbaa !5
  %735 = load i32, ptr %107, align 4, !tbaa !9
  %736 = load i32, ptr %31, align 4, !tbaa !9
  %737 = mul i32 %735, %736
  %738 = load i32, ptr %36, align 4, !tbaa !9
  %739 = mul i32 %737, %738
  %740 = load i32, ptr %37, align 4, !tbaa !9
  %741 = mul i32 %739, %740
  %742 = zext i32 %741 to i64
  %743 = getelementptr inbounds i8, ptr %734, i64 %742
  %744 = load i32, ptr %106, align 4, !tbaa !9
  %745 = load i32, ptr %103, align 4, !tbaa !9
  %746 = mul i32 %744, %745
  %747 = load i32, ptr %36, align 4, !tbaa !9
  %748 = mul i32 %746, %747
  %749 = load i32, ptr %37, align 4, !tbaa !9
  %750 = mul i32 %748, %749
  %751 = zext i32 %750 to i64
  %752 = getelementptr inbounds i8, ptr %743, i64 %751
  %753 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 1
  store ptr %752, ptr %753, align 8, !tbaa !55
  %754 = load i32, ptr %102, align 4, !tbaa !9
  %755 = zext i32 %754 to i64
  %756 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 6
  store i64 %755, ptr %756, align 8, !tbaa !56
  %757 = load i32, ptr %108, align 4, !tbaa !9
  %758 = zext i32 %757 to i64
  %759 = getelementptr inbounds [3 x [3 x ptr]], ptr %55, i64 0, i64 %758
  %760 = load i32, ptr %113, align 4, !tbaa !9
  %761 = zext i32 %760 to i64
  %762 = getelementptr inbounds [3 x ptr], ptr %759, i64 0, i64 %761
  %763 = load ptr, ptr %762, align 8, !tbaa !5
  call void %763(ptr noundef nonnull align 8 dereferenceable(184) %68)
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #8
  br label %764

764:                                              ; preds = %683
  %765 = load i32, ptr %110, align 4, !tbaa !9
  %766 = load i32, ptr %112, align 4, !tbaa !9
  %767 = add i32 %766, %765
  store i32 %767, ptr %112, align 4, !tbaa !9
  br label %643, !llvm.loop !57

768:                                              ; preds = %649
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #8
  br label %769

769:                                              ; preds = %768
  %770 = load i32, ptr %106, align 4, !tbaa !9
  %771 = load i32, ptr %107, align 4, !tbaa !9
  %772 = add i32 %771, %770
  store i32 %772, ptr %107, align 4, !tbaa !9
  br label %599, !llvm.loop !58

773:                                              ; preds = %603
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #8
  br label %774

774:                                              ; preds = %773
  %775 = load i32, ptr %104, align 4, !tbaa !9
  %776 = load i32, ptr %105, align 4, !tbaa !9
  %777 = add i32 %776, %775
  store i32 %777, ptr %105, align 4, !tbaa !9
  br label %582, !llvm.loop !59

778:                                              ; preds = %586
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #8
  br label %1059

779:                                              ; preds = %578, %575, %572, %566
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #8
  store i32 0, ptr %116, align 4, !tbaa !9
  br label %780

780:                                              ; preds = %1055, %779
  %781 = load i32, ptr %116, align 4, !tbaa !9
  %782 = load i32, ptr %40, align 4, !tbaa !9
  %783 = icmp ult i32 %781, %782
  br i1 %783, label %785, label %784

784:                                              ; preds = %780
  store i32 23, ptr %92, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #8
  br label %1058

785:                                              ; preds = %780
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #8
  store i32 0, ptr %117, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #8
  store i32 0, ptr %118, align 4, !tbaa !9
  br label %786

786:                                              ; preds = %1050, %785
  %787 = load i32, ptr %118, align 4, !tbaa !9
  %788 = load i32, ptr %39, align 4, !tbaa !9
  %789 = icmp ult i32 %787, %788
  br i1 %789, label %791, label %790

790:                                              ; preds = %786
  store i32 26, ptr %92, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #8
  br label %1054

791:                                              ; preds = %786
  %792 = load i32, ptr %69, align 4, !tbaa !9
  %793 = load i32, ptr %39, align 4, !tbaa !9
  %794 = load i32, ptr %118, align 4, !tbaa !9
  %795 = sub i32 %793, %794
  %796 = icmp ult i32 %792, %795
  br i1 %796, label %797, label %799

797:                                              ; preds = %791
  %798 = load i32, ptr %69, align 4, !tbaa !9
  br label %803

799:                                              ; preds = %791
  %800 = load i32, ptr %39, align 4, !tbaa !9
  %801 = load i32, ptr %118, align 4, !tbaa !9
  %802 = sub i32 %800, %801
  br label %803

803:                                              ; preds = %799, %797
  %804 = phi i32 [ %798, %797 ], [ %802, %799 ]
  store i32 %804, ptr %117, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #8
  %805 = load i32, ptr %117, align 4, !tbaa !9
  %806 = lshr i32 %805, 3
  %807 = sub i32 %806, 1
  store i32 %807, ptr %119, align 4, !tbaa !9
  %808 = load i32, ptr %119, align 4, !tbaa !9
  %809 = zext i32 %808 to i64
  %810 = getelementptr inbounds [3 x i32], ptr %53, i64 0, i64 %809
  %811 = load i32, ptr %810, align 4, !tbaa !9
  store i32 %811, ptr %117, align 4, !tbaa !9
  %812 = load ptr, ptr %81, align 8, !tbaa !5
  %813 = load i32, ptr %118, align 4, !tbaa !9
  %814 = zext i32 %813 to i64
  %815 = getelementptr inbounds i32, ptr %812, i64 %814
  %816 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 5
  store ptr %815, ptr %816, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #8
  %817 = load ptr, ptr %90, align 8, !tbaa !5
  %818 = load i32, ptr %103, align 4, !tbaa !9
  %819 = load i32, ptr %64, align 4, !tbaa !9
  %820 = mul i32 %818, %819
  %821 = load i32, ptr %65, align 4, !tbaa !9
  %822 = mul i32 %820, %821
  %823 = zext i32 %822 to i64
  %824 = getelementptr inbounds i8, ptr %817, i64 %823
  store ptr %824, ptr %120, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #8
  store i32 8, ptr %121, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #8
  %825 = load i32, ptr %119, align 4, !tbaa !9
  %826 = zext i32 %825 to i64
  %827 = getelementptr inbounds [3 x i32], ptr %54, i64 0, i64 %826
  %828 = load i32, ptr %827, align 4, !tbaa !9
  store i32 %828, ptr %122, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #8
  store i32 0, ptr %123, align 4, !tbaa !9
  br label %829

829:                                              ; preds = %1045, %803
  %830 = load i32, ptr %123, align 4, !tbaa !9
  %831 = load i32, ptr %41, align 4, !tbaa !9
  %832 = icmp ult i32 %830, %831
  br i1 %832, label %834, label %833

833:                                              ; preds = %829
  store i32 29, ptr %92, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #8
  br label %1049

834:                                              ; preds = %829
  store i32 1, ptr %121, align 4, !tbaa !9
  %835 = load ptr, ptr %67, align 8, !tbaa !5
  %836 = load i32, ptr %91, align 4, !tbaa !9
  %837 = load i32, ptr %39, align 4, !tbaa !9
  %838 = mul i32 %836, %837
  %839 = load i32, ptr %118, align 4, !tbaa !9
  %840 = add i32 %838, %839
  %841 = load i32, ptr %66, align 4, !tbaa !9
  %842 = mul i32 %840, %841
  %843 = load i32, ptr %116, align 4, !tbaa !9
  %844 = load i32, ptr %41, align 4, !tbaa !9
  %845 = mul i32 %843, %844
  %846 = load i32, ptr %123, align 4, !tbaa !9
  %847 = add i32 %845, %846
  %848 = mul i32 %847, 8
  %849 = add i32 %842, %848
  %850 = load i32, ptr %88, align 4, !tbaa !9
  %851 = mul i32 %849, %850
  %852 = zext i32 %851 to i64
  %853 = getelementptr inbounds i8, ptr %835, i64 %852
  %854 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 2
  store ptr %853, ptr %854, align 8, !tbaa !53
  %855 = load ptr, ptr %17, align 8, !tbaa !5
  %856 = load i32, ptr %91, align 4, !tbaa !9
  %857 = load i32, ptr %39, align 4, !tbaa !9
  %858 = mul i32 %856, %857
  %859 = load i32, ptr %118, align 4, !tbaa !9
  %860 = add i32 %858, %859
  %861 = load i32, ptr %66, align 4, !tbaa !9
  %862 = mul i32 %860, %861
  %863 = load i32, ptr %116, align 4, !tbaa !9
  %864 = load i32, ptr %41, align 4, !tbaa !9
  %865 = mul i32 %863, %864
  %866 = load i32, ptr %123, align 4, !tbaa !9
  %867 = add i32 %865, %866
  %868 = mul i32 %867, 8
  %869 = add i32 %862, %868
  %870 = load i32, ptr %88, align 4, !tbaa !9
  %871 = mul i32 %869, %870
  %872 = zext i32 %871 to i64
  %873 = getelementptr inbounds float, ptr %855, i64 %872
  %874 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 3
  store ptr %873, ptr %874, align 8, !tbaa !54
  %875 = load i32, ptr %116, align 4, !tbaa !9
  %876 = load i32, ptr %58, align 4, !tbaa !9
  %877 = icmp ult i32 %875, %876
  br i1 %877, label %894, label %878

878:                                              ; preds = %834
  %879 = load i32, ptr %116, align 4, !tbaa !9
  %880 = load i32, ptr %64, align 4, !tbaa !9
  %881 = load i32, ptr %58, align 4, !tbaa !9
  %882 = add i32 %880, %881
  %883 = icmp uge i32 %879, %882
  br i1 %883, label %894, label %884

884:                                              ; preds = %878
  %885 = load i32, ptr %123, align 4, !tbaa !9
  %886 = load i32, ptr %60, align 4, !tbaa !9
  %887 = icmp ult i32 %885, %886
  br i1 %887, label %894, label %888

888:                                              ; preds = %884
  %889 = load i32, ptr %123, align 4, !tbaa !9
  %890 = load i32, ptr %60, align 4, !tbaa !9
  %891 = load i32, ptr %65, align 4, !tbaa !9
  %892 = add i32 %890, %891
  %893 = icmp uge i32 %889, %892
  br i1 %893, label %894, label %964

894:                                              ; preds = %888, %884, %878, %834
  %895 = load i32, ptr %101, align 4, !tbaa !9
  %896 = and i32 %895, 2
  %897 = icmp ne i32 %896, 0
  br i1 %897, label %963, label %898

898:                                              ; preds = %894
  %899 = load i32, ptr %103, align 4, !tbaa !9
  %900 = load i32, ptr %31, align 4, !tbaa !9
  %901 = load i32, ptr %102, align 4, !tbaa !9
  %902 = sub i32 %900, %901
  %903 = icmp eq i32 %899, %902
  br i1 %903, label %904, label %963

904:                                              ; preds = %898
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #8
  store i32 0, ptr %124, align 4, !tbaa !9
  store i32 0, ptr %124, align 4, !tbaa !9
  br label %905

905:                                              ; preds = %931, %904
  %906 = load i32, ptr %124, align 4, !tbaa !9
  %907 = load i32, ptr %117, align 4, !tbaa !9
  %908 = add nsw i32 %907, 1
  %909 = sub nsw i32 %908, 8
  %910 = icmp slt i32 %906, %909
  br i1 %910, label %911, label %934

911:                                              ; preds = %905
  %912 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 2
  %913 = load ptr, ptr %912, align 8, !tbaa !53
  %914 = load i32, ptr %66, align 4, !tbaa !9
  %915 = load i32, ptr %124, align 4, !tbaa !9
  %916 = mul i32 %914, %915
  %917 = load i32, ptr %88, align 4, !tbaa !9
  %918 = mul i32 %916, %917
  %919 = zext i32 %918 to i64
  %920 = getelementptr inbounds i8, ptr %913, i64 %919
  %921 = load ptr, ptr %86, align 8, !tbaa !5
  %922 = load i32, ptr %124, align 4, !tbaa !9
  %923 = sext i32 %922 to i64
  %924 = getelementptr inbounds float, ptr %921, i64 %923
  %925 = load i32, ptr %118, align 4, !tbaa !9
  %926 = zext i32 %925 to i64
  %927 = getelementptr inbounds float, ptr %924, i64 %926
  %928 = load i32, ptr %88, align 4, !tbaa !9
  %929 = mul i32 8, %928
  %930 = zext i32 %929 to i64
  call void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %920, ptr noundef %927, i64 noundef %930)
  br label %931

931:                                              ; preds = %911
  %932 = load i32, ptr %124, align 4, !tbaa !9
  %933 = add nsw i32 %932, 8
  store i32 %933, ptr %124, align 4, !tbaa !9
  br label %905, !llvm.loop !60

934:                                              ; preds = %905
  br label %935

935:                                              ; preds = %959, %934
  %936 = load i32, ptr %124, align 4, !tbaa !9
  %937 = load i32, ptr %117, align 4, !tbaa !9
  %938 = icmp slt i32 %936, %937
  br i1 %938, label %939, label %962

939:                                              ; preds = %935
  %940 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 2
  %941 = load ptr, ptr %940, align 8, !tbaa !53
  %942 = load i32, ptr %66, align 4, !tbaa !9
  %943 = load i32, ptr %124, align 4, !tbaa !9
  %944 = mul i32 %942, %943
  %945 = load i32, ptr %88, align 4, !tbaa !9
  %946 = mul i32 %944, %945
  %947 = zext i32 %946 to i64
  %948 = getelementptr inbounds i8, ptr %941, i64 %947
  %949 = load ptr, ptr %86, align 8, !tbaa !5
  %950 = load i32, ptr %124, align 4, !tbaa !9
  %951 = sext i32 %950 to i64
  %952 = getelementptr inbounds float, ptr %949, i64 %951
  %953 = load i32, ptr %118, align 4, !tbaa !9
  %954 = zext i32 %953 to i64
  %955 = getelementptr inbounds float, ptr %952, i64 %954
  %956 = load i32, ptr %88, align 4, !tbaa !9
  %957 = mul i32 8, %956
  %958 = zext i32 %957 to i64
  call void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %948, ptr noundef %955, i64 noundef %958)
  br label %959

959:                                              ; preds = %939
  %960 = load i32, ptr %124, align 4, !tbaa !9
  %961 = add nsw i32 %960, 8
  store i32 %961, ptr %124, align 4, !tbaa !9
  br label %935, !llvm.loop !61

962:                                              ; preds = %935
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #8
  br label %963

963:                                              ; preds = %962, %898, %894
  br label %1045

964:                                              ; preds = %888
  %965 = load i32, ptr %65, align 4, !tbaa !9
  %966 = load i32, ptr %123, align 4, !tbaa !9
  %967 = load i32, ptr %60, align 4, !tbaa !9
  %968 = sub i32 %966, %967
  %969 = sub i32 %965, %968
  %970 = load i32, ptr %122, align 4, !tbaa !9
  %971 = icmp ult i32 %969, %970
  br i1 %971, label %972, label %978

972:                                              ; preds = %964
  %973 = load i32, ptr %65, align 4, !tbaa !9
  %974 = load i32, ptr %123, align 4, !tbaa !9
  %975 = load i32, ptr %60, align 4, !tbaa !9
  %976 = sub i32 %974, %975
  %977 = sub i32 %973, %976
  br label %980

978:                                              ; preds = %964
  %979 = load i32, ptr %122, align 4, !tbaa !9
  br label %980

980:                                              ; preds = %978, %972
  %981 = phi i32 [ %977, %972 ], [ %979, %978 ]
  store i32 %981, ptr %121, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #8
  %982 = load i32, ptr %121, align 4, !tbaa !9
  %983 = mul i32 %982, 2
  %984 = load i32, ptr %122, align 4, !tbaa !9
  %985 = udiv i32 %983, %984
  store i32 %985, ptr %125, align 4, !tbaa !9
  %986 = load i32, ptr %125, align 4, !tbaa !9
  %987 = load i32, ptr %122, align 4, !tbaa !9
  %988 = mul i32 %986, %987
  %989 = udiv i32 %988, 2
  %990 = icmp ugt i32 %989, 1
  br i1 %990, label %991, label %996

991:                                              ; preds = %980
  %992 = load i32, ptr %125, align 4, !tbaa !9
  %993 = load i32, ptr %122, align 4, !tbaa !9
  %994 = mul i32 %992, %993
  %995 = udiv i32 %994, 2
  br label %997

996:                                              ; preds = %980
  br label %997

997:                                              ; preds = %996, %991
  %998 = phi i32 [ %995, %991 ], [ 1, %996 ]
  store i32 %998, ptr %121, align 4, !tbaa !9
  %999 = load ptr, ptr %120, align 8, !tbaa !5
  %1000 = load i32, ptr %116, align 4, !tbaa !9
  %1001 = load i32, ptr %58, align 4, !tbaa !9
  %1002 = sub i32 %1000, %1001
  %1003 = load i32, ptr %65, align 4, !tbaa !9
  %1004 = mul i32 %1002, %1003
  %1005 = mul i32 %1004, 8
  %1006 = zext i32 %1005 to i64
  %1007 = getelementptr inbounds i8, ptr %999, i64 %1006
  %1008 = load i32, ptr %123, align 4, !tbaa !9
  %1009 = load i32, ptr %60, align 4, !tbaa !9
  %1010 = sub i32 %1008, %1009
  %1011 = mul i32 %1010, 8
  %1012 = zext i32 %1011 to i64
  %1013 = getelementptr inbounds i8, ptr %1007, i64 %1012
  %1014 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 0
  store ptr %1013, ptr %1014, align 8, !tbaa !52
  %1015 = load ptr, ptr %18, align 8, !tbaa !5
  %1016 = load i32, ptr %118, align 4, !tbaa !9
  %1017 = load i32, ptr %31, align 4, !tbaa !9
  %1018 = mul i32 %1016, %1017
  %1019 = load i32, ptr %36, align 4, !tbaa !9
  %1020 = mul i32 %1018, %1019
  %1021 = load i32, ptr %37, align 4, !tbaa !9
  %1022 = mul i32 %1020, %1021
  %1023 = zext i32 %1022 to i64
  %1024 = getelementptr inbounds i8, ptr %1015, i64 %1023
  %1025 = load i32, ptr %117, align 4, !tbaa !9
  %1026 = load i32, ptr %103, align 4, !tbaa !9
  %1027 = mul i32 %1025, %1026
  %1028 = load i32, ptr %36, align 4, !tbaa !9
  %1029 = mul i32 %1027, %1028
  %1030 = load i32, ptr %37, align 4, !tbaa !9
  %1031 = mul i32 %1029, %1030
  %1032 = zext i32 %1031 to i64
  %1033 = getelementptr inbounds i8, ptr %1024, i64 %1032
  %1034 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 1
  store ptr %1033, ptr %1034, align 8, !tbaa !55
  %1035 = load i32, ptr %102, align 4, !tbaa !9
  %1036 = zext i32 %1035 to i64
  %1037 = getelementptr inbounds %struct.ConvController, ptr %68, i32 0, i32 6
  store i64 %1036, ptr %1037, align 8, !tbaa !56
  %1038 = load i32, ptr %119, align 4, !tbaa !9
  %1039 = zext i32 %1038 to i64
  %1040 = getelementptr inbounds [3 x [3 x ptr]], ptr %55, i64 0, i64 %1039
  %1041 = load i32, ptr %125, align 4, !tbaa !9
  %1042 = zext i32 %1041 to i64
  %1043 = getelementptr inbounds [3 x ptr], ptr %1040, i64 0, i64 %1042
  %1044 = load ptr, ptr %1043, align 8, !tbaa !5
  call void %1044(ptr noundef nonnull align 8 dereferenceable(184) %68)
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #8
  br label %1045

1045:                                             ; preds = %997, %963
  %1046 = load i32, ptr %121, align 4, !tbaa !9
  %1047 = load i32, ptr %123, align 4, !tbaa !9
  %1048 = add i32 %1047, %1046
  store i32 %1048, ptr %123, align 4, !tbaa !9
  br label %829, !llvm.loop !62

1049:                                             ; preds = %833
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #8
  br label %1050

1050:                                             ; preds = %1049
  %1051 = load i32, ptr %117, align 4, !tbaa !9
  %1052 = load i32, ptr %118, align 4, !tbaa !9
  %1053 = add i32 %1052, %1051
  store i32 %1053, ptr %118, align 4, !tbaa !9
  br label %786, !llvm.loop !63

1054:                                             ; preds = %790
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #8
  br label %1055

1055:                                             ; preds = %1054
  %1056 = load i32, ptr %116, align 4, !tbaa !9
  %1057 = add i32 %1056, 1
  store i32 %1057, ptr %116, align 4, !tbaa !9
  br label %780, !llvm.loop !64

1058:                                             ; preds = %784
  br label %1059

1059:                                             ; preds = %1058, %778
  br label %1060

1060:                                             ; preds = %1059
  %1061 = load i32, ptr %102, align 4, !tbaa !9
  %1062 = load i32, ptr %103, align 4, !tbaa !9
  %1063 = add i32 %1062, %1061
  store i32 %1063, ptr %103, align 4, !tbaa !9
  br label %525, !llvm.loop !65

1064:                                             ; preds = %529
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #8
  store i32 0, ptr %92, align 4
  br label %1065

1065:                                             ; preds = %1064, %444
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #8
  %1066 = load i32, ptr %92, align 4
  switch i32 %1066, label %1071 [
    i32 0, label %1067
  ]

1067:                                             ; preds = %1065
  br label %1068

1068:                                             ; preds = %1067
  %1069 = load i32, ptr %91, align 4, !tbaa !9
  %1070 = add i32 %1069, 1
  store i32 %1070, ptr %91, align 4, !tbaa !9
  br label %424, !llvm.loop !66

1071:                                             ; preds = %1065, %428
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #8
  %1072 = load i32, ptr %92, align 4
  switch i32 %1072, label %1105 [
    i32 2, label %1073
  ]

1073:                                             ; preds = %1071
  %1074 = load i32, ptr %26, align 4, !tbaa !12
  %1075 = icmp eq i32 %1074, 10
  br i1 %1075, label %1076, label %1104

1076:                                             ; preds = %1073
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #8
  store float -1.000000e+00, ptr %126, align 4, !tbaa !43
  %1077 = getelementptr inbounds float, ptr %126, i64 1
  %1078 = load ptr, ptr %71, align 8, !tbaa !5
  %1079 = getelementptr inbounds float, ptr %1078, i64 0
  %1080 = load float, ptr %1079, align 4, !tbaa !43
  store float %1080, ptr %1077, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 92, ptr %127) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %127, ptr align 8 %10, i64 92, i1 false), !tbaa.struct !11
  %1081 = getelementptr inbounds %struct.TensorDesc, ptr %127, i32 0, i32 0
  store i32 10, ptr %1081, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %129, ptr align 8 %10, i64 92, i1 false), !tbaa.struct !11
  %1082 = load ptr, ptr %67, align 8, !tbaa !5
  %1083 = load ptr, ptr %22, align 8, !tbaa !5
  %1084 = getelementptr inbounds [2 x float], ptr %126, i64 0, i64 0
  %1085 = call noundef i32 @_Z12quantize_x8610TensorDescPKvPS_PvPfi(ptr noundef byval(%struct.TensorDesc) align 8 %129, ptr noundef %1082, ptr noundef %127, ptr noundef %1083, ptr noundef %1084, i32 noundef 0)
  store i32 %1085, ptr %128, align 4, !tbaa !17
  %1086 = load i32, ptr %128, align 4, !tbaa !17
  %1087 = icmp ne i32 %1086, 0
  br i1 %1087, label %1088, label %1100

1088:                                             ; preds = %1076
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #8
  %1089 = call i64 (i64, ...) @syscall(i64 noundef 186) #8
  %1090 = trunc i64 %1089 to i32
  store i32 %1090, ptr %130, align 4, !tbaa !9
  %1091 = load i32, ptr %130, align 4, !tbaa !9
  %1092 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %1091)
  %1093 = load ptr, ptr @stdout, align 8, !tbaa !5
  %1094 = call i32 @fflush(ptr noundef %1093)
  %1095 = load i32, ptr %128, align 4, !tbaa !17
  %1096 = call ptr @ee2str(i32 noundef %1095)
  %1097 = call i32 (ptr, ...) @printf(ptr noundef @.str.1, ptr noundef %1096)
  %1098 = load ptr, ptr @stdout, align 8, !tbaa !5
  %1099 = call i32 @fflush(ptr noundef %1098)
  call void @exit(i32 noundef 1) #9
  unreachable

1100:                                             ; preds = %1076
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #8
  %1101 = getelementptr inbounds [2 x float], ptr %126, i64 0, i64 0
  %1102 = load float, ptr %1101, align 4, !tbaa !43
  %1103 = load ptr, ptr %71, align 8, !tbaa !5
  store float %1102, ptr %1103, align 4, !tbaa !43
  call void @llvm.lifetime.end.p0(i64 92, ptr %127) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #8
  br label %1104

1104:                                             ; preds = %1100, %1073
  store i32 0, ptr %15, align 4
  store i32 1, ptr %92, align 4
  br label %1105

1105:                                             ; preds = %1104, %1071
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 184, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 72, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  %1106 = load i32, ptr %15, align 4
  ret i32 %1106
}

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z11tensor4dGet10TensorDescP8DataTypeP10DataFormatPjS4_S4_S4_(ptr noundef byval(%struct.TensorDesc) align 8, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #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) #3

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

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

declare i32 @fflush(ptr noundef) #5

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

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

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

declare noundef i32 @_Z12quantize_x8610TensorDescPKvPS_PvPfi(ptr noundef byval(%struct.TensorDesc) align 8, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) #5

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

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

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

declare noundef i32 @_Z21quantize_bias_offsetCPKv10TensorDesc8DataTypeS0_S1_PKfPv(ptr noundef, ptr noundef byval(%struct.TensorDesc) align 8, i32 noundef, ptr noundef, ptr noundef byval(%struct.TensorDesc) align 8, ptr noundef, ptr noundef) #5

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

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

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 = { 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 #3 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { 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 = { "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 = { 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 #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 = { nounwind }
attributes #9 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{i64 0, i64 4, !12, i64 4, i64 4, !14, i64 8, i64 4, !9, i64 12, i64 80, !16}
!12 = !{!13, !13, i64 0}
!13 = !{!"_ZTS8DataType", !7, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"_ZTS10DataFormat", !7, i64 0}
!16 = !{!7, !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"_ZTS2EE", !7, i64 0}
!19 = !{!20, !10, i64 20}
!20 = !{!"_ZTS20ConvolutionParamSpec", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !21, i64 72, !22, i64 76, !22, i64 80, !7, i64 84, !23, i64 92, !10, i64 96, !10, i64 100, !10, i64 104}
!21 = !{!"_ZTS15ConvolutionMode", !7, i64 0}
!22 = !{!"_ZTS14ActivationMode", !7, i64 0}
!23 = !{!"_ZTS9RoundMode", !7, i64 0}
!24 = !{!20, !10, i64 24}
!25 = !{!20, !10, i64 36}
!26 = !{!20, !10, i64 40}
!27 = !{!20, !10, i64 44}
!28 = !{!20, !10, i64 48}
!29 = !{!20, !10, i64 60}
!30 = !{!20, !10, i64 64}
!31 = !{!32, !33, i64 96}
!32 = !{!"_ZTS14ConvController", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !33, i64 48, !33, i64 56, !33, i64 64, !6, i64 72, !33, i64 80, !33, i64 88, !33, i64 96, !33, i64 104, !33, i64 112, !33, i64 120, !33, i64 128, !33, i64 136, !6, i64 144, !34, i64 152, !33, i64 160, !33, i64 168, !6, i64 176}
!33 = !{!"long", !7, i64 0}
!34 = !{!"bool", !7, i64 0}
!35 = !{!32, !33, i64 80}
!36 = !{!32, !33, i64 88}
!37 = !{!32, !33, i64 112}
!38 = !{!32, !33, i64 56}
!39 = !{!32, !33, i64 64}
!40 = !{!32, !6, i64 144}
!41 = !{!42, !13, i64 0}
!42 = !{!"_ZTS10TensorDesc", !13, i64 0, !15, i64 4, !10, i64 8, !7, i64 12}
!43 = !{!44, !44, i64 0}
!44 = !{!"float", !7, i64 0}
!45 = !{!46, !22, i64 0}
!46 = !{!"_ZTS19ActivationParamSpec", !22, i64 0, !7, i64 4}
!47 = distinct !{!47, !48}
!48 = !{!"llvm.loop.mustprogress"}
!49 = distinct !{!49, !48}
!50 = !{!32, !33, i64 104}
!51 = !{!32, !6, i64 40}
!52 = !{!32, !6, i64 0}
!53 = !{!32, !6, i64 16}
!54 = !{!32, !6, i64 24}
!55 = !{!32, !6, i64 8}
!56 = !{!32, !33, i64 48}
!57 = distinct !{!57, !48}
!58 = distinct !{!58, !48}
!59 = distinct !{!59, !48}
!60 = distinct !{!60, !48}
!61 = distinct !{!61, !48}
!62 = distinct !{!62, !48}
!63 = distinct !{!63, !48}
!64 = distinct !{!64, !48}
!65 = distinct !{!65, !48}
!66 = distinct !{!66, !48}


; 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.TensorDesc = type { i32, i32, i32, [20 x i32] }
%struct.ConvolutionParamSpec = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %union.ActivationSpec, i32, i32, i32, i32 }
%union.ActivationSpec = type { %struct.ClipParamSpec }
%struct.ClipParamSpec = type { float, float }
%struct.ActivationParamSpec = type { i32, [4 x float] }
%struct.ConvController = type { ptr, ptr, ptr, ptr, ptr, ptr, i64, i64, i64, ptr, i64, i64, i64, i64, i64, i64, i64, i64, ptr, i8, i64, i64, ptr }

@.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 [18 x i8], align 1
@__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.ocSizeArray = external hidden unnamed_addr constant [3 x i32], align 4
@__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.wSizeArray = external hidden unnamed_addr constant [3 x i32], align 4
@__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.kernel = external hidden unnamed_addr constant [3 x [3 x ptr]], align 16

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec(ptr nocapture noundef readonly byval(%struct.TensorDesc) align 8 %0, ptr noundef %1, ptr noundef %2, ptr nocapture noundef readonly byval(%struct.TensorDesc) align 8 %3, ptr noundef %4, ptr nocapture noundef readonly byval(%struct.ConvolutionParamSpec) align 8 %5, ptr nocapture noundef readonly byval(%struct.TensorDesc) align 8 %6, ptr noundef %7, i32 noundef %8, ptr noundef %9, ptr nocapture noundef byval(%struct.TensorDesc) align 8 %10, ptr noundef %11, ptr noundef %12, ptr nocapture noundef readonly byval(%struct.ActivationParamSpec) align 8 %13) local_unnamed_addr #0 {
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca %struct.ConvController, align 8
  %34 = alloca %struct.TensorDesc, align 8
  %35 = alloca float, align 4
  %36 = alloca [2 x float], align 4
  %37 = alloca %struct.TensorDesc, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #10
  %38 = call noundef i32 @_Z11tensor4dGet10TensorDescP8DataTypeP10DataFormatPjS4_S4_S4_(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %0, ptr noundef nonnull %15, ptr noundef nonnull %18, ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %24)
  %.not = icmp eq i32 %38, 0
  br i1 %.not, label %49, label %39

39:                                               ; preds = %14
  %40 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %41 = trunc i64 %40 to i32
  %42 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %41)
  %43 = load ptr, ptr @stdout, align 8, !tbaa !5
  %44 = call i32 @fflush(ptr noundef %43)
  %45 = call ptr @ee2str(i32 noundef %38)
  %46 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1, ptr noundef %45)
  %47 = load ptr, ptr @stdout, align 8, !tbaa !5
  %48 = call i32 @fflush(ptr noundef %47)
  call void @exit(i32 noundef 1) #11
  unreachable

49:                                               ; preds = %14
  %50 = call noundef i32 @_Z11tensor4dGet10TensorDescP8DataTypeP10DataFormatPjS4_S4_S4_(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %3, ptr noundef nonnull %16, ptr noundef nonnull %19, ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef nonnull %28)
  %.not356 = icmp eq i32 %50, 0
  br i1 %.not356, label %61, label %51

51:                                               ; preds = %49
  %52 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %53 = trunc i64 %52 to i32
  %54 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %53)
  %55 = load ptr, ptr @stdout, align 8, !tbaa !5
  %56 = call i32 @fflush(ptr noundef %55)
  %57 = call ptr @ee2str(i32 noundef %50)
  %58 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1, ptr noundef %57)
  %59 = load ptr, ptr @stdout, align 8, !tbaa !5
  %60 = call i32 @fflush(ptr noundef %59)
  call void @exit(i32 noundef 1) #11
  unreachable

61:                                               ; preds = %49
  %62 = call noundef i32 @_Z11tensor4dGet10TensorDescP8DataTypeP10DataFormatPjS4_S4_S4_(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %10, ptr noundef nonnull %17, ptr noundef nonnull %20, ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef nonnull %32)
  %.not357 = icmp eq i32 %62, 0
  br i1 %.not357, label %73, label %63

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

73:                                               ; preds = %61
  %74 = load i32, ptr %18, align 4
  %75 = icmp eq i32 %74, 15
  br i1 %75, label %.thread474, label %76

.thread474:                                       ; preds = %73
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %80

76:                                               ; preds = %73
  %77 = load i32, ptr %19, align 4, !tbaa !9
  %78 = icmp ne i32 %77, 42
  %79 = icmp ne i32 %74, 2
  %or.cond = or i1 %78, %79
  br i1 %or.cond, label %80, label %90

80:                                               ; preds = %.thread474, %76
  %81 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %82 = trunc i64 %81 to i32
  %83 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %82)
  %84 = load ptr, ptr @stdout, align 8, !tbaa !5
  %85 = call i32 @fflush(ptr noundef %84)
  %86 = call ptr @ee2str(i32 noundef 2)
  %87 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1, ptr noundef %86)
  %88 = load ptr, ptr @stdout, align 8, !tbaa !5
  %89 = call i32 @fflush(ptr noundef %88)
  call void @exit(i32 noundef 1) #11
  unreachable

90:                                               ; preds = %76
  %91 = getelementptr inbounds i8, ptr %5, i64 20
  %92 = load i32, ptr %91, align 4, !tbaa !11
  %93 = getelementptr inbounds i8, ptr %5, i64 24
  %94 = load i32, ptr %93, align 8, !tbaa !17
  %95 = getelementptr inbounds i8, ptr %5, i64 36
  %96 = load i32, ptr %95, align 4, !tbaa !18
  %97 = getelementptr inbounds i8, ptr %5, i64 40
  %98 = load i32, ptr %97, align 8, !tbaa !19
  %99 = getelementptr inbounds i8, ptr %5, i64 44
  %100 = load i32, ptr %99, align 4, !tbaa !20
  %101 = getelementptr inbounds i8, ptr %5, i64 48
  %102 = load i32, ptr %101, align 8, !tbaa !21
  %103 = getelementptr inbounds i8, ptr %5, i64 60
  %104 = load i32, ptr %103, align 4, !tbaa !22
  %105 = getelementptr inbounds i8, ptr %5, i64 64
  %106 = load i32, ptr %105, align 8, !tbaa !23
  %107 = load i32, ptr %23, align 4, !tbaa !24
  %108 = add i32 %92, -1
  %109 = add i32 %108, %107
  %110 = udiv i32 %109, %92
  %111 = load i32, ptr %24, align 4, !tbaa !24
  %112 = add i32 %94, -1
  %113 = add i32 %112, %111
  %114 = udiv i32 %113, %94
  %115 = load i32, ptr %31, align 4, !tbaa !24
  %116 = load i32, ptr %32, align 4, !tbaa !24
  %117 = mul i32 %116, %115
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %33) #10
  %118 = shl i32 %117, 5
  %119 = zext i32 %118 to i64
  %120 = getelementptr inbounds i8, ptr %33, i64 96
  store i64 %119, ptr %120, align 8, !tbaa !25
  %121 = shl i32 %106, 3
  %122 = zext i32 %121 to i64
  %123 = getelementptr inbounds i8, ptr %33, i64 80
  store i64 %122, ptr %123, align 8, !tbaa !29
  %124 = load i32, ptr %28, align 4, !tbaa !24
  %125 = mul i32 %124, %106
  %126 = mul i32 %114, %104
  %127 = sub i32 %126, %125
  %128 = shl i32 %127, 3
  %129 = zext i32 %128 to i64
  %130 = getelementptr inbounds i8, ptr %33, i64 88
  store i64 %129, ptr %130, align 8, !tbaa !30
  %131 = mul i32 %114, %110
  %132 = shl i32 %131, 3
  %133 = zext i32 %132 to i64
  %134 = getelementptr inbounds i8, ptr %33, i64 112
  store i64 %133, ptr %134, align 8, !tbaa !31
  %135 = zext i32 %124 to i64
  %136 = getelementptr inbounds i8, ptr %33, i64 56
  store i64 %135, ptr %136, align 8, !tbaa !32
  %137 = load i32, ptr %27, align 4, !tbaa !24
  %138 = zext i32 %137 to i64
  %139 = getelementptr inbounds i8, ptr %33, i64 64
  store i64 %138, ptr %139, align 8, !tbaa !33
  %140 = getelementptr inbounds i8, ptr %33, i64 144
  store ptr null, ptr %140, align 8, !tbaa !34
  %141 = getelementptr inbounds i8, ptr %12, i64 4
  %142 = getelementptr inbounds i8, ptr %12, i64 8
  %143 = load i32, ptr %15, align 4, !tbaa !35
  %.not358 = icmp eq i32 %143, 10
  br i1 %.not358, label %160, label %144

144:                                              ; preds = %90
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %34) #10
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(92) %34, ptr noundef nonnull align 8 dereferenceable(92) %0, i64 92, i1 false), !tbaa.struct !37
  store i32 10, ptr %34, align 8, !tbaa !39
  %145 = call noundef i32 @_Z12quantize_x8610TensorDescPKvPS_PvPfi(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %0, ptr noundef %1, ptr noundef nonnull %34, ptr noundef %9, ptr noundef %12, i32 noundef 0)
  %.not359 = icmp eq i32 %145, 0
  br i1 %.not359, label %156, label %146

146:                                              ; preds = %144
  %147 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %148 = trunc i64 %147 to i32
  %149 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %148)
  %150 = load ptr, ptr @stdout, align 8, !tbaa !5
  %151 = call i32 @fflush(ptr noundef %150)
  %152 = call ptr @ee2str(i32 noundef %145)
  %153 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1, ptr noundef %152)
  %154 = load ptr, ptr @stdout, align 8, !tbaa !5
  %155 = call i32 @fflush(ptr noundef %154)
  call void @exit(i32 noundef 1) #11
  unreachable

156:                                              ; preds = %144
  %157 = call noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %34)
  %158 = zext i32 %157 to i64
  %159 = getelementptr inbounds i8, ptr %9, i64 %158
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %34) #10
  br label %160

160:                                              ; preds = %156, %90
  %.0314 = phi ptr [ %159, %156 ], [ %9, %90 ]
  %.0310 = phi ptr [ %9, %156 ], [ %1, %90 ]
  %161 = load float, ptr %12, align 4, !tbaa !41
  %162 = load float, ptr %142, align 4, !tbaa !41
  %163 = fmul float %161, %162
  store float %163, ptr %141, align 4, !tbaa !41
  %164 = load i32, ptr %17, align 4
  switch i32 %164, label %165 [
    i32 6, label %171
    i32 3, label %171
  ]

165:                                              ; preds = %160
  %166 = call noundef i32 @_Z17tensorNumElements10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %10)
  %167 = call noundef i32 @_Z7bytesOf8DataType(i32 noundef 3)
  %168 = mul i32 %167, %166
  %169 = zext i32 %168 to i64
  %170 = getelementptr inbounds i8, ptr %.0314, i64 %169
  store i32 3, ptr %10, align 8, !tbaa !39
  br label %171

171:                                              ; preds = %160, %160, %165
  %.0319 = phi ptr [ %.0314, %165 ], [ %11, %160 ], [ %11, %160 ]
  %.1315 = phi ptr [ %170, %165 ], [ %.0314, %160 ], [ %.0314, %160 ]
  %.not364 = icmp eq ptr %2, null
  br i1 %.not364, label %172, label %.thread

.thread:                                          ; preds = %171
  store i32 6, ptr %10, align 8, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #10
  br label %174

172:                                              ; preds = %171
  %.pr = load i32, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #10
  store float 0.000000e+00, ptr %35, align 4, !tbaa !41
  %173 = icmp eq i32 %.pr, 6
  br i1 %173, label %174, label %177

174:                                              ; preds = %.thread, %172
  %175 = load float, ptr %141, align 4, !tbaa !41
  %176 = fdiv float 1.000000e+00, %175
  store float %176, ptr %35, align 4, !tbaa !41
  br label %177

177:                                              ; preds = %174, %172
  %.0320 = phi ptr [ %35, %174 ], [ null, %172 ]
  %178 = load i32, ptr %30, align 4, !tbaa !24
  %179 = call noundef i32 @_Z7bytesOf8DataType(i32 noundef 3)
  %180 = mul i32 %179, %178
  %181 = zext i32 %180 to i64
  %182 = getelementptr inbounds i8, ptr %.1315, i64 %181
  %183 = call noundef i32 @_Z21quantize_bias_offsetCPKv10TensorDesc8DataTypeS0_S1_PKfPv(ptr noundef %7, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %6, i32 noundef 3, ptr noundef %4, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %3, ptr noundef nonnull %141, ptr noundef %.1315)
  %.not360 = icmp eq i32 %183, 0
  br i1 %.not360, label %194, label %184

184:                                              ; preds = %177
  %185 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %186 = trunc i64 %185 to i32
  %187 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %186)
  %188 = load ptr, ptr @stdout, align 8, !tbaa !5
  %189 = call i32 @fflush(ptr noundef %188)
  %190 = call ptr @ee2str(i32 noundef %183)
  %191 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1, ptr noundef %190)
  %192 = load ptr, ptr @stdout, align 8, !tbaa !5
  %193 = call i32 @fflush(ptr noundef %192)
  call void @exit(i32 noundef 1) #11
  unreachable

194:                                              ; preds = %177
  %195 = load i32, ptr %30, align 4, !tbaa !24
  %196 = shl i32 %195, 2
  %197 = zext i32 %196 to i64
  %198 = getelementptr inbounds i8, ptr %4, i64 %197
  %199 = icmp ne i32 %96, 0
  %200 = icmp ne i32 %98, 0
  %or.cond9 = select i1 %199, i1 true, i1 %200
  %201 = icmp ne i32 %100, 0
  %or.cond11 = select i1 %or.cond9, i1 true, i1 %201
  %202 = icmp ne i32 %102, 0
  %or.cond13 = select i1 %or.cond11, i1 true, i1 %202
  br i1 %or.cond13, label %203, label %212

203:                                              ; preds = %194
  %204 = load i32, ptr %10, align 8, !tbaa !39
  %205 = load i32, ptr %13, align 8, !tbaa !43
  %206 = load float, ptr %141, align 4, !tbaa !41
  call void @_Z26getActivatedBiasForPaddingPKf10TensorDesc8DataTypePv14ActivationModef(ptr noundef %7, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %6, i32 noundef %204, ptr noundef %182, i32 noundef %205, float noundef %206)
  %207 = load i32, ptr %30, align 4, !tbaa !24
  %208 = call noundef i32 @_Z7bytesOf8DataType(i32 noundef 6)
  %209 = mul i32 %208, %207
  %210 = zext i32 %209 to i64
  %211 = getelementptr inbounds i8, ptr %182, i64 %210
  br label %212

212:                                              ; preds = %194, %203
  %.2316 = phi ptr [ %211, %203 ], [ %182, %194 ]
  %213 = load i32, ptr %10, align 8, !tbaa !39
  %214 = call noundef i32 @_Z7bytesOf8DataType(i32 noundef %213)
  %215 = load i32, ptr %18, align 4, !tbaa !9
  %.not361 = icmp eq i32 %215, 2
  br i1 %.not361, label %224, label %216

216:                                              ; preds = %212
  %217 = load i32, ptr %22, align 4, !tbaa !24
  %218 = load i32, ptr %23, align 4, !tbaa !24
  %219 = mul i32 %218, %217
  %220 = load i32, ptr %24, align 4, !tbaa !24
  %221 = mul i32 %219, %220
  %222 = zext i32 %221 to i64
  %223 = getelementptr inbounds i8, ptr %.2316, i64 %222
  br label %224

224:                                              ; preds = %216, %212
  %.3317 = phi ptr [ %223, %216 ], [ %.2316, %212 ]
  %225 = load i32, ptr %21, align 4, !tbaa !24
  %.not362435.not = icmp eq i32 %225, 0
  br i1 %.not362435.not, label %.critedge, label %.lr.ph440

.lr.ph440:                                        ; preds = %224
  %226 = or i32 %94, %92
  %or.cond15.not = icmp ult i32 %226, 2
  %.not441 = icmp ugt i32 %94, %113
  %227 = select i1 %.not364, i32 0, i32 2
  %228 = getelementptr inbounds i8, ptr %33, i64 104
  %229 = icmp eq i32 %96, 0
  %230 = icmp eq i32 %98, 0
  %or.cond17 = select i1 %229, i1 %230, i1 false
  %231 = icmp eq i32 %100, 0
  %or.cond19 = select i1 %or.cond17, i1 %231, i1 false
  %232 = icmp eq i32 %102, 0
  %or.cond21 = select i1 %or.cond19, i1 %232, i1 false
  %233 = getelementptr inbounds i8, ptr %33, i64 40
  %factor.op.mul398 = shl i32 %214, 3
  %factor.op.mul399 = mul i32 %117, %214
  %234 = getelementptr inbounds i8, ptr %33, i64 16
  %235 = getelementptr inbounds i8, ptr %33, i64 24
  %236 = add i32 %110, %96
  %237 = add i32 %114, %100
  %238 = zext i32 %factor.op.mul398 to i64
  %239 = shl i32 %114, 3
  %240 = getelementptr inbounds i8, ptr %33, i64 8
  %241 = getelementptr inbounds i8, ptr %33, i64 48
  %.not442 = icmp eq i32 %117, 0
  %242 = zext i32 %114 to i64
  %243 = zext i32 %236 to i64
  %244 = zext i32 %96 to i64
  %.pre = load i32, ptr %22, align 4
  br label %245

245:                                              ; preds = %.lr.ph440, %._crit_edge433
  %246 = phi i32 [ %.pre, %.lr.ph440 ], [ %525, %._crit_edge433 ]
  %.0323437 = phi ptr [ %.3317, %.lr.ph440 ], [ %.1324, %._crit_edge433 ]
  %.0326436 = phi i32 [ 0, %.lr.ph440 ], [ %526, %._crit_edge433 ]
  %247 = mul i32 %246, %.0326436
  %248 = load i32, ptr %23, align 4, !tbaa !24
  %249 = mul i32 %247, %248
  %250 = load i32, ptr %24, align 4, !tbaa !24
  %251 = mul i32 %249, %250
  %252 = zext i32 %251 to i64
  %253 = getelementptr inbounds i8, ptr %.0310, i64 %252
  %254 = load i32, ptr %18, align 4, !tbaa !9
  %255 = icmp eq i32 %254, 2
  br i1 %255, label %256, label %.thread372

256:                                              ; preds = %245
  br i1 %or.cond15.not, label %.loopexit386, label %257

257:                                              ; preds = %256
  %258 = lshr i32 %246, 3
  %259 = mul i32 %258, %110
  %.not443 = icmp eq i32 %259, 0
  %brmerge = select i1 %.not443, i1 true, i1 %.not441
  br i1 %brmerge, label %.loopexit386, label %.lr.ph.us

.lr.ph.us:                                        ; preds = %257, %._crit_edge.us
  %.0330389.us = phi i32 [ %286, %._crit_edge.us ], [ 0, %257 ]
  %260 = udiv i32 %.0330389.us, %110
  %261 = urem i32 %.0330389.us, %110
  %factor.op.mul387.reass.us = mul i32 %132, %260
  %262 = mul i32 %261, %92
  %263 = zext i32 %factor.op.mul387.reass.us to i64
  %264 = getelementptr inbounds i8, ptr %.0323437, i64 %263
  %265 = mul i32 %261, %114
  %266 = shl i32 %260, 3
  br label %267

267:                                              ; preds = %.lr.ph.us, %267
  %indvars.iv = phi i64 [ 0, %.lr.ph.us ], [ %indvars.iv.next, %267 ]
  %268 = trunc nuw i64 %indvars.iv to i32
  %269 = mul i32 %94, %268
  %270 = add i32 %265, %268
  %271 = shl i32 %270, 3
  %272 = zext i32 %271 to i64
  %273 = getelementptr inbounds i8, ptr %264, i64 %272
  %274 = load i32, ptr %23, align 4, !tbaa !24
  %275 = load i32, ptr %24, align 4, !tbaa !24
  %276 = mul i32 %266, %274
  %277 = mul i32 %276, %275
  %278 = zext i32 %277 to i64
  %279 = getelementptr inbounds i8, ptr %253, i64 %278
  %280 = mul i32 %262, %275
  %281 = add i32 %280, %269
  %282 = shl i32 %281, 3
  %283 = zext i32 %282 to i64
  %284 = getelementptr inbounds i8, ptr %279, i64 %283
  call void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %273, ptr noundef %284, i64 noundef 8)
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %285 = icmp ult i64 %indvars.iv.next, %242
  br i1 %285, label %267, label %._crit_edge.us, !llvm.loop !45

._crit_edge.us:                                   ; preds = %267
  %286 = add nuw i32 %.0330389.us, 1
  %287 = icmp ult i32 %286, %259
  br i1 %287, label %.lr.ph.us, label %.loopexit386.loopexit455, !llvm.loop !47

.loopexit386.loopexit455:                         ; preds = %._crit_edge.us
  %.pre470 = load i32, ptr %22, align 4
  br label %.loopexit386

.loopexit386:                                     ; preds = %257, %.loopexit386.loopexit455, %256
  %288 = phi i32 [ %246, %256 ], [ %246, %257 ], [ %.pre470, %.loopexit386.loopexit455 ]
  %.1324 = phi ptr [ %253, %256 ], [ %.0323437, %257 ], [ %.0323437, %.loopexit386.loopexit455 ]
  %.not444 = icmp eq i32 %288, 0
  br i1 %.not444, label %._crit_edge433, label %.lr.ph432

.lr.ph432:                                        ; preds = %.loopexit386, %.loopexit383
  %289 = phi i32 [ %523, %.loopexit383 ], [ %288, %.loopexit386 ]
  %.0334428 = phi i32 [ %522, %.loopexit383 ], [ 0, %.loopexit386 ]
  %.0335427 = phi i32 [ %.1336, %.loopexit383 ], [ 0, %.loopexit386 ]
  %290 = sub i32 %289, %.0334428
  %291 = call i32 @llvm.umin.i32(i32 %290, i32 256)
  %292 = icmp ne i32 %.0334428, 0
  %293 = zext i1 %292 to i32
  %294 = or i32 %.0335427, %293
  %295 = sub i32 %289, %291
  %296 = icmp eq i32 %.0334428, %295
  br i1 %296, label %297, label %302

297:                                              ; preds = %.lr.ph432
  %298 = load i32, ptr %13, align 8, !tbaa !43
  %299 = shl i32 %298, 2
  %300 = or disjoint i32 %299, %227
  %301 = or i32 %300, %294
  store ptr %.0320, ptr %140, align 8, !tbaa !34
  br label %302

302:                                              ; preds = %297, %.lr.ph432
  %.1336 = phi i32 [ %301, %297 ], [ %294, %.lr.ph432 ]
  %303 = zext i32 %.1336 to i64
  store i64 %303, ptr %228, align 8, !tbaa !48
  br i1 %or.cond21, label %.preheader382, label %.preheader384

.preheader384:                                    ; preds = %302
  %304 = load i32, ptr %31, align 4, !tbaa !24
  %.not445 = icmp eq i32 %304, 0
  br i1 %.not445, label %.loopexit383, label %.preheader381.lr.ph

.preheader381.lr.ph:                              ; preds = %.preheader384
  %factor.op.mul403.reass = mul i32 %131, %.0334428
  %305 = zext i32 %factor.op.mul403.reass to i64
  %306 = getelementptr inbounds i8, ptr %.1324, i64 %305
  %307 = and i32 %.1336, 2
  %.not367 = icmp eq i32 %307, 0
  %308 = zext nneg i32 %291 to i64
  %309 = load i32, ptr %30, align 4
  %.not446 = icmp eq i32 %309, 0
  br i1 %.not446, label %.loopexit383, label %.preheader381

.preheader382:                                    ; preds = %302
  br i1 %.not442, label %.loopexit383, label %.lr.ph426

.lr.ph426:                                        ; preds = %.preheader382
  %factor.op.mul416.reass = mul i32 %131, %.0334428
  %310 = zext i32 %factor.op.mul416.reass to i64
  %311 = getelementptr inbounds i8, ptr %.1324, i64 %310
  %312 = zext nneg i32 %291 to i64
  %313 = load i32, ptr %30, align 4
  %.not450 = icmp eq i32 %313, 0
  br i1 %.not450, label %.loopexit383, label %.lr.ph426.split

.lr.ph426.split:                                  ; preds = %.lr.ph426, %._crit_edge421
  %314 = phi i32 [ %390, %._crit_edge421 ], [ %313, %.lr.ph426 ]
  %315 = phi i32 [ %391, %._crit_edge421 ], [ %313, %.lr.ph426 ]
  %.0333424 = phi i32 [ %.pre473, %._crit_edge421 ], [ 0, %.lr.ph426 ]
  %316 = sub i32 %117, %.0333424
  %317 = call i32 @llvm.umin.i32(i32 %316, i32 768)
  %.not451 = icmp eq i32 %315, 0
  %.pre473 = add i32 %317, %.0333424
  br i1 %.not451, label %._crit_edge421, label %.lr.ph420

.lr.ph420:                                        ; preds = %.lr.ph426.split
  %318 = icmp ult i32 %.0333424, %.pre473
  br i1 %318, label %.lr.ph414.us, label %.lr.ph420.split

.lr.ph414.us:                                     ; preds = %.lr.ph420, %._crit_edge415.us
  %319 = phi i32 [ %379, %._crit_edge415.us ], [ %315, %.lr.ph420 ]
  %.0332418.us = phi i32 [ %378, %._crit_edge415.us ], [ 0, %.lr.ph420 ]
  %320 = sub i32 %319, %.0332418.us
  %321 = call i32 @llvm.umin.i32(i32 %320, i32 24)
  %322 = lshr i32 %321, 3
  %323 = add nsw i32 %322, -1
  %324 = zext i32 %323 to i64
  %325 = getelementptr inbounds [3 x i32], ptr @__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.ocSizeArray, i64 0, i64 %324
  %326 = load i32, ptr %325, align 4, !tbaa !24
  %327 = zext i32 %.0332418.us to i64
  %328 = getelementptr inbounds i32, ptr %.1315, i64 %327
  store ptr %328, ptr %233, align 8, !tbaa !49
  %329 = getelementptr inbounds [3 x i32], ptr @__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.wSizeArray, i64 0, i64 %324
  %330 = load i32, ptr %329, align 4, !tbaa !24
  %331 = mul i32 %326, %.0334428
  br label %332

332:                                              ; preds = %.lr.ph414.us, %332
  %.0327412.us = phi i32 [ %.0333424, %.lr.ph414.us ], [ %376, %332 ]
  %333 = sub i32 %.pre473, %.0327412.us
  %..us = call i32 @llvm.umin.i32(i32 %333, i32 %330)
  %334 = shl i32 %..us, 1
  %335 = udiv i32 %334, %330
  %336 = mul i32 %335, %330
  %337 = lshr i32 %336, 1
  %338 = call i32 @llvm.umax.i32(i32 %337, i32 1)
  %339 = load i32, ptr %32, align 4, !tbaa !24
  %340 = udiv i32 %.0327412.us, %339
  %341 = urem i32 %.0327412.us, %339
  %342 = mul i32 %239, %340
  %343 = zext i32 %342 to i64
  %344 = getelementptr inbounds i8, ptr %311, i64 %343
  %345 = shl i32 %341, 3
  %346 = zext i32 %345 to i64
  %347 = getelementptr inbounds i8, ptr %344, i64 %346
  store ptr %347, ptr %33, align 8, !tbaa !50
  %348 = load i32, ptr %30, align 4, !tbaa !24
  %349 = mul i32 %348, %.0326436
  %350 = add i32 %349, %.0332418.us
  %351 = mul i32 %350, %117
  %352 = shl i32 %.0327412.us, 3
  %353 = add i32 %351, %352
  %354 = mul i32 %353, %214
  %355 = zext i32 %354 to i64
  %356 = getelementptr inbounds i8, ptr %.0319, i64 %355
  store ptr %356, ptr %234, align 8, !tbaa !51
  %357 = zext i32 %351 to i64
  %358 = getelementptr inbounds float, ptr %2, i64 %357
  %359 = zext i32 %352 to i64
  %360 = getelementptr inbounds float, ptr %358, i64 %359
  store ptr %360, ptr %235, align 8, !tbaa !52
  %361 = load i32, ptr %22, align 4, !tbaa !24
  %362 = load i32, ptr %27, align 4, !tbaa !24
  %363 = load i32, ptr %28, align 4, !tbaa !24
  %364 = mul i32 %363, %362
  %365 = mul i32 %364, %.0332418.us
  %366 = mul i32 %365, %361
  %367 = zext i32 %366 to i64
  %368 = getelementptr inbounds i8, ptr %198, i64 %367
  %369 = mul i32 %331, %362
  %370 = mul i32 %369, %363
  %371 = zext i32 %370 to i64
  %372 = getelementptr inbounds i8, ptr %368, i64 %371
  store ptr %372, ptr %240, align 8, !tbaa !53
  store i64 %312, ptr %241, align 8, !tbaa !54
  %373 = zext i32 %335 to i64
  %374 = getelementptr inbounds [3 x [3 x ptr]], ptr @__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.kernel, i64 0, i64 %324, i64 %373
  %375 = load ptr, ptr %374, align 8, !tbaa !5
  call void %375(ptr noundef nonnull align 8 dereferenceable(184) %33)
  %376 = add i32 %338, %.0327412.us
  %377 = icmp ult i32 %376, %.pre473
  br i1 %377, label %332, label %._crit_edge415.us, !llvm.loop !55

._crit_edge415.us:                                ; preds = %332
  %378 = add i32 %326, %.0332418.us
  %379 = load i32, ptr %30, align 4
  %380 = icmp ult i32 %378, %379
  br i1 %380, label %.lr.ph414.us, label %._crit_edge421, !llvm.loop !56

.lr.ph420.split:                                  ; preds = %.lr.ph420
  %381 = call i32 @llvm.umin.i32(i32 %315, i32 24)
  %382 = lshr i32 %381, 3
  %383 = add nsw i32 %382, -1
  %384 = zext i32 %383 to i64
  %385 = getelementptr inbounds [3 x i32], ptr @__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.ocSizeArray, i64 0, i64 %384
  %386 = load i32, ptr %385, align 4, !tbaa !24
  %387 = icmp ult i32 %386, %314
  br i1 %387, label %.peel.next468, label %._crit_edge421.split

._crit_edge421.split:                             ; preds = %.peel.next468, %.lr.ph420.split
  %.0332418.lcssa = phi i32 [ 0, %.lr.ph420.split ], [ %.0332418, %.peel.next468 ]
  %388 = zext i32 %.0332418.lcssa to i64
  %389 = getelementptr inbounds i32, ptr %.1315, i64 %388
  store ptr %389, ptr %233, align 8, !tbaa !49
  br label %._crit_edge421

._crit_edge421:                                   ; preds = %._crit_edge415.us, %.lr.ph426.split, %._crit_edge421.split
  %390 = phi i32 [ %314, %._crit_edge421.split ], [ %314, %.lr.ph426.split ], [ %379, %._crit_edge415.us ]
  %391 = phi i32 [ %314, %._crit_edge421.split ], [ 0, %.lr.ph426.split ], [ %379, %._crit_edge415.us ]
  %392 = icmp ult i32 %.pre473, %117
  br i1 %392, label %.lr.ph426.split, label %.loopexit383, !llvm.loop !57

.peel.next468:                                    ; preds = %.lr.ph420.split, %.peel.next468
  %.0332418 = phi i32 [ %400, %.peel.next468 ], [ %386, %.lr.ph420.split ]
  %393 = sub i32 %314, %.0332418
  %394 = call i32 @llvm.umin.i32(i32 %393, i32 24)
  %395 = lshr i32 %394, 3
  %396 = add nsw i32 %395, -1
  %397 = zext i32 %396 to i64
  %398 = getelementptr inbounds [3 x i32], ptr @__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.ocSizeArray, i64 0, i64 %397
  %399 = load i32, ptr %398, align 4, !tbaa !24
  %400 = add i32 %399, %.0332418
  %401 = icmp ult i32 %400, %314
  br i1 %401, label %.peel.next468, label %._crit_edge421.split, !llvm.loop !59

.preheader381:                                    ; preds = %.preheader381.lr.ph, %._crit_edge407
  %402 = phi i32 [ %431, %._crit_edge407 ], [ %304, %.preheader381.lr.ph ]
  %403 = phi i32 [ %432, %._crit_edge407 ], [ %309, %.preheader381.lr.ph ]
  %404 = phi i32 [ %433, %._crit_edge407 ], [ %309, %.preheader381.lr.ph ]
  %405 = phi i32 [ %434, %._crit_edge407 ], [ %309, %.preheader381.lr.ph ]
  %indvars.iv464 = phi i64 [ %indvars.iv.next465, %._crit_edge407 ], [ 0, %.preheader381.lr.ph ]
  %.not447 = icmp eq i32 %405, 0
  br i1 %.not447, label %._crit_edge407, label %.lr.ph406

.lr.ph406:                                        ; preds = %.preheader381
  %406 = icmp uge i64 %indvars.iv464, %244
  %.not365 = icmp ult i64 %indvars.iv464, %243
  %or.cond368.not375.not379 = select i1 %406, i1 %.not365, i1 false
  %407 = trunc nuw i64 %indvars.iv464 to i32
  %408 = sub i32 %407, %96
  %409 = mul i32 %239, %408
  %410 = zext i32 %409 to i64
  %411 = getelementptr inbounds i8, ptr %306, i64 %410
  %412 = load i32, ptr %32, align 4, !tbaa !24
  %.not448 = icmp eq i32 %412, 0
  br i1 %.not448, label %.lr.ph406.split.us, label %.lr.ph406.split

.lr.ph406.split.us:                               ; preds = %.lr.ph406
  %413 = call i32 @llvm.umin.i32(i32 %405, i32 24)
  %414 = lshr i32 %413, 3
  %415 = add nsw i32 %414, -1
  %416 = zext i32 %415 to i64
  %417 = getelementptr inbounds [3 x i32], ptr @__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.ocSizeArray, i64 0, i64 %416
  %418 = load i32, ptr %417, align 4, !tbaa !24
  %419 = icmp ult i32 %418, %403
  br i1 %419, label %.peel.next, label %._crit_edge407.split.us

.peel.next:                                       ; preds = %.lr.ph406.split.us, %.peel.next
  %.0321405.us = phi i32 [ %427, %.peel.next ], [ %418, %.lr.ph406.split.us ]
  %420 = sub i32 %403, %.0321405.us
  %421 = call i32 @llvm.umin.i32(i32 %420, i32 24)
  %422 = lshr i32 %421, 3
  %423 = add nsw i32 %422, -1
  %424 = zext i32 %423 to i64
  %425 = getelementptr inbounds [3 x i32], ptr @__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.ocSizeArray, i64 0, i64 %424
  %426 = load i32, ptr %425, align 4, !tbaa !24
  %427 = add i32 %426, %.0321405.us
  %428 = icmp ult i32 %427, %403
  br i1 %428, label %.peel.next, label %._crit_edge407.split.us, !llvm.loop !61

._crit_edge407.split.us:                          ; preds = %.peel.next, %.lr.ph406.split.us
  %.0321405.us.lcssa = phi i32 [ 0, %.lr.ph406.split.us ], [ %.0321405.us, %.peel.next ]
  %429 = zext i32 %.0321405.us.lcssa to i64
  %430 = getelementptr inbounds i32, ptr %.1315, i64 %429
  store ptr %430, ptr %233, align 8, !tbaa !49
  br label %._crit_edge407

._crit_edge407.loopexit:                          ; preds = %._crit_edge
  %.pre472 = load i32, ptr %31, align 4, !tbaa !24
  br label %._crit_edge407

._crit_edge407:                                   ; preds = %._crit_edge407.loopexit, %._crit_edge407.split.us, %.preheader381
  %431 = phi i32 [ %.pre472, %._crit_edge407.loopexit ], [ %402, %._crit_edge407.split.us ], [ %402, %.preheader381 ]
  %432 = phi i32 [ %455, %._crit_edge407.loopexit ], [ %403, %._crit_edge407.split.us ], [ %403, %.preheader381 ]
  %433 = phi i32 [ %456, %._crit_edge407.loopexit ], [ %403, %._crit_edge407.split.us ], [ %404, %.preheader381 ]
  %434 = phi i32 [ %456, %._crit_edge407.loopexit ], [ %403, %._crit_edge407.split.us ], [ 0, %.preheader381 ]
  %indvars.iv.next465 = add nuw nsw i64 %indvars.iv464, 1
  %435 = zext i32 %431 to i64
  %436 = icmp ult i64 %indvars.iv.next465, %435
  br i1 %436, label %.preheader381, label %.loopexit383, !llvm.loop !62

.lr.ph406.split:                                  ; preds = %.lr.ph406, %._crit_edge
  %437 = phi i32 [ %455, %._crit_edge ], [ %403, %.lr.ph406 ]
  %438 = phi i32 [ %456, %._crit_edge ], [ %404, %.lr.ph406 ]
  %439 = phi i32 [ %457, %._crit_edge ], [ %412, %.lr.ph406 ]
  %440 = phi i32 [ %456, %._crit_edge ], [ %405, %.lr.ph406 ]
  %.0321405 = phi i32 [ %458, %._crit_edge ], [ 0, %.lr.ph406 ]
  %441 = sub i32 %440, %.0321405
  %442 = call i32 @llvm.umin.i32(i32 %441, i32 24)
  %443 = lshr i32 %442, 3
  %444 = add nsw i32 %443, -1
  %445 = zext i32 %444 to i64
  %446 = getelementptr inbounds [3 x i32], ptr @__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.ocSizeArray, i64 0, i64 %445
  %447 = load i32, ptr %446, align 4, !tbaa !24
  %448 = zext i32 %.0321405 to i64
  %449 = getelementptr inbounds i32, ptr %.1315, i64 %448
  store ptr %449, ptr %233, align 8, !tbaa !49
  %450 = getelementptr inbounds [3 x i32], ptr @__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.wSizeArray, i64 0, i64 %445
  %451 = load i32, ptr %450, align 4, !tbaa !24
  %.not449 = icmp eq i32 %439, 0
  br i1 %.not449, label %._crit_edge, label %.lr.ph402

.lr.ph402:                                        ; preds = %.lr.ph406.split
  %452 = add nsw i32 %447, -7
  %invariant.gep = getelementptr inbounds float, ptr %182, i64 %448
  %453 = icmp sgt i32 %447, 7
  %454 = mul i32 %447, %.0334428
  br label %460

._crit_edge.loopexit:                             ; preds = %.loopexit
  %.pre471 = load i32, ptr %30, align 4
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %.lr.ph406.split
  %455 = phi i32 [ %.pre471, %._crit_edge.loopexit ], [ %437, %.lr.ph406.split ]
  %456 = phi i32 [ %.pre471, %._crit_edge.loopexit ], [ %438, %.lr.ph406.split ]
  %457 = phi i32 [ %520, %._crit_edge.loopexit ], [ 0, %.lr.ph406.split ]
  %458 = add i32 %447, %.0321405
  %459 = icmp ult i32 %458, %456
  br i1 %459, label %.lr.ph406.split, label %._crit_edge407.loopexit, !llvm.loop !63

460:                                              ; preds = %.lr.ph402, %.loopexit
  %461 = phi i32 [ %439, %.lr.ph402 ], [ %520, %.loopexit ]
  %.0313401 = phi i32 [ 0, %.lr.ph402 ], [ %519, %.loopexit ]
  %462 = load i32, ptr %30, align 4
  %463 = mul i32 %462, %.0326436
  %464 = add i32 %463, %.0321405
  %.reass400 = mul i32 %464, %factor.op.mul399
  %465 = mul i32 %461, %407
  %466 = add i32 %465, %.0313401
  %.reass = mul i32 %466, %factor.op.mul398
  %467 = add i32 %.reass400, %.reass
  %468 = zext i32 %467 to i64
  %469 = getelementptr inbounds i8, ptr %.0319, i64 %468
  store ptr %469, ptr %234, align 8, !tbaa !51
  %470 = getelementptr inbounds float, ptr %2, i64 %468
  store ptr %470, ptr %235, align 8, !tbaa !52
  %471 = icmp uge i32 %.0313401, %100
  %or.cond369.not377 = select i1 %or.cond368.not375.not379, i1 %471, i1 false
  %.not366 = icmp ult i32 %.0313401, %237
  %or.cond370 = select i1 %or.cond369.not377, i1 %.not366, i1 false
  br i1 %or.cond370, label %493, label %472

472:                                              ; preds = %460
  br i1 %.not367, label %473, label %.loopexit

473:                                              ; preds = %472
  %474 = load i32, ptr %22, align 4, !tbaa !24
  %475 = sub i32 %474, %291
  %476 = icmp eq i32 %.0334428, %475
  br i1 %476, label %.preheader380, label %.loopexit

.preheader380:                                    ; preds = %473
  br i1 %453, label %.lr.ph, label %.preheader

.preheader:                                       ; preds = %.lr.ph, %.preheader380
  %.0311.lcssa = phi i32 [ 0, %.preheader380 ], [ %484, %.lr.ph ]
  %477 = icmp slt i32 %.0311.lcssa, %447
  br i1 %477, label %.lr.ph397.preheader, label %.loopexit

.lr.ph397.preheader:                              ; preds = %.preheader
  %478 = zext i32 %.0311.lcssa to i64
  br label %.lr.ph397

.lr.ph:                                           ; preds = %.preheader380, %.lr.ph
  %indvars.iv457 = phi i64 [ %indvars.iv.next458, %.lr.ph ], [ 0, %.preheader380 ]
  %479 = load ptr, ptr %234, align 8, !tbaa !51
  %480 = trunc nuw nsw i64 %indvars.iv457 to i32
  %481 = mul i32 %factor.op.mul399, %480
  %482 = zext i32 %481 to i64
  %483 = getelementptr inbounds i8, ptr %479, i64 %482
  %gep = getelementptr inbounds float, ptr %invariant.gep, i64 %indvars.iv457
  call void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %483, ptr noundef %gep, i64 noundef %238)
  %indvars.iv.next458 = add nuw nsw i64 %indvars.iv457, 8
  %484 = trunc nuw i64 %indvars.iv.next458 to i32
  %485 = icmp sgt i32 %452, %484
  br i1 %485, label %.lr.ph, label %.preheader, !llvm.loop !64

.lr.ph397:                                        ; preds = %.lr.ph397.preheader, %.lr.ph397
  %indvars.iv460 = phi i64 [ %478, %.lr.ph397.preheader ], [ %indvars.iv.next461, %.lr.ph397 ]
  %486 = load ptr, ptr %234, align 8, !tbaa !51
  %487 = trunc nuw i64 %indvars.iv460 to i32
  %488 = mul i32 %factor.op.mul399, %487
  %489 = zext i32 %488 to i64
  %490 = getelementptr inbounds i8, ptr %486, i64 %489
  %gep395 = getelementptr inbounds float, ptr %invariant.gep, i64 %indvars.iv460
  call void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %490, ptr noundef %gep395, i64 noundef %238)
  %indvars.iv.next461 = add nuw nsw i64 %indvars.iv460, 8
  %491 = trunc nuw i64 %indvars.iv.next461 to i32
  %492 = icmp sgt i32 %447, %491
  br i1 %492, label %.lr.ph397, label %.loopexit, !llvm.loop !65

493:                                              ; preds = %460
  %494 = sub i32 %.0313401, %100
  %495 = sub i32 %114, %494
  %.371 = call i32 @llvm.umin.i32(i32 %495, i32 %451)
  %496 = shl i32 %.371, 1
  %497 = udiv i32 %496, %451
  %498 = mul i32 %497, %451
  %499 = lshr i32 %498, 1
  %500 = call i32 @llvm.umax.i32(i32 %499, i32 1)
  %501 = shl i32 %494, 3
  %502 = zext i32 %501 to i64
  %503 = getelementptr inbounds i8, ptr %411, i64 %502
  store ptr %503, ptr %33, align 8, !tbaa !50
  %504 = load i32, ptr %22, align 4, !tbaa !24
  %505 = load i32, ptr %27, align 4, !tbaa !24
  %506 = load i32, ptr %28, align 4, !tbaa !24
  %507 = mul i32 %506, %505
  %508 = mul i32 %507, %.0321405
  %509 = mul i32 %508, %504
  %510 = zext i32 %509 to i64
  %511 = getelementptr inbounds i8, ptr %198, i64 %510
  %512 = mul i32 %454, %505
  %513 = mul i32 %512, %506
  %514 = zext i32 %513 to i64
  %515 = getelementptr inbounds i8, ptr %511, i64 %514
  store ptr %515, ptr %240, align 8, !tbaa !53
  store i64 %308, ptr %241, align 8, !tbaa !54
  %516 = zext i32 %497 to i64
  %517 = getelementptr inbounds [3 x [3 x ptr]], ptr @__const._Z22convolution_1x1_direct10TensorDescPhPfS_PKa20ConvolutionParamSpecS_PKfjPvS_S7_S1_19ActivationParamSpec.kernel, i64 0, i64 %445, i64 %516
  %518 = load ptr, ptr %517, align 8, !tbaa !5
  call void %518(ptr noundef nonnull align 8 dereferenceable(184) %33)
  br label %.loopexit

.loopexit:                                        ; preds = %.lr.ph397, %.preheader, %472, %473, %493
  %.0318 = phi i32 [ 1, %472 ], [ 1, %473 ], [ %500, %493 ], [ 1, %.preheader ], [ 1, %.lr.ph397 ]
  %519 = add i32 %.0318, %.0313401
  %520 = load i32, ptr %32, align 4, !tbaa !24
  %521 = icmp ult i32 %519, %520
  br i1 %521, label %460, label %._crit_edge.loopexit, !llvm.loop !66

.loopexit383:                                     ; preds = %._crit_edge407, %._crit_edge421, %.lr.ph426, %.preheader381.lr.ph, %.preheader384, %.preheader382
  %522 = add i32 %291, %.0334428
  %523 = load i32, ptr %22, align 4
  %524 = icmp ult i32 %522, %523
  br i1 %524, label %.lr.ph432, label %._crit_edge433, !llvm.loop !67

._crit_edge433:                                   ; preds = %.loopexit383, %.loopexit386
  %525 = phi i32 [ 0, %.loopexit386 ], [ %523, %.loopexit383 ]
  %526 = add nuw i32 %.0326436, 1
  %527 = load i32, ptr %21, align 4, !tbaa !24
  %.not362 = icmp ult i32 %526, %527
  br i1 %.not362, label %245, label %.critedge, !llvm.loop !68

.critedge:                                        ; preds = %._crit_edge433, %224
  %528 = load i32, ptr %17, align 4, !tbaa !35
  %529 = icmp eq i32 %528, 10
  br i1 %529, label %530, label %.thread372

530:                                              ; preds = %.critedge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #10
  store float -1.000000e+00, ptr %36, align 4, !tbaa !41
  %531 = getelementptr inbounds i8, ptr %36, i64 4
  %532 = load float, ptr %141, align 4, !tbaa !41
  store float %532, ptr %531, align 4, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %37) #10
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(92) %37, ptr noundef nonnull align 8 dereferenceable(92) %10, i64 92, i1 false), !tbaa.struct !37
  store i32 10, ptr %37, align 4, !tbaa !39
  %533 = call noundef i32 @_Z12quantize_x8610TensorDescPKvPS_PvPfi(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %10, ptr noundef %.0319, ptr noundef nonnull %37, ptr noundef %11, ptr noundef nonnull %36, i32 noundef 0)
  %.not363 = icmp eq i32 %533, 0
  br i1 %.not363, label %544, label %534

534:                                              ; preds = %530
  %535 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %536 = trunc i64 %535 to i32
  %537 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %536)
  %538 = load ptr, ptr @stdout, align 8, !tbaa !5
  %539 = call i32 @fflush(ptr noundef %538)
  %540 = call ptr @ee2str(i32 noundef %533)
  %541 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1, ptr noundef %540)
  %542 = load ptr, ptr @stdout, align 8, !tbaa !5
  %543 = call i32 @fflush(ptr noundef %542)
  call void @exit(i32 noundef 1) #11
  unreachable

544:                                              ; preds = %530
  %545 = load float, ptr %36, align 4, !tbaa !41
  store float %545, ptr %141, align 4, !tbaa !41
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %37) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #10
  br label %.thread372

.thread372:                                       ; preds = %245, %.critedge, %544
  %.3 = phi i32 [ 0, %544 ], [ 0, %.critedge ], [ 51, %245 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #10
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %33) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #10
  ret i32 %.3
}

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z11tensor4dGet10TensorDescP8DataTypeP10DataFormatPjS4_S4_S4_(ptr noundef byval(%struct.TensorDesc) align 8, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #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) #3

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

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

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

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

; Function Attrs: noreturn nounwind
declare void @exit(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

declare noundef i32 @_Z12quantize_x8610TensorDescPKvPS_PvPfi(ptr noundef byval(%struct.TensorDesc) align 8, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #7

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

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

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

declare noundef i32 @_Z21quantize_bias_offsetCPKv10TensorDesc8DataTypeS0_S1_PKfPv(ptr noundef, ptr noundef byval(%struct.TensorDesc) align 8, i32 noundef, ptr noundef, ptr noundef byval(%struct.TensorDesc) align 8, ptr noundef, ptr noundef) local_unnamed_addr #7

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umin.i32(i32, i32) #9

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umax.i32(i32, i32) #9

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"_ZTS10DataFormat", !7, i64 0}
!11 = !{!12, !13, i64 20}
!12 = !{!"_ZTS20ConvolutionParamSpec", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !13, i64 24, !13, i64 28, !13, i64 32, !13, i64 36, !13, i64 40, !13, i64 44, !13, i64 48, !13, i64 52, !13, i64 56, !13, i64 60, !13, i64 64, !13, i64 68, !14, i64 72, !15, i64 76, !15, i64 80, !7, i64 84, !16, i64 92, !13, i64 96, !13, i64 100, !13, i64 104}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTS15ConvolutionMode", !7, i64 0}
!15 = !{!"_ZTS14ActivationMode", !7, i64 0}
!16 = !{!"_ZTS9RoundMode", !7, i64 0}
!17 = !{!12, !13, i64 24}
!18 = !{!12, !13, i64 36}
!19 = !{!12, !13, i64 40}
!20 = !{!12, !13, i64 44}
!21 = !{!12, !13, i64 48}
!22 = !{!12, !13, i64 60}
!23 = !{!12, !13, i64 64}
!24 = !{!13, !13, i64 0}
!25 = !{!26, !27, i64 96}
!26 = !{!"_ZTS14ConvController", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !27, i64 48, !27, i64 56, !27, i64 64, !6, i64 72, !27, i64 80, !27, i64 88, !27, i64 96, !27, i64 104, !27, i64 112, !27, i64 120, !27, i64 128, !27, i64 136, !6, i64 144, !28, i64 152, !27, i64 160, !27, i64 168, !6, i64 176}
!27 = !{!"long", !7, i64 0}
!28 = !{!"bool", !7, i64 0}
!29 = !{!26, !27, i64 80}
!30 = !{!26, !27, i64 88}
!31 = !{!26, !27, i64 112}
!32 = !{!26, !27, i64 56}
!33 = !{!26, !27, i64 64}
!34 = !{!26, !6, i64 144}
!35 = !{!36, !36, i64 0}
!36 = !{!"_ZTS8DataType", !7, i64 0}
!37 = !{i64 0, i64 4, !35, i64 4, i64 4, !9, i64 8, i64 4, !24, i64 12, i64 80, !38}
!38 = !{!7, !7, i64 0}
!39 = !{!40, !36, i64 0}
!40 = !{!"_ZTS10TensorDesc", !36, i64 0, !10, i64 4, !13, i64 8, !7, i64 12}
!41 = !{!42, !42, i64 0}
!42 = !{!"float", !7, i64 0}
!43 = !{!44, !15, i64 0}
!44 = !{!"_ZTS19ActivationParamSpec", !15, i64 0, !7, i64 4}
!45 = distinct !{!45, !46}
!46 = !{!"llvm.loop.mustprogress"}
!47 = distinct !{!47, !46}
!48 = !{!26, !27, i64 104}
!49 = !{!26, !6, i64 40}
!50 = !{!26, !6, i64 0}
!51 = !{!26, !6, i64 16}
!52 = !{!26, !6, i64 24}
!53 = !{!26, !6, i64 8}
!54 = !{!26, !27, i64 48}
!55 = distinct !{!55, !46}
!56 = distinct !{!56, !46}
!57 = distinct !{!57, !46, !58}
!58 = !{!"llvm.loop.unswitch.partial.disable"}
!59 = distinct !{!59, !46, !60}
!60 = !{!"llvm.loop.peeled.count", i32 1}
!61 = distinct !{!61, !46, !60}
!62 = distinct !{!62, !46, !58}
!63 = distinct !{!63, !46, !58}
!64 = distinct !{!64, !46}
!65 = distinct !{!65, !46}
!66 = distinct !{!66, !46}
!67 = distinct !{!67, !46}
!68 = distinct !{!68, !46}


; Effective O3 passes: ConstraintEliminationPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopFullUnrollPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimpleLoopUnswitchPass,SimplifyCFGPass