; LLVM IR from libxsmm/libxsmm :: samples/eltwise (eltwise_binary_simple)

; 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"

@is_reference_kernel = external dso_local global i32, align 4
@.str = external hidden unnamed_addr constant [213 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [192 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local i32 @libxsmm_return_success_code(i32 noundef) #0

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca [256 x i8], align 16
  %23 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #6
  store i32 0, ptr %21, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 256, ptr %22) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #6
  store i32 1, ptr %23, align 4, !tbaa !5
  %24 = load i32, ptr %4, align 4, !tbaa !5
  %25 = icmp ne i32 %24, 11
  br i1 %25, label %26, label %34

26:                                               ; preds = %2
  %27 = load i32, ptr %4, align 4, !tbaa !5
  %28 = icmp ne i32 %27, 12
  br i1 %28, label %29, label %34

29:                                               ; preds = %26
  %30 = load ptr, ptr %5, align 8, !tbaa !9
  %31 = getelementptr inbounds ptr, ptr %30, i64 0
  %32 = load ptr, ptr %31, align 8, !tbaa !9
  %33 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef %32)
  call void @exit(i32 noundef -1) #7
  unreachable

34:                                               ; preds = %26, %2
  %35 = load ptr, ptr %5, align 8, !tbaa !9
  %36 = getelementptr inbounds ptr, ptr %35, i64 1
  %37 = load ptr, ptr %36, align 8, !tbaa !9
  %38 = call i32 @atoi(ptr noundef %37) #8
  store i32 %38, ptr %14, align 4, !tbaa !5
  %39 = load ptr, ptr %5, align 8, !tbaa !9
  %40 = getelementptr inbounds ptr, ptr %39, i64 2
  %41 = load ptr, ptr %40, align 8, !tbaa !9
  %42 = call i32 @atoi(ptr noundef %41) #8
  store i32 %42, ptr %15, align 4, !tbaa !5
  %43 = load ptr, ptr %5, align 8, !tbaa !9
  %44 = getelementptr inbounds ptr, ptr %43, i64 3
  %45 = load ptr, ptr %44, align 8, !tbaa !9
  store ptr %45, ptr %6, align 8, !tbaa !9
  %46 = load ptr, ptr %5, align 8, !tbaa !9
  %47 = getelementptr inbounds ptr, ptr %46, i64 4
  %48 = load ptr, ptr %47, align 8, !tbaa !9
  store ptr %48, ptr %7, align 8, !tbaa !9
  %49 = load ptr, ptr %5, align 8, !tbaa !9
  %50 = getelementptr inbounds ptr, ptr %49, i64 5
  %51 = load ptr, ptr %50, align 8, !tbaa !9
  store ptr %51, ptr %9, align 8, !tbaa !9
  %52 = load ptr, ptr %5, align 8, !tbaa !9
  %53 = getelementptr inbounds ptr, ptr %52, i64 6
  %54 = load ptr, ptr %53, align 8, !tbaa !9
  store ptr %54, ptr %8, align 8, !tbaa !9
  %55 = load ptr, ptr %5, align 8, !tbaa !9
  %56 = getelementptr inbounds ptr, ptr %55, i64 7
  %57 = load ptr, ptr %56, align 8, !tbaa !9
  %58 = call i32 @atoi(ptr noundef %57) #8
  store i32 %58, ptr %16, align 4, !tbaa !5
  %59 = load ptr, ptr %5, align 8, !tbaa !9
  %60 = getelementptr inbounds ptr, ptr %59, i64 8
  %61 = load ptr, ptr %60, align 8, !tbaa !9
  %62 = call i32 @atoi(ptr noundef %61) #8
  store i32 %62, ptr %17, align 4, !tbaa !5
  %63 = load ptr, ptr %5, align 8, !tbaa !9
  %64 = getelementptr inbounds ptr, ptr %63, i64 9
  %65 = load ptr, ptr %64, align 8, !tbaa !9
  %66 = call i32 @atoi(ptr noundef %65) #8
  store i32 %66, ptr %18, align 4, !tbaa !5
  %67 = load ptr, ptr %5, align 8, !tbaa !9
  %68 = getelementptr inbounds ptr, ptr %67, i64 10
  %69 = load ptr, ptr %68, align 8, !tbaa !9
  %70 = call i32 @atoi(ptr noundef %69) #8
  store i32 %70, ptr %19, align 4, !tbaa !5
  %71 = load i32, ptr %4, align 4, !tbaa !5
  %72 = icmp sgt i32 %71, 11
  br i1 %72, label %73, label %78

73:                                               ; preds = %34
  %74 = load ptr, ptr %5, align 8, !tbaa !9
  %75 = getelementptr inbounds ptr, ptr %74, i64 11
  %76 = load ptr, ptr %75, align 8, !tbaa !9
  %77 = call i32 @atoi(ptr noundef %76) #8
  store i32 %77, ptr %21, align 4, !tbaa !5
  br label %78

78:                                               ; preds = %73, %34
  %79 = load ptr, ptr %6, align 8, !tbaa !9
  %80 = call i32 @char_to_libxsmm_datatype(ptr noundef %79)
  store i32 %80, ptr %10, align 4, !tbaa !5
  %81 = load ptr, ptr %7, align 8, !tbaa !9
  %82 = call i32 @char_to_libxsmm_datatype(ptr noundef %81)
  store i32 %82, ptr %11, align 4, !tbaa !5
  %83 = load ptr, ptr %8, align 8, !tbaa !9
  %84 = call i32 @char_to_libxsmm_datatype(ptr noundef %83)
  store i32 %84, ptr %12, align 4, !tbaa !5
  %85 = load ptr, ptr %9, align 8, !tbaa !9
  %86 = call i32 @char_to_libxsmm_datatype(ptr noundef %85)
  store i32 %86, ptr %13, align 4, !tbaa !5
  %87 = load i32, ptr %14, align 4, !tbaa !5
  %88 = getelementptr inbounds [256 x i8], ptr %22, i64 0, i64 0
  call void @set_opname(i32 noundef %87, ptr noundef %88)
  %89 = load i32, ptr %14, align 4, !tbaa !5
  %90 = icmp eq i32 %89, 1
  br i1 %90, label %116, label %91

91:                                               ; preds = %78
  %92 = load i32, ptr %14, align 4, !tbaa !5
  %93 = icmp eq i32 %92, 3
  br i1 %93, label %116, label %94

94:                                               ; preds = %91
  %95 = load i32, ptr %14, align 4, !tbaa !5
  %96 = icmp eq i32 %95, 2
  br i1 %96, label %116, label %97

97:                                               ; preds = %94
  %98 = load i32, ptr %14, align 4, !tbaa !5
  %99 = icmp eq i32 %98, 4
  br i1 %99, label %116, label %100

100:                                              ; preds = %97
  %101 = load i32, ptr %14, align 4, !tbaa !5
  %102 = icmp eq i32 %101, 5
  br i1 %102, label %116, label %103

103:                                              ; preds = %100
  %104 = load i32, ptr %14, align 4, !tbaa !5
  %105 = icmp eq i32 %104, 6
  br i1 %105, label %116, label %106

106:                                              ; preds = %103
  %107 = load i32, ptr %14, align 4, !tbaa !5
  %108 = icmp eq i32 %107, 9
  br i1 %108, label %116, label %109

109:                                              ; preds = %106
  %110 = load i32, ptr %14, align 4, !tbaa !5
  %111 = icmp eq i32 %110, 10
  br i1 %111, label %116, label %112

112:                                              ; preds = %109
  %113 = load i32, ptr %14, align 4, !tbaa !5
  %114 = call i32 @is_cmp_op(i32 noundef %113)
  %115 = icmp sgt i32 %114, 0
  br label %116

116:                                              ; preds = %112, %109, %106, %103, %100, %97, %94, %91, %78
  %117 = phi i1 [ true, %109 ], [ true, %106 ], [ true, %103 ], [ true, %100 ], [ true, %97 ], [ true, %94 ], [ true, %91 ], [ true, %78 ], [ %115, %112 ]
  %118 = zext i1 %117 to i64
  %119 = select i1 %117, i32 1, i32 0
  store i32 %119, ptr %20, align 4, !tbaa !5
  %120 = load i32, ptr %15, align 4, !tbaa !5
  %121 = icmp ne i32 %120, 0
  br i1 %121, label %122, label %153

122:                                              ; preds = %116
  %123 = load i32, ptr %15, align 4, !tbaa !5
  %124 = icmp eq i32 %123, 1
  br i1 %124, label %125, label %127

125:                                              ; preds = %122
  %126 = call i32 (ptr, ...) @printf(ptr noundef @.str.1)
  br label %127

127:                                              ; preds = %125, %122
  %128 = load i32, ptr %15, align 4, !tbaa !5
  %129 = icmp eq i32 %128, 2
  br i1 %129, label %130, label %132

130:                                              ; preds = %127
  %131 = call i32 (ptr, ...) @printf(ptr noundef @.str.2)
  br label %132

132:                                              ; preds = %130, %127
  %133 = load i32, ptr %15, align 4, !tbaa !5
  %134 = icmp eq i32 %133, 3
  br i1 %134, label %135, label %137

135:                                              ; preds = %132
  %136 = call i32 (ptr, ...) @printf(ptr noundef @.str.3)
  br label %137

137:                                              ; preds = %135, %132
  %138 = load i32, ptr %15, align 4, !tbaa !5
  %139 = icmp eq i32 %138, 4
  br i1 %139, label %140, label %142

140:                                              ; preds = %137
  %141 = call i32 (ptr, ...) @printf(ptr noundef @.str.4)
  br label %142

142:                                              ; preds = %140, %137
  %143 = load i32, ptr %15, align 4, !tbaa !5
  %144 = icmp eq i32 %143, 5
  br i1 %144, label %145, label %147

145:                                              ; preds = %142
  %146 = call i32 (ptr, ...) @printf(ptr noundef @.str.5)
  br label %147

147:                                              ; preds = %145, %142
  %148 = load i32, ptr %15, align 4, !tbaa !5
  %149 = icmp eq i32 %148, 6
  br i1 %149, label %150, label %152

150:                                              ; preds = %147
  %151 = call i32 (ptr, ...) @printf(ptr noundef @.str.6)
  br label %152

152:                                              ; preds = %150, %147
  br label %153

153:                                              ; preds = %152, %116
  %154 = load i32, ptr %20, align 4, !tbaa !5
  %155 = icmp sgt i32 %154, 0
  br i1 %155, label %156, label %993

156:                                              ; preds = %153
  %157 = load i32, ptr %14, align 4, !tbaa !5
  %158 = call i32 @is_cmp_op(i32 noundef %157)
  %159 = icmp sgt i32 %158, 0
  br i1 %159, label %160, label %547

160:                                              ; preds = %156
  %161 = load i32, ptr %10, align 4, !tbaa !5
  %162 = icmp eq i32 %161, 1
  br i1 %162, label %163, label %172

163:                                              ; preds = %160
  %164 = load i32, ptr %11, align 4, !tbaa !5
  %165 = icmp eq i32 %164, 1
  br i1 %165, label %166, label %172

166:                                              ; preds = %163
  %167 = load i32, ptr %12, align 4, !tbaa !5
  %168 = icmp eq i32 %167, 14
  br i1 %168, label %169, label %172

169:                                              ; preds = %166
  %170 = load i32, ptr %13, align 4, !tbaa !5
  %171 = icmp eq i32 %170, 1
  br i1 %171, label %520, label %172

172:                                              ; preds = %169, %166, %163, %160
  %173 = load i32, ptr %10, align 4, !tbaa !5
  %174 = icmp eq i32 %173, 0
  br i1 %174, label %175, label %184

175:                                              ; preds = %172
  %176 = load i32, ptr %11, align 4, !tbaa !5
  %177 = icmp eq i32 %176, 0
  br i1 %177, label %178, label %184

178:                                              ; preds = %175
  %179 = load i32, ptr %12, align 4, !tbaa !5
  %180 = icmp eq i32 %179, 14
  br i1 %180, label %181, label %184

181:                                              ; preds = %178
  %182 = load i32, ptr %13, align 4, !tbaa !5
  %183 = icmp eq i32 %182, 0
  br i1 %183, label %520, label %184

184:                                              ; preds = %181, %178, %175, %172
  %185 = load i32, ptr %10, align 4, !tbaa !5
  %186 = icmp eq i32 %185, 1
  br i1 %186, label %187, label %196

187:                                              ; preds = %184
  %188 = load i32, ptr %11, align 4, !tbaa !5
  %189 = icmp eq i32 %188, 1
  br i1 %189, label %190, label %196

190:                                              ; preds = %187
  %191 = load i32, ptr %12, align 4, !tbaa !5
  %192 = icmp eq i32 %191, 14
  br i1 %192, label %193, label %196

193:                                              ; preds = %190
  %194 = load i32, ptr %13, align 4, !tbaa !5
  %195 = icmp eq i32 %194, 1
  br i1 %195, label %520, label %196

196:                                              ; preds = %193, %190, %187, %184
  %197 = load i32, ptr %10, align 4, !tbaa !5
  %198 = icmp eq i32 %197, 1
  br i1 %198, label %199, label %208

199:                                              ; preds = %196
  %200 = load i32, ptr %11, align 4, !tbaa !5
  %201 = icmp eq i32 %200, 2
  br i1 %201, label %202, label %208

202:                                              ; preds = %199
  %203 = load i32, ptr %12, align 4, !tbaa !5
  %204 = icmp eq i32 %203, 14
  br i1 %204, label %205, label %208

205:                                              ; preds = %202
  %206 = load i32, ptr %13, align 4, !tbaa !5
  %207 = icmp eq i32 %206, 1
  br i1 %207, label %520, label %208

208:                                              ; preds = %205, %202, %199, %196
  %209 = load i32, ptr %10, align 4, !tbaa !5
  %210 = icmp eq i32 %209, 1
  br i1 %210, label %211, label %220

211:                                              ; preds = %208
  %212 = load i32, ptr %11, align 4, !tbaa !5
  %213 = icmp eq i32 %212, 2
  br i1 %213, label %214, label %220

214:                                              ; preds = %211
  %215 = load i32, ptr %12, align 4, !tbaa !5
  %216 = icmp eq i32 %215, 14
  br i1 %216, label %217, label %220

217:                                              ; preds = %214
  %218 = load i32, ptr %13, align 4, !tbaa !5
  %219 = icmp eq i32 %218, 1
  br i1 %219, label %520, label %220

220:                                              ; preds = %217, %214, %211, %208
  %221 = load i32, ptr %10, align 4, !tbaa !5
  %222 = icmp eq i32 %221, 2
  br i1 %222, label %223, label %232

223:                                              ; preds = %220
  %224 = load i32, ptr %11, align 4, !tbaa !5
  %225 = icmp eq i32 %224, 1
  br i1 %225, label %226, label %232

226:                                              ; preds = %223
  %227 = load i32, ptr %12, align 4, !tbaa !5
  %228 = icmp eq i32 %227, 14
  br i1 %228, label %229, label %232

229:                                              ; preds = %226
  %230 = load i32, ptr %13, align 4, !tbaa !5
  %231 = icmp eq i32 %230, 1
  br i1 %231, label %520, label %232

232:                                              ; preds = %229, %226, %223, %220
  %233 = load i32, ptr %10, align 4, !tbaa !5
  %234 = icmp eq i32 %233, 2
  br i1 %234, label %235, label %244

235:                                              ; preds = %232
  %236 = load i32, ptr %11, align 4, !tbaa !5
  %237 = icmp eq i32 %236, 1
  br i1 %237, label %238, label %244

238:                                              ; preds = %235
  %239 = load i32, ptr %12, align 4, !tbaa !5
  %240 = icmp eq i32 %239, 14
  br i1 %240, label %241, label %244

241:                                              ; preds = %238
  %242 = load i32, ptr %13, align 4, !tbaa !5
  %243 = icmp eq i32 %242, 1
  br i1 %243, label %520, label %244

244:                                              ; preds = %241, %238, %235, %232
  %245 = load i32, ptr %10, align 4, !tbaa !5
  %246 = icmp eq i32 %245, 2
  br i1 %246, label %247, label %256

247:                                              ; preds = %244
  %248 = load i32, ptr %11, align 4, !tbaa !5
  %249 = icmp eq i32 %248, 2
  br i1 %249, label %250, label %256

250:                                              ; preds = %247
  %251 = load i32, ptr %12, align 4, !tbaa !5
  %252 = icmp eq i32 %251, 14
  br i1 %252, label %253, label %256

253:                                              ; preds = %250
  %254 = load i32, ptr %13, align 4, !tbaa !5
  %255 = icmp eq i32 %254, 1
  br i1 %255, label %520, label %256

256:                                              ; preds = %253, %250, %247, %244
  %257 = load i32, ptr %10, align 4, !tbaa !5
  %258 = icmp eq i32 %257, 2
  br i1 %258, label %259, label %268

259:                                              ; preds = %256
  %260 = load i32, ptr %11, align 4, !tbaa !5
  %261 = icmp eq i32 %260, 2
  br i1 %261, label %262, label %268

262:                                              ; preds = %259
  %263 = load i32, ptr %12, align 4, !tbaa !5
  %264 = icmp eq i32 %263, 14
  br i1 %264, label %265, label %268

265:                                              ; preds = %262
  %266 = load i32, ptr %13, align 4, !tbaa !5
  %267 = icmp eq i32 %266, 1
  br i1 %267, label %520, label %268

268:                                              ; preds = %265, %262, %259, %256
  %269 = load i32, ptr %10, align 4, !tbaa !5
  %270 = icmp eq i32 %269, 1
  br i1 %270, label %271, label %280

271:                                              ; preds = %268
  %272 = load i32, ptr %11, align 4, !tbaa !5
  %273 = icmp eq i32 %272, 1
  br i1 %273, label %274, label %280

274:                                              ; preds = %271
  %275 = load i32, ptr %12, align 4, !tbaa !5
  %276 = icmp eq i32 %275, 14
  br i1 %276, label %277, label %280

277:                                              ; preds = %274
  %278 = load i32, ptr %13, align 4, !tbaa !5
  %279 = icmp eq i32 %278, 1
  br i1 %279, label %520, label %280

280:                                              ; preds = %277, %274, %271, %268
  %281 = load i32, ptr %10, align 4, !tbaa !5
  %282 = icmp eq i32 %281, 1
  br i1 %282, label %283, label %292

283:                                              ; preds = %280
  %284 = load i32, ptr %11, align 4, !tbaa !5
  %285 = icmp eq i32 %284, 3
  br i1 %285, label %286, label %292

286:                                              ; preds = %283
  %287 = load i32, ptr %12, align 4, !tbaa !5
  %288 = icmp eq i32 %287, 14
  br i1 %288, label %289, label %292

289:                                              ; preds = %286
  %290 = load i32, ptr %13, align 4, !tbaa !5
  %291 = icmp eq i32 %290, 1
  br i1 %291, label %520, label %292

292:                                              ; preds = %289, %286, %283, %280
  %293 = load i32, ptr %10, align 4, !tbaa !5
  %294 = icmp eq i32 %293, 1
  br i1 %294, label %295, label %304

295:                                              ; preds = %292
  %296 = load i32, ptr %11, align 4, !tbaa !5
  %297 = icmp eq i32 %296, 3
  br i1 %297, label %298, label %304

298:                                              ; preds = %295
  %299 = load i32, ptr %12, align 4, !tbaa !5
  %300 = icmp eq i32 %299, 14
  br i1 %300, label %301, label %304

301:                                              ; preds = %298
  %302 = load i32, ptr %13, align 4, !tbaa !5
  %303 = icmp eq i32 %302, 1
  br i1 %303, label %520, label %304

304:                                              ; preds = %301, %298, %295, %292
  %305 = load i32, ptr %10, align 4, !tbaa !5
  %306 = icmp eq i32 %305, 3
  br i1 %306, label %307, label %316

307:                                              ; preds = %304
  %308 = load i32, ptr %11, align 4, !tbaa !5
  %309 = icmp eq i32 %308, 1
  br i1 %309, label %310, label %316

310:                                              ; preds = %307
  %311 = load i32, ptr %12, align 4, !tbaa !5
  %312 = icmp eq i32 %311, 14
  br i1 %312, label %313, label %316

313:                                              ; preds = %310
  %314 = load i32, ptr %13, align 4, !tbaa !5
  %315 = icmp eq i32 %314, 1
  br i1 %315, label %520, label %316

316:                                              ; preds = %313, %310, %307, %304
  %317 = load i32, ptr %10, align 4, !tbaa !5
  %318 = icmp eq i32 %317, 3
  br i1 %318, label %319, label %328

319:                                              ; preds = %316
  %320 = load i32, ptr %11, align 4, !tbaa !5
  %321 = icmp eq i32 %320, 1
  br i1 %321, label %322, label %328

322:                                              ; preds = %319
  %323 = load i32, ptr %12, align 4, !tbaa !5
  %324 = icmp eq i32 %323, 14
  br i1 %324, label %325, label %328

325:                                              ; preds = %322
  %326 = load i32, ptr %13, align 4, !tbaa !5
  %327 = icmp eq i32 %326, 1
  br i1 %327, label %520, label %328

328:                                              ; preds = %325, %322, %319, %316
  %329 = load i32, ptr %10, align 4, !tbaa !5
  %330 = icmp eq i32 %329, 3
  br i1 %330, label %331, label %340

331:                                              ; preds = %328
  %332 = load i32, ptr %11, align 4, !tbaa !5
  %333 = icmp eq i32 %332, 3
  br i1 %333, label %334, label %340

334:                                              ; preds = %331
  %335 = load i32, ptr %12, align 4, !tbaa !5
  %336 = icmp eq i32 %335, 14
  br i1 %336, label %337, label %340

337:                                              ; preds = %334
  %338 = load i32, ptr %13, align 4, !tbaa !5
  %339 = icmp eq i32 %338, 1
  br i1 %339, label %520, label %340

340:                                              ; preds = %337, %334, %331, %328
  %341 = load i32, ptr %10, align 4, !tbaa !5
  %342 = icmp eq i32 %341, 3
  br i1 %342, label %343, label %352

343:                                              ; preds = %340
  %344 = load i32, ptr %11, align 4, !tbaa !5
  %345 = icmp eq i32 %344, 3
  br i1 %345, label %346, label %352

346:                                              ; preds = %343
  %347 = load i32, ptr %12, align 4, !tbaa !5
  %348 = icmp eq i32 %347, 14
  br i1 %348, label %349, label %352

349:                                              ; preds = %346
  %350 = load i32, ptr %13, align 4, !tbaa !5
  %351 = icmp eq i32 %350, 1
  br i1 %351, label %520, label %352

352:                                              ; preds = %349, %346, %343, %340
  %353 = load i32, ptr %10, align 4, !tbaa !5
  %354 = icmp eq i32 %353, 1
  br i1 %354, label %355, label %364

355:                                              ; preds = %352
  %356 = load i32, ptr %11, align 4, !tbaa !5
  %357 = icmp eq i32 %356, 1
  br i1 %357, label %358, label %364

358:                                              ; preds = %355
  %359 = load i32, ptr %12, align 4, !tbaa !5
  %360 = icmp eq i32 %359, 14
  br i1 %360, label %361, label %364

361:                                              ; preds = %358
  %362 = load i32, ptr %13, align 4, !tbaa !5
  %363 = icmp eq i32 %362, 1
  br i1 %363, label %520, label %364

364:                                              ; preds = %361, %358, %355, %352
  %365 = load i32, ptr %10, align 4, !tbaa !5
  %366 = icmp eq i32 %365, 1
  br i1 %366, label %367, label %376

367:                                              ; preds = %364
  %368 = load i32, ptr %11, align 4, !tbaa !5
  %369 = icmp eq i32 %368, 4
  br i1 %369, label %370, label %376

370:                                              ; preds = %367
  %371 = load i32, ptr %12, align 4, !tbaa !5
  %372 = icmp eq i32 %371, 14
  br i1 %372, label %373, label %376

373:                                              ; preds = %370
  %374 = load i32, ptr %13, align 4, !tbaa !5
  %375 = icmp eq i32 %374, 1
  br i1 %375, label %520, label %376

376:                                              ; preds = %373, %370, %367, %364
  %377 = load i32, ptr %10, align 4, !tbaa !5
  %378 = icmp eq i32 %377, 1
  br i1 %378, label %379, label %388

379:                                              ; preds = %376
  %380 = load i32, ptr %11, align 4, !tbaa !5
  %381 = icmp eq i32 %380, 4
  br i1 %381, label %382, label %388

382:                                              ; preds = %379
  %383 = load i32, ptr %12, align 4, !tbaa !5
  %384 = icmp eq i32 %383, 14
  br i1 %384, label %385, label %388

385:                                              ; preds = %382
  %386 = load i32, ptr %13, align 4, !tbaa !5
  %387 = icmp eq i32 %386, 1
  br i1 %387, label %520, label %388

388:                                              ; preds = %385, %382, %379, %376
  %389 = load i32, ptr %10, align 4, !tbaa !5
  %390 = icmp eq i32 %389, 4
  br i1 %390, label %391, label %400

391:                                              ; preds = %388
  %392 = load i32, ptr %11, align 4, !tbaa !5
  %393 = icmp eq i32 %392, 1
  br i1 %393, label %394, label %400

394:                                              ; preds = %391
  %395 = load i32, ptr %12, align 4, !tbaa !5
  %396 = icmp eq i32 %395, 14
  br i1 %396, label %397, label %400

397:                                              ; preds = %394
  %398 = load i32, ptr %13, align 4, !tbaa !5
  %399 = icmp eq i32 %398, 1
  br i1 %399, label %520, label %400

400:                                              ; preds = %397, %394, %391, %388
  %401 = load i32, ptr %10, align 4, !tbaa !5
  %402 = icmp eq i32 %401, 4
  br i1 %402, label %403, label %412

403:                                              ; preds = %400
  %404 = load i32, ptr %11, align 4, !tbaa !5
  %405 = icmp eq i32 %404, 1
  br i1 %405, label %406, label %412

406:                                              ; preds = %403
  %407 = load i32, ptr %12, align 4, !tbaa !5
  %408 = icmp eq i32 %407, 14
  br i1 %408, label %409, label %412

409:                                              ; preds = %406
  %410 = load i32, ptr %13, align 4, !tbaa !5
  %411 = icmp eq i32 %410, 1
  br i1 %411, label %520, label %412

412:                                              ; preds = %409, %406, %403, %400
  %413 = load i32, ptr %10, align 4, !tbaa !5
  %414 = icmp eq i32 %413, 4
  br i1 %414, label %415, label %424

415:                                              ; preds = %412
  %416 = load i32, ptr %11, align 4, !tbaa !5
  %417 = icmp eq i32 %416, 4
  br i1 %417, label %418, label %424

418:                                              ; preds = %415
  %419 = load i32, ptr %12, align 4, !tbaa !5
  %420 = icmp eq i32 %419, 14
  br i1 %420, label %421, label %424

421:                                              ; preds = %418
  %422 = load i32, ptr %13, align 4, !tbaa !5
  %423 = icmp eq i32 %422, 1
  br i1 %423, label %520, label %424

424:                                              ; preds = %421, %418, %415, %412
  %425 = load i32, ptr %10, align 4, !tbaa !5
  %426 = icmp eq i32 %425, 4
  br i1 %426, label %427, label %436

427:                                              ; preds = %424
  %428 = load i32, ptr %11, align 4, !tbaa !5
  %429 = icmp eq i32 %428, 4
  br i1 %429, label %430, label %436

430:                                              ; preds = %427
  %431 = load i32, ptr %12, align 4, !tbaa !5
  %432 = icmp eq i32 %431, 14
  br i1 %432, label %433, label %436

433:                                              ; preds = %430
  %434 = load i32, ptr %13, align 4, !tbaa !5
  %435 = icmp eq i32 %434, 1
  br i1 %435, label %520, label %436

436:                                              ; preds = %433, %430, %427, %424
  %437 = load i32, ptr %10, align 4, !tbaa !5
  %438 = icmp eq i32 %437, 1
  br i1 %438, label %439, label %448

439:                                              ; preds = %436
  %440 = load i32, ptr %11, align 4, !tbaa !5
  %441 = icmp eq i32 %440, 1
  br i1 %441, label %442, label %448

442:                                              ; preds = %439
  %443 = load i32, ptr %12, align 4, !tbaa !5
  %444 = icmp eq i32 %443, 14
  br i1 %444, label %445, label %448

445:                                              ; preds = %442
  %446 = load i32, ptr %13, align 4, !tbaa !5
  %447 = icmp eq i32 %446, 1
  br i1 %447, label %520, label %448

448:                                              ; preds = %445, %442, %439, %436
  %449 = load i32, ptr %10, align 4, !tbaa !5
  %450 = icmp eq i32 %449, 1
  br i1 %450, label %451, label %460

451:                                              ; preds = %448
  %452 = load i32, ptr %11, align 4, !tbaa !5
  %453 = icmp eq i32 %452, 5
  br i1 %453, label %454, label %460

454:                                              ; preds = %451
  %455 = load i32, ptr %12, align 4, !tbaa !5
  %456 = icmp eq i32 %455, 14
  br i1 %456, label %457, label %460

457:                                              ; preds = %454
  %458 = load i32, ptr %13, align 4, !tbaa !5
  %459 = icmp eq i32 %458, 1
  br i1 %459, label %520, label %460

460:                                              ; preds = %457, %454, %451, %448
  %461 = load i32, ptr %10, align 4, !tbaa !5
  %462 = icmp eq i32 %461, 1
  br i1 %462, label %463, label %472

463:                                              ; preds = %460
  %464 = load i32, ptr %11, align 4, !tbaa !5
  %465 = icmp eq i32 %464, 5
  br i1 %465, label %466, label %472

466:                                              ; preds = %463
  %467 = load i32, ptr %12, align 4, !tbaa !5
  %468 = icmp eq i32 %467, 14
  br i1 %468, label %469, label %472

469:                                              ; preds = %466
  %470 = load i32, ptr %13, align 4, !tbaa !5
  %471 = icmp eq i32 %470, 1
  br i1 %471, label %520, label %472

472:                                              ; preds = %469, %466, %463, %460
  %473 = load i32, ptr %10, align 4, !tbaa !5
  %474 = icmp eq i32 %473, 5
  br i1 %474, label %475, label %484

475:                                              ; preds = %472
  %476 = load i32, ptr %11, align 4, !tbaa !5
  %477 = icmp eq i32 %476, 1
  br i1 %477, label %478, label %484

478:                                              ; preds = %475
  %479 = load i32, ptr %12, align 4, !tbaa !5
  %480 = icmp eq i32 %479, 14
  br i1 %480, label %481, label %484

481:                                              ; preds = %478
  %482 = load i32, ptr %13, align 4, !tbaa !5
  %483 = icmp eq i32 %482, 1
  br i1 %483, label %520, label %484

484:                                              ; preds = %481, %478, %475, %472
  %485 = load i32, ptr %10, align 4, !tbaa !5
  %486 = icmp eq i32 %485, 5
  br i1 %486, label %487, label %496

487:                                              ; preds = %484
  %488 = load i32, ptr %11, align 4, !tbaa !5
  %489 = icmp eq i32 %488, 1
  br i1 %489, label %490, label %496

490:                                              ; preds = %487
  %491 = load i32, ptr %12, align 4, !tbaa !5
  %492 = icmp eq i32 %491, 14
  br i1 %492, label %493, label %496

493:                                              ; preds = %490
  %494 = load i32, ptr %13, align 4, !tbaa !5
  %495 = icmp eq i32 %494, 1
  br i1 %495, label %520, label %496

496:                                              ; preds = %493, %490, %487, %484
  %497 = load i32, ptr %10, align 4, !tbaa !5
  %498 = icmp eq i32 %497, 5
  br i1 %498, label %499, label %508

499:                                              ; preds = %496
  %500 = load i32, ptr %11, align 4, !tbaa !5
  %501 = icmp eq i32 %500, 5
  br i1 %501, label %502, label %508

502:                                              ; preds = %499
  %503 = load i32, ptr %12, align 4, !tbaa !5
  %504 = icmp eq i32 %503, 14
  br i1 %504, label %505, label %508

505:                                              ; preds = %502
  %506 = load i32, ptr %13, align 4, !tbaa !5
  %507 = icmp eq i32 %506, 1
  br i1 %507, label %520, label %508

508:                                              ; preds = %505, %502, %499, %496
  %509 = load i32, ptr %10, align 4, !tbaa !5
  %510 = icmp eq i32 %509, 5
  br i1 %510, label %511, label %547

511:                                              ; preds = %508
  %512 = load i32, ptr %11, align 4, !tbaa !5
  %513 = icmp eq i32 %512, 5
  br i1 %513, label %514, label %547

514:                                              ; preds = %511
  %515 = load i32, ptr %12, align 4, !tbaa !5
  %516 = icmp eq i32 %515, 14
  br i1 %516, label %517, label %547

517:                                              ; preds = %514
  %518 = load i32, ptr %13, align 4, !tbaa !5
  %519 = icmp eq i32 %518, 1
  br i1 %519, label %520, label %547

520:                                              ; preds = %517, %505, %493, %481, %469, %457, %445, %433, %421, %409, %397, %385, %373, %361, %349, %337, %325, %313, %301, %289, %277, %265, %253, %241, %229, %217, %205, %193, %181, %169
  %521 = load i32, ptr %10, align 4, !tbaa !5
  %522 = call ptr @libxsmm_get_typename(i32 noundef %521)
  %523 = load i32, ptr %11, align 4, !tbaa !5
  %524 = call ptr @libxsmm_get_typename(i32 noundef %523)
  %525 = load i32, ptr %12, align 4, !tbaa !5
  %526 = call ptr @libxsmm_get_typename(i32 noundef %525)
  %527 = load i32, ptr %13, align 4, !tbaa !5
  %528 = call ptr @libxsmm_get_typename(i32 noundef %527)
  %529 = getelementptr inbounds [256 x i8], ptr %22, i64 0, i64 0
  %530 = load i32, ptr %16, align 4, !tbaa !5
  %531 = load i32, ptr %17, align 4, !tbaa !5
  %532 = load i32, ptr %18, align 4, !tbaa !5
  %533 = load i32, ptr %19, align 4, !tbaa !5
  %534 = call i32 (ptr, ...) @printf(ptr noundef @.str.7, ptr noundef %522, ptr noundef %524, ptr noundef %526, ptr noundef %528, ptr noundef %529, i32 noundef %530, i32 noundef %531, i32 noundef %532, i32 noundef %533)
  %535 = load i32, ptr %16, align 4, !tbaa !5
  %536 = load i32, ptr %17, align 4, !tbaa !5
  %537 = load i32, ptr %18, align 4, !tbaa !5
  %538 = load i32, ptr %19, align 4, !tbaa !5
  %539 = load i32, ptr %14, align 4, !tbaa !5
  %540 = load i32, ptr %15, align 4, !tbaa !5
  %541 = load i32, ptr %10, align 4, !tbaa !5
  %542 = load i32, ptr %11, align 4, !tbaa !5
  %543 = load i32, ptr %12, align 4, !tbaa !5
  %544 = load i32, ptr %13, align 4, !tbaa !5
  %545 = load i32, ptr %21, align 4, !tbaa !5
  %546 = call i32 @test_binary_op(i32 noundef %535, i32 noundef %536, i32 noundef %537, i32 noundef %538, i32 noundef %539, i32 noundef %540, i32 noundef %541, i32 noundef %542, i32 noundef %543, i32 noundef %544, i32 noundef %545)
  store i32 %546, ptr %23, align 4, !tbaa !5
  br label %992

547:                                              ; preds = %517, %514, %511, %508, %156
  %548 = load i32, ptr %14, align 4, !tbaa !5
  %549 = icmp ne i32 %548, 6
  br i1 %549, label %550, label %937

550:                                              ; preds = %547
  %551 = load i32, ptr %10, align 4, !tbaa !5
  %552 = icmp eq i32 %551, 1
  br i1 %552, label %553, label %562

553:                                              ; preds = %550
  %554 = load i32, ptr %11, align 4, !tbaa !5
  %555 = icmp eq i32 %554, 1
  br i1 %555, label %556, label %562

556:                                              ; preds = %553
  %557 = load i32, ptr %12, align 4, !tbaa !5
  %558 = icmp eq i32 %557, 1
  br i1 %558, label %559, label %562

559:                                              ; preds = %556
  %560 = load i32, ptr %13, align 4, !tbaa !5
  %561 = icmp eq i32 %560, 1
  br i1 %561, label %910, label %562

562:                                              ; preds = %559, %556, %553, %550
  %563 = load i32, ptr %10, align 4, !tbaa !5
  %564 = icmp eq i32 %563, 0
  br i1 %564, label %565, label %574

565:                                              ; preds = %562
  %566 = load i32, ptr %11, align 4, !tbaa !5
  %567 = icmp eq i32 %566, 0
  br i1 %567, label %568, label %574

568:                                              ; preds = %565
  %569 = load i32, ptr %12, align 4, !tbaa !5
  %570 = icmp eq i32 %569, 0
  br i1 %570, label %571, label %574

571:                                              ; preds = %568
  %572 = load i32, ptr %13, align 4, !tbaa !5
  %573 = icmp eq i32 %572, 0
  br i1 %573, label %910, label %574

574:                                              ; preds = %571, %568, %565, %562
  %575 = load i32, ptr %10, align 4, !tbaa !5
  %576 = icmp eq i32 %575, 1
  br i1 %576, label %577, label %586

577:                                              ; preds = %574
  %578 = load i32, ptr %11, align 4, !tbaa !5
  %579 = icmp eq i32 %578, 1
  br i1 %579, label %580, label %586

580:                                              ; preds = %577
  %581 = load i32, ptr %12, align 4, !tbaa !5
  %582 = icmp eq i32 %581, 2
  br i1 %582, label %583, label %586

583:                                              ; preds = %580
  %584 = load i32, ptr %13, align 4, !tbaa !5
  %585 = icmp eq i32 %584, 1
  br i1 %585, label %910, label %586

586:                                              ; preds = %583, %580, %577, %574
  %587 = load i32, ptr %10, align 4, !tbaa !5
  %588 = icmp eq i32 %587, 1
  br i1 %588, label %589, label %598

589:                                              ; preds = %586
  %590 = load i32, ptr %11, align 4, !tbaa !5
  %591 = icmp eq i32 %590, 2
  br i1 %591, label %592, label %598

592:                                              ; preds = %589
  %593 = load i32, ptr %12, align 4, !tbaa !5
  %594 = icmp eq i32 %593, 1
  br i1 %594, label %595, label %598

595:                                              ; preds = %592
  %596 = load i32, ptr %13, align 4, !tbaa !5
  %597 = icmp eq i32 %596, 1
  br i1 %597, label %910, label %598

598:                                              ; preds = %595, %592, %589, %586
  %599 = load i32, ptr %10, align 4, !tbaa !5
  %600 = icmp eq i32 %599, 1
  br i1 %600, label %601, label %610

601:                                              ; preds = %598
  %602 = load i32, ptr %11, align 4, !tbaa !5
  %603 = icmp eq i32 %602, 2
  br i1 %603, label %604, label %610

604:                                              ; preds = %601
  %605 = load i32, ptr %12, align 4, !tbaa !5
  %606 = icmp eq i32 %605, 2
  br i1 %606, label %607, label %610

607:                                              ; preds = %604
  %608 = load i32, ptr %13, align 4, !tbaa !5
  %609 = icmp eq i32 %608, 1
  br i1 %609, label %910, label %610

610:                                              ; preds = %607, %604, %601, %598
  %611 = load i32, ptr %10, align 4, !tbaa !5
  %612 = icmp eq i32 %611, 2
  br i1 %612, label %613, label %622

613:                                              ; preds = %610
  %614 = load i32, ptr %11, align 4, !tbaa !5
  %615 = icmp eq i32 %614, 1
  br i1 %615, label %616, label %622

616:                                              ; preds = %613
  %617 = load i32, ptr %12, align 4, !tbaa !5
  %618 = icmp eq i32 %617, 1
  br i1 %618, label %619, label %622

619:                                              ; preds = %616
  %620 = load i32, ptr %13, align 4, !tbaa !5
  %621 = icmp eq i32 %620, 1
  br i1 %621, label %910, label %622

622:                                              ; preds = %619, %616, %613, %610
  %623 = load i32, ptr %10, align 4, !tbaa !5
  %624 = icmp eq i32 %623, 2
  br i1 %624, label %625, label %634

625:                                              ; preds = %622
  %626 = load i32, ptr %11, align 4, !tbaa !5
  %627 = icmp eq i32 %626, 1
  br i1 %627, label %628, label %634

628:                                              ; preds = %625
  %629 = load i32, ptr %12, align 4, !tbaa !5
  %630 = icmp eq i32 %629, 2
  br i1 %630, label %631, label %634

631:                                              ; preds = %628
  %632 = load i32, ptr %13, align 4, !tbaa !5
  %633 = icmp eq i32 %632, 1
  br i1 %633, label %910, label %634

634:                                              ; preds = %631, %628, %625, %622
  %635 = load i32, ptr %10, align 4, !tbaa !5
  %636 = icmp eq i32 %635, 2
  br i1 %636, label %637, label %646

637:                                              ; preds = %634
  %638 = load i32, ptr %11, align 4, !tbaa !5
  %639 = icmp eq i32 %638, 2
  br i1 %639, label %640, label %646

640:                                              ; preds = %637
  %641 = load i32, ptr %12, align 4, !tbaa !5
  %642 = icmp eq i32 %641, 1
  br i1 %642, label %643, label %646

643:                                              ; preds = %640
  %644 = load i32, ptr %13, align 4, !tbaa !5
  %645 = icmp eq i32 %644, 1
  br i1 %645, label %910, label %646

646:                                              ; preds = %643, %640, %637, %634
  %647 = load i32, ptr %10, align 4, !tbaa !5
  %648 = icmp eq i32 %647, 2
  br i1 %648, label %649, label %658

649:                                              ; preds = %646
  %650 = load i32, ptr %11, align 4, !tbaa !5
  %651 = icmp eq i32 %650, 2
  br i1 %651, label %652, label %658

652:                                              ; preds = %649
  %653 = load i32, ptr %12, align 4, !tbaa !5
  %654 = icmp eq i32 %653, 2
  br i1 %654, label %655, label %658

655:                                              ; preds = %652
  %656 = load i32, ptr %13, align 4, !tbaa !5
  %657 = icmp eq i32 %656, 1
  br i1 %657, label %910, label %658

658:                                              ; preds = %655, %652, %649, %646
  %659 = load i32, ptr %10, align 4, !tbaa !5
  %660 = icmp eq i32 %659, 1
  br i1 %660, label %661, label %670

661:                                              ; preds = %658
  %662 = load i32, ptr %11, align 4, !tbaa !5
  %663 = icmp eq i32 %662, 1
  br i1 %663, label %664, label %670

664:                                              ; preds = %661
  %665 = load i32, ptr %12, align 4, !tbaa !5
  %666 = icmp eq i32 %665, 3
  br i1 %666, label %667, label %670

667:                                              ; preds = %664
  %668 = load i32, ptr %13, align 4, !tbaa !5
  %669 = icmp eq i32 %668, 1
  br i1 %669, label %910, label %670

670:                                              ; preds = %667, %664, %661, %658
  %671 = load i32, ptr %10, align 4, !tbaa !5
  %672 = icmp eq i32 %671, 1
  br i1 %672, label %673, label %682

673:                                              ; preds = %670
  %674 = load i32, ptr %11, align 4, !tbaa !5
  %675 = icmp eq i32 %674, 3
  br i1 %675, label %676, label %682

676:                                              ; preds = %673
  %677 = load i32, ptr %12, align 4, !tbaa !5
  %678 = icmp eq i32 %677, 1
  br i1 %678, label %679, label %682

679:                                              ; preds = %676
  %680 = load i32, ptr %13, align 4, !tbaa !5
  %681 = icmp eq i32 %680, 1
  br i1 %681, label %910, label %682

682:                                              ; preds = %679, %676, %673, %670
  %683 = load i32, ptr %10, align 4, !tbaa !5
  %684 = icmp eq i32 %683, 1
  br i1 %684, label %685, label %694

685:                                              ; preds = %682
  %686 = load i32, ptr %11, align 4, !tbaa !5
  %687 = icmp eq i32 %686, 3
  br i1 %687, label %688, label %694

688:                                              ; preds = %685
  %689 = load i32, ptr %12, align 4, !tbaa !5
  %690 = icmp eq i32 %689, 3
  br i1 %690, label %691, label %694

691:                                              ; preds = %688
  %692 = load i32, ptr %13, align 4, !tbaa !5
  %693 = icmp eq i32 %692, 1
  br i1 %693, label %910, label %694

694:                                              ; preds = %691, %688, %685, %682
  %695 = load i32, ptr %10, align 4, !tbaa !5
  %696 = icmp eq i32 %695, 3
  br i1 %696, label %697, label %706

697:                                              ; preds = %694
  %698 = load i32, ptr %11, align 4, !tbaa !5
  %699 = icmp eq i32 %698, 1
  br i1 %699, label %700, label %706

700:                                              ; preds = %697
  %701 = load i32, ptr %12, align 4, !tbaa !5
  %702 = icmp eq i32 %701, 1
  br i1 %702, label %703, label %706

703:                                              ; preds = %700
  %704 = load i32, ptr %13, align 4, !tbaa !5
  %705 = icmp eq i32 %704, 1
  br i1 %705, label %910, label %706

706:                                              ; preds = %703, %700, %697, %694
  %707 = load i32, ptr %10, align 4, !tbaa !5
  %708 = icmp eq i32 %707, 3
  br i1 %708, label %709, label %718

709:                                              ; preds = %706
  %710 = load i32, ptr %11, align 4, !tbaa !5
  %711 = icmp eq i32 %710, 1
  br i1 %711, label %712, label %718

712:                                              ; preds = %709
  %713 = load i32, ptr %12, align 4, !tbaa !5
  %714 = icmp eq i32 %713, 3
  br i1 %714, label %715, label %718

715:                                              ; preds = %712
  %716 = load i32, ptr %13, align 4, !tbaa !5
  %717 = icmp eq i32 %716, 1
  br i1 %717, label %910, label %718

718:                                              ; preds = %715, %712, %709, %706
  %719 = load i32, ptr %10, align 4, !tbaa !5
  %720 = icmp eq i32 %719, 3
  br i1 %720, label %721, label %730

721:                                              ; preds = %718
  %722 = load i32, ptr %11, align 4, !tbaa !5
  %723 = icmp eq i32 %722, 3
  br i1 %723, label %724, label %730

724:                                              ; preds = %721
  %725 = load i32, ptr %12, align 4, !tbaa !5
  %726 = icmp eq i32 %725, 1
  br i1 %726, label %727, label %730

727:                                              ; preds = %724
  %728 = load i32, ptr %13, align 4, !tbaa !5
  %729 = icmp eq i32 %728, 1
  br i1 %729, label %910, label %730

730:                                              ; preds = %727, %724, %721, %718
  %731 = load i32, ptr %10, align 4, !tbaa !5
  %732 = icmp eq i32 %731, 3
  br i1 %732, label %733, label %742

733:                                              ; preds = %730
  %734 = load i32, ptr %11, align 4, !tbaa !5
  %735 = icmp eq i32 %734, 3
  br i1 %735, label %736, label %742

736:                                              ; preds = %733
  %737 = load i32, ptr %12, align 4, !tbaa !5
  %738 = icmp eq i32 %737, 3
  br i1 %738, label %739, label %742

739:                                              ; preds = %736
  %740 = load i32, ptr %13, align 4, !tbaa !5
  %741 = icmp eq i32 %740, 1
  br i1 %741, label %910, label %742

742:                                              ; preds = %739, %736, %733, %730
  %743 = load i32, ptr %10, align 4, !tbaa !5
  %744 = icmp eq i32 %743, 1
  br i1 %744, label %745, label %754

745:                                              ; preds = %742
  %746 = load i32, ptr %11, align 4, !tbaa !5
  %747 = icmp eq i32 %746, 1
  br i1 %747, label %748, label %754

748:                                              ; preds = %745
  %749 = load i32, ptr %12, align 4, !tbaa !5
  %750 = icmp eq i32 %749, 4
  br i1 %750, label %751, label %754

751:                                              ; preds = %748
  %752 = load i32, ptr %13, align 4, !tbaa !5
  %753 = icmp eq i32 %752, 1
  br i1 %753, label %910, label %754

754:                                              ; preds = %751, %748, %745, %742
  %755 = load i32, ptr %10, align 4, !tbaa !5
  %756 = icmp eq i32 %755, 1
  br i1 %756, label %757, label %766

757:                                              ; preds = %754
  %758 = load i32, ptr %11, align 4, !tbaa !5
  %759 = icmp eq i32 %758, 4
  br i1 %759, label %760, label %766

760:                                              ; preds = %757
  %761 = load i32, ptr %12, align 4, !tbaa !5
  %762 = icmp eq i32 %761, 1
  br i1 %762, label %763, label %766

763:                                              ; preds = %760
  %764 = load i32, ptr %13, align 4, !tbaa !5
  %765 = icmp eq i32 %764, 1
  br i1 %765, label %910, label %766

766:                                              ; preds = %763, %760, %757, %754
  %767 = load i32, ptr %10, align 4, !tbaa !5
  %768 = icmp eq i32 %767, 1
  br i1 %768, label %769, label %778

769:                                              ; preds = %766
  %770 = load i32, ptr %11, align 4, !tbaa !5
  %771 = icmp eq i32 %770, 4
  br i1 %771, label %772, label %778

772:                                              ; preds = %769
  %773 = load i32, ptr %12, align 4, !tbaa !5
  %774 = icmp eq i32 %773, 4
  br i1 %774, label %775, label %778

775:                                              ; preds = %772
  %776 = load i32, ptr %13, align 4, !tbaa !5
  %777 = icmp eq i32 %776, 1
  br i1 %777, label %910, label %778

778:                                              ; preds = %775, %772, %769, %766
  %779 = load i32, ptr %10, align 4, !tbaa !5
  %780 = icmp eq i32 %779, 4
  br i1 %780, label %781, label %790

781:                                              ; preds = %778
  %782 = load i32, ptr %11, align 4, !tbaa !5
  %783 = icmp eq i32 %782, 1
  br i1 %783, label %784, label %790

784:                                              ; preds = %781
  %785 = load i32, ptr %12, align 4, !tbaa !5
  %786 = icmp eq i32 %785, 1
  br i1 %786, label %787, label %790

787:                                              ; preds = %784
  %788 = load i32, ptr %13, align 4, !tbaa !5
  %789 = icmp eq i32 %788, 1
  br i1 %789, label %910, label %790

790:                                              ; preds = %787, %784, %781, %778
  %791 = load i32, ptr %10, align 4, !tbaa !5
  %792 = icmp eq i32 %791, 4
  br i1 %792, label %793, label %802

793:                                              ; preds = %790
  %794 = load i32, ptr %11, align 4, !tbaa !5
  %795 = icmp eq i32 %794, 1
  br i1 %795, label %796, label %802

796:                                              ; preds = %793
  %797 = load i32, ptr %12, align 4, !tbaa !5
  %798 = icmp eq i32 %797, 4
  br i1 %798, label %799, label %802

799:                                              ; preds = %796
  %800 = load i32, ptr %13, align 4, !tbaa !5
  %801 = icmp eq i32 %800, 1
  br i1 %801, label %910, label %802

802:                                              ; preds = %799, %796, %793, %790
  %803 = load i32, ptr %10, align 4, !tbaa !5
  %804 = icmp eq i32 %803, 4
  br i1 %804, label %805, label %814

805:                                              ; preds = %802
  %806 = load i32, ptr %11, align 4, !tbaa !5
  %807 = icmp eq i32 %806, 4
  br i1 %807, label %808, label %814

808:                                              ; preds = %805
  %809 = load i32, ptr %12, align 4, !tbaa !5
  %810 = icmp eq i32 %809, 1
  br i1 %810, label %811, label %814

811:                                              ; preds = %808
  %812 = load i32, ptr %13, align 4, !tbaa !5
  %813 = icmp eq i32 %812, 1
  br i1 %813, label %910, label %814

814:                                              ; preds = %811, %808, %805, %802
  %815 = load i32, ptr %10, align 4, !tbaa !5
  %816 = icmp eq i32 %815, 4
  br i1 %816, label %817, label %826

817:                                              ; preds = %814
  %818 = load i32, ptr %11, align 4, !tbaa !5
  %819 = icmp eq i32 %818, 4
  br i1 %819, label %820, label %826

820:                                              ; preds = %817
  %821 = load i32, ptr %12, align 4, !tbaa !5
  %822 = icmp eq i32 %821, 4
  br i1 %822, label %823, label %826

823:                                              ; preds = %820
  %824 = load i32, ptr %13, align 4, !tbaa !5
  %825 = icmp eq i32 %824, 1
  br i1 %825, label %910, label %826

826:                                              ; preds = %823, %820, %817, %814
  %827 = load i32, ptr %10, align 4, !tbaa !5
  %828 = icmp eq i32 %827, 1
  br i1 %828, label %829, label %838

829:                                              ; preds = %826
  %830 = load i32, ptr %11, align 4, !tbaa !5
  %831 = icmp eq i32 %830, 1
  br i1 %831, label %832, label %838

832:                                              ; preds = %829
  %833 = load i32, ptr %12, align 4, !tbaa !5
  %834 = icmp eq i32 %833, 5
  br i1 %834, label %835, label %838

835:                                              ; preds = %832
  %836 = load i32, ptr %13, align 4, !tbaa !5
  %837 = icmp eq i32 %836, 1
  br i1 %837, label %910, label %838

838:                                              ; preds = %835, %832, %829, %826
  %839 = load i32, ptr %10, align 4, !tbaa !5
  %840 = icmp eq i32 %839, 1
  br i1 %840, label %841, label %850

841:                                              ; preds = %838
  %842 = load i32, ptr %11, align 4, !tbaa !5
  %843 = icmp eq i32 %842, 5
  br i1 %843, label %844, label %850

844:                                              ; preds = %841
  %845 = load i32, ptr %12, align 4, !tbaa !5
  %846 = icmp eq i32 %845, 1
  br i1 %846, label %847, label %850

847:                                              ; preds = %844
  %848 = load i32, ptr %13, align 4, !tbaa !5
  %849 = icmp eq i32 %848, 1
  br i1 %849, label %910, label %850

850:                                              ; preds = %847, %844, %841, %838
  %851 = load i32, ptr %10, align 4, !tbaa !5
  %852 = icmp eq i32 %851, 1
  br i1 %852, label %853, label %862

853:                                              ; preds = %850
  %854 = load i32, ptr %11, align 4, !tbaa !5
  %855 = icmp eq i32 %854, 5
  br i1 %855, label %856, label %862

856:                                              ; preds = %853
  %857 = load i32, ptr %12, align 4, !tbaa !5
  %858 = icmp eq i32 %857, 5
  br i1 %858, label %859, label %862

859:                                              ; preds = %856
  %860 = load i32, ptr %13, align 4, !tbaa !5
  %861 = icmp eq i32 %860, 1
  br i1 %861, label %910, label %862

862:                                              ; preds = %859, %856, %853, %850
  %863 = load i32, ptr %10, align 4, !tbaa !5
  %864 = icmp eq i32 %863, 5
  br i1 %864, label %865, label %874

865:                                              ; preds = %862
  %866 = load i32, ptr %11, align 4, !tbaa !5
  %867 = icmp eq i32 %866, 1
  br i1 %867, label %868, label %874

868:                                              ; preds = %865
  %869 = load i32, ptr %12, align 4, !tbaa !5
  %870 = icmp eq i32 %869, 1
  br i1 %870, label %871, label %874

871:                                              ; preds = %868
  %872 = load i32, ptr %13, align 4, !tbaa !5
  %873 = icmp eq i32 %872, 1
  br i1 %873, label %910, label %874

874:                                              ; preds = %871, %868, %865, %862
  %875 = load i32, ptr %10, align 4, !tbaa !5
  %876 = icmp eq i32 %875, 5
  br i1 %876, label %877, label %886

877:                                              ; preds = %874
  %878 = load i32, ptr %11, align 4, !tbaa !5
  %879 = icmp eq i32 %878, 1
  br i1 %879, label %880, label %886

880:                                              ; preds = %877
  %881 = load i32, ptr %12, align 4, !tbaa !5
  %882 = icmp eq i32 %881, 5
  br i1 %882, label %883, label %886

883:                                              ; preds = %880
  %884 = load i32, ptr %13, align 4, !tbaa !5
  %885 = icmp eq i32 %884, 1
  br i1 %885, label %910, label %886

886:                                              ; preds = %883, %880, %877, %874
  %887 = load i32, ptr %10, align 4, !tbaa !5
  %888 = icmp eq i32 %887, 5
  br i1 %888, label %889, label %898

889:                                              ; preds = %886
  %890 = load i32, ptr %11, align 4, !tbaa !5
  %891 = icmp eq i32 %890, 5
  br i1 %891, label %892, label %898

892:                                              ; preds = %889
  %893 = load i32, ptr %12, align 4, !tbaa !5
  %894 = icmp eq i32 %893, 1
  br i1 %894, label %895, label %898

895:                                              ; preds = %892
  %896 = load i32, ptr %13, align 4, !tbaa !5
  %897 = icmp eq i32 %896, 1
  br i1 %897, label %910, label %898

898:                                              ; preds = %895, %892, %889, %886
  %899 = load i32, ptr %10, align 4, !tbaa !5
  %900 = icmp eq i32 %899, 5
  br i1 %900, label %901, label %937

901:                                              ; preds = %898
  %902 = load i32, ptr %11, align 4, !tbaa !5
  %903 = icmp eq i32 %902, 5
  br i1 %903, label %904, label %937

904:                                              ; preds = %901
  %905 = load i32, ptr %12, align 4, !tbaa !5
  %906 = icmp eq i32 %905, 5
  br i1 %906, label %907, label %937

907:                                              ; preds = %904
  %908 = load i32, ptr %13, align 4, !tbaa !5
  %909 = icmp eq i32 %908, 1
  br i1 %909, label %910, label %937

910:                                              ; preds = %907, %895, %883, %871, %859, %847, %835, %823, %811, %799, %787, %775, %763, %751, %739, %727, %715, %703, %691, %679, %667, %655, %643, %631, %619, %607, %595, %583, %571, %559
  %911 = load i32, ptr %10, align 4, !tbaa !5
  %912 = call ptr @libxsmm_get_typename(i32 noundef %911)
  %913 = load i32, ptr %11, align 4, !tbaa !5
  %914 = call ptr @libxsmm_get_typename(i32 noundef %913)
  %915 = load i32, ptr %12, align 4, !tbaa !5
  %916 = call ptr @libxsmm_get_typename(i32 noundef %915)
  %917 = load i32, ptr %13, align 4, !tbaa !5
  %918 = call ptr @libxsmm_get_typename(i32 noundef %917)
  %919 = getelementptr inbounds [256 x i8], ptr %22, i64 0, i64 0
  %920 = load i32, ptr %16, align 4, !tbaa !5
  %921 = load i32, ptr %17, align 4, !tbaa !5
  %922 = load i32, ptr %18, align 4, !tbaa !5
  %923 = load i32, ptr %19, align 4, !tbaa !5
  %924 = call i32 (ptr, ...) @printf(ptr noundef @.str.7, ptr noundef %912, ptr noundef %914, ptr noundef %916, ptr noundef %918, ptr noundef %919, i32 noundef %920, i32 noundef %921, i32 noundef %922, i32 noundef %923)
  %925 = load i32, ptr %16, align 4, !tbaa !5
  %926 = load i32, ptr %17, align 4, !tbaa !5
  %927 = load i32, ptr %18, align 4, !tbaa !5
  %928 = load i32, ptr %19, align 4, !tbaa !5
  %929 = load i32, ptr %14, align 4, !tbaa !5
  %930 = load i32, ptr %15, align 4, !tbaa !5
  %931 = load i32, ptr %10, align 4, !tbaa !5
  %932 = load i32, ptr %11, align 4, !tbaa !5
  %933 = load i32, ptr %12, align 4, !tbaa !5
  %934 = load i32, ptr %13, align 4, !tbaa !5
  %935 = load i32, ptr %21, align 4, !tbaa !5
  %936 = call i32 @test_binary_op(i32 noundef %925, i32 noundef %926, i32 noundef %927, i32 noundef %928, i32 noundef %929, i32 noundef %930, i32 noundef %931, i32 noundef %932, i32 noundef %933, i32 noundef %934, i32 noundef %935)
  store i32 %936, ptr %23, align 4, !tbaa !5
  br label %991

937:                                              ; preds = %907, %904, %901, %898, %547
  %938 = load i32, ptr %14, align 4, !tbaa !5
  %939 = icmp eq i32 %938, 6
  br i1 %939, label %940, label %985

940:                                              ; preds = %937
  %941 = load i32, ptr %10, align 4, !tbaa !5
  %942 = icmp eq i32 %941, 11
  br i1 %942, label %943, label %985

943:                                              ; preds = %940
  %944 = load i32, ptr %11, align 4, !tbaa !5
  %945 = icmp eq i32 %944, 11
  br i1 %945, label %946, label %985

946:                                              ; preds = %943
  %947 = load i32, ptr %12, align 4, !tbaa !5
  %948 = icmp eq i32 %947, 1
  br i1 %948, label %955, label %949

949:                                              ; preds = %946
  %950 = load i32, ptr %12, align 4, !tbaa !5
  %951 = icmp eq i32 %950, 8
  br i1 %951, label %955, label %952

952:                                              ; preds = %949
  %953 = load i32, ptr %12, align 4, !tbaa !5
  %954 = icmp eq i32 %953, 9
  br i1 %954, label %955, label %985

955:                                              ; preds = %952, %949, %946
  %956 = load i32, ptr %13, align 4, !tbaa !5
  %957 = icmp eq i32 %956, 14
  br i1 %957, label %958, label %985

958:                                              ; preds = %955
  %959 = load i32, ptr %10, align 4, !tbaa !5
  %960 = call ptr @libxsmm_get_typename(i32 noundef %959)
  %961 = load i32, ptr %11, align 4, !tbaa !5
  %962 = call ptr @libxsmm_get_typename(i32 noundef %961)
  %963 = load i32, ptr %12, align 4, !tbaa !5
  %964 = call ptr @libxsmm_get_typename(i32 noundef %963)
  %965 = load i32, ptr %13, align 4, !tbaa !5
  %966 = call ptr @libxsmm_get_typename(i32 noundef %965)
  %967 = getelementptr inbounds [256 x i8], ptr %22, i64 0, i64 0
  %968 = load i32, ptr %16, align 4, !tbaa !5
  %969 = load i32, ptr %17, align 4, !tbaa !5
  %970 = load i32, ptr %18, align 4, !tbaa !5
  %971 = load i32, ptr %19, align 4, !tbaa !5
  %972 = call i32 (ptr, ...) @printf(ptr noundef @.str.7, ptr noundef %960, ptr noundef %962, ptr noundef %964, ptr noundef %966, ptr noundef %967, i32 noundef %968, i32 noundef %969, i32 noundef %970, i32 noundef %971)
  %973 = load i32, ptr %16, align 4, !tbaa !5
  %974 = load i32, ptr %17, align 4, !tbaa !5
  %975 = load i32, ptr %18, align 4, !tbaa !5
  %976 = load i32, ptr %19, align 4, !tbaa !5
  %977 = load i32, ptr %14, align 4, !tbaa !5
  %978 = load i32, ptr %15, align 4, !tbaa !5
  %979 = load i32, ptr %10, align 4, !tbaa !5
  %980 = load i32, ptr %11, align 4, !tbaa !5
  %981 = load i32, ptr %12, align 4, !tbaa !5
  %982 = load i32, ptr %13, align 4, !tbaa !5
  %983 = load i32, ptr %21, align 4, !tbaa !5
  %984 = call i32 @test_binary_op(i32 noundef %973, i32 noundef %974, i32 noundef %975, i32 noundef %976, i32 noundef %977, i32 noundef %978, i32 noundef %979, i32 noundef %980, i32 noundef %981, i32 noundef %982, i32 noundef %983)
  store i32 %984, ptr %23, align 4, !tbaa !5
  br label %990

985:                                              ; preds = %955, %952, %943, %940, %937
  %986 = load ptr, ptr %5, align 8, !tbaa !9
  %987 = getelementptr inbounds ptr, ptr %986, i64 0
  %988 = load ptr, ptr %987, align 8, !tbaa !9
  %989 = call i32 (ptr, ...) @printf(ptr noundef @.str.8, ptr noundef %988)
  call void @exit(i32 noundef -1) #7
  unreachable

990:                                              ; preds = %958
  br label %991

991:                                              ; preds = %990, %910
  br label %992

992:                                              ; preds = %991, %520
  br label %998

993:                                              ; preds = %153
  %994 = load ptr, ptr %5, align 8, !tbaa !9
  %995 = getelementptr inbounds ptr, ptr %994, i64 0
  %996 = load ptr, ptr %995, align 8, !tbaa !9
  %997 = call i32 (ptr, ...) @printf(ptr noundef @.str.8, ptr noundef %996)
  call void @exit(i32 noundef -1) #7
  unreachable

998:                                              ; preds = %992
  %999 = load i32, ptr %23, align 4, !tbaa !5
  %1000 = icmp eq i32 %999, 0
  br i1 %1000, label %1001, label %1004

1001:                                             ; preds = %998
  %1002 = load i32, ptr @is_reference_kernel, align 4, !tbaa !5
  %1003 = call i32 @libxsmm_return_success_code(i32 noundef %1002)
  br label %1006

1004:                                             ; preds = %998
  %1005 = load i32, ptr %23, align 4, !tbaa !5
  br label %1006

1006:                                             ; preds = %1004, %1001
  %1007 = phi i32 [ %1003, %1001 ], [ %1005, %1004 ]
  store i32 %1007, ptr %23, align 4, !tbaa !5
  %1008 = load i32, ptr %23, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 256, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #6
  ret i32 %1008
}

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

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

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

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @char_to_libxsmm_datatype(ptr noundef) #5

; Function Attrs: inlinehint nounwind uwtable
declare hidden void @set_opname(i32 noundef, ptr noundef) #5

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @is_cmp_op(i32 noundef) #5

declare ptr @libxsmm_get_typename(i32 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @test_binary_op(i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #5

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}


; 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"

@is_reference_kernel = external dso_local local_unnamed_addr global i32, align 4
@.str = external hidden unnamed_addr constant [213 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [192 x i8], align 1
@switch.table.main = private unnamed_addr constant [6 x ptr] [ptr @.str.1, ptr @.str.2, ptr @.str.3, ptr @.str.4, ptr @.str.5, ptr @.str.6], align 8

; Function Attrs: nounwind uwtable
declare dso_local i32 @libxsmm_return_success_code(i32 noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr nocapture noundef readonly %1) local_unnamed_addr #0 {
  %3 = alloca [256 x i8], align 16
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %3) #7
  %4 = add i32 %0, -13
  %or.cond = icmp ult i32 %4, -2
  br i1 %or.cond, label %5, label %8

5:                                                ; preds = %2
  %6 = load ptr, ptr %1, align 8, !tbaa !5
  %7 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef %6)
  tail call void @exit(i32 noundef -1) #8
  unreachable

8:                                                ; preds = %2
  %9 = getelementptr inbounds i8, ptr %1, i64 8
  %10 = load ptr, ptr %9, align 8, !tbaa !5
  %11 = tail call i32 @atoi(ptr nocapture noundef %10) #9
  %12 = getelementptr inbounds i8, ptr %1, i64 16
  %13 = load ptr, ptr %12, align 8, !tbaa !5
  %14 = tail call i32 @atoi(ptr nocapture noundef %13) #9
  %15 = getelementptr inbounds i8, ptr %1, i64 24
  %16 = load ptr, ptr %15, align 8, !tbaa !5
  %17 = getelementptr inbounds i8, ptr %1, i64 32
  %18 = load ptr, ptr %17, align 8, !tbaa !5
  %19 = getelementptr inbounds i8, ptr %1, i64 40
  %20 = load ptr, ptr %19, align 8, !tbaa !5
  %21 = getelementptr inbounds i8, ptr %1, i64 48
  %22 = load ptr, ptr %21, align 8, !tbaa !5
  %23 = getelementptr inbounds i8, ptr %1, i64 56
  %24 = load ptr, ptr %23, align 8, !tbaa !5
  %25 = tail call i32 @atoi(ptr nocapture noundef %24) #9
  %26 = getelementptr inbounds i8, ptr %1, i64 64
  %27 = load ptr, ptr %26, align 8, !tbaa !5
  %28 = tail call i32 @atoi(ptr nocapture noundef %27) #9
  %29 = getelementptr inbounds i8, ptr %1, i64 72
  %30 = load ptr, ptr %29, align 8, !tbaa !5
  %31 = tail call i32 @atoi(ptr nocapture noundef %30) #9
  %32 = getelementptr inbounds i8, ptr %1, i64 80
  %33 = load ptr, ptr %32, align 8, !tbaa !5
  %34 = tail call i32 @atoi(ptr nocapture noundef %33) #9
  %35 = icmp ugt i32 %0, 11
  br i1 %35, label %36, label %40

36:                                               ; preds = %8
  %37 = getelementptr inbounds i8, ptr %1, i64 88
  %38 = load ptr, ptr %37, align 8, !tbaa !5
  %39 = tail call i32 @atoi(ptr nocapture noundef %38) #9
  br label %40

40:                                               ; preds = %36, %8
  %.0732 = phi i32 [ %39, %36 ], [ 0, %8 ]
  %41 = tail call i32 @char_to_libxsmm_datatype(ptr noundef %16)
  %42 = tail call i32 @char_to_libxsmm_datatype(ptr noundef %18)
  %43 = tail call i32 @char_to_libxsmm_datatype(ptr noundef %22)
  %44 = tail call i32 @char_to_libxsmm_datatype(ptr noundef %20)
  call void @set_opname(i32 noundef %11, ptr noundef nonnull %3)
  %45 = icmp eq i32 %11, 6
  %switch.tableidx = add i32 %11, -1
  %46 = icmp ult i32 %switch.tableidx, 10
  br i1 %46, label %switch.hole_check, label %47

47:                                               ; preds = %switch.hole_check, %40
  %48 = call i32 @is_cmp_op(i32 noundef %11)
  %49 = icmp sgt i32 %48, 0
  br label %switch.lookup

switch.hole_check:                                ; preds = %40
  %switch.maskindex = trunc nuw i32 %switch.tableidx to i16
  %switch.shifted = lshr i16 831, %switch.maskindex
  %switch.lobit = trunc i16 %switch.shifted to i1
  br i1 %switch.lobit, label %switch.lookup, label %47

switch.lookup:                                    ; preds = %switch.hole_check, %47
  %50 = phi i1 [ %49, %47 ], [ true, %switch.hole_check ]
  %switch.tableidx754 = add i32 %14, -1
  %51 = icmp ult i32 %switch.tableidx754, 6
  br i1 %51, label %switch.lookup753, label %54

switch.lookup753:                                 ; preds = %switch.lookup
  %52 = zext nneg i32 %switch.tableidx754 to i64
  %switch.gep = getelementptr inbounds [6 x ptr], ptr @switch.table.main, i64 0, i64 %52
  %switch.load = load ptr, ptr %switch.gep, align 8
  %53 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %switch.load)
  br label %54

54:                                               ; preds = %switch.lookup, %switch.lookup753
  br i1 %50, label %55, label %174

55:                                               ; preds = %54
  %56 = call i32 @is_cmp_op(i32 noundef %11)
  %57 = icmp sgt i32 %56, 0
  br i1 %57, label %58, label %94

58:                                               ; preds = %55
  %59 = icmp eq i32 %41, 1
  %60 = icmp eq i32 %42, 1
  %or.cond17 = select i1 %59, i1 %60, i1 false
  %61 = icmp eq i32 %43, 14
  %or.cond19 = select i1 %or.cond17, i1 %61, i1 false
  %62 = icmp eq i32 %44, 1
  %or.cond21 = select i1 %or.cond19, i1 %62, i1 false
  br i1 %or.cond21, label %87, label %63

63:                                               ; preds = %58
  %64 = icmp eq i32 %41, 0
  %65 = icmp eq i32 %42, 0
  %or.cond23 = select i1 %64, i1 %65, i1 false
  %or.cond25 = select i1 %or.cond23, i1 %61, i1 false
  %66 = icmp eq i32 %44, 0
  %or.cond27 = select i1 %or.cond25, i1 %66, i1 false
  br i1 %or.cond27, label %87, label %67

67:                                               ; preds = %63
  %68 = icmp eq i32 %42, 2
  %or.cond35 = select i1 %59, i1 %68, i1 false
  %or.cond37 = select i1 %or.cond35, i1 %61, i1 false
  %or.cond39 = select i1 %or.cond37, i1 %62, i1 false
  br i1 %or.cond39, label %87, label %69

69:                                               ; preds = %67
  %70 = icmp eq i32 %41, 2
  %or.cond47 = select i1 %70, i1 %60, i1 false
  %or.cond49 = select i1 %or.cond47, i1 %61, i1 false
  %or.cond51 = select i1 %or.cond49, i1 %62, i1 false
  br i1 %or.cond51, label %87, label %71

71:                                               ; preds = %69
  %or.cond59 = select i1 %70, i1 %68, i1 false
  %or.cond61 = select i1 %or.cond59, i1 %61, i1 false
  %or.cond63 = select i1 %or.cond61, i1 %62, i1 false
  br i1 %or.cond63, label %87, label %72

72:                                               ; preds = %71
  %73 = icmp eq i32 %42, 3
  %or.cond77 = select i1 %59, i1 %73, i1 false
  %or.cond79 = select i1 %or.cond77, i1 %61, i1 false
  %or.cond81 = select i1 %or.cond79, i1 %62, i1 false
  br i1 %or.cond81, label %87, label %74

74:                                               ; preds = %72
  %75 = icmp eq i32 %41, 3
  %or.cond89 = select i1 %75, i1 %60, i1 false
  %or.cond91 = select i1 %or.cond89, i1 %61, i1 false
  %or.cond93 = select i1 %or.cond91, i1 %62, i1 false
  br i1 %or.cond93, label %87, label %76

76:                                               ; preds = %74
  %or.cond101 = select i1 %75, i1 %73, i1 false
  %or.cond103 = select i1 %or.cond101, i1 %61, i1 false
  %or.cond105 = select i1 %or.cond103, i1 %62, i1 false
  br i1 %or.cond105, label %87, label %77

77:                                               ; preds = %76
  %78 = icmp eq i32 %42, 4
  %or.cond119 = select i1 %59, i1 %78, i1 false
  %or.cond121 = select i1 %or.cond119, i1 %61, i1 false
  %or.cond123 = select i1 %or.cond121, i1 %62, i1 false
  br i1 %or.cond123, label %87, label %79

79:                                               ; preds = %77
  %80 = icmp eq i32 %41, 4
  %or.cond131 = select i1 %80, i1 %60, i1 false
  %or.cond133 = select i1 %or.cond131, i1 %61, i1 false
  %or.cond135 = select i1 %or.cond133, i1 %62, i1 false
  br i1 %or.cond135, label %87, label %81

81:                                               ; preds = %79
  %or.cond143 = select i1 %80, i1 %78, i1 false
  %or.cond145 = select i1 %or.cond143, i1 %61, i1 false
  %or.cond147 = select i1 %or.cond145, i1 %62, i1 false
  br i1 %or.cond147, label %87, label %82

82:                                               ; preds = %81
  %83 = icmp eq i32 %42, 5
  %or.cond161 = select i1 %59, i1 %83, i1 false
  %or.cond163 = select i1 %or.cond161, i1 %61, i1 false
  %or.cond165 = select i1 %or.cond163, i1 %62, i1 false
  br i1 %or.cond165, label %87, label %84

84:                                               ; preds = %82
  %85 = icmp eq i32 %41, 5
  %or.cond173 = select i1 %85, i1 %60, i1 false
  %or.cond175 = select i1 %or.cond173, i1 %61, i1 false
  %or.cond177 = select i1 %or.cond175, i1 %62, i1 false
  br i1 %or.cond177, label %87, label %86

86:                                               ; preds = %84
  %or.cond185 = select i1 %85, i1 %83, i1 false
  %or.cond187 = select i1 %or.cond185, i1 %61, i1 false
  %or.cond189 = select i1 %or.cond187, i1 %62, i1 false
  br i1 %or.cond189, label %87, label %94

87:                                               ; preds = %86, %84, %82, %81, %79, %77, %76, %74, %72, %71, %69, %67, %63, %58
  %88 = call ptr @libxsmm_get_typename(i32 noundef %41) #7
  %89 = call ptr @libxsmm_get_typename(i32 noundef %42) #7
  %90 = call ptr @libxsmm_get_typename(i32 noundef %43) #7
  %91 = call ptr @libxsmm_get_typename(i32 noundef %44) #7
  %92 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.7, ptr noundef %88, ptr noundef %89, ptr noundef %90, ptr noundef %91, ptr noundef nonnull %3, i32 noundef %25, i32 noundef %28, i32 noundef %31, i32 noundef %34)
  %93 = call i32 @test_binary_op(i32 noundef %25, i32 noundef %28, i32 noundef %31, i32 noundef %34, i32 noundef %11, i32 noundef %14, i32 noundef %41, i32 noundef %42, i32 noundef %43, i32 noundef %44, i32 noundef %.0732)
  br label %177

94:                                               ; preds = %86, %55
  br i1 %45, label %157, label %95

95:                                               ; preds = %94
  %96 = icmp eq i32 %41, 1
  %97 = icmp eq i32 %42, 1
  %or.cond197 = select i1 %96, i1 %97, i1 false
  %98 = icmp eq i32 %43, 1
  %or.cond199 = select i1 %or.cond197, i1 %98, i1 false
  %99 = icmp eq i32 %44, 1
  %or.cond201 = select i1 %or.cond199, i1 %99, i1 false
  br i1 %or.cond201, label %150, label %100

100:                                              ; preds = %95
  %101 = icmp eq i32 %41, 0
  %102 = icmp eq i32 %42, 0
  %or.cond203 = select i1 %101, i1 %102, i1 false
  %103 = icmp eq i32 %43, 0
  %or.cond205 = select i1 %or.cond203, i1 %103, i1 false
  %104 = icmp eq i32 %44, 0
  %or.cond207 = select i1 %or.cond205, i1 %104, i1 false
  br i1 %or.cond207, label %150, label %105

105:                                              ; preds = %100
  %106 = icmp eq i32 %43, 2
  %or.cond211 = select i1 %or.cond197, i1 %106, i1 false
  %or.cond213 = select i1 %or.cond211, i1 %99, i1 false
  br i1 %or.cond213, label %150, label %107

107:                                              ; preds = %105
  %108 = icmp eq i32 %42, 2
  %or.cond215 = select i1 %96, i1 %108, i1 false
  %109 = add i32 %43, -1
  %110 = icmp ult i32 %109, 2
  %111 = select i1 %or.cond215, i1 %110, i1 false
  %or.cond739 = select i1 %111, i1 %99, i1 false
  br i1 %or.cond739, label %150, label %112

112:                                              ; preds = %107
  %113 = icmp eq i32 %41, 2
  %or.cond227 = select i1 %113, i1 %97, i1 false
  %114 = select i1 %or.cond227, i1 %110, i1 false
  %or.cond740 = select i1 %114, i1 %99, i1 false
  br i1 %or.cond740, label %150, label %115

115:                                              ; preds = %112
  %or.cond239 = select i1 %113, i1 %108, i1 false
  %116 = select i1 %or.cond239, i1 %110, i1 false
  %or.cond741 = select i1 %116, i1 %99, i1 false
  br i1 %or.cond741, label %150, label %117

117:                                              ; preds = %115
  %118 = icmp eq i32 %43, 3
  %or.cond253 = select i1 %or.cond197, i1 %118, i1 false
  %or.cond255 = select i1 %or.cond253, i1 %99, i1 false
  br i1 %or.cond255, label %150, label %119

119:                                              ; preds = %117
  %120 = icmp eq i32 %42, 3
  %or.cond257 = select i1 %96, i1 %120, i1 false
  %121 = or i1 %98, %118
  %122 = select i1 %or.cond257, i1 %121, i1 false
  %or.cond742 = select i1 %122, i1 %99, i1 false
  br i1 %or.cond742, label %150, label %123

123:                                              ; preds = %119
  %124 = icmp eq i32 %41, 3
  %or.cond269 = select i1 %124, i1 %97, i1 false
  %125 = select i1 %or.cond269, i1 %121, i1 false
  %or.cond743 = select i1 %125, i1 %99, i1 false
  br i1 %or.cond743, label %150, label %126

126:                                              ; preds = %123
  %or.cond281 = select i1 %124, i1 %120, i1 false
  %127 = select i1 %or.cond281, i1 %121, i1 false
  %or.cond744 = select i1 %127, i1 %99, i1 false
  br i1 %or.cond744, label %150, label %128

128:                                              ; preds = %126
  %129 = icmp eq i32 %43, 4
  %or.cond295 = select i1 %or.cond197, i1 %129, i1 false
  %or.cond297 = select i1 %or.cond295, i1 %99, i1 false
  br i1 %or.cond297, label %150, label %130

130:                                              ; preds = %128
  %131 = icmp eq i32 %42, 4
  %or.cond299 = select i1 %96, i1 %131, i1 false
  %132 = or i1 %98, %129
  %133 = select i1 %or.cond299, i1 %132, i1 false
  %or.cond745 = select i1 %133, i1 %99, i1 false
  br i1 %or.cond745, label %150, label %134

134:                                              ; preds = %130
  %135 = icmp eq i32 %41, 4
  %or.cond311 = select i1 %135, i1 %97, i1 false
  %136 = select i1 %or.cond311, i1 %132, i1 false
  %or.cond746 = select i1 %136, i1 %99, i1 false
  br i1 %or.cond746, label %150, label %137

137:                                              ; preds = %134
  %or.cond323 = select i1 %135, i1 %131, i1 false
  %138 = select i1 %or.cond323, i1 %132, i1 false
  %or.cond747 = select i1 %138, i1 %99, i1 false
  br i1 %or.cond747, label %150, label %139

139:                                              ; preds = %137
  %140 = icmp eq i32 %43, 5
  %or.cond337 = select i1 %or.cond197, i1 %140, i1 false
  %or.cond339 = select i1 %or.cond337, i1 %99, i1 false
  br i1 %or.cond339, label %150, label %141

141:                                              ; preds = %139
  %142 = icmp eq i32 %42, 5
  %or.cond341 = select i1 %96, i1 %142, i1 false
  %143 = or i1 %98, %140
  %144 = select i1 %or.cond341, i1 %143, i1 false
  %or.cond748 = select i1 %144, i1 %99, i1 false
  br i1 %or.cond748, label %150, label %145

145:                                              ; preds = %141
  %146 = icmp eq i32 %41, 5
  %or.cond353 = select i1 %146, i1 %97, i1 false
  %147 = select i1 %or.cond353, i1 %143, i1 false
  %or.cond749 = select i1 %147, i1 %99, i1 false
  br i1 %or.cond749, label %150, label %148

148:                                              ; preds = %145
  %or.cond365 = select i1 %146, i1 %142, i1 false
  %149 = select i1 %or.cond365, i1 %143, i1 false
  %or.cond750 = select i1 %149, i1 %99, i1 false
  br i1 %or.cond750, label %150, label %.thread

150:                                              ; preds = %148, %145, %141, %139, %137, %134, %130, %128, %126, %123, %119, %117, %115, %112, %107, %105, %100, %95
  %151 = call ptr @libxsmm_get_typename(i32 noundef %41) #7
  %152 = call ptr @libxsmm_get_typename(i32 noundef %42) #7
  %153 = call ptr @libxsmm_get_typename(i32 noundef %43) #7
  %154 = call ptr @libxsmm_get_typename(i32 noundef %44) #7
  %155 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.7, ptr noundef %151, ptr noundef %152, ptr noundef %153, ptr noundef %154, ptr noundef nonnull %3, i32 noundef %25, i32 noundef %28, i32 noundef %31, i32 noundef %34)
  %156 = call i32 @test_binary_op(i32 noundef %25, i32 noundef %28, i32 noundef %31, i32 noundef %34, i32 noundef %11, i32 noundef %14, i32 noundef %41, i32 noundef %42, i32 noundef %43, i32 noundef %44, i32 noundef %.0732)
  br label %177

157:                                              ; preds = %94
  %158 = icmp eq i32 %41, 11
  %159 = icmp eq i32 %42, 11
  %or.cond379 = select i1 %158, i1 %159, i1 false
  br i1 %or.cond379, label %160, label %.thread

160:                                              ; preds = %157
  %161 = icmp eq i32 %43, 8
  %162 = and i32 %43, -9
  %163 = icmp eq i32 %162, 1
  %or.cond383 = or i1 %161, %163
  %164 = icmp eq i32 %44, 14
  %or.cond385 = select i1 %or.cond383, i1 %164, i1 false
  br i1 %or.cond385, label %165, label %.thread

165:                                              ; preds = %160
  %166 = call ptr @libxsmm_get_typename(i32 noundef 11) #7
  %167 = call ptr @libxsmm_get_typename(i32 noundef 11) #7
  %168 = call ptr @libxsmm_get_typename(i32 noundef %43) #7
  %169 = call ptr @libxsmm_get_typename(i32 noundef 14) #7
  %170 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.7, ptr noundef %166, ptr noundef %167, ptr noundef %168, ptr noundef %169, ptr noundef nonnull %3, i32 noundef %25, i32 noundef %28, i32 noundef %31, i32 noundef %34)
  %171 = call i32 @test_binary_op(i32 noundef %25, i32 noundef %28, i32 noundef %31, i32 noundef %34, i32 noundef 6, i32 noundef %14, i32 noundef 11, i32 noundef 11, i32 noundef %43, i32 noundef 14, i32 noundef %.0732)
  br label %177

.thread:                                          ; preds = %148, %160, %157
  %172 = load ptr, ptr %1, align 8, !tbaa !5
  %173 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.8, ptr noundef %172)
  call void @exit(i32 noundef -1) #8
  unreachable

174:                                              ; preds = %54
  %175 = load ptr, ptr %1, align 8, !tbaa !5
  %176 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.8, ptr noundef %175)
  call void @exit(i32 noundef -1) #8
  unreachable

177:                                              ; preds = %87, %165, %150
  %.0 = phi i32 [ %93, %87 ], [ %156, %150 ], [ %171, %165 ]
  %178 = icmp eq i32 %.0, 0
  br i1 %178, label %179, label %182

179:                                              ; preds = %177
  %180 = load i32, ptr @is_reference_kernel, align 4, !tbaa !9
  %181 = call i32 @libxsmm_return_success_code(i32 noundef %180)
  br label %182

182:                                              ; preds = %177, %179
  %183 = phi i32 [ %181, %179 ], [ %.0, %177 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %3) #7
  ret i32 %183
}

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

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

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

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @char_to_libxsmm_datatype(ptr noundef) local_unnamed_addr #5

; Function Attrs: inlinehint nounwind uwtable
declare hidden void @set_opname(i32 noundef, ptr noundef) local_unnamed_addr #5

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @is_cmp_op(i32 noundef) local_unnamed_addr #5

declare ptr @libxsmm_get_typename(i32 noundef) local_unnamed_addr #6

; Function Attrs: inlinehint nounwind uwtable
declare hidden i32 @test_binary_op(i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #5

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass