; LLVM IR from jingweizhanghuai/Morn :: src/deep_learning (morn_tensor_channel)

; 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.MLayer = type { [32 x i8], i32, ptr, ptr, ptr, i32 }
%struct.TensorMergePara = type { ptr, ptr, i32, i32 }
%struct.MTensor = type { i32, i32, i32, i32, ptr, i32 }

@.str.1 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [36 x i8], align 1
@__FUNCTION__.TensorMergeSet = external hidden unnamed_addr constant [15 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [19 x i8], align 1
@morn_network_flag = external global i32, align 4

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

declare ptr @m_Malloc(i32 noundef) #1

declare void @m_Exception(i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, ...) #1

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

; Function Attrs: nounwind uwtable
define dso_local void @TensorMergeSet(ptr noundef %0) #2 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %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
  store ptr %0, ptr %2, align 8, !tbaa !5
  %30 = load ptr, ptr %2, align 8, !tbaa !5
  %31 = getelementptr inbounds %struct.MLayer, ptr %30, i32 0, i32 5
  %32 = load i32, ptr %31, align 8, !tbaa !9
  %33 = icmp ne i32 %32, -1
  br i1 %33, label %34, label %35

34:                                               ; preds = %1
  br label %764

35:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #4
  %36 = load ptr, ptr %2, align 8, !tbaa !5
  %37 = getelementptr inbounds %struct.MLayer, ptr %36, i32 0, i32 4
  %38 = load ptr, ptr %37, align 8, !tbaa !12
  store ptr %38, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #4
  %39 = load ptr, ptr %3, align 8, !tbaa !5
  %40 = getelementptr inbounds %struct.TensorMergePara, ptr %39, i32 0, i32 0
  %41 = load ptr, ptr %40, align 8, !tbaa !13
  %42 = getelementptr inbounds %struct.MLayer, ptr %41, i32 0, i32 2
  %43 = load ptr, ptr %42, align 8, !tbaa !15
  store ptr %43, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #4
  %44 = load ptr, ptr %3, align 8, !tbaa !5
  %45 = getelementptr inbounds %struct.TensorMergePara, ptr %44, i32 0, i32 0
  %46 = load ptr, ptr %45, align 8, !tbaa !13
  %47 = getelementptr inbounds %struct.MLayer, ptr %46, i32 0, i32 3
  %48 = load ptr, ptr %47, align 8, !tbaa !16
  store ptr %48, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #4
  %49 = load ptr, ptr %3, align 8, !tbaa !5
  %50 = getelementptr inbounds %struct.TensorMergePara, ptr %49, i32 0, i32 1
  %51 = load ptr, ptr %50, align 8, !tbaa !17
  %52 = getelementptr inbounds %struct.MLayer, ptr %51, i32 0, i32 2
  %53 = load ptr, ptr %52, align 8, !tbaa !15
  store ptr %53, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #4
  %54 = load ptr, ptr %3, align 8, !tbaa !5
  %55 = getelementptr inbounds %struct.TensorMergePara, ptr %54, i32 0, i32 1
  %56 = load ptr, ptr %55, align 8, !tbaa !17
  %57 = getelementptr inbounds %struct.MLayer, ptr %56, i32 0, i32 3
  %58 = load ptr, ptr %57, align 8, !tbaa !16
  store ptr %58, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #4
  %59 = load ptr, ptr %2, align 8, !tbaa !5
  %60 = getelementptr inbounds %struct.MLayer, ptr %59, i32 0, i32 2
  %61 = load ptr, ptr %60, align 8, !tbaa !15
  store ptr %61, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #4
  %62 = load ptr, ptr %4, align 8, !tbaa !5
  %63 = getelementptr inbounds %struct.MTensor, ptr %62, i32 0, i32 0
  %64 = load i32, ptr %63, align 8, !tbaa !18
  store i32 %64, ptr %9, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #4
  %65 = load ptr, ptr %4, align 8, !tbaa !5
  %66 = getelementptr inbounds %struct.MTensor, ptr %65, i32 0, i32 2
  %67 = load i32, ptr %66, align 8, !tbaa !21
  store i32 %67, ptr %10, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #4
  %68 = load ptr, ptr %4, align 8, !tbaa !5
  %69 = getelementptr inbounds %struct.MTensor, ptr %68, i32 0, i32 3
  %70 = load i32, ptr %69, align 4, !tbaa !22
  store i32 %70, ptr %11, align 4, !tbaa !20
  %71 = load ptr, ptr %4, align 8, !tbaa !5
  %72 = getelementptr inbounds %struct.MTensor, ptr %71, i32 0, i32 2
  %73 = load i32, ptr %72, align 8, !tbaa !21
  %74 = load ptr, ptr %4, align 8, !tbaa !5
  %75 = getelementptr inbounds %struct.MTensor, ptr %74, i32 0, i32 3
  %76 = load i32, ptr %75, align 4, !tbaa !22
  %77 = call i32 (ptr, ...) @printf(ptr noundef @.str.5, i32 noundef %73, i32 noundef %76)
  %78 = load ptr, ptr %6, align 8, !tbaa !5
  %79 = getelementptr inbounds %struct.MTensor, ptr %78, i32 0, i32 2
  %80 = load i32, ptr %79, align 8, !tbaa !21
  %81 = load ptr, ptr %6, align 8, !tbaa !5
  %82 = getelementptr inbounds %struct.MTensor, ptr %81, i32 0, i32 3
  %83 = load i32, ptr %82, align 4, !tbaa !22
  %84 = call i32 (ptr, ...) @printf(ptr noundef @.str.6, i32 noundef %80, i32 noundef %83)
  br label %85

85:                                               ; preds = %35
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #4
  %86 = load i32, ptr %10, align 4, !tbaa !20
  %87 = load ptr, ptr %6, align 8, !tbaa !5
  %88 = getelementptr inbounds %struct.MTensor, ptr %87, i32 0, i32 2
  %89 = load i32, ptr %88, align 8, !tbaa !21
  %90 = icmp ne i32 %86, %89
  br i1 %90, label %103, label %91

91:                                               ; preds = %85
  %92 = load i32, ptr %11, align 4, !tbaa !20
  %93 = load ptr, ptr %6, align 8, !tbaa !5
  %94 = getelementptr inbounds %struct.MTensor, ptr %93, i32 0, i32 3
  %95 = load i32, ptr %94, align 4, !tbaa !22
  %96 = icmp ne i32 %92, %95
  br i1 %96, label %103, label %97

97:                                               ; preds = %91
  %98 = load i32, ptr %9, align 4, !tbaa !20
  %99 = load ptr, ptr %6, align 8, !tbaa !5
  %100 = getelementptr inbounds %struct.MTensor, ptr %99, i32 0, i32 0
  %101 = load i32, ptr %100, align 8, !tbaa !18
  %102 = icmp ne i32 %98, %101
  br label %103

103:                                              ; preds = %97, %91, %85
  %104 = phi i1 [ true, %91 ], [ true, %85 ], [ %102, %97 ]
  %105 = zext i1 %104 to i32
  store i32 %105, ptr %12, align 4, !tbaa !20
  %106 = load i32, ptr %12, align 4, !tbaa !20
  %107 = icmp ne i32 %106, 0
  br i1 %107, label %108, label %110

108:                                              ; preds = %103
  %109 = load i32, ptr %12, align 4, !tbaa !20
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %109, i32 noundef -1, ptr noundef @.str.1, i32 noundef 48, ptr noundef @__FUNCTION__.TensorMergeSet, ptr noundef @.str.7)
  br label %110

110:                                              ; preds = %108, %103
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #4
  br label %111

111:                                              ; preds = %110
  br label %112

112:                                              ; preds = %111
  br label %113

113:                                              ; preds = %112
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #4
  store i32 5, ptr %13, align 4, !tbaa !20
  %114 = load i32, ptr %13, align 4, !tbaa !20
  %115 = icmp eq i32 %114, 0
  br i1 %115, label %116, label %121

116:                                              ; preds = %113
  %117 = load ptr, ptr %8, align 8, !tbaa !5
  %118 = load ptr, ptr %8, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.MTensor, ptr %118, i32 0, i32 4
  %120 = load ptr, ptr %119, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %117, i32 noundef -1, i32 noundef -1, i32 noundef -1, i32 noundef -1, ptr noundef %120, i32 noundef -1)
  br label %184

121:                                              ; preds = %113
  %122 = load i32, ptr %13, align 4, !tbaa !20
  %123 = icmp eq i32 %122, 4
  br i1 %123, label %124, label %140

124:                                              ; preds = %121
  %125 = load ptr, ptr %8, align 8, !tbaa !5
  %126 = load i32, ptr %9, align 4, !tbaa !20
  %127 = add nsw i32 %126, 0
  %128 = load ptr, ptr %4, align 8, !tbaa !5
  %129 = getelementptr inbounds %struct.MTensor, ptr %128, i32 0, i32 1
  %130 = load i32, ptr %129, align 4, !tbaa !24
  %131 = load ptr, ptr %6, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.MTensor, ptr %131, i32 0, i32 1
  %133 = load i32, ptr %132, align 4, !tbaa !24
  %134 = add nsw i32 %130, %133
  %135 = load i32, ptr %10, align 4, !tbaa !20
  %136 = load i32, ptr %11, align 4, !tbaa !20
  %137 = load ptr, ptr %8, align 8, !tbaa !5
  %138 = getelementptr inbounds %struct.MTensor, ptr %137, i32 0, i32 4
  %139 = load ptr, ptr %138, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %125, i32 noundef %127, i32 noundef %134, i32 noundef %135, i32 noundef %136, ptr noundef %139, i32 noundef -1)
  br label %183

140:                                              ; preds = %121
  %141 = load i32, ptr %13, align 4, !tbaa !20
  %142 = icmp eq i32 %141, 5
  br i1 %142, label %143, label %156

143:                                              ; preds = %140
  %144 = load ptr, ptr %8, align 8, !tbaa !5
  %145 = load i32, ptr %9, align 4, !tbaa !20
  %146 = add nsw i32 %145, 0
  %147 = load ptr, ptr %4, align 8, !tbaa !5
  %148 = getelementptr inbounds %struct.MTensor, ptr %147, i32 0, i32 1
  %149 = load i32, ptr %148, align 4, !tbaa !24
  %150 = load ptr, ptr %6, align 8, !tbaa !5
  %151 = getelementptr inbounds %struct.MTensor, ptr %150, i32 0, i32 1
  %152 = load i32, ptr %151, align 4, !tbaa !24
  %153 = add nsw i32 %149, %152
  %154 = load i32, ptr %10, align 4, !tbaa !20
  %155 = load i32, ptr %11, align 4, !tbaa !20
  call void @TensorRedefine(ptr noundef %144, i32 noundef %146, i32 noundef %153, i32 noundef %154, i32 noundef %155, ptr noundef null, i32 noundef -1)
  br label %182

156:                                              ; preds = %140
  %157 = load i32, ptr %13, align 4, !tbaa !20
  %158 = icmp eq i32 %157, 6
  br i1 %158, label %159, label %172

159:                                              ; preds = %156
  %160 = load ptr, ptr %8, align 8, !tbaa !5
  %161 = load i32, ptr %9, align 4, !tbaa !20
  %162 = add nsw i32 %161, 0
  %163 = load ptr, ptr %4, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.MTensor, ptr %163, i32 0, i32 1
  %165 = load i32, ptr %164, align 4, !tbaa !24
  %166 = load ptr, ptr %6, align 8, !tbaa !5
  %167 = getelementptr inbounds %struct.MTensor, ptr %166, i32 0, i32 1
  %168 = load i32, ptr %167, align 4, !tbaa !24
  %169 = add nsw i32 %165, %168
  %170 = load i32, ptr %10, align 4, !tbaa !20
  %171 = load i32, ptr %11, align 4, !tbaa !20
  call void @TensorRedefine(ptr noundef %160, i32 noundef %162, i32 noundef %169, i32 noundef %170, i32 noundef %171, ptr noundef null, i32 noundef -1)
  br label %181

172:                                              ; preds = %156
  br label %173

173:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #4
  store i32 1, ptr %14, align 4, !tbaa !20
  %174 = load i32, ptr %14, align 4, !tbaa !20
  %175 = icmp ne i32 %174, 0
  br i1 %175, label %176, label %178

176:                                              ; preds = %173
  %177 = load i32, ptr %14, align 4, !tbaa !20
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %177, i32 noundef -1, ptr noundef @.str.1, i32 noundef 50, ptr noundef @__FUNCTION__.TensorMergeSet, ptr noundef @.str.8)
  br label %178

178:                                              ; preds = %176, %173
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #4
  br label %179

179:                                              ; preds = %178
  br label %180

180:                                              ; preds = %179
  br label %181

181:                                              ; preds = %180, %159
  br label %182

182:                                              ; preds = %181, %143
  br label %183

183:                                              ; preds = %182, %124
  br label %184

184:                                              ; preds = %183, %116
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #4
  br label %185

185:                                              ; preds = %184
  br label %186

186:                                              ; preds = %185
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #4
  %187 = load i32, ptr %9, align 4, !tbaa !20
  %188 = sext i32 %187 to i64
  %189 = mul i64 %188, 8
  %190 = trunc i64 %189 to i32
  %191 = call ptr @m_Malloc(i32 noundef %190)
  store ptr %191, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #4
  %192 = load i32, ptr %9, align 4, !tbaa !20
  %193 = sext i32 %192 to i64
  %194 = mul i64 %193, 8
  %195 = trunc i64 %194 to i32
  %196 = call ptr @m_Malloc(i32 noundef %195)
  store ptr %196, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  store i32 0, ptr %17, align 4, !tbaa !20
  br label %197

197:                                              ; preds = %274, %186
  %198 = load i32, ptr %17, align 4, !tbaa !20
  %199 = load i32, ptr %9, align 4, !tbaa !20
  %200 = icmp slt i32 %198, %199
  br i1 %200, label %202, label %201

201:                                              ; preds = %197
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  br label %277

202:                                              ; preds = %197
  %203 = load ptr, ptr %8, align 8, !tbaa !5
  %204 = getelementptr inbounds %struct.MTensor, ptr %203, i32 0, i32 4
  %205 = load ptr, ptr %204, align 8, !tbaa !23
  %206 = load i32, ptr %17, align 4, !tbaa !20
  %207 = sext i32 %206 to i64
  %208 = getelementptr inbounds ptr, ptr %205, i64 %207
  %209 = load ptr, ptr %208, align 8, !tbaa !5
  %210 = load ptr, ptr %15, align 8, !tbaa !5
  %211 = load i32, ptr %17, align 4, !tbaa !20
  %212 = sext i32 %211 to i64
  %213 = getelementptr inbounds ptr, ptr %210, i64 %212
  store ptr %209, ptr %213, align 8, !tbaa !5
  %214 = load ptr, ptr %15, align 8, !tbaa !5
  %215 = load i32, ptr %17, align 4, !tbaa !20
  %216 = sext i32 %215 to i64
  %217 = getelementptr inbounds ptr, ptr %214, i64 %216
  %218 = load ptr, ptr %217, align 8, !tbaa !5
  %219 = load i32, ptr %10, align 4, !tbaa !20
  %220 = load i32, ptr %11, align 4, !tbaa !20
  %221 = mul nsw i32 %219, %220
  %222 = load ptr, ptr %4, align 8, !tbaa !5
  %223 = getelementptr inbounds %struct.MTensor, ptr %222, i32 0, i32 1
  %224 = load i32, ptr %223, align 4, !tbaa !24
  %225 = mul nsw i32 %221, %224
  %226 = sext i32 %225 to i64
  %227 = getelementptr inbounds float, ptr %218, i64 %226
  %228 = load ptr, ptr %16, align 8, !tbaa !5
  %229 = load i32, ptr %17, align 4, !tbaa !20
  %230 = sext i32 %229 to i64
  %231 = getelementptr inbounds ptr, ptr %228, i64 %230
  store ptr %227, ptr %231, align 8, !tbaa !5
  %232 = load ptr, ptr %15, align 8, !tbaa !5
  %233 = load i32, ptr %17, align 4, !tbaa !20
  %234 = sext i32 %233 to i64
  %235 = getelementptr inbounds ptr, ptr %232, i64 %234
  %236 = load ptr, ptr %235, align 8, !tbaa !5
  %237 = load ptr, ptr %4, align 8, !tbaa !5
  %238 = getelementptr inbounds %struct.MTensor, ptr %237, i32 0, i32 4
  %239 = load ptr, ptr %238, align 8, !tbaa !23
  %240 = load i32, ptr %17, align 4, !tbaa !20
  %241 = sext i32 %240 to i64
  %242 = getelementptr inbounds ptr, ptr %239, i64 %241
  %243 = load ptr, ptr %242, align 8, !tbaa !5
  %244 = load i32, ptr %10, align 4, !tbaa !20
  %245 = load i32, ptr %11, align 4, !tbaa !20
  %246 = mul nsw i32 %244, %245
  %247 = load ptr, ptr %4, align 8, !tbaa !5
  %248 = getelementptr inbounds %struct.MTensor, ptr %247, i32 0, i32 1
  %249 = load i32, ptr %248, align 4, !tbaa !24
  %250 = mul nsw i32 %246, %249
  %251 = sext i32 %250 to i64
  %252 = mul i64 %251, 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %236, ptr align 4 %243, i64 %252, i1 false)
  %253 = load ptr, ptr %16, align 8, !tbaa !5
  %254 = load i32, ptr %17, align 4, !tbaa !20
  %255 = sext i32 %254 to i64
  %256 = getelementptr inbounds ptr, ptr %253, i64 %255
  %257 = load ptr, ptr %256, align 8, !tbaa !5
  %258 = load ptr, ptr %6, align 8, !tbaa !5
  %259 = getelementptr inbounds %struct.MTensor, ptr %258, i32 0, i32 4
  %260 = load ptr, ptr %259, align 8, !tbaa !23
  %261 = load i32, ptr %17, align 4, !tbaa !20
  %262 = sext i32 %261 to i64
  %263 = getelementptr inbounds ptr, ptr %260, i64 %262
  %264 = load ptr, ptr %263, align 8, !tbaa !5
  %265 = load i32, ptr %10, align 4, !tbaa !20
  %266 = load i32, ptr %11, align 4, !tbaa !20
  %267 = mul nsw i32 %265, %266
  %268 = load ptr, ptr %6, align 8, !tbaa !5
  %269 = getelementptr inbounds %struct.MTensor, ptr %268, i32 0, i32 1
  %270 = load i32, ptr %269, align 4, !tbaa !24
  %271 = mul nsw i32 %267, %270
  %272 = sext i32 %271 to i64
  %273 = mul i64 %272, 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %257, ptr align 4 %264, i64 %273, i1 false)
  br label %274

274:                                              ; preds = %202
  %275 = load i32, ptr %17, align 4, !tbaa !20
  %276 = add nsw i32 %275, 1
  store i32 %276, ptr %17, align 4, !tbaa !20
  br label %197, !llvm.loop !25

277:                                              ; preds = %201
  br label %278

278:                                              ; preds = %277
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #4
  store i32 5, ptr %18, align 4, !tbaa !20
  %279 = load i32, ptr %18, align 4, !tbaa !20
  %280 = icmp eq i32 %279, 0
  br i1 %280, label %281, label %286

281:                                              ; preds = %278
  %282 = load ptr, ptr %4, align 8, !tbaa !5
  %283 = load ptr, ptr %4, align 8, !tbaa !5
  %284 = getelementptr inbounds %struct.MTensor, ptr %283, i32 0, i32 4
  %285 = load ptr, ptr %284, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %282, i32 noundef -1, i32 noundef -1, i32 noundef -1, i32 noundef -1, ptr noundef %285, i32 noundef -1)
  br label %339

286:                                              ; preds = %278
  %287 = load i32, ptr %18, align 4, !tbaa !20
  %288 = icmp eq i32 %287, 4
  br i1 %288, label %289, label %301

289:                                              ; preds = %286
  %290 = load ptr, ptr %4, align 8, !tbaa !5
  %291 = load i32, ptr %9, align 4, !tbaa !20
  %292 = add nsw i32 %291, 0
  %293 = load ptr, ptr %4, align 8, !tbaa !5
  %294 = getelementptr inbounds %struct.MTensor, ptr %293, i32 0, i32 1
  %295 = load i32, ptr %294, align 4, !tbaa !24
  %296 = load i32, ptr %10, align 4, !tbaa !20
  %297 = load i32, ptr %11, align 4, !tbaa !20
  %298 = load ptr, ptr %4, align 8, !tbaa !5
  %299 = getelementptr inbounds %struct.MTensor, ptr %298, i32 0, i32 4
  %300 = load ptr, ptr %299, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %290, i32 noundef %292, i32 noundef %295, i32 noundef %296, i32 noundef %297, ptr noundef %300, i32 noundef -1)
  br label %338

301:                                              ; preds = %286
  %302 = load i32, ptr %18, align 4, !tbaa !20
  %303 = icmp eq i32 %302, 5
  br i1 %303, label %304, label %314

304:                                              ; preds = %301
  %305 = load ptr, ptr %4, align 8, !tbaa !5
  %306 = load i32, ptr %9, align 4, !tbaa !20
  %307 = add nsw i32 %306, 0
  %308 = load ptr, ptr %4, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.MTensor, ptr %308, i32 0, i32 1
  %310 = load i32, ptr %309, align 4, !tbaa !24
  %311 = load i32, ptr %10, align 4, !tbaa !20
  %312 = load i32, ptr %11, align 4, !tbaa !20
  %313 = load ptr, ptr %15, align 8, !tbaa !5
  call void @TensorRedefine(ptr noundef %305, i32 noundef %307, i32 noundef %310, i32 noundef %311, i32 noundef %312, ptr noundef %313, i32 noundef -1)
  br label %337

314:                                              ; preds = %301
  %315 = load i32, ptr %18, align 4, !tbaa !20
  %316 = icmp eq i32 %315, 6
  br i1 %316, label %317, label %327

317:                                              ; preds = %314
  %318 = load ptr, ptr %4, align 8, !tbaa !5
  %319 = load i32, ptr %9, align 4, !tbaa !20
  %320 = add nsw i32 %319, 0
  %321 = load ptr, ptr %4, align 8, !tbaa !5
  %322 = getelementptr inbounds %struct.MTensor, ptr %321, i32 0, i32 1
  %323 = load i32, ptr %322, align 4, !tbaa !24
  %324 = load i32, ptr %10, align 4, !tbaa !20
  %325 = load i32, ptr %11, align 4, !tbaa !20
  %326 = load ptr, ptr %15, align 8, !tbaa !5
  call void @TensorRedefine(ptr noundef %318, i32 noundef %320, i32 noundef %323, i32 noundef %324, i32 noundef %325, ptr noundef %326, i32 noundef -1)
  br label %336

327:                                              ; preds = %314
  br label %328

328:                                              ; preds = %327
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #4
  store i32 1, ptr %19, align 4, !tbaa !20
  %329 = load i32, ptr %19, align 4, !tbaa !20
  %330 = icmp ne i32 %329, 0
  br i1 %330, label %331, label %333

331:                                              ; preds = %328
  %332 = load i32, ptr %19, align 4, !tbaa !20
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %332, i32 noundef -1, ptr noundef @.str.1, i32 noundef 59, ptr noundef @__FUNCTION__.TensorMergeSet, ptr noundef @.str.8)
  br label %333

333:                                              ; preds = %331, %328
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #4
  br label %334

334:                                              ; preds = %333
  br label %335

335:                                              ; preds = %334
  br label %336

336:                                              ; preds = %335, %317
  br label %337

337:                                              ; preds = %336, %304
  br label %338

338:                                              ; preds = %337, %289
  br label %339

339:                                              ; preds = %338, %281
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #4
  br label %340

340:                                              ; preds = %339
  br label %341

341:                                              ; preds = %340
  br label %342

342:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #4
  store i32 5, ptr %20, align 4, !tbaa !20
  %343 = load i32, ptr %20, align 4, !tbaa !20
  %344 = icmp eq i32 %343, 0
  br i1 %344, label %345, label %350

345:                                              ; preds = %342
  %346 = load ptr, ptr %6, align 8, !tbaa !5
  %347 = load ptr, ptr %6, align 8, !tbaa !5
  %348 = getelementptr inbounds %struct.MTensor, ptr %347, i32 0, i32 4
  %349 = load ptr, ptr %348, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %346, i32 noundef -1, i32 noundef -1, i32 noundef -1, i32 noundef -1, ptr noundef %349, i32 noundef -1)
  br label %403

350:                                              ; preds = %342
  %351 = load i32, ptr %20, align 4, !tbaa !20
  %352 = icmp eq i32 %351, 4
  br i1 %352, label %353, label %365

353:                                              ; preds = %350
  %354 = load ptr, ptr %6, align 8, !tbaa !5
  %355 = load i32, ptr %9, align 4, !tbaa !20
  %356 = add nsw i32 %355, 0
  %357 = load ptr, ptr %6, align 8, !tbaa !5
  %358 = getelementptr inbounds %struct.MTensor, ptr %357, i32 0, i32 1
  %359 = load i32, ptr %358, align 4, !tbaa !24
  %360 = load i32, ptr %10, align 4, !tbaa !20
  %361 = load i32, ptr %11, align 4, !tbaa !20
  %362 = load ptr, ptr %6, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.MTensor, ptr %362, i32 0, i32 4
  %364 = load ptr, ptr %363, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %354, i32 noundef %356, i32 noundef %359, i32 noundef %360, i32 noundef %361, ptr noundef %364, i32 noundef -1)
  br label %402

365:                                              ; preds = %350
  %366 = load i32, ptr %20, align 4, !tbaa !20
  %367 = icmp eq i32 %366, 5
  br i1 %367, label %368, label %378

368:                                              ; preds = %365
  %369 = load ptr, ptr %6, align 8, !tbaa !5
  %370 = load i32, ptr %9, align 4, !tbaa !20
  %371 = add nsw i32 %370, 0
  %372 = load ptr, ptr %6, align 8, !tbaa !5
  %373 = getelementptr inbounds %struct.MTensor, ptr %372, i32 0, i32 1
  %374 = load i32, ptr %373, align 4, !tbaa !24
  %375 = load i32, ptr %10, align 4, !tbaa !20
  %376 = load i32, ptr %11, align 4, !tbaa !20
  %377 = load ptr, ptr %16, align 8, !tbaa !5
  call void @TensorRedefine(ptr noundef %369, i32 noundef %371, i32 noundef %374, i32 noundef %375, i32 noundef %376, ptr noundef %377, i32 noundef -1)
  br label %401

378:                                              ; preds = %365
  %379 = load i32, ptr %20, align 4, !tbaa !20
  %380 = icmp eq i32 %379, 6
  br i1 %380, label %381, label %391

381:                                              ; preds = %378
  %382 = load ptr, ptr %6, align 8, !tbaa !5
  %383 = load i32, ptr %9, align 4, !tbaa !20
  %384 = add nsw i32 %383, 0
  %385 = load ptr, ptr %6, align 8, !tbaa !5
  %386 = getelementptr inbounds %struct.MTensor, ptr %385, i32 0, i32 1
  %387 = load i32, ptr %386, align 4, !tbaa !24
  %388 = load i32, ptr %10, align 4, !tbaa !20
  %389 = load i32, ptr %11, align 4, !tbaa !20
  %390 = load ptr, ptr %16, align 8, !tbaa !5
  call void @TensorRedefine(ptr noundef %382, i32 noundef %384, i32 noundef %387, i32 noundef %388, i32 noundef %389, ptr noundef %390, i32 noundef -1)
  br label %400

391:                                              ; preds = %378
  br label %392

392:                                              ; preds = %391
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #4
  store i32 1, ptr %21, align 4, !tbaa !20
  %393 = load i32, ptr %21, align 4, !tbaa !20
  %394 = icmp ne i32 %393, 0
  br i1 %394, label %395, label %397

395:                                              ; preds = %392
  %396 = load i32, ptr %21, align 4, !tbaa !20
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %396, i32 noundef -1, ptr noundef @.str.1, i32 noundef 60, ptr noundef @__FUNCTION__.TensorMergeSet, ptr noundef @.str.8)
  br label %397

397:                                              ; preds = %395, %392
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #4
  br label %398

398:                                              ; preds = %397
  br label %399

399:                                              ; preds = %398
  br label %400

400:                                              ; preds = %399, %381
  br label %401

401:                                              ; preds = %400, %368
  br label %402

402:                                              ; preds = %401, %353
  br label %403

403:                                              ; preds = %402, %345
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #4
  br label %404

404:                                              ; preds = %403
  br label %405

405:                                              ; preds = %404
  %406 = load ptr, ptr %15, align 8, !tbaa !5
  call void @m_Free(ptr noundef %406)
  %407 = load ptr, ptr %16, align 8, !tbaa !5
  call void @m_Free(ptr noundef %407)
  %408 = load i32, ptr @morn_network_flag, align 4, !tbaa !20
  %409 = icmp eq i32 %408, 1
  br i1 %409, label %410, label %763

410:                                              ; preds = %405
  %411 = load ptr, ptr %5, align 8, !tbaa !5
  %412 = icmp eq ptr %411, null
  br i1 %412, label %417, label %413

413:                                              ; preds = %410
  %414 = load ptr, ptr %5, align 8, !tbaa !5
  %415 = ptrtoint ptr %414 to i64
  %416 = icmp eq i64 %415, -1
  br i1 %416, label %417, label %418

417:                                              ; preds = %413, %410
  br i1 true, label %454, label %523

418:                                              ; preds = %413
  %419 = load ptr, ptr %5, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.MTensor, ptr %419, i32 0, i32 4
  %421 = load ptr, ptr %420, align 8, !tbaa !23
  %422 = icmp eq ptr %421, null
  br i1 %422, label %454, label %423

423:                                              ; preds = %418
  %424 = load ptr, ptr %5, align 8, !tbaa !5
  %425 = getelementptr inbounds %struct.MTensor, ptr %424, i32 0, i32 4
  %426 = load ptr, ptr %425, align 8, !tbaa !23
  %427 = ptrtoint ptr %426 to i64
  %428 = icmp eq i64 %427, -1
  br i1 %428, label %454, label %429

429:                                              ; preds = %423
  %430 = load ptr, ptr %5, align 8, !tbaa !5
  %431 = getelementptr inbounds %struct.MTensor, ptr %430, i32 0, i32 0
  %432 = load i32, ptr %431, align 8, !tbaa !18
  %433 = icmp sle i32 %432, 0
  br i1 %433, label %454, label %434

434:                                              ; preds = %429
  %435 = load ptr, ptr %5, align 8, !tbaa !5
  %436 = getelementptr inbounds %struct.MTensor, ptr %435, i32 0, i32 2
  %437 = load i32, ptr %436, align 8, !tbaa !21
  %438 = icmp sle i32 %437, 0
  br i1 %438, label %454, label %439

439:                                              ; preds = %434
  %440 = load ptr, ptr %5, align 8, !tbaa !5
  %441 = getelementptr inbounds %struct.MTensor, ptr %440, i32 0, i32 3
  %442 = load i32, ptr %441, align 4, !tbaa !22
  %443 = icmp sle i32 %442, 0
  br i1 %443, label %454, label %444

444:                                              ; preds = %439
  %445 = load ptr, ptr %5, align 8, !tbaa !5
  %446 = getelementptr inbounds %struct.MTensor, ptr %445, i32 0, i32 1
  %447 = load i32, ptr %446, align 4, !tbaa !24
  %448 = icmp sle i32 %447, 0
  br i1 %448, label %454, label %449

449:                                              ; preds = %444
  %450 = load ptr, ptr %5, align 8, !tbaa !5
  %451 = getelementptr inbounds ptr, ptr %450, i64 -1
  %452 = load ptr, ptr %451, align 8, !tbaa !5
  %453 = icmp eq ptr %452, null
  br i1 %453, label %454, label %523

454:                                              ; preds = %449, %444, %439, %434, %429, %423, %418, %417
  br label %455

455:                                              ; preds = %454
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  store i32 5, ptr %22, align 4, !tbaa !20
  %456 = load i32, ptr %22, align 4, !tbaa !20
  %457 = icmp eq i32 %456, 0
  br i1 %457, label %458, label %463

458:                                              ; preds = %455
  %459 = load ptr, ptr %5, align 8, !tbaa !5
  %460 = load ptr, ptr %5, align 8, !tbaa !5
  %461 = getelementptr inbounds %struct.MTensor, ptr %460, i32 0, i32 4
  %462 = load ptr, ptr %461, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %459, i32 noundef -1, i32 noundef -1, i32 noundef -1, i32 noundef -1, ptr noundef %462, i32 noundef -1)
  br label %520

463:                                              ; preds = %455
  %464 = load i32, ptr %22, align 4, !tbaa !20
  %465 = icmp eq i32 %464, 4
  br i1 %465, label %466, label %478

466:                                              ; preds = %463
  %467 = load ptr, ptr %5, align 8, !tbaa !5
  %468 = load i32, ptr %9, align 4, !tbaa !20
  %469 = add nsw i32 %468, 0
  %470 = load ptr, ptr %4, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.MTensor, ptr %470, i32 0, i32 1
  %472 = load i32, ptr %471, align 4, !tbaa !24
  %473 = load i32, ptr %10, align 4, !tbaa !20
  %474 = load i32, ptr %11, align 4, !tbaa !20
  %475 = load ptr, ptr %5, align 8, !tbaa !5
  %476 = getelementptr inbounds %struct.MTensor, ptr %475, i32 0, i32 4
  %477 = load ptr, ptr %476, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %467, i32 noundef %469, i32 noundef %472, i32 noundef %473, i32 noundef %474, ptr noundef %477, i32 noundef -1)
  br label %519

478:                                              ; preds = %463
  %479 = load i32, ptr %22, align 4, !tbaa !20
  %480 = icmp eq i32 %479, 5
  br i1 %480, label %481, label %493

481:                                              ; preds = %478
  %482 = load ptr, ptr %5, align 8, !tbaa !5
  %483 = load i32, ptr %9, align 4, !tbaa !20
  %484 = add nsw i32 %483, 0
  %485 = load ptr, ptr %4, align 8, !tbaa !5
  %486 = getelementptr inbounds %struct.MTensor, ptr %485, i32 0, i32 1
  %487 = load i32, ptr %486, align 4, !tbaa !24
  %488 = load i32, ptr %10, align 4, !tbaa !20
  %489 = load i32, ptr %11, align 4, !tbaa !20
  %490 = load ptr, ptr %4, align 8, !tbaa !5
  %491 = getelementptr inbounds %struct.MTensor, ptr %490, i32 0, i32 4
  %492 = load ptr, ptr %491, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %482, i32 noundef %484, i32 noundef %487, i32 noundef %488, i32 noundef %489, ptr noundef %492, i32 noundef -1)
  br label %518

493:                                              ; preds = %478
  %494 = load i32, ptr %22, align 4, !tbaa !20
  %495 = icmp eq i32 %494, 6
  br i1 %495, label %496, label %508

496:                                              ; preds = %493
  %497 = load ptr, ptr %5, align 8, !tbaa !5
  %498 = load i32, ptr %9, align 4, !tbaa !20
  %499 = add nsw i32 %498, 0
  %500 = load ptr, ptr %4, align 8, !tbaa !5
  %501 = getelementptr inbounds %struct.MTensor, ptr %500, i32 0, i32 1
  %502 = load i32, ptr %501, align 4, !tbaa !24
  %503 = load i32, ptr %10, align 4, !tbaa !20
  %504 = load i32, ptr %11, align 4, !tbaa !20
  %505 = load ptr, ptr %4, align 8, !tbaa !5
  %506 = getelementptr inbounds %struct.MTensor, ptr %505, i32 0, i32 4
  %507 = load ptr, ptr %506, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %497, i32 noundef %499, i32 noundef %502, i32 noundef %503, i32 noundef %504, ptr noundef %507, i32 noundef -1)
  br label %517

508:                                              ; preds = %493
  br label %509

509:                                              ; preds = %508
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #4
  store i32 1, ptr %23, align 4, !tbaa !20
  %510 = load i32, ptr %23, align 4, !tbaa !20
  %511 = icmp ne i32 %510, 0
  br i1 %511, label %512, label %514

512:                                              ; preds = %509
  %513 = load i32, ptr %23, align 4, !tbaa !20
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %513, i32 noundef -1, ptr noundef @.str.1, i32 noundef 65, ptr noundef @__FUNCTION__.TensorMergeSet, ptr noundef @.str.8)
  br label %514

514:                                              ; preds = %512, %509
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #4
  br label %515

515:                                              ; preds = %514
  br label %516

516:                                              ; preds = %515
  br label %517

517:                                              ; preds = %516, %496
  br label %518

518:                                              ; preds = %517, %481
  br label %519

519:                                              ; preds = %518, %466
  br label %520

520:                                              ; preds = %519, %458
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  br label %521

521:                                              ; preds = %520
  br label %522

522:                                              ; preds = %521
  br label %586

523:                                              ; preds = %449, %417
  br label %524

524:                                              ; preds = %523
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #4
  store i32 5, ptr %24, align 4, !tbaa !20
  %525 = load i32, ptr %24, align 4, !tbaa !20
  %526 = icmp eq i32 %525, 0
  br i1 %526, label %527, label %532

527:                                              ; preds = %524
  %528 = load ptr, ptr %5, align 8, !tbaa !5
  %529 = load ptr, ptr %5, align 8, !tbaa !5
  %530 = getelementptr inbounds %struct.MTensor, ptr %529, i32 0, i32 4
  %531 = load ptr, ptr %530, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %528, i32 noundef -1, i32 noundef -1, i32 noundef -1, i32 noundef -1, ptr noundef %531, i32 noundef -1)
  br label %583

532:                                              ; preds = %524
  %533 = load i32, ptr %24, align 4, !tbaa !20
  %534 = icmp eq i32 %533, 4
  br i1 %534, label %535, label %547

535:                                              ; preds = %532
  %536 = load ptr, ptr %5, align 8, !tbaa !5
  %537 = load i32, ptr %9, align 4, !tbaa !20
  %538 = add nsw i32 %537, 0
  %539 = load ptr, ptr %4, align 8, !tbaa !5
  %540 = getelementptr inbounds %struct.MTensor, ptr %539, i32 0, i32 1
  %541 = load i32, ptr %540, align 4, !tbaa !24
  %542 = load i32, ptr %10, align 4, !tbaa !20
  %543 = load i32, ptr %11, align 4, !tbaa !20
  %544 = load ptr, ptr %5, align 8, !tbaa !5
  %545 = getelementptr inbounds %struct.MTensor, ptr %544, i32 0, i32 4
  %546 = load ptr, ptr %545, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %536, i32 noundef %538, i32 noundef %541, i32 noundef %542, i32 noundef %543, ptr noundef %546, i32 noundef -1)
  br label %582

547:                                              ; preds = %532
  %548 = load i32, ptr %24, align 4, !tbaa !20
  %549 = icmp eq i32 %548, 5
  br i1 %549, label %550, label %559

550:                                              ; preds = %547
  %551 = load ptr, ptr %5, align 8, !tbaa !5
  %552 = load i32, ptr %9, align 4, !tbaa !20
  %553 = add nsw i32 %552, 0
  %554 = load ptr, ptr %4, align 8, !tbaa !5
  %555 = getelementptr inbounds %struct.MTensor, ptr %554, i32 0, i32 1
  %556 = load i32, ptr %555, align 4, !tbaa !24
  %557 = load i32, ptr %10, align 4, !tbaa !20
  %558 = load i32, ptr %11, align 4, !tbaa !20
  call void @TensorRedefine(ptr noundef %551, i32 noundef %553, i32 noundef %556, i32 noundef %557, i32 noundef %558, ptr noundef null, i32 noundef -1)
  br label %581

559:                                              ; preds = %547
  %560 = load i32, ptr %24, align 4, !tbaa !20
  %561 = icmp eq i32 %560, 6
  br i1 %561, label %562, label %571

562:                                              ; preds = %559
  %563 = load ptr, ptr %5, align 8, !tbaa !5
  %564 = load i32, ptr %9, align 4, !tbaa !20
  %565 = add nsw i32 %564, 0
  %566 = load ptr, ptr %4, align 8, !tbaa !5
  %567 = getelementptr inbounds %struct.MTensor, ptr %566, i32 0, i32 1
  %568 = load i32, ptr %567, align 4, !tbaa !24
  %569 = load i32, ptr %10, align 4, !tbaa !20
  %570 = load i32, ptr %11, align 4, !tbaa !20
  call void @TensorRedefine(ptr noundef %563, i32 noundef %565, i32 noundef %568, i32 noundef %569, i32 noundef %570, ptr noundef null, i32 noundef -1)
  br label %580

571:                                              ; preds = %559
  br label %572

572:                                              ; preds = %571
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #4
  store i32 1, ptr %25, align 4, !tbaa !20
  %573 = load i32, ptr %25, align 4, !tbaa !20
  %574 = icmp ne i32 %573, 0
  br i1 %574, label %575, label %577

575:                                              ; preds = %572
  %576 = load i32, ptr %25, align 4, !tbaa !20
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %576, i32 noundef -1, ptr noundef @.str.1, i32 noundef 66, ptr noundef @__FUNCTION__.TensorMergeSet, ptr noundef @.str.8)
  br label %577

577:                                              ; preds = %575, %572
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #4
  br label %578

578:                                              ; preds = %577
  br label %579

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %579, %562
  br label %581

581:                                              ; preds = %580, %550
  br label %582

582:                                              ; preds = %581, %535
  br label %583

583:                                              ; preds = %582, %527
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #4
  br label %584

584:                                              ; preds = %583
  br label %585

585:                                              ; preds = %584
  br label %586

586:                                              ; preds = %585, %522
  %587 = load ptr, ptr %7, align 8, !tbaa !5
  %588 = icmp eq ptr %587, null
  br i1 %588, label %593, label %589

589:                                              ; preds = %586
  %590 = load ptr, ptr %7, align 8, !tbaa !5
  %591 = ptrtoint ptr %590 to i64
  %592 = icmp eq i64 %591, -1
  br i1 %592, label %593, label %594

593:                                              ; preds = %589, %586
  br i1 true, label %630, label %699

594:                                              ; preds = %589
  %595 = load ptr, ptr %7, align 8, !tbaa !5
  %596 = getelementptr inbounds %struct.MTensor, ptr %595, i32 0, i32 4
  %597 = load ptr, ptr %596, align 8, !tbaa !23
  %598 = icmp eq ptr %597, null
  br i1 %598, label %630, label %599

599:                                              ; preds = %594
  %600 = load ptr, ptr %7, align 8, !tbaa !5
  %601 = getelementptr inbounds %struct.MTensor, ptr %600, i32 0, i32 4
  %602 = load ptr, ptr %601, align 8, !tbaa !23
  %603 = ptrtoint ptr %602 to i64
  %604 = icmp eq i64 %603, -1
  br i1 %604, label %630, label %605

605:                                              ; preds = %599
  %606 = load ptr, ptr %7, align 8, !tbaa !5
  %607 = getelementptr inbounds %struct.MTensor, ptr %606, i32 0, i32 0
  %608 = load i32, ptr %607, align 8, !tbaa !18
  %609 = icmp sle i32 %608, 0
  br i1 %609, label %630, label %610

610:                                              ; preds = %605
  %611 = load ptr, ptr %7, align 8, !tbaa !5
  %612 = getelementptr inbounds %struct.MTensor, ptr %611, i32 0, i32 2
  %613 = load i32, ptr %612, align 8, !tbaa !21
  %614 = icmp sle i32 %613, 0
  br i1 %614, label %630, label %615

615:                                              ; preds = %610
  %616 = load ptr, ptr %7, align 8, !tbaa !5
  %617 = getelementptr inbounds %struct.MTensor, ptr %616, i32 0, i32 3
  %618 = load i32, ptr %617, align 4, !tbaa !22
  %619 = icmp sle i32 %618, 0
  br i1 %619, label %630, label %620

620:                                              ; preds = %615
  %621 = load ptr, ptr %7, align 8, !tbaa !5
  %622 = getelementptr inbounds %struct.MTensor, ptr %621, i32 0, i32 1
  %623 = load i32, ptr %622, align 4, !tbaa !24
  %624 = icmp sle i32 %623, 0
  br i1 %624, label %630, label %625

625:                                              ; preds = %620
  %626 = load ptr, ptr %7, align 8, !tbaa !5
  %627 = getelementptr inbounds ptr, ptr %626, i64 -1
  %628 = load ptr, ptr %627, align 8, !tbaa !5
  %629 = icmp eq ptr %628, null
  br i1 %629, label %630, label %699

630:                                              ; preds = %625, %620, %615, %610, %605, %599, %594, %593
  br label %631

631:                                              ; preds = %630
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #4
  store i32 5, ptr %26, align 4, !tbaa !20
  %632 = load i32, ptr %26, align 4, !tbaa !20
  %633 = icmp eq i32 %632, 0
  br i1 %633, label %634, label %639

634:                                              ; preds = %631
  %635 = load ptr, ptr %7, align 8, !tbaa !5
  %636 = load ptr, ptr %7, align 8, !tbaa !5
  %637 = getelementptr inbounds %struct.MTensor, ptr %636, i32 0, i32 4
  %638 = load ptr, ptr %637, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %635, i32 noundef -1, i32 noundef -1, i32 noundef -1, i32 noundef -1, ptr noundef %638, i32 noundef -1)
  br label %696

639:                                              ; preds = %631
  %640 = load i32, ptr %26, align 4, !tbaa !20
  %641 = icmp eq i32 %640, 4
  br i1 %641, label %642, label %654

642:                                              ; preds = %639
  %643 = load ptr, ptr %7, align 8, !tbaa !5
  %644 = load i32, ptr %9, align 4, !tbaa !20
  %645 = add nsw i32 %644, 0
  %646 = load ptr, ptr %6, align 8, !tbaa !5
  %647 = getelementptr inbounds %struct.MTensor, ptr %646, i32 0, i32 1
  %648 = load i32, ptr %647, align 4, !tbaa !24
  %649 = load i32, ptr %10, align 4, !tbaa !20
  %650 = load i32, ptr %11, align 4, !tbaa !20
  %651 = load ptr, ptr %7, align 8, !tbaa !5
  %652 = getelementptr inbounds %struct.MTensor, ptr %651, i32 0, i32 4
  %653 = load ptr, ptr %652, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %643, i32 noundef %645, i32 noundef %648, i32 noundef %649, i32 noundef %650, ptr noundef %653, i32 noundef -1)
  br label %695

654:                                              ; preds = %639
  %655 = load i32, ptr %26, align 4, !tbaa !20
  %656 = icmp eq i32 %655, 5
  br i1 %656, label %657, label %669

657:                                              ; preds = %654
  %658 = load ptr, ptr %7, align 8, !tbaa !5
  %659 = load i32, ptr %9, align 4, !tbaa !20
  %660 = add nsw i32 %659, 0
  %661 = load ptr, ptr %6, align 8, !tbaa !5
  %662 = getelementptr inbounds %struct.MTensor, ptr %661, i32 0, i32 1
  %663 = load i32, ptr %662, align 4, !tbaa !24
  %664 = load i32, ptr %10, align 4, !tbaa !20
  %665 = load i32, ptr %11, align 4, !tbaa !20
  %666 = load ptr, ptr %6, align 8, !tbaa !5
  %667 = getelementptr inbounds %struct.MTensor, ptr %666, i32 0, i32 4
  %668 = load ptr, ptr %667, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %658, i32 noundef %660, i32 noundef %663, i32 noundef %664, i32 noundef %665, ptr noundef %668, i32 noundef -1)
  br label %694

669:                                              ; preds = %654
  %670 = load i32, ptr %26, align 4, !tbaa !20
  %671 = icmp eq i32 %670, 6
  br i1 %671, label %672, label %684

672:                                              ; preds = %669
  %673 = load ptr, ptr %7, align 8, !tbaa !5
  %674 = load i32, ptr %9, align 4, !tbaa !20
  %675 = add nsw i32 %674, 0
  %676 = load ptr, ptr %6, align 8, !tbaa !5
  %677 = getelementptr inbounds %struct.MTensor, ptr %676, i32 0, i32 1
  %678 = load i32, ptr %677, align 4, !tbaa !24
  %679 = load i32, ptr %10, align 4, !tbaa !20
  %680 = load i32, ptr %11, align 4, !tbaa !20
  %681 = load ptr, ptr %6, align 8, !tbaa !5
  %682 = getelementptr inbounds %struct.MTensor, ptr %681, i32 0, i32 4
  %683 = load ptr, ptr %682, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %673, i32 noundef %675, i32 noundef %678, i32 noundef %679, i32 noundef %680, ptr noundef %683, i32 noundef -1)
  br label %693

684:                                              ; preds = %669
  br label %685

685:                                              ; preds = %684
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #4
  store i32 1, ptr %27, align 4, !tbaa !20
  %686 = load i32, ptr %27, align 4, !tbaa !20
  %687 = icmp ne i32 %686, 0
  br i1 %687, label %688, label %690

688:                                              ; preds = %685
  %689 = load i32, ptr %27, align 4, !tbaa !20
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %689, i32 noundef -1, ptr noundef @.str.1, i32 noundef 67, ptr noundef @__FUNCTION__.TensorMergeSet, ptr noundef @.str.8)
  br label %690

690:                                              ; preds = %688, %685
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #4
  br label %691

691:                                              ; preds = %690
  br label %692

692:                                              ; preds = %691
  br label %693

693:                                              ; preds = %692, %672
  br label %694

694:                                              ; preds = %693, %657
  br label %695

695:                                              ; preds = %694, %642
  br label %696

696:                                              ; preds = %695, %634
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #4
  br label %697

697:                                              ; preds = %696
  br label %698

698:                                              ; preds = %697
  br label %762

699:                                              ; preds = %625, %593
  br label %700

700:                                              ; preds = %699
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #4
  store i32 5, ptr %28, align 4, !tbaa !20
  %701 = load i32, ptr %28, align 4, !tbaa !20
  %702 = icmp eq i32 %701, 0
  br i1 %702, label %703, label %708

703:                                              ; preds = %700
  %704 = load ptr, ptr %7, align 8, !tbaa !5
  %705 = load ptr, ptr %7, align 8, !tbaa !5
  %706 = getelementptr inbounds %struct.MTensor, ptr %705, i32 0, i32 4
  %707 = load ptr, ptr %706, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %704, i32 noundef -1, i32 noundef -1, i32 noundef -1, i32 noundef -1, ptr noundef %707, i32 noundef -1)
  br label %759

708:                                              ; preds = %700
  %709 = load i32, ptr %28, align 4, !tbaa !20
  %710 = icmp eq i32 %709, 4
  br i1 %710, label %711, label %723

711:                                              ; preds = %708
  %712 = load ptr, ptr %7, align 8, !tbaa !5
  %713 = load i32, ptr %9, align 4, !tbaa !20
  %714 = add nsw i32 %713, 0
  %715 = load ptr, ptr %6, align 8, !tbaa !5
  %716 = getelementptr inbounds %struct.MTensor, ptr %715, i32 0, i32 1
  %717 = load i32, ptr %716, align 4, !tbaa !24
  %718 = load i32, ptr %10, align 4, !tbaa !20
  %719 = load i32, ptr %11, align 4, !tbaa !20
  %720 = load ptr, ptr %7, align 8, !tbaa !5
  %721 = getelementptr inbounds %struct.MTensor, ptr %720, i32 0, i32 4
  %722 = load ptr, ptr %721, align 8, !tbaa !23
  call void @TensorRedefine(ptr noundef %712, i32 noundef %714, i32 noundef %717, i32 noundef %718, i32 noundef %719, ptr noundef %722, i32 noundef -1)
  br label %758

723:                                              ; preds = %708
  %724 = load i32, ptr %28, align 4, !tbaa !20
  %725 = icmp eq i32 %724, 5
  br i1 %725, label %726, label %735

726:                                              ; preds = %723
  %727 = load ptr, ptr %7, align 8, !tbaa !5
  %728 = load i32, ptr %9, align 4, !tbaa !20
  %729 = add nsw i32 %728, 0
  %730 = load ptr, ptr %6, align 8, !tbaa !5
  %731 = getelementptr inbounds %struct.MTensor, ptr %730, i32 0, i32 1
  %732 = load i32, ptr %731, align 4, !tbaa !24
  %733 = load i32, ptr %10, align 4, !tbaa !20
  %734 = load i32, ptr %11, align 4, !tbaa !20
  call void @TensorRedefine(ptr noundef %727, i32 noundef %729, i32 noundef %732, i32 noundef %733, i32 noundef %734, ptr noundef null, i32 noundef -1)
  br label %757

735:                                              ; preds = %723
  %736 = load i32, ptr %28, align 4, !tbaa !20
  %737 = icmp eq i32 %736, 6
  br i1 %737, label %738, label %747

738:                                              ; preds = %735
  %739 = load ptr, ptr %7, align 8, !tbaa !5
  %740 = load i32, ptr %9, align 4, !tbaa !20
  %741 = add nsw i32 %740, 0
  %742 = load ptr, ptr %6, align 8, !tbaa !5
  %743 = getelementptr inbounds %struct.MTensor, ptr %742, i32 0, i32 1
  %744 = load i32, ptr %743, align 4, !tbaa !24
  %745 = load i32, ptr %10, align 4, !tbaa !20
  %746 = load i32, ptr %11, align 4, !tbaa !20
  call void @TensorRedefine(ptr noundef %739, i32 noundef %741, i32 noundef %744, i32 noundef %745, i32 noundef %746, ptr noundef null, i32 noundef -1)
  br label %756

747:                                              ; preds = %735
  br label %748

748:                                              ; preds = %747
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #4
  store i32 1, ptr %29, align 4, !tbaa !20
  %749 = load i32, ptr %29, align 4, !tbaa !20
  %750 = icmp ne i32 %749, 0
  br i1 %750, label %751, label %753

751:                                              ; preds = %748
  %752 = load i32, ptr %29, align 4, !tbaa !20
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %752, i32 noundef -1, ptr noundef @.str.1, i32 noundef 68, ptr noundef @__FUNCTION__.TensorMergeSet, ptr noundef @.str.8)
  br label %753

753:                                              ; preds = %751, %748
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #4
  br label %754

754:                                              ; preds = %753
  br label %755

755:                                              ; preds = %754
  br label %756

756:                                              ; preds = %755, %738
  br label %757

757:                                              ; preds = %756, %726
  br label %758

758:                                              ; preds = %757, %711
  br label %759

759:                                              ; preds = %758, %703
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #4
  br label %760

760:                                              ; preds = %759
  br label %761

761:                                              ; preds = %760
  br label %762

762:                                              ; preds = %761, %698
  br label %763

763:                                              ; preds = %762, %405
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #4
  br label %764

764:                                              ; preds = %763, %34
  ret void
}

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

declare void @TensorRedefine(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) #1

; 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

declare void @m_Free(ptr noundef) #1

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 }

!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/C++ TBAA"}
!9 = !{!10, !11, i64 64}
!10 = !{!"MLayer", !7, i64 0, !11, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !11, i64 64}
!11 = !{!"int", !7, i64 0}
!12 = !{!10, !6, i64 56}
!13 = !{!14, !6, i64 0}
!14 = !{!"TensorMergePara", !6, i64 0, !6, i64 8, !11, i64 16, !11, i64 20}
!15 = !{!10, !6, i64 40}
!16 = !{!10, !6, i64 48}
!17 = !{!14, !6, i64 8}
!18 = !{!19, !11, i64 0}
!19 = !{!"MTensor", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !6, i64 16, !11, i64 24}
!20 = !{!11, !11, i64 0}
!21 = !{!19, !11, i64 8}
!22 = !{!19, !11, i64 12}
!23 = !{!19, !6, i64 16}
!24 = !{!19, !11, i64 4}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}


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

@.str.1 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [36 x i8], align 1
@__FUNCTION__.TensorMergeSet = external hidden unnamed_addr constant [15 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [19 x i8], align 1
@morn_network_flag = external local_unnamed_addr global i32, align 4

declare ptr @m_Malloc(i32 noundef) local_unnamed_addr #0

declare void @m_Exception(i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, ...) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
define dso_local void @TensorMergeSet(ptr nocapture noundef readonly %0) local_unnamed_addr #1 {
  %2 = getelementptr inbounds i8, ptr %0, i64 64
  %3 = load i32, ptr %2, align 8, !tbaa !5
  %.not = icmp eq i32 %3, -1
  br i1 %.not, label %4, label %135

4:                                                ; preds = %1
  %5 = getelementptr inbounds i8, ptr %0, i64 56
  %6 = load ptr, ptr %5, align 8, !tbaa !11
  %7 = load ptr, ptr %6, align 8, !tbaa !12
  %8 = getelementptr inbounds i8, ptr %7, i64 40
  %9 = load ptr, ptr %8, align 8, !tbaa !14
  %10 = getelementptr inbounds i8, ptr %7, i64 48
  %11 = load ptr, ptr %10, align 8, !tbaa !15
  %12 = getelementptr inbounds i8, ptr %6, i64 8
  %13 = load ptr, ptr %12, align 8, !tbaa !16
  %14 = getelementptr inbounds i8, ptr %13, i64 40
  %15 = load ptr, ptr %14, align 8, !tbaa !14
  %16 = getelementptr inbounds i8, ptr %13, i64 48
  %17 = load ptr, ptr %16, align 8, !tbaa !15
  %18 = getelementptr inbounds i8, ptr %0, i64 40
  %19 = load ptr, ptr %18, align 8, !tbaa !14
  %20 = load i32, ptr %9, align 8, !tbaa !17
  %21 = getelementptr inbounds i8, ptr %9, i64 8
  %22 = load i32, ptr %21, align 8, !tbaa !19
  %23 = getelementptr inbounds i8, ptr %9, i64 12
  %24 = load i32, ptr %23, align 4, !tbaa !20
  %25 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.5, i32 noundef %22, i32 noundef %24)
  %26 = getelementptr inbounds i8, ptr %15, i64 8
  %27 = load i32, ptr %26, align 8, !tbaa !19
  %28 = getelementptr inbounds i8, ptr %15, i64 12
  %29 = load i32, ptr %28, align 4, !tbaa !20
  %30 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.6, i32 noundef %27, i32 noundef %29)
  %31 = load i32, ptr %26, align 8, !tbaa !19
  %.not260 = icmp eq i32 %22, %31
  br i1 %.not260, label %32, label %.thread

32:                                               ; preds = %4
  %33 = load i32, ptr %28, align 4, !tbaa !20
  %.not261 = icmp eq i32 %24, %33
  br i1 %.not261, label %34, label %.thread

34:                                               ; preds = %32
  %35 = load i32, ptr %15, align 8, !tbaa !17
  %.not265 = icmp eq i32 %20, %35
  br i1 %.not265, label %36, label %.thread

.thread:                                          ; preds = %4, %32, %34
  tail call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef 1, i32 noundef -1, ptr noundef nonnull @.str.1, i32 noundef 48, ptr noundef nonnull @__FUNCTION__.TensorMergeSet, ptr noundef nonnull @.str.7) #4
  br label %36

36:                                               ; preds = %34, %.thread
  %37 = getelementptr inbounds i8, ptr %9, i64 4
  %38 = load i32, ptr %37, align 4, !tbaa !21
  %39 = getelementptr inbounds i8, ptr %15, i64 4
  %40 = load i32, ptr %39, align 4, !tbaa !21
  %41 = add nsw i32 %40, %38
  tail call void @TensorRedefine(ptr noundef %19, i32 noundef %20, i32 noundef %41, i32 noundef %22, i32 noundef %24, ptr noundef null, i32 noundef -1) #4
  %42 = shl i32 %20, 3
  %43 = tail call ptr @m_Malloc(i32 noundef %42) #4
  %44 = tail call ptr @m_Malloc(i32 noundef %42) #4
  %45 = icmp sgt i32 %20, 0
  br i1 %45, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %36
  %46 = getelementptr inbounds i8, ptr %19, i64 16
  %47 = mul nsw i32 %24, %22
  %48 = getelementptr inbounds i8, ptr %9, i64 16
  %49 = getelementptr inbounds i8, ptr %15, i64 16
  %wide.trip.count = zext nneg i32 %20 to i64
  br label %50

50:                                               ; preds = %.lr.ph, %50
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %50 ]
  %51 = load ptr, ptr %46, align 8, !tbaa !22
  %52 = getelementptr inbounds ptr, ptr %51, i64 %indvars.iv
  %53 = load ptr, ptr %52, align 8, !tbaa !23
  %54 = getelementptr inbounds ptr, ptr %43, i64 %indvars.iv
  store ptr %53, ptr %54, align 8, !tbaa !23
  %55 = load i32, ptr %37, align 4, !tbaa !21
  %56 = mul nsw i32 %55, %47
  %57 = sext i32 %56 to i64
  %58 = getelementptr inbounds float, ptr %53, i64 %57
  %59 = getelementptr inbounds ptr, ptr %44, i64 %indvars.iv
  store ptr %58, ptr %59, align 8, !tbaa !23
  %60 = load ptr, ptr %54, align 8, !tbaa !23
  %61 = load ptr, ptr %48, align 8, !tbaa !22
  %62 = getelementptr inbounds ptr, ptr %61, i64 %indvars.iv
  %63 = load ptr, ptr %62, align 8, !tbaa !23
  %64 = shl nsw i64 %57, 2
  tail call void @llvm.memcpy.p0.p0.i64(ptr align 4 %60, ptr align 4 %63, i64 %64, i1 false)
  %65 = load ptr, ptr %59, align 8, !tbaa !23
  %66 = load ptr, ptr %49, align 8, !tbaa !22
  %67 = getelementptr inbounds ptr, ptr %66, i64 %indvars.iv
  %68 = load ptr, ptr %67, align 8, !tbaa !23
  %69 = load i32, ptr %39, align 4, !tbaa !21
  %70 = mul nsw i32 %69, %47
  %71 = sext i32 %70 to i64
  %72 = shl nsw i64 %71, 2
  tail call void @llvm.memcpy.p0.p0.i64(ptr align 4 %65, ptr align 4 %68, i64 %72, i1 false)
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %50, !llvm.loop !24

._crit_edge:                                      ; preds = %50, %36
  %73 = load i32, ptr %37, align 4, !tbaa !21
  tail call void @TensorRedefine(ptr noundef nonnull %9, i32 noundef %20, i32 noundef %73, i32 noundef %22, i32 noundef %24, ptr noundef %43, i32 noundef -1) #4
  %74 = load i32, ptr %39, align 4, !tbaa !21
  tail call void @TensorRedefine(ptr noundef nonnull %15, i32 noundef %20, i32 noundef %74, i32 noundef %22, i32 noundef %24, ptr noundef %44, i32 noundef -1) #4
  tail call void @m_Free(ptr noundef %43) #4
  tail call void @m_Free(ptr noundef %44) #4
  %75 = load i32, ptr @morn_network_flag, align 4, !tbaa !26
  %76 = icmp eq i32 %75, 1
  br i1 %76, label %77, label %135

77:                                               ; preds = %._crit_edge
  %magicptr = ptrtoint ptr %11 to i64
  switch i64 %magicptr, label %78 [
    i64 -1, label %100
    i64 0, label %100
  ]

78:                                               ; preds = %77
  %79 = getelementptr inbounds i8, ptr %11, i64 16
  %80 = load ptr, ptr %79, align 8, !tbaa !22
  %magicptr262 = ptrtoint ptr %80 to i64
  switch i64 %magicptr262, label %81 [
    i64 0, label %100
    i64 -1, label %100
  ]

81:                                               ; preds = %78
  %82 = load i32, ptr %11, align 8, !tbaa !17
  %83 = icmp slt i32 %82, 1
  br i1 %83, label %100, label %84

84:                                               ; preds = %81
  %85 = getelementptr inbounds i8, ptr %11, i64 8
  %86 = load i32, ptr %85, align 8, !tbaa !19
  %87 = icmp slt i32 %86, 1
  br i1 %87, label %100, label %88

88:                                               ; preds = %84
  %89 = getelementptr inbounds i8, ptr %11, i64 12
  %90 = load i32, ptr %89, align 4, !tbaa !20
  %91 = icmp slt i32 %90, 1
  br i1 %91, label %100, label %92

92:                                               ; preds = %88
  %93 = getelementptr inbounds i8, ptr %11, i64 4
  %94 = load i32, ptr %93, align 4, !tbaa !21
  %95 = icmp slt i32 %94, 1
  br i1 %95, label %100, label %96

96:                                               ; preds = %92
  %97 = getelementptr inbounds i8, ptr %11, i64 -8
  %98 = load ptr, ptr %97, align 8, !tbaa !23
  %99 = icmp eq ptr %98, null
  br i1 %99, label %100, label %104

100:                                              ; preds = %96, %92, %88, %84, %81, %77, %77, %78, %78
  %101 = load i32, ptr %37, align 4, !tbaa !21
  %102 = getelementptr inbounds i8, ptr %9, i64 16
  %103 = load ptr, ptr %102, align 8, !tbaa !22
  tail call void @TensorRedefine(ptr noundef %11, i32 noundef %20, i32 noundef %101, i32 noundef %22, i32 noundef %24, ptr noundef %103, i32 noundef -1) #4
  br label %106

104:                                              ; preds = %96
  %105 = load i32, ptr %37, align 4, !tbaa !21
  tail call void @TensorRedefine(ptr noundef nonnull %11, i32 noundef %20, i32 noundef %105, i32 noundef %22, i32 noundef %24, ptr noundef null, i32 noundef -1) #4
  br label %106

106:                                              ; preds = %104, %100
  %magicptr263 = ptrtoint ptr %17 to i64
  switch i64 %magicptr263, label %107 [
    i64 -1, label %129
    i64 0, label %129
  ]

107:                                              ; preds = %106
  %108 = getelementptr inbounds i8, ptr %17, i64 16
  %109 = load ptr, ptr %108, align 8, !tbaa !22
  %magicptr264 = ptrtoint ptr %109 to i64
  switch i64 %magicptr264, label %110 [
    i64 0, label %129
    i64 -1, label %129
  ]

110:                                              ; preds = %107
  %111 = load i32, ptr %17, align 8, !tbaa !17
  %112 = icmp slt i32 %111, 1
  br i1 %112, label %129, label %113

113:                                              ; preds = %110
  %114 = getelementptr inbounds i8, ptr %17, i64 8
  %115 = load i32, ptr %114, align 8, !tbaa !19
  %116 = icmp slt i32 %115, 1
  br i1 %116, label %129, label %117

117:                                              ; preds = %113
  %118 = getelementptr inbounds i8, ptr %17, i64 12
  %119 = load i32, ptr %118, align 4, !tbaa !20
  %120 = icmp slt i32 %119, 1
  br i1 %120, label %129, label %121

121:                                              ; preds = %117
  %122 = getelementptr inbounds i8, ptr %17, i64 4
  %123 = load i32, ptr %122, align 4, !tbaa !21
  %124 = icmp slt i32 %123, 1
  br i1 %124, label %129, label %125

125:                                              ; preds = %121
  %126 = getelementptr inbounds i8, ptr %17, i64 -8
  %127 = load ptr, ptr %126, align 8, !tbaa !23
  %128 = icmp eq ptr %127, null
  br i1 %128, label %129, label %133

129:                                              ; preds = %125, %121, %117, %113, %110, %106, %106, %107, %107
  %130 = load i32, ptr %39, align 4, !tbaa !21
  %131 = getelementptr inbounds i8, ptr %15, i64 16
  %132 = load ptr, ptr %131, align 8, !tbaa !22
  tail call void @TensorRedefine(ptr noundef %17, i32 noundef %20, i32 noundef %130, i32 noundef %22, i32 noundef %24, ptr noundef %132, i32 noundef -1) #4
  br label %135

133:                                              ; preds = %125
  %134 = load i32, ptr %39, align 4, !tbaa !21
  tail call void @TensorRedefine(ptr noundef nonnull %17, i32 noundef %20, i32 noundef %134, i32 noundef %22, i32 noundef %24, ptr noundef null, i32 noundef -1) #4
  br label %135

135:                                              ; preds = %._crit_edge, %133, %129, %1
  ret void
}

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

declare void @TensorRedefine(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #0

; 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

declare void @m_Free(ptr noundef) local_unnamed_addr #0

attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind 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 #2 = { 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 #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { 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, !9, i64 64}
!6 = !{!"MLayer", !7, i64 0, !9, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !9, i64 64}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!"int", !7, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!6, !10, i64 56}
!12 = !{!13, !10, i64 0}
!13 = !{!"TensorMergePara", !10, i64 0, !10, i64 8, !9, i64 16, !9, i64 20}
!14 = !{!6, !10, i64 40}
!15 = !{!6, !10, i64 48}
!16 = !{!13, !10, i64 8}
!17 = !{!18, !9, i64 0}
!18 = !{!"MTensor", !9, i64 0, !9, i64 4, !9, i64 8, !9, i64 12, !10, i64 16, !9, i64 24}
!19 = !{!18, !9, i64 8}
!20 = !{!18, !9, i64 12}
!21 = !{!18, !9, i64 4}
!22 = !{!18, !10, i64 16}
!23 = !{!10, !10, i64 0}
!24 = distinct !{!24, !25}
!25 = !{!"llvm.loop.mustprogress"}
!26 = !{!9, !9, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass