; LLVM IR from libxsmm/libxsmm :: src (generator_gemm)

; 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.libxsmm_gemm_descriptor = type <{ i32, i32, i32, i32, i32, i32, i32, i8, [3 x i8], i8, i64, i64, i8, i32, i32, i32, i16, i16, i8, i8, i8, i8, i16, i16, i16, i16, i16, i16, i32, i32, i32, i8 }>
%struct.libxsmm_generated_code = type { ptr, i32, i32, i32, i32, i32, i32 }

@__func__.libxsmm_generator_gemm_kernel = external hidden unnamed_addr constant [30 x i8], align 1
@.str = external hidden unnamed_addr constant [70 x i8], align 1
@libxsmm_ninit = external global i32, align 4
@libxsmm_verbosity = external global i32, align 4
@.str.1 = external hidden unnamed_addr constant [9 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_gemm_kernel(ptr noundef %0, ptr noundef %1) #0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca %struct.libxsmm_gemm_descriptor, align 1
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 95, ptr %5) #4
  %19 = load ptr, ptr %4, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %5, ptr align 1 %19, i64 95, i1 false), !tbaa.struct !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #4
  store i32 1, ptr %6, align 4, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #4
  %20 = call i32 @libxsmm_cpuid_arm_use_bfdot()
  store i32 %20, ptr %7, align 4, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #4
  %21 = call i32 @libxsmm_cpuid_arm_use_i8dot()
  store i32 %21, ptr %8, align 4, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #4
  %22 = load ptr, ptr %3, align 8, !tbaa !5
  %23 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %22, i32 0, i32 6
  %24 = load i32, ptr %23, align 4, !tbaa !17
  store i32 %24, ptr %9, align 4, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #4
  %25 = load ptr, ptr %4, align 8, !tbaa !5
  %26 = call i32 @libxsmm_x86_is_Ai4_Bi8_gemm(ptr noundef %25)
  store i32 %26, ptr %10, align 4, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #4
  %27 = load ptr, ptr %4, align 8, !tbaa !5
  %28 = call i32 @libxsmm_x86_is_Amxfp4_Bbf16_gemm(ptr noundef %27)
  store i32 %28, ptr %11, align 4, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #4
  %29 = load ptr, ptr %4, align 8, !tbaa !5
  %30 = call i32 @libxsmm_x86_is_Amxfp4_Bfp32_gemm(ptr noundef %29)
  store i32 %30, ptr %12, align 4, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #4
  %31 = load ptr, ptr %4, align 8, !tbaa !5
  %32 = call i32 @libxsmm_x86_is_Amxfp4_Bi8_gemm(ptr noundef %31)
  store i32 %32, ptr %13, align 4, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #4
  %33 = load ptr, ptr %4, align 8, !tbaa !5
  %34 = call i32 @libxsmm_x86_is_Abf8_Bbf16_gemm(ptr noundef %33)
  store i32 %34, ptr %14, align 4, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #4
  %35 = load ptr, ptr %4, align 8, !tbaa !5
  %36 = call i32 @libxsmm_x86_is_Abf8_Bf16_gemm(ptr noundef %35)
  store i32 %36, ptr %15, align 4, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #4
  %37 = load ptr, ptr %4, align 8, !tbaa !5
  %38 = call i32 @libxsmm_x86_is_Ahf8_Bbf16_gemm(ptr noundef %37)
  store i32 %38, ptr %16, align 4, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  %39 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 3
  %40 = load i32, ptr %39, align 1, !tbaa !19
  %41 = icmp eq i32 %40, 0
  br i1 %41, label %42, label %50

42:                                               ; preds = %2
  %43 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 4
  %44 = load i32, ptr %43, align 1, !tbaa !21
  %45 = icmp eq i32 %44, 0
  br i1 %45, label %46, label %50

46:                                               ; preds = %42
  %47 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 5
  %48 = load i32, ptr %47, align 1, !tbaa !22
  %49 = icmp eq i32 %48, 0
  br label %50

50:                                               ; preds = %46, %42, %2
  %51 = phi i1 [ false, %42 ], [ false, %2 ], [ %49, %46 ]
  %52 = zext i1 %51 to i32
  store i32 %52, ptr %17, align 4, !tbaa !10
  %53 = load i32, ptr %12, align 4, !tbaa !10
  %54 = icmp ugt i32 %53, 0
  br i1 %54, label %55, label %69

55:                                               ; preds = %50
  %56 = load ptr, ptr %3, align 8, !tbaa !5
  %57 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %56, i32 0, i32 6
  %58 = load i32, ptr %57, align 4, !tbaa !17
  %59 = icmp uge i32 %58, 1006
  br i1 %59, label %60, label %68

60:                                               ; preds = %55
  %61 = load ptr, ptr %3, align 8, !tbaa !5
  %62 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %61, i32 0, i32 6
  %63 = load i32, ptr %62, align 4, !tbaa !17
  %64 = icmp ule i32 %63, 1999
  br i1 %64, label %65, label %68

65:                                               ; preds = %60
  %66 = load ptr, ptr %3, align 8, !tbaa !5
  %67 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %66, i32 0, i32 6
  store i32 1006, ptr %67, align 4, !tbaa !17
  br label %68

68:                                               ; preds = %65, %60, %55
  br label %69

69:                                               ; preds = %68, %50
  %70 = load i32, ptr %13, align 4, !tbaa !10
  %71 = icmp ugt i32 %70, 0
  br i1 %71, label %72, label %87

72:                                               ; preds = %69
  %73 = load ptr, ptr %3, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %73, i32 0, i32 6
  %75 = load i32, ptr %74, align 4, !tbaa !17
  %76 = icmp ne i32 %75, 1008
  br i1 %76, label %77, label %86

77:                                               ; preds = %72
  %78 = load ptr, ptr %3, align 8, !tbaa !5
  %79 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %80 = icmp ult i32 1, %79
  br i1 %80, label %81, label %83

81:                                               ; preds = %77
  %82 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %84

83:                                               ; preds = %77
  br label %84

84:                                               ; preds = %83, %81
  %85 = phi i32 [ %82, %81 ], [ 1, %83 ]
  call void @libxsmm_handle_error(ptr noundef %78, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 47, i32 noundef %85)
  store i32 1, ptr %18, align 4
  br label %4054

86:                                               ; preds = %72
  br label %87

87:                                               ; preds = %86, %69
  %88 = load i32, ptr %11, align 4, !tbaa !10
  %89 = icmp ugt i32 %88, 0
  br i1 %89, label %90, label %118

90:                                               ; preds = %87
  %91 = load ptr, ptr %3, align 8, !tbaa !5
  %92 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %91, i32 0, i32 6
  %93 = load i32, ptr %92, align 4, !tbaa !17
  %94 = icmp uge i32 %93, 1006
  br i1 %94, label %95, label %117

95:                                               ; preds = %90
  %96 = load ptr, ptr %3, align 8, !tbaa !5
  %97 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %96, i32 0, i32 6
  %98 = load i32, ptr %97, align 4, !tbaa !17
  %99 = icmp ult i32 %98, 1104
  br i1 %99, label %100, label %117

100:                                              ; preds = %95
  %101 = load ptr, ptr %3, align 8, !tbaa !5
  %102 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %101, i32 0, i32 6
  %103 = load i32, ptr %102, align 4, !tbaa !17
  %104 = icmp uge i32 %103, 1008
  br i1 %104, label %105, label %113

105:                                              ; preds = %100
  %106 = load ptr, ptr %3, align 8, !tbaa !5
  %107 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %106, i32 0, i32 6
  %108 = load i32, ptr %107, align 4, !tbaa !17
  %109 = icmp ult i32 %108, 1041
  br i1 %109, label %110, label %113

110:                                              ; preds = %105
  %111 = load ptr, ptr %3, align 8, !tbaa !5
  %112 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %111, i32 0, i32 6
  store i32 1008, ptr %112, align 4, !tbaa !17
  br label %116

113:                                              ; preds = %105, %100
  %114 = load ptr, ptr %3, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %114, i32 0, i32 6
  store i32 1006, ptr %115, align 4, !tbaa !17
  br label %116

116:                                              ; preds = %113, %110
  br label %117

117:                                              ; preds = %116, %95, %90
  br label %118

118:                                              ; preds = %117, %87
  %119 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %120 = load i32, ptr %119, align 1, !tbaa !23
  %121 = and i32 %120, 8388608
  %122 = icmp ugt i32 %121, 0
  br i1 %122, label %123, label %406

123:                                              ; preds = %118
  %124 = load ptr, ptr %3, align 8, !tbaa !5
  %125 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %124, i32 0, i32 6
  %126 = load i32, ptr %125, align 4, !tbaa !17
  %127 = icmp uge i32 %126, 1002
  br i1 %127, label %128, label %396

128:                                              ; preds = %123
  %129 = load ptr, ptr %3, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %129, i32 0, i32 6
  %131 = load i32, ptr %130, align 4, !tbaa !17
  %132 = icmp ule i32 %131, 1999
  br i1 %132, label %133, label %396

133:                                              ; preds = %128
  %134 = load ptr, ptr %3, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %134, i32 0, i32 6
  %136 = load i32, ptr %135, align 4, !tbaa !17
  %137 = icmp uge i32 %136, 1101
  br i1 %137, label %138, label %158

138:                                              ; preds = %133
  %139 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %140 = getelementptr inbounds [3 x i8], ptr %139, i64 0, i64 0
  %141 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %140)
  %142 = icmp eq i32 %141, 1
  br i1 %142, label %143, label %158

143:                                              ; preds = %138
  %144 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %145 = getelementptr inbounds [3 x i8], ptr %144, i64 0, i64 0
  %146 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %145)
  %147 = icmp eq i32 %146, 1
  br i1 %147, label %148, label %158

148:                                              ; preds = %143
  %149 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %150 = getelementptr inbounds [3 x i8], ptr %149, i64 0, i64 0
  %151 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %150)
  %152 = icmp eq i32 %151, 1
  br i1 %152, label %153, label %158

153:                                              ; preds = %148
  %154 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %155 = getelementptr inbounds [3 x i8], ptr %154, i64 0, i64 0
  %156 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %155)
  %157 = icmp eq i32 %156, 1
  br i1 %157, label %312, label %158

158:                                              ; preds = %153, %148, %143, %138, %133
  %159 = load ptr, ptr %3, align 8, !tbaa !5
  %160 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %159, i32 0, i32 6
  %161 = load i32, ptr %160, align 4, !tbaa !17
  %162 = icmp uge i32 %161, 1104
  br i1 %162, label %163, label %213

163:                                              ; preds = %158
  %164 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %165 = getelementptr inbounds [3 x i8], ptr %164, i64 0, i64 0
  %166 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %165)
  %167 = icmp eq i32 %166, 4
  br i1 %167, label %173, label %168

168:                                              ; preds = %163
  %169 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %170 = getelementptr inbounds [3 x i8], ptr %169, i64 0, i64 0
  %171 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %170)
  %172 = icmp eq i32 %171, 5
  br i1 %172, label %173, label %188

173:                                              ; preds = %168, %163
  %174 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %175 = getelementptr inbounds [3 x i8], ptr %174, i64 0, i64 0
  %176 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %175)
  %177 = icmp eq i32 %176, 2
  br i1 %177, label %178, label %188

178:                                              ; preds = %173
  %179 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %180 = getelementptr inbounds [3 x i8], ptr %179, i64 0, i64 0
  %181 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %180)
  %182 = icmp eq i32 %181, 1
  br i1 %182, label %183, label %188

183:                                              ; preds = %178
  %184 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %185 = getelementptr inbounds [3 x i8], ptr %184, i64 0, i64 0
  %186 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %185)
  %187 = icmp eq i32 %186, 1
  br i1 %187, label %312, label %188

188:                                              ; preds = %183, %178, %173, %168
  %189 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %190 = getelementptr inbounds [3 x i8], ptr %189, i64 0, i64 0
  %191 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %190)
  %192 = icmp eq i32 %191, 4
  br i1 %192, label %198, label %193

193:                                              ; preds = %188
  %194 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %195 = getelementptr inbounds [3 x i8], ptr %194, i64 0, i64 0
  %196 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %195)
  %197 = icmp eq i32 %196, 5
  br i1 %197, label %198, label %213

198:                                              ; preds = %193, %188
  %199 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %200 = getelementptr inbounds [3 x i8], ptr %199, i64 0, i64 0
  %201 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %200)
  %202 = icmp eq i32 %201, 2
  br i1 %202, label %203, label %213

203:                                              ; preds = %198
  %204 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %205 = getelementptr inbounds [3 x i8], ptr %204, i64 0, i64 0
  %206 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %205)
  %207 = icmp eq i32 %206, 1
  br i1 %207, label %208, label %213

208:                                              ; preds = %203
  %209 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %210 = getelementptr inbounds [3 x i8], ptr %209, i64 0, i64 0
  %211 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %210)
  %212 = icmp eq i32 %211, 2
  br i1 %212, label %312, label %213

213:                                              ; preds = %208, %203, %198, %193, %158
  %214 = load ptr, ptr %3, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %214, i32 0, i32 6
  %216 = load i32, ptr %215, align 4, !tbaa !17
  %217 = icmp uge i32 %216, 1105
  br i1 %217, label %218, label %258

218:                                              ; preds = %213
  %219 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %220 = getelementptr inbounds [3 x i8], ptr %219, i64 0, i64 0
  %221 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %220)
  %222 = icmp eq i32 %221, 4
  br i1 %222, label %223, label %238

223:                                              ; preds = %218
  %224 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %225 = getelementptr inbounds [3 x i8], ptr %224, i64 0, i64 0
  %226 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %225)
  %227 = icmp eq i32 %226, 3
  br i1 %227, label %228, label %238

228:                                              ; preds = %223
  %229 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %230 = getelementptr inbounds [3 x i8], ptr %229, i64 0, i64 0
  %231 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %230)
  %232 = icmp eq i32 %231, 1
  br i1 %232, label %233, label %238

233:                                              ; preds = %228
  %234 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %235 = getelementptr inbounds [3 x i8], ptr %234, i64 0, i64 0
  %236 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %235)
  %237 = icmp eq i32 %236, 1
  br i1 %237, label %312, label %238

238:                                              ; preds = %233, %228, %223, %218
  %239 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %240 = getelementptr inbounds [3 x i8], ptr %239, i64 0, i64 0
  %241 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %240)
  %242 = icmp eq i32 %241, 4
  br i1 %242, label %243, label %258

243:                                              ; preds = %238
  %244 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %245 = getelementptr inbounds [3 x i8], ptr %244, i64 0, i64 0
  %246 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %245)
  %247 = icmp eq i32 %246, 3
  br i1 %247, label %248, label %258

248:                                              ; preds = %243
  %249 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %250 = getelementptr inbounds [3 x i8], ptr %249, i64 0, i64 0
  %251 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %250)
  %252 = icmp eq i32 %251, 1
  br i1 %252, label %253, label %258

253:                                              ; preds = %248
  %254 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %255 = getelementptr inbounds [3 x i8], ptr %254, i64 0, i64 0
  %256 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %255)
  %257 = icmp eq i32 %256, 3
  br i1 %257, label %312, label %258

258:                                              ; preds = %253, %248, %243, %238, %213
  %259 = load ptr, ptr %3, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %259, i32 0, i32 6
  %261 = load i32, ptr %260, align 4, !tbaa !17
  %262 = icmp uge i32 %261, 1104
  br i1 %262, label %263, label %303

263:                                              ; preds = %258
  %264 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %265 = getelementptr inbounds [3 x i8], ptr %264, i64 0, i64 0
  %266 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %265)
  %267 = icmp eq i32 %266, 2
  br i1 %267, label %268, label %283

268:                                              ; preds = %263
  %269 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %270 = getelementptr inbounds [3 x i8], ptr %269, i64 0, i64 0
  %271 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %270)
  %272 = icmp eq i32 %271, 2
  br i1 %272, label %273, label %283

273:                                              ; preds = %268
  %274 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %275 = getelementptr inbounds [3 x i8], ptr %274, i64 0, i64 0
  %276 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %275)
  %277 = icmp eq i32 %276, 1
  br i1 %277, label %278, label %283

278:                                              ; preds = %273
  %279 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %280 = getelementptr inbounds [3 x i8], ptr %279, i64 0, i64 0
  %281 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %280)
  %282 = icmp eq i32 %281, 1
  br i1 %282, label %312, label %283

283:                                              ; preds = %278, %273, %268, %263
  %284 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %285 = getelementptr inbounds [3 x i8], ptr %284, i64 0, i64 0
  %286 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %285)
  %287 = icmp eq i32 %286, 2
  br i1 %287, label %288, label %303

288:                                              ; preds = %283
  %289 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %290 = getelementptr inbounds [3 x i8], ptr %289, i64 0, i64 0
  %291 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %290)
  %292 = icmp eq i32 %291, 2
  br i1 %292, label %293, label %303

293:                                              ; preds = %288
  %294 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %295 = getelementptr inbounds [3 x i8], ptr %294, i64 0, i64 0
  %296 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %295)
  %297 = icmp eq i32 %296, 1
  br i1 %297, label %298, label %303

298:                                              ; preds = %293
  %299 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %300 = getelementptr inbounds [3 x i8], ptr %299, i64 0, i64 0
  %301 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %300)
  %302 = icmp eq i32 %301, 2
  br i1 %302, label %312, label %303

303:                                              ; preds = %298, %293, %288, %283, %258
  %304 = load ptr, ptr %3, align 8, !tbaa !5
  %305 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %306 = icmp ult i32 1, %305
  br i1 %306, label %307, label %309

307:                                              ; preds = %303
  %308 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %310

309:                                              ; preds = %303
  br label %310

310:                                              ; preds = %309, %307
  %311 = phi i32 [ %308, %307 ], [ 1, %309 ]
  call void @libxsmm_handle_error(ptr noundef %304, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 84, i32 noundef %311)
  store i32 1, ptr %18, align 4
  br label %4054

312:                                              ; preds = %298, %278, %253, %233, %208, %183, %153
  %313 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 0
  %314 = load i32, ptr %313, align 1, !tbaa !24
  %315 = icmp eq i32 %314, 16
  br i1 %315, label %320, label %316

316:                                              ; preds = %312
  %317 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 0
  %318 = load i32, ptr %317, align 1, !tbaa !24
  %319 = icmp eq i32 %318, 32
  br i1 %319, label %320, label %335

320:                                              ; preds = %316, %312
  %321 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 1
  %322 = load i32, ptr %321, align 1, !tbaa !25
  %323 = icmp ule i32 %322, 32
  br i1 %323, label %324, label %335

324:                                              ; preds = %320
  %325 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 3
  %326 = load i32, ptr %325, align 1, !tbaa !19
  %327 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 0
  %328 = load i32, ptr %327, align 1, !tbaa !24
  %329 = icmp eq i32 %326, %328
  br i1 %329, label %330, label %335

330:                                              ; preds = %324
  %331 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %332 = load i32, ptr %331, align 1, !tbaa !26
  %333 = urem i32 %332, 32
  %334 = icmp eq i32 %333, 0
  br i1 %334, label %395, label %335

335:                                              ; preds = %330, %324, %320, %316
  %336 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 0
  %337 = load i32, ptr %336, align 1, !tbaa !24
  %338 = icmp eq i32 %337, 16
  br i1 %338, label %352, label %339

339:                                              ; preds = %335
  %340 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 0
  %341 = load i32, ptr %340, align 1, !tbaa !24
  %342 = icmp eq i32 %341, 32
  br i1 %342, label %352, label %343

343:                                              ; preds = %339
  %344 = load ptr, ptr %3, align 8, !tbaa !5
  %345 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %346 = icmp ult i32 1, %345
  br i1 %346, label %347, label %349

347:                                              ; preds = %343
  %348 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %350

349:                                              ; preds = %343
  br label %350

350:                                              ; preds = %349, %347
  %351 = phi i32 [ %348, %347 ], [ 1, %349 ]
  call void @libxsmm_handle_error(ptr noundef %344, i32 noundef 90017, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 89, i32 noundef %351)
  store i32 1, ptr %18, align 4
  br label %4054

352:                                              ; preds = %339, %335
  %353 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 1
  %354 = load i32, ptr %353, align 1, !tbaa !25
  %355 = icmp ugt i32 %354, 32
  br i1 %355, label %356, label %365

356:                                              ; preds = %352
  %357 = load ptr, ptr %3, align 8, !tbaa !5
  %358 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %359 = icmp ult i32 1, %358
  br i1 %359, label %360, label %362

360:                                              ; preds = %356
  %361 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %363

362:                                              ; preds = %356
  br label %363

363:                                              ; preds = %362, %360
  %364 = phi i32 [ %361, %360 ], [ 1, %362 ]
  call void @libxsmm_handle_error(ptr noundef %357, i32 noundef 90016, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 93, i32 noundef %364)
  store i32 1, ptr %18, align 4
  br label %4054

365:                                              ; preds = %352
  %366 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %367 = load i32, ptr %366, align 1, !tbaa !26
  %368 = urem i32 %367, 32
  %369 = icmp ne i32 %368, 0
  br i1 %369, label %370, label %379

370:                                              ; preds = %365
  %371 = load ptr, ptr %3, align 8, !tbaa !5
  %372 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %373 = icmp ult i32 1, %372
  br i1 %373, label %374, label %376

374:                                              ; preds = %370
  %375 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %377

376:                                              ; preds = %370
  br label %377

377:                                              ; preds = %376, %374
  %378 = phi i32 [ %375, %374 ], [ 1, %376 ]
  call void @libxsmm_handle_error(ptr noundef %371, i32 noundef 90018, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 97, i32 noundef %378)
  store i32 1, ptr %18, align 4
  br label %4054

379:                                              ; preds = %365
  %380 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 3
  %381 = load i32, ptr %380, align 1, !tbaa !19
  %382 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 0
  %383 = load i32, ptr %382, align 1, !tbaa !24
  %384 = icmp ne i32 %381, %383
  br i1 %384, label %385, label %394

385:                                              ; preds = %379
  %386 = load ptr, ptr %3, align 8, !tbaa !5
  %387 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %388 = icmp ult i32 1, %387
  br i1 %388, label %389, label %391

389:                                              ; preds = %385
  %390 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %392

391:                                              ; preds = %385
  br label %392

392:                                              ; preds = %391, %389
  %393 = phi i32 [ %390, %389 ], [ 1, %391 ]
  call void @libxsmm_handle_error(ptr noundef %386, i32 noundef 90007, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 101, i32 noundef %393)
  store i32 1, ptr %18, align 4
  br label %4054

394:                                              ; preds = %379
  br label %395

395:                                              ; preds = %394, %330
  br label %405

396:                                              ; preds = %128, %123
  %397 = load ptr, ptr %3, align 8, !tbaa !5
  %398 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %399 = icmp ult i32 1, %398
  br i1 %399, label %400, label %402

400:                                              ; preds = %396
  %401 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %403

402:                                              ; preds = %396
  br label %403

403:                                              ; preds = %402, %400
  %404 = phi i32 [ %401, %400 ], [ 1, %402 ]
  call void @libxsmm_handle_error(ptr noundef %397, i32 noundef 90005, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 106, i32 noundef %404)
  store i32 1, ptr %18, align 4
  br label %4054

405:                                              ; preds = %395
  br label %406

406:                                              ; preds = %405, %118
  %407 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %408 = getelementptr inbounds [3 x i8], ptr %407, i64 0, i64 0
  %409 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %408)
  %410 = icmp eq i32 %409, 0
  br i1 %410, label %411, label %426

411:                                              ; preds = %406
  %412 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %413 = getelementptr inbounds [3 x i8], ptr %412, i64 0, i64 0
  %414 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %413)
  %415 = icmp eq i32 %414, 0
  br i1 %415, label %416, label %426

416:                                              ; preds = %411
  %417 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %418 = getelementptr inbounds [3 x i8], ptr %417, i64 0, i64 0
  %419 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %418)
  %420 = icmp eq i32 %419, 0
  br i1 %420, label %421, label %426

421:                                              ; preds = %416
  %422 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %423 = getelementptr inbounds [3 x i8], ptr %422, i64 0, i64 0
  %424 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %423)
  %425 = icmp eq i32 %424, 0
  br i1 %425, label %1155, label %426

426:                                              ; preds = %421, %416, %411, %406
  %427 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %428 = getelementptr inbounds [3 x i8], ptr %427, i64 0, i64 0
  %429 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %428)
  %430 = icmp eq i32 %429, 1
  br i1 %430, label %431, label %446

431:                                              ; preds = %426
  %432 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %433 = getelementptr inbounds [3 x i8], ptr %432, i64 0, i64 0
  %434 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %433)
  %435 = icmp eq i32 %434, 1
  br i1 %435, label %436, label %446

436:                                              ; preds = %431
  %437 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %438 = getelementptr inbounds [3 x i8], ptr %437, i64 0, i64 0
  %439 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %438)
  %440 = icmp eq i32 %439, 1
  br i1 %440, label %441, label %446

441:                                              ; preds = %436
  %442 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %443 = getelementptr inbounds [3 x i8], ptr %442, i64 0, i64 0
  %444 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %443)
  %445 = icmp eq i32 %444, 1
  br i1 %445, label %1155, label %446

446:                                              ; preds = %441, %436, %431, %426
  %447 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %448 = getelementptr inbounds [3 x i8], ptr %447, i64 0, i64 0
  %449 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %448)
  %450 = icmp eq i32 %449, 10
  br i1 %450, label %451, label %466

451:                                              ; preds = %446
  %452 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %453 = getelementptr inbounds [3 x i8], ptr %452, i64 0, i64 0
  %454 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %453)
  %455 = icmp eq i32 %454, 10
  br i1 %455, label %456, label %466

456:                                              ; preds = %451
  %457 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %458 = getelementptr inbounds [3 x i8], ptr %457, i64 0, i64 0
  %459 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %458)
  %460 = icmp eq i32 %459, 8
  br i1 %460, label %461, label %466

461:                                              ; preds = %456
  %462 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %463 = getelementptr inbounds [3 x i8], ptr %462, i64 0, i64 0
  %464 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %463)
  %465 = icmp eq i32 %464, 8
  br i1 %465, label %1155, label %466

466:                                              ; preds = %461, %456, %451, %446
  %467 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %468 = getelementptr inbounds [3 x i8], ptr %467, i64 0, i64 0
  %469 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %468)
  %470 = icmp eq i32 %469, 12
  br i1 %470, label %471, label %486

471:                                              ; preds = %466
  %472 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %473 = getelementptr inbounds [3 x i8], ptr %472, i64 0, i64 0
  %474 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %473)
  %475 = icmp eq i32 %474, 12
  br i1 %475, label %476, label %486

476:                                              ; preds = %471
  %477 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %478 = getelementptr inbounds [3 x i8], ptr %477, i64 0, i64 0
  %479 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %478)
  %480 = icmp eq i32 %479, 8
  br i1 %480, label %481, label %486

481:                                              ; preds = %476
  %482 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %483 = getelementptr inbounds [3 x i8], ptr %482, i64 0, i64 0
  %484 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %483)
  %485 = icmp eq i32 %484, 8
  br i1 %485, label %1155, label %486

486:                                              ; preds = %481, %476, %471, %466
  %487 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %488 = getelementptr inbounds [3 x i8], ptr %487, i64 0, i64 0
  %489 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %488)
  %490 = icmp eq i32 %489, 12
  br i1 %490, label %491, label %506

491:                                              ; preds = %486
  %492 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %493 = getelementptr inbounds [3 x i8], ptr %492, i64 0, i64 0
  %494 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %493)
  %495 = icmp eq i32 %494, 12
  br i1 %495, label %496, label %506

496:                                              ; preds = %491
  %497 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %498 = getelementptr inbounds [3 x i8], ptr %497, i64 0, i64 0
  %499 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %498)
  %500 = icmp eq i32 %499, 8
  br i1 %500, label %501, label %506

501:                                              ; preds = %496
  %502 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %503 = getelementptr inbounds [3 x i8], ptr %502, i64 0, i64 0
  %504 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %503)
  %505 = icmp eq i32 %504, 1
  br i1 %505, label %1155, label %506

506:                                              ; preds = %501, %496, %491, %486
  %507 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %508 = getelementptr inbounds [3 x i8], ptr %507, i64 0, i64 0
  %509 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %508)
  %510 = icmp eq i32 %509, 12
  br i1 %510, label %511, label %526

511:                                              ; preds = %506
  %512 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %513 = getelementptr inbounds [3 x i8], ptr %512, i64 0, i64 0
  %514 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %513)
  %515 = icmp eq i32 %514, 12
  br i1 %515, label %516, label %526

516:                                              ; preds = %511
  %517 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %518 = getelementptr inbounds [3 x i8], ptr %517, i64 0, i64 0
  %519 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %518)
  %520 = icmp eq i32 %519, 8
  br i1 %520, label %521, label %526

521:                                              ; preds = %516
  %522 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %523 = getelementptr inbounds [3 x i8], ptr %522, i64 0, i64 0
  %524 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %523)
  %525 = icmp eq i32 %524, 2
  br i1 %525, label %1155, label %526

526:                                              ; preds = %521, %516, %511, %506
  %527 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %528 = getelementptr inbounds [3 x i8], ptr %527, i64 0, i64 0
  %529 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %528)
  %530 = icmp eq i32 %529, 4
  br i1 %530, label %531, label %546

531:                                              ; preds = %526
  %532 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %533 = getelementptr inbounds [3 x i8], ptr %532, i64 0, i64 0
  %534 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %533)
  %535 = icmp eq i32 %534, 3
  br i1 %535, label %536, label %546

536:                                              ; preds = %531
  %537 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %538 = getelementptr inbounds [3 x i8], ptr %537, i64 0, i64 0
  %539 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %538)
  %540 = icmp eq i32 %539, 3
  br i1 %540, label %541, label %546

541:                                              ; preds = %536
  %542 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %543 = getelementptr inbounds [3 x i8], ptr %542, i64 0, i64 0
  %544 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %543)
  %545 = icmp eq i32 %544, 3
  br i1 %545, label %1155, label %546

546:                                              ; preds = %541, %536, %531, %526
  %547 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %548 = getelementptr inbounds [3 x i8], ptr %547, i64 0, i64 0
  %549 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %548)
  %550 = icmp eq i32 %549, 4
  br i1 %550, label %551, label %566

551:                                              ; preds = %546
  %552 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %553 = getelementptr inbounds [3 x i8], ptr %552, i64 0, i64 0
  %554 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %553)
  %555 = icmp eq i32 %554, 3
  br i1 %555, label %556, label %566

556:                                              ; preds = %551
  %557 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %558 = getelementptr inbounds [3 x i8], ptr %557, i64 0, i64 0
  %559 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %558)
  %560 = icmp eq i32 %559, 1
  br i1 %560, label %561, label %566

561:                                              ; preds = %556
  %562 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %563 = getelementptr inbounds [3 x i8], ptr %562, i64 0, i64 0
  %564 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %563)
  %565 = icmp eq i32 %564, 3
  br i1 %565, label %1155, label %566

566:                                              ; preds = %561, %556, %551, %546
  %567 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %568 = getelementptr inbounds [3 x i8], ptr %567, i64 0, i64 0
  %569 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %568)
  %570 = icmp eq i32 %569, 4
  br i1 %570, label %571, label %586

571:                                              ; preds = %566
  %572 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %573 = getelementptr inbounds [3 x i8], ptr %572, i64 0, i64 0
  %574 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %573)
  %575 = icmp eq i32 %574, 3
  br i1 %575, label %576, label %586

576:                                              ; preds = %571
  %577 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %578 = getelementptr inbounds [3 x i8], ptr %577, i64 0, i64 0
  %579 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %578)
  %580 = icmp eq i32 %579, 14
  br i1 %580, label %581, label %586

581:                                              ; preds = %576
  %582 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %583 = getelementptr inbounds [3 x i8], ptr %582, i64 0, i64 0
  %584 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %583)
  %585 = icmp eq i32 %584, 3
  br i1 %585, label %1155, label %586

586:                                              ; preds = %581, %576, %571, %566
  %587 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %588 = getelementptr inbounds [3 x i8], ptr %587, i64 0, i64 0
  %589 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %588)
  %590 = icmp eq i32 %589, 4
  br i1 %590, label %591, label %606

591:                                              ; preds = %586
  %592 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %593 = getelementptr inbounds [3 x i8], ptr %592, i64 0, i64 0
  %594 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %593)
  %595 = icmp eq i32 %594, 3
  br i1 %595, label %596, label %606

596:                                              ; preds = %591
  %597 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %598 = getelementptr inbounds [3 x i8], ptr %597, i64 0, i64 0
  %599 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %598)
  %600 = icmp eq i32 %599, 3
  br i1 %600, label %601, label %606

601:                                              ; preds = %596
  %602 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %603 = getelementptr inbounds [3 x i8], ptr %602, i64 0, i64 0
  %604 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %603)
  %605 = icmp eq i32 %604, 1
  br i1 %605, label %1155, label %606

606:                                              ; preds = %601, %596, %591, %586
  %607 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %608 = getelementptr inbounds [3 x i8], ptr %607, i64 0, i64 0
  %609 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %608)
  %610 = icmp eq i32 %609, 4
  br i1 %610, label %611, label %626

611:                                              ; preds = %606
  %612 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %613 = getelementptr inbounds [3 x i8], ptr %612, i64 0, i64 0
  %614 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %613)
  %615 = icmp eq i32 %614, 3
  br i1 %615, label %616, label %626

616:                                              ; preds = %611
  %617 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %618 = getelementptr inbounds [3 x i8], ptr %617, i64 0, i64 0
  %619 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %618)
  %620 = icmp eq i32 %619, 1
  br i1 %620, label %621, label %626

621:                                              ; preds = %616
  %622 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %623 = getelementptr inbounds [3 x i8], ptr %622, i64 0, i64 0
  %624 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %623)
  %625 = icmp eq i32 %624, 1
  br i1 %625, label %1155, label %626

626:                                              ; preds = %621, %616, %611, %606
  %627 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %628 = getelementptr inbounds [3 x i8], ptr %627, i64 0, i64 0
  %629 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %628)
  %630 = icmp eq i32 %629, 4
  br i1 %630, label %631, label %646

631:                                              ; preds = %626
  %632 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %633 = getelementptr inbounds [3 x i8], ptr %632, i64 0, i64 0
  %634 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %633)
  %635 = icmp eq i32 %634, 3
  br i1 %635, label %636, label %646

636:                                              ; preds = %631
  %637 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %638 = getelementptr inbounds [3 x i8], ptr %637, i64 0, i64 0
  %639 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %638)
  %640 = icmp eq i32 %639, 14
  br i1 %640, label %641, label %646

641:                                              ; preds = %636
  %642 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %643 = getelementptr inbounds [3 x i8], ptr %642, i64 0, i64 0
  %644 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %643)
  %645 = icmp eq i32 %644, 1
  br i1 %645, label %1155, label %646

646:                                              ; preds = %641, %636, %631, %626
  %647 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %648 = getelementptr inbounds [3 x i8], ptr %647, i64 0, i64 0
  %649 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %648)
  %650 = icmp eq i32 %649, 12
  br i1 %650, label %651, label %666

651:                                              ; preds = %646
  %652 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %653 = getelementptr inbounds [3 x i8], ptr %652, i64 0, i64 0
  %654 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %653)
  %655 = icmp eq i32 %654, 3
  br i1 %655, label %656, label %666

656:                                              ; preds = %651
  %657 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %658 = getelementptr inbounds [3 x i8], ptr %657, i64 0, i64 0
  %659 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %658)
  %660 = icmp eq i32 %659, 3
  br i1 %660, label %661, label %666

661:                                              ; preds = %656
  %662 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %663 = getelementptr inbounds [3 x i8], ptr %662, i64 0, i64 0
  %664 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %663)
  %665 = icmp eq i32 %664, 3
  br i1 %665, label %1155, label %666

666:                                              ; preds = %661, %656, %651, %646
  %667 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %668 = getelementptr inbounds [3 x i8], ptr %667, i64 0, i64 0
  %669 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %668)
  %670 = icmp eq i32 %669, 12
  br i1 %670, label %671, label %686

671:                                              ; preds = %666
  %672 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %673 = getelementptr inbounds [3 x i8], ptr %672, i64 0, i64 0
  %674 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %673)
  %675 = icmp eq i32 %674, 2
  br i1 %675, label %676, label %686

676:                                              ; preds = %671
  %677 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %678 = getelementptr inbounds [3 x i8], ptr %677, i64 0, i64 0
  %679 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %678)
  %680 = icmp eq i32 %679, 1
  br i1 %680, label %681, label %686

681:                                              ; preds = %676
  %682 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %683 = getelementptr inbounds [3 x i8], ptr %682, i64 0, i64 0
  %684 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %683)
  %685 = icmp eq i32 %684, 2
  br i1 %685, label %1155, label %686

686:                                              ; preds = %681, %676, %671, %666
  %687 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %688 = getelementptr inbounds [3 x i8], ptr %687, i64 0, i64 0
  %689 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %688)
  %690 = icmp eq i32 %689, 12
  br i1 %690, label %691, label %706

691:                                              ; preds = %686
  %692 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %693 = getelementptr inbounds [3 x i8], ptr %692, i64 0, i64 0
  %694 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %693)
  %695 = icmp eq i32 %694, 2
  br i1 %695, label %696, label %706

696:                                              ; preds = %691
  %697 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %698 = getelementptr inbounds [3 x i8], ptr %697, i64 0, i64 0
  %699 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %698)
  %700 = icmp eq i32 %699, 1
  br i1 %700, label %701, label %706

701:                                              ; preds = %696
  %702 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %703 = getelementptr inbounds [3 x i8], ptr %702, i64 0, i64 0
  %704 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %703)
  %705 = icmp eq i32 %704, 1
  br i1 %705, label %1155, label %706

706:                                              ; preds = %701, %696, %691, %686
  %707 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %708 = getelementptr inbounds [3 x i8], ptr %707, i64 0, i64 0
  %709 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %708)
  %710 = icmp eq i32 %709, 12
  br i1 %710, label %711, label %726

711:                                              ; preds = %706
  %712 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %713 = getelementptr inbounds [3 x i8], ptr %712, i64 0, i64 0
  %714 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %713)
  %715 = icmp eq i32 %714, 1
  br i1 %715, label %716, label %726

716:                                              ; preds = %711
  %717 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %718 = getelementptr inbounds [3 x i8], ptr %717, i64 0, i64 0
  %719 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %718)
  %720 = icmp eq i32 %719, 1
  br i1 %720, label %721, label %726

721:                                              ; preds = %716
  %722 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %723 = getelementptr inbounds [3 x i8], ptr %722, i64 0, i64 0
  %724 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %723)
  %725 = icmp eq i32 %724, 1
  br i1 %725, label %1155, label %726

726:                                              ; preds = %721, %716, %711, %706
  %727 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %728 = getelementptr inbounds [3 x i8], ptr %727, i64 0, i64 0
  %729 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %728)
  %730 = icmp eq i32 %729, 12
  br i1 %730, label %731, label %746

731:                                              ; preds = %726
  %732 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %733 = getelementptr inbounds [3 x i8], ptr %732, i64 0, i64 0
  %734 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %733)
  %735 = icmp eq i32 %734, 3
  br i1 %735, label %736, label %746

736:                                              ; preds = %731
  %737 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %738 = getelementptr inbounds [3 x i8], ptr %737, i64 0, i64 0
  %739 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %738)
  %740 = icmp eq i32 %739, 1
  br i1 %740, label %741, label %746

741:                                              ; preds = %736
  %742 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %743 = getelementptr inbounds [3 x i8], ptr %742, i64 0, i64 0
  %744 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %743)
  %745 = icmp eq i32 %744, 3
  br i1 %745, label %1155, label %746

746:                                              ; preds = %741, %736, %731, %726
  %747 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %748 = getelementptr inbounds [3 x i8], ptr %747, i64 0, i64 0
  %749 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %748)
  %750 = icmp eq i32 %749, 12
  br i1 %750, label %751, label %766

751:                                              ; preds = %746
  %752 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %753 = getelementptr inbounds [3 x i8], ptr %752, i64 0, i64 0
  %754 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %753)
  %755 = icmp eq i32 %754, 3
  br i1 %755, label %756, label %766

756:                                              ; preds = %751
  %757 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %758 = getelementptr inbounds [3 x i8], ptr %757, i64 0, i64 0
  %759 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %758)
  %760 = icmp eq i32 %759, 14
  br i1 %760, label %761, label %766

761:                                              ; preds = %756
  %762 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %763 = getelementptr inbounds [3 x i8], ptr %762, i64 0, i64 0
  %764 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %763)
  %765 = icmp eq i32 %764, 3
  br i1 %765, label %1155, label %766

766:                                              ; preds = %761, %756, %751, %746
  %767 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %768 = getelementptr inbounds [3 x i8], ptr %767, i64 0, i64 0
  %769 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %768)
  %770 = icmp eq i32 %769, 12
  br i1 %770, label %771, label %786

771:                                              ; preds = %766
  %772 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %773 = getelementptr inbounds [3 x i8], ptr %772, i64 0, i64 0
  %774 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %773)
  %775 = icmp eq i32 %774, 3
  br i1 %775, label %776, label %786

776:                                              ; preds = %771
  %777 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %778 = getelementptr inbounds [3 x i8], ptr %777, i64 0, i64 0
  %779 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %778)
  %780 = icmp eq i32 %779, 3
  br i1 %780, label %781, label %786

781:                                              ; preds = %776
  %782 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %783 = getelementptr inbounds [3 x i8], ptr %782, i64 0, i64 0
  %784 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %783)
  %785 = icmp eq i32 %784, 1
  br i1 %785, label %1155, label %786

786:                                              ; preds = %781, %776, %771, %766
  %787 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %788 = getelementptr inbounds [3 x i8], ptr %787, i64 0, i64 0
  %789 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %788)
  %790 = icmp eq i32 %789, 12
  br i1 %790, label %791, label %806

791:                                              ; preds = %786
  %792 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %793 = getelementptr inbounds [3 x i8], ptr %792, i64 0, i64 0
  %794 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %793)
  %795 = icmp eq i32 %794, 3
  br i1 %795, label %796, label %806

796:                                              ; preds = %791
  %797 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %798 = getelementptr inbounds [3 x i8], ptr %797, i64 0, i64 0
  %799 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %798)
  %800 = icmp eq i32 %799, 1
  br i1 %800, label %801, label %806

801:                                              ; preds = %796
  %802 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %803 = getelementptr inbounds [3 x i8], ptr %802, i64 0, i64 0
  %804 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %803)
  %805 = icmp eq i32 %804, 1
  br i1 %805, label %1155, label %806

806:                                              ; preds = %801, %796, %791, %786
  %807 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %808 = getelementptr inbounds [3 x i8], ptr %807, i64 0, i64 0
  %809 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %808)
  %810 = icmp eq i32 %809, 12
  br i1 %810, label %811, label %826

811:                                              ; preds = %806
  %812 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %813 = getelementptr inbounds [3 x i8], ptr %812, i64 0, i64 0
  %814 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %813)
  %815 = icmp eq i32 %814, 3
  br i1 %815, label %816, label %826

816:                                              ; preds = %811
  %817 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %818 = getelementptr inbounds [3 x i8], ptr %817, i64 0, i64 0
  %819 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %818)
  %820 = icmp eq i32 %819, 14
  br i1 %820, label %821, label %826

821:                                              ; preds = %816
  %822 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %823 = getelementptr inbounds [3 x i8], ptr %822, i64 0, i64 0
  %824 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %823)
  %825 = icmp eq i32 %824, 1
  br i1 %825, label %1155, label %826

826:                                              ; preds = %821, %816, %811, %806
  %827 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %828 = getelementptr inbounds [3 x i8], ptr %827, i64 0, i64 0
  %829 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %828)
  %830 = icmp eq i32 %829, 3
  br i1 %830, label %831, label %846

831:                                              ; preds = %826
  %832 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %833 = getelementptr inbounds [3 x i8], ptr %832, i64 0, i64 0
  %834 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %833)
  %835 = icmp eq i32 %834, 3
  br i1 %835, label %836, label %846

836:                                              ; preds = %831
  %837 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %838 = getelementptr inbounds [3 x i8], ptr %837, i64 0, i64 0
  %839 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %838)
  %840 = icmp eq i32 %839, 3
  br i1 %840, label %841, label %846

841:                                              ; preds = %836
  %842 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %843 = getelementptr inbounds [3 x i8], ptr %842, i64 0, i64 0
  %844 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %843)
  %845 = icmp eq i32 %844, 3
  br i1 %845, label %1155, label %846

846:                                              ; preds = %841, %836, %831, %826
  %847 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %848 = getelementptr inbounds [3 x i8], ptr %847, i64 0, i64 0
  %849 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %848)
  %850 = icmp eq i32 %849, 3
  br i1 %850, label %851, label %866

851:                                              ; preds = %846
  %852 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %853 = getelementptr inbounds [3 x i8], ptr %852, i64 0, i64 0
  %854 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %853)
  %855 = icmp eq i32 %854, 3
  br i1 %855, label %856, label %866

856:                                              ; preds = %851
  %857 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %858 = getelementptr inbounds [3 x i8], ptr %857, i64 0, i64 0
  %859 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %858)
  %860 = icmp eq i32 %859, 1
  br i1 %860, label %861, label %866

861:                                              ; preds = %856
  %862 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %863 = getelementptr inbounds [3 x i8], ptr %862, i64 0, i64 0
  %864 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %863)
  %865 = icmp eq i32 %864, 3
  br i1 %865, label %1155, label %866

866:                                              ; preds = %861, %856, %851, %846
  %867 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %868 = getelementptr inbounds [3 x i8], ptr %867, i64 0, i64 0
  %869 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %868)
  %870 = icmp eq i32 %869, 3
  br i1 %870, label %871, label %886

871:                                              ; preds = %866
  %872 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %873 = getelementptr inbounds [3 x i8], ptr %872, i64 0, i64 0
  %874 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %873)
  %875 = icmp eq i32 %874, 3
  br i1 %875, label %876, label %886

876:                                              ; preds = %871
  %877 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %878 = getelementptr inbounds [3 x i8], ptr %877, i64 0, i64 0
  %879 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %878)
  %880 = icmp eq i32 %879, 14
  br i1 %880, label %881, label %886

881:                                              ; preds = %876
  %882 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %883 = getelementptr inbounds [3 x i8], ptr %882, i64 0, i64 0
  %884 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %883)
  %885 = icmp eq i32 %884, 3
  br i1 %885, label %1155, label %886

886:                                              ; preds = %881, %876, %871, %866
  %887 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %888 = getelementptr inbounds [3 x i8], ptr %887, i64 0, i64 0
  %889 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %888)
  %890 = icmp eq i32 %889, 3
  br i1 %890, label %891, label %906

891:                                              ; preds = %886
  %892 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %893 = getelementptr inbounds [3 x i8], ptr %892, i64 0, i64 0
  %894 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %893)
  %895 = icmp eq i32 %894, 3
  br i1 %895, label %896, label %906

896:                                              ; preds = %891
  %897 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %898 = getelementptr inbounds [3 x i8], ptr %897, i64 0, i64 0
  %899 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %898)
  %900 = icmp eq i32 %899, 3
  br i1 %900, label %901, label %906

901:                                              ; preds = %896
  %902 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %903 = getelementptr inbounds [3 x i8], ptr %902, i64 0, i64 0
  %904 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %903)
  %905 = icmp eq i32 %904, 1
  br i1 %905, label %1155, label %906

906:                                              ; preds = %901, %896, %891, %886
  %907 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %908 = getelementptr inbounds [3 x i8], ptr %907, i64 0, i64 0
  %909 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %908)
  %910 = icmp eq i32 %909, 3
  br i1 %910, label %911, label %926

911:                                              ; preds = %906
  %912 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %913 = getelementptr inbounds [3 x i8], ptr %912, i64 0, i64 0
  %914 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %913)
  %915 = icmp eq i32 %914, 3
  br i1 %915, label %916, label %926

916:                                              ; preds = %911
  %917 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %918 = getelementptr inbounds [3 x i8], ptr %917, i64 0, i64 0
  %919 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %918)
  %920 = icmp eq i32 %919, 1
  br i1 %920, label %921, label %926

921:                                              ; preds = %916
  %922 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %923 = getelementptr inbounds [3 x i8], ptr %922, i64 0, i64 0
  %924 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %923)
  %925 = icmp eq i32 %924, 1
  br i1 %925, label %1155, label %926

926:                                              ; preds = %921, %916, %911, %906
  %927 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %928 = getelementptr inbounds [3 x i8], ptr %927, i64 0, i64 0
  %929 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %928)
  %930 = icmp eq i32 %929, 3
  br i1 %930, label %931, label %946

931:                                              ; preds = %926
  %932 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %933 = getelementptr inbounds [3 x i8], ptr %932, i64 0, i64 0
  %934 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %933)
  %935 = icmp eq i32 %934, 3
  br i1 %935, label %936, label %946

936:                                              ; preds = %931
  %937 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %938 = getelementptr inbounds [3 x i8], ptr %937, i64 0, i64 0
  %939 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %938)
  %940 = icmp eq i32 %939, 14
  br i1 %940, label %941, label %946

941:                                              ; preds = %936
  %942 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %943 = getelementptr inbounds [3 x i8], ptr %942, i64 0, i64 0
  %944 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %943)
  %945 = icmp eq i32 %944, 1
  br i1 %945, label %1155, label %946

946:                                              ; preds = %941, %936, %931, %926
  %947 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %948 = getelementptr inbounds [3 x i8], ptr %947, i64 0, i64 0
  %949 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %948)
  %950 = icmp eq i32 %949, 2
  br i1 %950, label %951, label %966

951:                                              ; preds = %946
  %952 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %953 = getelementptr inbounds [3 x i8], ptr %952, i64 0, i64 0
  %954 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %953)
  %955 = icmp eq i32 %954, 2
  br i1 %955, label %956, label %966

956:                                              ; preds = %951
  %957 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %958 = getelementptr inbounds [3 x i8], ptr %957, i64 0, i64 0
  %959 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %958)
  %960 = icmp eq i32 %959, 1
  br i1 %960, label %961, label %966

961:                                              ; preds = %956
  %962 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %963 = getelementptr inbounds [3 x i8], ptr %962, i64 0, i64 0
  %964 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %963)
  %965 = icmp eq i32 %964, 1
  br i1 %965, label %1155, label %966

966:                                              ; preds = %961, %956, %951, %946
  %967 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %968 = getelementptr inbounds [3 x i8], ptr %967, i64 0, i64 0
  %969 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %968)
  %970 = icmp eq i32 %969, 2
  br i1 %970, label %971, label %986

971:                                              ; preds = %966
  %972 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %973 = getelementptr inbounds [3 x i8], ptr %972, i64 0, i64 0
  %974 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %973)
  %975 = icmp eq i32 %974, 2
  br i1 %975, label %976, label %986

976:                                              ; preds = %971
  %977 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %978 = getelementptr inbounds [3 x i8], ptr %977, i64 0, i64 0
  %979 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %978)
  %980 = icmp eq i32 %979, 1
  br i1 %980, label %981, label %986

981:                                              ; preds = %976
  %982 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %983 = getelementptr inbounds [3 x i8], ptr %982, i64 0, i64 0
  %984 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %983)
  %985 = icmp eq i32 %984, 2
  br i1 %985, label %1155, label %986

986:                                              ; preds = %981, %976, %971, %966
  %987 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %988 = getelementptr inbounds [3 x i8], ptr %987, i64 0, i64 0
  %989 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %988)
  %990 = icmp eq i32 %989, 4
  br i1 %990, label %991, label %1006

991:                                              ; preds = %986
  %992 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %993 = getelementptr inbounds [3 x i8], ptr %992, i64 0, i64 0
  %994 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %993)
  %995 = icmp eq i32 %994, 2
  br i1 %995, label %996, label %1006

996:                                              ; preds = %991
  %997 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %998 = getelementptr inbounds [3 x i8], ptr %997, i64 0, i64 0
  %999 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %998)
  %1000 = icmp eq i32 %999, 1
  br i1 %1000, label %1001, label %1006

1001:                                             ; preds = %996
  %1002 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1003 = getelementptr inbounds [3 x i8], ptr %1002, i64 0, i64 0
  %1004 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1003)
  %1005 = icmp eq i32 %1004, 1
  br i1 %1005, label %1155, label %1006

1006:                                             ; preds = %1001, %996, %991, %986
  %1007 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1008 = getelementptr inbounds [3 x i8], ptr %1007, i64 0, i64 0
  %1009 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %1008)
  %1010 = icmp eq i32 %1009, 4
  br i1 %1010, label %1011, label %1026

1011:                                             ; preds = %1006
  %1012 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1013 = getelementptr inbounds [3 x i8], ptr %1012, i64 0, i64 0
  %1014 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %1013)
  %1015 = icmp eq i32 %1014, 2
  br i1 %1015, label %1016, label %1026

1016:                                             ; preds = %1011
  %1017 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1018 = getelementptr inbounds [3 x i8], ptr %1017, i64 0, i64 0
  %1019 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %1018)
  %1020 = icmp eq i32 %1019, 1
  br i1 %1020, label %1021, label %1026

1021:                                             ; preds = %1016
  %1022 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1023 = getelementptr inbounds [3 x i8], ptr %1022, i64 0, i64 0
  %1024 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1023)
  %1025 = icmp eq i32 %1024, 2
  br i1 %1025, label %1155, label %1026

1026:                                             ; preds = %1021, %1016, %1011, %1006
  %1027 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1028 = getelementptr inbounds [3 x i8], ptr %1027, i64 0, i64 0
  %1029 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %1028)
  %1030 = icmp eq i32 %1029, 5
  br i1 %1030, label %1031, label %1046

1031:                                             ; preds = %1026
  %1032 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1033 = getelementptr inbounds [3 x i8], ptr %1032, i64 0, i64 0
  %1034 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %1033)
  %1035 = icmp eq i32 %1034, 2
  br i1 %1035, label %1036, label %1046

1036:                                             ; preds = %1031
  %1037 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1038 = getelementptr inbounds [3 x i8], ptr %1037, i64 0, i64 0
  %1039 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %1038)
  %1040 = icmp eq i32 %1039, 1
  br i1 %1040, label %1041, label %1046

1041:                                             ; preds = %1036
  %1042 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1043 = getelementptr inbounds [3 x i8], ptr %1042, i64 0, i64 0
  %1044 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1043)
  %1045 = icmp eq i32 %1044, 1
  br i1 %1045, label %1155, label %1046

1046:                                             ; preds = %1041, %1036, %1031, %1026
  %1047 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1048 = getelementptr inbounds [3 x i8], ptr %1047, i64 0, i64 0
  %1049 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %1048)
  %1050 = icmp eq i32 %1049, 5
  br i1 %1050, label %1051, label %1066

1051:                                             ; preds = %1046
  %1052 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1053 = getelementptr inbounds [3 x i8], ptr %1052, i64 0, i64 0
  %1054 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %1053)
  %1055 = icmp eq i32 %1054, 2
  br i1 %1055, label %1056, label %1066

1056:                                             ; preds = %1051
  %1057 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1058 = getelementptr inbounds [3 x i8], ptr %1057, i64 0, i64 0
  %1059 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %1058)
  %1060 = icmp eq i32 %1059, 1
  br i1 %1060, label %1061, label %1066

1061:                                             ; preds = %1056
  %1062 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1063 = getelementptr inbounds [3 x i8], ptr %1062, i64 0, i64 0
  %1064 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1063)
  %1065 = icmp eq i32 %1064, 2
  br i1 %1065, label %1155, label %1066

1066:                                             ; preds = %1061, %1056, %1051, %1046
  %1067 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1068 = getelementptr inbounds [3 x i8], ptr %1067, i64 0, i64 0
  %1069 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %1068)
  %1070 = icmp eq i32 %1069, 4
  br i1 %1070, label %1071, label %1086

1071:                                             ; preds = %1066
  %1072 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1073 = getelementptr inbounds [3 x i8], ptr %1072, i64 0, i64 0
  %1074 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %1073)
  %1075 = icmp eq i32 %1074, 4
  br i1 %1075, label %1076, label %1086

1076:                                             ; preds = %1071
  %1077 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1078 = getelementptr inbounds [3 x i8], ptr %1077, i64 0, i64 0
  %1079 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %1078)
  %1080 = icmp eq i32 %1079, 1
  br i1 %1080, label %1081, label %1086

1081:                                             ; preds = %1076
  %1082 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1083 = getelementptr inbounds [3 x i8], ptr %1082, i64 0, i64 0
  %1084 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1083)
  %1085 = icmp eq i32 %1084, 1
  br i1 %1085, label %1155, label %1086

1086:                                             ; preds = %1081, %1076, %1071, %1066
  %1087 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1088 = getelementptr inbounds [3 x i8], ptr %1087, i64 0, i64 0
  %1089 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %1088)
  %1090 = icmp eq i32 %1089, 4
  br i1 %1090, label %1091, label %1106

1091:                                             ; preds = %1086
  %1092 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1093 = getelementptr inbounds [3 x i8], ptr %1092, i64 0, i64 0
  %1094 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %1093)
  %1095 = icmp eq i32 %1094, 4
  br i1 %1095, label %1096, label %1106

1096:                                             ; preds = %1091
  %1097 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1098 = getelementptr inbounds [3 x i8], ptr %1097, i64 0, i64 0
  %1099 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %1098)
  %1100 = icmp eq i32 %1099, 1
  br i1 %1100, label %1101, label %1106

1101:                                             ; preds = %1096
  %1102 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1103 = getelementptr inbounds [3 x i8], ptr %1102, i64 0, i64 0
  %1104 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1103)
  %1105 = icmp eq i32 %1104, 4
  br i1 %1105, label %1155, label %1106

1106:                                             ; preds = %1101, %1096, %1091, %1086
  %1107 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1108 = getelementptr inbounds [3 x i8], ptr %1107, i64 0, i64 0
  %1109 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %1108)
  %1110 = icmp eq i32 %1109, 5
  br i1 %1110, label %1111, label %1126

1111:                                             ; preds = %1106
  %1112 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1113 = getelementptr inbounds [3 x i8], ptr %1112, i64 0, i64 0
  %1114 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %1113)
  %1115 = icmp eq i32 %1114, 5
  br i1 %1115, label %1116, label %1126

1116:                                             ; preds = %1111
  %1117 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1118 = getelementptr inbounds [3 x i8], ptr %1117, i64 0, i64 0
  %1119 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %1118)
  %1120 = icmp eq i32 %1119, 1
  br i1 %1120, label %1121, label %1126

1121:                                             ; preds = %1116
  %1122 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1123 = getelementptr inbounds [3 x i8], ptr %1122, i64 0, i64 0
  %1124 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1123)
  %1125 = icmp eq i32 %1124, 1
  br i1 %1125, label %1155, label %1126

1126:                                             ; preds = %1121, %1116, %1111, %1106
  %1127 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1128 = getelementptr inbounds [3 x i8], ptr %1127, i64 0, i64 0
  %1129 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %1128)
  %1130 = icmp eq i32 %1129, 5
  br i1 %1130, label %1131, label %1146

1131:                                             ; preds = %1126
  %1132 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1133 = getelementptr inbounds [3 x i8], ptr %1132, i64 0, i64 0
  %1134 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %1133)
  %1135 = icmp eq i32 %1134, 5
  br i1 %1135, label %1136, label %1146

1136:                                             ; preds = %1131
  %1137 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1138 = getelementptr inbounds [3 x i8], ptr %1137, i64 0, i64 0
  %1139 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %1138)
  %1140 = icmp eq i32 %1139, 1
  br i1 %1140, label %1141, label %1146

1141:                                             ; preds = %1136
  %1142 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1143 = getelementptr inbounds [3 x i8], ptr %1142, i64 0, i64 0
  %1144 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1143)
  %1145 = icmp eq i32 %1144, 5
  br i1 %1145, label %1155, label %1146

1146:                                             ; preds = %1141, %1136, %1131, %1126
  %1147 = load ptr, ptr %3, align 8, !tbaa !5
  %1148 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1149 = icmp ult i32 1, %1148
  br i1 %1149, label %1150, label %1152

1150:                                             ; preds = %1146
  %1151 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1153

1152:                                             ; preds = %1146
  br label %1153

1153:                                             ; preds = %1152, %1150
  %1154 = phi i32 [ %1151, %1150 ], [ 1, %1152 ]
  call void @libxsmm_handle_error(ptr noundef %1147, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 196, i32 noundef %1154)
  store i32 1, ptr %18, align 4
  br label %4054

1155:                                             ; preds = %1141, %1121, %1101, %1081, %1061, %1041, %1021, %1001, %981, %961, %941, %921, %901, %881, %861, %841, %821, %801, %781, %761, %741, %721, %701, %681, %661, %641, %621, %601, %581, %561, %541, %521, %501, %481, %461, %441, %421
  %1156 = load ptr, ptr %3, align 8, !tbaa !5
  %1157 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1156, i32 0, i32 6
  %1158 = load i32, ptr %1157, align 4, !tbaa !17
  %1159 = icmp uge i32 %1158, 3001
  br i1 %1159, label %1160, label %1254

1160:                                             ; preds = %1155
  %1161 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1162 = getelementptr inbounds [3 x i8], ptr %1161, i64 0, i64 0
  %1163 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %1162)
  %1164 = icmp eq i32 %1163, 1
  br i1 %1164, label %1165, label %1180

1165:                                             ; preds = %1160
  %1166 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1167 = getelementptr inbounds [3 x i8], ptr %1166, i64 0, i64 0
  %1168 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %1167)
  %1169 = icmp eq i32 %1168, 1
  br i1 %1169, label %1170, label %1180

1170:                                             ; preds = %1165
  %1171 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1172 = getelementptr inbounds [3 x i8], ptr %1171, i64 0, i64 0
  %1173 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %1172)
  %1174 = icmp eq i32 %1173, 1
  br i1 %1174, label %1175, label %1180

1175:                                             ; preds = %1170
  %1176 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1177 = getelementptr inbounds [3 x i8], ptr %1176, i64 0, i64 0
  %1178 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1177)
  %1179 = icmp eq i32 %1178, 1
  br i1 %1179, label %1209, label %1180

1180:                                             ; preds = %1175, %1170, %1165, %1160
  %1181 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1182 = getelementptr inbounds [3 x i8], ptr %1181, i64 0, i64 0
  %1183 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %1182)
  %1184 = icmp eq i32 %1183, 0
  br i1 %1184, label %1185, label %1200

1185:                                             ; preds = %1180
  %1186 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1187 = getelementptr inbounds [3 x i8], ptr %1186, i64 0, i64 0
  %1188 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %1187)
  %1189 = icmp eq i32 %1188, 0
  br i1 %1189, label %1190, label %1200

1190:                                             ; preds = %1185
  %1191 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1192 = getelementptr inbounds [3 x i8], ptr %1191, i64 0, i64 0
  %1193 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %1192)
  %1194 = icmp eq i32 %1193, 0
  br i1 %1194, label %1195, label %1200

1195:                                             ; preds = %1190
  %1196 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1197 = getelementptr inbounds [3 x i8], ptr %1196, i64 0, i64 0
  %1198 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1197)
  %1199 = icmp eq i32 %1198, 0
  br i1 %1199, label %1209, label %1200

1200:                                             ; preds = %1195, %1190, %1185, %1180
  %1201 = load ptr, ptr %3, align 8, !tbaa !5
  %1202 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1203 = icmp ult i32 1, %1202
  br i1 %1203, label %1204, label %1206

1204:                                             ; preds = %1200
  %1205 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1207

1206:                                             ; preds = %1200
  br label %1207

1207:                                             ; preds = %1206, %1204
  %1208 = phi i32 [ %1205, %1204 ], [ 1, %1206 ]
  call void @libxsmm_handle_error(ptr noundef %1201, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 207, i32 noundef %1208)
  store i32 1, ptr %18, align 4
  br label %4054

1209:                                             ; preds = %1195, %1175
  %1210 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1211 = load i32, ptr %1210, align 1, !tbaa !23
  %1212 = and i32 %1211, 1
  %1213 = icmp ugt i32 %1212, 0
  br i1 %1213, label %1214, label %1223

1214:                                             ; preds = %1209
  %1215 = load ptr, ptr %3, align 8, !tbaa !5
  %1216 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1217 = icmp ult i32 1, %1216
  br i1 %1217, label %1218, label %1220

1218:                                             ; preds = %1214
  %1219 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1221

1220:                                             ; preds = %1214
  br label %1221

1221:                                             ; preds = %1220, %1218
  %1222 = phi i32 [ %1219, %1218 ], [ 1, %1220 ]
  call void @libxsmm_handle_error(ptr noundef %1215, i32 noundef 90049, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 212, i32 noundef %1222)
  store i32 1, ptr %18, align 4
  br label %4054

1223:                                             ; preds = %1209
  %1224 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1225 = load i32, ptr %1224, align 1, !tbaa !23
  %1226 = and i32 %1225, 2048
  %1227 = icmp ugt i32 %1226, 0
  br i1 %1227, label %1228, label %1237

1228:                                             ; preds = %1223
  %1229 = load ptr, ptr %3, align 8, !tbaa !5
  %1230 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1231 = icmp ult i32 1, %1230
  br i1 %1231, label %1232, label %1234

1232:                                             ; preds = %1228
  %1233 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1235

1234:                                             ; preds = %1228
  br label %1235

1235:                                             ; preds = %1234, %1232
  %1236 = phi i32 [ %1233, %1232 ], [ 1, %1234 ]
  call void @libxsmm_handle_error(ptr noundef %1229, i32 noundef 90041, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 222, i32 noundef %1236)
  br label %1252

1237:                                             ; preds = %1223
  %1238 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1239 = load i32, ptr %1238, align 1, !tbaa !23
  %1240 = and i32 %1239, 4096
  %1241 = icmp ugt i32 %1240, 0
  br i1 %1241, label %1242, label %1251

1242:                                             ; preds = %1237
  %1243 = load ptr, ptr %3, align 8, !tbaa !5
  %1244 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1245 = icmp ult i32 1, %1244
  br i1 %1245, label %1246, label %1248

1246:                                             ; preds = %1242
  %1247 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1249

1248:                                             ; preds = %1242
  br label %1249

1249:                                             ; preds = %1248, %1246
  %1250 = phi i32 [ %1247, %1246 ], [ 1, %1248 ]
  call void @libxsmm_handle_error(ptr noundef %1243, i32 noundef 90042, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 225, i32 noundef %1250)
  br label %1251

1251:                                             ; preds = %1249, %1237
  br label %1252

1252:                                             ; preds = %1251, %1235
  br label %1253

1253:                                             ; preds = %1252
  br label %1254

1254:                                             ; preds = %1253, %1155
  %1255 = load ptr, ptr %3, align 8, !tbaa !5
  %1256 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1255, i32 0, i32 6
  %1257 = load i32, ptr %1256, align 4, !tbaa !17
  %1258 = icmp uge i32 %1257, 1002
  br i1 %1258, label %1259, label %1707

1259:                                             ; preds = %1254
  %1260 = load ptr, ptr %3, align 8, !tbaa !5
  %1261 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1260, i32 0, i32 6
  %1262 = load i32, ptr %1261, align 4, !tbaa !17
  %1263 = icmp ule i32 %1262, 1999
  br i1 %1263, label %1264, label %1707

1264:                                             ; preds = %1259
  %1265 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1266 = getelementptr inbounds [3 x i8], ptr %1265, i64 0, i64 0
  %1267 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1266)
  %1268 = icmp ne i32 15, %1267
  br i1 %1268, label %1269, label %1288

1269:                                             ; preds = %1264
  %1270 = load i32, ptr %10, align 4, !tbaa !10
  %1271 = icmp ugt i32 %1270, 0
  br i1 %1271, label %1272, label %1286

1272:                                             ; preds = %1269
  %1273 = load ptr, ptr %3, align 8, !tbaa !5
  %1274 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1273, i32 0, i32 6
  %1275 = load i32, ptr %1274, align 4, !tbaa !17
  %1276 = icmp ult i32 %1275, 1101
  br i1 %1276, label %1277, label %1286

1277:                                             ; preds = %1272
  %1278 = load ptr, ptr %3, align 8, !tbaa !5
  %1279 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1280 = icmp ult i32 1, %1279
  br i1 %1280, label %1281, label %1283

1281:                                             ; preds = %1277
  %1282 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1284

1283:                                             ; preds = %1277
  br label %1284

1284:                                             ; preds = %1283, %1281
  %1285 = phi i32 [ %1282, %1281 ], [ 1, %1283 ]
  call void @libxsmm_handle_error(ptr noundef %1278, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 232, i32 noundef %1285)
  store i32 1, ptr %18, align 4
  br label %4054

1286:                                             ; preds = %1272, %1269
  br label %1287

1287:                                             ; preds = %1286
  br label %1706

1288:                                             ; preds = %1264
  %1289 = load ptr, ptr %3, align 8, !tbaa !5
  %1290 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1289, i32 0, i32 6
  %1291 = load i32, ptr %1290, align 4, !tbaa !17
  %1292 = icmp uge i32 %1291, 1051
  br i1 %1292, label %1293, label %1319

1293:                                             ; preds = %1288
  %1294 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1295 = getelementptr inbounds [3 x i8], ptr %1294, i64 0, i64 0
  %1296 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %1295)
  %1297 = icmp eq i32 %1296, 12
  br i1 %1297, label %1303, label %1298

1298:                                             ; preds = %1293
  %1299 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1300 = getelementptr inbounds [3 x i8], ptr %1299, i64 0, i64 0
  %1301 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %1300)
  %1302 = icmp eq i32 %1301, 4
  br i1 %1302, label %1303, label %1319

1303:                                             ; preds = %1298, %1293
  %1304 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1305 = getelementptr inbounds [3 x i8], ptr %1304, i64 0, i64 0
  %1306 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %1305)
  %1307 = icmp eq i32 %1306, 3
  br i1 %1307, label %1308, label %1319

1308:                                             ; preds = %1303
  %1309 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1310 = getelementptr inbounds [3 x i8], ptr %1309, i64 0, i64 0
  %1311 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1310)
  %1312 = icmp eq i32 %1311, 3
  br i1 %1312, label %1318, label %1313

1313:                                             ; preds = %1308
  %1314 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1315 = getelementptr inbounds [3 x i8], ptr %1314, i64 0, i64 0
  %1316 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1315)
  %1317 = icmp eq i32 %1316, 1
  br i1 %1317, label %1318, label %1319

1318:                                             ; preds = %1313, %1308
  br label %1705

1319:                                             ; preds = %1313, %1303, %1298, %1288
  %1320 = load ptr, ptr %3, align 8, !tbaa !5
  %1321 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1320, i32 0, i32 6
  %1322 = load i32, ptr %1321, align 4, !tbaa !17
  %1323 = icmp uge i32 %1322, 1051
  br i1 %1323, label %1324, label %1428

1324:                                             ; preds = %1319
  %1325 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1326 = getelementptr inbounds [3 x i8], ptr %1325, i64 0, i64 0
  %1327 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %1326)
  %1328 = icmp eq i32 %1327, 12
  br i1 %1328, label %1329, label %1428

1329:                                             ; preds = %1324
  %1330 = load i32, ptr %11, align 4, !tbaa !10
  %1331 = icmp eq i32 %1330, 0
  br i1 %1331, label %1332, label %1428

1332:                                             ; preds = %1329
  %1333 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1334 = getelementptr inbounds [3 x i8], ptr %1333, i64 0, i64 0
  %1335 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %1334)
  %1336 = icmp eq i32 %1335, 2
  br i1 %1336, label %1337, label %1428

1337:                                             ; preds = %1332
  %1338 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1339 = getelementptr inbounds [3 x i8], ptr %1338, i64 0, i64 0
  %1340 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %1339)
  %1341 = icmp eq i32 %1340, 1
  br i1 %1341, label %1342, label %1428

1342:                                             ; preds = %1337
  %1343 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1344 = getelementptr inbounds [3 x i8], ptr %1343, i64 0, i64 0
  %1345 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1344)
  %1346 = icmp eq i32 %1345, 2
  br i1 %1346, label %1352, label %1347

1347:                                             ; preds = %1342
  %1348 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1349 = getelementptr inbounds [3 x i8], ptr %1348, i64 0, i64 0
  %1350 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1349)
  %1351 = icmp eq i32 %1350, 1
  br i1 %1351, label %1352, label %1428

1352:                                             ; preds = %1347, %1342
  %1353 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1354 = load i32, ptr %1353, align 1, !tbaa !23
  %1355 = and i32 %1354, 1
  %1356 = icmp ugt i32 %1355, 0
  br i1 %1356, label %1357, label %1366

1357:                                             ; preds = %1352
  %1358 = load ptr, ptr %3, align 8, !tbaa !5
  %1359 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1360 = icmp ult i32 1, %1359
  br i1 %1360, label %1361, label %1363

1361:                                             ; preds = %1357
  %1362 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1364

1363:                                             ; preds = %1357
  br label %1364

1364:                                             ; preds = %1363, %1361
  %1365 = phi i32 [ %1362, %1361 ], [ 1, %1363 ]
  call void @libxsmm_handle_error(ptr noundef %1358, i32 noundef 90049, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 248, i32 noundef %1365)
  store i32 1, ptr %18, align 4
  br label %4054

1366:                                             ; preds = %1352
  %1367 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1368 = load i32, ptr %1367, align 1, !tbaa !23
  %1369 = and i32 %1368, 2048
  %1370 = icmp ugt i32 %1369, 0
  br i1 %1370, label %1371, label %1380

1371:                                             ; preds = %1366
  %1372 = load ptr, ptr %3, align 8, !tbaa !5
  %1373 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1374 = icmp ult i32 1, %1373
  br i1 %1374, label %1375, label %1377

1375:                                             ; preds = %1371
  %1376 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1378

1377:                                             ; preds = %1371
  br label %1378

1378:                                             ; preds = %1377, %1375
  %1379 = phi i32 [ %1376, %1375 ], [ 1, %1377 ]
  call void @libxsmm_handle_error(ptr noundef %1372, i32 noundef 90041, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 251, i32 noundef %1379)
  store i32 1, ptr %18, align 4
  br label %4054

1380:                                             ; preds = %1366
  %1381 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1382 = load i32, ptr %1381, align 1, !tbaa !23
  %1383 = and i32 %1382, 2
  %1384 = icmp ugt i32 %1383, 0
  br i1 %1384, label %1385, label %1394

1385:                                             ; preds = %1380
  %1386 = load ptr, ptr %3, align 8, !tbaa !5
  %1387 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1388 = icmp ult i32 1, %1387
  br i1 %1388, label %1389, label %1391

1389:                                             ; preds = %1385
  %1390 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1392

1391:                                             ; preds = %1385
  br label %1392

1392:                                             ; preds = %1391, %1389
  %1393 = phi i32 [ %1390, %1389 ], [ 1, %1391 ]
  call void @libxsmm_handle_error(ptr noundef %1386, i32 noundef 90039, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 254, i32 noundef %1393)
  store i32 1, ptr %18, align 4
  br label %4054

1394:                                             ; preds = %1380
  %1395 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1396 = load i32, ptr %1395, align 1, !tbaa !23
  %1397 = and i32 %1396, 4096
  %1398 = icmp ugt i32 %1397, 0
  br i1 %1398, label %1399, label %1408

1399:                                             ; preds = %1394
  %1400 = load ptr, ptr %3, align 8, !tbaa !5
  %1401 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1402 = icmp ult i32 1, %1401
  br i1 %1402, label %1403, label %1405

1403:                                             ; preds = %1399
  %1404 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1406

1405:                                             ; preds = %1399
  br label %1406

1406:                                             ; preds = %1405, %1403
  %1407 = phi i32 [ %1404, %1403 ], [ 1, %1405 ]
  call void @libxsmm_handle_error(ptr noundef %1400, i32 noundef 90042, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 257, i32 noundef %1407)
  store i32 1, ptr %18, align 4
  br label %4054

1408:                                             ; preds = %1394
  %1409 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %1410 = load i32, ptr %1409, align 1, !tbaa !26
  %1411 = urem i32 %1410, 2
  %1412 = icmp ne i32 %1411, 0
  br i1 %1412, label %1413, label %1422

1413:                                             ; preds = %1408
  %1414 = load ptr, ptr %3, align 8, !tbaa !5
  %1415 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1416 = icmp ult i32 1, %1415
  br i1 %1416, label %1417, label %1419

1417:                                             ; preds = %1413
  %1418 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1420

1419:                                             ; preds = %1413
  br label %1420

1420:                                             ; preds = %1419, %1417
  %1421 = phi i32 [ %1418, %1417 ], [ 1, %1419 ]
  call void @libxsmm_handle_error(ptr noundef %1414, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 260, i32 noundef %1421)
  store i32 1, ptr %18, align 4
  br label %4054

1422:                                             ; preds = %1408
  br label %1423

1423:                                             ; preds = %1422
  br label %1424

1424:                                             ; preds = %1423
  br label %1425

1425:                                             ; preds = %1424
  br label %1426

1426:                                             ; preds = %1425
  br label %1427

1427:                                             ; preds = %1426
  br label %1704

1428:                                             ; preds = %1347, %1337, %1332, %1329, %1324, %1319
  %1429 = load i32, ptr %14, align 4, !tbaa !10
  %1430 = icmp ugt i32 %1429, 0
  br i1 %1430, label %1437, label %1431

1431:                                             ; preds = %1428
  %1432 = load i32, ptr %16, align 4, !tbaa !10
  %1433 = icmp ugt i32 %1432, 0
  br i1 %1433, label %1437, label %1434

1434:                                             ; preds = %1431
  %1435 = load i32, ptr %11, align 4, !tbaa !10
  %1436 = icmp ugt i32 %1435, 0
  br i1 %1436, label %1437, label %1518

1437:                                             ; preds = %1434, %1431, %1428
  %1438 = load ptr, ptr %3, align 8, !tbaa !5
  %1439 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1438, i32 0, i32 6
  %1440 = load i32, ptr %1439, align 4, !tbaa !17
  %1441 = icmp uge i32 %1440, 1104
  br i1 %1441, label %1442, label %1518

1442:                                             ; preds = %1437
  %1443 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1444 = load i32, ptr %1443, align 1, !tbaa !23
  %1445 = and i32 %1444, 1
  %1446 = icmp ugt i32 %1445, 0
  br i1 %1446, label %1447, label %1456

1447:                                             ; preds = %1442
  %1448 = load ptr, ptr %3, align 8, !tbaa !5
  %1449 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1450 = icmp ult i32 1, %1449
  br i1 %1450, label %1451, label %1453

1451:                                             ; preds = %1447
  %1452 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1454

1453:                                             ; preds = %1447
  br label %1454

1454:                                             ; preds = %1453, %1451
  %1455 = phi i32 [ %1452, %1451 ], [ 1, %1453 ]
  call void @libxsmm_handle_error(ptr noundef %1448, i32 noundef 90049, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 267, i32 noundef %1455)
  store i32 1, ptr %18, align 4
  br label %4054

1456:                                             ; preds = %1442
  %1457 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1458 = load i32, ptr %1457, align 1, !tbaa !23
  %1459 = and i32 %1458, 2048
  %1460 = icmp eq i32 %1459, 0
  br i1 %1460, label %1461, label %1470

1461:                                             ; preds = %1456
  %1462 = load ptr, ptr %3, align 8, !tbaa !5
  %1463 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1464 = icmp ult i32 1, %1463
  br i1 %1464, label %1465, label %1467

1465:                                             ; preds = %1461
  %1466 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1468

1467:                                             ; preds = %1461
  br label %1468

1468:                                             ; preds = %1467, %1465
  %1469 = phi i32 [ %1466, %1465 ], [ 1, %1467 ]
  call void @libxsmm_handle_error(ptr noundef %1462, i32 noundef 90041, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 270, i32 noundef %1469)
  store i32 1, ptr %18, align 4
  br label %4054

1470:                                             ; preds = %1456
  %1471 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1472 = load i32, ptr %1471, align 1, !tbaa !23
  %1473 = and i32 %1472, 2
  %1474 = icmp ugt i32 %1473, 0
  br i1 %1474, label %1475, label %1484

1475:                                             ; preds = %1470
  %1476 = load ptr, ptr %3, align 8, !tbaa !5
  %1477 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1478 = icmp ult i32 1, %1477
  br i1 %1478, label %1479, label %1481

1479:                                             ; preds = %1475
  %1480 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1482

1481:                                             ; preds = %1475
  br label %1482

1482:                                             ; preds = %1481, %1479
  %1483 = phi i32 [ %1480, %1479 ], [ 1, %1481 ]
  call void @libxsmm_handle_error(ptr noundef %1476, i32 noundef 90039, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 273, i32 noundef %1483)
  store i32 1, ptr %18, align 4
  br label %4054

1484:                                             ; preds = %1470
  %1485 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1486 = load i32, ptr %1485, align 1, !tbaa !23
  %1487 = and i32 %1486, 4096
  %1488 = icmp ugt i32 %1487, 0
  br i1 %1488, label %1489, label %1498

1489:                                             ; preds = %1484
  %1490 = load ptr, ptr %3, align 8, !tbaa !5
  %1491 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1492 = icmp ult i32 1, %1491
  br i1 %1492, label %1493, label %1495

1493:                                             ; preds = %1489
  %1494 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1496

1495:                                             ; preds = %1489
  br label %1496

1496:                                             ; preds = %1495, %1493
  %1497 = phi i32 [ %1494, %1493 ], [ 1, %1495 ]
  call void @libxsmm_handle_error(ptr noundef %1490, i32 noundef 90042, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 276, i32 noundef %1497)
  store i32 1, ptr %18, align 4
  br label %4054

1498:                                             ; preds = %1484
  %1499 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %1500 = load i32, ptr %1499, align 1, !tbaa !26
  %1501 = urem i32 %1500, 2
  %1502 = icmp ne i32 %1501, 0
  br i1 %1502, label %1503, label %1512

1503:                                             ; preds = %1498
  %1504 = load ptr, ptr %3, align 8, !tbaa !5
  %1505 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1506 = icmp ult i32 1, %1505
  br i1 %1506, label %1507, label %1509

1507:                                             ; preds = %1503
  %1508 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1510

1509:                                             ; preds = %1503
  br label %1510

1510:                                             ; preds = %1509, %1507
  %1511 = phi i32 [ %1508, %1507 ], [ 1, %1509 ]
  call void @libxsmm_handle_error(ptr noundef %1504, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 279, i32 noundef %1511)
  store i32 1, ptr %18, align 4
  br label %4054

1512:                                             ; preds = %1498
  br label %1513

1513:                                             ; preds = %1512
  br label %1514

1514:                                             ; preds = %1513
  br label %1515

1515:                                             ; preds = %1514
  br label %1516

1516:                                             ; preds = %1515
  br label %1517

1517:                                             ; preds = %1516
  br label %1703

1518:                                             ; preds = %1437, %1434
  %1519 = load i32, ptr %12, align 4, !tbaa !10
  %1520 = icmp ugt i32 %1519, 0
  br i1 %1520, label %1524, label %1521

1521:                                             ; preds = %1518
  %1522 = load i32, ptr %11, align 4, !tbaa !10
  %1523 = icmp ugt i32 %1522, 0
  br i1 %1523, label %1524, label %1605

1524:                                             ; preds = %1521, %1518
  %1525 = load ptr, ptr %3, align 8, !tbaa !5
  %1526 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1525, i32 0, i32 6
  %1527 = load i32, ptr %1526, align 4, !tbaa !17
  %1528 = icmp uge i32 %1527, 1006
  br i1 %1528, label %1529, label %1605

1529:                                             ; preds = %1524
  %1530 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1531 = load i32, ptr %1530, align 1, !tbaa !23
  %1532 = and i32 %1531, 1
  %1533 = icmp ugt i32 %1532, 0
  br i1 %1533, label %1534, label %1543

1534:                                             ; preds = %1529
  %1535 = load ptr, ptr %3, align 8, !tbaa !5
  %1536 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1537 = icmp ult i32 1, %1536
  br i1 %1537, label %1538, label %1540

1538:                                             ; preds = %1534
  %1539 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1541

1540:                                             ; preds = %1534
  br label %1541

1541:                                             ; preds = %1540, %1538
  %1542 = phi i32 [ %1539, %1538 ], [ 1, %1540 ]
  call void @libxsmm_handle_error(ptr noundef %1535, i32 noundef 90049, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 286, i32 noundef %1542)
  store i32 1, ptr %18, align 4
  br label %4054

1543:                                             ; preds = %1529
  %1544 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1545 = load i32, ptr %1544, align 1, !tbaa !23
  %1546 = and i32 %1545, 2048
  %1547 = icmp eq i32 %1546, 0
  br i1 %1547, label %1548, label %1557

1548:                                             ; preds = %1543
  %1549 = load ptr, ptr %3, align 8, !tbaa !5
  %1550 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1551 = icmp ult i32 1, %1550
  br i1 %1551, label %1552, label %1554

1552:                                             ; preds = %1548
  %1553 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1555

1554:                                             ; preds = %1548
  br label %1555

1555:                                             ; preds = %1554, %1552
  %1556 = phi i32 [ %1553, %1552 ], [ 1, %1554 ]
  call void @libxsmm_handle_error(ptr noundef %1549, i32 noundef 90041, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 289, i32 noundef %1556)
  store i32 1, ptr %18, align 4
  br label %4054

1557:                                             ; preds = %1543
  %1558 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1559 = load i32, ptr %1558, align 1, !tbaa !23
  %1560 = and i32 %1559, 2
  %1561 = icmp ugt i32 %1560, 0
  br i1 %1561, label %1562, label %1571

1562:                                             ; preds = %1557
  %1563 = load ptr, ptr %3, align 8, !tbaa !5
  %1564 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1565 = icmp ult i32 1, %1564
  br i1 %1565, label %1566, label %1568

1566:                                             ; preds = %1562
  %1567 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1569

1568:                                             ; preds = %1562
  br label %1569

1569:                                             ; preds = %1568, %1566
  %1570 = phi i32 [ %1567, %1566 ], [ 1, %1568 ]
  call void @libxsmm_handle_error(ptr noundef %1563, i32 noundef 90039, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 292, i32 noundef %1570)
  store i32 1, ptr %18, align 4
  br label %4054

1571:                                             ; preds = %1557
  %1572 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1573 = load i32, ptr %1572, align 1, !tbaa !23
  %1574 = and i32 %1573, 4096
  %1575 = icmp ugt i32 %1574, 0
  br i1 %1575, label %1576, label %1585

1576:                                             ; preds = %1571
  %1577 = load ptr, ptr %3, align 8, !tbaa !5
  %1578 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1579 = icmp ult i32 1, %1578
  br i1 %1579, label %1580, label %1582

1580:                                             ; preds = %1576
  %1581 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1583

1582:                                             ; preds = %1576
  br label %1583

1583:                                             ; preds = %1582, %1580
  %1584 = phi i32 [ %1581, %1580 ], [ 1, %1582 ]
  call void @libxsmm_handle_error(ptr noundef %1577, i32 noundef 90042, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 295, i32 noundef %1584)
  store i32 1, ptr %18, align 4
  br label %4054

1585:                                             ; preds = %1571
  %1586 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %1587 = load i32, ptr %1586, align 1, !tbaa !26
  %1588 = urem i32 %1587, 32
  %1589 = icmp ne i32 %1588, 0
  br i1 %1589, label %1590, label %1599

1590:                                             ; preds = %1585
  %1591 = load ptr, ptr %3, align 8, !tbaa !5
  %1592 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1593 = icmp ult i32 1, %1592
  br i1 %1593, label %1594, label %1596

1594:                                             ; preds = %1590
  %1595 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1597

1596:                                             ; preds = %1590
  br label %1597

1597:                                             ; preds = %1596, %1594
  %1598 = phi i32 [ %1595, %1594 ], [ 1, %1596 ]
  call void @libxsmm_handle_error(ptr noundef %1591, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 298, i32 noundef %1598)
  store i32 1, ptr %18, align 4
  br label %4054

1599:                                             ; preds = %1585
  br label %1600

1600:                                             ; preds = %1599
  br label %1601

1601:                                             ; preds = %1600
  br label %1602

1602:                                             ; preds = %1601
  br label %1603

1603:                                             ; preds = %1602
  br label %1604

1604:                                             ; preds = %1603
  br label %1702

1605:                                             ; preds = %1524, %1521
  %1606 = load i32, ptr %13, align 4, !tbaa !10
  %1607 = icmp ugt i32 %1606, 0
  br i1 %1607, label %1611, label %1608

1608:                                             ; preds = %1605
  %1609 = load i32, ptr %11, align 4, !tbaa !10
  %1610 = icmp ugt i32 %1609, 0
  br i1 %1610, label %1611, label %1692

1611:                                             ; preds = %1608, %1605
  %1612 = load ptr, ptr %3, align 8, !tbaa !5
  %1613 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1612, i32 0, i32 6
  %1614 = load i32, ptr %1613, align 4, !tbaa !17
  %1615 = icmp uge i32 %1614, 1008
  br i1 %1615, label %1616, label %1692

1616:                                             ; preds = %1611
  %1617 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1618 = load i32, ptr %1617, align 1, !tbaa !23
  %1619 = and i32 %1618, 1
  %1620 = icmp ugt i32 %1619, 0
  br i1 %1620, label %1621, label %1630

1621:                                             ; preds = %1616
  %1622 = load ptr, ptr %3, align 8, !tbaa !5
  %1623 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1624 = icmp ult i32 1, %1623
  br i1 %1624, label %1625, label %1627

1625:                                             ; preds = %1621
  %1626 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1628

1627:                                             ; preds = %1621
  br label %1628

1628:                                             ; preds = %1627, %1625
  %1629 = phi i32 [ %1626, %1625 ], [ 1, %1627 ]
  call void @libxsmm_handle_error(ptr noundef %1622, i32 noundef 90049, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 305, i32 noundef %1629)
  store i32 1, ptr %18, align 4
  br label %4054

1630:                                             ; preds = %1616
  %1631 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1632 = load i32, ptr %1631, align 1, !tbaa !23
  %1633 = and i32 %1632, 2048
  %1634 = icmp eq i32 %1633, 0
  br i1 %1634, label %1635, label %1644

1635:                                             ; preds = %1630
  %1636 = load ptr, ptr %3, align 8, !tbaa !5
  %1637 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1638 = icmp ult i32 1, %1637
  br i1 %1638, label %1639, label %1641

1639:                                             ; preds = %1635
  %1640 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1642

1641:                                             ; preds = %1635
  br label %1642

1642:                                             ; preds = %1641, %1639
  %1643 = phi i32 [ %1640, %1639 ], [ 1, %1641 ]
  call void @libxsmm_handle_error(ptr noundef %1636, i32 noundef 90041, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 308, i32 noundef %1643)
  store i32 1, ptr %18, align 4
  br label %4054

1644:                                             ; preds = %1630
  %1645 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1646 = load i32, ptr %1645, align 1, !tbaa !23
  %1647 = and i32 %1646, 2
  %1648 = icmp ugt i32 %1647, 0
  br i1 %1648, label %1649, label %1658

1649:                                             ; preds = %1644
  %1650 = load ptr, ptr %3, align 8, !tbaa !5
  %1651 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1652 = icmp ult i32 1, %1651
  br i1 %1652, label %1653, label %1655

1653:                                             ; preds = %1649
  %1654 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1656

1655:                                             ; preds = %1649
  br label %1656

1656:                                             ; preds = %1655, %1653
  %1657 = phi i32 [ %1654, %1653 ], [ 1, %1655 ]
  call void @libxsmm_handle_error(ptr noundef %1650, i32 noundef 90039, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 311, i32 noundef %1657)
  store i32 1, ptr %18, align 4
  br label %4054

1658:                                             ; preds = %1644
  %1659 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1660 = load i32, ptr %1659, align 1, !tbaa !23
  %1661 = and i32 %1660, 4096
  %1662 = icmp ugt i32 %1661, 0
  br i1 %1662, label %1663, label %1672

1663:                                             ; preds = %1658
  %1664 = load ptr, ptr %3, align 8, !tbaa !5
  %1665 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1666 = icmp ult i32 1, %1665
  br i1 %1666, label %1667, label %1669

1667:                                             ; preds = %1663
  %1668 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1670

1669:                                             ; preds = %1663
  br label %1670

1670:                                             ; preds = %1669, %1667
  %1671 = phi i32 [ %1668, %1667 ], [ 1, %1669 ]
  call void @libxsmm_handle_error(ptr noundef %1664, i32 noundef 90042, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 314, i32 noundef %1671)
  store i32 1, ptr %18, align 4
  br label %4054

1672:                                             ; preds = %1658
  %1673 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %1674 = load i32, ptr %1673, align 1, !tbaa !26
  %1675 = urem i32 %1674, 32
  %1676 = icmp ne i32 %1675, 0
  br i1 %1676, label %1677, label %1686

1677:                                             ; preds = %1672
  %1678 = load ptr, ptr %3, align 8, !tbaa !5
  %1679 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1680 = icmp ult i32 1, %1679
  br i1 %1680, label %1681, label %1683

1681:                                             ; preds = %1677
  %1682 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1684

1683:                                             ; preds = %1677
  br label %1684

1684:                                             ; preds = %1683, %1681
  %1685 = phi i32 [ %1682, %1681 ], [ 1, %1683 ]
  call void @libxsmm_handle_error(ptr noundef %1678, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 317, i32 noundef %1685)
  store i32 1, ptr %18, align 4
  br label %4054

1686:                                             ; preds = %1672
  br label %1687

1687:                                             ; preds = %1686
  br label %1688

1688:                                             ; preds = %1687
  br label %1689

1689:                                             ; preds = %1688
  br label %1690

1690:                                             ; preds = %1689
  br label %1691

1691:                                             ; preds = %1690
  br label %1701

1692:                                             ; preds = %1611, %1608
  %1693 = load ptr, ptr %3, align 8, !tbaa !5
  %1694 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1695 = icmp ult i32 1, %1694
  br i1 %1695, label %1696, label %1698

1696:                                             ; preds = %1692
  %1697 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1699

1698:                                             ; preds = %1692
  br label %1699

1699:                                             ; preds = %1698, %1696
  %1700 = phi i32 [ %1697, %1696 ], [ 1, %1698 ]
  call void @libxsmm_handle_error(ptr noundef %1693, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 323, i32 noundef %1700)
  store i32 1, ptr %18, align 4
  br label %4054

1701:                                             ; preds = %1691
  br label %1702

1702:                                             ; preds = %1701, %1604
  br label %1703

1703:                                             ; preds = %1702, %1517
  br label %1704

1704:                                             ; preds = %1703, %1427
  br label %1705

1705:                                             ; preds = %1704, %1318
  br label %1706

1706:                                             ; preds = %1705, %1287
  br label %1707

1707:                                             ; preds = %1706, %1259, %1254
  %1708 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1709 = load i32, ptr %1708, align 1, !tbaa !23
  %1710 = and i32 %1709, 4096
  %1711 = icmp ugt i32 %1710, 0
  br i1 %1711, label %1712, label %1761

1712:                                             ; preds = %1707
  %1713 = load ptr, ptr %3, align 8, !tbaa !5
  %1714 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1713, i32 0, i32 6
  %1715 = load i32, ptr %1714, align 4, !tbaa !17
  %1716 = icmp uge i32 %1715, 1002
  br i1 %1716, label %1717, label %1761

1717:                                             ; preds = %1712
  %1718 = load ptr, ptr %3, align 8, !tbaa !5
  %1719 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1718, i32 0, i32 6
  %1720 = load i32, ptr %1719, align 4, !tbaa !17
  %1721 = icmp ule i32 %1720, 1999
  br i1 %1721, label %1722, label %1761

1722:                                             ; preds = %1717
  %1723 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1724 = load i32, ptr %1723, align 1, !tbaa !23
  %1725 = and i32 %1724, 2
  %1726 = icmp ugt i32 %1725, 0
  br i1 %1726, label %1727, label %1751

1727:                                             ; preds = %1722
  %1728 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1729 = getelementptr inbounds [3 x i8], ptr %1728, i64 0, i64 0
  %1730 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1729)
  %1731 = icmp eq i32 2, %1730
  br i1 %1731, label %1732, label %1741

1732:                                             ; preds = %1727
  %1733 = load ptr, ptr %3, align 8, !tbaa !5
  %1734 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1733, i32 0, i32 6
  %1735 = load i32, ptr %1734, align 4, !tbaa !17
  %1736 = icmp uge i32 %1735, 1104
  br i1 %1736, label %1737, label %1740

1737:                                             ; preds = %1732
  %1738 = load ptr, ptr %3, align 8, !tbaa !5
  %1739 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1738, i32 0, i32 6
  store i32 1101, ptr %1739, align 4, !tbaa !17
  br label %1740

1740:                                             ; preds = %1737, %1732
  br label %1750

1741:                                             ; preds = %1727
  %1742 = load ptr, ptr %3, align 8, !tbaa !5
  %1743 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1744 = icmp ult i32 1, %1743
  br i1 %1744, label %1745, label %1747

1745:                                             ; preds = %1741
  %1746 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1748

1747:                                             ; preds = %1741
  br label %1748

1748:                                             ; preds = %1747, %1745
  %1749 = phi i32 [ %1746, %1745 ], [ 1, %1747 ]
  call void @libxsmm_handle_error(ptr noundef %1742, i32 noundef 90042, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 338, i32 noundef %1749)
  br label %1750

1750:                                             ; preds = %1748, %1740
  br label %1760

1751:                                             ; preds = %1722
  %1752 = load ptr, ptr %3, align 8, !tbaa !5
  %1753 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1754 = icmp ult i32 1, %1753
  br i1 %1754, label %1755, label %1757

1755:                                             ; preds = %1751
  %1756 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1758

1757:                                             ; preds = %1751
  br label %1758

1758:                                             ; preds = %1757, %1755
  %1759 = phi i32 [ %1756, %1755 ], [ 1, %1757 ]
  call void @libxsmm_handle_error(ptr noundef %1752, i32 noundef 90042, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 341, i32 noundef %1759)
  store i32 1, ptr %18, align 4
  br label %4054

1760:                                             ; preds = %1750
  br label %1761

1761:                                             ; preds = %1760, %1717, %1712, %1707
  %1762 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1763 = getelementptr inbounds [3 x i8], ptr %1762, i64 0, i64 0
  %1764 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1763)
  %1765 = icmp eq i32 2, %1764
  br i1 %1765, label %1766, label %1780

1766:                                             ; preds = %1761
  %1767 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %1768 = load i32, ptr %1767, align 1, !tbaa !26
  %1769 = icmp eq i32 %1768, 1
  br i1 %1769, label %1770, label %1780

1770:                                             ; preds = %1766
  %1771 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1772 = load i32, ptr %1771, align 1, !tbaa !23
  %1773 = and i32 %1772, 2048
  %1774 = icmp ne i32 %1773, 0
  br i1 %1774, label %1775, label %1780

1775:                                             ; preds = %1770
  %1776 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1777 = load i32, ptr %1776, align 1, !tbaa !23
  %1778 = and i32 %1777, -2049
  %1779 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  store i32 %1778, ptr %1779, align 1, !tbaa !23
  br label %1780

1780:                                             ; preds = %1775, %1770, %1766, %1761
  %1781 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1782 = getelementptr inbounds [3 x i8], ptr %1781, i64 0, i64 0
  %1783 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1782)
  %1784 = icmp eq i32 10, %1783
  br i1 %1784, label %1790, label %1785

1785:                                             ; preds = %1780
  %1786 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1787 = getelementptr inbounds [3 x i8], ptr %1786, i64 0, i64 0
  %1788 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1787)
  %1789 = icmp eq i32 12, %1788
  br i1 %1789, label %1790, label %1799

1790:                                             ; preds = %1785, %1780
  %1791 = load ptr, ptr %3, align 8, !tbaa !5
  %1792 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1793 = icmp ult i32 1, %1792
  br i1 %1793, label %1794, label %1796

1794:                                             ; preds = %1790
  %1795 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1797

1796:                                             ; preds = %1790
  br label %1797

1797:                                             ; preds = %1796, %1794
  %1798 = phi i32 [ %1795, %1794 ], [ 1, %1796 ]
  call void @libxsmm_handle_error(ptr noundef %1791, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 355, i32 noundef %1798)
  store i32 1, ptr %18, align 4
  br label %4054

1799:                                             ; preds = %1785
  %1800 = load ptr, ptr %3, align 8, !tbaa !5
  %1801 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1800, i32 0, i32 6
  %1802 = load i32, ptr %1801, align 4, !tbaa !17
  %1803 = icmp ule i32 %1802, 1
  br i1 %1803, label %1804, label %1805

1804:                                             ; preds = %1799
  br label %3504

1805:                                             ; preds = %1799
  %1806 = load ptr, ptr %3, align 8, !tbaa !5
  %1807 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1806, i32 0, i32 6
  %1808 = load i32, ptr %1807, align 4, !tbaa !17
  %1809 = icmp ult i32 %1808, 1005
  br i1 %1809, label %1810, label %1816

1810:                                             ; preds = %1805
  %1811 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1812 = getelementptr inbounds [3 x i8], ptr %1811, i64 0, i64 0
  %1813 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1812)
  %1814 = icmp eq i32 0, %1813
  br i1 %1814, label %1815, label %1816

1815:                                             ; preds = %1810
  store i32 2, ptr %6, align 4, !tbaa !10
  br label %3503

1816:                                             ; preds = %1810, %1805
  %1817 = load ptr, ptr %3, align 8, !tbaa !5
  %1818 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1817, i32 0, i32 6
  %1819 = load i32, ptr %1818, align 4, !tbaa !17
  %1820 = icmp ult i32 %1819, 1005
  br i1 %1820, label %1821, label %1827

1821:                                             ; preds = %1816
  %1822 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1823 = getelementptr inbounds [3 x i8], ptr %1822, i64 0, i64 0
  %1824 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1823)
  %1825 = icmp eq i32 1, %1824
  br i1 %1825, label %1826, label %1827

1826:                                             ; preds = %1821
  store i32 4, ptr %6, align 4, !tbaa !10
  br label %3502

1827:                                             ; preds = %1821, %1816
  %1828 = load ptr, ptr %3, align 8, !tbaa !5
  %1829 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1828, i32 0, i32 6
  %1830 = load i32, ptr %1829, align 4, !tbaa !17
  %1831 = icmp ult i32 %1830, 1005
  br i1 %1831, label %1832, label %1852

1832:                                             ; preds = %1827
  %1833 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1834 = getelementptr inbounds [3 x i8], ptr %1833, i64 0, i64 0
  %1835 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1834)
  %1836 = icmp eq i32 12, %1835
  br i1 %1836, label %1837, label %1852

1837:                                             ; preds = %1832
  store i32 4, ptr %6, align 4, !tbaa !10
  %1838 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %1839 = load i32, ptr %1838, align 1, !tbaa !26
  %1840 = urem i32 %1839, 4
  %1841 = icmp ne i32 %1840, 0
  br i1 %1841, label %1842, label %1851

1842:                                             ; preds = %1837
  %1843 = load ptr, ptr %3, align 8, !tbaa !5
  %1844 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1845 = icmp ult i32 1, %1844
  br i1 %1845, label %1846, label %1848

1846:                                             ; preds = %1842
  %1847 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1849

1848:                                             ; preds = %1842
  br label %1849

1849:                                             ; preds = %1848, %1846
  %1850 = phi i32 [ %1847, %1846 ], [ 1, %1848 ]
  call void @libxsmm_handle_error(ptr noundef %1843, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 369, i32 noundef %1850)
  store i32 1, ptr %18, align 4
  br label %4054

1851:                                             ; preds = %1837
  br label %3501

1852:                                             ; preds = %1832, %1827
  %1853 = load ptr, ptr %3, align 8, !tbaa !5
  %1854 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1853, i32 0, i32 6
  %1855 = load i32, ptr %1854, align 4, !tbaa !17
  %1856 = icmp ult i32 %1855, 1005
  br i1 %1856, label %1857, label %1877

1857:                                             ; preds = %1852
  %1858 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1859 = getelementptr inbounds [3 x i8], ptr %1858, i64 0, i64 0
  %1860 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1859)
  %1861 = icmp eq i32 10, %1860
  br i1 %1861, label %1862, label %1877

1862:                                             ; preds = %1857
  store i32 4, ptr %6, align 4, !tbaa !10
  %1863 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %1864 = load i32, ptr %1863, align 1, !tbaa !26
  %1865 = urem i32 %1864, 2
  %1866 = icmp ne i32 %1865, 0
  br i1 %1866, label %1867, label %1876

1867:                                             ; preds = %1862
  %1868 = load ptr, ptr %3, align 8, !tbaa !5
  %1869 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1870 = icmp ult i32 1, %1869
  br i1 %1870, label %1871, label %1873

1871:                                             ; preds = %1867
  %1872 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1874

1873:                                             ; preds = %1867
  br label %1874

1874:                                             ; preds = %1873, %1871
  %1875 = phi i32 [ %1872, %1871 ], [ 1, %1873 ]
  call void @libxsmm_handle_error(ptr noundef %1868, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 375, i32 noundef %1875)
  store i32 1, ptr %18, align 4
  br label %4054

1876:                                             ; preds = %1862
  br label %3500

1877:                                             ; preds = %1857, %1852
  %1878 = load ptr, ptr %3, align 8, !tbaa !5
  %1879 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1878, i32 0, i32 6
  %1880 = load i32, ptr %1879, align 4, !tbaa !17
  %1881 = icmp ult i32 %1880, 1005
  br i1 %1881, label %1882, label %1914

1882:                                             ; preds = %1877
  %1883 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1884 = getelementptr inbounds [3 x i8], ptr %1883, i64 0, i64 0
  %1885 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1884)
  %1886 = icmp eq i32 2, %1885
  br i1 %1886, label %1887, label %1914

1887:                                             ; preds = %1882
  %1888 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %1889 = load i32, ptr %1888, align 1, !tbaa !26
  %1890 = urem i32 %1889, 2
  %1891 = icmp ne i32 %1890, 0
  br i1 %1891, label %1892, label %1906

1892:                                             ; preds = %1887
  %1893 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1894 = load i32, ptr %1893, align 1, !tbaa !23
  %1895 = and i32 %1894, 2048
  %1896 = icmp ne i32 %1895, 0
  br i1 %1896, label %1897, label %1906

1897:                                             ; preds = %1892
  %1898 = load ptr, ptr %3, align 8, !tbaa !5
  %1899 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1900 = icmp ult i32 1, %1899
  br i1 %1900, label %1901, label %1903

1901:                                             ; preds = %1897
  %1902 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1904

1903:                                             ; preds = %1897
  br label %1904

1904:                                             ; preds = %1903, %1901
  %1905 = phi i32 [ %1902, %1901 ], [ 1, %1903 ]
  call void @libxsmm_handle_error(ptr noundef %1898, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 381, i32 noundef %1905)
  store i32 1, ptr %18, align 4
  br label %4054

1906:                                             ; preds = %1892, %1887
  %1907 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %1908 = load i32, ptr %1907, align 1, !tbaa !23
  %1909 = and i32 %1908, 2048
  %1910 = icmp eq i32 %1909, 0
  br i1 %1910, label %1911, label %1912

1911:                                             ; preds = %1906
  store i32 8, ptr %6, align 4, !tbaa !10
  br label %1913

1912:                                             ; preds = %1906
  store i32 4, ptr %6, align 4, !tbaa !10
  br label %1913

1913:                                             ; preds = %1912, %1911
  br label %3499

1914:                                             ; preds = %1882, %1877
  %1915 = load ptr, ptr %3, align 8, !tbaa !5
  %1916 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1915, i32 0, i32 6
  %1917 = load i32, ptr %1916, align 4, !tbaa !17
  %1918 = icmp ult i32 %1917, 1041
  br i1 %1918, label %1919, label %1925

1919:                                             ; preds = %1914
  %1920 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1921 = getelementptr inbounds [3 x i8], ptr %1920, i64 0, i64 0
  %1922 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1921)
  %1923 = icmp eq i32 0, %1922
  br i1 %1923, label %1924, label %1925

1924:                                             ; preds = %1919
  store i32 4, ptr %6, align 4, !tbaa !10
  br label %3498

1925:                                             ; preds = %1919, %1914
  %1926 = load ptr, ptr %3, align 8, !tbaa !5
  %1927 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1926, i32 0, i32 6
  %1928 = load i32, ptr %1927, align 4, !tbaa !17
  %1929 = icmp ult i32 %1928, 1041
  br i1 %1929, label %1930, label %1936

1930:                                             ; preds = %1925
  %1931 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1932 = getelementptr inbounds [3 x i8], ptr %1931, i64 0, i64 0
  %1933 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1932)
  %1934 = icmp eq i32 1, %1933
  br i1 %1934, label %1935, label %1936

1935:                                             ; preds = %1930
  store i32 8, ptr %6, align 4, !tbaa !10
  br label %3497

1936:                                             ; preds = %1930, %1925
  %1937 = load ptr, ptr %3, align 8, !tbaa !5
  %1938 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1937, i32 0, i32 6
  %1939 = load i32, ptr %1938, align 4, !tbaa !17
  %1940 = icmp uge i32 %1939, 1006
  br i1 %1940, label %1941, label %1966

1941:                                             ; preds = %1936
  %1942 = load ptr, ptr %3, align 8, !tbaa !5
  %1943 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1942, i32 0, i32 6
  %1944 = load i32, ptr %1943, align 4, !tbaa !17
  %1945 = icmp ult i32 %1944, 1041
  br i1 %1945, label %1946, label %1966

1946:                                             ; preds = %1941
  %1947 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1948 = getelementptr inbounds [3 x i8], ptr %1947, i64 0, i64 0
  %1949 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1948)
  %1950 = icmp eq i32 12, %1949
  br i1 %1950, label %1951, label %1966

1951:                                             ; preds = %1946
  store i32 8, ptr %6, align 4, !tbaa !10
  %1952 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %1953 = load i32, ptr %1952, align 1, !tbaa !26
  %1954 = urem i32 %1953, 4
  %1955 = icmp ne i32 %1954, 0
  br i1 %1955, label %1956, label %1965

1956:                                             ; preds = %1951
  %1957 = load ptr, ptr %3, align 8, !tbaa !5
  %1958 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1959 = icmp ult i32 1, %1958
  br i1 %1959, label %1960, label %1962

1960:                                             ; preds = %1956
  %1961 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1963

1962:                                             ; preds = %1956
  br label %1963

1963:                                             ; preds = %1962, %1960
  %1964 = phi i32 [ %1961, %1960 ], [ 1, %1962 ]
  call void @libxsmm_handle_error(ptr noundef %1957, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 396, i32 noundef %1964)
  store i32 1, ptr %18, align 4
  br label %4054

1965:                                             ; preds = %1951
  br label %3496

1966:                                             ; preds = %1946, %1941, %1936
  %1967 = load ptr, ptr %3, align 8, !tbaa !5
  %1968 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1967, i32 0, i32 6
  %1969 = load i32, ptr %1968, align 4, !tbaa !17
  %1970 = icmp uge i32 %1969, 1006
  br i1 %1970, label %1971, label %1996

1971:                                             ; preds = %1966
  %1972 = load ptr, ptr %3, align 8, !tbaa !5
  %1973 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1972, i32 0, i32 6
  %1974 = load i32, ptr %1973, align 4, !tbaa !17
  %1975 = icmp ult i32 %1974, 1041
  br i1 %1975, label %1976, label %1996

1976:                                             ; preds = %1971
  %1977 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %1978 = getelementptr inbounds [3 x i8], ptr %1977, i64 0, i64 0
  %1979 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1978)
  %1980 = icmp eq i32 10, %1979
  br i1 %1980, label %1981, label %1996

1981:                                             ; preds = %1976
  store i32 8, ptr %6, align 4, !tbaa !10
  %1982 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %1983 = load i32, ptr %1982, align 1, !tbaa !26
  %1984 = urem i32 %1983, 2
  %1985 = icmp ne i32 %1984, 0
  br i1 %1985, label %1986, label %1995

1986:                                             ; preds = %1981
  %1987 = load ptr, ptr %3, align 8, !tbaa !5
  %1988 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %1989 = icmp ult i32 1, %1988
  br i1 %1989, label %1990, label %1992

1990:                                             ; preds = %1986
  %1991 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %1993

1992:                                             ; preds = %1986
  br label %1993

1993:                                             ; preds = %1992, %1990
  %1994 = phi i32 [ %1991, %1990 ], [ 1, %1992 ]
  call void @libxsmm_handle_error(ptr noundef %1987, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 402, i32 noundef %1994)
  store i32 1, ptr %18, align 4
  br label %4054

1995:                                             ; preds = %1981
  br label %3495

1996:                                             ; preds = %1976, %1971, %1966
  %1997 = load ptr, ptr %3, align 8, !tbaa !5
  %1998 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1997, i32 0, i32 6
  %1999 = load i32, ptr %1998, align 4, !tbaa !17
  %2000 = icmp uge i32 %1999, 1006
  br i1 %2000, label %2001, label %2038

2001:                                             ; preds = %1996
  %2002 = load ptr, ptr %3, align 8, !tbaa !5
  %2003 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2002, i32 0, i32 6
  %2004 = load i32, ptr %2003, align 4, !tbaa !17
  %2005 = icmp ult i32 %2004, 1041
  br i1 %2005, label %2006, label %2038

2006:                                             ; preds = %2001
  %2007 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2008 = getelementptr inbounds [3 x i8], ptr %2007, i64 0, i64 0
  %2009 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2008)
  %2010 = icmp eq i32 2, %2009
  br i1 %2010, label %2011, label %2038

2011:                                             ; preds = %2006
  %2012 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %2013 = load i32, ptr %2012, align 1, !tbaa !26
  %2014 = urem i32 %2013, 2
  %2015 = icmp ne i32 %2014, 0
  br i1 %2015, label %2016, label %2030

2016:                                             ; preds = %2011
  %2017 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %2018 = load i32, ptr %2017, align 1, !tbaa !23
  %2019 = and i32 %2018, 2048
  %2020 = icmp ne i32 %2019, 0
  br i1 %2020, label %2021, label %2030

2021:                                             ; preds = %2016
  %2022 = load ptr, ptr %3, align 8, !tbaa !5
  %2023 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2024 = icmp ult i32 1, %2023
  br i1 %2024, label %2025, label %2027

2025:                                             ; preds = %2021
  %2026 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2028

2027:                                             ; preds = %2021
  br label %2028

2028:                                             ; preds = %2027, %2025
  %2029 = phi i32 [ %2026, %2025 ], [ 1, %2027 ]
  call void @libxsmm_handle_error(ptr noundef %2022, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 408, i32 noundef %2029)
  store i32 1, ptr %18, align 4
  br label %4054

2030:                                             ; preds = %2016, %2011
  %2031 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %2032 = load i32, ptr %2031, align 1, !tbaa !23
  %2033 = and i32 %2032, 2048
  %2034 = icmp eq i32 %2033, 0
  br i1 %2034, label %2035, label %2036

2035:                                             ; preds = %2030
  store i32 16, ptr %6, align 4, !tbaa !10
  br label %2037

2036:                                             ; preds = %2030
  store i32 8, ptr %6, align 4, !tbaa !10
  br label %2037

2037:                                             ; preds = %2036, %2035
  br label %3494

2038:                                             ; preds = %2006, %2001, %1996
  %2039 = load ptr, ptr %3, align 8, !tbaa !5
  %2040 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2039, i32 0, i32 6
  %2041 = load i32, ptr %2040, align 4, !tbaa !17
  %2042 = icmp uge i32 %2041, 1006
  br i1 %2042, label %2043, label %2049

2043:                                             ; preds = %2038
  %2044 = load i32, ptr %12, align 4, !tbaa !10
  %2045 = icmp ugt i32 %2044, 0
  br i1 %2045, label %2057, label %2046

2046:                                             ; preds = %2043
  %2047 = load i32, ptr %11, align 4, !tbaa !10
  %2048 = icmp ugt i32 %2047, 0
  br i1 %2048, label %2057, label %2049

2049:                                             ; preds = %2046, %2038
  %2050 = load ptr, ptr %3, align 8, !tbaa !5
  %2051 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2050, i32 0, i32 6
  %2052 = load i32, ptr %2051, align 4, !tbaa !17
  %2053 = icmp uge i32 %2052, 1008
  br i1 %2053, label %2054, label %2072

2054:                                             ; preds = %2049
  %2055 = load i32, ptr %13, align 4, !tbaa !10
  %2056 = icmp ugt i32 %2055, 0
  br i1 %2056, label %2057, label %2072

2057:                                             ; preds = %2054, %2046, %2043
  store i32 8, ptr %6, align 4, !tbaa !10
  %2058 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %2059 = load i32, ptr %2058, align 1, !tbaa !26
  %2060 = urem i32 %2059, 32
  %2061 = icmp ne i32 %2060, 0
  br i1 %2061, label %2062, label %2071

2062:                                             ; preds = %2057
  %2063 = load ptr, ptr %3, align 8, !tbaa !5
  %2064 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2065 = icmp ult i32 1, %2064
  br i1 %2065, label %2066, label %2068

2066:                                             ; preds = %2062
  %2067 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2069

2068:                                             ; preds = %2062
  br label %2069

2069:                                             ; preds = %2068, %2066
  %2070 = phi i32 [ %2067, %2066 ], [ 1, %2068 ]
  call void @libxsmm_handle_error(ptr noundef %2063, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 420, i32 noundef %2070)
  store i32 1, ptr %18, align 4
  br label %4054

2071:                                             ; preds = %2057
  br label %3493

2072:                                             ; preds = %2054, %2049
  %2073 = load ptr, ptr %3, align 8, !tbaa !5
  %2074 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2073, i32 0, i32 6
  %2075 = load i32, ptr %2074, align 4, !tbaa !17
  %2076 = icmp ule i32 %2075, 1051
  br i1 %2076, label %2077, label %2083

2077:                                             ; preds = %2072
  %2078 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2079 = getelementptr inbounds [3 x i8], ptr %2078, i64 0, i64 0
  %2080 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2079)
  %2081 = icmp eq i32 0, %2080
  br i1 %2081, label %2082, label %2083

2082:                                             ; preds = %2077
  store i32 4, ptr %6, align 4, !tbaa !10
  br label %3492

2083:                                             ; preds = %2077, %2072
  %2084 = load ptr, ptr %3, align 8, !tbaa !5
  %2085 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2084, i32 0, i32 6
  %2086 = load i32, ptr %2085, align 4, !tbaa !17
  %2087 = icmp ule i32 %2086, 1051
  br i1 %2087, label %2088, label %2094

2088:                                             ; preds = %2083
  %2089 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2090 = getelementptr inbounds [3 x i8], ptr %2089, i64 0, i64 0
  %2091 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2090)
  %2092 = icmp eq i32 1, %2091
  br i1 %2092, label %2093, label %2094

2093:                                             ; preds = %2088
  store i32 8, ptr %6, align 4, !tbaa !10
  br label %3491

2094:                                             ; preds = %2088, %2083
  %2095 = load ptr, ptr %3, align 8, !tbaa !5
  %2096 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2095, i32 0, i32 6
  %2097 = load i32, ptr %2096, align 4, !tbaa !17
  %2098 = icmp eq i32 %2097, 1052
  br i1 %2098, label %2099, label %2105

2099:                                             ; preds = %2094
  %2100 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2101 = getelementptr inbounds [3 x i8], ptr %2100, i64 0, i64 0
  %2102 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2101)
  %2103 = icmp eq i32 0, %2102
  br i1 %2103, label %2104, label %2105

2104:                                             ; preds = %2099
  store i32 4, ptr %6, align 4, !tbaa !10
  br label %3490

2105:                                             ; preds = %2099, %2094
  %2106 = load ptr, ptr %3, align 8, !tbaa !5
  %2107 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2106, i32 0, i32 6
  %2108 = load i32, ptr %2107, align 4, !tbaa !17
  %2109 = icmp eq i32 %2108, 1052
  br i1 %2109, label %2110, label %2116

2110:                                             ; preds = %2105
  %2111 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2112 = getelementptr inbounds [3 x i8], ptr %2111, i64 0, i64 0
  %2113 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2112)
  %2114 = icmp eq i32 1, %2113
  br i1 %2114, label %2115, label %2116

2115:                                             ; preds = %2110
  store i32 8, ptr %6, align 4, !tbaa !10
  br label %3489

2116:                                             ; preds = %2110, %2105
  %2117 = load ptr, ptr %3, align 8, !tbaa !5
  %2118 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2117, i32 0, i32 6
  %2119 = load i32, ptr %2118, align 4, !tbaa !17
  %2120 = icmp eq i32 %2119, 1053
  br i1 %2120, label %2121, label %2127

2121:                                             ; preds = %2116
  %2122 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2123 = getelementptr inbounds [3 x i8], ptr %2122, i64 0, i64 0
  %2124 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2123)
  %2125 = icmp eq i32 0, %2124
  br i1 %2125, label %2126, label %2127

2126:                                             ; preds = %2121
  store i32 4, ptr %6, align 4, !tbaa !10
  br label %3488

2127:                                             ; preds = %2121, %2116
  %2128 = load ptr, ptr %3, align 8, !tbaa !5
  %2129 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2128, i32 0, i32 6
  %2130 = load i32, ptr %2129, align 4, !tbaa !17
  %2131 = icmp eq i32 %2130, 1053
  br i1 %2131, label %2132, label %2138

2132:                                             ; preds = %2127
  %2133 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2134 = getelementptr inbounds [3 x i8], ptr %2133, i64 0, i64 0
  %2135 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2134)
  %2136 = icmp eq i32 1, %2135
  br i1 %2136, label %2137, label %2138

2137:                                             ; preds = %2132
  store i32 8, ptr %6, align 4, !tbaa !10
  br label %3487

2138:                                             ; preds = %2132, %2127
  %2139 = load ptr, ptr %3, align 8, !tbaa !5
  %2140 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2139, i32 0, i32 6
  %2141 = load i32, ptr %2140, align 4, !tbaa !17
  %2142 = icmp ule i32 %2141, 1999
  br i1 %2142, label %2143, label %2149

2143:                                             ; preds = %2138
  %2144 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2145 = getelementptr inbounds [3 x i8], ptr %2144, i64 0, i64 0
  %2146 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2145)
  %2147 = icmp eq i32 0, %2146
  br i1 %2147, label %2148, label %2149

2148:                                             ; preds = %2143
  store i32 8, ptr %6, align 4, !tbaa !10
  br label %3486

2149:                                             ; preds = %2143, %2138
  %2150 = load ptr, ptr %3, align 8, !tbaa !5
  %2151 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2150, i32 0, i32 6
  %2152 = load i32, ptr %2151, align 4, !tbaa !17
  %2153 = icmp ule i32 %2152, 1999
  br i1 %2153, label %2154, label %2160

2154:                                             ; preds = %2149
  %2155 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2156 = getelementptr inbounds [3 x i8], ptr %2155, i64 0, i64 0
  %2157 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2156)
  %2158 = icmp eq i32 1, %2157
  br i1 %2158, label %2159, label %2160

2159:                                             ; preds = %2154
  store i32 16, ptr %6, align 4, !tbaa !10
  br label %3485

2160:                                             ; preds = %2154, %2149
  %2161 = load ptr, ptr %3, align 8, !tbaa !5
  %2162 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2161, i32 0, i32 6
  %2163 = load i32, ptr %2162, align 4, !tbaa !17
  %2164 = icmp ule i32 %2163, 1999
  br i1 %2164, label %2165, label %2195

2165:                                             ; preds = %2160
  %2166 = load ptr, ptr %3, align 8, !tbaa !5
  %2167 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2166, i32 0, i32 6
  %2168 = load i32, ptr %2167, align 4, !tbaa !17
  %2169 = icmp uge i32 %2168, 1051
  br i1 %2169, label %2170, label %2195

2170:                                             ; preds = %2165
  %2171 = load ptr, ptr %3, align 8, !tbaa !5
  %2172 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2171, i32 0, i32 6
  %2173 = load i32, ptr %2172, align 4, !tbaa !17
  %2174 = icmp ult i32 %2173, 1101
  br i1 %2174, label %2175, label %2195

2175:                                             ; preds = %2170
  %2176 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2177 = getelementptr inbounds [3 x i8], ptr %2176, i64 0, i64 0
  %2178 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2177)
  %2179 = icmp eq i32 10, %2178
  br i1 %2179, label %2180, label %2195

2180:                                             ; preds = %2175
  store i32 8, ptr %6, align 4, !tbaa !10
  %2181 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %2182 = load i32, ptr %2181, align 1, !tbaa !26
  %2183 = urem i32 %2182, 2
  %2184 = icmp ne i32 %2183, 0
  br i1 %2184, label %2185, label %2194

2185:                                             ; preds = %2180
  %2186 = load ptr, ptr %3, align 8, !tbaa !5
  %2187 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2188 = icmp ult i32 1, %2187
  br i1 %2188, label %2189, label %2191

2189:                                             ; preds = %2185
  %2190 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2192

2191:                                             ; preds = %2185
  br label %2192

2192:                                             ; preds = %2191, %2189
  %2193 = phi i32 [ %2190, %2189 ], [ 1, %2191 ]
  call void @libxsmm_handle_error(ptr noundef %2186, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 445, i32 noundef %2193)
  store i32 1, ptr %18, align 4
  br label %4054

2194:                                             ; preds = %2180
  br label %3484

2195:                                             ; preds = %2175, %2170, %2165, %2160
  %2196 = load ptr, ptr %3, align 8, !tbaa !5
  %2197 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2196, i32 0, i32 6
  %2198 = load i32, ptr %2197, align 4, !tbaa !17
  %2199 = icmp ule i32 %2198, 1999
  br i1 %2199, label %2200, label %2225

2200:                                             ; preds = %2195
  %2201 = load ptr, ptr %3, align 8, !tbaa !5
  %2202 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2201, i32 0, i32 6
  %2203 = load i32, ptr %2202, align 4, !tbaa !17
  %2204 = icmp uge i32 %2203, 1101
  br i1 %2204, label %2205, label %2225

2205:                                             ; preds = %2200
  %2206 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2207 = getelementptr inbounds [3 x i8], ptr %2206, i64 0, i64 0
  %2208 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2207)
  %2209 = icmp eq i32 10, %2208
  br i1 %2209, label %2210, label %2225

2210:                                             ; preds = %2205
  store i32 16, ptr %6, align 4, !tbaa !10
  %2211 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %2212 = load i32, ptr %2211, align 1, !tbaa !26
  %2213 = urem i32 %2212, 2
  %2214 = icmp ne i32 %2213, 0
  br i1 %2214, label %2215, label %2224

2215:                                             ; preds = %2210
  %2216 = load ptr, ptr %3, align 8, !tbaa !5
  %2217 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2218 = icmp ult i32 1, %2217
  br i1 %2218, label %2219, label %2221

2219:                                             ; preds = %2215
  %2220 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2222

2221:                                             ; preds = %2215
  br label %2222

2222:                                             ; preds = %2221, %2219
  %2223 = phi i32 [ %2220, %2219 ], [ 1, %2221 ]
  call void @libxsmm_handle_error(ptr noundef %2216, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 454, i32 noundef %2223)
  store i32 1, ptr %18, align 4
  br label %4054

2224:                                             ; preds = %2210
  br label %3483

2225:                                             ; preds = %2205, %2200, %2195
  %2226 = load ptr, ptr %3, align 8, !tbaa !5
  %2227 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2226, i32 0, i32 6
  %2228 = load i32, ptr %2227, align 4, !tbaa !17
  %2229 = icmp ule i32 %2228, 1999
  br i1 %2229, label %2230, label %2270

2230:                                             ; preds = %2225
  %2231 = load ptr, ptr %3, align 8, !tbaa !5
  %2232 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2231, i32 0, i32 6
  %2233 = load i32, ptr %2232, align 4, !tbaa !17
  %2234 = icmp uge i32 %2233, 1051
  br i1 %2234, label %2235, label %2270

2235:                                             ; preds = %2230
  %2236 = load ptr, ptr %3, align 8, !tbaa !5
  %2237 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2236, i32 0, i32 6
  %2238 = load i32, ptr %2237, align 4, !tbaa !17
  %2239 = icmp ult i32 %2238, 1101
  br i1 %2239, label %2240, label %2270

2240:                                             ; preds = %2235
  %2241 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2242 = getelementptr inbounds [3 x i8], ptr %2241, i64 0, i64 0
  %2243 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2242)
  %2244 = icmp eq i32 12, %2243
  br i1 %2244, label %2255, label %2245

2245:                                             ; preds = %2240
  %2246 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2247 = getelementptr inbounds [3 x i8], ptr %2246, i64 0, i64 0
  %2248 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2247)
  %2249 = icmp eq i32 5, %2248
  br i1 %2249, label %2255, label %2250

2250:                                             ; preds = %2245
  %2251 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2252 = getelementptr inbounds [3 x i8], ptr %2251, i64 0, i64 0
  %2253 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2252)
  %2254 = icmp eq i32 4, %2253
  br i1 %2254, label %2255, label %2270

2255:                                             ; preds = %2250, %2245, %2240
  store i32 8, ptr %6, align 4, !tbaa !10
  %2256 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %2257 = load i32, ptr %2256, align 1, !tbaa !26
  %2258 = urem i32 %2257, 4
  %2259 = icmp ne i32 %2258, 0
  br i1 %2259, label %2260, label %2269

2260:                                             ; preds = %2255
  %2261 = load ptr, ptr %3, align 8, !tbaa !5
  %2262 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2263 = icmp ult i32 1, %2262
  br i1 %2263, label %2264, label %2266

2264:                                             ; preds = %2260
  %2265 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2267

2266:                                             ; preds = %2260
  br label %2267

2267:                                             ; preds = %2266, %2264
  %2268 = phi i32 [ %2265, %2264 ], [ 1, %2266 ]
  call void @libxsmm_handle_error(ptr noundef %2261, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 464, i32 noundef %2268)
  store i32 1, ptr %18, align 4
  br label %4054

2269:                                             ; preds = %2255
  br label %3482

2270:                                             ; preds = %2250, %2235, %2230, %2225
  %2271 = load ptr, ptr %3, align 8, !tbaa !5
  %2272 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2271, i32 0, i32 6
  %2273 = load i32, ptr %2272, align 4, !tbaa !17
  %2274 = icmp ule i32 %2273, 1999
  br i1 %2274, label %2275, label %2344

2275:                                             ; preds = %2270
  %2276 = load ptr, ptr %3, align 8, !tbaa !5
  %2277 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2276, i32 0, i32 6
  %2278 = load i32, ptr %2277, align 4, !tbaa !17
  %2279 = icmp uge i32 %2278, 1101
  br i1 %2279, label %2280, label %2344

2280:                                             ; preds = %2275
  %2281 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2282 = getelementptr inbounds [3 x i8], ptr %2281, i64 0, i64 0
  %2283 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2282)
  %2284 = icmp eq i32 12, %2283
  br i1 %2284, label %2295, label %2285

2285:                                             ; preds = %2280
  %2286 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2287 = getelementptr inbounds [3 x i8], ptr %2286, i64 0, i64 0
  %2288 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2287)
  %2289 = icmp eq i32 5, %2288
  br i1 %2289, label %2295, label %2290

2290:                                             ; preds = %2285
  %2291 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2292 = getelementptr inbounds [3 x i8], ptr %2291, i64 0, i64 0
  %2293 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2292)
  %2294 = icmp eq i32 4, %2293
  br i1 %2294, label %2295, label %2344

2295:                                             ; preds = %2290, %2285, %2280
  store i32 16, ptr %6, align 4, !tbaa !10
  %2296 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %2297 = load i32, ptr %2296, align 1, !tbaa !26
  %2298 = urem i32 %2297, 4
  %2299 = icmp ne i32 %2298, 0
  br i1 %2299, label %2300, label %2326

2300:                                             ; preds = %2295
  %2301 = load ptr, ptr %3, align 8, !tbaa !5
  %2302 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2301, i32 0, i32 6
  %2303 = load i32, ptr %2302, align 4, !tbaa !17
  %2304 = icmp uge i32 %2303, 1104
  br i1 %2304, label %2305, label %2316

2305:                                             ; preds = %2300
  %2306 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %2307 = load i32, ptr %2306, align 1, !tbaa !26
  %2308 = urem i32 %2307, 2
  %2309 = icmp eq i32 %2308, 0
  br i1 %2309, label %2310, label %2316

2310:                                             ; preds = %2305
  %2311 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %2312 = load i32, ptr %2311, align 1, !tbaa !23
  %2313 = and i32 %2312, 2048
  %2314 = icmp eq i32 %2313, 0
  br i1 %2314, label %2315, label %2316

2315:                                             ; preds = %2310
  br label %2325

2316:                                             ; preds = %2310, %2305, %2300
  %2317 = load ptr, ptr %3, align 8, !tbaa !5
  %2318 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2319 = icmp ult i32 1, %2318
  br i1 %2319, label %2320, label %2322

2320:                                             ; preds = %2316
  %2321 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2323

2322:                                             ; preds = %2316
  br label %2323

2323:                                             ; preds = %2322, %2320
  %2324 = phi i32 [ %2321, %2320 ], [ 1, %2322 ]
  call void @libxsmm_handle_error(ptr noundef %2317, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 478, i32 noundef %2324)
  store i32 1, ptr %18, align 4
  br label %4054

2325:                                             ; preds = %2315
  br label %2326

2326:                                             ; preds = %2325, %2295
  %2327 = load i32, ptr %10, align 4, !tbaa !10
  %2328 = icmp ugt i32 %2327, 0
  br i1 %2328, label %2329, label %2343

2329:                                             ; preds = %2326
  %2330 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %2331 = load i32, ptr %2330, align 1, !tbaa !26
  %2332 = urem i32 %2331, 8
  %2333 = icmp ne i32 %2332, 0
  br i1 %2333, label %2334, label %2343

2334:                                             ; preds = %2329
  %2335 = load ptr, ptr %3, align 8, !tbaa !5
  %2336 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2337 = icmp ult i32 1, %2336
  br i1 %2337, label %2338, label %2340

2338:                                             ; preds = %2334
  %2339 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2341

2340:                                             ; preds = %2334
  br label %2341

2341:                                             ; preds = %2340, %2338
  %2342 = phi i32 [ %2339, %2338 ], [ 1, %2340 ]
  call void @libxsmm_handle_error(ptr noundef %2335, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 483, i32 noundef %2342)
  store i32 1, ptr %18, align 4
  br label %4054

2343:                                             ; preds = %2329, %2326
  br label %3481

2344:                                             ; preds = %2290, %2275, %2270
  %2345 = load ptr, ptr %3, align 8, !tbaa !5
  %2346 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2345, i32 0, i32 6
  %2347 = load i32, ptr %2346, align 4, !tbaa !17
  %2348 = icmp ule i32 %2347, 1999
  br i1 %2348, label %2349, label %2391

2349:                                             ; preds = %2344
  %2350 = load ptr, ptr %3, align 8, !tbaa !5
  %2351 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2350, i32 0, i32 6
  %2352 = load i32, ptr %2351, align 4, !tbaa !17
  %2353 = icmp uge i32 %2352, 1051
  br i1 %2353, label %2354, label %2391

2354:                                             ; preds = %2349
  %2355 = load ptr, ptr %3, align 8, !tbaa !5
  %2356 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2355, i32 0, i32 6
  %2357 = load i32, ptr %2356, align 4, !tbaa !17
  %2358 = icmp ult i32 %2357, 1101
  br i1 %2358, label %2359, label %2391

2359:                                             ; preds = %2354
  %2360 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2361 = getelementptr inbounds [3 x i8], ptr %2360, i64 0, i64 0
  %2362 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2361)
  %2363 = icmp eq i32 2, %2362
  br i1 %2363, label %2364, label %2391

2364:                                             ; preds = %2359
  %2365 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %2366 = load i32, ptr %2365, align 1, !tbaa !26
  %2367 = urem i32 %2366, 2
  %2368 = icmp ne i32 %2367, 0
  br i1 %2368, label %2369, label %2383

2369:                                             ; preds = %2364
  %2370 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %2371 = load i32, ptr %2370, align 1, !tbaa !23
  %2372 = and i32 %2371, 2048
  %2373 = icmp ne i32 %2372, 0
  br i1 %2373, label %2374, label %2383

2374:                                             ; preds = %2369
  %2375 = load ptr, ptr %3, align 8, !tbaa !5
  %2376 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2377 = icmp ult i32 1, %2376
  br i1 %2377, label %2378, label %2380

2378:                                             ; preds = %2374
  %2379 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2381

2380:                                             ; preds = %2374
  br label %2381

2381:                                             ; preds = %2380, %2378
  %2382 = phi i32 [ %2379, %2378 ], [ 1, %2380 ]
  call void @libxsmm_handle_error(ptr noundef %2375, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 491, i32 noundef %2382)
  store i32 1, ptr %18, align 4
  br label %4054

2383:                                             ; preds = %2369, %2364
  %2384 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %2385 = load i32, ptr %2384, align 1, !tbaa !23
  %2386 = and i32 %2385, 2048
  %2387 = icmp eq i32 %2386, 0
  br i1 %2387, label %2388, label %2389

2388:                                             ; preds = %2383
  store i32 16, ptr %6, align 4, !tbaa !10
  br label %2390

2389:                                             ; preds = %2383
  store i32 8, ptr %6, align 4, !tbaa !10
  br label %2390

2390:                                             ; preds = %2389, %2388
  br label %3480

2391:                                             ; preds = %2359, %2354, %2349, %2344
  %2392 = load ptr, ptr %3, align 8, !tbaa !5
  %2393 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2392, i32 0, i32 6
  %2394 = load i32, ptr %2393, align 4, !tbaa !17
  %2395 = icmp ule i32 %2394, 1999
  br i1 %2395, label %2396, label %2433

2396:                                             ; preds = %2391
  %2397 = load ptr, ptr %3, align 8, !tbaa !5
  %2398 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2397, i32 0, i32 6
  %2399 = load i32, ptr %2398, align 4, !tbaa !17
  %2400 = icmp uge i32 %2399, 1101
  br i1 %2400, label %2401, label %2433

2401:                                             ; preds = %2396
  %2402 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2403 = getelementptr inbounds [3 x i8], ptr %2402, i64 0, i64 0
  %2404 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2403)
  %2405 = icmp eq i32 2, %2404
  br i1 %2405, label %2406, label %2433

2406:                                             ; preds = %2401
  %2407 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %2408 = load i32, ptr %2407, align 1, !tbaa !26
  %2409 = urem i32 %2408, 2
  %2410 = icmp ne i32 %2409, 0
  br i1 %2410, label %2411, label %2425

2411:                                             ; preds = %2406
  %2412 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %2413 = load i32, ptr %2412, align 1, !tbaa !23
  %2414 = and i32 %2413, 2048
  %2415 = icmp ne i32 %2414, 0
  br i1 %2415, label %2416, label %2425

2416:                                             ; preds = %2411
  %2417 = load ptr, ptr %3, align 8, !tbaa !5
  %2418 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2419 = icmp ult i32 1, %2418
  br i1 %2419, label %2420, label %2422

2420:                                             ; preds = %2416
  %2421 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2423

2422:                                             ; preds = %2416
  br label %2423

2423:                                             ; preds = %2422, %2420
  %2424 = phi i32 [ %2421, %2420 ], [ 1, %2422 ]
  call void @libxsmm_handle_error(ptr noundef %2417, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 506, i32 noundef %2424)
  store i32 1, ptr %18, align 4
  br label %4054

2425:                                             ; preds = %2411, %2406
  %2426 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %2427 = load i32, ptr %2426, align 1, !tbaa !23
  %2428 = and i32 %2427, 2048
  %2429 = icmp eq i32 %2428, 0
  br i1 %2429, label %2430, label %2431

2430:                                             ; preds = %2425
  store i32 32, ptr %6, align 4, !tbaa !10
  br label %2432

2431:                                             ; preds = %2425
  store i32 16, ptr %6, align 4, !tbaa !10
  br label %2432

2432:                                             ; preds = %2431, %2430
  br label %3479

2433:                                             ; preds = %2401, %2396, %2391
  %2434 = load ptr, ptr %3, align 8, !tbaa !5
  %2435 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2434, i32 0, i32 6
  %2436 = load i32, ptr %2435, align 4, !tbaa !17
  %2437 = icmp ule i32 %2436, 1999
  br i1 %2437, label %2438, label %2459

2438:                                             ; preds = %2433
  %2439 = load ptr, ptr %3, align 8, !tbaa !5
  %2440 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2439, i32 0, i32 6
  %2441 = load i32, ptr %2440, align 4, !tbaa !17
  %2442 = icmp uge i32 %2441, 1105
  br i1 %2442, label %2443, label %2459

2443:                                             ; preds = %2438
  %2444 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2445 = getelementptr inbounds [3 x i8], ptr %2444, i64 0, i64 0
  %2446 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2445)
  %2447 = icmp eq i32 3, %2446
  br i1 %2447, label %2448, label %2459

2448:                                             ; preds = %2443
  %2449 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %2450 = load i32, ptr %2449, align 1, !tbaa !26
  %2451 = urem i32 %2450, 2
  %2452 = icmp eq i32 %2451, 0
  br i1 %2452, label %2453, label %2459

2453:                                             ; preds = %2448
  %2454 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %2455 = load i32, ptr %2454, align 1, !tbaa !23
  %2456 = and i32 %2455, 2048
  %2457 = icmp ne i32 %2456, 0
  br i1 %2457, label %2458, label %2459

2458:                                             ; preds = %2453
  store i32 16, ptr %6, align 4, !tbaa !10
  br label %3478

2459:                                             ; preds = %2453, %2448, %2443, %2438, %2433
  %2460 = load ptr, ptr %3, align 8, !tbaa !5
  %2461 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2460, i32 0, i32 6
  %2462 = load i32, ptr %2461, align 4, !tbaa !17
  %2463 = icmp ule i32 %2462, 1999
  br i1 %2463, label %2464, label %2510

2464:                                             ; preds = %2459
  %2465 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2466 = getelementptr inbounds [3 x i8], ptr %2465, i64 0, i64 0
  %2467 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %2466)
  %2468 = icmp eq i32 %2467, 12
  br i1 %2468, label %2469, label %2510

2469:                                             ; preds = %2464
  %2470 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2471 = getelementptr inbounds [3 x i8], ptr %2470, i64 0, i64 0
  %2472 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %2471)
  %2473 = icmp eq i32 %2472, 2
  br i1 %2473, label %2474, label %2510

2474:                                             ; preds = %2469
  %2475 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2476 = getelementptr inbounds [3 x i8], ptr %2475, i64 0, i64 0
  %2477 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2476)
  %2478 = icmp eq i32 %2477, 2
  br i1 %2478, label %2484, label %2479

2479:                                             ; preds = %2474
  %2480 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2481 = getelementptr inbounds [3 x i8], ptr %2480, i64 0, i64 0
  %2482 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2481)
  %2483 = icmp eq i32 %2482, 1
  br i1 %2483, label %2484, label %2510

2484:                                             ; preds = %2479, %2474
  %2485 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %2486 = load i32, ptr %2485, align 1, !tbaa !23
  %2487 = and i32 %2486, 2048
  %2488 = icmp ne i32 %2487, 0
  br i1 %2488, label %2489, label %2501

2489:                                             ; preds = %2484
  %2490 = load i32, ptr %11, align 4, !tbaa !10
  %2491 = icmp eq i32 %2490, 0
  br i1 %2491, label %2492, label %2501

2492:                                             ; preds = %2489
  %2493 = load ptr, ptr %3, align 8, !tbaa !5
  %2494 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2495 = icmp ult i32 1, %2494
  br i1 %2495, label %2496, label %2498

2496:                                             ; preds = %2492
  %2497 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2499

2498:                                             ; preds = %2492
  br label %2499

2499:                                             ; preds = %2498, %2496
  %2500 = phi i32 [ %2497, %2496 ], [ 1, %2498 ]
  call void @libxsmm_handle_error(ptr noundef %2493, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 525, i32 noundef %2500)
  store i32 1, ptr %18, align 4
  br label %4054

2501:                                             ; preds = %2489, %2484
  %2502 = load ptr, ptr %3, align 8, !tbaa !5
  %2503 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2502, i32 0, i32 6
  %2504 = load i32, ptr %2503, align 4, !tbaa !17
  %2505 = icmp uge i32 %2504, 1103
  br i1 %2505, label %2506, label %2507

2506:                                             ; preds = %2501
  store i32 16, ptr %6, align 4, !tbaa !10
  br label %2508

2507:                                             ; preds = %2501
  store i32 8, ptr %6, align 4, !tbaa !10
  br label %2508

2508:                                             ; preds = %2507, %2506
  br label %2509

2509:                                             ; preds = %2508
  br label %3477

2510:                                             ; preds = %2479, %2469, %2464, %2459
  %2511 = load ptr, ptr %3, align 8, !tbaa !5
  %2512 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2511, i32 0, i32 6
  %2513 = load i32, ptr %2512, align 4, !tbaa !17
  %2514 = icmp ule i32 %2513, 1999
  br i1 %2514, label %2515, label %2578

2515:                                             ; preds = %2510
  %2516 = load ptr, ptr %3, align 8, !tbaa !5
  %2517 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2516, i32 0, i32 6
  %2518 = load i32, ptr %2517, align 4, !tbaa !17
  %2519 = icmp uge i32 %2518, 1104
  br i1 %2519, label %2520, label %2578

2520:                                             ; preds = %2515
  %2521 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2522 = getelementptr inbounds [3 x i8], ptr %2521, i64 0, i64 0
  %2523 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %2522)
  %2524 = icmp eq i32 %2523, 12
  br i1 %2524, label %2530, label %2525

2525:                                             ; preds = %2520
  %2526 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2527 = getelementptr inbounds [3 x i8], ptr %2526, i64 0, i64 0
  %2528 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %2527)
  %2529 = icmp eq i32 %2528, 4
  br i1 %2529, label %2530, label %2578

2530:                                             ; preds = %2525, %2520
  %2531 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2532 = getelementptr inbounds [3 x i8], ptr %2531, i64 0, i64 0
  %2533 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %2532)
  %2534 = icmp eq i32 %2533, 3
  br i1 %2534, label %2535, label %2578

2535:                                             ; preds = %2530
  %2536 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2537 = getelementptr inbounds [3 x i8], ptr %2536, i64 0, i64 0
  %2538 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2537)
  %2539 = icmp eq i32 %2538, 3
  br i1 %2539, label %2545, label %2540

2540:                                             ; preds = %2535
  %2541 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2542 = getelementptr inbounds [3 x i8], ptr %2541, i64 0, i64 0
  %2543 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2542)
  %2544 = icmp eq i32 %2543, 1
  br i1 %2544, label %2545, label %2578

2545:                                             ; preds = %2540, %2535
  %2546 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %2547 = load i32, ptr %2546, align 1, !tbaa !23
  %2548 = and i32 %2547, 2048
  %2549 = icmp ne i32 %2548, 0
  br i1 %2549, label %2550, label %2564

2550:                                             ; preds = %2545
  %2551 = load ptr, ptr %3, align 8, !tbaa !5
  %2552 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2551, i32 0, i32 6
  %2553 = load i32, ptr %2552, align 4, !tbaa !17
  %2554 = icmp ult i32 %2553, 1105
  br i1 %2554, label %2555, label %2564

2555:                                             ; preds = %2550
  %2556 = load ptr, ptr %3, align 8, !tbaa !5
  %2557 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2558 = icmp ult i32 1, %2557
  br i1 %2558, label %2559, label %2561

2559:                                             ; preds = %2555
  %2560 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2562

2561:                                             ; preds = %2555
  br label %2562

2562:                                             ; preds = %2561, %2559
  %2563 = phi i32 [ %2560, %2559 ], [ 1, %2561 ]
  call void @libxsmm_handle_error(ptr noundef %2556, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 540, i32 noundef %2563)
  store i32 1, ptr %18, align 4
  br label %4054

2564:                                             ; preds = %2550, %2545
  %2565 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2566 = getelementptr inbounds [3 x i8], ptr %2565, i64 0, i64 0
  %2567 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %2566)
  %2568 = icmp eq i32 %2567, 3
  br i1 %2568, label %2574, label %2569

2569:                                             ; preds = %2564
  %2570 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2571 = getelementptr inbounds [3 x i8], ptr %2570, i64 0, i64 0
  %2572 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %2571)
  %2573 = icmp eq i32 %2572, 14
  br i1 %2573, label %2574, label %2575

2574:                                             ; preds = %2569, %2564
  store i32 32, ptr %6, align 4, !tbaa !10
  br label %2576

2575:                                             ; preds = %2569
  store i32 16, ptr %6, align 4, !tbaa !10
  br label %2576

2576:                                             ; preds = %2575, %2574
  br label %2577

2577:                                             ; preds = %2576
  br label %3476

2578:                                             ; preds = %2540, %2530, %2525, %2515, %2510
  %2579 = load ptr, ptr %3, align 8, !tbaa !5
  %2580 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2579, i32 0, i32 6
  %2581 = load i32, ptr %2580, align 4, !tbaa !17
  %2582 = icmp ule i32 %2581, 1999
  br i1 %2582, label %2583, label %2634

2583:                                             ; preds = %2578
  %2584 = load ptr, ptr %3, align 8, !tbaa !5
  %2585 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2584, i32 0, i32 6
  %2586 = load i32, ptr %2585, align 4, !tbaa !17
  %2587 = icmp uge i32 %2586, 1104
  br i1 %2587, label %2588, label %2634

2588:                                             ; preds = %2583
  %2589 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2590 = getelementptr inbounds [3 x i8], ptr %2589, i64 0, i64 0
  %2591 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %2590)
  %2592 = icmp eq i32 %2591, 5
  br i1 %2592, label %2598, label %2593

2593:                                             ; preds = %2588
  %2594 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2595 = getelementptr inbounds [3 x i8], ptr %2594, i64 0, i64 0
  %2596 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %2595)
  %2597 = icmp eq i32 %2596, 4
  br i1 %2597, label %2598, label %2634

2598:                                             ; preds = %2593, %2588
  %2599 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2600 = getelementptr inbounds [3 x i8], ptr %2599, i64 0, i64 0
  %2601 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %2600)
  %2602 = icmp eq i32 %2601, 2
  br i1 %2602, label %2603, label %2634

2603:                                             ; preds = %2598
  %2604 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2605 = getelementptr inbounds [3 x i8], ptr %2604, i64 0, i64 0
  %2606 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2605)
  %2607 = icmp eq i32 %2606, 2
  br i1 %2607, label %2613, label %2608

2608:                                             ; preds = %2603
  %2609 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2610 = getelementptr inbounds [3 x i8], ptr %2609, i64 0, i64 0
  %2611 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2610)
  %2612 = icmp eq i32 %2611, 1
  br i1 %2612, label %2613, label %2634

2613:                                             ; preds = %2608, %2603
  %2614 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %2615 = load i32, ptr %2614, align 1, !tbaa !23
  %2616 = and i32 %2615, 2048
  %2617 = icmp ugt i32 %2616, 0
  br i1 %2617, label %2618, label %2624

2618:                                             ; preds = %2613
  %2619 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %2620 = load i32, ptr %2619, align 1, !tbaa !26
  %2621 = urem i32 %2620, 2
  %2622 = icmp eq i32 %2621, 0
  br i1 %2622, label %2623, label %2624

2623:                                             ; preds = %2618
  store i32 16, ptr %6, align 4, !tbaa !10
  br label %2633

2624:                                             ; preds = %2618, %2613
  %2625 = load ptr, ptr %3, align 8, !tbaa !5
  %2626 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2627 = icmp ult i32 1, %2626
  br i1 %2627, label %2628, label %2630

2628:                                             ; preds = %2624
  %2629 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2631

2630:                                             ; preds = %2624
  br label %2631

2631:                                             ; preds = %2630, %2628
  %2632 = phi i32 [ %2629, %2628 ], [ 1, %2630 ]
  call void @libxsmm_handle_error(ptr noundef %2625, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 557, i32 noundef %2632)
  store i32 1, ptr %18, align 4
  br label %4054

2633:                                             ; preds = %2623
  br label %3475

2634:                                             ; preds = %2608, %2598, %2593, %2583, %2578
  %2635 = load ptr, ptr %3, align 8, !tbaa !5
  %2636 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2635, i32 0, i32 6
  %2637 = load i32, ptr %2636, align 4, !tbaa !17
  %2638 = icmp ule i32 %2637, 1999
  br i1 %2638, label %2639, label %2687

2639:                                             ; preds = %2634
  %2640 = load ptr, ptr %3, align 8, !tbaa !5
  %2641 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2640, i32 0, i32 6
  %2642 = load i32, ptr %2641, align 4, !tbaa !17
  %2643 = icmp uge i32 %2642, 1104
  br i1 %2643, label %2644, label %2687

2644:                                             ; preds = %2639
  %2645 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2646 = getelementptr inbounds [3 x i8], ptr %2645, i64 0, i64 0
  %2647 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2646)
  %2648 = icmp eq i32 %2647, 3
  br i1 %2648, label %2649, label %2687

2649:                                             ; preds = %2644
  %2650 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2651 = getelementptr inbounds [3 x i8], ptr %2650, i64 0, i64 0
  %2652 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2651)
  %2653 = icmp eq i32 %2652, 3
  br i1 %2653, label %2659, label %2654

2654:                                             ; preds = %2649
  %2655 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2656 = getelementptr inbounds [3 x i8], ptr %2655, i64 0, i64 0
  %2657 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2656)
  %2658 = icmp eq i32 %2657, 1
  br i1 %2658, label %2659, label %2687

2659:                                             ; preds = %2654, %2649
  %2660 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %2661 = load i32, ptr %2660, align 1, !tbaa !23
  %2662 = and i32 %2661, 2048
  %2663 = icmp ne i32 %2662, 0
  br i1 %2663, label %2664, label %2673

2664:                                             ; preds = %2659
  %2665 = load ptr, ptr %3, align 8, !tbaa !5
  %2666 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2667 = icmp ult i32 1, %2666
  br i1 %2667, label %2668, label %2670

2668:                                             ; preds = %2664
  %2669 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2671

2670:                                             ; preds = %2664
  br label %2671

2671:                                             ; preds = %2670, %2668
  %2672 = phi i32 [ %2669, %2668 ], [ 1, %2670 ]
  call void @libxsmm_handle_error(ptr noundef %2665, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 565, i32 noundef %2672)
  store i32 1, ptr %18, align 4
  br label %4054

2673:                                             ; preds = %2659
  %2674 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2675 = getelementptr inbounds [3 x i8], ptr %2674, i64 0, i64 0
  %2676 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %2675)
  %2677 = icmp eq i32 %2676, 3
  br i1 %2677, label %2683, label %2678

2678:                                             ; preds = %2673
  %2679 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2680 = getelementptr inbounds [3 x i8], ptr %2679, i64 0, i64 0
  %2681 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %2680)
  %2682 = icmp eq i32 %2681, 14
  br i1 %2682, label %2683, label %2684

2683:                                             ; preds = %2678, %2673
  store i32 32, ptr %6, align 4, !tbaa !10
  br label %2685

2684:                                             ; preds = %2678
  store i32 16, ptr %6, align 4, !tbaa !10
  br label %2685

2685:                                             ; preds = %2684, %2683
  br label %2686

2686:                                             ; preds = %2685
  br label %3474

2687:                                             ; preds = %2654, %2644, %2639, %2634
  %2688 = load ptr, ptr %3, align 8, !tbaa !5
  %2689 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2688, i32 0, i32 6
  %2690 = load i32, ptr %2689, align 4, !tbaa !17
  %2691 = icmp ule i32 %2690, 1999
  br i1 %2691, label %2692, label %2733

2692:                                             ; preds = %2687
  %2693 = load ptr, ptr %3, align 8, !tbaa !5
  %2694 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2693, i32 0, i32 6
  %2695 = load i32, ptr %2694, align 4, !tbaa !17
  %2696 = icmp ult i32 %2695, 1104
  br i1 %2696, label %2697, label %2733

2697:                                             ; preds = %2692
  %2698 = load ptr, ptr %3, align 8, !tbaa !5
  %2699 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2698, i32 0, i32 6
  %2700 = load i32, ptr %2699, align 4, !tbaa !17
  %2701 = icmp uge i32 %2700, 1101
  br i1 %2701, label %2702, label %2733

2702:                                             ; preds = %2697
  %2703 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2704 = getelementptr inbounds [3 x i8], ptr %2703, i64 0, i64 0
  %2705 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2704)
  %2706 = icmp eq i32 %2705, 3
  br i1 %2706, label %2707, label %2733

2707:                                             ; preds = %2702
  %2708 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2709 = getelementptr inbounds [3 x i8], ptr %2708, i64 0, i64 0
  %2710 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2709)
  %2711 = icmp eq i32 %2710, 3
  br i1 %2711, label %2717, label %2712

2712:                                             ; preds = %2707
  %2713 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2714 = getelementptr inbounds [3 x i8], ptr %2713, i64 0, i64 0
  %2715 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2714)
  %2716 = icmp eq i32 %2715, 1
  br i1 %2716, label %2717, label %2733

2717:                                             ; preds = %2712, %2707
  %2718 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %2719 = load i32, ptr %2718, align 1, !tbaa !23
  %2720 = and i32 %2719, 2048
  %2721 = icmp ne i32 %2720, 0
  br i1 %2721, label %2722, label %2731

2722:                                             ; preds = %2717
  %2723 = load ptr, ptr %3, align 8, !tbaa !5
  %2724 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2725 = icmp ult i32 1, %2724
  br i1 %2725, label %2726, label %2728

2726:                                             ; preds = %2722
  %2727 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2729

2728:                                             ; preds = %2722
  br label %2729

2729:                                             ; preds = %2728, %2726
  %2730 = phi i32 [ %2727, %2726 ], [ 1, %2728 ]
  call void @libxsmm_handle_error(ptr noundef %2723, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 579, i32 noundef %2730)
  store i32 1, ptr %18, align 4
  br label %4054

2731:                                             ; preds = %2717
  store i32 16, ptr %6, align 4, !tbaa !10
  br label %2732

2732:                                             ; preds = %2731
  br label %3473

2733:                                             ; preds = %2712, %2702, %2697, %2692, %2687
  %2734 = load ptr, ptr %3, align 8, !tbaa !5
  %2735 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2734, i32 0, i32 6
  %2736 = load i32, ptr %2735, align 4, !tbaa !17
  %2737 = icmp ule i32 %2736, 1999
  br i1 %2737, label %2738, label %2779

2738:                                             ; preds = %2733
  %2739 = load ptr, ptr %3, align 8, !tbaa !5
  %2740 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2739, i32 0, i32 6
  %2741 = load i32, ptr %2740, align 4, !tbaa !17
  %2742 = icmp uge i32 %2741, 1051
  br i1 %2742, label %2743, label %2779

2743:                                             ; preds = %2738
  %2744 = load ptr, ptr %3, align 8, !tbaa !5
  %2745 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2744, i32 0, i32 6
  %2746 = load i32, ptr %2745, align 4, !tbaa !17
  %2747 = icmp ult i32 %2746, 1101
  br i1 %2747, label %2748, label %2779

2748:                                             ; preds = %2743
  %2749 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2750 = getelementptr inbounds [3 x i8], ptr %2749, i64 0, i64 0
  %2751 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2750)
  %2752 = icmp eq i32 %2751, 3
  br i1 %2752, label %2753, label %2779

2753:                                             ; preds = %2748
  %2754 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2755 = getelementptr inbounds [3 x i8], ptr %2754, i64 0, i64 0
  %2756 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2755)
  %2757 = icmp eq i32 %2756, 3
  br i1 %2757, label %2763, label %2758

2758:                                             ; preds = %2753
  %2759 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2760 = getelementptr inbounds [3 x i8], ptr %2759, i64 0, i64 0
  %2761 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2760)
  %2762 = icmp eq i32 %2761, 1
  br i1 %2762, label %2763, label %2779

2763:                                             ; preds = %2758, %2753
  %2764 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %2765 = load i32, ptr %2764, align 1, !tbaa !23
  %2766 = and i32 %2765, 2048
  %2767 = icmp ne i32 %2766, 0
  br i1 %2767, label %2768, label %2777

2768:                                             ; preds = %2763
  %2769 = load ptr, ptr %3, align 8, !tbaa !5
  %2770 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2771 = icmp ult i32 1, %2770
  br i1 %2771, label %2772, label %2774

2772:                                             ; preds = %2768
  %2773 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2775

2774:                                             ; preds = %2768
  br label %2775

2775:                                             ; preds = %2774, %2772
  %2776 = phi i32 [ %2773, %2772 ], [ 1, %2774 ]
  call void @libxsmm_handle_error(ptr noundef %2769, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 589, i32 noundef %2776)
  store i32 1, ptr %18, align 4
  br label %4054

2777:                                             ; preds = %2763
  store i32 8, ptr %6, align 4, !tbaa !10
  br label %2778

2778:                                             ; preds = %2777
  br label %3472

2779:                                             ; preds = %2758, %2748, %2743, %2738, %2733
  %2780 = load ptr, ptr %3, align 8, !tbaa !5
  %2781 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2780, i32 0, i32 6
  %2782 = load i32, ptr %2781, align 4, !tbaa !17
  %2783 = icmp ule i32 %2782, 1999
  br i1 %2783, label %2784, label %2835

2784:                                             ; preds = %2779
  %2785 = load ptr, ptr %3, align 8, !tbaa !5
  %2786 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2785, i32 0, i32 6
  %2787 = load i32, ptr %2786, align 4, !tbaa !17
  %2788 = icmp ult i32 %2787, 1104
  br i1 %2788, label %2789, label %2835

2789:                                             ; preds = %2784
  %2790 = load ptr, ptr %3, align 8, !tbaa !5
  %2791 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2790, i32 0, i32 6
  %2792 = load i32, ptr %2791, align 4, !tbaa !17
  %2793 = icmp uge i32 %2792, 1101
  br i1 %2793, label %2794, label %2835

2794:                                             ; preds = %2789
  %2795 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2796 = getelementptr inbounds [3 x i8], ptr %2795, i64 0, i64 0
  %2797 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %2796)
  %2798 = icmp eq i32 %2797, 12
  br i1 %2798, label %2804, label %2799

2799:                                             ; preds = %2794
  %2800 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2801 = getelementptr inbounds [3 x i8], ptr %2800, i64 0, i64 0
  %2802 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %2801)
  %2803 = icmp eq i32 %2802, 4
  br i1 %2803, label %2804, label %2835

2804:                                             ; preds = %2799, %2794
  %2805 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2806 = getelementptr inbounds [3 x i8], ptr %2805, i64 0, i64 0
  %2807 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %2806)
  %2808 = icmp eq i32 %2807, 3
  br i1 %2808, label %2809, label %2835

2809:                                             ; preds = %2804
  %2810 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2811 = getelementptr inbounds [3 x i8], ptr %2810, i64 0, i64 0
  %2812 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2811)
  %2813 = icmp eq i32 %2812, 3
  br i1 %2813, label %2819, label %2814

2814:                                             ; preds = %2809
  %2815 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2816 = getelementptr inbounds [3 x i8], ptr %2815, i64 0, i64 0
  %2817 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2816)
  %2818 = icmp eq i32 %2817, 1
  br i1 %2818, label %2819, label %2835

2819:                                             ; preds = %2814, %2809
  %2820 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %2821 = load i32, ptr %2820, align 1, !tbaa !23
  %2822 = and i32 %2821, 2048
  %2823 = icmp ne i32 %2822, 0
  br i1 %2823, label %2824, label %2833

2824:                                             ; preds = %2819
  %2825 = load ptr, ptr %3, align 8, !tbaa !5
  %2826 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2827 = icmp ult i32 1, %2826
  br i1 %2827, label %2828, label %2830

2828:                                             ; preds = %2824
  %2829 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2831

2830:                                             ; preds = %2824
  br label %2831

2831:                                             ; preds = %2830, %2828
  %2832 = phi i32 [ %2829, %2828 ], [ 1, %2830 ]
  call void @libxsmm_handle_error(ptr noundef %2825, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 600, i32 noundef %2832)
  store i32 1, ptr %18, align 4
  br label %4054

2833:                                             ; preds = %2819
  store i32 16, ptr %6, align 4, !tbaa !10
  br label %2834

2834:                                             ; preds = %2833
  br label %3471

2835:                                             ; preds = %2814, %2804, %2799, %2789, %2784, %2779
  %2836 = load ptr, ptr %3, align 8, !tbaa !5
  %2837 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2836, i32 0, i32 6
  %2838 = load i32, ptr %2837, align 4, !tbaa !17
  %2839 = icmp ule i32 %2838, 1999
  br i1 %2839, label %2840, label %2891

2840:                                             ; preds = %2835
  %2841 = load ptr, ptr %3, align 8, !tbaa !5
  %2842 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2841, i32 0, i32 6
  %2843 = load i32, ptr %2842, align 4, !tbaa !17
  %2844 = icmp uge i32 %2843, 1051
  br i1 %2844, label %2845, label %2891

2845:                                             ; preds = %2840
  %2846 = load ptr, ptr %3, align 8, !tbaa !5
  %2847 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2846, i32 0, i32 6
  %2848 = load i32, ptr %2847, align 4, !tbaa !17
  %2849 = icmp ult i32 %2848, 1101
  br i1 %2849, label %2850, label %2891

2850:                                             ; preds = %2845
  %2851 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2852 = getelementptr inbounds [3 x i8], ptr %2851, i64 0, i64 0
  %2853 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %2852)
  %2854 = icmp eq i32 %2853, 12
  br i1 %2854, label %2860, label %2855

2855:                                             ; preds = %2850
  %2856 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2857 = getelementptr inbounds [3 x i8], ptr %2856, i64 0, i64 0
  %2858 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %2857)
  %2859 = icmp eq i32 %2858, 4
  br i1 %2859, label %2860, label %2891

2860:                                             ; preds = %2855, %2850
  %2861 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2862 = getelementptr inbounds [3 x i8], ptr %2861, i64 0, i64 0
  %2863 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %2862)
  %2864 = icmp eq i32 %2863, 3
  br i1 %2864, label %2865, label %2891

2865:                                             ; preds = %2860
  %2866 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2867 = getelementptr inbounds [3 x i8], ptr %2866, i64 0, i64 0
  %2868 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2867)
  %2869 = icmp eq i32 %2868, 3
  br i1 %2869, label %2875, label %2870

2870:                                             ; preds = %2865
  %2871 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2872 = getelementptr inbounds [3 x i8], ptr %2871, i64 0, i64 0
  %2873 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2872)
  %2874 = icmp eq i32 %2873, 1
  br i1 %2874, label %2875, label %2891

2875:                                             ; preds = %2870, %2865
  %2876 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %2877 = load i32, ptr %2876, align 1, !tbaa !23
  %2878 = and i32 %2877, 2048
  %2879 = icmp ne i32 %2878, 0
  br i1 %2879, label %2880, label %2889

2880:                                             ; preds = %2875
  %2881 = load ptr, ptr %3, align 8, !tbaa !5
  %2882 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2883 = icmp ult i32 1, %2882
  br i1 %2883, label %2884, label %2886

2884:                                             ; preds = %2880
  %2885 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2887

2886:                                             ; preds = %2880
  br label %2887

2887:                                             ; preds = %2886, %2884
  %2888 = phi i32 [ %2885, %2884 ], [ 1, %2886 ]
  call void @libxsmm_handle_error(ptr noundef %2881, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 611, i32 noundef %2888)
  store i32 1, ptr %18, align 4
  br label %4054

2889:                                             ; preds = %2875
  store i32 8, ptr %6, align 4, !tbaa !10
  br label %2890

2890:                                             ; preds = %2889
  br label %3470

2891:                                             ; preds = %2870, %2860, %2855, %2845, %2840, %2835
  %2892 = load i32, ptr %10, align 4, !tbaa !10
  %2893 = icmp ugt i32 %2892, 0
  br i1 %2893, label %2912, label %2894

2894:                                             ; preds = %2891
  %2895 = load i32, ptr %14, align 4, !tbaa !10
  %2896 = icmp ugt i32 %2895, 0
  br i1 %2896, label %2912, label %2897

2897:                                             ; preds = %2894
  %2898 = load i32, ptr %16, align 4, !tbaa !10
  %2899 = icmp ugt i32 %2898, 0
  br i1 %2899, label %2912, label %2900

2900:                                             ; preds = %2897
  %2901 = load i32, ptr %15, align 4, !tbaa !10
  %2902 = icmp ugt i32 %2901, 0
  br i1 %2902, label %2912, label %2903

2903:                                             ; preds = %2900
  %2904 = load i32, ptr %11, align 4, !tbaa !10
  %2905 = icmp ugt i32 %2904, 0
  br i1 %2905, label %2912, label %2906

2906:                                             ; preds = %2903
  %2907 = load i32, ptr %12, align 4, !tbaa !10
  %2908 = icmp ugt i32 %2907, 0
  br i1 %2908, label %2912, label %2909

2909:                                             ; preds = %2906
  %2910 = load i32, ptr %13, align 4, !tbaa !10
  %2911 = icmp ugt i32 %2910, 0
  br i1 %2911, label %2912, label %2931

2912:                                             ; preds = %2909, %2906, %2903, %2900, %2897, %2894, %2891
  %2913 = load ptr, ptr %3, align 8, !tbaa !5
  %2914 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2913, i32 0, i32 6
  %2915 = load i32, ptr %2914, align 4, !tbaa !17
  %2916 = icmp uge i32 %2915, 2001
  br i1 %2916, label %2917, label %2931

2917:                                             ; preds = %2912
  %2918 = load ptr, ptr %3, align 8, !tbaa !5
  %2919 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2918, i32 0, i32 6
  %2920 = load i32, ptr %2919, align 4, !tbaa !17
  %2921 = icmp ule i32 %2920, 2999
  br i1 %2921, label %2922, label %2931

2922:                                             ; preds = %2917
  %2923 = load ptr, ptr %3, align 8, !tbaa !5
  %2924 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %2925 = icmp ult i32 1, %2924
  br i1 %2925, label %2926, label %2928

2926:                                             ; preds = %2922
  %2927 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %2929

2928:                                             ; preds = %2922
  br label %2929

2929:                                             ; preds = %2928, %2926
  %2930 = phi i32 [ %2927, %2926 ], [ 1, %2928 ]
  call void @libxsmm_handle_error(ptr noundef %2923, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 617, i32 noundef %2930)
  store i32 1, ptr %18, align 4
  br label %4054

2931:                                             ; preds = %2917, %2912, %2909
  %2932 = load ptr, ptr %3, align 8, !tbaa !5
  %2933 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2932, i32 0, i32 6
  %2934 = load i32, ptr %2933, align 4, !tbaa !17
  %2935 = icmp eq i32 %2934, 2001
  br i1 %2935, label %2936, label %2942

2936:                                             ; preds = %2931
  %2937 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2938 = getelementptr inbounds [3 x i8], ptr %2937, i64 0, i64 0
  %2939 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2938)
  %2940 = icmp eq i32 1, %2939
  br i1 %2940, label %2941, label %2942

2941:                                             ; preds = %2936
  store i32 4, ptr %6, align 4, !tbaa !10
  br label %3468

2942:                                             ; preds = %2936, %2931
  %2943 = load ptr, ptr %3, align 8, !tbaa !5
  %2944 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2943, i32 0, i32 6
  %2945 = load i32, ptr %2944, align 4, !tbaa !17
  %2946 = icmp eq i32 %2945, 2001
  br i1 %2946, label %2947, label %2953

2947:                                             ; preds = %2942
  %2948 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2949 = getelementptr inbounds [3 x i8], ptr %2948, i64 0, i64 0
  %2950 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2949)
  %2951 = icmp eq i32 0, %2950
  br i1 %2951, label %2952, label %2953

2952:                                             ; preds = %2947
  store i32 2, ptr %6, align 4, !tbaa !10
  br label %3467

2953:                                             ; preds = %2947, %2942
  %2954 = load ptr, ptr %3, align 8, !tbaa !5
  %2955 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2954, i32 0, i32 6
  %2956 = load i32, ptr %2955, align 4, !tbaa !17
  %2957 = icmp eq i32 %2956, 2002
  br i1 %2957, label %2958, label %2964

2958:                                             ; preds = %2953
  %2959 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2960 = getelementptr inbounds [3 x i8], ptr %2959, i64 0, i64 0
  %2961 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2960)
  %2962 = icmp eq i32 1, %2961
  br i1 %2962, label %2963, label %2964

2963:                                             ; preds = %2958
  store i32 4, ptr %6, align 4, !tbaa !10
  br label %3466

2964:                                             ; preds = %2958, %2953
  %2965 = load ptr, ptr %3, align 8, !tbaa !5
  %2966 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2965, i32 0, i32 6
  %2967 = load i32, ptr %2966, align 4, !tbaa !17
  %2968 = icmp eq i32 %2967, 2002
  br i1 %2968, label %2969, label %2975

2969:                                             ; preds = %2964
  %2970 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2971 = getelementptr inbounds [3 x i8], ptr %2970, i64 0, i64 0
  %2972 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2971)
  %2973 = icmp eq i32 0, %2972
  br i1 %2973, label %2974, label %2975

2974:                                             ; preds = %2969
  store i32 2, ptr %6, align 4, !tbaa !10
  br label %3465

2975:                                             ; preds = %2969, %2964
  %2976 = load ptr, ptr %3, align 8, !tbaa !5
  %2977 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2976, i32 0, i32 6
  %2978 = load i32, ptr %2977, align 4, !tbaa !17
  %2979 = icmp eq i32 %2978, 2101
  br i1 %2979, label %2980, label %2986

2980:                                             ; preds = %2975
  %2981 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2982 = getelementptr inbounds [3 x i8], ptr %2981, i64 0, i64 0
  %2983 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2982)
  %2984 = icmp eq i32 1, %2983
  br i1 %2984, label %2985, label %2986

2985:                                             ; preds = %2980
  store i32 4, ptr %6, align 4, !tbaa !10
  br label %3464

2986:                                             ; preds = %2980, %2975
  %2987 = load ptr, ptr %3, align 8, !tbaa !5
  %2988 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2987, i32 0, i32 6
  %2989 = load i32, ptr %2988, align 4, !tbaa !17
  %2990 = icmp eq i32 %2989, 2101
  br i1 %2990, label %2991, label %2997

2991:                                             ; preds = %2986
  %2992 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %2993 = getelementptr inbounds [3 x i8], ptr %2992, i64 0, i64 0
  %2994 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2993)
  %2995 = icmp eq i32 0, %2994
  br i1 %2995, label %2996, label %2997

2996:                                             ; preds = %2991
  store i32 2, ptr %6, align 4, !tbaa !10
  br label %3463

2997:                                             ; preds = %2991, %2986
  %2998 = load ptr, ptr %3, align 8, !tbaa !5
  %2999 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2998, i32 0, i32 6
  %3000 = load i32, ptr %2999, align 4, !tbaa !17
  %3001 = icmp eq i32 %3000, 2201
  br i1 %3001, label %3007, label %3002

3002:                                             ; preds = %2997
  %3003 = load ptr, ptr %3, align 8, !tbaa !5
  %3004 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3003, i32 0, i32 6
  %3005 = load i32, ptr %3004, align 4, !tbaa !17
  %3006 = icmp eq i32 %3005, 2202
  br i1 %3006, label %3007, label %3013

3007:                                             ; preds = %3002, %2997
  %3008 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3009 = getelementptr inbounds [3 x i8], ptr %3008, i64 0, i64 0
  %3010 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3009)
  %3011 = icmp eq i32 1, %3010
  br i1 %3011, label %3012, label %3013

3012:                                             ; preds = %3007
  store i32 4, ptr %6, align 4, !tbaa !10
  br label %3462

3013:                                             ; preds = %3007, %3002
  %3014 = load ptr, ptr %3, align 8, !tbaa !5
  %3015 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3014, i32 0, i32 6
  %3016 = load i32, ptr %3015, align 4, !tbaa !17
  %3017 = icmp eq i32 %3016, 2201
  br i1 %3017, label %3023, label %3018

3018:                                             ; preds = %3013
  %3019 = load ptr, ptr %3, align 8, !tbaa !5
  %3020 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3019, i32 0, i32 6
  %3021 = load i32, ptr %3020, align 4, !tbaa !17
  %3022 = icmp eq i32 %3021, 2202
  br i1 %3022, label %3023, label %3029

3023:                                             ; preds = %3018, %3013
  %3024 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3025 = getelementptr inbounds [3 x i8], ptr %3024, i64 0, i64 0
  %3026 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3025)
  %3027 = icmp eq i32 0, %3026
  br i1 %3027, label %3028, label %3029

3028:                                             ; preds = %3023
  store i32 2, ptr %6, align 4, !tbaa !10
  br label %3461

3029:                                             ; preds = %3023, %3018
  %3030 = load ptr, ptr %3, align 8, !tbaa !5
  %3031 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3030, i32 0, i32 6
  %3032 = load i32, ptr %3031, align 4, !tbaa !17
  %3033 = icmp eq i32 %3032, 2301
  br i1 %3033, label %3039, label %3034

3034:                                             ; preds = %3029
  %3035 = load ptr, ptr %3, align 8, !tbaa !5
  %3036 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3035, i32 0, i32 6
  %3037 = load i32, ptr %3036, align 4, !tbaa !17
  %3038 = icmp eq i32 %3037, 2302
  br i1 %3038, label %3039, label %3045

3039:                                             ; preds = %3034, %3029
  %3040 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3041 = getelementptr inbounds [3 x i8], ptr %3040, i64 0, i64 0
  %3042 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3041)
  %3043 = icmp eq i32 1, %3042
  br i1 %3043, label %3044, label %3045

3044:                                             ; preds = %3039
  store i32 8, ptr %6, align 4, !tbaa !10
  br label %3460

3045:                                             ; preds = %3039, %3034
  %3046 = load ptr, ptr %3, align 8, !tbaa !5
  %3047 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3046, i32 0, i32 6
  %3048 = load i32, ptr %3047, align 4, !tbaa !17
  %3049 = icmp eq i32 %3048, 2301
  br i1 %3049, label %3055, label %3050

3050:                                             ; preds = %3045
  %3051 = load ptr, ptr %3, align 8, !tbaa !5
  %3052 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3051, i32 0, i32 6
  %3053 = load i32, ptr %3052, align 4, !tbaa !17
  %3054 = icmp eq i32 %3053, 2302
  br i1 %3054, label %3055, label %3061

3055:                                             ; preds = %3050, %3045
  %3056 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3057 = getelementptr inbounds [3 x i8], ptr %3056, i64 0, i64 0
  %3058 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3057)
  %3059 = icmp eq i32 0, %3058
  br i1 %3059, label %3060, label %3061

3060:                                             ; preds = %3055
  store i32 4, ptr %6, align 4, !tbaa !10
  br label %3459

3061:                                             ; preds = %3055, %3050
  %3062 = load ptr, ptr %3, align 8, !tbaa !5
  %3063 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3062, i32 0, i32 6
  %3064 = load i32, ptr %3063, align 4, !tbaa !17
  %3065 = icmp eq i32 %3064, 2401
  br i1 %3065, label %3071, label %3066

3066:                                             ; preds = %3061
  %3067 = load ptr, ptr %3, align 8, !tbaa !5
  %3068 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3067, i32 0, i32 6
  %3069 = load i32, ptr %3068, align 4, !tbaa !17
  %3070 = icmp eq i32 %3069, 2402
  br i1 %3070, label %3071, label %3077

3071:                                             ; preds = %3066, %3061
  %3072 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3073 = getelementptr inbounds [3 x i8], ptr %3072, i64 0, i64 0
  %3074 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3073)
  %3075 = icmp eq i32 1, %3074
  br i1 %3075, label %3076, label %3077

3076:                                             ; preds = %3071
  store i32 16, ptr %6, align 4, !tbaa !10
  br label %3458

3077:                                             ; preds = %3071, %3066
  %3078 = load ptr, ptr %3, align 8, !tbaa !5
  %3079 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3078, i32 0, i32 6
  %3080 = load i32, ptr %3079, align 4, !tbaa !17
  %3081 = icmp eq i32 %3080, 2401
  br i1 %3081, label %3087, label %3082

3082:                                             ; preds = %3077
  %3083 = load ptr, ptr %3, align 8, !tbaa !5
  %3084 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3083, i32 0, i32 6
  %3085 = load i32, ptr %3084, align 4, !tbaa !17
  %3086 = icmp eq i32 %3085, 2402
  br i1 %3086, label %3087, label %3093

3087:                                             ; preds = %3082, %3077
  %3088 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3089 = getelementptr inbounds [3 x i8], ptr %3088, i64 0, i64 0
  %3090 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3089)
  %3091 = icmp eq i32 0, %3090
  br i1 %3091, label %3092, label %3093

3092:                                             ; preds = %3087
  store i32 8, ptr %6, align 4, !tbaa !10
  br label %3457

3093:                                             ; preds = %3087, %3082
  %3094 = load ptr, ptr %3, align 8, !tbaa !5
  %3095 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3094, i32 0, i32 6
  %3096 = load i32, ptr %3095, align 4, !tbaa !17
  %3097 = icmp eq i32 %3096, 2501
  br i1 %3097, label %3098, label %3104

3098:                                             ; preds = %3093
  %3099 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3100 = getelementptr inbounds [3 x i8], ptr %3099, i64 0, i64 0
  %3101 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3100)
  %3102 = icmp eq i32 1, %3101
  br i1 %3102, label %3103, label %3104

3103:                                             ; preds = %3098
  store i32 16, ptr %6, align 4, !tbaa !10
  br label %3456

3104:                                             ; preds = %3098, %3093
  %3105 = load ptr, ptr %3, align 8, !tbaa !5
  %3106 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3105, i32 0, i32 6
  %3107 = load i32, ptr %3106, align 4, !tbaa !17
  %3108 = icmp eq i32 %3107, 2501
  br i1 %3108, label %3109, label %3115

3109:                                             ; preds = %3104
  %3110 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3111 = getelementptr inbounds [3 x i8], ptr %3110, i64 0, i64 0
  %3112 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3111)
  %3113 = icmp eq i32 0, %3112
  br i1 %3113, label %3114, label %3115

3114:                                             ; preds = %3109
  store i32 8, ptr %6, align 4, !tbaa !10
  br label %3455

3115:                                             ; preds = %3109, %3104
  %3116 = load ptr, ptr %3, align 8, !tbaa !5
  %3117 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3116, i32 0, i32 6
  %3118 = load i32, ptr %3117, align 4, !tbaa !17
  %3119 = icmp uge i32 %3118, 2001
  br i1 %3119, label %3120, label %3235

3120:                                             ; preds = %3115
  %3121 = load ptr, ptr %3, align 8, !tbaa !5
  %3122 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3121, i32 0, i32 6
  %3123 = load i32, ptr %3122, align 4, !tbaa !17
  %3124 = icmp ule i32 %3123, 2999
  br i1 %3124, label %3125, label %3235

3125:                                             ; preds = %3120
  %3126 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3127 = getelementptr inbounds [3 x i8], ptr %3126, i64 0, i64 0
  %3128 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3127)
  %3129 = icmp eq i32 2, %3128
  br i1 %3129, label %3130, label %3133

3130:                                             ; preds = %3125
  %3131 = load i32, ptr %7, align 4, !tbaa !10
  %3132 = icmp ne i32 %3131, 0
  br i1 %3132, label %3141, label %3133

3133:                                             ; preds = %3130, %3125
  %3134 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3135 = getelementptr inbounds [3 x i8], ptr %3134, i64 0, i64 0
  %3136 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3135)
  %3137 = icmp eq i32 12, %3136
  br i1 %3137, label %3138, label %3235

3138:                                             ; preds = %3133
  %3139 = load i32, ptr %8, align 4, !tbaa !10
  %3140 = icmp ne i32 %3139, 0
  br i1 %3140, label %3141, label %3235

3141:                                             ; preds = %3138, %3130
  %3142 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3143 = getelementptr inbounds [3 x i8], ptr %3142, i64 0, i64 0
  %3144 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3143)
  %3145 = icmp eq i32 2, %3144
  br i1 %3145, label %3146, label %3166

3146:                                             ; preds = %3141
  %3147 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %3148 = load i32, ptr %3147, align 1, !tbaa !26
  %3149 = urem i32 %3148, 2
  %3150 = icmp ne i32 %3149, 0
  br i1 %3150, label %3151, label %3165

3151:                                             ; preds = %3146
  %3152 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3153 = load i32, ptr %3152, align 1, !tbaa !23
  %3154 = and i32 %3153, 2048
  %3155 = icmp ugt i32 %3154, 0
  br i1 %3155, label %3156, label %3165

3156:                                             ; preds = %3151
  %3157 = load ptr, ptr %3, align 8, !tbaa !5
  %3158 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3159 = icmp ult i32 1, %3158
  br i1 %3159, label %3160, label %3162

3160:                                             ; preds = %3156
  %3161 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3163

3162:                                             ; preds = %3156
  br label %3163

3163:                                             ; preds = %3162, %3160
  %3164 = phi i32 [ %3161, %3160 ], [ 1, %3162 ]
  call void @libxsmm_handle_error(ptr noundef %3157, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 656, i32 noundef %3164)
  store i32 1, ptr %18, align 4
  br label %4054

3165:                                             ; preds = %3151, %3146
  br label %3187

3166:                                             ; preds = %3141
  %3167 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3168 = getelementptr inbounds [3 x i8], ptr %3167, i64 0, i64 0
  %3169 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3168)
  %3170 = icmp eq i32 12, %3169
  br i1 %3170, label %3171, label %3186

3171:                                             ; preds = %3166
  %3172 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %3173 = load i32, ptr %3172, align 1, !tbaa !26
  %3174 = urem i32 %3173, 4
  %3175 = icmp ne i32 %3174, 0
  br i1 %3175, label %3176, label %3185

3176:                                             ; preds = %3171
  %3177 = load ptr, ptr %3, align 8, !tbaa !5
  %3178 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3179 = icmp ult i32 1, %3178
  br i1 %3179, label %3180, label %3182

3180:                                             ; preds = %3176
  %3181 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3183

3182:                                             ; preds = %3176
  br label %3183

3183:                                             ; preds = %3182, %3180
  %3184 = phi i32 [ %3181, %3180 ], [ 1, %3182 ]
  call void @libxsmm_handle_error(ptr noundef %3177, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 661, i32 noundef %3184)
  store i32 1, ptr %18, align 4
  br label %4054

3185:                                             ; preds = %3171
  br label %3186

3186:                                             ; preds = %3185, %3166
  br label %3187

3187:                                             ; preds = %3186, %3165
  %3188 = load ptr, ptr %3, align 8, !tbaa !5
  %3189 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3188, i32 0, i32 6
  %3190 = load i32, ptr %3189, align 4, !tbaa !17
  %3191 = icmp ult i32 %3190, 2201
  br i1 %3191, label %3192, label %3201

3192:                                             ; preds = %3187
  %3193 = load ptr, ptr %3, align 8, !tbaa !5
  %3194 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3195 = icmp ult i32 1, %3194
  br i1 %3195, label %3196, label %3198

3196:                                             ; preds = %3192
  %3197 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3199

3198:                                             ; preds = %3192
  br label %3199

3199:                                             ; preds = %3198, %3196
  %3200 = phi i32 [ %3197, %3196 ], [ 1, %3198 ]
  call void @libxsmm_handle_error(ptr noundef %3193, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 670, i32 noundef %3200)
  store i32 1, ptr %18, align 4
  br label %4054

3201:                                             ; preds = %3187
  %3202 = load ptr, ptr %3, align 8, !tbaa !5
  %3203 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3202, i32 0, i32 6
  %3204 = load i32, ptr %3203, align 4, !tbaa !17
  %3205 = icmp eq i32 %3204, 2301
  br i1 %3205, label %3211, label %3206

3206:                                             ; preds = %3201
  %3207 = load ptr, ptr %3, align 8, !tbaa !5
  %3208 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3207, i32 0, i32 6
  %3209 = load i32, ptr %3208, align 4, !tbaa !17
  %3210 = icmp eq i32 %3209, 2302
  br i1 %3210, label %3211, label %3212

3211:                                             ; preds = %3206, %3201
  store i32 8, ptr %6, align 4, !tbaa !10
  br label %3233

3212:                                             ; preds = %3206
  %3213 = load ptr, ptr %3, align 8, !tbaa !5
  %3214 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3213, i32 0, i32 6
  %3215 = load i32, ptr %3214, align 4, !tbaa !17
  %3216 = icmp eq i32 %3215, 2201
  br i1 %3216, label %3222, label %3217

3217:                                             ; preds = %3212
  %3218 = load ptr, ptr %3, align 8, !tbaa !5
  %3219 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3218, i32 0, i32 6
  %3220 = load i32, ptr %3219, align 4, !tbaa !17
  %3221 = icmp eq i32 %3220, 2202
  br i1 %3221, label %3222, label %3223

3222:                                             ; preds = %3217, %3212
  store i32 4, ptr %6, align 4, !tbaa !10
  br label %3232

3223:                                             ; preds = %3217
  %3224 = load ptr, ptr %3, align 8, !tbaa !5
  %3225 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3226 = icmp ult i32 1, %3225
  br i1 %3226, label %3227, label %3229

3227:                                             ; preds = %3223
  %3228 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3230

3229:                                             ; preds = %3223
  br label %3230

3230:                                             ; preds = %3229, %3227
  %3231 = phi i32 [ %3228, %3227 ], [ 1, %3229 ]
  call void @libxsmm_handle_error(ptr noundef %3224, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 683, i32 noundef %3231)
  store i32 1, ptr %18, align 4
  br label %4054

3232:                                             ; preds = %3222
  br label %3233

3233:                                             ; preds = %3232, %3211
  br label %3234

3234:                                             ; preds = %3233
  br label %3454

3235:                                             ; preds = %3138, %3133, %3120, %3115
  %3236 = load ptr, ptr %3, align 8, !tbaa !5
  %3237 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3236, i32 0, i32 6
  %3238 = load i32, ptr %3237, align 4, !tbaa !17
  %3239 = icmp uge i32 %3238, 2001
  br i1 %3239, label %3240, label %3376

3240:                                             ; preds = %3235
  %3241 = load ptr, ptr %3, align 8, !tbaa !5
  %3242 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3241, i32 0, i32 6
  %3243 = load i32, ptr %3242, align 4, !tbaa !17
  %3244 = icmp ule i32 %3243, 2999
  br i1 %3244, label %3245, label %3376

3245:                                             ; preds = %3240
  %3246 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3247 = getelementptr inbounds [3 x i8], ptr %3246, i64 0, i64 0
  %3248 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3247)
  %3249 = icmp eq i32 2, %3248
  br i1 %3249, label %3250, label %3253

3250:                                             ; preds = %3245
  %3251 = load i32, ptr %7, align 4, !tbaa !10
  %3252 = icmp eq i32 %3251, 0
  br i1 %3252, label %3261, label %3253

3253:                                             ; preds = %3250, %3245
  %3254 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3255 = getelementptr inbounds [3 x i8], ptr %3254, i64 0, i64 0
  %3256 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3255)
  %3257 = icmp eq i32 12, %3256
  br i1 %3257, label %3258, label %3376

3258:                                             ; preds = %3253
  %3259 = load i32, ptr %8, align 4, !tbaa !10
  %3260 = icmp eq i32 %3259, 0
  br i1 %3260, label %3261, label %3376

3261:                                             ; preds = %3258, %3250
  %3262 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3263 = getelementptr inbounds [3 x i8], ptr %3262, i64 0, i64 0
  %3264 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3263)
  %3265 = icmp eq i32 2, %3264
  br i1 %3265, label %3266, label %3288

3266:                                             ; preds = %3261
  %3267 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3268 = load i32, ptr %3267, align 1, !tbaa !23
  %3269 = and i32 %3268, 2048
  %3270 = icmp eq i32 %3269, 0
  br i1 %3270, label %3271, label %3272

3271:                                             ; preds = %3266
  br label %3287

3272:                                             ; preds = %3266
  %3273 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %3274 = load i32, ptr %3273, align 1, !tbaa !26
  %3275 = urem i32 %3274, 4
  %3276 = icmp ne i32 %3275, 0
  br i1 %3276, label %3277, label %3286

3277:                                             ; preds = %3272
  %3278 = load ptr, ptr %3, align 8, !tbaa !5
  %3279 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3280 = icmp ult i32 1, %3279
  br i1 %3280, label %3281, label %3283

3281:                                             ; preds = %3277
  %3282 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3284

3283:                                             ; preds = %3277
  br label %3284

3284:                                             ; preds = %3283, %3281
  %3285 = phi i32 [ %3282, %3281 ], [ 1, %3283 ]
  call void @libxsmm_handle_error(ptr noundef %3278, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 704, i32 noundef %3285)
  store i32 1, ptr %18, align 4
  br label %4054

3286:                                             ; preds = %3272
  br label %3287

3287:                                             ; preds = %3286, %3271
  br label %3328

3288:                                             ; preds = %3261
  %3289 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3290 = getelementptr inbounds [3 x i8], ptr %3289, i64 0, i64 0
  %3291 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3290)
  %3292 = icmp eq i32 12, %3291
  br i1 %3292, label %3293, label %3327

3293:                                             ; preds = %3288
  %3294 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %3295 = load i32, ptr %3294, align 1, !tbaa !26
  %3296 = urem i32 %3295, 8
  %3297 = icmp ne i32 %3296, 0
  br i1 %3297, label %3298, label %3307

3298:                                             ; preds = %3293
  %3299 = load ptr, ptr %3, align 8, !tbaa !5
  %3300 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3301 = icmp ult i32 1, %3300
  br i1 %3301, label %3302, label %3304

3302:                                             ; preds = %3298
  %3303 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3305

3304:                                             ; preds = %3298
  br label %3305

3305:                                             ; preds = %3304, %3302
  %3306 = phi i32 [ %3303, %3302 ], [ 1, %3304 ]
  call void @libxsmm_handle_error(ptr noundef %3299, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 710, i32 noundef %3306)
  store i32 1, ptr %18, align 4
  br label %4054

3307:                                             ; preds = %3293
  %3308 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3309 = load i32, ptr %3308, align 1, !tbaa !23
  %3310 = and i32 %3309, 256
  %3311 = icmp ugt i32 %3310, 0
  br i1 %3311, label %3312, label %3326

3312:                                             ; preds = %3307
  %3313 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3314 = load i32, ptr %3313, align 1, !tbaa !23
  %3315 = and i32 %3314, 512
  %3316 = icmp eq i32 %3315, 0
  br i1 %3316, label %3317, label %3326

3317:                                             ; preds = %3312
  %3318 = load ptr, ptr %3, align 8, !tbaa !5
  %3319 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3320 = icmp ult i32 1, %3319
  br i1 %3320, label %3321, label %3323

3321:                                             ; preds = %3317
  %3322 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3324

3323:                                             ; preds = %3317
  br label %3324

3324:                                             ; preds = %3323, %3321
  %3325 = phi i32 [ %3322, %3321 ], [ 1, %3323 ]
  call void @libxsmm_handle_error(ptr noundef %3318, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 714, i32 noundef %3325)
  store i32 1, ptr %18, align 4
  br label %4054

3326:                                             ; preds = %3312, %3307
  br label %3327

3327:                                             ; preds = %3326, %3288
  br label %3328

3328:                                             ; preds = %3327, %3287
  %3329 = load ptr, ptr %3, align 8, !tbaa !5
  %3330 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3329, i32 0, i32 6
  %3331 = load i32, ptr %3330, align 4, !tbaa !17
  %3332 = icmp ult i32 %3331, 2201
  br i1 %3332, label %3333, label %3342

3333:                                             ; preds = %3328
  %3334 = load ptr, ptr %3, align 8, !tbaa !5
  %3335 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3336 = icmp ult i32 1, %3335
  br i1 %3336, label %3337, label %3339

3337:                                             ; preds = %3333
  %3338 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3340

3339:                                             ; preds = %3333
  br label %3340

3340:                                             ; preds = %3339, %3337
  %3341 = phi i32 [ %3338, %3337 ], [ 1, %3339 ]
  call void @libxsmm_handle_error(ptr noundef %3334, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 724, i32 noundef %3341)
  store i32 1, ptr %18, align 4
  br label %4054

3342:                                             ; preds = %3328
  %3343 = load ptr, ptr %3, align 8, !tbaa !5
  %3344 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3343, i32 0, i32 6
  %3345 = load i32, ptr %3344, align 4, !tbaa !17
  %3346 = icmp eq i32 %3345, 2301
  br i1 %3346, label %3352, label %3347

3347:                                             ; preds = %3342
  %3348 = load ptr, ptr %3, align 8, !tbaa !5
  %3349 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3348, i32 0, i32 6
  %3350 = load i32, ptr %3349, align 4, !tbaa !17
  %3351 = icmp eq i32 %3350, 2302
  br i1 %3351, label %3352, label %3353

3352:                                             ; preds = %3347, %3342
  store i32 8, ptr %6, align 4, !tbaa !10
  br label %3374

3353:                                             ; preds = %3347
  %3354 = load ptr, ptr %3, align 8, !tbaa !5
  %3355 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3354, i32 0, i32 6
  %3356 = load i32, ptr %3355, align 4, !tbaa !17
  %3357 = icmp eq i32 %3356, 2201
  br i1 %3357, label %3363, label %3358

3358:                                             ; preds = %3353
  %3359 = load ptr, ptr %3, align 8, !tbaa !5
  %3360 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3359, i32 0, i32 6
  %3361 = load i32, ptr %3360, align 4, !tbaa !17
  %3362 = icmp eq i32 %3361, 2202
  br i1 %3362, label %3363, label %3364

3363:                                             ; preds = %3358, %3353
  store i32 4, ptr %6, align 4, !tbaa !10
  br label %3373

3364:                                             ; preds = %3358
  %3365 = load ptr, ptr %3, align 8, !tbaa !5
  %3366 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3367 = icmp ult i32 1, %3366
  br i1 %3367, label %3368, label %3370

3368:                                             ; preds = %3364
  %3369 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3371

3370:                                             ; preds = %3364
  br label %3371

3371:                                             ; preds = %3370, %3368
  %3372 = phi i32 [ %3369, %3368 ], [ 1, %3370 ]
  call void @libxsmm_handle_error(ptr noundef %3365, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 736, i32 noundef %3372)
  store i32 1, ptr %18, align 4
  br label %4054

3373:                                             ; preds = %3363
  br label %3374

3374:                                             ; preds = %3373, %3352
  br label %3375

3375:                                             ; preds = %3374
  br label %3453

3376:                                             ; preds = %3258, %3253, %3240, %3235
  %3377 = load ptr, ptr %3, align 8, !tbaa !5
  %3378 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3377, i32 0, i32 6
  %3379 = load i32, ptr %3378, align 4, !tbaa !17
  %3380 = icmp eq i32 %3379, 3001
  br i1 %3380, label %3386, label %3381

3381:                                             ; preds = %3376
  %3382 = load ptr, ptr %3, align 8, !tbaa !5
  %3383 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3382, i32 0, i32 6
  %3384 = load i32, ptr %3383, align 4, !tbaa !17
  %3385 = icmp eq i32 %3384, 3003
  br i1 %3385, label %3386, label %3392

3386:                                             ; preds = %3381, %3376
  %3387 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3388 = getelementptr inbounds [3 x i8], ptr %3387, i64 0, i64 0
  %3389 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3388)
  %3390 = icmp eq i32 1, %3389
  br i1 %3390, label %3391, label %3392

3391:                                             ; preds = %3386
  store i32 4, ptr %6, align 4, !tbaa !10
  br label %3452

3392:                                             ; preds = %3386, %3381
  %3393 = load ptr, ptr %3, align 8, !tbaa !5
  %3394 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3393, i32 0, i32 6
  %3395 = load i32, ptr %3394, align 4, !tbaa !17
  %3396 = icmp eq i32 %3395, 3001
  br i1 %3396, label %3402, label %3397

3397:                                             ; preds = %3392
  %3398 = load ptr, ptr %3, align 8, !tbaa !5
  %3399 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3398, i32 0, i32 6
  %3400 = load i32, ptr %3399, align 4, !tbaa !17
  %3401 = icmp eq i32 %3400, 3003
  br i1 %3401, label %3402, label %3408

3402:                                             ; preds = %3397, %3392
  %3403 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3404 = getelementptr inbounds [3 x i8], ptr %3403, i64 0, i64 0
  %3405 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3404)
  %3406 = icmp eq i32 0, %3405
  br i1 %3406, label %3407, label %3408

3407:                                             ; preds = %3402
  store i32 2, ptr %6, align 4, !tbaa !10
  br label %3451

3408:                                             ; preds = %3402, %3397
  %3409 = load ptr, ptr %3, align 8, !tbaa !5
  %3410 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3409, i32 0, i32 6
  %3411 = load i32, ptr %3410, align 4, !tbaa !17
  %3412 = icmp eq i32 %3411, 3002
  br i1 %3412, label %3418, label %3413

3413:                                             ; preds = %3408
  %3414 = load ptr, ptr %3, align 8, !tbaa !5
  %3415 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3414, i32 0, i32 6
  %3416 = load i32, ptr %3415, align 4, !tbaa !17
  %3417 = icmp eq i32 %3416, 3004
  br i1 %3417, label %3418, label %3424

3418:                                             ; preds = %3413, %3408
  %3419 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3420 = getelementptr inbounds [3 x i8], ptr %3419, i64 0, i64 0
  %3421 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3420)
  %3422 = icmp eq i32 1, %3421
  br i1 %3422, label %3423, label %3424

3423:                                             ; preds = %3418
  store i32 8, ptr %6, align 4, !tbaa !10
  br label %3450

3424:                                             ; preds = %3418, %3413
  %3425 = load ptr, ptr %3, align 8, !tbaa !5
  %3426 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3425, i32 0, i32 6
  %3427 = load i32, ptr %3426, align 4, !tbaa !17
  %3428 = icmp eq i32 %3427, 3002
  br i1 %3428, label %3434, label %3429

3429:                                             ; preds = %3424
  %3430 = load ptr, ptr %3, align 8, !tbaa !5
  %3431 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3430, i32 0, i32 6
  %3432 = load i32, ptr %3431, align 4, !tbaa !17
  %3433 = icmp eq i32 %3432, 3004
  br i1 %3433, label %3434, label %3440

3434:                                             ; preds = %3429, %3424
  %3435 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3436 = getelementptr inbounds [3 x i8], ptr %3435, i64 0, i64 0
  %3437 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3436)
  %3438 = icmp eq i32 0, %3437
  br i1 %3438, label %3439, label %3440

3439:                                             ; preds = %3434
  store i32 4, ptr %6, align 4, !tbaa !10
  br label %3449

3440:                                             ; preds = %3434, %3429
  %3441 = load ptr, ptr %3, align 8, !tbaa !5
  %3442 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3443 = icmp ult i32 1, %3442
  br i1 %3443, label %3444, label %3446

3444:                                             ; preds = %3440
  %3445 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3447

3446:                                             ; preds = %3440
  br label %3447

3447:                                             ; preds = %3446, %3444
  %3448 = phi i32 [ %3445, %3444 ], [ 1, %3446 ]
  call void @libxsmm_handle_error(ptr noundef %3441, i32 noundef 90004, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 754, i32 noundef %3448)
  store i32 1, ptr %18, align 4
  br label %4054

3449:                                             ; preds = %3439
  br label %3450

3450:                                             ; preds = %3449, %3423
  br label %3451

3451:                                             ; preds = %3450, %3407
  br label %3452

3452:                                             ; preds = %3451, %3391
  br label %3453

3453:                                             ; preds = %3452, %3375
  br label %3454

3454:                                             ; preds = %3453, %3234
  br label %3455

3455:                                             ; preds = %3454, %3114
  br label %3456

3456:                                             ; preds = %3455, %3103
  br label %3457

3457:                                             ; preds = %3456, %3092
  br label %3458

3458:                                             ; preds = %3457, %3076
  br label %3459

3459:                                             ; preds = %3458, %3060
  br label %3460

3460:                                             ; preds = %3459, %3044
  br label %3461

3461:                                             ; preds = %3460, %3028
  br label %3462

3462:                                             ; preds = %3461, %3012
  br label %3463

3463:                                             ; preds = %3462, %2996
  br label %3464

3464:                                             ; preds = %3463, %2985
  br label %3465

3465:                                             ; preds = %3464, %2974
  br label %3466

3466:                                             ; preds = %3465, %2963
  br label %3467

3467:                                             ; preds = %3466, %2952
  br label %3468

3468:                                             ; preds = %3467, %2941
  br label %3469

3469:                                             ; preds = %3468
  br label %3470

3470:                                             ; preds = %3469, %2890
  br label %3471

3471:                                             ; preds = %3470, %2834
  br label %3472

3472:                                             ; preds = %3471, %2778
  br label %3473

3473:                                             ; preds = %3472, %2732
  br label %3474

3474:                                             ; preds = %3473, %2686
  br label %3475

3475:                                             ; preds = %3474, %2633
  br label %3476

3476:                                             ; preds = %3475, %2577
  br label %3477

3477:                                             ; preds = %3476, %2509
  br label %3478

3478:                                             ; preds = %3477, %2458
  br label %3479

3479:                                             ; preds = %3478, %2432
  br label %3480

3480:                                             ; preds = %3479, %2390
  br label %3481

3481:                                             ; preds = %3480, %2343
  br label %3482

3482:                                             ; preds = %3481, %2269
  br label %3483

3483:                                             ; preds = %3482, %2224
  br label %3484

3484:                                             ; preds = %3483, %2194
  br label %3485

3485:                                             ; preds = %3484, %2159
  br label %3486

3486:                                             ; preds = %3485, %2148
  br label %3487

3487:                                             ; preds = %3486, %2137
  br label %3488

3488:                                             ; preds = %3487, %2126
  br label %3489

3489:                                             ; preds = %3488, %2115
  br label %3490

3490:                                             ; preds = %3489, %2104
  br label %3491

3491:                                             ; preds = %3490, %2093
  br label %3492

3492:                                             ; preds = %3491, %2082
  br label %3493

3493:                                             ; preds = %3492, %2071
  br label %3494

3494:                                             ; preds = %3493, %2037
  br label %3495

3495:                                             ; preds = %3494, %1995
  br label %3496

3496:                                             ; preds = %3495, %1965
  br label %3497

3497:                                             ; preds = %3496, %1935
  br label %3498

3498:                                             ; preds = %3497, %1924
  br label %3499

3499:                                             ; preds = %3498, %1913
  br label %3500

3500:                                             ; preds = %3499, %1876
  br label %3501

3501:                                             ; preds = %3500, %1851
  br label %3502

3502:                                             ; preds = %3501, %1826
  br label %3503

3503:                                             ; preds = %3502, %1815
  br label %3504

3504:                                             ; preds = %3503, %1804
  %3505 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3506 = load i32, ptr %3505, align 1, !tbaa !23
  %3507 = and i32 %3506, 1
  %3508 = icmp eq i32 %3507, 1
  br i1 %3508, label %3509, label %3579

3509:                                             ; preds = %3504
  %3510 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 3
  %3511 = load i32, ptr %3510, align 1, !tbaa !19
  %3512 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %3513 = load i32, ptr %3512, align 1, !tbaa !26
  %3514 = icmp ult i32 %3511, %3513
  br i1 %3514, label %3515, label %3527

3515:                                             ; preds = %3509
  %3516 = load i32, ptr %17, align 4, !tbaa !10
  %3517 = icmp eq i32 %3516, 0
  br i1 %3517, label %3518, label %3527

3518:                                             ; preds = %3515
  %3519 = load ptr, ptr %3, align 8, !tbaa !5
  %3520 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3521 = icmp ult i32 1, %3520
  br i1 %3521, label %3522, label %3524

3522:                                             ; preds = %3518
  %3523 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3525

3524:                                             ; preds = %3518
  br label %3525

3525:                                             ; preds = %3524, %3522
  %3526 = phi i32 [ %3523, %3522 ], [ 1, %3524 ]
  call void @libxsmm_handle_error(ptr noundef %3519, i32 noundef 90050, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 761, i32 noundef %3526)
  store i32 1, ptr %18, align 4
  br label %4054

3527:                                             ; preds = %3515, %3509
  %3528 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3529 = getelementptr inbounds [3 x i8], ptr %3528, i64 0, i64 0
  %3530 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3529)
  %3531 = icmp ne i32 1, %3530
  br i1 %3531, label %3532, label %3563

3532:                                             ; preds = %3527
  %3533 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3534 = getelementptr inbounds [3 x i8], ptr %3533, i64 0, i64 0
  %3535 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3534)
  %3536 = icmp ne i32 0, %3535
  br i1 %3536, label %3537, label %3563

3537:                                             ; preds = %3532
  %3538 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3539 = getelementptr inbounds [3 x i8], ptr %3538, i64 0, i64 0
  %3540 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3539)
  %3541 = icmp ne i32 2, %3540
  br i1 %3541, label %3542, label %3563

3542:                                             ; preds = %3537
  %3543 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3544 = getelementptr inbounds [3 x i8], ptr %3543, i64 0, i64 0
  %3545 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3544)
  %3546 = icmp eq i32 3, %3545
  br i1 %3546, label %3547, label %3553

3547:                                             ; preds = %3542
  %3548 = load ptr, ptr %3, align 8, !tbaa !5
  %3549 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3548, i32 0, i32 6
  %3550 = load i32, ptr %3549, align 4, !tbaa !17
  %3551 = icmp uge i32 %3550, 1106
  br i1 %3551, label %3552, label %3553

3552:                                             ; preds = %3547
  br label %3562

3553:                                             ; preds = %3547, %3542
  %3554 = load ptr, ptr %3, align 8, !tbaa !5
  %3555 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3556 = icmp ult i32 1, %3555
  br i1 %3556, label %3557, label %3559

3557:                                             ; preds = %3553
  %3558 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3560

3559:                                             ; preds = %3553
  br label %3560

3560:                                             ; preds = %3559, %3557
  %3561 = phi i32 [ %3558, %3557 ], [ 1, %3559 ]
  call void @libxsmm_handle_error(ptr noundef %3554, i32 noundef 90033, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 770, i32 noundef %3561)
  store i32 1, ptr %18, align 4
  br label %4054

3562:                                             ; preds = %3552
  br label %3578

3563:                                             ; preds = %3537, %3532, %3527
  %3564 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3565 = load i32, ptr %3564, align 1, !tbaa !23
  %3566 = and i32 %3565, 2048
  %3567 = icmp eq i32 %3566, 2048
  br i1 %3567, label %3568, label %3577

3568:                                             ; preds = %3563
  %3569 = load ptr, ptr %3, align 8, !tbaa !5
  %3570 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3571 = icmp ult i32 1, %3570
  br i1 %3571, label %3572, label %3574

3572:                                             ; preds = %3568
  %3573 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3575

3574:                                             ; preds = %3568
  br label %3575

3575:                                             ; preds = %3574, %3572
  %3576 = phi i32 [ %3573, %3572 ], [ 1, %3574 ]
  call void @libxsmm_handle_error(ptr noundef %3569, i32 noundef 90041, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 776, i32 noundef %3576)
  store i32 1, ptr %18, align 4
  br label %4054

3577:                                             ; preds = %3563
  br label %3578

3578:                                             ; preds = %3577, %3562
  br label %3598

3579:                                             ; preds = %3504
  %3580 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 3
  %3581 = load i32, ptr %3580, align 1, !tbaa !19
  %3582 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 0
  %3583 = load i32, ptr %3582, align 1, !tbaa !24
  %3584 = icmp ult i32 %3581, %3583
  br i1 %3584, label %3585, label %3597

3585:                                             ; preds = %3579
  %3586 = load i32, ptr %17, align 4, !tbaa !10
  %3587 = icmp eq i32 %3586, 0
  br i1 %3587, label %3588, label %3597

3588:                                             ; preds = %3585
  %3589 = load ptr, ptr %3, align 8, !tbaa !5
  %3590 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3591 = icmp ult i32 1, %3590
  br i1 %3591, label %3592, label %3594

3592:                                             ; preds = %3588
  %3593 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3595

3594:                                             ; preds = %3588
  br label %3595

3595:                                             ; preds = %3594, %3592
  %3596 = phi i32 [ %3593, %3592 ], [ 1, %3594 ]
  call void @libxsmm_handle_error(ptr noundef %3589, i32 noundef 90007, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 782, i32 noundef %3596)
  store i32 1, ptr %18, align 4
  br label %4054

3597:                                             ; preds = %3585, %3579
  br label %3598

3598:                                             ; preds = %3597, %3578
  %3599 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3600 = load i32, ptr %3599, align 1, !tbaa !23
  %3601 = and i32 %3600, 2
  %3602 = icmp ugt i32 %3601, 0
  br i1 %3602, label %3603, label %3622

3603:                                             ; preds = %3598
  %3604 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 4
  %3605 = load i32, ptr %3604, align 1, !tbaa !21
  %3606 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 1
  %3607 = load i32, ptr %3606, align 1, !tbaa !25
  %3608 = icmp ult i32 %3605, %3607
  br i1 %3608, label %3609, label %3621

3609:                                             ; preds = %3603
  %3610 = load i32, ptr %17, align 4, !tbaa !10
  %3611 = icmp eq i32 %3610, 0
  br i1 %3611, label %3612, label %3621

3612:                                             ; preds = %3609
  %3613 = load ptr, ptr %3, align 8, !tbaa !5
  %3614 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3615 = icmp ult i32 1, %3614
  br i1 %3615, label %3616, label %3618

3616:                                             ; preds = %3612
  %3617 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3619

3618:                                             ; preds = %3612
  br label %3619

3619:                                             ; preds = %3618, %3616
  %3620 = phi i32 [ %3617, %3616 ], [ 1, %3618 ]
  call void @libxsmm_handle_error(ptr noundef %3613, i32 noundef 90040, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 790, i32 noundef %3620)
  store i32 1, ptr %18, align 4
  br label %4054

3621:                                             ; preds = %3609, %3603
  br label %3641

3622:                                             ; preds = %3598
  %3623 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 4
  %3624 = load i32, ptr %3623, align 1, !tbaa !21
  %3625 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 2
  %3626 = load i32, ptr %3625, align 1, !tbaa !26
  %3627 = icmp ult i32 %3624, %3626
  br i1 %3627, label %3628, label %3640

3628:                                             ; preds = %3622
  %3629 = load i32, ptr %17, align 4, !tbaa !10
  %3630 = icmp eq i32 %3629, 0
  br i1 %3630, label %3631, label %3640

3631:                                             ; preds = %3628
  %3632 = load ptr, ptr %3, align 8, !tbaa !5
  %3633 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3634 = icmp ult i32 1, %3633
  br i1 %3634, label %3635, label %3637

3635:                                             ; preds = %3631
  %3636 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3638

3637:                                             ; preds = %3631
  br label %3638

3638:                                             ; preds = %3637, %3635
  %3639 = phi i32 [ %3636, %3635 ], [ 1, %3637 ]
  call void @libxsmm_handle_error(ptr noundef %3632, i32 noundef 90008, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 795, i32 noundef %3639)
  store i32 1, ptr %18, align 4
  br label %4054

3640:                                             ; preds = %3628, %3622
  br label %3641

3641:                                             ; preds = %3640, %3621
  %3642 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 5
  %3643 = load i32, ptr %3642, align 1, !tbaa !22
  %3644 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 0
  %3645 = load i32, ptr %3644, align 1, !tbaa !24
  %3646 = icmp ult i32 %3643, %3645
  br i1 %3646, label %3647, label %3659

3647:                                             ; preds = %3641
  %3648 = load i32, ptr %17, align 4, !tbaa !10
  %3649 = icmp eq i32 %3648, 0
  br i1 %3649, label %3650, label %3659

3650:                                             ; preds = %3647
  %3651 = load ptr, ptr %3, align 8, !tbaa !5
  %3652 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3653 = icmp ult i32 1, %3652
  br i1 %3653, label %3654, label %3656

3654:                                             ; preds = %3650
  %3655 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3657

3656:                                             ; preds = %3650
  br label %3657

3657:                                             ; preds = %3656, %3654
  %3658 = phi i32 [ %3655, %3654 ], [ 1, %3656 ]
  call void @libxsmm_handle_error(ptr noundef %3651, i32 noundef 90009, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 802, i32 noundef %3658)
  store i32 1, ptr %18, align 4
  br label %4054

3659:                                             ; preds = %3647, %3641
  %3660 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3661 = load i32, ptr %3660, align 1, !tbaa !23
  %3662 = and i32 %3661, 1
  %3663 = icmp ugt i32 %3662, 0
  br i1 %3663, label %3664, label %3716

3664:                                             ; preds = %3659
  %3665 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3666 = getelementptr inbounds [3 x i8], ptr %3665, i64 0, i64 0
  %3667 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3666)
  %3668 = icmp ne i32 1, %3667
  br i1 %3668, label %3669, label %3700

3669:                                             ; preds = %3664
  %3670 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3671 = getelementptr inbounds [3 x i8], ptr %3670, i64 0, i64 0
  %3672 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3671)
  %3673 = icmp ne i32 0, %3672
  br i1 %3673, label %3674, label %3700

3674:                                             ; preds = %3669
  %3675 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3676 = getelementptr inbounds [3 x i8], ptr %3675, i64 0, i64 0
  %3677 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3676)
  %3678 = icmp ne i32 2, %3677
  br i1 %3678, label %3679, label %3700

3679:                                             ; preds = %3674
  %3680 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3681 = getelementptr inbounds [3 x i8], ptr %3680, i64 0, i64 0
  %3682 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3681)
  %3683 = icmp eq i32 3, %3682
  br i1 %3683, label %3684, label %3690

3684:                                             ; preds = %3679
  %3685 = load ptr, ptr %3, align 8, !tbaa !5
  %3686 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3685, i32 0, i32 6
  %3687 = load i32, ptr %3686, align 4, !tbaa !17
  %3688 = icmp uge i32 %3687, 1106
  br i1 %3688, label %3689, label %3690

3689:                                             ; preds = %3684
  br label %3699

3690:                                             ; preds = %3684, %3679
  %3691 = load ptr, ptr %3, align 8, !tbaa !5
  %3692 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3693 = icmp ult i32 1, %3692
  br i1 %3693, label %3694, label %3696

3694:                                             ; preds = %3690
  %3695 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3697

3696:                                             ; preds = %3690
  br label %3697

3697:                                             ; preds = %3696, %3694
  %3698 = phi i32 [ %3695, %3694 ], [ 1, %3696 ]
  call void @libxsmm_handle_error(ptr noundef %3691, i32 noundef 90049, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 814, i32 noundef %3698)
  store i32 1, ptr %18, align 4
  br label %4054

3699:                                             ; preds = %3689
  br label %3715

3700:                                             ; preds = %3674, %3669, %3664
  %3701 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3702 = load i32, ptr %3701, align 1, !tbaa !23
  %3703 = and i32 %3702, 2048
  %3704 = icmp eq i32 %3703, 2048
  br i1 %3704, label %3705, label %3714

3705:                                             ; preds = %3700
  %3706 = load ptr, ptr %3, align 8, !tbaa !5
  %3707 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3708 = icmp ult i32 1, %3707
  br i1 %3708, label %3709, label %3711

3709:                                             ; preds = %3705
  %3710 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3712

3711:                                             ; preds = %3705
  br label %3712

3712:                                             ; preds = %3711, %3709
  %3713 = phi i32 [ %3710, %3709 ], [ 1, %3711 ]
  call void @libxsmm_handle_error(ptr noundef %3706, i32 noundef 90041, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 820, i32 noundef %3713)
  store i32 1, ptr %18, align 4
  br label %4054

3714:                                             ; preds = %3700
  br label %3715

3715:                                             ; preds = %3714, %3699
  br label %3716

3716:                                             ; preds = %3715, %3659
  %3717 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3718 = load i32, ptr %3717, align 1, !tbaa !23
  %3719 = and i32 %3718, 2
  %3720 = icmp ugt i32 %3719, 0
  br i1 %3720, label %3721, label %3772

3721:                                             ; preds = %3716
  %3722 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3723 = getelementptr inbounds [3 x i8], ptr %3722, i64 0, i64 0
  %3724 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3723)
  %3725 = icmp eq i32 10, %3724
  br i1 %3725, label %3731, label %3726

3726:                                             ; preds = %3721
  %3727 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3728 = getelementptr inbounds [3 x i8], ptr %3727, i64 0, i64 0
  %3729 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3728)
  %3730 = icmp eq i32 12, %3729
  br i1 %3730, label %3731, label %3740

3731:                                             ; preds = %3726, %3721
  %3732 = load ptr, ptr %3, align 8, !tbaa !5
  %3733 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3734 = icmp ult i32 1, %3733
  br i1 %3734, label %3735, label %3737

3735:                                             ; preds = %3731
  %3736 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3738

3737:                                             ; preds = %3731
  br label %3738

3738:                                             ; preds = %3737, %3735
  %3739 = phi i32 [ %3736, %3735 ], [ 1, %3737 ]
  call void @libxsmm_handle_error(ptr noundef %3732, i32 noundef 90039, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 830, i32 noundef %3739)
  store i32 1, ptr %18, align 4
  br label %4054

3740:                                             ; preds = %3726
  br label %3741

3741:                                             ; preds = %3740
  %3742 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3743 = getelementptr inbounds [3 x i8], ptr %3742, i64 0, i64 0
  %3744 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3743)
  %3745 = icmp eq i32 2, %3744
  br i1 %3745, label %3746, label %3771

3746:                                             ; preds = %3741
  %3747 = load i32, ptr %7, align 4, !tbaa !10
  %3748 = icmp eq i32 %3747, 0
  br i1 %3748, label %3749, label %3755

3749:                                             ; preds = %3746
  %3750 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3751 = load i32, ptr %3750, align 1, !tbaa !23
  %3752 = and i32 %3751, 4096
  %3753 = icmp ugt i32 %3752, 0
  br i1 %3753, label %3754, label %3755

3754:                                             ; preds = %3749
  br label %3770

3755:                                             ; preds = %3749, %3746
  %3756 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3757 = load i32, ptr %3756, align 1, !tbaa !23
  %3758 = and i32 %3757, 2048
  %3759 = icmp ugt i32 %3758, 0
  br i1 %3759, label %3760, label %3769

3760:                                             ; preds = %3755
  %3761 = load ptr, ptr %3, align 8, !tbaa !5
  %3762 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3763 = icmp ult i32 1, %3762
  br i1 %3763, label %3764, label %3766

3764:                                             ; preds = %3760
  %3765 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3767

3766:                                             ; preds = %3760
  br label %3767

3767:                                             ; preds = %3766, %3764
  %3768 = phi i32 [ %3765, %3764 ], [ 1, %3766 ]
  call void @libxsmm_handle_error(ptr noundef %3761, i32 noundef 90039, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 839, i32 noundef %3768)
  store i32 1, ptr %18, align 4
  br label %4054

3769:                                             ; preds = %3755
  br label %3770

3770:                                             ; preds = %3769, %3754
  br label %3771

3771:                                             ; preds = %3770, %3741
  br label %3772

3772:                                             ; preds = %3771, %3716
  %3773 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3774 = load i32, ptr %3773, align 1, !tbaa !23
  %3775 = and i32 %3774, 4096
  %3776 = icmp ugt i32 %3775, 0
  br i1 %3776, label %3777, label %3802

3777:                                             ; preds = %3772
  %3778 = load i32, ptr %7, align 4, !tbaa !10
  %3779 = icmp eq i32 %3778, 0
  br i1 %3779, label %3780, label %3786

3780:                                             ; preds = %3777
  %3781 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3782 = load i32, ptr %3781, align 1, !tbaa !23
  %3783 = and i32 %3782, 2
  %3784 = icmp ugt i32 %3783, 0
  br i1 %3784, label %3785, label %3786

3785:                                             ; preds = %3780
  br label %3801

3786:                                             ; preds = %3780, %3777
  %3787 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3788 = load i32, ptr %3787, align 1, !tbaa !23
  %3789 = and i32 %3788, 2048
  %3790 = icmp ugt i32 %3789, 0
  br i1 %3790, label %3791, label %3800

3791:                                             ; preds = %3786
  %3792 = load ptr, ptr %3, align 8, !tbaa !5
  %3793 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %3794 = icmp ult i32 1, %3793
  br i1 %3794, label %3795, label %3797

3795:                                             ; preds = %3791
  %3796 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %3798

3797:                                             ; preds = %3791
  br label %3798

3798:                                             ; preds = %3797, %3795
  %3799 = phi i32 [ %3796, %3795 ], [ 1, %3797 ]
  call void @libxsmm_handle_error(ptr noundef %3792, i32 noundef 90042, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 849, i32 noundef %3799)
  store i32 1, ptr %18, align 4
  br label %4054

3800:                                             ; preds = %3786
  br label %3801

3801:                                             ; preds = %3800, %3785
  br label %3802

3802:                                             ; preds = %3801, %3772
  %3803 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 3
  %3804 = load i32, ptr %3803, align 1, !tbaa !19
  %3805 = load i32, ptr %6, align 4, !tbaa !10
  %3806 = urem i32 %3804, %3805
  %3807 = icmp ne i32 0, %3806
  br i1 %3807, label %3808, label %3812

3808:                                             ; preds = %3802
  %3809 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3810 = load i32, ptr %3809, align 1, !tbaa !23
  %3811 = and i32 %3810, -9
  store i32 %3811, ptr %3809, align 1, !tbaa !23
  br label %3812

3812:                                             ; preds = %3808, %3802
  %3813 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 5
  %3814 = load i32, ptr %3813, align 1, !tbaa !22
  %3815 = load i32, ptr %6, align 4, !tbaa !10
  %3816 = urem i32 %3814, %3815
  %3817 = icmp ne i32 0, %3816
  br i1 %3817, label %3818, label %3822

3818:                                             ; preds = %3812
  %3819 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3820 = load i32, ptr %3819, align 1, !tbaa !23
  %3821 = and i32 %3820, -17
  store i32 %3821, ptr %3819, align 1, !tbaa !23
  br label %3822

3822:                                             ; preds = %3818, %3812
  %3823 = load ptr, ptr %3, align 8, !tbaa !5
  %3824 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3823, i32 0, i32 6
  %3825 = load i32, ptr %3824, align 4, !tbaa !17
  %3826 = icmp ule i32 %3825, 1
  br i1 %3826, label %3827, label %3829

3827:                                             ; preds = %3822
  %3828 = load ptr, ptr %3, align 8, !tbaa !5
  call void @libxsmm_generator_gemm_noarch_kernel(ptr noundef %3828, ptr noundef %5)
  br label %4050

3829:                                             ; preds = %3822
  %3830 = load ptr, ptr %3, align 8, !tbaa !5
  %3831 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3830, i32 0, i32 6
  %3832 = load i32, ptr %3831, align 4, !tbaa !17
  %3833 = icmp ule i32 %3832, 1999
  br i1 %3833, label %3834, label %3942

3834:                                             ; preds = %3829
  %3835 = load ptr, ptr %3, align 8, !tbaa !5
  %3836 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3835, i32 0, i32 6
  %3837 = load i32, ptr %3836, align 4, !tbaa !17
  %3838 = icmp uge i32 %3837, 1104
  br i1 %3838, label %3839, label %3881

3839:                                             ; preds = %3834
  %3840 = load ptr, ptr %3, align 8, !tbaa !5
  %3841 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3840, i32 0, i32 6
  %3842 = load i32, ptr %3841, align 4, !tbaa !17
  %3843 = icmp ult i32 %3842, 1999
  br i1 %3843, label %3844, label %3881

3844:                                             ; preds = %3839
  %3845 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3846 = getelementptr inbounds [3 x i8], ptr %3845, i64 0, i64 0
  %3847 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3846)
  %3848 = icmp eq i32 2, %3847
  br i1 %3848, label %3864, label %3849

3849:                                             ; preds = %3844
  %3850 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3851 = getelementptr inbounds [3 x i8], ptr %3850, i64 0, i64 0
  %3852 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3851)
  %3853 = icmp eq i32 3, %3852
  br i1 %3853, label %3854, label %3859

3854:                                             ; preds = %3849
  %3855 = load ptr, ptr %3, align 8, !tbaa !5
  %3856 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3855, i32 0, i32 6
  %3857 = load i32, ptr %3856, align 4, !tbaa !17
  %3858 = icmp uge i32 %3857, 1105
  br i1 %3858, label %3864, label %3859

3859:                                             ; preds = %3854, %3849
  %3860 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3861 = getelementptr inbounds [3 x i8], ptr %3860, i64 0, i64 0
  %3862 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3861)
  %3863 = icmp eq i32 12, %3862
  br i1 %3863, label %3864, label %3881

3864:                                             ; preds = %3859, %3854, %3844
  %3865 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3866 = load i32, ptr %3865, align 1, !tbaa !23
  %3867 = and i32 %3866, 2048
  %3868 = icmp ne i32 %3867, 0
  br i1 %3868, label %3879, label %3869

3869:                                             ; preds = %3864
  %3870 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3871 = load i32, ptr %3870, align 1, !tbaa !23
  %3872 = and i32 %3871, 2048
  %3873 = icmp eq i32 %3872, 0
  br i1 %3873, label %3874, label %3881

3874:                                             ; preds = %3869
  %3875 = load ptr, ptr %3, align 8, !tbaa !5
  %3876 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3875, i32 0, i32 6
  %3877 = load i32, ptr %3876, align 4, !tbaa !17
  %3878 = icmp uge i32 %3877, 1106
  br i1 %3878, label %3879, label %3881

3879:                                             ; preds = %3874, %3864
  %3880 = load ptr, ptr %3, align 8, !tbaa !5
  call void @libxsmm_generator_gemm_amx_kernel_wrapper(ptr noundef %3880, ptr noundef %5)
  br label %3941

3881:                                             ; preds = %3874, %3869, %3859, %3839, %3834
  %3882 = load ptr, ptr %3, align 8, !tbaa !5
  %3883 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3882, i32 0, i32 6
  %3884 = load i32, ptr %3883, align 4, !tbaa !17
  %3885 = icmp uge i32 %3884, 1104
  br i1 %3885, label %3886, label %3917

3886:                                             ; preds = %3881
  %3887 = load ptr, ptr %3, align 8, !tbaa !5
  %3888 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3887, i32 0, i32 6
  %3889 = load i32, ptr %3888, align 4, !tbaa !17
  %3890 = icmp ult i32 %3889, 1999
  br i1 %3890, label %3891, label %3917

3891:                                             ; preds = %3886
  %3892 = load i32, ptr %14, align 4, !tbaa !10
  %3893 = icmp ugt i32 %3892, 0
  br i1 %3893, label %3915, label %3894

3894:                                             ; preds = %3891
  %3895 = load i32, ptr %16, align 4, !tbaa !10
  %3896 = icmp ugt i32 %3895, 0
  br i1 %3896, label %3915, label %3897

3897:                                             ; preds = %3894
  %3898 = load i32, ptr %11, align 4, !tbaa !10
  %3899 = icmp ugt i32 %3898, 0
  br i1 %3899, label %3915, label %3900

3900:                                             ; preds = %3897
  %3901 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3902 = getelementptr inbounds [3 x i8], ptr %3901, i64 0, i64 0
  %3903 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3902)
  %3904 = icmp eq i32 2, %3903
  br i1 %3904, label %3915, label %3905

3905:                                             ; preds = %3900
  %3906 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3907 = getelementptr inbounds [3 x i8], ptr %3906, i64 0, i64 0
  %3908 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3907)
  %3909 = icmp eq i32 4, %3908
  br i1 %3909, label %3915, label %3910

3910:                                             ; preds = %3905
  %3911 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %3912 = getelementptr inbounds [3 x i8], ptr %3911, i64 0, i64 0
  %3913 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3912)
  %3914 = icmp eq i32 5, %3913
  br i1 %3914, label %3915, label %3917

3915:                                             ; preds = %3910, %3905, %3900, %3897, %3894, %3891
  %3916 = load ptr, ptr %3, align 8, !tbaa !5
  call void @libxsmm_generator_gemm_amx_kernel_wrapper(ptr noundef %3916, ptr noundef %5)
  br label %3940

3917:                                             ; preds = %3910, %3886, %3881
  %3918 = load ptr, ptr %3, align 8, !tbaa !5
  %3919 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3918, i32 0, i32 6
  %3920 = load i32, ptr %3919, align 4, !tbaa !17
  %3921 = icmp uge i32 %3920, 1105
  br i1 %3921, label %3922, label %3937

3922:                                             ; preds = %3917
  %3923 = load ptr, ptr %3, align 8, !tbaa !5
  %3924 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3923, i32 0, i32 6
  %3925 = load i32, ptr %3924, align 4, !tbaa !17
  %3926 = icmp ult i32 %3925, 1999
  br i1 %3926, label %3927, label %3937

3927:                                             ; preds = %3922
  %3928 = load i32, ptr %15, align 4, !tbaa !10
  %3929 = icmp ugt i32 %3928, 0
  br i1 %3929, label %3930, label %3937

3930:                                             ; preds = %3927
  %3931 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 6
  %3932 = load i32, ptr %3931, align 1, !tbaa !23
  %3933 = and i32 %3932, 2048
  %3934 = icmp ugt i32 %3933, 0
  br i1 %3934, label %3935, label %3937

3935:                                             ; preds = %3930
  %3936 = load ptr, ptr %3, align 8, !tbaa !5
  call void @libxsmm_generator_gemm_amx_kernel_wrapper(ptr noundef %3936, ptr noundef %5)
  br label %3939

3937:                                             ; preds = %3930, %3927, %3922, %3917
  %3938 = load ptr, ptr %3, align 8, !tbaa !5
  call void @libxsmm_generator_gemm_sse_avx_avx2_avx512_kernel_wrapper(ptr noundef %3938, ptr noundef %5)
  br label %3939

3939:                                             ; preds = %3937, %3935
  br label %3940

3940:                                             ; preds = %3939, %3915
  br label %3941

3941:                                             ; preds = %3940, %3879
  br label %4049

3942:                                             ; preds = %3829
  %3943 = load ptr, ptr %3, align 8, !tbaa !5
  %3944 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3943, i32 0, i32 6
  %3945 = load i32, ptr %3944, align 4, !tbaa !17
  %3946 = icmp eq i32 %3945, 2001
  br i1 %3946, label %3952, label %3947

3947:                                             ; preds = %3942
  %3948 = load ptr, ptr %3, align 8, !tbaa !5
  %3949 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3948, i32 0, i32 6
  %3950 = load i32, ptr %3949, align 4, !tbaa !17
  %3951 = icmp eq i32 %3950, 2002
  br i1 %3951, label %3952, label %3954

3952:                                             ; preds = %3947, %3942
  %3953 = load ptr, ptr %3, align 8, !tbaa !5
  call void @libxsmm_generator_gemm_aarch64_kernel(ptr noundef %3953, ptr noundef %5)
  br label %4048

3954:                                             ; preds = %3947
  %3955 = load ptr, ptr %3, align 8, !tbaa !5
  %3956 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3955, i32 0, i32 6
  %3957 = load i32, ptr %3956, align 4, !tbaa !17
  %3958 = icmp eq i32 %3957, 2101
  br i1 %3958, label %3959, label %3961

3959:                                             ; preds = %3954
  %3960 = load ptr, ptr %3, align 8, !tbaa !5
  call void @libxsmm_generator_gemm_aarch64_kernel(ptr noundef %3960, ptr noundef %5)
  br label %4047

3961:                                             ; preds = %3954
  %3962 = load ptr, ptr %3, align 8, !tbaa !5
  %3963 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3962, i32 0, i32 6
  %3964 = load i32, ptr %3963, align 4, !tbaa !17
  %3965 = icmp eq i32 %3964, 2201
  br i1 %3965, label %3971, label %3966

3966:                                             ; preds = %3961
  %3967 = load ptr, ptr %3, align 8, !tbaa !5
  %3968 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3967, i32 0, i32 6
  %3969 = load i32, ptr %3968, align 4, !tbaa !17
  %3970 = icmp eq i32 %3969, 2202
  br i1 %3970, label %3971, label %3973

3971:                                             ; preds = %3966, %3961
  %3972 = load ptr, ptr %3, align 8, !tbaa !5
  call void @libxsmm_generator_gemm_aarch64_kernel(ptr noundef %3972, ptr noundef %5)
  br label %4046

3973:                                             ; preds = %3966
  %3974 = load ptr, ptr %3, align 8, !tbaa !5
  %3975 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3974, i32 0, i32 6
  %3976 = load i32, ptr %3975, align 4, !tbaa !17
  %3977 = icmp eq i32 %3976, 2301
  br i1 %3977, label %3983, label %3978

3978:                                             ; preds = %3973
  %3979 = load ptr, ptr %3, align 8, !tbaa !5
  %3980 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3979, i32 0, i32 6
  %3981 = load i32, ptr %3980, align 4, !tbaa !17
  %3982 = icmp eq i32 %3981, 2302
  br i1 %3982, label %3983, label %3985

3983:                                             ; preds = %3978, %3973
  %3984 = load ptr, ptr %3, align 8, !tbaa !5
  call void @libxsmm_generator_gemm_aarch64_kernel(ptr noundef %3984, ptr noundef %5)
  br label %4045

3985:                                             ; preds = %3978
  %3986 = load ptr, ptr %3, align 8, !tbaa !5
  %3987 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3986, i32 0, i32 6
  %3988 = load i32, ptr %3987, align 4, !tbaa !17
  %3989 = icmp eq i32 %3988, 2401
  br i1 %3989, label %3995, label %3990

3990:                                             ; preds = %3985
  %3991 = load ptr, ptr %3, align 8, !tbaa !5
  %3992 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3991, i32 0, i32 6
  %3993 = load i32, ptr %3992, align 4, !tbaa !17
  %3994 = icmp eq i32 %3993, 2402
  br i1 %3994, label %3995, label %3997

3995:                                             ; preds = %3990, %3985
  %3996 = load ptr, ptr %3, align 8, !tbaa !5
  call void @libxsmm_generator_gemm_aarch64_kernel(ptr noundef %3996, ptr noundef %5)
  br label %4044

3997:                                             ; preds = %3990
  %3998 = load ptr, ptr %3, align 8, !tbaa !5
  %3999 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3998, i32 0, i32 6
  %4000 = load i32, ptr %3999, align 4, !tbaa !17
  %4001 = icmp eq i32 %4000, 2501
  br i1 %4001, label %4002, label %4022

4002:                                             ; preds = %3997
  %4003 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %5, i32 0, i32 8
  %4004 = getelementptr inbounds [3 x i8], ptr %4003, i64 0, i64 0
  %4005 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %4004)
  %4006 = icmp eq i32 1, %4005
  br i1 %4006, label %4007, label %4019

4007:                                             ; preds = %4002
  %4008 = load ptr, ptr %4, align 8, !tbaa !5
  %4009 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %4008, i32 0, i32 6
  %4010 = load i32, ptr %4009, align 1, !tbaa !23
  %4011 = icmp eq i32 %4010, 16384
  br i1 %4011, label %4017, label %4012

4012:                                             ; preds = %4007
  %4013 = load ptr, ptr %4, align 8, !tbaa !5
  %4014 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %4013, i32 0, i32 6
  %4015 = load i32, ptr %4014, align 1, !tbaa !23
  %4016 = icmp eq i32 %4015, 16386
  br i1 %4016, label %4017, label %4019

4017:                                             ; preds = %4012, %4007
  %4018 = load ptr, ptr %3, align 8, !tbaa !5
  call void @libxsmm_generator_gemm_aarch64_kernel_sme_het_blocking(ptr noundef %4018, ptr noundef %5)
  br label %4021

4019:                                             ; preds = %4012, %4002
  %4020 = load ptr, ptr %3, align 8, !tbaa !5
  call void @libxsmm_generator_gemm_aarch64_kernel(ptr noundef %4020, ptr noundef %5)
  br label %4021

4021:                                             ; preds = %4019, %4017
  br label %4043

4022:                                             ; preds = %3997
  %4023 = load ptr, ptr %3, align 8, !tbaa !5
  %4024 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %4023, i32 0, i32 6
  %4025 = load i32, ptr %4024, align 4, !tbaa !17
  %4026 = icmp uge i32 %4025, 3001
  br i1 %4026, label %4027, label %4029

4027:                                             ; preds = %4022
  %4028 = load ptr, ptr %3, align 8, !tbaa !5
  call void @libxsmm_generator_gemm_rv64_kernel(ptr noundef %4028, ptr noundef %5)
  br label %4042

4029:                                             ; preds = %4022
  %4030 = load ptr, ptr %3, align 8, !tbaa !5
  %4031 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %4030, i32 0, i32 6
  %4032 = load i32, ptr %4031, align 4, !tbaa !17
  %4033 = call i32 (ptr, ...) @printf(ptr noundef @.str.1, i32 noundef %4032)
  %4034 = load ptr, ptr %3, align 8, !tbaa !5
  %4035 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !10
  %4036 = icmp ult i32 1, %4035
  br i1 %4036, label %4037, label %4039

4037:                                             ; preds = %4029
  %4038 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !10
  br label %4040

4039:                                             ; preds = %4029
  br label %4040

4040:                                             ; preds = %4039, %4037
  %4041 = phi i32 [ %4038, %4037 ], [ 1, %4039 ]
  call void @libxsmm_handle_error(ptr noundef %4034, i32 noundef 90005, ptr noundef @__func__.libxsmm_generator_gemm_kernel, ptr noundef @.str, i32 noundef 934, i32 noundef %4041)
  store i32 1, ptr %18, align 4
  br label %4054

4042:                                             ; preds = %4027
  br label %4043

4043:                                             ; preds = %4042, %4021
  br label %4044

4044:                                             ; preds = %4043, %3995
  br label %4045

4045:                                             ; preds = %4044, %3983
  br label %4046

4046:                                             ; preds = %4045, %3971
  br label %4047

4047:                                             ; preds = %4046, %3959
  br label %4048

4048:                                             ; preds = %4047, %3952
  br label %4049

4049:                                             ; preds = %4048, %3941
  br label %4050

4050:                                             ; preds = %4049, %3827
  %4051 = load i32, ptr %9, align 4, !tbaa !10
  %4052 = load ptr, ptr %3, align 8, !tbaa !5
  %4053 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %4052, i32 0, i32 6
  store i32 %4051, ptr %4053, align 4, !tbaa !17
  store i32 0, ptr %18, align 4
  br label %4054

4054:                                             ; preds = %4050, %4040, %3798, %3767, %3738, %3712, %3697, %3657, %3638, %3619, %3595, %3575, %3560, %3525, %3447, %3371, %3340, %3324, %3305, %3284, %3230, %3199, %3183, %3163, %2929, %2887, %2831, %2775, %2729, %2671, %2631, %2562, %2499, %2423, %2381, %2341, %2323, %2267, %2222, %2192, %2069, %2028, %1993, %1963, %1904, %1874, %1849, %1797, %1758, %1699, %1684, %1670, %1656, %1642, %1628, %1597, %1583, %1569, %1555, %1541, %1510, %1496, %1482, %1468, %1454, %1420, %1406, %1392, %1378, %1364, %1284, %1221, %1207, %1153, %403, %392, %377, %363, %350, %310, %84
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #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 4, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #4
  call void @llvm.lifetime.end.p0(i64 95, ptr %5) #4
  %4055 = load i32, ptr %18, align 4
  switch i32 %4055, label %4057 [
    i32 0, label %4056
    i32 1, label %4056
  ]

4056:                                             ; preds = %4054, %4054
  ret void

4057:                                             ; preds = %4054
  unreachable
}

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #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) #2

declare i32 @libxsmm_cpuid_arm_use_bfdot() #3

declare i32 @libxsmm_cpuid_arm_use_i8dot() #3

declare i32 @libxsmm_x86_is_Ai4_Bi8_gemm(ptr noundef) #3

declare i32 @libxsmm_x86_is_Amxfp4_Bbf16_gemm(ptr noundef) #3

declare i32 @libxsmm_x86_is_Amxfp4_Bfp32_gemm(ptr noundef) #3

declare i32 @libxsmm_x86_is_Amxfp4_Bi8_gemm(ptr noundef) #3

declare i32 @libxsmm_x86_is_Abf8_Bbf16_gemm(ptr noundef) #3

declare i32 @libxsmm_x86_is_Abf8_Bf16_gemm(ptr noundef) #3

declare i32 @libxsmm_x86_is_Ahf8_Bbf16_gemm(ptr noundef) #3

declare void @libxsmm_handle_error(ptr noundef, i32 noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) #3

declare i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef) #3

declare i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef) #3

declare i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef) #3

declare i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef) #3

declare i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef) #3

declare void @libxsmm_generator_gemm_noarch_kernel(ptr noundef, ptr noundef) #3

declare void @libxsmm_generator_gemm_amx_kernel_wrapper(ptr noundef, ptr noundef) #3

declare void @libxsmm_generator_gemm_sse_avx_avx2_avx512_kernel_wrapper(ptr noundef, ptr noundef) #3

declare void @libxsmm_generator_gemm_aarch64_kernel(ptr noundef, ptr noundef) #3

declare void @libxsmm_generator_gemm_aarch64_kernel_sme_het_blocking(ptr noundef, ptr noundef) #3

declare void @libxsmm_generator_gemm_rv64_kernel(ptr noundef, ptr noundef) #3

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

; 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 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = !{i64 0, i64 4, !10, i64 4, i64 4, !10, i64 8, i64 4, !10, i64 12, i64 4, !10, i64 16, i64 4, !10, i64 20, i64 4, !10, i64 24, i64 4, !10, i64 28, i64 1, !12, i64 29, i64 3, !12, i64 32, i64 1, !12, i64 33, i64 8, !13, i64 41, i64 8, !13, i64 49, i64 1, !12, i64 50, i64 4, !10, i64 54, i64 4, !10, i64 58, i64 4, !10, i64 62, i64 2, !15, i64 64, i64 2, !15, i64 66, i64 1, !12, i64 67, i64 1, !12, i64 68, i64 1, !12, i64 69, i64 1, !12, i64 70, i64 2, !15, i64 72, i64 2, !15, i64 74, i64 2, !15, i64 76, i64 2, !15, i64 78, i64 2, !15, i64 80, i64 2, !15, i64 82, i64 4, !10, i64 86, i64 4, !10, i64 90, i64 4, !10, i64 94, i64 1, !12}
!10 = !{!11, !11, i64 0}
!11 = !{!"int", !7, i64 0}
!12 = !{!7, !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"long long", !7, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"short", !7, i64 0}
!17 = !{!18, !11, i64 28}
!18 = !{!"libxsmm_generated_code", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28}
!19 = !{!20, !11, i64 12}
!20 = !{!"libxsmm_gemm_descriptor", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !7, i64 28, !7, i64 29, !7, i64 32, !14, i64 33, !14, i64 41, !7, i64 49, !11, i64 50, !11, i64 54, !11, i64 58, !16, i64 62, !16, i64 64, !7, i64 66, !7, i64 67, !7, i64 68, !7, i64 69, !16, i64 70, !16, i64 72, !16, i64 74, !16, i64 76, !16, i64 78, !16, i64 80, !11, i64 82, !11, i64 86, !11, i64 90, !7, i64 94}
!21 = !{!20, !11, i64 16}
!22 = !{!20, !11, i64 20}
!23 = !{!20, !11, i64 24}
!24 = !{!20, !11, i64 0}
!25 = !{!20, !11, i64 4}
!26 = !{!20, !11, i64 8}


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

%struct.libxsmm_gemm_descriptor = type <{ i32, i32, i32, i32, i32, i32, i32, i8, [3 x i8], i8, i64, i64, i8, i32, i32, i32, i16, i16, i8, i8, i8, i8, i16, i16, i16, i16, i16, i16, i32, i32, i32, i8 }>

@__func__.libxsmm_generator_gemm_kernel = external hidden unnamed_addr constant [30 x i8], align 1
@.str = external hidden unnamed_addr constant [70 x i8], align 1
@libxsmm_ninit = external local_unnamed_addr global i32, align 4
@libxsmm_verbosity = external local_unnamed_addr global i32, align 4
@.str.1 = external hidden unnamed_addr constant [9 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_gemm_kernel(ptr noundef %0, ptr noundef %1) local_unnamed_addr #0 {
  %3 = alloca %struct.libxsmm_gemm_descriptor, align 4
  call void @llvm.lifetime.start.p0(i64 95, ptr nonnull %3) #5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(95) %3, ptr noundef nonnull align 1 dereferenceable(95) %1, i64 95, i1 false), !tbaa.struct !5
  %4 = tail call i32 @libxsmm_cpuid_arm_use_bfdot() #5
  %5 = tail call i32 @libxsmm_cpuid_arm_use_i8dot() #5
  %6 = getelementptr inbounds i8, ptr %0, i64 28
  %7 = load i32, ptr %6, align 4, !tbaa !15
  %8 = tail call i32 @libxsmm_x86_is_Ai4_Bi8_gemm(ptr noundef %1) #5
  %9 = tail call i32 @libxsmm_x86_is_Amxfp4_Bbf16_gemm(ptr noundef %1) #5
  %10 = tail call i32 @libxsmm_x86_is_Amxfp4_Bfp32_gemm(ptr noundef %1) #5
  %11 = tail call i32 @libxsmm_x86_is_Amxfp4_Bi8_gemm(ptr noundef %1) #5
  %12 = tail call i32 @libxsmm_x86_is_Abf8_Bbf16_gemm(ptr noundef %1) #5
  %13 = tail call i32 @libxsmm_x86_is_Abf8_Bf16_gemm(ptr noundef %1) #5
  %14 = tail call i32 @libxsmm_x86_is_Ahf8_Bbf16_gemm(ptr noundef %1) #5
  %15 = getelementptr inbounds i8, ptr %3, i64 12
  %16 = load i32, ptr %15, align 4, !tbaa !18
  %17 = icmp eq i32 %16, 0
  %18 = getelementptr inbounds i8, ptr %3, i64 16
  %19 = load i32, ptr %18, align 4
  %20 = icmp eq i32 %19, 0
  %or.cond = select i1 %17, i1 %20, i1 false
  br i1 %or.cond, label %21, label %25

21:                                               ; preds = %2
  %22 = getelementptr inbounds i8, ptr %3, i64 20
  %23 = load i32, ptr %22, align 4, !tbaa !20
  %24 = icmp eq i32 %23, 0
  br label %25

25:                                               ; preds = %21, %2
  %26 = phi i1 [ false, %2 ], [ %24, %21 ]
  %.not446 = icmp eq i32 %10, 0
  br i1 %.not446, label %31, label %27

27:                                               ; preds = %25
  %28 = load i32, ptr %6, align 4, !tbaa !15
  %29 = add i32 %28, -1006
  %or.cond507 = icmp ult i32 %29, 994
  br i1 %or.cond507, label %30, label %31

30:                                               ; preds = %27
  store i32 1006, ptr %6, align 4, !tbaa !15
  br label %31

31:                                               ; preds = %27, %30, %25
  %32 = icmp ne i32 %11, 0
  br i1 %32, label %33, label %40

33:                                               ; preds = %31
  %34 = load i32, ptr %6, align 4, !tbaa !15
  %.not = icmp eq i32 %34, 1008
  br i1 %.not, label %40, label %35

35:                                               ; preds = %33
  %36 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %37 = icmp ugt i32 %36, 1
  %38 = load i32, ptr @libxsmm_verbosity, align 4
  %39 = select i1 %37, i32 %38, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 47, i32 noundef %39) #5
  br label %1914

40:                                               ; preds = %33, %31
  %.not505 = icmp eq i32 %9, 0
  br i1 %.not505, label %45, label %41

41:                                               ; preds = %40
  %42 = load i32, ptr %6, align 4, !tbaa !15
  %43 = add i32 %42, -1006
  %or.cond508 = icmp ult i32 %43, 98
  br i1 %or.cond508, label %.sink.split, label %45

.sink.split:                                      ; preds = %41
  %44 = add nsw i32 %42, -1008
  %or.cond509 = icmp ult i32 %44, 33
  %.742 = select i1 %or.cond509, i32 1008, i32 1006
  store i32 %.742, ptr %6, align 4, !tbaa !15
  br label %45

45:                                               ; preds = %.sink.split, %41, %40
  %46 = getelementptr inbounds i8, ptr %3, i64 24
  %47 = load i32, ptr %46, align 4, !tbaa !21
  %48 = and i32 %47, 8388608
  %.not417 = icmp eq i32 %48, 0
  br i1 %.not417, label %204, label %49

49:                                               ; preds = %45
  %50 = load i32, ptr %6, align 4, !tbaa !15
  %51 = add i32 %50, -1002
  %or.cond510 = icmp ult i32 %51, 998
  br i1 %or.cond510, label %52, label %199

52:                                               ; preds = %49
  %53 = icmp ugt i32 %50, 1100
  br i1 %53, label %54, label %.thread567

54:                                               ; preds = %52
  %55 = getelementptr inbounds i8, ptr %3, i64 29
  %56 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %55) #5
  %57 = icmp eq i32 %56, 1
  br i1 %57, label %58, label %67

58:                                               ; preds = %54
  %59 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %55) #5
  %60 = icmp eq i32 %59, 1
  br i1 %60, label %61, label %67

61:                                               ; preds = %58
  %62 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %55) #5
  %63 = icmp eq i32 %62, 1
  br i1 %63, label %64, label %67

64:                                               ; preds = %61
  %65 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %55) #5
  %66 = icmp eq i32 %65, 1
  br i1 %66, label %157, label %67

67:                                               ; preds = %64, %61, %58, %54
  %.pr711 = load i32, ptr %6, align 4, !tbaa !15
  %68 = icmp ugt i32 %.pr711, 1103
  br i1 %68, label %69, label %.thread567

69:                                               ; preds = %67
  %70 = getelementptr inbounds i8, ptr %3, i64 29
  %71 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %70) #5
  %72 = icmp eq i32 %71, 4
  br i1 %72, label %76, label %73

73:                                               ; preds = %69
  %74 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %70) #5
  %75 = icmp eq i32 %74, 5
  br i1 %75, label %76, label %85

76:                                               ; preds = %73, %69
  %77 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %70) #5
  %78 = icmp eq i32 %77, 2
  br i1 %78, label %79, label %85

79:                                               ; preds = %76
  %80 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %70) #5
  %81 = icmp eq i32 %80, 1
  br i1 %81, label %82, label %85

82:                                               ; preds = %79
  %83 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %70) #5
  %84 = icmp eq i32 %83, 1
  br i1 %84, label %157, label %85

85:                                               ; preds = %82, %79, %76, %73
  %86 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %70) #5
  %87 = icmp eq i32 %86, 4
  br i1 %87, label %91, label %88

88:                                               ; preds = %85
  %89 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %70) #5
  %90 = icmp eq i32 %89, 5
  br i1 %90, label %91, label %100

91:                                               ; preds = %88, %85
  %92 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %70) #5
  %93 = icmp eq i32 %92, 2
  br i1 %93, label %94, label %100

94:                                               ; preds = %91
  %95 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %70) #5
  %96 = icmp eq i32 %95, 1
  br i1 %96, label %97, label %100

97:                                               ; preds = %94
  %98 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %70) #5
  %99 = icmp eq i32 %98, 2
  br i1 %99, label %157, label %100

100:                                              ; preds = %97, %94, %91, %88
  %.pr = load i32, ptr %6, align 4, !tbaa !15
  %101 = icmp ugt i32 %.pr, 1104
  br i1 %101, label %102, label %126

102:                                              ; preds = %100
  %103 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %70) #5
  %104 = icmp eq i32 %103, 4
  br i1 %104, label %105, label %114

105:                                              ; preds = %102
  %106 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %70) #5
  %107 = icmp eq i32 %106, 3
  br i1 %107, label %108, label %114

108:                                              ; preds = %105
  %109 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %70) #5
  %110 = icmp eq i32 %109, 1
  br i1 %110, label %111, label %114

111:                                              ; preds = %108
  %112 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %70) #5
  %113 = icmp eq i32 %112, 1
  br i1 %113, label %157, label %114

114:                                              ; preds = %111, %108, %105, %102
  %115 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %70) #5
  %116 = icmp eq i32 %115, 4
  br i1 %116, label %117, label %thread-pre-split565

117:                                              ; preds = %114
  %118 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %70) #5
  %119 = icmp eq i32 %118, 3
  br i1 %119, label %120, label %thread-pre-split565

120:                                              ; preds = %117
  %121 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %70) #5
  %122 = icmp eq i32 %121, 1
  br i1 %122, label %123, label %thread-pre-split565

123:                                              ; preds = %120
  %124 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %70) #5
  %125 = icmp eq i32 %124, 3
  br i1 %125, label %157, label %thread-pre-split565

thread-pre-split565:                              ; preds = %114, %117, %120, %123
  %.pr566 = load i32, ptr %6, align 4, !tbaa !15
  br label %126

126:                                              ; preds = %thread-pre-split565, %100
  %127 = phi i32 [ %.pr566, %thread-pre-split565 ], [ %.pr, %100 ]
  %128 = icmp ugt i32 %127, 1103
  br i1 %128, label %129, label %.thread567

129:                                              ; preds = %126
  %130 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %70) #5
  %131 = icmp eq i32 %130, 2
  br i1 %131, label %132, label %141

132:                                              ; preds = %129
  %133 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %70) #5
  %134 = icmp eq i32 %133, 2
  br i1 %134, label %135, label %141

135:                                              ; preds = %132
  %136 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %70) #5
  %137 = icmp eq i32 %136, 1
  br i1 %137, label %138, label %141

138:                                              ; preds = %135
  %139 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %70) #5
  %140 = icmp eq i32 %139, 1
  br i1 %140, label %157, label %141

141:                                              ; preds = %138, %135, %132, %129
  %142 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %70) #5
  %143 = icmp eq i32 %142, 2
  br i1 %143, label %144, label %.thread567

144:                                              ; preds = %141
  %145 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %70) #5
  %146 = icmp eq i32 %145, 2
  br i1 %146, label %147, label %.thread567

147:                                              ; preds = %144
  %148 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %70) #5
  %149 = icmp eq i32 %148, 1
  br i1 %149, label %150, label %.thread567

150:                                              ; preds = %147
  %151 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %70) #5
  %152 = icmp eq i32 %151, 2
  br i1 %152, label %157, label %.thread567

.thread567:                                       ; preds = %52, %67, %150, %147, %144, %141, %126
  %153 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %154 = icmp ugt i32 %153, 1
  %155 = load i32, ptr @libxsmm_verbosity, align 4
  %156 = select i1 %154, i32 %155, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 84, i32 noundef %156) #5
  br label %1914

157:                                              ; preds = %150, %138, %123, %111, %97, %82, %64
  %158 = load i32, ptr %3, align 4
  %159 = icmp eq i32 %158, 16
  %160 = icmp eq i32 %158, 32
  %or.cond5 = or i1 %159, %160
  %161 = getelementptr inbounds i8, ptr %3, i64 4
  %162 = load i32, ptr %161, align 4
  %163 = icmp ult i32 %162, 33
  %or.cond8 = select i1 %or.cond5, i1 %163, i1 false
  %164 = load i32, ptr %15, align 4
  %165 = icmp eq i32 %164, %158
  %or.cond512 = select i1 %or.cond8, i1 %165, i1 false
  br i1 %or.cond512, label %166, label %171

166:                                              ; preds = %157
  %167 = getelementptr inbounds i8, ptr %3, i64 8
  %168 = load i32, ptr %167, align 4, !tbaa !22
  %169 = and i32 %168, 31
  %170 = icmp eq i32 %169, 0
  br i1 %170, label %204, label %171

171:                                              ; preds = %157, %166
  switch i32 %158, label %172 [
    i32 32, label %177
    i32 16, label %177
  ]

172:                                              ; preds = %171
  %173 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %174 = icmp ugt i32 %173, 1
  %175 = load i32, ptr @libxsmm_verbosity, align 4
  %176 = select i1 %174, i32 %175, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90017, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 89, i32 noundef %176) #5
  br label %1914

177:                                              ; preds = %171, %171
  %178 = icmp ugt i32 %162, 32
  br i1 %178, label %179, label %184

179:                                              ; preds = %177
  %180 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %181 = icmp ugt i32 %180, 1
  %182 = load i32, ptr @libxsmm_verbosity, align 4
  %183 = select i1 %181, i32 %182, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90016, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 93, i32 noundef %183) #5
  br label %1914

184:                                              ; preds = %177
  %185 = getelementptr inbounds i8, ptr %3, i64 8
  %186 = load i32, ptr %185, align 4, !tbaa !22
  %187 = and i32 %186, 31
  %.not418 = icmp eq i32 %187, 0
  br i1 %.not418, label %193, label %188

188:                                              ; preds = %184
  %189 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %190 = icmp ugt i32 %189, 1
  %191 = load i32, ptr @libxsmm_verbosity, align 4
  %192 = select i1 %190, i32 %191, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90018, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 97, i32 noundef %192) #5
  br label %1914

193:                                              ; preds = %184
  br i1 %165, label %204, label %194

194:                                              ; preds = %193
  %195 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %196 = icmp ugt i32 %195, 1
  %197 = load i32, ptr @libxsmm_verbosity, align 4
  %198 = select i1 %196, i32 %197, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90007, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 101, i32 noundef %198) #5
  br label %1914

199:                                              ; preds = %49
  %200 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %201 = icmp ugt i32 %200, 1
  %202 = load i32, ptr @libxsmm_verbosity, align 4
  %203 = select i1 %201, i32 %202, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90005, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 106, i32 noundef %203) #5
  br label %1914

204:                                              ; preds = %193, %166, %45
  %205 = getelementptr inbounds i8, ptr %3, i64 29
  %206 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %207 = icmp eq i32 %206, 0
  br i1 %207, label %208, label %217

208:                                              ; preds = %204
  %209 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %210 = icmp eq i32 %209, 0
  br i1 %210, label %211, label %217

211:                                              ; preds = %208
  %212 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %213 = icmp eq i32 %212, 0
  br i1 %213, label %214, label %217

214:                                              ; preds = %211
  %215 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %216 = icmp eq i32 %215, 0
  br i1 %216, label %654, label %217

217:                                              ; preds = %214, %211, %208, %204
  %218 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %219 = icmp eq i32 %218, 1
  br i1 %219, label %220, label %229

220:                                              ; preds = %217
  %221 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %222 = icmp eq i32 %221, 1
  br i1 %222, label %223, label %229

223:                                              ; preds = %220
  %224 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %225 = icmp eq i32 %224, 1
  br i1 %225, label %226, label %229

226:                                              ; preds = %223
  %227 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %228 = icmp eq i32 %227, 1
  br i1 %228, label %654, label %229

229:                                              ; preds = %226, %223, %220, %217
  %230 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %231 = icmp eq i32 %230, 10
  br i1 %231, label %232, label %241

232:                                              ; preds = %229
  %233 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %234 = icmp eq i32 %233, 10
  br i1 %234, label %235, label %241

235:                                              ; preds = %232
  %236 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %237 = icmp eq i32 %236, 8
  br i1 %237, label %238, label %241

238:                                              ; preds = %235
  %239 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %240 = icmp eq i32 %239, 8
  br i1 %240, label %654, label %241

241:                                              ; preds = %238, %235, %232, %229
  %242 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %243 = icmp eq i32 %242, 12
  br i1 %243, label %244, label %253

244:                                              ; preds = %241
  %245 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %246 = icmp eq i32 %245, 12
  br i1 %246, label %247, label %253

247:                                              ; preds = %244
  %248 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %249 = icmp eq i32 %248, 8
  br i1 %249, label %250, label %253

250:                                              ; preds = %247
  %251 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %252 = icmp eq i32 %251, 8
  br i1 %252, label %654, label %253

253:                                              ; preds = %250, %247, %244, %241
  %254 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %255 = icmp eq i32 %254, 12
  br i1 %255, label %256, label %265

256:                                              ; preds = %253
  %257 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %258 = icmp eq i32 %257, 12
  br i1 %258, label %259, label %265

259:                                              ; preds = %256
  %260 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %261 = icmp eq i32 %260, 8
  br i1 %261, label %262, label %265

262:                                              ; preds = %259
  %263 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %264 = icmp eq i32 %263, 1
  br i1 %264, label %654, label %265

265:                                              ; preds = %262, %259, %256, %253
  %266 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %267 = icmp eq i32 %266, 12
  br i1 %267, label %268, label %277

268:                                              ; preds = %265
  %269 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %270 = icmp eq i32 %269, 12
  br i1 %270, label %271, label %277

271:                                              ; preds = %268
  %272 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %273 = icmp eq i32 %272, 8
  br i1 %273, label %274, label %277

274:                                              ; preds = %271
  %275 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %276 = icmp eq i32 %275, 2
  br i1 %276, label %654, label %277

277:                                              ; preds = %274, %271, %268, %265
  %278 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %279 = icmp eq i32 %278, 4
  br i1 %279, label %280, label %289

280:                                              ; preds = %277
  %281 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %282 = icmp eq i32 %281, 3
  br i1 %282, label %283, label %289

283:                                              ; preds = %280
  %284 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %285 = icmp eq i32 %284, 3
  br i1 %285, label %286, label %289

286:                                              ; preds = %283
  %287 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %288 = icmp eq i32 %287, 3
  br i1 %288, label %654, label %289

289:                                              ; preds = %286, %283, %280, %277
  %290 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %291 = icmp eq i32 %290, 4
  br i1 %291, label %292, label %301

292:                                              ; preds = %289
  %293 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %294 = icmp eq i32 %293, 3
  br i1 %294, label %295, label %301

295:                                              ; preds = %292
  %296 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %297 = icmp eq i32 %296, 1
  br i1 %297, label %298, label %301

298:                                              ; preds = %295
  %299 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %300 = icmp eq i32 %299, 3
  br i1 %300, label %654, label %301

301:                                              ; preds = %298, %295, %292, %289
  %302 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %303 = icmp eq i32 %302, 4
  br i1 %303, label %304, label %313

304:                                              ; preds = %301
  %305 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %306 = icmp eq i32 %305, 3
  br i1 %306, label %307, label %313

307:                                              ; preds = %304
  %308 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %309 = icmp eq i32 %308, 14
  br i1 %309, label %310, label %313

310:                                              ; preds = %307
  %311 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %312 = icmp eq i32 %311, 3
  br i1 %312, label %654, label %313

313:                                              ; preds = %310, %307, %304, %301
  %314 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %315 = icmp eq i32 %314, 4
  br i1 %315, label %316, label %325

316:                                              ; preds = %313
  %317 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %318 = icmp eq i32 %317, 3
  br i1 %318, label %319, label %325

319:                                              ; preds = %316
  %320 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %321 = icmp eq i32 %320, 3
  br i1 %321, label %322, label %325

322:                                              ; preds = %319
  %323 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %324 = icmp eq i32 %323, 1
  br i1 %324, label %654, label %325

325:                                              ; preds = %322, %319, %316, %313
  %326 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %327 = icmp eq i32 %326, 4
  br i1 %327, label %328, label %337

328:                                              ; preds = %325
  %329 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %330 = icmp eq i32 %329, 3
  br i1 %330, label %331, label %337

331:                                              ; preds = %328
  %332 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %333 = icmp eq i32 %332, 1
  br i1 %333, label %334, label %337

334:                                              ; preds = %331
  %335 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %336 = icmp eq i32 %335, 1
  br i1 %336, label %654, label %337

337:                                              ; preds = %334, %331, %328, %325
  %338 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %339 = icmp eq i32 %338, 4
  br i1 %339, label %340, label %349

340:                                              ; preds = %337
  %341 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %342 = icmp eq i32 %341, 3
  br i1 %342, label %343, label %349

343:                                              ; preds = %340
  %344 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %345 = icmp eq i32 %344, 14
  br i1 %345, label %346, label %349

346:                                              ; preds = %343
  %347 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %348 = icmp eq i32 %347, 1
  br i1 %348, label %654, label %349

349:                                              ; preds = %346, %343, %340, %337
  %350 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %351 = icmp eq i32 %350, 12
  br i1 %351, label %352, label %361

352:                                              ; preds = %349
  %353 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %354 = icmp eq i32 %353, 3
  br i1 %354, label %355, label %361

355:                                              ; preds = %352
  %356 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %357 = icmp eq i32 %356, 3
  br i1 %357, label %358, label %361

358:                                              ; preds = %355
  %359 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %360 = icmp eq i32 %359, 3
  br i1 %360, label %654, label %361

361:                                              ; preds = %358, %355, %352, %349
  %362 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %363 = icmp eq i32 %362, 12
  br i1 %363, label %364, label %373

364:                                              ; preds = %361
  %365 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %366 = icmp eq i32 %365, 2
  br i1 %366, label %367, label %373

367:                                              ; preds = %364
  %368 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %369 = icmp eq i32 %368, 1
  br i1 %369, label %370, label %373

370:                                              ; preds = %367
  %371 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %372 = icmp eq i32 %371, 2
  br i1 %372, label %654, label %373

373:                                              ; preds = %370, %367, %364, %361
  %374 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %375 = icmp eq i32 %374, 12
  br i1 %375, label %376, label %385

376:                                              ; preds = %373
  %377 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %378 = icmp eq i32 %377, 2
  br i1 %378, label %379, label %385

379:                                              ; preds = %376
  %380 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %381 = icmp eq i32 %380, 1
  br i1 %381, label %382, label %385

382:                                              ; preds = %379
  %383 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %384 = icmp eq i32 %383, 1
  br i1 %384, label %654, label %385

385:                                              ; preds = %382, %379, %376, %373
  %386 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %387 = icmp eq i32 %386, 12
  br i1 %387, label %388, label %397

388:                                              ; preds = %385
  %389 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %390 = icmp eq i32 %389, 1
  br i1 %390, label %391, label %397

391:                                              ; preds = %388
  %392 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %393 = icmp eq i32 %392, 1
  br i1 %393, label %394, label %397

394:                                              ; preds = %391
  %395 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %396 = icmp eq i32 %395, 1
  br i1 %396, label %654, label %397

397:                                              ; preds = %394, %391, %388, %385
  %398 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %399 = icmp eq i32 %398, 12
  br i1 %399, label %400, label %409

400:                                              ; preds = %397
  %401 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %402 = icmp eq i32 %401, 3
  br i1 %402, label %403, label %409

403:                                              ; preds = %400
  %404 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %405 = icmp eq i32 %404, 1
  br i1 %405, label %406, label %409

406:                                              ; preds = %403
  %407 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %408 = icmp eq i32 %407, 3
  br i1 %408, label %654, label %409

409:                                              ; preds = %406, %403, %400, %397
  %410 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %411 = icmp eq i32 %410, 12
  br i1 %411, label %412, label %421

412:                                              ; preds = %409
  %413 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %414 = icmp eq i32 %413, 3
  br i1 %414, label %415, label %421

415:                                              ; preds = %412
  %416 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %417 = icmp eq i32 %416, 14
  br i1 %417, label %418, label %421

418:                                              ; preds = %415
  %419 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %420 = icmp eq i32 %419, 3
  br i1 %420, label %654, label %421

421:                                              ; preds = %418, %415, %412, %409
  %422 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %423 = icmp eq i32 %422, 12
  br i1 %423, label %424, label %433

424:                                              ; preds = %421
  %425 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %426 = icmp eq i32 %425, 3
  br i1 %426, label %427, label %433

427:                                              ; preds = %424
  %428 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %429 = icmp eq i32 %428, 3
  br i1 %429, label %430, label %433

430:                                              ; preds = %427
  %431 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %432 = icmp eq i32 %431, 1
  br i1 %432, label %654, label %433

433:                                              ; preds = %430, %427, %424, %421
  %434 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %435 = icmp eq i32 %434, 12
  br i1 %435, label %436, label %445

436:                                              ; preds = %433
  %437 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %438 = icmp eq i32 %437, 3
  br i1 %438, label %439, label %445

439:                                              ; preds = %436
  %440 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %441 = icmp eq i32 %440, 1
  br i1 %441, label %442, label %445

442:                                              ; preds = %439
  %443 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %444 = icmp eq i32 %443, 1
  br i1 %444, label %654, label %445

445:                                              ; preds = %442, %439, %436, %433
  %446 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %447 = icmp eq i32 %446, 12
  br i1 %447, label %448, label %457

448:                                              ; preds = %445
  %449 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %450 = icmp eq i32 %449, 3
  br i1 %450, label %451, label %457

451:                                              ; preds = %448
  %452 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %453 = icmp eq i32 %452, 14
  br i1 %453, label %454, label %457

454:                                              ; preds = %451
  %455 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %456 = icmp eq i32 %455, 1
  br i1 %456, label %654, label %457

457:                                              ; preds = %454, %451, %448, %445
  %458 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %459 = icmp eq i32 %458, 3
  br i1 %459, label %460, label %469

460:                                              ; preds = %457
  %461 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %462 = icmp eq i32 %461, 3
  br i1 %462, label %463, label %469

463:                                              ; preds = %460
  %464 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %465 = icmp eq i32 %464, 3
  br i1 %465, label %466, label %469

466:                                              ; preds = %463
  %467 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %468 = icmp eq i32 %467, 3
  br i1 %468, label %654, label %469

469:                                              ; preds = %466, %463, %460, %457
  %470 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %471 = icmp eq i32 %470, 3
  br i1 %471, label %472, label %481

472:                                              ; preds = %469
  %473 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %474 = icmp eq i32 %473, 3
  br i1 %474, label %475, label %481

475:                                              ; preds = %472
  %476 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %477 = icmp eq i32 %476, 1
  br i1 %477, label %478, label %481

478:                                              ; preds = %475
  %479 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %480 = icmp eq i32 %479, 3
  br i1 %480, label %654, label %481

481:                                              ; preds = %478, %475, %472, %469
  %482 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %483 = icmp eq i32 %482, 3
  br i1 %483, label %484, label %493

484:                                              ; preds = %481
  %485 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %486 = icmp eq i32 %485, 3
  br i1 %486, label %487, label %493

487:                                              ; preds = %484
  %488 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %489 = icmp eq i32 %488, 14
  br i1 %489, label %490, label %493

490:                                              ; preds = %487
  %491 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %492 = icmp eq i32 %491, 3
  br i1 %492, label %654, label %493

493:                                              ; preds = %490, %487, %484, %481
  %494 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %495 = icmp eq i32 %494, 3
  br i1 %495, label %496, label %505

496:                                              ; preds = %493
  %497 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %498 = icmp eq i32 %497, 3
  br i1 %498, label %499, label %505

499:                                              ; preds = %496
  %500 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %501 = icmp eq i32 %500, 3
  br i1 %501, label %502, label %505

502:                                              ; preds = %499
  %503 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %504 = icmp eq i32 %503, 1
  br i1 %504, label %654, label %505

505:                                              ; preds = %502, %499, %496, %493
  %506 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %507 = icmp eq i32 %506, 3
  br i1 %507, label %508, label %517

508:                                              ; preds = %505
  %509 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %510 = icmp eq i32 %509, 3
  br i1 %510, label %511, label %517

511:                                              ; preds = %508
  %512 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %513 = icmp eq i32 %512, 1
  br i1 %513, label %514, label %517

514:                                              ; preds = %511
  %515 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %516 = icmp eq i32 %515, 1
  br i1 %516, label %654, label %517

517:                                              ; preds = %514, %511, %508, %505
  %518 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %519 = icmp eq i32 %518, 3
  br i1 %519, label %520, label %529

520:                                              ; preds = %517
  %521 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %522 = icmp eq i32 %521, 3
  br i1 %522, label %523, label %529

523:                                              ; preds = %520
  %524 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %525 = icmp eq i32 %524, 14
  br i1 %525, label %526, label %529

526:                                              ; preds = %523
  %527 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %528 = icmp eq i32 %527, 1
  br i1 %528, label %654, label %529

529:                                              ; preds = %526, %523, %520, %517
  %530 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %531 = icmp eq i32 %530, 2
  br i1 %531, label %532, label %541

532:                                              ; preds = %529
  %533 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %534 = icmp eq i32 %533, 2
  br i1 %534, label %535, label %541

535:                                              ; preds = %532
  %536 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %537 = icmp eq i32 %536, 1
  br i1 %537, label %538, label %541

538:                                              ; preds = %535
  %539 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %540 = icmp eq i32 %539, 1
  br i1 %540, label %654, label %541

541:                                              ; preds = %538, %535, %532, %529
  %542 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %543 = icmp eq i32 %542, 2
  br i1 %543, label %544, label %553

544:                                              ; preds = %541
  %545 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %546 = icmp eq i32 %545, 2
  br i1 %546, label %547, label %553

547:                                              ; preds = %544
  %548 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %549 = icmp eq i32 %548, 1
  br i1 %549, label %550, label %553

550:                                              ; preds = %547
  %551 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %552 = icmp eq i32 %551, 2
  br i1 %552, label %654, label %553

553:                                              ; preds = %550, %547, %544, %541
  %554 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %555 = icmp eq i32 %554, 4
  br i1 %555, label %556, label %565

556:                                              ; preds = %553
  %557 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %558 = icmp eq i32 %557, 2
  br i1 %558, label %559, label %565

559:                                              ; preds = %556
  %560 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %561 = icmp eq i32 %560, 1
  br i1 %561, label %562, label %565

562:                                              ; preds = %559
  %563 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %564 = icmp eq i32 %563, 1
  br i1 %564, label %654, label %565

565:                                              ; preds = %562, %559, %556, %553
  %566 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %567 = icmp eq i32 %566, 4
  br i1 %567, label %568, label %577

568:                                              ; preds = %565
  %569 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %570 = icmp eq i32 %569, 2
  br i1 %570, label %571, label %577

571:                                              ; preds = %568
  %572 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %573 = icmp eq i32 %572, 1
  br i1 %573, label %574, label %577

574:                                              ; preds = %571
  %575 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %576 = icmp eq i32 %575, 2
  br i1 %576, label %654, label %577

577:                                              ; preds = %574, %571, %568, %565
  %578 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %579 = icmp eq i32 %578, 5
  br i1 %579, label %580, label %589

580:                                              ; preds = %577
  %581 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %582 = icmp eq i32 %581, 2
  br i1 %582, label %583, label %589

583:                                              ; preds = %580
  %584 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %585 = icmp eq i32 %584, 1
  br i1 %585, label %586, label %589

586:                                              ; preds = %583
  %587 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %588 = icmp eq i32 %587, 1
  br i1 %588, label %654, label %589

589:                                              ; preds = %586, %583, %580, %577
  %590 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %591 = icmp eq i32 %590, 5
  br i1 %591, label %592, label %601

592:                                              ; preds = %589
  %593 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %594 = icmp eq i32 %593, 2
  br i1 %594, label %595, label %601

595:                                              ; preds = %592
  %596 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %597 = icmp eq i32 %596, 1
  br i1 %597, label %598, label %601

598:                                              ; preds = %595
  %599 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %600 = icmp eq i32 %599, 2
  br i1 %600, label %654, label %601

601:                                              ; preds = %598, %595, %592, %589
  %602 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %603 = icmp eq i32 %602, 4
  br i1 %603, label %604, label %613

604:                                              ; preds = %601
  %605 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %606 = icmp eq i32 %605, 4
  br i1 %606, label %607, label %613

607:                                              ; preds = %604
  %608 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %609 = icmp eq i32 %608, 1
  br i1 %609, label %610, label %613

610:                                              ; preds = %607
  %611 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %612 = icmp eq i32 %611, 1
  br i1 %612, label %654, label %613

613:                                              ; preds = %610, %607, %604, %601
  %614 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %615 = icmp eq i32 %614, 4
  br i1 %615, label %616, label %625

616:                                              ; preds = %613
  %617 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %618 = icmp eq i32 %617, 4
  br i1 %618, label %619, label %625

619:                                              ; preds = %616
  %620 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %621 = icmp eq i32 %620, 1
  br i1 %621, label %622, label %625

622:                                              ; preds = %619
  %623 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %624 = icmp eq i32 %623, 4
  br i1 %624, label %654, label %625

625:                                              ; preds = %622, %619, %616, %613
  %626 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %627 = icmp eq i32 %626, 5
  br i1 %627, label %628, label %637

628:                                              ; preds = %625
  %629 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %630 = icmp eq i32 %629, 5
  br i1 %630, label %631, label %637

631:                                              ; preds = %628
  %632 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %633 = icmp eq i32 %632, 1
  br i1 %633, label %634, label %637

634:                                              ; preds = %631
  %635 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %636 = icmp eq i32 %635, 1
  br i1 %636, label %654, label %637

637:                                              ; preds = %634, %631, %628, %625
  %638 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %639 = icmp eq i32 %638, 5
  br i1 %639, label %640, label %649

640:                                              ; preds = %637
  %641 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %642 = icmp eq i32 %641, 5
  br i1 %642, label %643, label %649

643:                                              ; preds = %640
  %644 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %645 = icmp eq i32 %644, 1
  br i1 %645, label %646, label %649

646:                                              ; preds = %643
  %647 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %648 = icmp eq i32 %647, 5
  br i1 %648, label %654, label %649

649:                                              ; preds = %646, %643, %640, %637
  %650 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %651 = icmp ugt i32 %650, 1
  %652 = load i32, ptr @libxsmm_verbosity, align 4
  %653 = select i1 %651, i32 %652, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 196, i32 noundef %653) #5
  br label %1914

654:                                              ; preds = %646, %634, %622, %610, %598, %586, %574, %562, %550, %538, %526, %514, %502, %490, %478, %466, %454, %442, %430, %418, %406, %394, %382, %370, %358, %346, %334, %322, %310, %298, %286, %274, %262, %250, %238, %226, %214
  %655 = load i32, ptr %6, align 4, !tbaa !15
  %656 = icmp ugt i32 %655, 3000
  br i1 %656, label %657, label %708

657:                                              ; preds = %654
  %658 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %659 = icmp eq i32 %658, 1
  br i1 %659, label %660, label %669

660:                                              ; preds = %657
  %661 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %662 = icmp eq i32 %661, 1
  br i1 %662, label %663, label %669

663:                                              ; preds = %660
  %664 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %665 = icmp eq i32 %664, 1
  br i1 %665, label %666, label %669

666:                                              ; preds = %663
  %667 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %668 = icmp eq i32 %667, 1
  br i1 %668, label %686, label %669

669:                                              ; preds = %666, %663, %660, %657
  %670 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %671 = icmp eq i32 %670, 0
  br i1 %671, label %672, label %681

672:                                              ; preds = %669
  %673 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %674 = icmp eq i32 %673, 0
  br i1 %674, label %675, label %681

675:                                              ; preds = %672
  %676 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %677 = icmp eq i32 %676, 0
  br i1 %677, label %678, label %681

678:                                              ; preds = %675
  %679 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %680 = icmp eq i32 %679, 0
  br i1 %680, label %686, label %681

681:                                              ; preds = %678, %675, %672, %669
  %682 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %683 = icmp ugt i32 %682, 1
  %684 = load i32, ptr @libxsmm_verbosity, align 4
  %685 = select i1 %683, i32 %684, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 207, i32 noundef %685) #5
  br label %1914

686:                                              ; preds = %678, %666
  %687 = load i32, ptr %46, align 4, !tbaa !21
  %688 = and i32 %687, 1
  %.not420 = icmp eq i32 %688, 0
  br i1 %.not420, label %694, label %689

689:                                              ; preds = %686
  %690 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %691 = icmp ugt i32 %690, 1
  %692 = load i32, ptr @libxsmm_verbosity, align 4
  %693 = select i1 %691, i32 %692, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90049, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 212, i32 noundef %693) #5
  br label %1914

694:                                              ; preds = %686
  %695 = and i32 %687, 2048
  %.not421 = icmp eq i32 %695, 0
  br i1 %.not421, label %701, label %696

696:                                              ; preds = %694
  %697 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %698 = icmp ugt i32 %697, 1
  %699 = load i32, ptr @libxsmm_verbosity, align 4
  %700 = select i1 %698, i32 %699, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90041, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 222, i32 noundef %700) #5
  br label %708

701:                                              ; preds = %694
  %702 = and i32 %687, 4096
  %.not422 = icmp eq i32 %702, 0
  br i1 %.not422, label %708, label %703

703:                                              ; preds = %701
  %704 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %705 = icmp ugt i32 %704, 1
  %706 = load i32, ptr @libxsmm_verbosity, align 4
  %707 = select i1 %705, i32 %706, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90042, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 225, i32 noundef %707) #5
  br label %708

708:                                              ; preds = %701, %703, %696, %654
  %709 = load i32, ptr %6, align 4, !tbaa !15
  %710 = add i32 %709, -1002
  %or.cond513 = icmp ult i32 %710, 998
  br i1 %or.cond513, label %711, label %933

711:                                              ; preds = %708
  %712 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %.not423 = icmp eq i32 %712, 15
  br i1 %.not423, label %722, label %713

713:                                              ; preds = %711
  %.not441 = icmp eq i32 %8, 0
  br i1 %.not441, label %933, label %714

714:                                              ; preds = %713
  %715 = load i32, ptr %6, align 4, !tbaa !15
  %716 = icmp ult i32 %715, 1101
  br i1 %716, label %717, label %933

717:                                              ; preds = %714
  %718 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %719 = icmp ugt i32 %718, 1
  %720 = load i32, ptr @libxsmm_verbosity, align 4
  %721 = select i1 %719, i32 %720, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 232, i32 noundef %721) #5
  br label %1914

722:                                              ; preds = %711
  %723 = load i32, ptr %6, align 4, !tbaa !15
  %724 = icmp ugt i32 %723, 1050
  br i1 %724, label %725, label %.thread570

725:                                              ; preds = %722
  %726 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %727 = icmp eq i32 %726, 12
  br i1 %727, label %731, label %728

728:                                              ; preds = %725
  %729 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %730 = icmp eq i32 %729, 4
  br i1 %730, label %731, label %740

731:                                              ; preds = %728, %725
  %732 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %733 = icmp eq i32 %732, 3
  br i1 %733, label %734, label %740

734:                                              ; preds = %731
  %735 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %736 = icmp eq i32 %735, 3
  br i1 %736, label %933, label %737

737:                                              ; preds = %734
  %738 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %739 = icmp eq i32 %738, 1
  br i1 %739, label %933, label %740

740:                                              ; preds = %737, %731, %728
  %.pr569 = load i32, ptr %6, align 4, !tbaa !15
  %741 = icmp ugt i32 %.pr569, 1050
  br i1 %741, label %742, label %.thread570

742:                                              ; preds = %740
  %743 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %744 = icmp eq i32 %743, 12
  %or.cond13 = and i1 %.not505, %744
  br i1 %or.cond13, label %745, label %.thread570

745:                                              ; preds = %742
  %746 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %747 = icmp eq i32 %746, 2
  br i1 %747, label %748, label %.thread570

748:                                              ; preds = %745
  %749 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %750 = icmp eq i32 %749, 1
  br i1 %750, label %751, label %.thread570

751:                                              ; preds = %748
  %752 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %753 = icmp eq i32 %752, 2
  br i1 %753, label %757, label %754

754:                                              ; preds = %751
  %755 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %756 = icmp eq i32 %755, 1
  br i1 %756, label %757, label %.thread570

757:                                              ; preds = %754, %751
  %758 = load i32, ptr %46, align 4, !tbaa !21
  %759 = and i32 %758, 1
  %.not436 = icmp eq i32 %759, 0
  br i1 %.not436, label %765, label %760

760:                                              ; preds = %757
  %761 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %762 = icmp ugt i32 %761, 1
  %763 = load i32, ptr @libxsmm_verbosity, align 4
  %764 = select i1 %762, i32 %763, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90049, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 248, i32 noundef %764) #5
  br label %1914

765:                                              ; preds = %757
  %766 = and i32 %758, 2048
  %.not437 = icmp eq i32 %766, 0
  br i1 %.not437, label %772, label %767

767:                                              ; preds = %765
  %768 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %769 = icmp ugt i32 %768, 1
  %770 = load i32, ptr @libxsmm_verbosity, align 4
  %771 = select i1 %769, i32 %770, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90041, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 251, i32 noundef %771) #5
  br label %1914

772:                                              ; preds = %765
  %773 = and i32 %758, 2
  %.not438 = icmp eq i32 %773, 0
  br i1 %.not438, label %779, label %774

774:                                              ; preds = %772
  %775 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %776 = icmp ugt i32 %775, 1
  %777 = load i32, ptr @libxsmm_verbosity, align 4
  %778 = select i1 %776, i32 %777, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90039, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 254, i32 noundef %778) #5
  br label %1914

779:                                              ; preds = %772
  %780 = and i32 %758, 4096
  %.not439 = icmp eq i32 %780, 0
  br i1 %.not439, label %786, label %781

781:                                              ; preds = %779
  %782 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %783 = icmp ugt i32 %782, 1
  %784 = load i32, ptr @libxsmm_verbosity, align 4
  %785 = select i1 %783, i32 %784, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90042, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 257, i32 noundef %785) #5
  br label %1914

786:                                              ; preds = %779
  %787 = getelementptr inbounds i8, ptr %3, i64 8
  %788 = load i32, ptr %787, align 4, !tbaa !22
  %789 = and i32 %788, 1
  %.not440 = icmp eq i32 %789, 0
  br i1 %.not440, label %933, label %790

790:                                              ; preds = %786
  %791 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %792 = icmp ugt i32 %791, 1
  %793 = load i32, ptr @libxsmm_verbosity, align 4
  %794 = select i1 %792, i32 %793, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 260, i32 noundef %794) #5
  br label %1914

.thread570:                                       ; preds = %722, %754, %748, %745, %742, %740
  %795 = icmp ne i32 %12, 0
  %796 = or i32 %14, %9
  %797 = icmp ne i32 %796, 0
  %or.cond17 = select i1 %795, i1 true, i1 %797
  br i1 %or.cond17, label %798, label %840

798:                                              ; preds = %.thread570
  %799 = load i32, ptr %6, align 4, !tbaa !15
  %800 = icmp ugt i32 %799, 1103
  br i1 %800, label %801, label %840

801:                                              ; preds = %798
  %802 = load i32, ptr %46, align 4, !tbaa !21
  %803 = and i32 %802, 1
  %.not432 = icmp eq i32 %803, 0
  br i1 %.not432, label %809, label %804

804:                                              ; preds = %801
  %805 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %806 = icmp ugt i32 %805, 1
  %807 = load i32, ptr @libxsmm_verbosity, align 4
  %808 = select i1 %806, i32 %807, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90049, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 267, i32 noundef %808) #5
  br label %1914

809:                                              ; preds = %801
  %810 = and i32 %802, 2048
  %811 = icmp eq i32 %810, 0
  br i1 %811, label %812, label %817

812:                                              ; preds = %809
  %813 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %814 = icmp ugt i32 %813, 1
  %815 = load i32, ptr @libxsmm_verbosity, align 4
  %816 = select i1 %814, i32 %815, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90041, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 270, i32 noundef %816) #5
  br label %1914

817:                                              ; preds = %809
  %818 = and i32 %802, 2
  %.not433 = icmp eq i32 %818, 0
  br i1 %.not433, label %824, label %819

819:                                              ; preds = %817
  %820 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %821 = icmp ugt i32 %820, 1
  %822 = load i32, ptr @libxsmm_verbosity, align 4
  %823 = select i1 %821, i32 %822, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90039, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 273, i32 noundef %823) #5
  br label %1914

824:                                              ; preds = %817
  %825 = and i32 %802, 4096
  %.not434 = icmp eq i32 %825, 0
  br i1 %.not434, label %831, label %826

826:                                              ; preds = %824
  %827 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %828 = icmp ugt i32 %827, 1
  %829 = load i32, ptr @libxsmm_verbosity, align 4
  %830 = select i1 %828, i32 %829, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90042, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 276, i32 noundef %830) #5
  br label %1914

831:                                              ; preds = %824
  %832 = getelementptr inbounds i8, ptr %3, i64 8
  %833 = load i32, ptr %832, align 4, !tbaa !22
  %834 = and i32 %833, 1
  %.not435 = icmp eq i32 %834, 0
  br i1 %.not435, label %933, label %835

835:                                              ; preds = %831
  %836 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %837 = icmp ugt i32 %836, 1
  %838 = load i32, ptr @libxsmm_verbosity, align 4
  %839 = select i1 %837, i32 %838, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 279, i32 noundef %839) #5
  br label %1914

840:                                              ; preds = %.thread570, %798
  %841 = or i32 %10, %9
  %or.cond19.not = icmp eq i32 %841, 0
  br i1 %or.cond19.not, label %884, label %842

842:                                              ; preds = %840
  %843 = load i32, ptr %6, align 4, !tbaa !15
  %844 = icmp ugt i32 %843, 1005
  br i1 %844, label %845, label %884

845:                                              ; preds = %842
  %846 = load i32, ptr %46, align 4, !tbaa !21
  %847 = and i32 %846, 1
  %.not428 = icmp eq i32 %847, 0
  br i1 %.not428, label %853, label %848

848:                                              ; preds = %845
  %849 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %850 = icmp ugt i32 %849, 1
  %851 = load i32, ptr @libxsmm_verbosity, align 4
  %852 = select i1 %850, i32 %851, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90049, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 286, i32 noundef %852) #5
  br label %1914

853:                                              ; preds = %845
  %854 = and i32 %846, 2048
  %855 = icmp eq i32 %854, 0
  br i1 %855, label %856, label %861

856:                                              ; preds = %853
  %857 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %858 = icmp ugt i32 %857, 1
  %859 = load i32, ptr @libxsmm_verbosity, align 4
  %860 = select i1 %858, i32 %859, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90041, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 289, i32 noundef %860) #5
  br label %1914

861:                                              ; preds = %853
  %862 = and i32 %846, 2
  %.not429 = icmp eq i32 %862, 0
  br i1 %.not429, label %868, label %863

863:                                              ; preds = %861
  %864 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %865 = icmp ugt i32 %864, 1
  %866 = load i32, ptr @libxsmm_verbosity, align 4
  %867 = select i1 %865, i32 %866, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90039, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 292, i32 noundef %867) #5
  br label %1914

868:                                              ; preds = %861
  %869 = and i32 %846, 4096
  %.not430 = icmp eq i32 %869, 0
  br i1 %.not430, label %875, label %870

870:                                              ; preds = %868
  %871 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %872 = icmp ugt i32 %871, 1
  %873 = load i32, ptr @libxsmm_verbosity, align 4
  %874 = select i1 %872, i32 %873, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90042, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 295, i32 noundef %874) #5
  br label %1914

875:                                              ; preds = %868
  %876 = getelementptr inbounds i8, ptr %3, i64 8
  %877 = load i32, ptr %876, align 4, !tbaa !22
  %878 = and i32 %877, 31
  %.not431 = icmp eq i32 %878, 0
  br i1 %.not431, label %933, label %879

879:                                              ; preds = %875
  %880 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %881 = icmp ugt i32 %880, 1
  %882 = load i32, ptr @libxsmm_verbosity, align 4
  %883 = select i1 %881, i32 %882, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 298, i32 noundef %883) #5
  br label %1914

884:                                              ; preds = %840, %842
  %885 = or i32 %11, %9
  %or.cond21.not = icmp eq i32 %885, 0
  br i1 %or.cond21.not, label %928, label %886

886:                                              ; preds = %884
  %887 = load i32, ptr %6, align 4, !tbaa !15
  %888 = icmp ugt i32 %887, 1007
  br i1 %888, label %889, label %928

889:                                              ; preds = %886
  %890 = load i32, ptr %46, align 4, !tbaa !21
  %891 = and i32 %890, 1
  %.not424 = icmp eq i32 %891, 0
  br i1 %.not424, label %897, label %892

892:                                              ; preds = %889
  %893 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %894 = icmp ugt i32 %893, 1
  %895 = load i32, ptr @libxsmm_verbosity, align 4
  %896 = select i1 %894, i32 %895, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90049, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 305, i32 noundef %896) #5
  br label %1914

897:                                              ; preds = %889
  %898 = and i32 %890, 2048
  %899 = icmp eq i32 %898, 0
  br i1 %899, label %900, label %905

900:                                              ; preds = %897
  %901 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %902 = icmp ugt i32 %901, 1
  %903 = load i32, ptr @libxsmm_verbosity, align 4
  %904 = select i1 %902, i32 %903, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90041, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 308, i32 noundef %904) #5
  br label %1914

905:                                              ; preds = %897
  %906 = and i32 %890, 2
  %.not425 = icmp eq i32 %906, 0
  br i1 %.not425, label %912, label %907

907:                                              ; preds = %905
  %908 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %909 = icmp ugt i32 %908, 1
  %910 = load i32, ptr @libxsmm_verbosity, align 4
  %911 = select i1 %909, i32 %910, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90039, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 311, i32 noundef %911) #5
  br label %1914

912:                                              ; preds = %905
  %913 = and i32 %890, 4096
  %.not426 = icmp eq i32 %913, 0
  br i1 %.not426, label %919, label %914

914:                                              ; preds = %912
  %915 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %916 = icmp ugt i32 %915, 1
  %917 = load i32, ptr @libxsmm_verbosity, align 4
  %918 = select i1 %916, i32 %917, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90042, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 314, i32 noundef %918) #5
  br label %1914

919:                                              ; preds = %912
  %920 = getelementptr inbounds i8, ptr %3, i64 8
  %921 = load i32, ptr %920, align 4, !tbaa !22
  %922 = and i32 %921, 31
  %.not427 = icmp eq i32 %922, 0
  br i1 %.not427, label %933, label %923

923:                                              ; preds = %919
  %924 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %925 = icmp ugt i32 %924, 1
  %926 = load i32, ptr @libxsmm_verbosity, align 4
  %927 = select i1 %925, i32 %926, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 317, i32 noundef %927) #5
  br label %1914

928:                                              ; preds = %884, %886
  %929 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %930 = icmp ugt i32 %929, 1
  %931 = load i32, ptr @libxsmm_verbosity, align 4
  %932 = select i1 %930, i32 %931, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 323, i32 noundef %932) #5
  br label %1914

933:                                              ; preds = %713, %714, %786, %875, %919, %831, %734, %737, %708
  %934 = load i32, ptr %46, align 4, !tbaa !21
  %935 = and i32 %934, 4096
  %.not442 = icmp eq i32 %935, 0
  br i1 %.not442, label %958, label %936

936:                                              ; preds = %933
  %937 = load i32, ptr %6, align 4, !tbaa !15
  %938 = add i32 %937, -1002
  %or.cond514 = icmp ult i32 %938, 998
  br i1 %or.cond514, label %939, label %958

939:                                              ; preds = %936
  %940 = and i32 %934, 2
  %.not443 = icmp eq i32 %940, 0
  br i1 %.not443, label %953, label %941

941:                                              ; preds = %939
  %942 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %943 = icmp eq i32 %942, 2
  br i1 %943, label %944, label %948

944:                                              ; preds = %941
  %945 = load i32, ptr %6, align 4, !tbaa !15
  %946 = icmp ugt i32 %945, 1103
  br i1 %946, label %947, label %958

947:                                              ; preds = %944
  store i32 1101, ptr %6, align 4, !tbaa !15
  br label %958

948:                                              ; preds = %941
  %949 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %950 = icmp ugt i32 %949, 1
  %951 = load i32, ptr @libxsmm_verbosity, align 4
  %952 = select i1 %950, i32 %951, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90042, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 338, i32 noundef %952) #5
  br label %958

953:                                              ; preds = %939
  %954 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %955 = icmp ugt i32 %954, 1
  %956 = load i32, ptr @libxsmm_verbosity, align 4
  %957 = select i1 %955, i32 %956, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90042, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 341, i32 noundef %957) #5
  br label %1914

958:                                              ; preds = %944, %947, %948, %936, %933
  %959 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %960 = icmp eq i32 %959, 2
  %961 = getelementptr inbounds i8, ptr %3, i64 8
  %962 = load i32, ptr %961, align 4
  %963 = icmp eq i32 %962, 1
  %or.cond24 = select i1 %960, i1 %963, i1 false
  br i1 %or.cond24, label %964, label %969

964:                                              ; preds = %958
  %965 = load i32, ptr %46, align 4, !tbaa !21
  %966 = and i32 %965, 2048
  %.not444 = icmp eq i32 %966, 0
  br i1 %.not444, label %969, label %967

967:                                              ; preds = %964
  %968 = and i32 %965, -2049
  store i32 %968, ptr %46, align 4, !tbaa !21
  br label %969

969:                                              ; preds = %967, %964, %958
  %970 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %971 = icmp eq i32 %970, 10
  br i1 %971, label %975, label %972

972:                                              ; preds = %969
  %973 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %974 = icmp eq i32 %973, 12
  br i1 %974, label %975, label %980

975:                                              ; preds = %972, %969
  %976 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %977 = icmp ugt i32 %976, 1
  %978 = load i32, ptr @libxsmm_verbosity, align 4
  %979 = select i1 %977, i32 %978, i32 1
  call void @libxsmm_handle_error(ptr noundef %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 355, i32 noundef %979) #5
  br label %1914

980:                                              ; preds = %972
  %981 = load i32, ptr %6, align 4, !tbaa !15
  %982 = icmp ult i32 %981, 2
  br i1 %982, label %1683, label %983

983:                                              ; preds = %980
  %984 = icmp ult i32 %981, 1005
  br i1 %984, label %985, label %thread-pre-split584

985:                                              ; preds = %983
  %986 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %987 = icmp eq i32 %986, 0
  br i1 %987, label %1683, label %988

988:                                              ; preds = %985
  %.pr572 = load i32, ptr %6, align 4, !tbaa !15
  %989 = icmp ult i32 %.pr572, 1005
  br i1 %989, label %990, label %thread-pre-split584

990:                                              ; preds = %988
  %991 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %992 = icmp eq i32 %991, 1
  br i1 %992, label %1683, label %993

993:                                              ; preds = %990
  %.pr575 = load i32, ptr %6, align 4, !tbaa !15
  %994 = icmp ult i32 %.pr575, 1005
  br i1 %994, label %995, label %thread-pre-split584

995:                                              ; preds = %993
  %996 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %997 = icmp eq i32 %996, 12
  br i1 %997, label %998, label %.thread576

998:                                              ; preds = %995
  %999 = load i32, ptr %961, align 4, !tbaa !22
  %1000 = and i32 %999, 3
  %.not478 = icmp eq i32 %1000, 0
  br i1 %.not478, label %1683, label %1001

1001:                                             ; preds = %998
  %1002 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1003 = icmp ugt i32 %1002, 1
  %1004 = load i32, ptr @libxsmm_verbosity, align 4
  %1005 = select i1 %1003, i32 %1004, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 369, i32 noundef %1005) #5
  br label %1914

.thread576:                                       ; preds = %995
  %.pr578.pr = load i32, ptr %6, align 4, !tbaa !15
  %1006 = icmp ult i32 %.pr578.pr, 1005
  br i1 %1006, label %1007, label %thread-pre-split584

1007:                                             ; preds = %.thread576
  %1008 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1009 = icmp eq i32 %1008, 10
  br i1 %1009, label %1010, label %1018

1010:                                             ; preds = %1007
  %1011 = load i32, ptr %961, align 4, !tbaa !22
  %1012 = and i32 %1011, 1
  %.not477 = icmp eq i32 %1012, 0
  br i1 %.not477, label %1683, label %1013

1013:                                             ; preds = %1010
  %1014 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1015 = icmp ugt i32 %1014, 1
  %1016 = load i32, ptr @libxsmm_verbosity, align 4
  %1017 = select i1 %1015, i32 %1016, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 375, i32 noundef %1017) #5
  br label %1914

1018:                                             ; preds = %1007
  %.pr581 = load i32, ptr %6, align 4, !tbaa !15
  %1019 = icmp ult i32 %.pr581, 1005
  br i1 %1019, label %1020, label %thread-pre-split584

1020:                                             ; preds = %1018
  %1021 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1022 = icmp eq i32 %1021, 2
  br i1 %1022, label %1023, label %.thread-pre-split584_crit_edge

.thread-pre-split584_crit_edge:                   ; preds = %1020
  %.pr585.pre = load i32, ptr %6, align 4, !tbaa !15
  br label %thread-pre-split584

1023:                                             ; preds = %1020
  %1024 = load i32, ptr %961, align 4, !tbaa !22
  %1025 = and i32 %1024, 1
  %.not475 = icmp eq i32 %1025, 0
  %.pre682 = load i32, ptr %46, align 4, !tbaa !21
  %.pre703 = and i32 %.pre682, 2048
  br i1 %.not475, label %._crit_edge702, label %1026

1026:                                             ; preds = %1023
  %.not476 = icmp eq i32 %.pre703, 0
  br i1 %.not476, label %._crit_edge702, label %1027

1027:                                             ; preds = %1026
  %1028 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1029 = icmp ugt i32 %1028, 1
  %1030 = load i32, ptr @libxsmm_verbosity, align 4
  %1031 = select i1 %1029, i32 %1030, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 381, i32 noundef %1031) #5
  br label %1914

._crit_edge702:                                   ; preds = %1023, %1026
  %.pre-phi704 = phi i32 [ 0, %1026 ], [ %.pre703, %1023 ]
  %1032 = icmp eq i32 %.pre-phi704, 0
  %. = select i1 %1032, i32 7, i32 3
  br label %1683

thread-pre-split584:                              ; preds = %.thread576, %993, %983, %988, %.thread-pre-split584_crit_edge, %1018
  %1033 = phi i32 [ %.pr581, %1018 ], [ %.pr585.pre, %.thread-pre-split584_crit_edge ], [ %.pr572, %988 ], [ %981, %983 ], [ %.pr575, %993 ], [ %.pr578.pr, %.thread576 ]
  %1034 = icmp ult i32 %1033, 1041
  br i1 %1034, label %1035, label %.thread712

1035:                                             ; preds = %thread-pre-split584
  %1036 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1037 = icmp eq i32 %1036, 0
  br i1 %1037, label %1683, label %1038

1038:                                             ; preds = %1035
  %.pre = load i32, ptr %6, align 4, !tbaa !15
  %1039 = icmp ult i32 %.pre, 1041
  br i1 %1039, label %1040, label %.thread712

1040:                                             ; preds = %1038
  %1041 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1042 = icmp eq i32 %1041, 1
  br i1 %1042, label %1683, label %._crit_edge624

._crit_edge624:                                   ; preds = %1040
  %.pre625 = load i32, ptr %6, align 4, !tbaa !15
  br label %.thread712

.thread712:                                       ; preds = %thread-pre-split584, %._crit_edge624, %1038
  %1043 = phi i32 [ %.pre625, %._crit_edge624 ], [ %.pre, %1038 ], [ %1033, %thread-pre-split584 ]
  %1044 = add i32 %1043, -1006
  %or.cond515 = icmp ult i32 %1044, 35
  br i1 %or.cond515, label %1045, label %.thread716

1045:                                             ; preds = %.thread712
  %1046 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1047 = icmp eq i32 %1046, 12
  br i1 %1047, label %1048, label %1056

1048:                                             ; preds = %1045
  %1049 = load i32, ptr %961, align 4, !tbaa !22
  %1050 = and i32 %1049, 3
  %.not474 = icmp eq i32 %1050, 0
  br i1 %.not474, label %1683, label %1051

1051:                                             ; preds = %1048
  %1052 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1053 = icmp ugt i32 %1052, 1
  %1054 = load i32, ptr @libxsmm_verbosity, align 4
  %1055 = select i1 %1053, i32 %1054, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 396, i32 noundef %1055) #5
  br label %1914

1056:                                             ; preds = %1045
  %.pre627 = load i32, ptr %6, align 4, !tbaa !15
  %.pre691 = add i32 %.pre627, -1006
  %or.cond516 = icmp ult i32 %.pre691, 35
  br i1 %or.cond516, label %1057, label %.thread716

1057:                                             ; preds = %1056
  %1058 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1059 = icmp eq i32 %1058, 10
  br i1 %1059, label %1060, label %1068

1060:                                             ; preds = %1057
  %1061 = load i32, ptr %961, align 4, !tbaa !22
  %1062 = and i32 %1061, 1
  %.not473 = icmp eq i32 %1062, 0
  br i1 %.not473, label %1683, label %1063

1063:                                             ; preds = %1060
  %1064 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1065 = icmp ugt i32 %1064, 1
  %1066 = load i32, ptr @libxsmm_verbosity, align 4
  %1067 = select i1 %1065, i32 %1066, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 402, i32 noundef %1067) #5
  br label %1914

1068:                                             ; preds = %1057
  %.pre629 = load i32, ptr %6, align 4, !tbaa !15
  %.pre692 = add i32 %.pre629, -1006
  %or.cond517 = icmp ult i32 %.pre692, 35
  br i1 %or.cond517, label %1069, label %.thread716

1069:                                             ; preds = %1068
  %1070 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1071 = icmp eq i32 %1070, 2
  br i1 %1071, label %1072, label %thread-pre-split586

1072:                                             ; preds = %1069
  %1073 = load i32, ptr %961, align 4, !tbaa !22
  %1074 = and i32 %1073, 1
  %.not471 = icmp eq i32 %1074, 0
  %.pre681 = load i32, ptr %46, align 4, !tbaa !21
  %.pre705 = and i32 %.pre681, 2048
  br i1 %.not471, label %._crit_edge701, label %1075

1075:                                             ; preds = %1072
  %.not472 = icmp eq i32 %.pre705, 0
  br i1 %.not472, label %._crit_edge701, label %1076

1076:                                             ; preds = %1075
  %1077 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1078 = icmp ugt i32 %1077, 1
  %1079 = load i32, ptr @libxsmm_verbosity, align 4
  %1080 = select i1 %1078, i32 %1079, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 408, i32 noundef %1080) #5
  br label %1914

._crit_edge701:                                   ; preds = %1072, %1075
  %.pre-phi706 = phi i32 [ 0, %1075 ], [ %.pre705, %1072 ]
  %1081 = icmp eq i32 %.pre-phi706, 0
  %.518 = select i1 %1081, i32 15, i32 7
  br label %1683

thread-pre-split586:                              ; preds = %1069
  %.pr587 = load i32, ptr %6, align 4, !tbaa !15
  br label %.thread716

.thread716:                                       ; preds = %.thread712, %1056, %thread-pre-split586, %1068
  %1082 = phi i32 [ %.pr587, %thread-pre-split586 ], [ %.pre629, %1068 ], [ %.pre627, %1056 ], [ %1043, %.thread712 ]
  %1083 = icmp ugt i32 %1082, 1005
  %1084 = or i32 %10, %9
  %or.cond26.not = icmp ne i32 %1084, 0
  %or.cond519.not620 = select i1 %1083, i1 %or.cond26.not, i1 false
  %1085 = icmp ugt i32 %1082, 1007
  %or.cond28 = and i1 %32, %1085
  %or.cond616 = or i1 %or.cond519.not620, %or.cond28
  br i1 %or.cond616, label %1086, label %1094

1086:                                             ; preds = %.thread716
  %1087 = load i32, ptr %961, align 4, !tbaa !22
  %1088 = and i32 %1087, 31
  %.not470 = icmp eq i32 %1088, 0
  br i1 %.not470, label %1683, label %1089

1089:                                             ; preds = %1086
  %1090 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1091 = icmp ugt i32 %1090, 1
  %1092 = load i32, ptr @libxsmm_verbosity, align 4
  %1093 = select i1 %1091, i32 %1092, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 420, i32 noundef %1093) #5
  br label %1914

1094:                                             ; preds = %.thread716
  %1095 = icmp ult i32 %1082, 1052
  br i1 %1095, label %1096, label %.thread719

1096:                                             ; preds = %1094
  %1097 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1098 = icmp eq i32 %1097, 0
  br i1 %1098, label %1683, label %1099

1099:                                             ; preds = %1096
  %.pre631 = load i32, ptr %6, align 4, !tbaa !15
  %1100 = icmp ult i32 %.pre631, 1052
  br i1 %1100, label %1101, label %.thread719

1101:                                             ; preds = %1099
  %1102 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1103 = icmp eq i32 %1102, 1
  br i1 %1103, label %1683, label %thread-pre-split588

thread-pre-split588:                              ; preds = %1101
  %.pr589 = load i32, ptr %6, align 4, !tbaa !15
  br label %.thread719

.thread719:                                       ; preds = %1094, %thread-pre-split588, %1099
  %1104 = phi i32 [ %.pr589, %thread-pre-split588 ], [ %.pre631, %1099 ], [ %1082, %1094 ]
  %1105 = icmp eq i32 %1104, 1052
  br i1 %1105, label %1106, label %.thread720

1106:                                             ; preds = %.thread719
  %1107 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1108 = icmp eq i32 %1107, 0
  br i1 %1108, label %1683, label %1109

1109:                                             ; preds = %1106
  %.pre633 = load i32, ptr %6, align 4, !tbaa !15
  %1110 = icmp eq i32 %.pre633, 1052
  br i1 %1110, label %1111, label %.thread720

1111:                                             ; preds = %1109
  %1112 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1113 = icmp eq i32 %1112, 1
  br i1 %1113, label %1683, label %thread-pre-split590

thread-pre-split590:                              ; preds = %1111
  %.pr591 = load i32, ptr %6, align 4, !tbaa !15
  br label %.thread720

.thread720:                                       ; preds = %.thread719, %thread-pre-split590, %1109
  %1114 = phi i32 [ %.pr591, %thread-pre-split590 ], [ %.pre633, %1109 ], [ %1104, %.thread719 ]
  %1115 = icmp eq i32 %1114, 1053
  br i1 %1115, label %1116, label %.thread721

1116:                                             ; preds = %.thread720
  %1117 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1118 = icmp eq i32 %1117, 0
  br i1 %1118, label %1683, label %1119

1119:                                             ; preds = %1116
  %.pre635 = load i32, ptr %6, align 4, !tbaa !15
  %1120 = icmp eq i32 %.pre635, 1053
  br i1 %1120, label %1121, label %.thread721

1121:                                             ; preds = %1119
  %1122 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1123 = icmp eq i32 %1122, 1
  br i1 %1123, label %1683, label %thread-pre-split592

thread-pre-split592:                              ; preds = %1121
  %.pr593 = load i32, ptr %6, align 4, !tbaa !15
  br label %.thread721

.thread721:                                       ; preds = %.thread720, %thread-pre-split592, %1119
  %1124 = phi i32 [ %.pr593, %thread-pre-split592 ], [ %.pre635, %1119 ], [ %1114, %.thread720 ]
  %1125 = icmp ult i32 %1124, 2000
  br i1 %1125, label %1126, label %.thread722

1126:                                             ; preds = %.thread721
  %1127 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1128 = icmp eq i32 %1127, 0
  br i1 %1128, label %1683, label %1129

1129:                                             ; preds = %1126
  %.pre637 = load i32, ptr %6, align 4, !tbaa !15
  %1130 = icmp ult i32 %.pre637, 2000
  br i1 %1130, label %1131, label %.thread722

1131:                                             ; preds = %1129
  %1132 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1133 = icmp eq i32 %1132, 1
  br i1 %1133, label %1683, label %._crit_edge638

._crit_edge638:                                   ; preds = %1131
  %.pre639 = load i32, ptr %6, align 4, !tbaa !15
  br label %.thread722

.thread722:                                       ; preds = %.thread721, %._crit_edge638, %1129
  %1134 = phi i32 [ %.pre639, %._crit_edge638 ], [ %.pre637, %1129 ], [ %1124, %.thread721 ]
  %1135 = add i32 %1134, -1051
  %or.cond521 = icmp ult i32 %1135, 50
  br i1 %or.cond521, label %1136, label %1147

1136:                                             ; preds = %.thread722
  %1137 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1138 = icmp eq i32 %1137, 10
  br i1 %1138, label %1139, label %._crit_edge640

._crit_edge640:                                   ; preds = %1136
  %.pre641 = load i32, ptr %6, align 4, !tbaa !15
  br label %1147

1139:                                             ; preds = %1136
  %1140 = load i32, ptr %961, align 4, !tbaa !22
  %1141 = and i32 %1140, 1
  %.not469 = icmp eq i32 %1141, 0
  br i1 %.not469, label %1683, label %1142

1142:                                             ; preds = %1139
  %1143 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1144 = icmp ugt i32 %1143, 1
  %1145 = load i32, ptr @libxsmm_verbosity, align 4
  %1146 = select i1 %1144, i32 %1145, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 445, i32 noundef %1146) #5
  br label %1914

1147:                                             ; preds = %._crit_edge640, %.thread722
  %1148 = phi i32 [ %.pre641, %._crit_edge640 ], [ %1134, %.thread722 ]
  %1149 = add i32 %1148, -1101
  %or.cond522 = icmp ult i32 %1149, 899
  br i1 %or.cond522, label %1150, label %1161

1150:                                             ; preds = %1147
  %1151 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1152 = icmp eq i32 %1151, 10
  br i1 %1152, label %1153, label %._crit_edge642

._crit_edge642:                                   ; preds = %1150
  %.pre643 = load i32, ptr %6, align 4, !tbaa !15
  br label %1161

1153:                                             ; preds = %1150
  %1154 = load i32, ptr %961, align 4, !tbaa !22
  %1155 = and i32 %1154, 1
  %.not468 = icmp eq i32 %1155, 0
  br i1 %.not468, label %1683, label %1156

1156:                                             ; preds = %1153
  %1157 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1158 = icmp ugt i32 %1157, 1
  %1159 = load i32, ptr @libxsmm_verbosity, align 4
  %1160 = select i1 %1158, i32 %1159, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 454, i32 noundef %1160) #5
  br label %1914

1161:                                             ; preds = %._crit_edge642, %1147
  %1162 = phi i32 [ %.pre643, %._crit_edge642 ], [ %1148, %1147 ]
  %1163 = add i32 %1162, -1051
  %or.cond524 = icmp ult i32 %1163, 50
  br i1 %or.cond524, label %1164, label %1181

1164:                                             ; preds = %1161
  %1165 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1166 = icmp eq i32 %1165, 12
  br i1 %1166, label %1173, label %1167

1167:                                             ; preds = %1164
  %1168 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1169 = icmp eq i32 %1168, 5
  br i1 %1169, label %1173, label %1170

1170:                                             ; preds = %1167
  %1171 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1172 = icmp eq i32 %1171, 4
  br i1 %1172, label %1173, label %._crit_edge644

._crit_edge644:                                   ; preds = %1170
  %.pre645 = load i32, ptr %6, align 4, !tbaa !15
  br label %1181

1173:                                             ; preds = %1170, %1167, %1164
  %1174 = load i32, ptr %961, align 4, !tbaa !22
  %1175 = and i32 %1174, 3
  %.not467 = icmp eq i32 %1175, 0
  br i1 %.not467, label %1683, label %1176

1176:                                             ; preds = %1173
  %1177 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1178 = icmp ugt i32 %1177, 1
  %1179 = load i32, ptr @libxsmm_verbosity, align 4
  %1180 = select i1 %1178, i32 %1179, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 464, i32 noundef %1180) #5
  br label %1914

1181:                                             ; preds = %._crit_edge644, %1161
  %1182 = phi i32 [ %.pre645, %._crit_edge644 ], [ %1162, %1161 ]
  %1183 = add i32 %1182, -1101
  %or.cond525 = icmp ult i32 %1183, 899
  br i1 %or.cond525, label %1184, label %1217

1184:                                             ; preds = %1181
  %1185 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1186 = icmp eq i32 %1185, 12
  br i1 %1186, label %1193, label %1187

1187:                                             ; preds = %1184
  %1188 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1189 = icmp eq i32 %1188, 5
  br i1 %1189, label %1193, label %1190

1190:                                             ; preds = %1187
  %1191 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1192 = icmp eq i32 %1191, 4
  br i1 %1192, label %1193, label %._crit_edge646

._crit_edge646:                                   ; preds = %1190
  %.pre647 = load i32, ptr %6, align 4, !tbaa !15
  br label %1217

1193:                                             ; preds = %1190, %1187, %1184
  %1194 = load i32, ptr %961, align 4, !tbaa !22
  %1195 = and i32 %1194, 3
  %.not464 = icmp eq i32 %1195, 0
  br i1 %.not464, label %1210, label %1196

1196:                                             ; preds = %1193
  %1197 = load i32, ptr %6, align 4, !tbaa !15
  %1198 = icmp ugt i32 %1197, 1103
  %1199 = and i32 %1194, 1
  %1200 = icmp eq i32 %1199, 0
  %or.cond527 = and i1 %1200, %1198
  br i1 %or.cond527, label %1201, label %1205

1201:                                             ; preds = %1196
  %1202 = load i32, ptr %46, align 4, !tbaa !21
  %1203 = and i32 %1202, 2048
  %1204 = icmp eq i32 %1203, 0
  br i1 %1204, label %1210, label %1205

1205:                                             ; preds = %1201, %1196
  %1206 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1207 = icmp ugt i32 %1206, 1
  %1208 = load i32, ptr @libxsmm_verbosity, align 4
  %1209 = select i1 %1207, i32 %1208, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 478, i32 noundef %1209) #5
  br label %1914

1210:                                             ; preds = %1201, %1193
  %.not465 = icmp eq i32 %8, 0
  %1211 = and i32 %1194, 7
  %.not466 = icmp eq i32 %1211, 0
  %or.cond617 = or i1 %.not465, %.not466
  br i1 %or.cond617, label %1683, label %1212

1212:                                             ; preds = %1210
  %1213 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1214 = icmp ugt i32 %1213, 1
  %1215 = load i32, ptr @libxsmm_verbosity, align 4
  %1216 = select i1 %1214, i32 %1215, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 483, i32 noundef %1216) #5
  br label %1914

1217:                                             ; preds = %._crit_edge646, %1181
  %1218 = phi i32 [ %.pre647, %._crit_edge646 ], [ %1182, %1181 ]
  %1219 = add i32 %1218, -1051
  %or.cond529 = icmp ult i32 %1219, 50
  br i1 %or.cond529, label %1220, label %1233

1220:                                             ; preds = %1217
  %1221 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1222 = icmp eq i32 %1221, 2
  br i1 %1222, label %1223, label %._crit_edge648

._crit_edge648:                                   ; preds = %1220
  %.pre649 = load i32, ptr %6, align 4, !tbaa !15
  br label %1233

1223:                                             ; preds = %1220
  %1224 = load i32, ptr %961, align 4, !tbaa !22
  %1225 = and i32 %1224, 1
  %.not462 = icmp eq i32 %1225, 0
  %.pre680 = load i32, ptr %46, align 4, !tbaa !21
  %.pre707 = and i32 %.pre680, 2048
  br i1 %.not462, label %._crit_edge700, label %1226

1226:                                             ; preds = %1223
  %.not463 = icmp eq i32 %.pre707, 0
  br i1 %.not463, label %._crit_edge700, label %1227

1227:                                             ; preds = %1226
  %1228 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1229 = icmp ugt i32 %1228, 1
  %1230 = load i32, ptr @libxsmm_verbosity, align 4
  %1231 = select i1 %1229, i32 %1230, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 491, i32 noundef %1231) #5
  br label %1914

._crit_edge700:                                   ; preds = %1223, %1226
  %.pre-phi708 = phi i32 [ 0, %1226 ], [ %.pre707, %1223 ]
  %1232 = icmp eq i32 %.pre-phi708, 0
  %.530 = select i1 %1232, i32 15, i32 7
  br label %1683

1233:                                             ; preds = %._crit_edge648, %1217
  %1234 = phi i32 [ %.pre649, %._crit_edge648 ], [ %1218, %1217 ]
  %1235 = add i32 %1234, -1101
  %or.cond531 = icmp ult i32 %1235, 899
  br i1 %or.cond531, label %1236, label %1249

1236:                                             ; preds = %1233
  %1237 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1238 = icmp eq i32 %1237, 2
  br i1 %1238, label %1239, label %._crit_edge650

._crit_edge650:                                   ; preds = %1236
  %.pre651 = load i32, ptr %6, align 4, !tbaa !15
  br label %1249

1239:                                             ; preds = %1236
  %1240 = load i32, ptr %961, align 4, !tbaa !22
  %1241 = and i32 %1240, 1
  %.not460 = icmp eq i32 %1241, 0
  %.pre679 = load i32, ptr %46, align 4, !tbaa !21
  %.pre709 = and i32 %.pre679, 2048
  br i1 %.not460, label %._crit_edge699, label %1242

1242:                                             ; preds = %1239
  %.not461 = icmp eq i32 %.pre709, 0
  br i1 %.not461, label %._crit_edge699, label %1243

1243:                                             ; preds = %1242
  %1244 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1245 = icmp ugt i32 %1244, 1
  %1246 = load i32, ptr @libxsmm_verbosity, align 4
  %1247 = select i1 %1245, i32 %1246, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 506, i32 noundef %1247) #5
  br label %1914

._crit_edge699:                                   ; preds = %1239, %1242
  %.pre-phi710 = phi i32 [ 0, %1242 ], [ %.pre709, %1239 ]
  %1248 = icmp eq i32 %.pre-phi710, 0
  %.532 = select i1 %1248, i32 31, i32 15
  br label %1683

1249:                                             ; preds = %._crit_edge650, %1233
  %1250 = phi i32 [ %.pre651, %._crit_edge650 ], [ %1234, %1233 ]
  %1251 = add i32 %1250, -1105
  %or.cond533 = icmp ult i32 %1251, 895
  br i1 %or.cond533, label %1252, label %1262

1252:                                             ; preds = %1249
  %1253 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1254 = icmp eq i32 %1253, 3
  br i1 %1254, label %1255, label %thread-pre-split594

1255:                                             ; preds = %1252
  %1256 = load i32, ptr %961, align 4, !tbaa !22
  %1257 = and i32 %1256, 1
  %1258 = icmp eq i32 %1257, 0
  br i1 %1258, label %1259, label %thread-pre-split594

1259:                                             ; preds = %1255
  %1260 = load i32, ptr %46, align 4, !tbaa !21
  %1261 = and i32 %1260, 2048
  %.not445 = icmp eq i32 %1261, 0
  br i1 %.not445, label %thread-pre-split594, label %1683

thread-pre-split594:                              ; preds = %1252, %1255, %1259
  %.pr595 = load i32, ptr %6, align 4, !tbaa !15
  br label %1262

1262:                                             ; preds = %thread-pre-split594, %1249
  %1263 = phi i32 [ %.pr595, %thread-pre-split594 ], [ %1250, %1249 ]
  %1264 = icmp ult i32 %1263, 2000
  br i1 %1264, label %1265, label %1289

1265:                                             ; preds = %1262
  %1266 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %1267 = icmp eq i32 %1266, 12
  br i1 %1267, label %1268, label %1289

1268:                                             ; preds = %1265
  %1269 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %1270 = icmp eq i32 %1269, 2
  br i1 %1270, label %1271, label %1289

1271:                                             ; preds = %1268
  %1272 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %1273 = icmp eq i32 %1272, 2
  br i1 %1273, label %1277, label %1274

1274:                                             ; preds = %1271
  %1275 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %1276 = icmp eq i32 %1275, 1
  br i1 %1276, label %1277, label %1289

1277:                                             ; preds = %1274, %1271
  %1278 = load i32, ptr %46, align 4, !tbaa !21
  %1279 = and i32 %1278, 2048
  %1280 = icmp ne i32 %1279, 0
  %or.cond30 = and i1 %.not505, %1280
  br i1 %or.cond30, label %1281, label %1286

1281:                                             ; preds = %1277
  %1282 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1283 = icmp ugt i32 %1282, 1
  %1284 = load i32, ptr @libxsmm_verbosity, align 4
  %1285 = select i1 %1283, i32 %1284, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 525, i32 noundef %1285) #5
  br label %1914

1286:                                             ; preds = %1277
  %1287 = load i32, ptr %6, align 4, !tbaa !15
  %1288 = icmp ugt i32 %1287, 1102
  %.534 = select i1 %1288, i32 15, i32 7
  br label %1683

1289:                                             ; preds = %1274, %1268, %1265, %1262
  %1290 = load i32, ptr %6, align 4, !tbaa !15
  %1291 = add i32 %1290, -1104
  %or.cond535 = icmp ult i32 %1291, 896
  br i1 %or.cond535, label %1292, label %1324

1292:                                             ; preds = %1289
  %1293 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %1294 = icmp eq i32 %1293, 12
  br i1 %1294, label %1298, label %1295

1295:                                             ; preds = %1292
  %1296 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %1297 = icmp eq i32 %1296, 4
  br i1 %1297, label %1298, label %1324

1298:                                             ; preds = %1295, %1292
  %1299 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %1300 = icmp eq i32 %1299, 3
  br i1 %1300, label %1301, label %1324

1301:                                             ; preds = %1298
  %1302 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %1303 = icmp eq i32 %1302, 3
  br i1 %1303, label %1307, label %1304

1304:                                             ; preds = %1301
  %1305 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %1306 = icmp eq i32 %1305, 1
  br i1 %1306, label %1307, label %1324

1307:                                             ; preds = %1304, %1301
  %1308 = load i32, ptr %46, align 4, !tbaa !21
  %1309 = and i32 %1308, 2048
  %.not459 = icmp eq i32 %1309, 0
  br i1 %.not459, label %1318, label %1310

1310:                                             ; preds = %1307
  %1311 = load i32, ptr %6, align 4, !tbaa !15
  %1312 = icmp ult i32 %1311, 1105
  br i1 %1312, label %1313, label %1318

1313:                                             ; preds = %1310
  %1314 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1315 = icmp ugt i32 %1314, 1
  %1316 = load i32, ptr @libxsmm_verbosity, align 4
  %1317 = select i1 %1315, i32 %1316, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 540, i32 noundef %1317) #5
  br label %1914

1318:                                             ; preds = %1310, %1307
  %1319 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %1320 = icmp eq i32 %1319, 3
  br i1 %1320, label %1683, label %1321

1321:                                             ; preds = %1318
  %1322 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %1323 = icmp eq i32 %1322, 14
  %spec.select = select i1 %1323, i32 31, i32 15
  br label %1683

1324:                                             ; preds = %1304, %1298, %1295, %1289
  %1325 = load i32, ptr %6, align 4, !tbaa !15
  %1326 = add i32 %1325, -1104
  %or.cond536 = icmp ult i32 %1326, 896
  br i1 %or.cond536, label %1327, label %1354

1327:                                             ; preds = %1324
  %1328 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %1329 = icmp eq i32 %1328, 5
  br i1 %1329, label %1333, label %1330

1330:                                             ; preds = %1327
  %1331 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %1332 = icmp eq i32 %1331, 4
  br i1 %1332, label %1333, label %1354

1333:                                             ; preds = %1330, %1327
  %1334 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %1335 = icmp eq i32 %1334, 2
  br i1 %1335, label %1336, label %1354

1336:                                             ; preds = %1333
  %1337 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %1338 = icmp eq i32 %1337, 2
  br i1 %1338, label %1342, label %1339

1339:                                             ; preds = %1336
  %1340 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %1341 = icmp eq i32 %1340, 1
  br i1 %1341, label %1342, label %1354

1342:                                             ; preds = %1339, %1336
  %1343 = load i32, ptr %46, align 4, !tbaa !21
  %1344 = and i32 %1343, 2048
  %.not458 = icmp eq i32 %1344, 0
  br i1 %.not458, label %1349, label %1345

1345:                                             ; preds = %1342
  %1346 = load i32, ptr %961, align 4, !tbaa !22
  %1347 = and i32 %1346, 1
  %1348 = icmp eq i32 %1347, 0
  br i1 %1348, label %1683, label %1349

1349:                                             ; preds = %1345, %1342
  %1350 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1351 = icmp ugt i32 %1350, 1
  %1352 = load i32, ptr @libxsmm_verbosity, align 4
  %1353 = select i1 %1351, i32 %1352, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 557, i32 noundef %1353) #5
  br label %1914

1354:                                             ; preds = %1339, %1333, %1330, %1324
  %1355 = load i32, ptr %6, align 4, !tbaa !15
  %1356 = add i32 %1355, -1104
  %or.cond537 = icmp ult i32 %1356, 896
  br i1 %or.cond537, label %1357, label %1380

1357:                                             ; preds = %1354
  %1358 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1359 = icmp eq i32 %1358, 3
  br i1 %1359, label %1360, label %1380

1360:                                             ; preds = %1357
  %1361 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %1362 = icmp eq i32 %1361, 3
  br i1 %1362, label %1366, label %1363

1363:                                             ; preds = %1360
  %1364 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %1365 = icmp eq i32 %1364, 1
  br i1 %1365, label %1366, label %1380

1366:                                             ; preds = %1363, %1360
  %1367 = load i32, ptr %46, align 4, !tbaa !21
  %1368 = and i32 %1367, 2048
  %.not457 = icmp eq i32 %1368, 0
  br i1 %.not457, label %1374, label %1369

1369:                                             ; preds = %1366
  %1370 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1371 = icmp ugt i32 %1370, 1
  %1372 = load i32, ptr @libxsmm_verbosity, align 4
  %1373 = select i1 %1371, i32 %1372, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 565, i32 noundef %1373) #5
  br label %1914

1374:                                             ; preds = %1366
  %1375 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %1376 = icmp eq i32 %1375, 3
  br i1 %1376, label %1683, label %1377

1377:                                             ; preds = %1374
  %1378 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %205) #5
  %1379 = icmp eq i32 %1378, 14
  %spec.select554 = select i1 %1379, i32 31, i32 15
  br label %1683

1380:                                             ; preds = %1363, %1357, %1354
  %1381 = load i32, ptr %6, align 4, !tbaa !15
  %1382 = add i32 %1381, -1101
  %or.cond539 = icmp ult i32 %1382, 3
  br i1 %or.cond539, label %1383, label %1400

1383:                                             ; preds = %1380
  %1384 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1385 = icmp eq i32 %1384, 3
  br i1 %1385, label %1386, label %1400

1386:                                             ; preds = %1383
  %1387 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %1388 = icmp eq i32 %1387, 3
  br i1 %1388, label %1392, label %1389

1389:                                             ; preds = %1386
  %1390 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %1391 = icmp eq i32 %1390, 1
  br i1 %1391, label %1392, label %1400

1392:                                             ; preds = %1389, %1386
  %1393 = load i32, ptr %46, align 4, !tbaa !21
  %1394 = and i32 %1393, 2048
  %.not456 = icmp eq i32 %1394, 0
  br i1 %.not456, label %1683, label %1395

1395:                                             ; preds = %1392
  %1396 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1397 = icmp ugt i32 %1396, 1
  %1398 = load i32, ptr @libxsmm_verbosity, align 4
  %1399 = select i1 %1397, i32 %1398, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 579, i32 noundef %1399) #5
  br label %1914

1400:                                             ; preds = %1389, %1383, %1380
  %1401 = load i32, ptr %6, align 4, !tbaa !15
  %1402 = add i32 %1401, -1051
  %or.cond541 = icmp ult i32 %1402, 50
  br i1 %or.cond541, label %1403, label %1420

1403:                                             ; preds = %1400
  %1404 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1405 = icmp eq i32 %1404, 3
  br i1 %1405, label %1406, label %1420

1406:                                             ; preds = %1403
  %1407 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %1408 = icmp eq i32 %1407, 3
  br i1 %1408, label %1412, label %1409

1409:                                             ; preds = %1406
  %1410 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %1411 = icmp eq i32 %1410, 1
  br i1 %1411, label %1412, label %1420

1412:                                             ; preds = %1409, %1406
  %1413 = load i32, ptr %46, align 4, !tbaa !21
  %1414 = and i32 %1413, 2048
  %.not455 = icmp eq i32 %1414, 0
  br i1 %.not455, label %1683, label %1415

1415:                                             ; preds = %1412
  %1416 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1417 = icmp ugt i32 %1416, 1
  %1418 = load i32, ptr @libxsmm_verbosity, align 4
  %1419 = select i1 %1417, i32 %1418, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 589, i32 noundef %1419) #5
  br label %1914

1420:                                             ; preds = %1409, %1403, %1400
  %1421 = load i32, ptr %6, align 4, !tbaa !15
  %1422 = add i32 %1421, -1101
  %or.cond543 = icmp ult i32 %1422, 3
  br i1 %or.cond543, label %1423, label %1446

1423:                                             ; preds = %1420
  %1424 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %1425 = icmp eq i32 %1424, 12
  br i1 %1425, label %1429, label %1426

1426:                                             ; preds = %1423
  %1427 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %1428 = icmp eq i32 %1427, 4
  br i1 %1428, label %1429, label %1446

1429:                                             ; preds = %1426, %1423
  %1430 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %1431 = icmp eq i32 %1430, 3
  br i1 %1431, label %1432, label %1446

1432:                                             ; preds = %1429
  %1433 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %1434 = icmp eq i32 %1433, 3
  br i1 %1434, label %1438, label %1435

1435:                                             ; preds = %1432
  %1436 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %1437 = icmp eq i32 %1436, 1
  br i1 %1437, label %1438, label %1446

1438:                                             ; preds = %1435, %1432
  %1439 = load i32, ptr %46, align 4, !tbaa !21
  %1440 = and i32 %1439, 2048
  %.not454 = icmp eq i32 %1440, 0
  br i1 %.not454, label %1683, label %1441

1441:                                             ; preds = %1438
  %1442 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1443 = icmp ugt i32 %1442, 1
  %1444 = load i32, ptr @libxsmm_verbosity, align 4
  %1445 = select i1 %1443, i32 %1444, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 600, i32 noundef %1445) #5
  br label %1914

1446:                                             ; preds = %1435, %1429, %1426, %1420
  %1447 = load i32, ptr %6, align 4, !tbaa !15
  %1448 = add i32 %1447, -1051
  %or.cond545 = icmp ult i32 %1448, 50
  br i1 %or.cond545, label %1449, label %1472

1449:                                             ; preds = %1446
  %1450 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %1451 = icmp eq i32 %1450, 12
  br i1 %1451, label %1455, label %1452

1452:                                             ; preds = %1449
  %1453 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %205) #5
  %1454 = icmp eq i32 %1453, 4
  br i1 %1454, label %1455, label %1472

1455:                                             ; preds = %1452, %1449
  %1456 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %205) #5
  %1457 = icmp eq i32 %1456, 3
  br i1 %1457, label %1458, label %1472

1458:                                             ; preds = %1455
  %1459 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %1460 = icmp eq i32 %1459, 3
  br i1 %1460, label %1464, label %1461

1461:                                             ; preds = %1458
  %1462 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %205) #5
  %1463 = icmp eq i32 %1462, 1
  br i1 %1463, label %1464, label %1472

1464:                                             ; preds = %1461, %1458
  %1465 = load i32, ptr %46, align 4, !tbaa !21
  %1466 = and i32 %1465, 2048
  %.not453 = icmp eq i32 %1466, 0
  br i1 %.not453, label %1683, label %1467

1467:                                             ; preds = %1464
  %1468 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1469 = icmp ugt i32 %1468, 1
  %1470 = load i32, ptr @libxsmm_verbosity, align 4
  %1471 = select i1 %1469, i32 %1470, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 611, i32 noundef %1471) #5
  br label %1914

1472:                                             ; preds = %1461, %1455, %1452, %1446
  %1473 = icmp ne i32 %8, 0
  %1474 = icmp ne i32 %12, 0
  %or.cond32 = select i1 %1473, i1 true, i1 %1474
  %1475 = icmp ne i32 %14, 0
  %or.cond34 = select i1 %or.cond32, i1 true, i1 %1475
  %1476 = or i32 %1084, %11
  %1477 = or i32 %1476, %13
  %1478 = icmp ne i32 %1477, 0
  %or.cond42 = select i1 %or.cond34, i1 true, i1 %1478
  %1479 = load i32, ptr %6, align 4, !tbaa !15
  br i1 %or.cond42, label %1480, label %1487

1480:                                             ; preds = %1472
  %1481 = add i32 %1479, -2001
  %or.cond546 = icmp ult i32 %1481, 999
  br i1 %or.cond546, label %1482, label %.thread726

1482:                                             ; preds = %1480
  %1483 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1484 = icmp ugt i32 %1483, 1
  %1485 = load i32, ptr @libxsmm_verbosity, align 4
  %1486 = select i1 %1484, i32 %1485, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 617, i32 noundef %1486) #5
  br label %1914

1487:                                             ; preds = %1472
  %1488 = icmp eq i32 %1479, 2001
  br i1 %1488, label %1489, label %thread-pre-split603

1489:                                             ; preds = %1487
  %1490 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1491 = icmp eq i32 %1490, 1
  br i1 %1491, label %1683, label %1492

1492:                                             ; preds = %1489
  %.pr600 = load i32, ptr %6, align 4, !tbaa !15
  %1493 = icmp eq i32 %.pr600, 2001
  br i1 %1493, label %1494, label %thread-pre-split603

1494:                                             ; preds = %1492
  %1495 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1496 = icmp eq i32 %1495, 0
  br i1 %1496, label %1683, label %.thread-pre-split603_crit_edge

.thread-pre-split603_crit_edge:                   ; preds = %1494
  %.pr604.pre = load i32, ptr %6, align 4, !tbaa !15
  br label %thread-pre-split603

thread-pre-split603:                              ; preds = %1487, %.thread-pre-split603_crit_edge, %1492
  %1497 = phi i32 [ %.pr600, %1492 ], [ %.pr604.pre, %.thread-pre-split603_crit_edge ], [ %1479, %1487 ]
  %1498 = icmp eq i32 %1497, 2002
  br i1 %1498, label %1499, label %.thread725

1499:                                             ; preds = %thread-pre-split603
  %1500 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1501 = icmp eq i32 %1500, 1
  br i1 %1501, label %1683, label %1502

1502:                                             ; preds = %1499
  %.pre654 = load i32, ptr %6, align 4, !tbaa !15
  %1503 = icmp eq i32 %.pre654, 2002
  br i1 %1503, label %1504, label %.thread725

1504:                                             ; preds = %1502
  %1505 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1506 = icmp eq i32 %1505, 0
  br i1 %1506, label %1683, label %thread-pre-split605

thread-pre-split605:                              ; preds = %1504
  %.pr606 = load i32, ptr %6, align 4, !tbaa !15
  br label %.thread725

.thread725:                                       ; preds = %thread-pre-split603, %thread-pre-split605, %1502
  %1507 = phi i32 [ %.pr606, %thread-pre-split605 ], [ %.pre654, %1502 ], [ %1497, %thread-pre-split603 ]
  %1508 = icmp eq i32 %1507, 2101
  br i1 %1508, label %1509, label %.thread726

1509:                                             ; preds = %.thread725
  %1510 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1511 = icmp eq i32 %1510, 1
  br i1 %1511, label %1683, label %1512

1512:                                             ; preds = %1509
  %.pre656 = load i32, ptr %6, align 4, !tbaa !15
  %1513 = icmp eq i32 %.pre656, 2101
  br i1 %1513, label %1514, label %.thread726

1514:                                             ; preds = %1512
  %1515 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1516 = icmp eq i32 %1515, 0
  br i1 %1516, label %1683, label %._crit_edge657

._crit_edge657:                                   ; preds = %1514
  %.pre658 = load i32, ptr %6, align 4, !tbaa !15
  br label %.thread726

.thread726:                                       ; preds = %1480, %.thread725, %._crit_edge657, %1512
  %1517 = phi i32 [ %.pre658, %._crit_edge657 ], [ %.pre656, %1512 ], [ %1507, %.thread725 ], [ %1479, %1480 ]
  %.off = add i32 %1517, -2201
  %switch = icmp ult i32 %.off, 2
  br i1 %switch, label %1518, label %.thread727

1518:                                             ; preds = %.thread726
  %1519 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1520 = icmp eq i32 %1519, 1
  br i1 %1520, label %1683, label %1521

1521:                                             ; preds = %1518
  %.pre660 = load i32, ptr %6, align 4, !tbaa !15
  %.pre694 = add i32 %.pre660, -2201
  %switch556 = icmp ult i32 %.pre694, 2
  br i1 %switch556, label %1522, label %.thread727

1522:                                             ; preds = %1521
  %1523 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1524 = icmp eq i32 %1523, 0
  br i1 %1524, label %1683, label %._crit_edge661

._crit_edge661:                                   ; preds = %1522
  %.pre662 = load i32, ptr %6, align 4, !tbaa !15
  br label %.thread727

.thread727:                                       ; preds = %.thread726, %._crit_edge661, %1521
  %1525 = phi i32 [ %.pre662, %._crit_edge661 ], [ %.pre660, %1521 ], [ %1517, %.thread726 ]
  %.off557 = add i32 %1525, -2301
  %switch558 = icmp ult i32 %.off557, 2
  br i1 %switch558, label %1526, label %.thread730

1526:                                             ; preds = %.thread727
  %1527 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1528 = icmp eq i32 %1527, 1
  br i1 %1528, label %1683, label %1529

1529:                                             ; preds = %1526
  %.pre664 = load i32, ptr %6, align 4, !tbaa !15
  %.pre695 = add i32 %.pre664, -2301
  %switch560 = icmp ult i32 %.pre695, 2
  br i1 %switch560, label %1530, label %.thread730

1530:                                             ; preds = %1529
  %1531 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1532 = icmp eq i32 %1531, 0
  br i1 %1532, label %1683, label %._crit_edge665

._crit_edge665:                                   ; preds = %1530
  %.pre666 = load i32, ptr %6, align 4, !tbaa !15
  br label %.thread730

.thread730:                                       ; preds = %.thread727, %._crit_edge665, %1529
  %1533 = phi i32 [ %.pre666, %._crit_edge665 ], [ %.pre664, %1529 ], [ %1525, %.thread727 ]
  %.off561 = add i32 %1533, -2401
  %switch562 = icmp ult i32 %.off561, 2
  br i1 %switch562, label %1534, label %.thread733

1534:                                             ; preds = %.thread730
  %1535 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1536 = icmp eq i32 %1535, 1
  br i1 %1536, label %1683, label %1537

1537:                                             ; preds = %1534
  %.pre668 = load i32, ptr %6, align 4, !tbaa !15
  %.pre696 = add i32 %.pre668, -2401
  %switch564 = icmp ult i32 %.pre696, 2
  br i1 %switch564, label %1538, label %.thread733

1538:                                             ; preds = %1537
  %1539 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1540 = icmp eq i32 %1539, 0
  br i1 %1540, label %1683, label %thread-pre-split607

thread-pre-split607:                              ; preds = %1538
  %.pr608 = load i32, ptr %6, align 4, !tbaa !15
  br label %.thread733

.thread733:                                       ; preds = %.thread730, %thread-pre-split607, %1537
  %1541 = phi i32 [ %.pr608, %thread-pre-split607 ], [ %.pre668, %1537 ], [ %1533, %.thread730 ]
  %1542 = icmp eq i32 %1541, 2501
  br i1 %1542, label %1543, label %.thread736

1543:                                             ; preds = %.thread733
  %1544 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1545 = icmp eq i32 %1544, 1
  br i1 %1545, label %1683, label %1546

1546:                                             ; preds = %1543
  %.pre670 = load i32, ptr %6, align 4, !tbaa !15
  %1547 = icmp eq i32 %.pre670, 2501
  br i1 %1547, label %1548, label %.thread736

1548:                                             ; preds = %1546
  %1549 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1550 = icmp eq i32 %1549, 0
  br i1 %1550, label %1683, label %._crit_edge671

._crit_edge671:                                   ; preds = %1548
  %.pre672 = load i32, ptr %6, align 4, !tbaa !15
  br label %.thread736

.thread736:                                       ; preds = %.thread733, %._crit_edge671, %1546
  %1551 = phi i32 [ %.pre672, %._crit_edge671 ], [ %.pre670, %1546 ], [ %1541, %.thread733 ]
  %1552 = add i32 %1551, -2001
  %or.cond547 = icmp ult i32 %1552, 999
  br i1 %or.cond547, label %1553, label %.thread737

1553:                                             ; preds = %.thread736
  %1554 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1555 = icmp eq i32 %1554, 2
  %1556 = icmp ne i32 %4, 0
  %or.cond44 = select i1 %1555, i1 %1556, i1 false
  br i1 %or.cond44, label %1561, label %1557

1557:                                             ; preds = %1553
  %1558 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1559 = icmp eq i32 %1558, 12
  %1560 = icmp ne i32 %5, 0
  %or.cond46 = select i1 %1559, i1 %1560, i1 false
  br i1 %or.cond46, label %1561, label %1601

1561:                                             ; preds = %1557, %1553
  %1562 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1563 = icmp eq i32 %1562, 2
  br i1 %1563, label %1564, label %1575

1564:                                             ; preds = %1561
  %1565 = load i32, ptr %961, align 4, !tbaa !22
  %1566 = and i32 %1565, 1
  %.not451 = icmp eq i32 %1566, 0
  br i1 %.not451, label %1586, label %1567

1567:                                             ; preds = %1564
  %1568 = load i32, ptr %46, align 4, !tbaa !21
  %1569 = and i32 %1568, 2048
  %.not452 = icmp eq i32 %1569, 0
  br i1 %.not452, label %1586, label %1570

1570:                                             ; preds = %1567
  %1571 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1572 = icmp ugt i32 %1571, 1
  %1573 = load i32, ptr @libxsmm_verbosity, align 4
  %1574 = select i1 %1572, i32 %1573, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 656, i32 noundef %1574) #5
  br label %1914

1575:                                             ; preds = %1561
  %1576 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1577 = icmp eq i32 %1576, 12
  br i1 %1577, label %1578, label %1586

1578:                                             ; preds = %1575
  %1579 = load i32, ptr %961, align 4, !tbaa !22
  %1580 = and i32 %1579, 3
  %.not450 = icmp eq i32 %1580, 0
  br i1 %.not450, label %1586, label %1581

1581:                                             ; preds = %1578
  %1582 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1583 = icmp ugt i32 %1582, 1
  %1584 = load i32, ptr @libxsmm_verbosity, align 4
  %1585 = select i1 %1583, i32 %1584, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 661, i32 noundef %1585) #5
  br label %1914

1586:                                             ; preds = %1575, %1578, %1564, %1567
  %1587 = load i32, ptr %6, align 4, !tbaa !15
  %1588 = icmp ult i32 %1587, 2201
  br i1 %1588, label %1589, label %1594

1589:                                             ; preds = %1586
  %1590 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1591 = icmp ugt i32 %1590, 1
  %1592 = load i32, ptr @libxsmm_verbosity, align 4
  %1593 = select i1 %1591, i32 %1592, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 670, i32 noundef %1593) #5
  br label %1914

1594:                                             ; preds = %1586
  switch i32 %1587, label %1596 [
    i32 2301, label %1683
    i32 2302, label %1683
    i32 2201, label %1595
    i32 2202, label %1595
  ]

1595:                                             ; preds = %1594, %1594
  br label %1683

1596:                                             ; preds = %1594
  %1597 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1598 = icmp ugt i32 %1597, 1
  %1599 = load i32, ptr @libxsmm_verbosity, align 4
  %1600 = select i1 %1598, i32 %1599, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 683, i32 noundef %1600) #5
  br label %1914

1601:                                             ; preds = %1557
  %.pre674 = load i32, ptr %6, align 4, !tbaa !15
  %.pre697 = add i32 %.pre674, -2001
  %or.cond548 = icmp ult i32 %.pre697, 999
  br i1 %or.cond548, label %1602, label %.thread737

1602:                                             ; preds = %1601
  %1603 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1604 = icmp eq i32 %1603, 2
  %1605 = icmp eq i32 %4, 0
  %or.cond48 = select i1 %1604, i1 %1605, i1 false
  br i1 %or.cond48, label %1610, label %1606

1606:                                             ; preds = %1602
  %1607 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1608 = icmp eq i32 %1607, 12
  %1609 = icmp eq i32 %5, 0
  %or.cond50 = select i1 %1608, i1 %1609, i1 false
  br i1 %or.cond50, label %1610, label %thread-pre-split609

1610:                                             ; preds = %1606, %1602
  %1611 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1612 = icmp eq i32 %1611, 2
  br i1 %1612, label %1613, label %1625

1613:                                             ; preds = %1610
  %1614 = load i32, ptr %46, align 4, !tbaa !21
  %1615 = and i32 %1614, 2048
  %1616 = icmp eq i32 %1615, 0
  br i1 %1616, label %1644, label %1617

1617:                                             ; preds = %1613
  %1618 = load i32, ptr %961, align 4, !tbaa !22
  %1619 = and i32 %1618, 3
  %.not449 = icmp eq i32 %1619, 0
  br i1 %.not449, label %1644, label %1620

1620:                                             ; preds = %1617
  %1621 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1622 = icmp ugt i32 %1621, 1
  %1623 = load i32, ptr @libxsmm_verbosity, align 4
  %1624 = select i1 %1622, i32 %1623, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 704, i32 noundef %1624) #5
  br label %1914

1625:                                             ; preds = %1610
  %1626 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1627 = icmp eq i32 %1626, 12
  br i1 %1627, label %1628, label %1644

1628:                                             ; preds = %1625
  %1629 = load i32, ptr %961, align 4, !tbaa !22
  %1630 = and i32 %1629, 7
  %.not447 = icmp eq i32 %1630, 0
  br i1 %.not447, label %1636, label %1631

1631:                                             ; preds = %1628
  %1632 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1633 = icmp ugt i32 %1632, 1
  %1634 = load i32, ptr @libxsmm_verbosity, align 4
  %1635 = select i1 %1633, i32 %1634, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 710, i32 noundef %1635) #5
  br label %1914

1636:                                             ; preds = %1628
  %1637 = load i32, ptr %46, align 4, !tbaa !21
  %1638 = and i32 %1637, 768
  %or.cond550 = icmp eq i32 %1638, 256
  br i1 %or.cond550, label %1639, label %1644

1639:                                             ; preds = %1636
  %1640 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1641 = icmp ugt i32 %1640, 1
  %1642 = load i32, ptr @libxsmm_verbosity, align 4
  %1643 = select i1 %1641, i32 %1642, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 714, i32 noundef %1643) #5
  br label %1914

1644:                                             ; preds = %1625, %1636, %1613, %1617
  %1645 = load i32, ptr %6, align 4, !tbaa !15
  %1646 = icmp ult i32 %1645, 2201
  br i1 %1646, label %1647, label %1652

1647:                                             ; preds = %1644
  %1648 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1649 = icmp ugt i32 %1648, 1
  %1650 = load i32, ptr @libxsmm_verbosity, align 4
  %1651 = select i1 %1649, i32 %1650, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 724, i32 noundef %1651) #5
  br label %1914

1652:                                             ; preds = %1644
  switch i32 %1645, label %1654 [
    i32 2301, label %1683
    i32 2302, label %1683
    i32 2201, label %1653
    i32 2202, label %1653
  ]

1653:                                             ; preds = %1652, %1652
  br label %1683

1654:                                             ; preds = %1652
  %1655 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1656 = icmp ugt i32 %1655, 1
  %1657 = load i32, ptr @libxsmm_verbosity, align 4
  %1658 = select i1 %1656, i32 %1657, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 736, i32 noundef %1658) #5
  br label %1914

thread-pre-split609:                              ; preds = %1606
  %.pr610 = load i32, ptr %6, align 4, !tbaa !15
  br label %.thread737

.thread737:                                       ; preds = %.thread736, %thread-pre-split609, %1601
  %1659 = phi i32 [ %.pr610, %thread-pre-split609 ], [ %.pre674, %1601 ], [ %1551, %.thread736 ]
  switch i32 %1659, label %1663 [
    i32 3001, label %1660
    i32 3003, label %1660
  ]

1660:                                             ; preds = %.thread737, %.thread737
  %1661 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1662 = icmp eq i32 %1661, 1
  br i1 %1662, label %1683, label %._crit_edge675

._crit_edge675:                                   ; preds = %1660
  %.pre676 = load i32, ptr %6, align 4, !tbaa !15
  br label %1663

1663:                                             ; preds = %._crit_edge675, %.thread737
  %1664 = phi i32 [ %.pre676, %._crit_edge675 ], [ %1659, %.thread737 ]
  switch i32 %1664, label %1668 [
    i32 3001, label %1665
    i32 3003, label %1665
  ]

1665:                                             ; preds = %1663, %1663
  %1666 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1667 = icmp eq i32 %1666, 0
  br i1 %1667, label %1683, label %thread-pre-split611

thread-pre-split611:                              ; preds = %1665
  %.pr612 = load i32, ptr %6, align 4, !tbaa !15
  br label %1668

1668:                                             ; preds = %thread-pre-split611, %1663
  %1669 = phi i32 [ %.pr612, %thread-pre-split611 ], [ %1664, %1663 ]
  switch i32 %1669, label %1673 [
    i32 3002, label %1670
    i32 3004, label %1670
  ]

1670:                                             ; preds = %1668, %1668
  %1671 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1672 = icmp eq i32 %1671, 1
  br i1 %1672, label %1683, label %._crit_edge677

._crit_edge677:                                   ; preds = %1670
  %.pre678 = load i32, ptr %6, align 4, !tbaa !15
  br label %1673

1673:                                             ; preds = %._crit_edge677, %1668
  %1674 = phi i32 [ %.pre678, %._crit_edge677 ], [ %1669, %1668 ]
  switch i32 %1674, label %1678 [
    i32 3002, label %1675
    i32 3004, label %1675
  ]

1675:                                             ; preds = %1673, %1673
  %1676 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1677 = icmp eq i32 %1676, 0
  br i1 %1677, label %1683, label %1678

1678:                                             ; preds = %1673, %1675
  %1679 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1680 = icmp ugt i32 %1679, 1
  %1681 = load i32, ptr @libxsmm_verbosity, align 4
  %1682 = select i1 %1680, i32 %1681, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90004, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 754, i32 noundef %1682) #5
  br label %1914

1683:                                             ; preds = %1377, %1321, %1675, %1670, %1665, %1660, %1652, %1652, %1594, %1594, %1548, %1543, %1538, %1534, %1530, %1526, %1522, %1518, %1514, %1509, %1504, %1499, %1494, %1489, %1464, %1438, %1412, %1392, %1374, %1345, %1318, %1286, %1259, %._crit_edge699, %._crit_edge700, %1131, %1126, %1121, %1116, %1111, %1106, %1101, %1096, %._crit_edge701, %1040, %1035, %._crit_edge702, %990, %985, %998, %1060, %1086, %1153, %1210, %1653, %1595, %1173, %1139, %1048, %1010, %980
  %.0 = phi i32 [ 0, %980 ], [ 3, %998 ], [ 3, %1010 ], [ 7, %1048 ], [ 7, %1060 ], [ 7, %1086 ], [ 7, %1139 ], [ 15, %1153 ], [ 7, %1173 ], [ 15, %1210 ], [ 3, %1595 ], [ 3, %1653 ], [ 1, %985 ], [ 3, %990 ], [ %., %._crit_edge702 ], [ 3, %1035 ], [ 7, %1040 ], [ %.518, %._crit_edge701 ], [ 3, %1096 ], [ 7, %1101 ], [ 3, %1106 ], [ 7, %1111 ], [ 3, %1116 ], [ 7, %1121 ], [ 7, %1126 ], [ 15, %1131 ], [ %.530, %._crit_edge700 ], [ %.532, %._crit_edge699 ], [ 15, %1259 ], [ %.534, %1286 ], [ 31, %1318 ], [ 15, %1345 ], [ 31, %1374 ], [ 15, %1392 ], [ 7, %1412 ], [ 15, %1438 ], [ 7, %1464 ], [ 3, %1489 ], [ 1, %1494 ], [ 3, %1499 ], [ 1, %1504 ], [ 3, %1509 ], [ 1, %1514 ], [ 3, %1518 ], [ 1, %1522 ], [ 7, %1526 ], [ 3, %1530 ], [ 15, %1534 ], [ 7, %1538 ], [ 15, %1543 ], [ 7, %1548 ], [ 7, %1594 ], [ 7, %1594 ], [ 7, %1652 ], [ 7, %1652 ], [ 3, %1660 ], [ 1, %1665 ], [ 7, %1670 ], [ 3, %1675 ], [ %spec.select, %1321 ], [ %spec.select554, %1377 ]
  %1684 = load i32, ptr %46, align 4, !tbaa !21
  %1685 = and i32 %1684, 1
  %.not479 = icmp eq i32 %1685, 0
  %1686 = load i32, ptr %15, align 4, !tbaa !18
  br i1 %.not479, label %1720, label %1687

1687:                                             ; preds = %1683
  %1688 = load i32, ptr %961, align 4, !tbaa !22
  %1689 = icmp uge i32 %1686, %1688
  %or.cond52.not = select i1 %1689, i1 true, i1 %26
  br i1 %or.cond52.not, label %1695, label %1690

1690:                                             ; preds = %1687
  %1691 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1692 = icmp ugt i32 %1691, 1
  %1693 = load i32, ptr @libxsmm_verbosity, align 4
  %1694 = select i1 %1692, i32 %1693, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90050, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 761, i32 noundef %1694) #5
  br label %1914

1695:                                             ; preds = %1687
  %1696 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %.not482 = icmp eq i32 %1696, 1
  br i1 %.not482, label %1712, label %1697

1697:                                             ; preds = %1695
  %1698 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %.not483 = icmp eq i32 %1698, 0
  br i1 %.not483, label %1712, label %1699

1699:                                             ; preds = %1697
  %1700 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %.not484 = icmp eq i32 %1700, 2
  br i1 %.not484, label %1712, label %1701

1701:                                             ; preds = %1699
  %1702 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1703 = icmp eq i32 %1702, 3
  br i1 %1703, label %1704, label %1707

1704:                                             ; preds = %1701
  %1705 = load i32, ptr %6, align 4, !tbaa !15
  %1706 = icmp ugt i32 %1705, 1105
  br i1 %1706, label %._crit_edge683, label %1707

._crit_edge683:                                   ; preds = %1704
  %.pre684 = load i32, ptr %46, align 4, !tbaa !21
  br label %1728

1707:                                             ; preds = %1704, %1701
  %1708 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1709 = icmp ugt i32 %1708, 1
  %1710 = load i32, ptr @libxsmm_verbosity, align 4
  %1711 = select i1 %1709, i32 %1710, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90033, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 770, i32 noundef %1711) #5
  br label %1914

1712:                                             ; preds = %1699, %1697, %1695
  %1713 = load i32, ptr %46, align 4, !tbaa !21
  %1714 = and i32 %1713, 2048
  %.not485 = icmp eq i32 %1714, 0
  br i1 %.not485, label %1728, label %1715

1715:                                             ; preds = %1712
  %1716 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1717 = icmp ugt i32 %1716, 1
  %1718 = load i32, ptr @libxsmm_verbosity, align 4
  %1719 = select i1 %1717, i32 %1718, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90041, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 776, i32 noundef %1719) #5
  br label %1914

1720:                                             ; preds = %1683
  %1721 = load i32, ptr %3, align 4, !tbaa !23
  %1722 = icmp uge i32 %1686, %1721
  %or.cond54.not = select i1 %1722, i1 true, i1 %26
  br i1 %or.cond54.not, label %1728, label %1723

1723:                                             ; preds = %1720
  %1724 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1725 = icmp ugt i32 %1724, 1
  %1726 = load i32, ptr @libxsmm_verbosity, align 4
  %1727 = select i1 %1725, i32 %1726, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90007, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 782, i32 noundef %1727) #5
  br label %1914

1728:                                             ; preds = %._crit_edge683, %1720, %1712
  %1729 = phi i32 [ %.pre684, %._crit_edge683 ], [ %1684, %1720 ], [ %1713, %1712 ]
  %1730 = and i32 %1729, 2
  %.not486 = icmp eq i32 %1730, 0
  %1731 = load i32, ptr %18, align 4, !tbaa !24
  br i1 %.not486, label %1741, label %1732

1732:                                             ; preds = %1728
  %1733 = getelementptr inbounds i8, ptr %3, i64 4
  %1734 = load i32, ptr %1733, align 4, !tbaa !25
  %1735 = icmp uge i32 %1731, %1734
  %or.cond56.not = select i1 %1735, i1 true, i1 %26
  br i1 %or.cond56.not, label %1749, label %1736

1736:                                             ; preds = %1732
  %1737 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1738 = icmp ugt i32 %1737, 1
  %1739 = load i32, ptr @libxsmm_verbosity, align 4
  %1740 = select i1 %1738, i32 %1739, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90040, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 790, i32 noundef %1740) #5
  br label %1914

1741:                                             ; preds = %1728
  %1742 = load i32, ptr %961, align 4, !tbaa !22
  %1743 = icmp uge i32 %1731, %1742
  %or.cond58.not = select i1 %1743, i1 true, i1 %26
  br i1 %or.cond58.not, label %1749, label %1744

1744:                                             ; preds = %1741
  %1745 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1746 = icmp ugt i32 %1745, 1
  %1747 = load i32, ptr @libxsmm_verbosity, align 4
  %1748 = select i1 %1746, i32 %1747, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90008, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 795, i32 noundef %1748) #5
  br label %1914

1749:                                             ; preds = %1741, %1732
  %1750 = getelementptr inbounds i8, ptr %3, i64 20
  %1751 = load i32, ptr %1750, align 4, !tbaa !20
  %1752 = load i32, ptr %3, align 4, !tbaa !23
  %1753 = icmp uge i32 %1751, %1752
  %or.cond60.not = select i1 %1753, i1 true, i1 %26
  br i1 %or.cond60.not, label %1759, label %1754

1754:                                             ; preds = %1749
  %1755 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1756 = icmp ugt i32 %1755, 1
  %1757 = load i32, ptr @libxsmm_verbosity, align 4
  %1758 = select i1 %1756, i32 %1757, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90009, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 802, i32 noundef %1758) #5
  br label %1914

1759:                                             ; preds = %1749
  %1760 = and i32 %1729, 1
  %.not490 = icmp eq i32 %1760, 0
  br i1 %.not490, label %1786, label %1761

1761:                                             ; preds = %1759
  %1762 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %.not491 = icmp eq i32 %1762, 1
  br i1 %.not491, label %1778, label %1763

1763:                                             ; preds = %1761
  %1764 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %.not492 = icmp eq i32 %1764, 0
  br i1 %.not492, label %1778, label %1765

1765:                                             ; preds = %1763
  %1766 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %.not493 = icmp eq i32 %1766, 2
  br i1 %.not493, label %1778, label %1767

1767:                                             ; preds = %1765
  %1768 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1769 = icmp eq i32 %1768, 3
  br i1 %1769, label %1770, label %1773

1770:                                             ; preds = %1767
  %1771 = load i32, ptr %6, align 4, !tbaa !15
  %1772 = icmp ugt i32 %1771, 1105
  br i1 %1772, label %._crit_edge685, label %1773

._crit_edge685:                                   ; preds = %1770
  %.pre686 = load i32, ptr %46, align 4, !tbaa !21
  br label %1786

1773:                                             ; preds = %1770, %1767
  %1774 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1775 = icmp ugt i32 %1774, 1
  %1776 = load i32, ptr @libxsmm_verbosity, align 4
  %1777 = select i1 %1775, i32 %1776, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90049, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 814, i32 noundef %1777) #5
  br label %1914

1778:                                             ; preds = %1765, %1763, %1761
  %1779 = load i32, ptr %46, align 4, !tbaa !21
  %1780 = and i32 %1779, 2048
  %.not494 = icmp eq i32 %1780, 0
  br i1 %.not494, label %1786, label %1781

1781:                                             ; preds = %1778
  %1782 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1783 = icmp ugt i32 %1782, 1
  %1784 = load i32, ptr @libxsmm_verbosity, align 4
  %1785 = select i1 %1783, i32 %1784, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90041, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 820, i32 noundef %1785) #5
  br label %1914

1786:                                             ; preds = %._crit_edge685, %1778, %1759
  %1787 = phi i32 [ %.pre686, %._crit_edge685 ], [ %1779, %1778 ], [ %1729, %1759 ]
  %1788 = and i32 %1787, 2
  %.not495 = icmp eq i32 %1788, 0
  br i1 %.not495, label %1812, label %1789

1789:                                             ; preds = %1786
  %1790 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1791 = icmp eq i32 %1790, 10
  br i1 %1791, label %1795, label %1792

1792:                                             ; preds = %1789
  %1793 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1794 = icmp eq i32 %1793, 12
  br i1 %1794, label %1795, label %1800

1795:                                             ; preds = %1792, %1789
  %1796 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1797 = icmp ugt i32 %1796, 1
  %1798 = load i32, ptr @libxsmm_verbosity, align 4
  %1799 = select i1 %1797, i32 %1798, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90039, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 830, i32 noundef %1799) #5
  br label %1914

1800:                                             ; preds = %1792
  %1801 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1802 = icmp eq i32 %1801, 2
  %.pre688 = load i32, ptr %46, align 4, !tbaa !21
  br i1 %1802, label %1803, label %1812

1803:                                             ; preds = %1800
  %1804 = icmp eq i32 %4, 0
  %1805 = and i32 %.pre688, 4096
  %.not496 = icmp ne i32 %1805, 0
  %or.cond740.not744 = select i1 %1804, i1 %.not496, i1 false
  %1806 = and i32 %.pre688, 2048
  %.not497 = icmp eq i32 %1806, 0
  %or.cond741 = select i1 %or.cond740.not744, i1 true, i1 %.not497
  br i1 %or.cond741, label %1812, label %1807

1807:                                             ; preds = %1803
  %1808 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1809 = icmp ugt i32 %1808, 1
  %1810 = load i32, ptr @libxsmm_verbosity, align 4
  %1811 = select i1 %1809, i32 %1810, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90039, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 839, i32 noundef %1811) #5
  br label %1914

1812:                                             ; preds = %1803, %1800, %1786
  %1813 = phi i32 [ %.pre688, %1800 ], [ %1787, %1786 ], [ %.pre688, %1803 ]
  %1814 = and i32 %1813, 4096
  %.not498 = icmp eq i32 %1814, 0
  br i1 %.not498, label %1824, label %1815

1815:                                             ; preds = %1812
  %1816 = icmp eq i32 %4, 0
  %1817 = and i32 %1813, 2
  %.not499 = icmp ne i32 %1817, 0
  %or.cond551.not622 = and i1 %1816, %.not499
  %1818 = and i32 %1813, 2048
  %.not500 = icmp eq i32 %1818, 0
  %or.cond618 = or i1 %.not500, %or.cond551.not622
  br i1 %or.cond618, label %1824, label %1819

1819:                                             ; preds = %1815
  %1820 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1821 = icmp ugt i32 %1820, 1
  %1822 = load i32, ptr @libxsmm_verbosity, align 4
  %1823 = select i1 %1821, i32 %1822, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90042, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 849, i32 noundef %1823) #5
  br label %1914

1824:                                             ; preds = %1815, %1812
  %1825 = load i32, ptr %15, align 4, !tbaa !18
  %1826 = and i32 %1825, %.0
  %.not501 = icmp eq i32 %1826, 0
  br i1 %.not501, label %1829, label %1827

1827:                                             ; preds = %1824
  %1828 = and i32 %1813, -9
  store i32 %1828, ptr %46, align 4, !tbaa !21
  br label %1829

1829:                                             ; preds = %1827, %1824
  %1830 = phi i32 [ %1828, %1827 ], [ %1813, %1824 ]
  %1831 = load i32, ptr %1750, align 4, !tbaa !20
  %1832 = and i32 %1831, %.0
  %.not502 = icmp eq i32 %1832, 0
  br i1 %.not502, label %1835, label %1833

1833:                                             ; preds = %1829
  %1834 = and i32 %1830, -17
  store i32 %1834, ptr %46, align 4, !tbaa !21
  br label %1835

1835:                                             ; preds = %1833, %1829
  %1836 = load i32, ptr %6, align 4, !tbaa !15
  %1837 = icmp ult i32 %1836, 2
  br i1 %1837, label %1838, label %1839

1838:                                             ; preds = %1835
  call void @libxsmm_generator_gemm_noarch_kernel(ptr noundef nonnull %0, ptr noundef nonnull %3) #5
  br label %1913

1839:                                             ; preds = %1835
  %1840 = icmp ult i32 %1836, 2000
  br i1 %1840, label %1841, label %1890

1841:                                             ; preds = %1839
  %1842 = icmp ult i32 %1836, 1104
  %.not503 = icmp eq i32 %1836, 1999
  %or.cond552 = or i1 %1842, %.not503
  br i1 %or.cond552, label %1862, label %1843

1843:                                             ; preds = %1841
  %1844 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1845 = icmp eq i32 %1844, 2
  br i1 %1845, label %1855, label %1846

1846:                                             ; preds = %1843
  %1847 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1848 = icmp eq i32 %1847, 3
  br i1 %1848, label %1849, label %1852

1849:                                             ; preds = %1846
  %1850 = load i32, ptr %6, align 4, !tbaa !15
  %1851 = icmp ugt i32 %1850, 1104
  br i1 %1851, label %1855, label %1852

1852:                                             ; preds = %1849, %1846
  %1853 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1854 = icmp eq i32 %1853, 12
  br i1 %1854, label %1855, label %._crit_edge689

._crit_edge689:                                   ; preds = %1852
  %.pre690 = load i32, ptr %6, align 4, !tbaa !15
  br label %1862

1855:                                             ; preds = %1852, %1849, %1843
  %1856 = load i32, ptr %46, align 4, !tbaa !21
  %1857 = and i32 %1856, 2048
  %.not504 = icmp eq i32 %1857, 0
  br i1 %.not504, label %1858, label %1861

1858:                                             ; preds = %1855
  %1859 = load i32, ptr %6, align 4, !tbaa !15
  %1860 = icmp ugt i32 %1859, 1105
  br i1 %1860, label %1861, label %1862

1861:                                             ; preds = %1858, %1855
  call void @libxsmm_generator_gemm_amx_kernel_wrapper(ptr noundef nonnull %0, ptr noundef nonnull %3) #5
  br label %1913

1862:                                             ; preds = %._crit_edge689, %1858, %1841
  %1863 = phi i32 [ %.pre690, %._crit_edge689 ], [ %1859, %1858 ], [ %1836, %1841 ]
  %1864 = add i32 %1863, -1104
  %or.cond553 = icmp ult i32 %1864, 895
  br i1 %or.cond553, label %1865, label %1879

1865:                                             ; preds = %1862
  %1866 = icmp ne i32 %12, 0
  %1867 = or i32 %14, %9
  %1868 = icmp ne i32 %1867, 0
  %or.cond64 = select i1 %1866, i1 true, i1 %1868
  br i1 %or.cond64, label %1878, label %1869

1869:                                             ; preds = %1865
  %1870 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1871 = icmp eq i32 %1870, 2
  br i1 %1871, label %1878, label %1872

1872:                                             ; preds = %1869
  %1873 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1874 = icmp eq i32 %1873, 4
  br i1 %1874, label %1878, label %1875

1875:                                             ; preds = %1872
  %1876 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1877 = icmp eq i32 %1876, 5
  br i1 %1877, label %1878, label %thread-pre-split613

1878:                                             ; preds = %1875, %1872, %1869, %1865
  call void @libxsmm_generator_gemm_amx_kernel_wrapper(ptr noundef nonnull %0, ptr noundef nonnull %3) #5
  br label %1913

thread-pre-split613:                              ; preds = %1875
  %.pr614 = load i32, ptr %6, align 4, !tbaa !15
  br label %1879

1879:                                             ; preds = %thread-pre-split613, %1862
  %1880 = phi i32 [ %.pr614, %thread-pre-split613 ], [ %1863, %1862 ]
  %1881 = icmp ugt i32 %1880, 1104
  br i1 %1881, label %1882, label %1889

1882:                                             ; preds = %1879
  %1883 = icmp ult i32 %1880, 1999
  %1884 = icmp ne i32 %13, 0
  %or.cond66 = select i1 %1883, i1 %1884, i1 false
  br i1 %or.cond66, label %1885, label %1889

1885:                                             ; preds = %1882
  %1886 = load i32, ptr %46, align 4, !tbaa !21
  %1887 = and i32 %1886, 2048
  %.not506 = icmp eq i32 %1887, 0
  br i1 %.not506, label %1889, label %1888

1888:                                             ; preds = %1885
  call void @libxsmm_generator_gemm_amx_kernel_wrapper(ptr noundef nonnull %0, ptr noundef nonnull %3) #5
  br label %1913

1889:                                             ; preds = %1885, %1882, %1879
  call void @libxsmm_generator_gemm_sse_avx_avx2_avx512_kernel_wrapper(ptr noundef nonnull %0, ptr noundef nonnull %3) #5
  br label %1913

1890:                                             ; preds = %1839
  switch i32 %1836, label %1904 [
    i32 2001, label %1891
    i32 2002, label %1891
    i32 2101, label %1892
    i32 2201, label %1893
    i32 2202, label %1893
    i32 2301, label %1894
    i32 2302, label %1894
    i32 2401, label %1895
    i32 2402, label %1895
    i32 2501, label %1896
  ]

1891:                                             ; preds = %1890, %1890
  call void @libxsmm_generator_gemm_aarch64_kernel(ptr noundef nonnull %0, ptr noundef nonnull %3) #5
  br label %1913

1892:                                             ; preds = %1890
  call void @libxsmm_generator_gemm_aarch64_kernel(ptr noundef nonnull %0, ptr noundef nonnull %3) #5
  br label %1913

1893:                                             ; preds = %1890, %1890
  call void @libxsmm_generator_gemm_aarch64_kernel(ptr noundef nonnull %0, ptr noundef nonnull %3) #5
  br label %1913

1894:                                             ; preds = %1890, %1890
  call void @libxsmm_generator_gemm_aarch64_kernel(ptr noundef nonnull %0, ptr noundef nonnull %3) #5
  br label %1913

1895:                                             ; preds = %1890, %1890
  call void @libxsmm_generator_gemm_aarch64_kernel(ptr noundef nonnull %0, ptr noundef nonnull %3) #5
  br label %1913

1896:                                             ; preds = %1890
  %1897 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %205) #5
  %1898 = icmp eq i32 %1897, 1
  br i1 %1898, label %1899, label %1903

1899:                                             ; preds = %1896
  %1900 = getelementptr inbounds i8, ptr %1, i64 24
  %1901 = load i32, ptr %1900, align 1, !tbaa !21
  switch i32 %1901, label %1903 [
    i32 16384, label %1902
    i32 16386, label %1902
  ]

1902:                                             ; preds = %1899, %1899
  call void @libxsmm_generator_gemm_aarch64_kernel_sme_het_blocking(ptr noundef nonnull %0, ptr noundef nonnull %3) #5
  br label %1913

1903:                                             ; preds = %1899, %1896
  call void @libxsmm_generator_gemm_aarch64_kernel(ptr noundef nonnull %0, ptr noundef nonnull %3) #5
  br label %1913

1904:                                             ; preds = %1890
  %1905 = icmp ugt i32 %1836, 3000
  br i1 %1905, label %1906, label %1907

1906:                                             ; preds = %1904
  call void @libxsmm_generator_gemm_rv64_kernel(ptr noundef nonnull %0, ptr noundef nonnull %3) #5
  br label %1913

1907:                                             ; preds = %1904
  %1908 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1, i32 noundef %1836)
  %1909 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !6
  %1910 = icmp ugt i32 %1909, 1
  %1911 = load i32, ptr @libxsmm_verbosity, align 4
  %1912 = select i1 %1910, i32 %1911, i32 1
  call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90005, ptr noundef nonnull @__func__.libxsmm_generator_gemm_kernel, ptr noundef nonnull @.str, i32 noundef 934, i32 noundef %1912) #5
  br label %1914

1913:                                             ; preds = %1878, %1889, %1888, %1861, %1892, %1894, %1906, %1903, %1902, %1895, %1893, %1891, %1838
  store i32 %7, ptr %6, align 4, !tbaa !15
  br label %1914

1914:                                             ; preds = %1913, %1907, %1819, %1807, %1795, %1781, %1773, %1754, %1744, %1736, %1723, %1715, %1707, %1690, %1678, %1654, %1647, %1639, %1631, %1620, %1596, %1589, %1581, %1570, %1482, %1467, %1441, %1415, %1395, %1369, %1349, %1313, %1281, %1243, %1227, %1212, %1205, %1176, %1156, %1142, %1089, %1076, %1063, %1051, %1027, %1013, %1001, %975, %953, %928, %923, %914, %907, %900, %892, %879, %870, %863, %856, %848, %835, %826, %819, %812, %804, %790, %781, %774, %767, %760, %717, %689, %681, %649, %199, %194, %188, %179, %172, %.thread567, %35
  call void @llvm.lifetime.end.p0(i64 95, ptr nonnull %3) #5
  ret void
}

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

; 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) #2

declare i32 @libxsmm_cpuid_arm_use_bfdot() local_unnamed_addr #3

declare i32 @libxsmm_cpuid_arm_use_i8dot() local_unnamed_addr #3

declare i32 @libxsmm_x86_is_Ai4_Bi8_gemm(ptr noundef) local_unnamed_addr #3

declare i32 @libxsmm_x86_is_Amxfp4_Bbf16_gemm(ptr noundef) local_unnamed_addr #3

declare i32 @libxsmm_x86_is_Amxfp4_Bfp32_gemm(ptr noundef) local_unnamed_addr #3

declare i32 @libxsmm_x86_is_Amxfp4_Bi8_gemm(ptr noundef) local_unnamed_addr #3

declare i32 @libxsmm_x86_is_Abf8_Bbf16_gemm(ptr noundef) local_unnamed_addr #3

declare i32 @libxsmm_x86_is_Abf8_Bf16_gemm(ptr noundef) local_unnamed_addr #3

declare i32 @libxsmm_x86_is_Ahf8_Bbf16_gemm(ptr noundef) local_unnamed_addr #3

declare void @libxsmm_handle_error(ptr noundef, i32 noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #3

declare i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef) local_unnamed_addr #3

declare i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef) local_unnamed_addr #3

declare i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef) local_unnamed_addr #3

declare i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef) local_unnamed_addr #3

declare i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef) local_unnamed_addr #3

declare void @libxsmm_generator_gemm_noarch_kernel(ptr noundef, ptr noundef) local_unnamed_addr #3

declare void @libxsmm_generator_gemm_amx_kernel_wrapper(ptr noundef, ptr noundef) local_unnamed_addr #3

declare void @libxsmm_generator_gemm_sse_avx_avx2_avx512_kernel_wrapper(ptr noundef, ptr noundef) local_unnamed_addr #3

declare void @libxsmm_generator_gemm_aarch64_kernel(ptr noundef, ptr noundef) local_unnamed_addr #3

declare void @libxsmm_generator_gemm_aarch64_kernel_sme_het_blocking(ptr noundef, ptr noundef) local_unnamed_addr #3

declare void @libxsmm_generator_gemm_rv64_kernel(ptr noundef, ptr noundef) local_unnamed_addr #3

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

; 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 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { 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 = !{i64 0, i64 4, !6, i64 4, i64 4, !6, i64 8, i64 4, !6, i64 12, i64 4, !6, i64 16, i64 4, !6, i64 20, i64 4, !6, i64 24, i64 4, !6, i64 28, i64 1, !10, i64 29, i64 3, !10, i64 32, i64 1, !10, i64 33, i64 8, !11, i64 41, i64 8, !11, i64 49, i64 1, !10, i64 50, i64 4, !6, i64 54, i64 4, !6, i64 58, i64 4, !6, i64 62, i64 2, !13, i64 64, i64 2, !13, i64 66, i64 1, !10, i64 67, i64 1, !10, i64 68, i64 1, !10, i64 69, i64 1, !10, i64 70, i64 2, !13, i64 72, i64 2, !13, i64 74, i64 2, !13, i64 76, i64 2, !13, i64 78, i64 2, !13, i64 80, i64 2, !13, i64 82, i64 4, !6, i64 86, i64 4, !6, i64 90, i64 4, !6, i64 94, i64 1, !10}
!6 = !{!7, !7, i64 0}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!8, !8, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long long", !8, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"short", !8, i64 0}
!15 = !{!16, !7, i64 28}
!16 = !{!"libxsmm_generated_code", !17, i64 0, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28}
!17 = !{!"any pointer", !8, i64 0}
!18 = !{!19, !7, i64 12}
!19 = !{!"libxsmm_gemm_descriptor", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !8, i64 28, !8, i64 29, !8, i64 32, !12, i64 33, !12, i64 41, !8, i64 49, !7, i64 50, !7, i64 54, !7, i64 58, !14, i64 62, !14, i64 64, !8, i64 66, !8, i64 67, !8, i64 68, !8, i64 69, !14, i64 70, !14, i64 72, !14, i64 74, !14, i64 76, !14, i64 78, !14, i64 80, !7, i64 82, !7, i64 86, !7, i64 90, !8, i64 94}
!20 = !{!19, !7, i64 20}
!21 = !{!19, !7, i64 24}
!22 = !{!19, !7, i64 8}
!23 = !{!19, !7, i64 0}
!24 = !{!19, !7, i64 16}
!25 = !{!19, !7, i64 4}


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