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

; 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_micro_kernel_config = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [4 x i32], [4 x i32], [4 x i32], [4 x i32], [4 x i32], [4 x i32], i32, [2 x %struct.libxsmm_blocking_info_t], %struct.libxsmm_tile_config, i32, i32, i32, i32, i32, i32, i32, i32, ptr, i32, i32, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.libxsmm_blocking_info_t = type { i32, [4 x i32], i32, i32 }
%struct.libxsmm_tile_config = type { i8, i16, i8, i16, i8, i16, i8, i16, i8, i16, i8, i16, i8, i16, i8, i16, i8 }
%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 }>

@.str.1 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [65 x i8], align 1
@__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config = external hidden unnamed_addr constant [157 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [65 x i8], align 1

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

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

declare i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef) #2

declare i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef) #2

declare i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef) #2

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

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

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #3

declare i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef) #2

; Function Attrs: nounwind uwtable
declare dso_local void @libxsmm_generator_gemm_setup_fusion_microkernel_properties(ptr noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_gemm_init_micro_kernel_config(ptr noundef %0, i32 noundef %1, ptr noundef %2, i32 noundef %3) #0 {
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store i32 %1, ptr %6, align 4, !tbaa !9
  store ptr %2, ptr %7, align 8, !tbaa !5
  store i32 %3, ptr %8, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #5
  %12 = load ptr, ptr %7, align 8, !tbaa !5
  %13 = call i32 @libxsmm_x86_is_Amxfp4_Bfp32_gemm(ptr noundef %12)
  store i32 %13, ptr %9, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #5
  %14 = load ptr, ptr %7, align 8, !tbaa !5
  %15 = call i32 @libxsmm_x86_is_Amxfp4_Bi8_gemm(ptr noundef %14)
  store i32 %15, ptr %10, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #5
  %16 = load ptr, ptr %7, align 8, !tbaa !5
  %17 = call i32 @libxsmm_x86_is_Amxfp4_Bbf16_gemm(ptr noundef %16)
  store i32 %17, ptr %11, align 4, !tbaa !9
  %18 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.memset.p0.i64(ptr align 8 %18, i8 0, i64 688, i1 false)
  %19 = load ptr, ptr %7, align 8, !tbaa !5
  %20 = load ptr, ptr %5, align 8, !tbaa !5
  call void @libxsmm_generator_gemm_setup_fusion_microkernel_properties(ptr noundef %19, ptr noundef %20)
  %21 = load i32, ptr %6, align 4, !tbaa !9
  %22 = icmp ule i32 %21, 1
  br i1 %22, label %26, label %23

23:                                               ; preds = %4
  %24 = load i32, ptr %6, align 4, !tbaa !9
  %25 = icmp ugt i32 %24, 1999
  br i1 %25, label %26, label %57

26:                                               ; preds = %23, %4
  %27 = load ptr, ptr %5, align 8, !tbaa !5
  %28 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %27, i32 0, i32 0
  store i32 1, ptr %28, align 8, !tbaa !11
  %29 = load ptr, ptr %5, align 8, !tbaa !5
  %30 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %29, i32 0, i32 1
  store i32 0, ptr %30, align 4, !tbaa !15
  %31 = load ptr, ptr %5, align 8, !tbaa !5
  %32 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %31, i32 0, i32 11
  store i32 0, ptr %32, align 4, !tbaa !16
  %33 = load ptr, ptr %5, align 8, !tbaa !5
  %34 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %33, i32 0, i32 21
  store i8 97, ptr %34, align 4, !tbaa !17
  %35 = load ptr, ptr %5, align 8, !tbaa !5
  %36 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %35, i32 0, i32 2
  store i32 0, ptr %36, align 8, !tbaa !18
  %37 = load ptr, ptr %5, align 8, !tbaa !5
  %38 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %37, i32 0, i32 3
  store i32 0, ptr %38, align 4, !tbaa !19
  %39 = load ptr, ptr %5, align 8, !tbaa !5
  %40 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %39, i32 0, i32 4
  store i32 0, ptr %40, align 8, !tbaa !20
  %41 = load ptr, ptr %5, align 8, !tbaa !5
  %42 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %41, i32 0, i32 5
  store i32 0, ptr %42, align 4, !tbaa !21
  %43 = load ptr, ptr %5, align 8, !tbaa !5
  %44 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %43, i32 0, i32 6
  store i32 9999, ptr %44, align 8, !tbaa !22
  %45 = load ptr, ptr %5, align 8, !tbaa !5
  %46 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %45, i32 0, i32 7
  store i32 9999, ptr %46, align 4, !tbaa !23
  %47 = load ptr, ptr %5, align 8, !tbaa !5
  %48 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %47, i32 0, i32 8
  store i32 9999, ptr %48, align 8, !tbaa !24
  %49 = load ptr, ptr %5, align 8, !tbaa !5
  %50 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %49, i32 0, i32 9
  store i32 9999, ptr %50, align 4, !tbaa !25
  %51 = load ptr, ptr %5, align 8, !tbaa !5
  %52 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %51, i32 0, i32 13
  store i32 9999, ptr %52, align 4, !tbaa !26
  %53 = load ptr, ptr %5, align 8, !tbaa !5
  %54 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %53, i32 0, i32 14
  store i32 9999, ptr %54, align 8, !tbaa !27
  %55 = load ptr, ptr %5, align 8, !tbaa !5
  %56 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %55, i32 0, i32 15
  store i32 9999, ptr %56, align 4, !tbaa !28
  br label %3383

57:                                               ; preds = %23
  %58 = load i32, ptr %6, align 4, !tbaa !9
  %59 = icmp ule i32 %58, 1004
  br i1 %59, label %60, label %500

60:                                               ; preds = %57
  %61 = load i32, ptr %6, align 4, !tbaa !9
  %62 = load ptr, ptr %5, align 8, !tbaa !5
  %63 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %62, i32 0, i32 0
  store i32 %61, ptr %63, align 8, !tbaa !11
  %64 = load ptr, ptr %5, align 8, !tbaa !5
  %65 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %64, i32 0, i32 1
  store i32 16, ptr %65, align 4, !tbaa !15
  %66 = load i32, ptr %8, align 4, !tbaa !9
  %67 = load ptr, ptr %5, align 8, !tbaa !5
  %68 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %67, i32 0, i32 11
  store i32 %66, ptr %68, align 4, !tbaa !16
  %69 = load ptr, ptr %5, align 8, !tbaa !5
  %70 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %69, i32 0, i32 21
  store i8 120, ptr %70, align 4, !tbaa !17
  %71 = load ptr, ptr %7, align 8, !tbaa !5
  %72 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %71, i32 0, i32 8
  %73 = getelementptr inbounds [3 x i8], ptr %72, i64 0, i64 0
  %74 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %73)
  %75 = icmp eq i32 0, %74
  br i1 %75, label %76, label %154

76:                                               ; preds = %60
  %77 = load ptr, ptr %5, align 8, !tbaa !5
  %78 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %77, i32 0, i32 2
  store i32 2, ptr %78, align 8, !tbaa !18
  %79 = load ptr, ptr %5, align 8, !tbaa !5
  %80 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %79, i32 0, i32 3
  store i32 8, ptr %80, align 4, !tbaa !19
  %81 = load ptr, ptr %5, align 8, !tbaa !5
  %82 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %81, i32 0, i32 4
  store i32 8, ptr %82, align 8, !tbaa !20
  %83 = load ptr, ptr %5, align 8, !tbaa !5
  %84 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %83, i32 0, i32 5
  store i32 8, ptr %84, align 4, !tbaa !21
  %85 = load ptr, ptr %7, align 8, !tbaa !5
  %86 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %85, i32 0, i32 6
  %87 = load i32, ptr %86, align 1, !tbaa !29
  %88 = and i32 8, %87
  %89 = icmp ne i32 %88, 0
  br i1 %89, label %90, label %104

90:                                               ; preds = %76
  %91 = load ptr, ptr %7, align 8, !tbaa !5
  %92 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %91, i32 0, i32 3
  %93 = load i32, ptr %92, align 1, !tbaa !32
  %94 = load ptr, ptr %5, align 8, !tbaa !5
  %95 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %94, i32 0, i32 2
  %96 = load i32, ptr %95, align 8, !tbaa !18
  %97 = urem i32 %93, %96
  %98 = icmp eq i32 0, %97
  br i1 %98, label %99, label %100

99:                                               ; preds = %90
  br label %101

100:                                              ; preds = %90
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2136, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

101:                                              ; preds = %99
  %102 = load ptr, ptr %5, align 8, !tbaa !5
  %103 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %102, i32 0, i32 6
  store i32 -1610280920, ptr %103, align 8, !tbaa !22
  br label %107

104:                                              ; preds = %76
  %105 = load ptr, ptr %5, align 8, !tbaa !5
  %106 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %105, i32 0, i32 6
  store i32 -1610280944, ptr %106, align 8, !tbaa !22
  br label %107

107:                                              ; preds = %104, %101
  %108 = load i32, ptr %6, align 4, !tbaa !9
  %109 = icmp eq i32 %108, 1002
  br i1 %109, label %110, label %115

110:                                              ; preds = %107
  %111 = load ptr, ptr %5, align 8, !tbaa !5
  %112 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %111, i32 0, i32 7
  store i32 -1610149872, ptr %112, align 4, !tbaa !23
  %113 = load ptr, ptr %5, align 8, !tbaa !5
  %114 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %113, i32 0, i32 8
  store i32 -1609756474, ptr %114, align 8, !tbaa !24
  br label %120

115:                                              ; preds = %107
  %116 = load ptr, ptr %5, align 8, !tbaa !5
  %117 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %116, i32 0, i32 7
  store i32 -1610149870, ptr %117, align 4, !tbaa !23
  %118 = load ptr, ptr %5, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %118, i32 0, i32 8
  store i32 9999, ptr %119, align 8, !tbaa !24
  br label %120

120:                                              ; preds = %115, %110
  %121 = load ptr, ptr %7, align 8, !tbaa !5
  %122 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %121, i32 0, i32 6
  %123 = load i32, ptr %122, align 1, !tbaa !29
  %124 = and i32 16, %123
  %125 = icmp ne i32 %124, 0
  br i1 %125, label %126, label %142

126:                                              ; preds = %120
  %127 = load ptr, ptr %7, align 8, !tbaa !5
  %128 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %127, i32 0, i32 5
  %129 = load i32, ptr %128, align 1, !tbaa !33
  %130 = load ptr, ptr %5, align 8, !tbaa !5
  %131 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %130, i32 0, i32 2
  %132 = load i32, ptr %131, align 8, !tbaa !18
  %133 = urem i32 %129, %132
  %134 = icmp eq i32 0, %133
  br i1 %134, label %135, label %136

135:                                              ; preds = %126
  br label %137

136:                                              ; preds = %126
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2149, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

137:                                              ; preds = %135
  %138 = load ptr, ptr %5, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %138, i32 0, i32 9
  store i32 -1610280920, ptr %139, align 4, !tbaa !25
  %140 = load ptr, ptr %5, align 8, !tbaa !5
  %141 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %140, i32 0, i32 10
  store i32 -1610280920, ptr %141, align 8, !tbaa !34
  br label %147

142:                                              ; preds = %120
  %143 = load ptr, ptr %5, align 8, !tbaa !5
  %144 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %143, i32 0, i32 9
  store i32 -1610280944, ptr %144, align 4, !tbaa !25
  %145 = load ptr, ptr %5, align 8, !tbaa !5
  %146 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %145, i32 0, i32 10
  store i32 -1610280944, ptr %146, align 8, !tbaa !34
  br label %147

147:                                              ; preds = %142, %137
  %148 = load ptr, ptr %5, align 8, !tbaa !5
  %149 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %148, i32 0, i32 13
  store i32 -1610280873, ptr %149, align 4, !tbaa !26
  %150 = load ptr, ptr %5, align 8, !tbaa !5
  %151 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %150, i32 0, i32 14
  store i32 -1610280871, ptr %151, align 8, !tbaa !27
  %152 = load ptr, ptr %5, align 8, !tbaa !5
  %153 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %152, i32 0, i32 15
  store i32 -1610280872, ptr %153, align 4, !tbaa !28
  br label %499

154:                                              ; preds = %60
  %155 = load ptr, ptr %7, align 8, !tbaa !5
  %156 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %155, i32 0, i32 8
  %157 = getelementptr inbounds [3 x i8], ptr %156, i64 0, i64 0
  %158 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %157)
  %159 = icmp eq i32 1, %158
  br i1 %159, label %160, label %229

160:                                              ; preds = %154
  %161 = load ptr, ptr %5, align 8, !tbaa !5
  %162 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %161, i32 0, i32 2
  store i32 4, ptr %162, align 8, !tbaa !18
  %163 = load ptr, ptr %5, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %163, i32 0, i32 3
  store i32 4, ptr %164, align 4, !tbaa !19
  %165 = load ptr, ptr %5, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %165, i32 0, i32 4
  store i32 4, ptr %166, align 8, !tbaa !20
  %167 = load ptr, ptr %5, align 8, !tbaa !5
  %168 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %167, i32 0, i32 5
  store i32 4, ptr %168, align 4, !tbaa !21
  %169 = load ptr, ptr %7, align 8, !tbaa !5
  %170 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %169, i32 0, i32 6
  %171 = load i32, ptr %170, align 1, !tbaa !29
  %172 = and i32 8, %171
  %173 = icmp ne i32 %172, 0
  br i1 %173, label %174, label %188

174:                                              ; preds = %160
  %175 = load ptr, ptr %7, align 8, !tbaa !5
  %176 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %175, i32 0, i32 3
  %177 = load i32, ptr %176, align 1, !tbaa !32
  %178 = load ptr, ptr %5, align 8, !tbaa !5
  %179 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %178, i32 0, i32 2
  %180 = load i32, ptr %179, align 8, !tbaa !18
  %181 = urem i32 %177, %180
  %182 = icmp eq i32 0, %181
  br i1 %182, label %183, label %184

183:                                              ; preds = %174
  br label %185

184:                                              ; preds = %174
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2165, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

185:                                              ; preds = %183
  %186 = load ptr, ptr %5, align 8, !tbaa !5
  %187 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %186, i32 0, i32 6
  store i32 -1610346456, ptr %187, align 8, !tbaa !22
  br label %191

188:                                              ; preds = %160
  %189 = load ptr, ptr %5, align 8, !tbaa !5
  %190 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %189, i32 0, i32 6
  store i32 -1610346480, ptr %190, align 8, !tbaa !22
  br label %191

191:                                              ; preds = %188, %185
  %192 = load ptr, ptr %5, align 8, !tbaa !5
  %193 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %192, i32 0, i32 7
  store i32 -1610215408, ptr %193, align 4, !tbaa !23
  %194 = load ptr, ptr %5, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %194, i32 0, i32 8
  store i32 -1609822010, ptr %195, align 8, !tbaa !24
  %196 = load ptr, ptr %7, align 8, !tbaa !5
  %197 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %196, i32 0, i32 6
  %198 = load i32, ptr %197, align 1, !tbaa !29
  %199 = and i32 16, %198
  %200 = icmp ne i32 %199, 0
  br i1 %200, label %201, label %217

201:                                              ; preds = %191
  %202 = load ptr, ptr %7, align 8, !tbaa !5
  %203 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %202, i32 0, i32 5
  %204 = load i32, ptr %203, align 1, !tbaa !33
  %205 = load ptr, ptr %5, align 8, !tbaa !5
  %206 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %205, i32 0, i32 2
  %207 = load i32, ptr %206, align 8, !tbaa !18
  %208 = urem i32 %204, %207
  %209 = icmp eq i32 0, %208
  br i1 %209, label %210, label %211

210:                                              ; preds = %201
  br label %212

211:                                              ; preds = %201
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2173, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

212:                                              ; preds = %210
  %213 = load ptr, ptr %5, align 8, !tbaa !5
  %214 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %213, i32 0, i32 9
  store i32 -1610346456, ptr %214, align 4, !tbaa !25
  %215 = load ptr, ptr %5, align 8, !tbaa !5
  %216 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %215, i32 0, i32 10
  store i32 -1610346456, ptr %216, align 8, !tbaa !34
  br label %222

217:                                              ; preds = %191
  %218 = load ptr, ptr %5, align 8, !tbaa !5
  %219 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %218, i32 0, i32 9
  store i32 -1610346480, ptr %219, align 4, !tbaa !25
  %220 = load ptr, ptr %5, align 8, !tbaa !5
  %221 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %220, i32 0, i32 10
  store i32 -1610346480, ptr %221, align 8, !tbaa !34
  br label %222

222:                                              ; preds = %217, %212
  %223 = load ptr, ptr %5, align 8, !tbaa !5
  %224 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %223, i32 0, i32 13
  store i32 -1610346409, ptr %224, align 4, !tbaa !26
  %225 = load ptr, ptr %5, align 8, !tbaa !5
  %226 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %225, i32 0, i32 14
  store i32 -1610346407, ptr %226, align 8, !tbaa !27
  %227 = load ptr, ptr %5, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %227, i32 0, i32 15
  store i32 -1610346408, ptr %228, align 4, !tbaa !28
  br label %498

229:                                              ; preds = %154
  %230 = load ptr, ptr %7, align 8, !tbaa !5
  %231 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %230, i32 0, i32 8
  %232 = getelementptr inbounds [3 x i8], ptr %231, i64 0, i64 0
  %233 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %232)
  %234 = icmp eq i32 12, %233
  br i1 %234, label %235, label %304

235:                                              ; preds = %229
  %236 = load ptr, ptr %5, align 8, !tbaa !5
  %237 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %236, i32 0, i32 2
  store i32 4, ptr %237, align 8, !tbaa !18
  %238 = load ptr, ptr %5, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %238, i32 0, i32 3
  store i32 1, ptr %239, align 4, !tbaa !19
  %240 = load ptr, ptr %5, align 8, !tbaa !5
  %241 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %240, i32 0, i32 4
  store i32 1, ptr %241, align 8, !tbaa !20
  %242 = load ptr, ptr %5, align 8, !tbaa !5
  %243 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %242, i32 0, i32 5
  store i32 4, ptr %243, align 4, !tbaa !21
  %244 = load ptr, ptr %7, align 8, !tbaa !5
  %245 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %244, i32 0, i32 6
  %246 = load i32, ptr %245, align 1, !tbaa !29
  %247 = and i32 8, %246
  %248 = icmp ne i32 %247, 0
  br i1 %248, label %249, label %263

249:                                              ; preds = %235
  %250 = load ptr, ptr %7, align 8, !tbaa !5
  %251 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %250, i32 0, i32 3
  %252 = load i32, ptr %251, align 1, !tbaa !32
  %253 = load ptr, ptr %5, align 8, !tbaa !5
  %254 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %253, i32 0, i32 2
  %255 = load i32, ptr %254, align 8, !tbaa !18
  %256 = urem i32 %252, %255
  %257 = icmp eq i32 0, %256
  br i1 %257, label %258, label %259

258:                                              ; preds = %249
  br label %260

259:                                              ; preds = %249
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2189, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

260:                                              ; preds = %258
  %261 = load ptr, ptr %5, align 8, !tbaa !5
  %262 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %261, i32 0, i32 6
  store i32 -1610346456, ptr %262, align 8, !tbaa !22
  br label %266

263:                                              ; preds = %235
  %264 = load ptr, ptr %5, align 8, !tbaa !5
  %265 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %264, i32 0, i32 6
  store i32 -1610346480, ptr %265, align 8, !tbaa !22
  br label %266

266:                                              ; preds = %263, %260
  %267 = load ptr, ptr %5, align 8, !tbaa !5
  %268 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %267, i32 0, i32 7
  store i32 -1610215408, ptr %268, align 4, !tbaa !23
  %269 = load ptr, ptr %5, align 8, !tbaa !5
  %270 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %269, i32 0, i32 8
  store i32 -1609822010, ptr %270, align 8, !tbaa !24
  %271 = load ptr, ptr %7, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %271, i32 0, i32 6
  %273 = load i32, ptr %272, align 1, !tbaa !29
  %274 = and i32 16, %273
  %275 = icmp ne i32 %274, 0
  br i1 %275, label %276, label %292

276:                                              ; preds = %266
  %277 = load ptr, ptr %7, align 8, !tbaa !5
  %278 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %277, i32 0, i32 5
  %279 = load i32, ptr %278, align 1, !tbaa !33
  %280 = load ptr, ptr %5, align 8, !tbaa !5
  %281 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %280, i32 0, i32 2
  %282 = load i32, ptr %281, align 8, !tbaa !18
  %283 = urem i32 %279, %282
  %284 = icmp eq i32 0, %283
  br i1 %284, label %285, label %286

285:                                              ; preds = %276
  br label %287

286:                                              ; preds = %276
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2197, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

287:                                              ; preds = %285
  %288 = load ptr, ptr %5, align 8, !tbaa !5
  %289 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %288, i32 0, i32 9
  store i32 -1610346456, ptr %289, align 4, !tbaa !25
  %290 = load ptr, ptr %5, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %290, i32 0, i32 10
  store i32 -1610346456, ptr %291, align 8, !tbaa !34
  br label %297

292:                                              ; preds = %266
  %293 = load ptr, ptr %5, align 8, !tbaa !5
  %294 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %293, i32 0, i32 9
  store i32 -1610346480, ptr %294, align 4, !tbaa !25
  %295 = load ptr, ptr %5, align 8, !tbaa !5
  %296 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %295, i32 0, i32 10
  store i32 -1610346480, ptr %296, align 8, !tbaa !34
  br label %297

297:                                              ; preds = %292, %287
  %298 = load ptr, ptr %5, align 8, !tbaa !5
  %299 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %298, i32 0, i32 13
  store i32 -1610280721, ptr %299, align 4, !tbaa !26
  %300 = load ptr, ptr %5, align 8, !tbaa !5
  %301 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %300, i32 0, i32 14
  store i32 -1610276860, ptr %301, align 8, !tbaa !27
  %302 = load ptr, ptr %5, align 8, !tbaa !5
  %303 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %302, i32 0, i32 15
  store i32 -1610280706, ptr %303, align 4, !tbaa !28
  br label %497

304:                                              ; preds = %229
  %305 = load ptr, ptr %7, align 8, !tbaa !5
  %306 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %305, i32 0, i32 8
  %307 = getelementptr inbounds [3 x i8], ptr %306, i64 0, i64 0
  %308 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %307)
  %309 = icmp eq i32 10, %308
  br i1 %309, label %310, label %379

310:                                              ; preds = %304
  %311 = load ptr, ptr %5, align 8, !tbaa !5
  %312 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %311, i32 0, i32 2
  store i32 4, ptr %312, align 8, !tbaa !18
  %313 = load ptr, ptr %5, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %313, i32 0, i32 3
  store i32 2, ptr %314, align 4, !tbaa !19
  %315 = load ptr, ptr %5, align 8, !tbaa !5
  %316 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %315, i32 0, i32 4
  store i32 2, ptr %316, align 8, !tbaa !20
  %317 = load ptr, ptr %5, align 8, !tbaa !5
  %318 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %317, i32 0, i32 5
  store i32 4, ptr %318, align 4, !tbaa !21
  %319 = load ptr, ptr %7, align 8, !tbaa !5
  %320 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %319, i32 0, i32 6
  %321 = load i32, ptr %320, align 1, !tbaa !29
  %322 = and i32 8, %321
  %323 = icmp ne i32 %322, 0
  br i1 %323, label %324, label %338

324:                                              ; preds = %310
  %325 = load ptr, ptr %7, align 8, !tbaa !5
  %326 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %325, i32 0, i32 3
  %327 = load i32, ptr %326, align 1, !tbaa !32
  %328 = load ptr, ptr %5, align 8, !tbaa !5
  %329 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %328, i32 0, i32 2
  %330 = load i32, ptr %329, align 8, !tbaa !18
  %331 = urem i32 %327, %330
  %332 = icmp eq i32 0, %331
  br i1 %332, label %333, label %334

333:                                              ; preds = %324
  br label %335

334:                                              ; preds = %324
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2213, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

335:                                              ; preds = %333
  %336 = load ptr, ptr %5, align 8, !tbaa !5
  %337 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %336, i32 0, i32 6
  store i32 -1610346456, ptr %337, align 8, !tbaa !22
  br label %341

338:                                              ; preds = %310
  %339 = load ptr, ptr %5, align 8, !tbaa !5
  %340 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %339, i32 0, i32 6
  store i32 -1610346480, ptr %340, align 8, !tbaa !22
  br label %341

341:                                              ; preds = %338, %335
  %342 = load ptr, ptr %5, align 8, !tbaa !5
  %343 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %342, i32 0, i32 7
  store i32 -1610215408, ptr %343, align 4, !tbaa !23
  %344 = load ptr, ptr %5, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %344, i32 0, i32 8
  store i32 -1609822010, ptr %345, align 8, !tbaa !24
  %346 = load ptr, ptr %7, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %346, i32 0, i32 6
  %348 = load i32, ptr %347, align 1, !tbaa !29
  %349 = and i32 16, %348
  %350 = icmp ne i32 %349, 0
  br i1 %350, label %351, label %367

351:                                              ; preds = %341
  %352 = load ptr, ptr %7, align 8, !tbaa !5
  %353 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %352, i32 0, i32 5
  %354 = load i32, ptr %353, align 1, !tbaa !33
  %355 = load ptr, ptr %5, align 8, !tbaa !5
  %356 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %355, i32 0, i32 2
  %357 = load i32, ptr %356, align 8, !tbaa !18
  %358 = urem i32 %354, %357
  %359 = icmp eq i32 0, %358
  br i1 %359, label %360, label %361

360:                                              ; preds = %351
  br label %362

361:                                              ; preds = %351
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2221, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

362:                                              ; preds = %360
  %363 = load ptr, ptr %5, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %363, i32 0, i32 9
  store i32 -1610346456, ptr %364, align 4, !tbaa !25
  %365 = load ptr, ptr %5, align 8, !tbaa !5
  %366 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %365, i32 0, i32 10
  store i32 -1610346456, ptr %366, align 8, !tbaa !34
  br label %372

367:                                              ; preds = %341
  %368 = load ptr, ptr %5, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %368, i32 0, i32 9
  store i32 -1610346480, ptr %369, align 4, !tbaa !25
  %370 = load ptr, ptr %5, align 8, !tbaa !5
  %371 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %370, i32 0, i32 10
  store i32 -1610346480, ptr %371, align 8, !tbaa !34
  br label %372

372:                                              ; preds = %367, %362
  %373 = load ptr, ptr %5, align 8, !tbaa !5
  %374 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %373, i32 0, i32 13
  store i32 -1610280721, ptr %374, align 4, !tbaa !26
  %375 = load ptr, ptr %5, align 8, !tbaa !5
  %376 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %375, i32 0, i32 14
  store i32 -1610280715, ptr %376, align 8, !tbaa !27
  %377 = load ptr, ptr %5, align 8, !tbaa !5
  %378 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %377, i32 0, i32 15
  store i32 -1610280706, ptr %378, align 4, !tbaa !28
  br label %496

379:                                              ; preds = %304
  %380 = load ptr, ptr %7, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %380, i32 0, i32 8
  %382 = getelementptr inbounds [3 x i8], ptr %381, i64 0, i64 0
  %383 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %382)
  %384 = icmp eq i32 2, %383
  br i1 %384, label %385, label %464

385:                                              ; preds = %379
  %386 = load ptr, ptr %5, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %386, i32 0, i32 2
  store i32 4, ptr %387, align 8, !tbaa !18
  %388 = load ptr, ptr %5, align 8, !tbaa !5
  %389 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %388, i32 0, i32 3
  store i32 2, ptr %389, align 4, !tbaa !19
  %390 = load ptr, ptr %5, align 8, !tbaa !5
  %391 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %390, i32 0, i32 4
  store i32 2, ptr %391, align 8, !tbaa !20
  %392 = load ptr, ptr %7, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %392, i32 0, i32 8
  %394 = getelementptr inbounds [3 x i8], ptr %393, i64 0, i64 0
  %395 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %394)
  %396 = icmp eq i32 2, %395
  br i1 %396, label %397, label %400

397:                                              ; preds = %385
  %398 = load ptr, ptr %5, align 8, !tbaa !5
  %399 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %398, i32 0, i32 5
  store i32 2, ptr %399, align 4, !tbaa !21
  br label %403

400:                                              ; preds = %385
  %401 = load ptr, ptr %5, align 8, !tbaa !5
  %402 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %401, i32 0, i32 5
  store i32 4, ptr %402, align 4, !tbaa !21
  br label %403

403:                                              ; preds = %400, %397
  %404 = load ptr, ptr %7, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %404, i32 0, i32 6
  %406 = load i32, ptr %405, align 1, !tbaa !29
  %407 = and i32 8, %406
  %408 = icmp ne i32 %407, 0
  br i1 %408, label %409, label %423

409:                                              ; preds = %403
  %410 = load ptr, ptr %7, align 8, !tbaa !5
  %411 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %410, i32 0, i32 3
  %412 = load i32, ptr %411, align 1, !tbaa !32
  %413 = load ptr, ptr %5, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %413, i32 0, i32 2
  %415 = load i32, ptr %414, align 8, !tbaa !18
  %416 = urem i32 %412, %415
  %417 = icmp eq i32 0, %416
  br i1 %417, label %418, label %419

418:                                              ; preds = %409
  br label %420

419:                                              ; preds = %409
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2241, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

420:                                              ; preds = %418
  %421 = load ptr, ptr %5, align 8, !tbaa !5
  %422 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %421, i32 0, i32 6
  store i32 -1610346456, ptr %422, align 8, !tbaa !22
  br label %426

423:                                              ; preds = %403
  %424 = load ptr, ptr %5, align 8, !tbaa !5
  %425 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %424, i32 0, i32 6
  store i32 -1610346480, ptr %425, align 8, !tbaa !22
  br label %426

426:                                              ; preds = %423, %420
  %427 = load ptr, ptr %5, align 8, !tbaa !5
  %428 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %427, i32 0, i32 7
  store i32 -1610215408, ptr %428, align 4, !tbaa !23
  %429 = load ptr, ptr %5, align 8, !tbaa !5
  %430 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %429, i32 0, i32 8
  store i32 -1609822010, ptr %430, align 8, !tbaa !24
  %431 = load ptr, ptr %7, align 8, !tbaa !5
  %432 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %431, i32 0, i32 6
  %433 = load i32, ptr %432, align 1, !tbaa !29
  %434 = and i32 16, %433
  %435 = icmp ne i32 %434, 0
  br i1 %435, label %436, label %452

436:                                              ; preds = %426
  %437 = load ptr, ptr %7, align 8, !tbaa !5
  %438 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %437, i32 0, i32 5
  %439 = load i32, ptr %438, align 1, !tbaa !33
  %440 = load ptr, ptr %5, align 8, !tbaa !5
  %441 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %440, i32 0, i32 2
  %442 = load i32, ptr %441, align 8, !tbaa !18
  %443 = urem i32 %439, %442
  %444 = icmp eq i32 0, %443
  br i1 %444, label %445, label %446

445:                                              ; preds = %436
  br label %447

446:                                              ; preds = %436
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2249, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

447:                                              ; preds = %445
  %448 = load ptr, ptr %5, align 8, !tbaa !5
  %449 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %448, i32 0, i32 9
  store i32 -1610346456, ptr %449, align 4, !tbaa !25
  %450 = load ptr, ptr %5, align 8, !tbaa !5
  %451 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %450, i32 0, i32 10
  store i32 -1610346456, ptr %451, align 8, !tbaa !34
  br label %457

452:                                              ; preds = %426
  %453 = load ptr, ptr %5, align 8, !tbaa !5
  %454 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %453, i32 0, i32 9
  store i32 -1610346480, ptr %454, align 4, !tbaa !25
  %455 = load ptr, ptr %5, align 8, !tbaa !5
  %456 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %455, i32 0, i32 10
  store i32 -1610346480, ptr %456, align 8, !tbaa !34
  br label %457

457:                                              ; preds = %452, %447
  %458 = load ptr, ptr %5, align 8, !tbaa !5
  %459 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %458, i32 0, i32 13
  store i32 -1610280721, ptr %459, align 4, !tbaa !26
  %460 = load ptr, ptr %5, align 8, !tbaa !5
  %461 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %460, i32 0, i32 14
  store i32 -1610346407, ptr %461, align 8, !tbaa !27
  %462 = load ptr, ptr %5, align 8, !tbaa !5
  %463 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %462, i32 0, i32 15
  store i32 -1610346408, ptr %463, align 4, !tbaa !28
  br label %495

464:                                              ; preds = %379
  %465 = load ptr, ptr %5, align 8, !tbaa !5
  %466 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %465, i32 0, i32 0
  store i32 1, ptr %466, align 8, !tbaa !11
  %467 = load ptr, ptr %5, align 8, !tbaa !5
  %468 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %467, i32 0, i32 1
  store i32 0, ptr %468, align 4, !tbaa !15
  %469 = load ptr, ptr %5, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %469, i32 0, i32 11
  store i32 0, ptr %470, align 4, !tbaa !16
  %471 = load ptr, ptr %5, align 8, !tbaa !5
  %472 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %471, i32 0, i32 21
  store i8 97, ptr %472, align 4, !tbaa !17
  %473 = load ptr, ptr %5, align 8, !tbaa !5
  %474 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %473, i32 0, i32 2
  store i32 0, ptr %474, align 8, !tbaa !18
  %475 = load ptr, ptr %5, align 8, !tbaa !5
  %476 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %475, i32 0, i32 3
  store i32 0, ptr %476, align 4, !tbaa !19
  %477 = load ptr, ptr %5, align 8, !tbaa !5
  %478 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %477, i32 0, i32 4
  store i32 0, ptr %478, align 8, !tbaa !20
  %479 = load ptr, ptr %5, align 8, !tbaa !5
  %480 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %479, i32 0, i32 5
  store i32 0, ptr %480, align 4, !tbaa !21
  %481 = load ptr, ptr %5, align 8, !tbaa !5
  %482 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %481, i32 0, i32 6
  store i32 9999, ptr %482, align 8, !tbaa !22
  %483 = load ptr, ptr %5, align 8, !tbaa !5
  %484 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %483, i32 0, i32 7
  store i32 9999, ptr %484, align 4, !tbaa !23
  %485 = load ptr, ptr %5, align 8, !tbaa !5
  %486 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %485, i32 0, i32 8
  store i32 9999, ptr %486, align 8, !tbaa !24
  %487 = load ptr, ptr %5, align 8, !tbaa !5
  %488 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %487, i32 0, i32 9
  store i32 9999, ptr %488, align 4, !tbaa !25
  %489 = load ptr, ptr %5, align 8, !tbaa !5
  %490 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %489, i32 0, i32 13
  store i32 9999, ptr %490, align 4, !tbaa !26
  %491 = load ptr, ptr %5, align 8, !tbaa !5
  %492 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %491, i32 0, i32 14
  store i32 9999, ptr %492, align 8, !tbaa !27
  %493 = load ptr, ptr %5, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %493, i32 0, i32 15
  store i32 9999, ptr %494, align 4, !tbaa !28
  br label %495

495:                                              ; preds = %464, %457
  br label %496

496:                                              ; preds = %495, %372
  br label %497

497:                                              ; preds = %496, %297
  br label %498

498:                                              ; preds = %497, %222
  br label %499

499:                                              ; preds = %498, %147
  br label %3382

500:                                              ; preds = %57
  %501 = load i32, ptr %6, align 4, !tbaa !9
  %502 = icmp ult i32 %501, 1041
  br i1 %502, label %503, label %1269

503:                                              ; preds = %500
  %504 = load i32, ptr %6, align 4, !tbaa !9
  %505 = load ptr, ptr %5, align 8, !tbaa !5
  %506 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %505, i32 0, i32 0
  store i32 %504, ptr %506, align 8, !tbaa !11
  %507 = load ptr, ptr %5, align 8, !tbaa !5
  %508 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %507, i32 0, i32 1
  store i32 16, ptr %508, align 4, !tbaa !15
  %509 = load i32, ptr %8, align 4, !tbaa !9
  %510 = load ptr, ptr %5, align 8, !tbaa !5
  %511 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %510, i32 0, i32 11
  store i32 %509, ptr %511, align 4, !tbaa !16
  %512 = load ptr, ptr %5, align 8, !tbaa !5
  %513 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %512, i32 0, i32 21
  store i8 121, ptr %513, align 4, !tbaa !17
  %514 = load ptr, ptr %7, align 8, !tbaa !5
  %515 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %514, i32 0, i32 8
  %516 = getelementptr inbounds [3 x i8], ptr %515, i64 0, i64 0
  %517 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %516)
  %518 = icmp eq i32 0, %517
  br i1 %518, label %519, label %597

519:                                              ; preds = %503
  %520 = load ptr, ptr %5, align 8, !tbaa !5
  %521 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %520, i32 0, i32 2
  store i32 4, ptr %521, align 8, !tbaa !18
  %522 = load ptr, ptr %5, align 8, !tbaa !5
  %523 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %522, i32 0, i32 3
  store i32 8, ptr %523, align 4, !tbaa !19
  %524 = load ptr, ptr %5, align 8, !tbaa !5
  %525 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %524, i32 0, i32 4
  store i32 8, ptr %525, align 8, !tbaa !20
  %526 = load ptr, ptr %5, align 8, !tbaa !5
  %527 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %526, i32 0, i32 5
  store i32 8, ptr %527, align 4, !tbaa !21
  %528 = load ptr, ptr %7, align 8, !tbaa !5
  %529 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %528, i32 0, i32 6
  %530 = load i32, ptr %529, align 1, !tbaa !29
  %531 = and i32 8, %530
  %532 = icmp ne i32 %531, 0
  br i1 %532, label %533, label %547

533:                                              ; preds = %519
  %534 = load ptr, ptr %7, align 8, !tbaa !5
  %535 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %534, i32 0, i32 3
  %536 = load i32, ptr %535, align 1, !tbaa !32
  %537 = load ptr, ptr %5, align 8, !tbaa !5
  %538 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %537, i32 0, i32 2
  %539 = load i32, ptr %538, align 8, !tbaa !18
  %540 = urem i32 %536, %539
  %541 = icmp eq i32 0, %540
  br i1 %541, label %542, label %543

542:                                              ; preds = %533
  br label %544

543:                                              ; preds = %533
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2288, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

544:                                              ; preds = %542
  %545 = load ptr, ptr %5, align 8, !tbaa !5
  %546 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %545, i32 0, i32 6
  store i32 545592872, ptr %546, align 8, !tbaa !22
  br label %550

547:                                              ; preds = %519
  %548 = load ptr, ptr %5, align 8, !tbaa !5
  %549 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %548, i32 0, i32 6
  store i32 545592848, ptr %549, align 8, !tbaa !22
  br label %550

550:                                              ; preds = %547, %544
  %551 = load ptr, ptr %5, align 8, !tbaa !5
  %552 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %551, i32 0, i32 7
  store i32 545598233, ptr %552, align 4, !tbaa !23
  %553 = load ptr, ptr %5, align 8, !tbaa !5
  %554 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %553, i32 0, i32 8
  store i32 9999, ptr %554, align 8, !tbaa !24
  %555 = load ptr, ptr %7, align 8, !tbaa !5
  %556 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %555, i32 0, i32 6
  %557 = load i32, ptr %556, align 1, !tbaa !29
  %558 = and i32 16, %557
  %559 = icmp ne i32 %558, 0
  br i1 %559, label %560, label %576

560:                                              ; preds = %550
  %561 = load ptr, ptr %7, align 8, !tbaa !5
  %562 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %561, i32 0, i32 5
  %563 = load i32, ptr %562, align 1, !tbaa !33
  %564 = load ptr, ptr %5, align 8, !tbaa !5
  %565 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %564, i32 0, i32 2
  %566 = load i32, ptr %565, align 8, !tbaa !18
  %567 = urem i32 %563, %566
  %568 = icmp eq i32 0, %567
  br i1 %568, label %569, label %570

569:                                              ; preds = %560
  br label %571

570:                                              ; preds = %560
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2296, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

571:                                              ; preds = %569
  %572 = load ptr, ptr %5, align 8, !tbaa !5
  %573 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %572, i32 0, i32 9
  store i32 545592872, ptr %573, align 4, !tbaa !25
  %574 = load ptr, ptr %5, align 8, !tbaa !5
  %575 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %574, i32 0, i32 10
  store i32 545592875, ptr %575, align 8, !tbaa !34
  br label %581

576:                                              ; preds = %550
  %577 = load ptr, ptr %5, align 8, !tbaa !5
  %578 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %577, i32 0, i32 9
  store i32 545592848, ptr %578, align 4, !tbaa !25
  %579 = load ptr, ptr %5, align 8, !tbaa !5
  %580 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %579, i32 0, i32 10
  store i32 545592848, ptr %580, align 8, !tbaa !34
  br label %581

581:                                              ; preds = %576, %571
  %582 = load ptr, ptr %5, align 8, !tbaa !5
  %583 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %582, i32 0, i32 13
  store i32 814028375, ptr %583, align 4, !tbaa !26
  %584 = load i32, ptr %6, align 4, !tbaa !9
  %585 = icmp eq i32 %584, 1005
  br i1 %585, label %586, label %591

586:                                              ; preds = %581
  %587 = load ptr, ptr %5, align 8, !tbaa !5
  %588 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %587, i32 0, i32 14
  store i32 814028377, ptr %588, align 8, !tbaa !27
  %589 = load ptr, ptr %5, align 8, !tbaa !5
  %590 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %589, i32 0, i32 15
  store i32 814028376, ptr %590, align 4, !tbaa !28
  br label %596

591:                                              ; preds = %581
  %592 = load ptr, ptr %5, align 8, !tbaa !5
  %593 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %592, i32 0, i32 14
  store i32 814032568, ptr %593, align 8, !tbaa !27
  %594 = load ptr, ptr %5, align 8, !tbaa !5
  %595 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %594, i32 0, i32 15
  store i32 814028376, ptr %595, align 4, !tbaa !28
  br label %596

596:                                              ; preds = %591, %586
  br label %1268

597:                                              ; preds = %503
  %598 = load ptr, ptr %7, align 8, !tbaa !5
  %599 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %598, i32 0, i32 8
  %600 = getelementptr inbounds [3 x i8], ptr %599, i64 0, i64 0
  %601 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %600)
  %602 = icmp eq i32 1, %601
  br i1 %602, label %603, label %681

603:                                              ; preds = %597
  %604 = load ptr, ptr %5, align 8, !tbaa !5
  %605 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %604, i32 0, i32 2
  store i32 8, ptr %605, align 8, !tbaa !18
  %606 = load ptr, ptr %5, align 8, !tbaa !5
  %607 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %606, i32 0, i32 3
  store i32 4, ptr %607, align 4, !tbaa !19
  %608 = load ptr, ptr %5, align 8, !tbaa !5
  %609 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %608, i32 0, i32 4
  store i32 4, ptr %609, align 8, !tbaa !20
  %610 = load ptr, ptr %5, align 8, !tbaa !5
  %611 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %610, i32 0, i32 5
  store i32 4, ptr %611, align 4, !tbaa !21
  %612 = load ptr, ptr %7, align 8, !tbaa !5
  %613 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %612, i32 0, i32 6
  %614 = load i32, ptr %613, align 1, !tbaa !29
  %615 = and i32 8, %614
  %616 = icmp ne i32 %615, 0
  br i1 %616, label %617, label %631

617:                                              ; preds = %603
  %618 = load ptr, ptr %7, align 8, !tbaa !5
  %619 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %618, i32 0, i32 3
  %620 = load i32, ptr %619, align 1, !tbaa !32
  %621 = load ptr, ptr %5, align 8, !tbaa !5
  %622 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %621, i32 0, i32 2
  %623 = load i32, ptr %622, align 8, !tbaa !18
  %624 = urem i32 %620, %623
  %625 = icmp eq i32 0, %624
  br i1 %625, label %626, label %627

626:                                              ; preds = %617
  br label %628

627:                                              ; preds = %617
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2317, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

628:                                              ; preds = %626
  %629 = load ptr, ptr %5, align 8, !tbaa !5
  %630 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %629, i32 0, i32 6
  store i32 537138728, ptr %630, align 8, !tbaa !22
  br label %634

631:                                              ; preds = %603
  %632 = load ptr, ptr %5, align 8, !tbaa !5
  %633 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %632, i32 0, i32 6
  store i32 537138704, ptr %633, align 8, !tbaa !22
  br label %634

634:                                              ; preds = %631, %628
  %635 = load ptr, ptr %5, align 8, !tbaa !5
  %636 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %635, i32 0, i32 7
  store i32 537209368, ptr %636, align 4, !tbaa !23
  %637 = load ptr, ptr %5, align 8, !tbaa !5
  %638 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %637, i32 0, i32 8
  store i32 9999, ptr %638, align 8, !tbaa !24
  %639 = load ptr, ptr %7, align 8, !tbaa !5
  %640 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %639, i32 0, i32 6
  %641 = load i32, ptr %640, align 1, !tbaa !29
  %642 = and i32 16, %641
  %643 = icmp ne i32 %642, 0
  br i1 %643, label %644, label %660

644:                                              ; preds = %634
  %645 = load ptr, ptr %7, align 8, !tbaa !5
  %646 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %645, i32 0, i32 5
  %647 = load i32, ptr %646, align 1, !tbaa !33
  %648 = load ptr, ptr %5, align 8, !tbaa !5
  %649 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %648, i32 0, i32 2
  %650 = load i32, ptr %649, align 8, !tbaa !18
  %651 = urem i32 %647, %650
  %652 = icmp eq i32 0, %651
  br i1 %652, label %653, label %654

653:                                              ; preds = %644
  br label %655

654:                                              ; preds = %644
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2325, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

655:                                              ; preds = %653
  %656 = load ptr, ptr %5, align 8, !tbaa !5
  %657 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %656, i32 0, i32 9
  store i32 537138728, ptr %657, align 4, !tbaa !25
  %658 = load ptr, ptr %5, align 8, !tbaa !5
  %659 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %658, i32 0, i32 10
  store i32 537138731, ptr %659, align 8, !tbaa !34
  br label %665

660:                                              ; preds = %634
  %661 = load ptr, ptr %5, align 8, !tbaa !5
  %662 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %661, i32 0, i32 9
  store i32 537138704, ptr %662, align 4, !tbaa !25
  %663 = load ptr, ptr %5, align 8, !tbaa !5
  %664 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %663, i32 0, i32 10
  store i32 537138704, ptr %664, align 8, !tbaa !34
  br label %665

665:                                              ; preds = %660, %655
  %666 = load ptr, ptr %5, align 8, !tbaa !5
  %667 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %666, i32 0, i32 13
  store i32 805574231, ptr %667, align 4, !tbaa !26
  %668 = load i32, ptr %6, align 4, !tbaa !9
  %669 = icmp eq i32 %668, 1005
  br i1 %669, label %670, label %675

670:                                              ; preds = %665
  %671 = load ptr, ptr %5, align 8, !tbaa !5
  %672 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %671, i32 0, i32 14
  store i32 805574233, ptr %672, align 8, !tbaa !27
  %673 = load ptr, ptr %5, align 8, !tbaa !5
  %674 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %673, i32 0, i32 15
  store i32 805574232, ptr %674, align 4, !tbaa !28
  br label %680

675:                                              ; preds = %665
  %676 = load ptr, ptr %5, align 8, !tbaa !5
  %677 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %676, i32 0, i32 14
  store i32 805643960, ptr %677, align 8, !tbaa !27
  %678 = load ptr, ptr %5, align 8, !tbaa !5
  %679 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %678, i32 0, i32 15
  store i32 805574232, ptr %679, align 4, !tbaa !28
  br label %680

680:                                              ; preds = %675, %670
  br label %1267

681:                                              ; preds = %597
  %682 = load i32, ptr %9, align 4, !tbaa !9
  %683 = icmp ugt i32 %682, 0
  br i1 %683, label %684, label %741

684:                                              ; preds = %681
  %685 = load ptr, ptr %5, align 8, !tbaa !5
  %686 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %685, i32 0, i32 2
  store i32 8, ptr %686, align 8, !tbaa !18
  %687 = load ptr, ptr %5, align 8, !tbaa !5
  %688 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %687, i32 0, i32 3
  store i32 1, ptr %688, align 4, !tbaa !19
  %689 = load ptr, ptr %5, align 8, !tbaa !5
  %690 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %689, i32 0, i32 4
  store i32 4, ptr %690, align 8, !tbaa !20
  %691 = load ptr, ptr %5, align 8, !tbaa !5
  %692 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %691, i32 0, i32 5
  store i32 4, ptr %692, align 4, !tbaa !21
  %693 = load ptr, ptr %5, align 8, !tbaa !5
  %694 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %693, i32 0, i32 6
  store i32 545725200, ptr %694, align 8, !tbaa !22
  %695 = load ptr, ptr %5, align 8, !tbaa !5
  %696 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %695, i32 0, i32 7
  store i32 537209368, ptr %696, align 4, !tbaa !23
  %697 = load ptr, ptr %5, align 8, !tbaa !5
  %698 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %697, i32 0, i32 8
  store i32 9999, ptr %698, align 8, !tbaa !24
  %699 = load ptr, ptr %7, align 8, !tbaa !5
  %700 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %699, i32 0, i32 6
  %701 = load i32, ptr %700, align 1, !tbaa !29
  %702 = and i32 16, %701
  %703 = icmp ne i32 %702, 0
  br i1 %703, label %704, label %720

704:                                              ; preds = %684
  %705 = load ptr, ptr %7, align 8, !tbaa !5
  %706 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %705, i32 0, i32 5
  %707 = load i32, ptr %706, align 1, !tbaa !33
  %708 = load ptr, ptr %5, align 8, !tbaa !5
  %709 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %708, i32 0, i32 2
  %710 = load i32, ptr %709, align 8, !tbaa !18
  %711 = urem i32 %707, %710
  %712 = icmp eq i32 0, %711
  br i1 %712, label %713, label %714

713:                                              ; preds = %704
  br label %715

714:                                              ; preds = %704
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2349, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

715:                                              ; preds = %713
  %716 = load ptr, ptr %5, align 8, !tbaa !5
  %717 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %716, i32 0, i32 9
  store i32 537138728, ptr %717, align 4, !tbaa !25
  %718 = load ptr, ptr %5, align 8, !tbaa !5
  %719 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %718, i32 0, i32 10
  store i32 537138731, ptr %719, align 8, !tbaa !34
  br label %725

720:                                              ; preds = %684
  %721 = load ptr, ptr %5, align 8, !tbaa !5
  %722 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %721, i32 0, i32 9
  store i32 537138704, ptr %722, align 4, !tbaa !25
  %723 = load ptr, ptr %5, align 8, !tbaa !5
  %724 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %723, i32 0, i32 10
  store i32 537138704, ptr %724, align 8, !tbaa !34
  br label %725

725:                                              ; preds = %720, %715
  %726 = load ptr, ptr %5, align 8, !tbaa !5
  %727 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %726, i32 0, i32 13
  store i32 805574231, ptr %727, align 4, !tbaa !26
  %728 = load i32, ptr %6, align 4, !tbaa !9
  %729 = icmp eq i32 %728, 1005
  br i1 %729, label %730, label %735

730:                                              ; preds = %725
  %731 = load ptr, ptr %5, align 8, !tbaa !5
  %732 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %731, i32 0, i32 14
  store i32 805574233, ptr %732, align 8, !tbaa !27
  %733 = load ptr, ptr %5, align 8, !tbaa !5
  %734 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %733, i32 0, i32 15
  store i32 805574232, ptr %734, align 4, !tbaa !28
  br label %740

735:                                              ; preds = %725
  %736 = load ptr, ptr %5, align 8, !tbaa !5
  %737 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %736, i32 0, i32 14
  store i32 805643960, ptr %737, align 8, !tbaa !27
  %738 = load ptr, ptr %5, align 8, !tbaa !5
  %739 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %738, i32 0, i32 15
  store i32 805574232, ptr %739, align 4, !tbaa !28
  br label %740

740:                                              ; preds = %735, %730
  br label %1266

741:                                              ; preds = %681
  %742 = load i32, ptr %11, align 4, !tbaa !9
  %743 = icmp ugt i32 %742, 0
  br i1 %743, label %744, label %818

744:                                              ; preds = %741
  %745 = load ptr, ptr %5, align 8, !tbaa !5
  %746 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %745, i32 0, i32 2
  store i32 8, ptr %746, align 8, !tbaa !18
  %747 = load ptr, ptr %5, align 8, !tbaa !5
  %748 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %747, i32 0, i32 3
  store i32 1, ptr %748, align 4, !tbaa !19
  %749 = load ptr, ptr %5, align 8, !tbaa !5
  %750 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %749, i32 0, i32 4
  store i32 2, ptr %750, align 8, !tbaa !20
  %751 = load ptr, ptr %7, align 8, !tbaa !5
  %752 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %751, i32 0, i32 8
  %753 = getelementptr inbounds [3 x i8], ptr %752, i64 0, i64 0
  %754 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %753)
  %755 = icmp eq i32 2, %754
  br i1 %755, label %756, label %759

756:                                              ; preds = %744
  %757 = load ptr, ptr %5, align 8, !tbaa !5
  %758 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %757, i32 0, i32 5
  store i32 2, ptr %758, align 4, !tbaa !21
  br label %762

759:                                              ; preds = %744
  %760 = load ptr, ptr %5, align 8, !tbaa !5
  %761 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %760, i32 0, i32 5
  store i32 4, ptr %761, align 4, !tbaa !21
  br label %762

762:                                              ; preds = %759, %756
  %763 = load ptr, ptr %5, align 8, !tbaa !5
  %764 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %763, i32 0, i32 6
  store i32 545725200, ptr %764, align 8, !tbaa !22
  %765 = load i32, ptr %6, align 4, !tbaa !9
  %766 = icmp uge i32 %765, 1008
  br i1 %766, label %767, label %770

767:                                              ; preds = %762
  %768 = load ptr, ptr %5, align 8, !tbaa !5
  %769 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %768, i32 0, i32 7
  store i32 1611014321, ptr %769, align 4, !tbaa !23
  br label %773

770:                                              ; preds = %762
  %771 = load ptr, ptr %5, align 8, !tbaa !5
  %772 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %771, i32 0, i32 7
  store i32 537209368, ptr %772, align 4, !tbaa !23
  br label %773

773:                                              ; preds = %770, %767
  %774 = load ptr, ptr %5, align 8, !tbaa !5
  %775 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %774, i32 0, i32 8
  store i32 9999, ptr %775, align 8, !tbaa !24
  %776 = load ptr, ptr %7, align 8, !tbaa !5
  %777 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %776, i32 0, i32 6
  %778 = load i32, ptr %777, align 1, !tbaa !29
  %779 = and i32 16, %778
  %780 = icmp ne i32 %779, 0
  br i1 %780, label %781, label %797

781:                                              ; preds = %773
  %782 = load ptr, ptr %7, align 8, !tbaa !5
  %783 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %782, i32 0, i32 5
  %784 = load i32, ptr %783, align 1, !tbaa !33
  %785 = load ptr, ptr %5, align 8, !tbaa !5
  %786 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %785, i32 0, i32 2
  %787 = load i32, ptr %786, align 8, !tbaa !18
  %788 = urem i32 %784, %787
  %789 = icmp eq i32 0, %788
  br i1 %789, label %790, label %791

790:                                              ; preds = %781
  br label %792

791:                                              ; preds = %781
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2381, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

792:                                              ; preds = %790
  %793 = load ptr, ptr %5, align 8, !tbaa !5
  %794 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %793, i32 0, i32 9
  store i32 537138728, ptr %794, align 4, !tbaa !25
  %795 = load ptr, ptr %5, align 8, !tbaa !5
  %796 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %795, i32 0, i32 10
  store i32 537138731, ptr %796, align 8, !tbaa !34
  br label %802

797:                                              ; preds = %773
  %798 = load ptr, ptr %5, align 8, !tbaa !5
  %799 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %798, i32 0, i32 9
  store i32 537138704, ptr %799, align 4, !tbaa !25
  %800 = load ptr, ptr %5, align 8, !tbaa !5
  %801 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %800, i32 0, i32 10
  store i32 537138704, ptr %801, align 8, !tbaa !34
  br label %802

802:                                              ; preds = %797, %792
  %803 = load ptr, ptr %5, align 8, !tbaa !5
  %804 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %803, i32 0, i32 13
  store i32 805574231, ptr %804, align 4, !tbaa !26
  %805 = load i32, ptr %6, align 4, !tbaa !9
  %806 = icmp eq i32 %805, 1005
  br i1 %806, label %807, label %812

807:                                              ; preds = %802
  %808 = load ptr, ptr %5, align 8, !tbaa !5
  %809 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %808, i32 0, i32 14
  store i32 805574233, ptr %809, align 8, !tbaa !27
  %810 = load ptr, ptr %5, align 8, !tbaa !5
  %811 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %810, i32 0, i32 15
  store i32 805574232, ptr %811, align 4, !tbaa !28
  br label %817

812:                                              ; preds = %802
  %813 = load ptr, ptr %5, align 8, !tbaa !5
  %814 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %813, i32 0, i32 14
  store i32 805643960, ptr %814, align 8, !tbaa !27
  %815 = load ptr, ptr %5, align 8, !tbaa !5
  %816 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %815, i32 0, i32 15
  store i32 805574232, ptr %816, align 4, !tbaa !28
  br label %817

817:                                              ; preds = %812, %807
  br label %1265

818:                                              ; preds = %741
  %819 = load i32, ptr %10, align 4, !tbaa !9
  %820 = icmp ugt i32 %819, 0
  br i1 %820, label %821, label %879

821:                                              ; preds = %818
  %822 = load ptr, ptr %5, align 8, !tbaa !5
  %823 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %822, i32 0, i32 2
  store i32 8, ptr %823, align 8, !tbaa !18
  %824 = load ptr, ptr %5, align 8, !tbaa !5
  %825 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %824, i32 0, i32 3
  store i32 1, ptr %825, align 4, !tbaa !19
  %826 = load ptr, ptr %5, align 8, !tbaa !5
  %827 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %826, i32 0, i32 4
  store i32 1, ptr %827, align 8, !tbaa !20
  %828 = load ptr, ptr %7, align 8, !tbaa !5
  %829 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %828, i32 0, i32 8
  %830 = getelementptr inbounds [3 x i8], ptr %829, i64 0, i64 0
  %831 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %830)
  %832 = icmp eq i32 2, %831
  br i1 %832, label %833, label %836

833:                                              ; preds = %821
  %834 = load ptr, ptr %5, align 8, !tbaa !5
  %835 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %834, i32 0, i32 5
  store i32 2, ptr %835, align 4, !tbaa !21
  br label %839

836:                                              ; preds = %821
  %837 = load ptr, ptr %5, align 8, !tbaa !5
  %838 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %837, i32 0, i32 5
  store i32 4, ptr %838, align 4, !tbaa !21
  br label %839

839:                                              ; preds = %836, %833
  %840 = load ptr, ptr %5, align 8, !tbaa !5
  %841 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %840, i32 0, i32 6
  store i32 537138704, ptr %841, align 8, !tbaa !22
  %842 = load ptr, ptr %5, align 8, !tbaa !5
  %843 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %842, i32 0, i32 7
  store i32 537209368, ptr %843, align 4, !tbaa !23
  %844 = load ptr, ptr %5, align 8, !tbaa !5
  %845 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %844, i32 0, i32 8
  store i32 9999, ptr %845, align 8, !tbaa !24
  %846 = load ptr, ptr %7, align 8, !tbaa !5
  %847 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %846, i32 0, i32 6
  %848 = load i32, ptr %847, align 1, !tbaa !29
  %849 = and i32 16, %848
  %850 = icmp ne i32 %849, 0
  br i1 %850, label %851, label %867

851:                                              ; preds = %839
  %852 = load ptr, ptr %7, align 8, !tbaa !5
  %853 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %852, i32 0, i32 5
  %854 = load i32, ptr %853, align 1, !tbaa !33
  %855 = load ptr, ptr %5, align 8, !tbaa !5
  %856 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %855, i32 0, i32 2
  %857 = load i32, ptr %856, align 8, !tbaa !18
  %858 = urem i32 %854, %857
  %859 = icmp eq i32 0, %858
  br i1 %859, label %860, label %861

860:                                              ; preds = %851
  br label %862

861:                                              ; preds = %851
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2409, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

862:                                              ; preds = %860
  %863 = load ptr, ptr %5, align 8, !tbaa !5
  %864 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %863, i32 0, i32 9
  store i32 537138728, ptr %864, align 4, !tbaa !25
  %865 = load ptr, ptr %5, align 8, !tbaa !5
  %866 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %865, i32 0, i32 10
  store i32 537138731, ptr %866, align 8, !tbaa !34
  br label %872

867:                                              ; preds = %839
  %868 = load ptr, ptr %5, align 8, !tbaa !5
  %869 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %868, i32 0, i32 9
  store i32 537138704, ptr %869, align 4, !tbaa !25
  %870 = load ptr, ptr %5, align 8, !tbaa !5
  %871 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %870, i32 0, i32 10
  store i32 537138704, ptr %871, align 8, !tbaa !34
  br label %872

872:                                              ; preds = %867, %862
  %873 = load ptr, ptr %5, align 8, !tbaa !5
  %874 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %873, i32 0, i32 13
  store i32 805574231, ptr %874, align 4, !tbaa !26
  %875 = load ptr, ptr %5, align 8, !tbaa !5
  %876 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %875, i32 0, i32 14
  store i32 1879515216, ptr %876, align 8, !tbaa !27
  %877 = load ptr, ptr %5, align 8, !tbaa !5
  %878 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %877, i32 0, i32 15
  store i32 805574232, ptr %878, align 4, !tbaa !28
  br label %1264

879:                                              ; preds = %818
  %880 = load ptr, ptr %7, align 8, !tbaa !5
  %881 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %880, i32 0, i32 8
  %882 = getelementptr inbounds [3 x i8], ptr %881, i64 0, i64 0
  %883 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %882)
  %884 = icmp eq i32 2, %883
  br i1 %884, label %885, label %979

885:                                              ; preds = %879
  %886 = load ptr, ptr %7, align 8, !tbaa !5
  %887 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %886, i32 0, i32 6
  %888 = load i32, ptr %887, align 1, !tbaa !29
  %889 = and i32 %888, 2048
  %890 = icmp ugt i32 %889, 0
  br i1 %890, label %891, label %979

891:                                              ; preds = %885
  %892 = load ptr, ptr %5, align 8, !tbaa !5
  %893 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %892, i32 0, i32 2
  store i32 8, ptr %893, align 8, !tbaa !18
  %894 = load ptr, ptr %5, align 8, !tbaa !5
  %895 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %894, i32 0, i32 3
  store i32 2, ptr %895, align 4, !tbaa !19
  %896 = load ptr, ptr %5, align 8, !tbaa !5
  %897 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %896, i32 0, i32 4
  store i32 2, ptr %897, align 8, !tbaa !20
  %898 = load ptr, ptr %7, align 8, !tbaa !5
  %899 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %898, i32 0, i32 8
  %900 = getelementptr inbounds [3 x i8], ptr %899, i64 0, i64 0
  %901 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %900)
  %902 = icmp eq i32 2, %901
  br i1 %902, label %903, label %906

903:                                              ; preds = %891
  %904 = load ptr, ptr %5, align 8, !tbaa !5
  %905 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %904, i32 0, i32 5
  store i32 2, ptr %905, align 4, !tbaa !21
  br label %909

906:                                              ; preds = %891
  %907 = load ptr, ptr %5, align 8, !tbaa !5
  %908 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %907, i32 0, i32 5
  store i32 4, ptr %908, align 4, !tbaa !21
  br label %909

909:                                              ; preds = %906, %903
  %910 = load ptr, ptr %7, align 8, !tbaa !5
  %911 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %910, i32 0, i32 6
  %912 = load i32, ptr %911, align 1, !tbaa !29
  %913 = and i32 8, %912
  %914 = icmp ne i32 %913, 0
  br i1 %914, label %915, label %929

915:                                              ; preds = %909
  %916 = load ptr, ptr %7, align 8, !tbaa !5
  %917 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %916, i32 0, i32 3
  %918 = load i32, ptr %917, align 1, !tbaa !32
  %919 = load ptr, ptr %5, align 8, !tbaa !5
  %920 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %919, i32 0, i32 2
  %921 = load i32, ptr %920, align 8, !tbaa !18
  %922 = urem i32 %918, %921
  %923 = icmp eq i32 0, %922
  br i1 %923, label %924, label %925

924:                                              ; preds = %915
  br label %926

925:                                              ; preds = %915
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2430, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

926:                                              ; preds = %924
  %927 = load ptr, ptr %5, align 8, !tbaa !5
  %928 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %927, i32 0, i32 6
  store i32 537138728, ptr %928, align 8, !tbaa !22
  br label %932

929:                                              ; preds = %909
  %930 = load ptr, ptr %5, align 8, !tbaa !5
  %931 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %930, i32 0, i32 6
  store i32 537138704, ptr %931, align 8, !tbaa !22
  br label %932

932:                                              ; preds = %929, %926
  %933 = load ptr, ptr %5, align 8, !tbaa !5
  %934 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %933, i32 0, i32 7
  store i32 537209368, ptr %934, align 4, !tbaa !23
  %935 = load ptr, ptr %5, align 8, !tbaa !5
  %936 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %935, i32 0, i32 8
  store i32 9999, ptr %936, align 8, !tbaa !24
  %937 = load ptr, ptr %7, align 8, !tbaa !5
  %938 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %937, i32 0, i32 6
  %939 = load i32, ptr %938, align 1, !tbaa !29
  %940 = and i32 16, %939
  %941 = icmp ne i32 %940, 0
  br i1 %941, label %942, label %958

942:                                              ; preds = %932
  %943 = load ptr, ptr %7, align 8, !tbaa !5
  %944 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %943, i32 0, i32 5
  %945 = load i32, ptr %944, align 1, !tbaa !33
  %946 = load ptr, ptr %5, align 8, !tbaa !5
  %947 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %946, i32 0, i32 2
  %948 = load i32, ptr %947, align 8, !tbaa !18
  %949 = urem i32 %945, %948
  %950 = icmp eq i32 0, %949
  br i1 %950, label %951, label %952

951:                                              ; preds = %942
  br label %953

952:                                              ; preds = %942
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2438, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

953:                                              ; preds = %951
  %954 = load ptr, ptr %5, align 8, !tbaa !5
  %955 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %954, i32 0, i32 9
  store i32 537138728, ptr %955, align 4, !tbaa !25
  %956 = load ptr, ptr %5, align 8, !tbaa !5
  %957 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %956, i32 0, i32 10
  store i32 537138731, ptr %957, align 8, !tbaa !34
  br label %963

958:                                              ; preds = %932
  %959 = load ptr, ptr %5, align 8, !tbaa !5
  %960 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %959, i32 0, i32 9
  store i32 537138704, ptr %960, align 4, !tbaa !25
  %961 = load ptr, ptr %5, align 8, !tbaa !5
  %962 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %961, i32 0, i32 10
  store i32 537138704, ptr %962, align 8, !tbaa !34
  br label %963

963:                                              ; preds = %958, %953
  %964 = load ptr, ptr %5, align 8, !tbaa !5
  %965 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %964, i32 0, i32 13
  store i32 805574231, ptr %965, align 4, !tbaa !26
  %966 = load i32, ptr %6, align 4, !tbaa !9
  %967 = icmp eq i32 %966, 1005
  br i1 %967, label %968, label %973

968:                                              ; preds = %963
  %969 = load ptr, ptr %5, align 8, !tbaa !5
  %970 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %969, i32 0, i32 14
  store i32 805574233, ptr %970, align 8, !tbaa !27
  %971 = load ptr, ptr %5, align 8, !tbaa !5
  %972 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %971, i32 0, i32 15
  store i32 805574232, ptr %972, align 4, !tbaa !28
  br label %978

973:                                              ; preds = %963
  %974 = load ptr, ptr %5, align 8, !tbaa !5
  %975 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %974, i32 0, i32 14
  store i32 805643960, ptr %975, align 8, !tbaa !27
  %976 = load ptr, ptr %5, align 8, !tbaa !5
  %977 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %976, i32 0, i32 15
  store i32 805574232, ptr %977, align 4, !tbaa !28
  br label %978

978:                                              ; preds = %973, %968
  br label %1263

979:                                              ; preds = %885, %879
  %980 = load ptr, ptr %7, align 8, !tbaa !5
  %981 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %980, i32 0, i32 8
  %982 = getelementptr inbounds [3 x i8], ptr %981, i64 0, i64 0
  %983 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %982)
  %984 = icmp eq i32 2, %983
  br i1 %984, label %985, label %1079

985:                                              ; preds = %979
  %986 = load ptr, ptr %7, align 8, !tbaa !5
  %987 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %986, i32 0, i32 6
  %988 = load i32, ptr %987, align 1, !tbaa !29
  %989 = and i32 %988, 2048
  %990 = icmp eq i32 %989, 0
  br i1 %990, label %991, label %1079

991:                                              ; preds = %985
  %992 = load ptr, ptr %5, align 8, !tbaa !5
  %993 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %992, i32 0, i32 2
  store i32 8, ptr %993, align 8, !tbaa !18
  %994 = load ptr, ptr %5, align 8, !tbaa !5
  %995 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %994, i32 0, i32 3
  store i32 2, ptr %995, align 4, !tbaa !19
  %996 = load ptr, ptr %5, align 8, !tbaa !5
  %997 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %996, i32 0, i32 4
  store i32 2, ptr %997, align 8, !tbaa !20
  %998 = load ptr, ptr %7, align 8, !tbaa !5
  %999 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %998, i32 0, i32 8
  %1000 = getelementptr inbounds [3 x i8], ptr %999, i64 0, i64 0
  %1001 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1000)
  %1002 = icmp eq i32 2, %1001
  br i1 %1002, label %1003, label %1006

1003:                                             ; preds = %991
  %1004 = load ptr, ptr %5, align 8, !tbaa !5
  %1005 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1004, i32 0, i32 5
  store i32 2, ptr %1005, align 4, !tbaa !21
  br label %1009

1006:                                             ; preds = %991
  %1007 = load ptr, ptr %5, align 8, !tbaa !5
  %1008 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1007, i32 0, i32 5
  store i32 4, ptr %1008, align 4, !tbaa !21
  br label %1009

1009:                                             ; preds = %1006, %1003
  %1010 = load ptr, ptr %7, align 8, !tbaa !5
  %1011 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1010, i32 0, i32 6
  %1012 = load i32, ptr %1011, align 1, !tbaa !29
  %1013 = and i32 8, %1012
  %1014 = icmp ne i32 %1013, 0
  br i1 %1014, label %1015, label %1029

1015:                                             ; preds = %1009
  %1016 = load ptr, ptr %7, align 8, !tbaa !5
  %1017 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1016, i32 0, i32 3
  %1018 = load i32, ptr %1017, align 1, !tbaa !32
  %1019 = load ptr, ptr %5, align 8, !tbaa !5
  %1020 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1019, i32 0, i32 2
  %1021 = load i32, ptr %1020, align 8, !tbaa !18
  %1022 = urem i32 %1018, %1021
  %1023 = icmp eq i32 0, %1022
  br i1 %1023, label %1024, label %1025

1024:                                             ; preds = %1015
  br label %1026

1025:                                             ; preds = %1015
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2464, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

1026:                                             ; preds = %1024
  %1027 = load ptr, ptr %5, align 8, !tbaa !5
  %1028 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1027, i32 0, i32 6
  store i32 537138728, ptr %1028, align 8, !tbaa !22
  br label %1032

1029:                                             ; preds = %1009
  %1030 = load ptr, ptr %5, align 8, !tbaa !5
  %1031 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1030, i32 0, i32 6
  store i32 537138704, ptr %1031, align 8, !tbaa !22
  br label %1032

1032:                                             ; preds = %1029, %1026
  %1033 = load ptr, ptr %5, align 8, !tbaa !5
  %1034 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1033, i32 0, i32 7
  store i32 537209209, ptr %1034, align 4, !tbaa !23
  %1035 = load ptr, ptr %5, align 8, !tbaa !5
  %1036 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1035, i32 0, i32 8
  store i32 9999, ptr %1036, align 8, !tbaa !24
  %1037 = load ptr, ptr %7, align 8, !tbaa !5
  %1038 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1037, i32 0, i32 6
  %1039 = load i32, ptr %1038, align 1, !tbaa !29
  %1040 = and i32 16, %1039
  %1041 = icmp ne i32 %1040, 0
  br i1 %1041, label %1042, label %1058

1042:                                             ; preds = %1032
  %1043 = load ptr, ptr %7, align 8, !tbaa !5
  %1044 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1043, i32 0, i32 5
  %1045 = load i32, ptr %1044, align 1, !tbaa !33
  %1046 = load ptr, ptr %5, align 8, !tbaa !5
  %1047 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1046, i32 0, i32 2
  %1048 = load i32, ptr %1047, align 8, !tbaa !18
  %1049 = urem i32 %1045, %1048
  %1050 = icmp eq i32 0, %1049
  br i1 %1050, label %1051, label %1052

1051:                                             ; preds = %1042
  br label %1053

1052:                                             ; preds = %1042
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2472, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

1053:                                             ; preds = %1051
  %1054 = load ptr, ptr %5, align 8, !tbaa !5
  %1055 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1054, i32 0, i32 9
  store i32 537138728, ptr %1055, align 4, !tbaa !25
  %1056 = load ptr, ptr %5, align 8, !tbaa !5
  %1057 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1056, i32 0, i32 10
  store i32 537138731, ptr %1057, align 8, !tbaa !34
  br label %1063

1058:                                             ; preds = %1032
  %1059 = load ptr, ptr %5, align 8, !tbaa !5
  %1060 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1059, i32 0, i32 9
  store i32 537138704, ptr %1060, align 4, !tbaa !25
  %1061 = load ptr, ptr %5, align 8, !tbaa !5
  %1062 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1061, i32 0, i32 10
  store i32 537138704, ptr %1062, align 8, !tbaa !34
  br label %1063

1063:                                             ; preds = %1058, %1053
  %1064 = load ptr, ptr %5, align 8, !tbaa !5
  %1065 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1064, i32 0, i32 13
  store i32 805574231, ptr %1065, align 4, !tbaa !26
  %1066 = load i32, ptr %6, align 4, !tbaa !9
  %1067 = icmp eq i32 %1066, 1005
  br i1 %1067, label %1068, label %1073

1068:                                             ; preds = %1063
  %1069 = load ptr, ptr %5, align 8, !tbaa !5
  %1070 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1069, i32 0, i32 14
  store i32 805574233, ptr %1070, align 8, !tbaa !27
  %1071 = load ptr, ptr %5, align 8, !tbaa !5
  %1072 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1071, i32 0, i32 15
  store i32 805574232, ptr %1072, align 4, !tbaa !28
  br label %1078

1073:                                             ; preds = %1063
  %1074 = load ptr, ptr %5, align 8, !tbaa !5
  %1075 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1074, i32 0, i32 14
  store i32 805643960, ptr %1075, align 8, !tbaa !27
  %1076 = load ptr, ptr %5, align 8, !tbaa !5
  %1077 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1076, i32 0, i32 15
  store i32 805574232, ptr %1077, align 4, !tbaa !28
  br label %1078

1078:                                             ; preds = %1073, %1068
  br label %1262

1079:                                             ; preds = %985, %979
  %1080 = load ptr, ptr %7, align 8, !tbaa !5
  %1081 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1080, i32 0, i32 8
  %1082 = getelementptr inbounds [3 x i8], ptr %1081, i64 0, i64 0
  %1083 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1082)
  %1084 = icmp eq i32 10, %1083
  br i1 %1084, label %1085, label %1154

1085:                                             ; preds = %1079
  %1086 = load ptr, ptr %5, align 8, !tbaa !5
  %1087 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1086, i32 0, i32 2
  store i32 8, ptr %1087, align 8, !tbaa !18
  %1088 = load ptr, ptr %5, align 8, !tbaa !5
  %1089 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1088, i32 0, i32 3
  store i32 2, ptr %1089, align 4, !tbaa !19
  %1090 = load ptr, ptr %5, align 8, !tbaa !5
  %1091 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1090, i32 0, i32 4
  store i32 2, ptr %1091, align 8, !tbaa !20
  %1092 = load ptr, ptr %5, align 8, !tbaa !5
  %1093 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1092, i32 0, i32 5
  store i32 4, ptr %1093, align 4, !tbaa !21
  %1094 = load ptr, ptr %7, align 8, !tbaa !5
  %1095 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1094, i32 0, i32 6
  %1096 = load i32, ptr %1095, align 1, !tbaa !29
  %1097 = and i32 8, %1096
  %1098 = icmp ne i32 %1097, 0
  br i1 %1098, label %1099, label %1113

1099:                                             ; preds = %1085
  %1100 = load ptr, ptr %7, align 8, !tbaa !5
  %1101 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1100, i32 0, i32 3
  %1102 = load i32, ptr %1101, align 1, !tbaa !32
  %1103 = load ptr, ptr %5, align 8, !tbaa !5
  %1104 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1103, i32 0, i32 2
  %1105 = load i32, ptr %1104, align 8, !tbaa !18
  %1106 = urem i32 %1102, %1105
  %1107 = icmp eq i32 0, %1106
  br i1 %1107, label %1108, label %1109

1108:                                             ; preds = %1099
  br label %1110

1109:                                             ; preds = %1099
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2493, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

1110:                                             ; preds = %1108
  %1111 = load ptr, ptr %5, align 8, !tbaa !5
  %1112 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1111, i32 0, i32 6
  store i32 537138728, ptr %1112, align 8, !tbaa !22
  br label %1116

1113:                                             ; preds = %1085
  %1114 = load ptr, ptr %5, align 8, !tbaa !5
  %1115 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1114, i32 0, i32 6
  store i32 537138704, ptr %1115, align 8, !tbaa !22
  br label %1116

1116:                                             ; preds = %1113, %1110
  %1117 = load ptr, ptr %5, align 8, !tbaa !5
  %1118 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1117, i32 0, i32 7
  store i32 537209432, ptr %1118, align 4, !tbaa !23
  %1119 = load ptr, ptr %5, align 8, !tbaa !5
  %1120 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1119, i32 0, i32 8
  store i32 9999, ptr %1120, align 8, !tbaa !24
  %1121 = load ptr, ptr %7, align 8, !tbaa !5
  %1122 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1121, i32 0, i32 6
  %1123 = load i32, ptr %1122, align 1, !tbaa !29
  %1124 = and i32 16, %1123
  %1125 = icmp ne i32 %1124, 0
  br i1 %1125, label %1126, label %1142

1126:                                             ; preds = %1116
  %1127 = load ptr, ptr %7, align 8, !tbaa !5
  %1128 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1127, i32 0, i32 5
  %1129 = load i32, ptr %1128, align 1, !tbaa !33
  %1130 = load ptr, ptr %5, align 8, !tbaa !5
  %1131 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1130, i32 0, i32 2
  %1132 = load i32, ptr %1131, align 8, !tbaa !18
  %1133 = urem i32 %1129, %1132
  %1134 = icmp eq i32 0, %1133
  br i1 %1134, label %1135, label %1136

1135:                                             ; preds = %1126
  br label %1137

1136:                                             ; preds = %1126
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2501, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

1137:                                             ; preds = %1135
  %1138 = load ptr, ptr %5, align 8, !tbaa !5
  %1139 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1138, i32 0, i32 9
  store i32 537138728, ptr %1139, align 4, !tbaa !25
  %1140 = load ptr, ptr %5, align 8, !tbaa !5
  %1141 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1140, i32 0, i32 10
  store i32 537138731, ptr %1141, align 8, !tbaa !34
  br label %1147

1142:                                             ; preds = %1116
  %1143 = load ptr, ptr %5, align 8, !tbaa !5
  %1144 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1143, i32 0, i32 9
  store i32 537138704, ptr %1144, align 4, !tbaa !25
  %1145 = load ptr, ptr %5, align 8, !tbaa !5
  %1146 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1145, i32 0, i32 10
  store i32 537138704, ptr %1146, align 8, !tbaa !34
  br label %1147

1147:                                             ; preds = %1142, %1137
  %1148 = load ptr, ptr %5, align 8, !tbaa !5
  %1149 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1148, i32 0, i32 13
  store i32 805639919, ptr %1149, align 4, !tbaa !26
  %1150 = load ptr, ptr %5, align 8, !tbaa !5
  %1151 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1150, i32 0, i32 14
  store i32 805643858, ptr %1151, align 8, !tbaa !27
  %1152 = load ptr, ptr %5, align 8, !tbaa !5
  %1153 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1152, i32 0, i32 15
  store i32 805639934, ptr %1153, align 4, !tbaa !28
  br label %1261

1154:                                             ; preds = %1079
  %1155 = load ptr, ptr %7, align 8, !tbaa !5
  %1156 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1155, i32 0, i32 8
  %1157 = getelementptr inbounds [3 x i8], ptr %1156, i64 0, i64 0
  %1158 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1157)
  %1159 = icmp eq i32 12, %1158
  br i1 %1159, label %1160, label %1229

1160:                                             ; preds = %1154
  %1161 = load ptr, ptr %5, align 8, !tbaa !5
  %1162 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1161, i32 0, i32 2
  store i32 8, ptr %1162, align 8, !tbaa !18
  %1163 = load ptr, ptr %5, align 8, !tbaa !5
  %1164 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1163, i32 0, i32 3
  store i32 1, ptr %1164, align 4, !tbaa !19
  %1165 = load ptr, ptr %5, align 8, !tbaa !5
  %1166 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1165, i32 0, i32 4
  store i32 1, ptr %1166, align 8, !tbaa !20
  %1167 = load ptr, ptr %5, align 8, !tbaa !5
  %1168 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1167, i32 0, i32 5
  store i32 4, ptr %1168, align 4, !tbaa !21
  %1169 = load ptr, ptr %7, align 8, !tbaa !5
  %1170 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1169, i32 0, i32 6
  %1171 = load i32, ptr %1170, align 1, !tbaa !29
  %1172 = and i32 8, %1171
  %1173 = icmp ne i32 %1172, 0
  br i1 %1173, label %1174, label %1188

1174:                                             ; preds = %1160
  %1175 = load ptr, ptr %7, align 8, !tbaa !5
  %1176 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1175, i32 0, i32 3
  %1177 = load i32, ptr %1176, align 1, !tbaa !32
  %1178 = load ptr, ptr %5, align 8, !tbaa !5
  %1179 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1178, i32 0, i32 2
  %1180 = load i32, ptr %1179, align 8, !tbaa !18
  %1181 = urem i32 %1177, %1180
  %1182 = icmp eq i32 0, %1181
  br i1 %1182, label %1183, label %1184

1183:                                             ; preds = %1174
  br label %1185

1184:                                             ; preds = %1174
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2517, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

1185:                                             ; preds = %1183
  %1186 = load ptr, ptr %5, align 8, !tbaa !5
  %1187 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1186, i32 0, i32 6
  store i32 537138728, ptr %1187, align 8, !tbaa !22
  br label %1191

1188:                                             ; preds = %1160
  %1189 = load ptr, ptr %5, align 8, !tbaa !5
  %1190 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1189, i32 0, i32 6
  store i32 537138704, ptr %1190, align 8, !tbaa !22
  br label %1191

1191:                                             ; preds = %1188, %1185
  %1192 = load ptr, ptr %5, align 8, !tbaa !5
  %1193 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1192, i32 0, i32 7
  store i32 537209432, ptr %1193, align 4, !tbaa !23
  %1194 = load ptr, ptr %5, align 8, !tbaa !5
  %1195 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1194, i32 0, i32 8
  store i32 9999, ptr %1195, align 8, !tbaa !24
  %1196 = load ptr, ptr %7, align 8, !tbaa !5
  %1197 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1196, i32 0, i32 6
  %1198 = load i32, ptr %1197, align 1, !tbaa !29
  %1199 = and i32 16, %1198
  %1200 = icmp ne i32 %1199, 0
  br i1 %1200, label %1201, label %1217

1201:                                             ; preds = %1191
  %1202 = load ptr, ptr %7, align 8, !tbaa !5
  %1203 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1202, i32 0, i32 5
  %1204 = load i32, ptr %1203, align 1, !tbaa !33
  %1205 = load ptr, ptr %5, align 8, !tbaa !5
  %1206 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1205, i32 0, i32 2
  %1207 = load i32, ptr %1206, align 8, !tbaa !18
  %1208 = urem i32 %1204, %1207
  %1209 = icmp eq i32 0, %1208
  br i1 %1209, label %1210, label %1211

1210:                                             ; preds = %1201
  br label %1212

1211:                                             ; preds = %1201
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2525, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

1212:                                             ; preds = %1210
  %1213 = load ptr, ptr %5, align 8, !tbaa !5
  %1214 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1213, i32 0, i32 9
  store i32 537138728, ptr %1214, align 4, !tbaa !25
  %1215 = load ptr, ptr %5, align 8, !tbaa !5
  %1216 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1215, i32 0, i32 10
  store i32 537138731, ptr %1216, align 8, !tbaa !34
  br label %1222

1217:                                             ; preds = %1191
  %1218 = load ptr, ptr %5, align 8, !tbaa !5
  %1219 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1218, i32 0, i32 9
  store i32 537138704, ptr %1219, align 4, !tbaa !25
  %1220 = load ptr, ptr %5, align 8, !tbaa !5
  %1221 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1220, i32 0, i32 10
  store i32 537138704, ptr %1221, align 8, !tbaa !34
  br label %1222

1222:                                             ; preds = %1217, %1212
  %1223 = load ptr, ptr %5, align 8, !tbaa !5
  %1224 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1223, i32 0, i32 13
  store i32 805639919, ptr %1224, align 4, !tbaa !26
  %1225 = load ptr, ptr %5, align 8, !tbaa !5
  %1226 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1225, i32 0, i32 14
  store i32 805643856, ptr %1226, align 8, !tbaa !27
  %1227 = load ptr, ptr %5, align 8, !tbaa !5
  %1228 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1227, i32 0, i32 15
  store i32 805639934, ptr %1228, align 4, !tbaa !28
  br label %1260

1229:                                             ; preds = %1154
  %1230 = load ptr, ptr %5, align 8, !tbaa !5
  %1231 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1230, i32 0, i32 0
  store i32 1, ptr %1231, align 8, !tbaa !11
  %1232 = load ptr, ptr %5, align 8, !tbaa !5
  %1233 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1232, i32 0, i32 1
  store i32 0, ptr %1233, align 4, !tbaa !15
  %1234 = load ptr, ptr %5, align 8, !tbaa !5
  %1235 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1234, i32 0, i32 11
  store i32 0, ptr %1235, align 4, !tbaa !16
  %1236 = load ptr, ptr %5, align 8, !tbaa !5
  %1237 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1236, i32 0, i32 21
  store i8 97, ptr %1237, align 4, !tbaa !17
  %1238 = load ptr, ptr %5, align 8, !tbaa !5
  %1239 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1238, i32 0, i32 2
  store i32 0, ptr %1239, align 8, !tbaa !18
  %1240 = load ptr, ptr %5, align 8, !tbaa !5
  %1241 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1240, i32 0, i32 3
  store i32 0, ptr %1241, align 4, !tbaa !19
  %1242 = load ptr, ptr %5, align 8, !tbaa !5
  %1243 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1242, i32 0, i32 4
  store i32 0, ptr %1243, align 8, !tbaa !20
  %1244 = load ptr, ptr %5, align 8, !tbaa !5
  %1245 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1244, i32 0, i32 5
  store i32 0, ptr %1245, align 4, !tbaa !21
  %1246 = load ptr, ptr %5, align 8, !tbaa !5
  %1247 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1246, i32 0, i32 6
  store i32 9999, ptr %1247, align 8, !tbaa !22
  %1248 = load ptr, ptr %5, align 8, !tbaa !5
  %1249 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1248, i32 0, i32 7
  store i32 9999, ptr %1249, align 4, !tbaa !23
  %1250 = load ptr, ptr %5, align 8, !tbaa !5
  %1251 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1250, i32 0, i32 8
  store i32 9999, ptr %1251, align 8, !tbaa !24
  %1252 = load ptr, ptr %5, align 8, !tbaa !5
  %1253 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1252, i32 0, i32 9
  store i32 9999, ptr %1253, align 4, !tbaa !25
  %1254 = load ptr, ptr %5, align 8, !tbaa !5
  %1255 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1254, i32 0, i32 13
  store i32 9999, ptr %1255, align 4, !tbaa !26
  %1256 = load ptr, ptr %5, align 8, !tbaa !5
  %1257 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1256, i32 0, i32 14
  store i32 9999, ptr %1257, align 8, !tbaa !27
  %1258 = load ptr, ptr %5, align 8, !tbaa !5
  %1259 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1258, i32 0, i32 15
  store i32 9999, ptr %1259, align 4, !tbaa !28
  br label %1260

1260:                                             ; preds = %1229, %1222
  br label %1261

1261:                                             ; preds = %1260, %1147
  br label %1262

1262:                                             ; preds = %1261, %1078
  br label %1263

1263:                                             ; preds = %1262, %978
  br label %1264

1264:                                             ; preds = %1263, %872
  br label %1265

1265:                                             ; preds = %1264, %817
  br label %1266

1266:                                             ; preds = %1265, %740
  br label %1267

1267:                                             ; preds = %1266, %680
  br label %1268

1268:                                             ; preds = %1267, %596
  br label %3381

1269:                                             ; preds = %500
  %1270 = load i32, ptr %6, align 4, !tbaa !9
  %1271 = icmp ult i32 %1270, 1101
  br i1 %1271, label %1272, label %2192

1272:                                             ; preds = %1269
  %1273 = load i32, ptr %6, align 4, !tbaa !9
  %1274 = load ptr, ptr %5, align 8, !tbaa !5
  %1275 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1274, i32 0, i32 0
  store i32 %1273, ptr %1275, align 8, !tbaa !11
  %1276 = load ptr, ptr %5, align 8, !tbaa !5
  %1277 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1276, i32 0, i32 1
  store i32 32, ptr %1277, align 4, !tbaa !15
  %1278 = load i32, ptr %8, align 4, !tbaa !9
  %1279 = load ptr, ptr %5, align 8, !tbaa !5
  %1280 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1279, i32 0, i32 11
  store i32 %1278, ptr %1280, align 4, !tbaa !16
  %1281 = load ptr, ptr %5, align 8, !tbaa !5
  %1282 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1281, i32 0, i32 21
  store i8 121, ptr %1282, align 4, !tbaa !17
  %1283 = load ptr, ptr %7, align 8, !tbaa !5
  %1284 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1283, i32 0, i32 8
  %1285 = getelementptr inbounds [3 x i8], ptr %1284, i64 0, i64 0
  %1286 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1285)
  %1287 = icmp eq i32 0, %1286
  br i1 %1287, label %1288, label %1364

1288:                                             ; preds = %1272
  %1289 = load ptr, ptr %5, align 8, !tbaa !5
  %1290 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1289, i32 0, i32 2
  store i32 4, ptr %1290, align 8, !tbaa !18
  %1291 = load ptr, ptr %5, align 8, !tbaa !5
  %1292 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1291, i32 0, i32 3
  store i32 8, ptr %1292, align 4, !tbaa !19
  %1293 = load ptr, ptr %5, align 8, !tbaa !5
  %1294 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1293, i32 0, i32 4
  store i32 8, ptr %1294, align 8, !tbaa !20
  %1295 = load ptr, ptr %5, align 8, !tbaa !5
  %1296 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1295, i32 0, i32 5
  store i32 8, ptr %1296, align 4, !tbaa !21
  %1297 = load ptr, ptr %7, align 8, !tbaa !5
  %1298 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1297, i32 0, i32 6
  %1299 = load i32, ptr %1298, align 1, !tbaa !29
  %1300 = and i32 8, %1299
  %1301 = icmp ne i32 %1300, 0
  br i1 %1301, label %1302, label %1316

1302:                                             ; preds = %1288
  %1303 = load ptr, ptr %7, align 8, !tbaa !5
  %1304 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1303, i32 0, i32 3
  %1305 = load i32, ptr %1304, align 1, !tbaa !32
  %1306 = load ptr, ptr %5, align 8, !tbaa !5
  %1307 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1306, i32 0, i32 2
  %1308 = load i32, ptr %1307, align 8, !tbaa !18
  %1309 = urem i32 %1305, %1308
  %1310 = icmp eq i32 0, %1309
  br i1 %1310, label %1311, label %1312

1311:                                             ; preds = %1302
  br label %1313

1312:                                             ; preds = %1302
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2564, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

1313:                                             ; preds = %1311
  %1314 = load ptr, ptr %5, align 8, !tbaa !5
  %1315 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1314, i32 0, i32 6
  store i32 545592872, ptr %1315, align 8, !tbaa !22
  br label %1319

1316:                                             ; preds = %1288
  %1317 = load ptr, ptr %5, align 8, !tbaa !5
  %1318 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1317, i32 0, i32 6
  store i32 545592848, ptr %1318, align 8, !tbaa !22
  br label %1319

1319:                                             ; preds = %1316, %1313
  %1320 = load ptr, ptr %5, align 8, !tbaa !5
  %1321 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1320, i32 0, i32 7
  store i32 545598233, ptr %1321, align 4, !tbaa !23
  %1322 = load ptr, ptr %5, align 8, !tbaa !5
  %1323 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1322, i32 0, i32 8
  store i32 9999, ptr %1323, align 8, !tbaa !24
  %1324 = load ptr, ptr %7, align 8, !tbaa !5
  %1325 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1324, i32 0, i32 6
  %1326 = load i32, ptr %1325, align 1, !tbaa !29
  %1327 = and i32 16, %1326
  %1328 = icmp ne i32 %1327, 0
  br i1 %1328, label %1329, label %1352

1329:                                             ; preds = %1319
  %1330 = load ptr, ptr %7, align 8, !tbaa !5
  %1331 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1330, i32 0, i32 5
  %1332 = load i32, ptr %1331, align 1, !tbaa !33
  %1333 = load ptr, ptr %5, align 8, !tbaa !5
  %1334 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1333, i32 0, i32 2
  %1335 = load i32, ptr %1334, align 8, !tbaa !18
  %1336 = urem i32 %1332, %1335
  %1337 = icmp eq i32 0, %1336
  br i1 %1337, label %1338, label %1339

1338:                                             ; preds = %1329
  br label %1340

1339:                                             ; preds = %1329
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2572, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

1340:                                             ; preds = %1338
  %1341 = load ptr, ptr %5, align 8, !tbaa !5
  %1342 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1341, i32 0, i32 9
  store i32 545592872, ptr %1342, align 4, !tbaa !25
  %1343 = load i32, ptr %8, align 4, !tbaa !9
  %1344 = icmp eq i32 %1343, 0
  br i1 %1344, label %1345, label %1348

1345:                                             ; preds = %1340
  %1346 = load ptr, ptr %5, align 8, !tbaa !5
  %1347 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1346, i32 0, i32 10
  store i32 545592875, ptr %1347, align 8, !tbaa !34
  br label %1351

1348:                                             ; preds = %1340
  %1349 = load ptr, ptr %5, align 8, !tbaa !5
  %1350 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1349, i32 0, i32 10
  store i32 545592872, ptr %1350, align 8, !tbaa !34
  br label %1351

1351:                                             ; preds = %1348, %1345
  br label %1357

1352:                                             ; preds = %1319
  %1353 = load ptr, ptr %5, align 8, !tbaa !5
  %1354 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1353, i32 0, i32 9
  store i32 545592848, ptr %1354, align 4, !tbaa !25
  %1355 = load ptr, ptr %5, align 8, !tbaa !5
  %1356 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1355, i32 0, i32 10
  store i32 545592848, ptr %1356, align 8, !tbaa !34
  br label %1357

1357:                                             ; preds = %1352, %1351
  %1358 = load ptr, ptr %5, align 8, !tbaa !5
  %1359 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1358, i32 0, i32 13
  store i32 805639919, ptr %1359, align 4, !tbaa !26
  %1360 = load ptr, ptr %5, align 8, !tbaa !5
  %1361 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1360, i32 0, i32 14
  store i32 814032568, ptr %1361, align 8, !tbaa !27
  %1362 = load ptr, ptr %5, align 8, !tbaa !5
  %1363 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1362, i32 0, i32 15
  store i32 814028376, ptr %1363, align 4, !tbaa !28
  br label %2191

1364:                                             ; preds = %1272
  %1365 = load ptr, ptr %7, align 8, !tbaa !5
  %1366 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1365, i32 0, i32 8
  %1367 = getelementptr inbounds [3 x i8], ptr %1366, i64 0, i64 0
  %1368 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1367)
  %1369 = icmp eq i32 1, %1368
  br i1 %1369, label %1370, label %1461

1370:                                             ; preds = %1364
  %1371 = load ptr, ptr %5, align 8, !tbaa !5
  %1372 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1371, i32 0, i32 2
  store i32 8, ptr %1372, align 8, !tbaa !18
  %1373 = load ptr, ptr %5, align 8, !tbaa !5
  %1374 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1373, i32 0, i32 3
  store i32 4, ptr %1374, align 4, !tbaa !19
  %1375 = load ptr, ptr %5, align 8, !tbaa !5
  %1376 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1375, i32 0, i32 4
  store i32 4, ptr %1376, align 8, !tbaa !20
  %1377 = load ptr, ptr %5, align 8, !tbaa !5
  %1378 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1377, i32 0, i32 5
  store i32 4, ptr %1378, align 4, !tbaa !21
  %1379 = load ptr, ptr %7, align 8, !tbaa !5
  %1380 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1379, i32 0, i32 8
  %1381 = getelementptr inbounds [3 x i8], ptr %1380, i64 0, i64 0
  %1382 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1381)
  %1383 = icmp eq i32 4, %1382
  br i1 %1383, label %1390, label %1384

1384:                                             ; preds = %1370
  %1385 = load ptr, ptr %7, align 8, !tbaa !5
  %1386 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1385, i32 0, i32 8
  %1387 = getelementptr inbounds [3 x i8], ptr %1386, i64 0, i64 0
  %1388 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1387)
  %1389 = icmp eq i32 5, %1388
  br i1 %1389, label %1390, label %1393

1390:                                             ; preds = %1384, %1370
  %1391 = load ptr, ptr %5, align 8, !tbaa !5
  %1392 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1391, i32 0, i32 5
  store i32 1, ptr %1392, align 4, !tbaa !21
  br label %1393

1393:                                             ; preds = %1390, %1384
  %1394 = load ptr, ptr %7, align 8, !tbaa !5
  %1395 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1394, i32 0, i32 6
  %1396 = load i32, ptr %1395, align 1, !tbaa !29
  %1397 = and i32 8, %1396
  %1398 = icmp ne i32 %1397, 0
  br i1 %1398, label %1399, label %1413

1399:                                             ; preds = %1393
  %1400 = load ptr, ptr %7, align 8, !tbaa !5
  %1401 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1400, i32 0, i32 3
  %1402 = load i32, ptr %1401, align 1, !tbaa !32
  %1403 = load ptr, ptr %5, align 8, !tbaa !5
  %1404 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1403, i32 0, i32 2
  %1405 = load i32, ptr %1404, align 8, !tbaa !18
  %1406 = urem i32 %1402, %1405
  %1407 = icmp eq i32 0, %1406
  br i1 %1407, label %1408, label %1409

1408:                                             ; preds = %1399
  br label %1410

1409:                                             ; preds = %1399
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2596, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

1410:                                             ; preds = %1408
  %1411 = load ptr, ptr %5, align 8, !tbaa !5
  %1412 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1411, i32 0, i32 6
  store i32 537138728, ptr %1412, align 8, !tbaa !22
  br label %1416

1413:                                             ; preds = %1393
  %1414 = load ptr, ptr %5, align 8, !tbaa !5
  %1415 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1414, i32 0, i32 6
  store i32 537138704, ptr %1415, align 8, !tbaa !22
  br label %1416

1416:                                             ; preds = %1413, %1410
  %1417 = load ptr, ptr %5, align 8, !tbaa !5
  %1418 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1417, i32 0, i32 7
  store i32 537209368, ptr %1418, align 4, !tbaa !23
  %1419 = load ptr, ptr %5, align 8, !tbaa !5
  %1420 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1419, i32 0, i32 8
  store i32 9999, ptr %1420, align 8, !tbaa !24
  %1421 = load ptr, ptr %7, align 8, !tbaa !5
  %1422 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1421, i32 0, i32 6
  %1423 = load i32, ptr %1422, align 1, !tbaa !29
  %1424 = and i32 16, %1423
  %1425 = icmp ne i32 %1424, 0
  br i1 %1425, label %1426, label %1449

1426:                                             ; preds = %1416
  %1427 = load ptr, ptr %7, align 8, !tbaa !5
  %1428 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1427, i32 0, i32 5
  %1429 = load i32, ptr %1428, align 1, !tbaa !33
  %1430 = load ptr, ptr %5, align 8, !tbaa !5
  %1431 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1430, i32 0, i32 2
  %1432 = load i32, ptr %1431, align 8, !tbaa !18
  %1433 = urem i32 %1429, %1432
  %1434 = icmp eq i32 0, %1433
  br i1 %1434, label %1435, label %1436

1435:                                             ; preds = %1426
  br label %1437

1436:                                             ; preds = %1426
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2604, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

1437:                                             ; preds = %1435
  %1438 = load ptr, ptr %5, align 8, !tbaa !5
  %1439 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1438, i32 0, i32 9
  store i32 537138728, ptr %1439, align 4, !tbaa !25
  %1440 = load i32, ptr %8, align 4, !tbaa !9
  %1441 = icmp eq i32 %1440, 0
  br i1 %1441, label %1442, label %1445

1442:                                             ; preds = %1437
  %1443 = load ptr, ptr %5, align 8, !tbaa !5
  %1444 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1443, i32 0, i32 10
  store i32 537138731, ptr %1444, align 8, !tbaa !34
  br label %1448

1445:                                             ; preds = %1437
  %1446 = load ptr, ptr %5, align 8, !tbaa !5
  %1447 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1446, i32 0, i32 9
  store i32 537138728, ptr %1447, align 4, !tbaa !25
  br label %1448

1448:                                             ; preds = %1445, %1442
  br label %1454

1449:                                             ; preds = %1416
  %1450 = load ptr, ptr %5, align 8, !tbaa !5
  %1451 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1450, i32 0, i32 9
  store i32 537138704, ptr %1451, align 4, !tbaa !25
  %1452 = load ptr, ptr %5, align 8, !tbaa !5
  %1453 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1452, i32 0, i32 10
  store i32 537138704, ptr %1453, align 8, !tbaa !34
  br label %1454

1454:                                             ; preds = %1449, %1448
  %1455 = load ptr, ptr %5, align 8, !tbaa !5
  %1456 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1455, i32 0, i32 13
  store i32 805639919, ptr %1456, align 4, !tbaa !26
  %1457 = load ptr, ptr %5, align 8, !tbaa !5
  %1458 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1457, i32 0, i32 14
  store i32 805643960, ptr %1458, align 8, !tbaa !27
  %1459 = load ptr, ptr %5, align 8, !tbaa !5
  %1460 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1459, i32 0, i32 15
  store i32 805574232, ptr %1460, align 4, !tbaa !28
  br label %2190

1461:                                             ; preds = %1364
  %1462 = load ptr, ptr %7, align 8, !tbaa !5
  %1463 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1462, i32 0, i32 8
  %1464 = getelementptr inbounds [3 x i8], ptr %1463, i64 0, i64 0
  %1465 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1464)
  %1466 = icmp eq i32 10, %1465
  br i1 %1466, label %1467, label %1543

1467:                                             ; preds = %1461
  %1468 = load ptr, ptr %5, align 8, !tbaa !5
  %1469 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1468, i32 0, i32 2
  store i32 8, ptr %1469, align 8, !tbaa !18
  %1470 = load ptr, ptr %5, align 8, !tbaa !5
  %1471 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1470, i32 0, i32 3
  store i32 2, ptr %1471, align 4, !tbaa !19
  %1472 = load ptr, ptr %5, align 8, !tbaa !5
  %1473 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1472, i32 0, i32 4
  store i32 2, ptr %1473, align 8, !tbaa !20
  %1474 = load ptr, ptr %5, align 8, !tbaa !5
  %1475 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1474, i32 0, i32 5
  store i32 4, ptr %1475, align 4, !tbaa !21
  %1476 = load ptr, ptr %7, align 8, !tbaa !5
  %1477 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1476, i32 0, i32 6
  %1478 = load i32, ptr %1477, align 1, !tbaa !29
  %1479 = and i32 8, %1478
  %1480 = icmp ne i32 %1479, 0
  br i1 %1480, label %1481, label %1495

1481:                                             ; preds = %1467
  %1482 = load ptr, ptr %7, align 8, !tbaa !5
  %1483 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1482, i32 0, i32 3
  %1484 = load i32, ptr %1483, align 1, !tbaa !32
  %1485 = load ptr, ptr %5, align 8, !tbaa !5
  %1486 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1485, i32 0, i32 2
  %1487 = load i32, ptr %1486, align 8, !tbaa !18
  %1488 = urem i32 %1484, %1487
  %1489 = icmp eq i32 0, %1488
  br i1 %1489, label %1490, label %1491

1490:                                             ; preds = %1481
  br label %1492

1491:                                             ; preds = %1481
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2625, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

1492:                                             ; preds = %1490
  %1493 = load ptr, ptr %5, align 8, !tbaa !5
  %1494 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1493, i32 0, i32 6
  store i32 537138728, ptr %1494, align 8, !tbaa !22
  br label %1498

1495:                                             ; preds = %1467
  %1496 = load ptr, ptr %5, align 8, !tbaa !5
  %1497 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1496, i32 0, i32 6
  store i32 537138704, ptr %1497, align 8, !tbaa !22
  br label %1498

1498:                                             ; preds = %1495, %1492
  %1499 = load ptr, ptr %5, align 8, !tbaa !5
  %1500 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1499, i32 0, i32 7
  store i32 537209432, ptr %1500, align 4, !tbaa !23
  %1501 = load ptr, ptr %5, align 8, !tbaa !5
  %1502 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1501, i32 0, i32 8
  store i32 9999, ptr %1502, align 8, !tbaa !24
  %1503 = load ptr, ptr %7, align 8, !tbaa !5
  %1504 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1503, i32 0, i32 6
  %1505 = load i32, ptr %1504, align 1, !tbaa !29
  %1506 = and i32 16, %1505
  %1507 = icmp ne i32 %1506, 0
  br i1 %1507, label %1508, label %1531

1508:                                             ; preds = %1498
  %1509 = load ptr, ptr %7, align 8, !tbaa !5
  %1510 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1509, i32 0, i32 5
  %1511 = load i32, ptr %1510, align 1, !tbaa !33
  %1512 = load ptr, ptr %5, align 8, !tbaa !5
  %1513 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1512, i32 0, i32 2
  %1514 = load i32, ptr %1513, align 8, !tbaa !18
  %1515 = urem i32 %1511, %1514
  %1516 = icmp eq i32 0, %1515
  br i1 %1516, label %1517, label %1518

1517:                                             ; preds = %1508
  br label %1519

1518:                                             ; preds = %1508
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2633, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

1519:                                             ; preds = %1517
  %1520 = load ptr, ptr %5, align 8, !tbaa !5
  %1521 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1520, i32 0, i32 9
  store i32 537138728, ptr %1521, align 4, !tbaa !25
  %1522 = load i32, ptr %8, align 4, !tbaa !9
  %1523 = icmp eq i32 %1522, 0
  br i1 %1523, label %1524, label %1527

1524:                                             ; preds = %1519
  %1525 = load ptr, ptr %5, align 8, !tbaa !5
  %1526 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1525, i32 0, i32 10
  store i32 537138731, ptr %1526, align 8, !tbaa !34
  br label %1530

1527:                                             ; preds = %1519
  %1528 = load ptr, ptr %5, align 8, !tbaa !5
  %1529 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1528, i32 0, i32 9
  store i32 537138728, ptr %1529, align 4, !tbaa !25
  br label %1530

1530:                                             ; preds = %1527, %1524
  br label %1536

1531:                                             ; preds = %1498
  %1532 = load ptr, ptr %5, align 8, !tbaa !5
  %1533 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1532, i32 0, i32 9
  store i32 537138704, ptr %1533, align 4, !tbaa !25
  %1534 = load ptr, ptr %5, align 8, !tbaa !5
  %1535 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1534, i32 0, i32 10
  store i32 537138704, ptr %1535, align 8, !tbaa !34
  br label %1536

1536:                                             ; preds = %1531, %1530
  %1537 = load ptr, ptr %5, align 8, !tbaa !5
  %1538 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1537, i32 0, i32 13
  store i32 805639919, ptr %1538, align 4, !tbaa !26
  %1539 = load ptr, ptr %5, align 8, !tbaa !5
  %1540 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1539, i32 0, i32 14
  store i32 805643858, ptr %1540, align 8, !tbaa !27
  %1541 = load ptr, ptr %5, align 8, !tbaa !5
  %1542 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1541, i32 0, i32 15
  store i32 805639934, ptr %1542, align 4, !tbaa !28
  br label %2189

1543:                                             ; preds = %1461
  %1544 = load ptr, ptr %7, align 8, !tbaa !5
  %1545 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1544, i32 0, i32 8
  %1546 = getelementptr inbounds [3 x i8], ptr %1545, i64 0, i64 0
  %1547 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1546)
  %1548 = icmp eq i32 12, %1547
  br i1 %1548, label %1549, label %1625

1549:                                             ; preds = %1543
  %1550 = load ptr, ptr %5, align 8, !tbaa !5
  %1551 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1550, i32 0, i32 2
  store i32 8, ptr %1551, align 8, !tbaa !18
  %1552 = load ptr, ptr %5, align 8, !tbaa !5
  %1553 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1552, i32 0, i32 3
  store i32 1, ptr %1553, align 4, !tbaa !19
  %1554 = load ptr, ptr %5, align 8, !tbaa !5
  %1555 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1554, i32 0, i32 4
  store i32 1, ptr %1555, align 8, !tbaa !20
  %1556 = load ptr, ptr %5, align 8, !tbaa !5
  %1557 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1556, i32 0, i32 5
  store i32 4, ptr %1557, align 4, !tbaa !21
  %1558 = load ptr, ptr %7, align 8, !tbaa !5
  %1559 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1558, i32 0, i32 6
  %1560 = load i32, ptr %1559, align 1, !tbaa !29
  %1561 = and i32 8, %1560
  %1562 = icmp ne i32 %1561, 0
  br i1 %1562, label %1563, label %1577

1563:                                             ; preds = %1549
  %1564 = load ptr, ptr %7, align 8, !tbaa !5
  %1565 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1564, i32 0, i32 3
  %1566 = load i32, ptr %1565, align 1, !tbaa !32
  %1567 = load ptr, ptr %5, align 8, !tbaa !5
  %1568 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1567, i32 0, i32 2
  %1569 = load i32, ptr %1568, align 8, !tbaa !18
  %1570 = urem i32 %1566, %1569
  %1571 = icmp eq i32 0, %1570
  br i1 %1571, label %1572, label %1573

1572:                                             ; preds = %1563
  br label %1574

1573:                                             ; preds = %1563
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2654, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

1574:                                             ; preds = %1572
  %1575 = load ptr, ptr %5, align 8, !tbaa !5
  %1576 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1575, i32 0, i32 6
  store i32 537138728, ptr %1576, align 8, !tbaa !22
  br label %1580

1577:                                             ; preds = %1549
  %1578 = load ptr, ptr %5, align 8, !tbaa !5
  %1579 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1578, i32 0, i32 6
  store i32 537138704, ptr %1579, align 8, !tbaa !22
  br label %1580

1580:                                             ; preds = %1577, %1574
  %1581 = load ptr, ptr %5, align 8, !tbaa !5
  %1582 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1581, i32 0, i32 7
  store i32 537209432, ptr %1582, align 4, !tbaa !23
  %1583 = load ptr, ptr %5, align 8, !tbaa !5
  %1584 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1583, i32 0, i32 8
  store i32 9999, ptr %1584, align 8, !tbaa !24
  %1585 = load ptr, ptr %7, align 8, !tbaa !5
  %1586 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1585, i32 0, i32 6
  %1587 = load i32, ptr %1586, align 1, !tbaa !29
  %1588 = and i32 16, %1587
  %1589 = icmp ne i32 %1588, 0
  br i1 %1589, label %1590, label %1613

1590:                                             ; preds = %1580
  %1591 = load ptr, ptr %7, align 8, !tbaa !5
  %1592 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1591, i32 0, i32 5
  %1593 = load i32, ptr %1592, align 1, !tbaa !33
  %1594 = load ptr, ptr %5, align 8, !tbaa !5
  %1595 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1594, i32 0, i32 2
  %1596 = load i32, ptr %1595, align 8, !tbaa !18
  %1597 = urem i32 %1593, %1596
  %1598 = icmp eq i32 0, %1597
  br i1 %1598, label %1599, label %1600

1599:                                             ; preds = %1590
  br label %1601

1600:                                             ; preds = %1590
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2662, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

1601:                                             ; preds = %1599
  %1602 = load ptr, ptr %5, align 8, !tbaa !5
  %1603 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1602, i32 0, i32 9
  store i32 537138728, ptr %1603, align 4, !tbaa !25
  %1604 = load i32, ptr %8, align 4, !tbaa !9
  %1605 = icmp eq i32 %1604, 0
  br i1 %1605, label %1606, label %1609

1606:                                             ; preds = %1601
  %1607 = load ptr, ptr %5, align 8, !tbaa !5
  %1608 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1607, i32 0, i32 10
  store i32 537138731, ptr %1608, align 8, !tbaa !34
  br label %1612

1609:                                             ; preds = %1601
  %1610 = load ptr, ptr %5, align 8, !tbaa !5
  %1611 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1610, i32 0, i32 9
  store i32 537138728, ptr %1611, align 4, !tbaa !25
  br label %1612

1612:                                             ; preds = %1609, %1606
  br label %1618

1613:                                             ; preds = %1580
  %1614 = load ptr, ptr %5, align 8, !tbaa !5
  %1615 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1614, i32 0, i32 9
  store i32 537138704, ptr %1615, align 4, !tbaa !25
  %1616 = load ptr, ptr %5, align 8, !tbaa !5
  %1617 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1616, i32 0, i32 10
  store i32 537138704, ptr %1617, align 8, !tbaa !34
  br label %1618

1618:                                             ; preds = %1613, %1612
  %1619 = load ptr, ptr %5, align 8, !tbaa !5
  %1620 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1619, i32 0, i32 13
  store i32 805639919, ptr %1620, align 4, !tbaa !26
  %1621 = load ptr, ptr %5, align 8, !tbaa !5
  %1622 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1621, i32 0, i32 14
  store i32 805643856, ptr %1622, align 8, !tbaa !27
  %1623 = load ptr, ptr %5, align 8, !tbaa !5
  %1624 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1623, i32 0, i32 15
  store i32 805639934, ptr %1624, align 4, !tbaa !28
  br label %2188

1625:                                             ; preds = %1543
  %1626 = load ptr, ptr %7, align 8, !tbaa !5
  %1627 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1626, i32 0, i32 8
  %1628 = getelementptr inbounds [3 x i8], ptr %1627, i64 0, i64 0
  %1629 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1628)
  %1630 = icmp eq i32 3, %1629
  br i1 %1630, label %1631, label %1692

1631:                                             ; preds = %1625
  %1632 = load ptr, ptr %7, align 8, !tbaa !5
  %1633 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1632, i32 0, i32 8
  %1634 = getelementptr inbounds [3 x i8], ptr %1633, i64 0, i64 0
  %1635 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1634)
  %1636 = icmp eq i32 3, %1635
  br i1 %1636, label %1643, label %1637

1637:                                             ; preds = %1631
  %1638 = load ptr, ptr %7, align 8, !tbaa !5
  %1639 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1638, i32 0, i32 8
  %1640 = getelementptr inbounds [3 x i8], ptr %1639, i64 0, i64 0
  %1641 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1640)
  %1642 = icmp eq i32 1, %1641
  br i1 %1642, label %1643, label %1692

1643:                                             ; preds = %1637, %1631
  %1644 = load ptr, ptr %5, align 8, !tbaa !5
  %1645 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1644, i32 0, i32 2
  store i32 8, ptr %1645, align 8, !tbaa !18
  %1646 = load ptr, ptr %5, align 8, !tbaa !5
  %1647 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1646, i32 0, i32 3
  store i32 2, ptr %1647, align 4, !tbaa !19
  %1648 = load ptr, ptr %5, align 8, !tbaa !5
  %1649 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1648, i32 0, i32 4
  store i32 2, ptr %1649, align 8, !tbaa !20
  %1650 = load ptr, ptr %7, align 8, !tbaa !5
  %1651 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1650, i32 0, i32 8
  %1652 = getelementptr inbounds [3 x i8], ptr %1651, i64 0, i64 0
  %1653 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1652)
  %1654 = icmp eq i32 3, %1653
  br i1 %1654, label %1655, label %1662

1655:                                             ; preds = %1643
  %1656 = load ptr, ptr %5, align 8, !tbaa !5
  %1657 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1656, i32 0, i32 5
  store i32 2, ptr %1657, align 4, !tbaa !21
  %1658 = load ptr, ptr %5, align 8, !tbaa !5
  %1659 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1658, i32 0, i32 9
  store i32 -528017809, ptr %1659, align 4, !tbaa !25
  %1660 = load ptr, ptr %5, align 8, !tbaa !5
  %1661 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1660, i32 0, i32 10
  store i32 -528017809, ptr %1661, align 8, !tbaa !34
  br label %1677

1662:                                             ; preds = %1643
  %1663 = load ptr, ptr %7, align 8, !tbaa !5
  %1664 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1663, i32 0, i32 8
  %1665 = getelementptr inbounds [3 x i8], ptr %1664, i64 0, i64 0
  %1666 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1665)
  %1667 = icmp eq i32 1, %1666
  br i1 %1667, label %1668, label %1675

1668:                                             ; preds = %1662
  %1669 = load ptr, ptr %5, align 8, !tbaa !5
  %1670 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1669, i32 0, i32 5
  store i32 4, ptr %1670, align 4, !tbaa !21
  %1671 = load ptr, ptr %5, align 8, !tbaa !5
  %1672 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1671, i32 0, i32 9
  store i32 537138704, ptr %1672, align 4, !tbaa !25
  %1673 = load ptr, ptr %5, align 8, !tbaa !5
  %1674 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1673, i32 0, i32 10
  store i32 537138704, ptr %1674, align 8, !tbaa !34
  br label %1676

1675:                                             ; preds = %1662
  br label %1676

1676:                                             ; preds = %1675, %1668
  br label %1677

1677:                                             ; preds = %1676, %1655
  %1678 = load ptr, ptr %5, align 8, !tbaa !5
  %1679 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1678, i32 0, i32 21
  store i8 121, ptr %1679, align 4, !tbaa !17
  %1680 = load ptr, ptr %5, align 8, !tbaa !5
  %1681 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1680, i32 0, i32 6
  store i32 -528017809, ptr %1681, align 8, !tbaa !22
  %1682 = load ptr, ptr %5, align 8, !tbaa !5
  %1683 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1682, i32 0, i32 7
  store i32 537209209, ptr %1683, align 4, !tbaa !23
  %1684 = load ptr, ptr %5, align 8, !tbaa !5
  %1685 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1684, i32 0, i32 8
  store i32 9999, ptr %1685, align 8, !tbaa !24
  %1686 = load ptr, ptr %5, align 8, !tbaa !5
  %1687 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1686, i32 0, i32 13
  store i32 805639919, ptr %1687, align 4, !tbaa !26
  %1688 = load ptr, ptr %5, align 8, !tbaa !5
  %1689 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1688, i32 0, i32 14
  store i32 805643960, ptr %1689, align 8, !tbaa !27
  %1690 = load ptr, ptr %5, align 8, !tbaa !5
  %1691 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1690, i32 0, i32 15
  store i32 805574232, ptr %1691, align 4, !tbaa !28
  br label %2187

1692:                                             ; preds = %1637, %1625
  %1693 = load ptr, ptr %7, align 8, !tbaa !5
  %1694 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1693, i32 0, i32 8
  %1695 = getelementptr inbounds [3 x i8], ptr %1694, i64 0, i64 0
  %1696 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %1695)
  %1697 = icmp eq i32 12, %1696
  br i1 %1697, label %1704, label %1698

1698:                                             ; preds = %1692
  %1699 = load ptr, ptr %7, align 8, !tbaa !5
  %1700 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1699, i32 0, i32 8
  %1701 = getelementptr inbounds [3 x i8], ptr %1700, i64 0, i64 0
  %1702 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %1701)
  %1703 = icmp eq i32 4, %1702
  br i1 %1703, label %1704, label %1763

1704:                                             ; preds = %1698, %1692
  %1705 = load ptr, ptr %7, align 8, !tbaa !5
  %1706 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1705, i32 0, i32 8
  %1707 = getelementptr inbounds [3 x i8], ptr %1706, i64 0, i64 0
  %1708 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %1707)
  %1709 = icmp eq i32 3, %1708
  br i1 %1709, label %1710, label %1763

1710:                                             ; preds = %1704
  %1711 = load ptr, ptr %7, align 8, !tbaa !5
  %1712 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1711, i32 0, i32 8
  %1713 = getelementptr inbounds [3 x i8], ptr %1712, i64 0, i64 0
  %1714 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1713)
  %1715 = icmp eq i32 3, %1714
  br i1 %1715, label %1722, label %1716

1716:                                             ; preds = %1710
  %1717 = load ptr, ptr %7, align 8, !tbaa !5
  %1718 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1717, i32 0, i32 8
  %1719 = getelementptr inbounds [3 x i8], ptr %1718, i64 0, i64 0
  %1720 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1719)
  %1721 = icmp eq i32 1, %1720
  br i1 %1721, label %1722, label %1763

1722:                                             ; preds = %1716, %1710
  %1723 = load ptr, ptr %5, align 8, !tbaa !5
  %1724 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1723, i32 0, i32 2
  store i32 8, ptr %1724, align 8, !tbaa !18
  %1725 = load ptr, ptr %5, align 8, !tbaa !5
  %1726 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1725, i32 0, i32 3
  store i32 1, ptr %1726, align 4, !tbaa !19
  %1727 = load ptr, ptr %5, align 8, !tbaa !5
  %1728 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1727, i32 0, i32 4
  store i32 2, ptr %1728, align 8, !tbaa !20
  %1729 = load ptr, ptr %7, align 8, !tbaa !5
  %1730 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1729, i32 0, i32 8
  %1731 = getelementptr inbounds [3 x i8], ptr %1730, i64 0, i64 0
  %1732 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1731)
  %1733 = icmp eq i32 3, %1732
  br i1 %1733, label %1734, label %1741

1734:                                             ; preds = %1722
  %1735 = load ptr, ptr %5, align 8, !tbaa !5
  %1736 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1735, i32 0, i32 5
  store i32 2, ptr %1736, align 4, !tbaa !21
  %1737 = load ptr, ptr %5, align 8, !tbaa !5
  %1738 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1737, i32 0, i32 9
  store i32 -528017809, ptr %1738, align 4, !tbaa !25
  %1739 = load ptr, ptr %5, align 8, !tbaa !5
  %1740 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1739, i32 0, i32 10
  store i32 -528017809, ptr %1740, align 8, !tbaa !34
  br label %1748

1741:                                             ; preds = %1722
  %1742 = load ptr, ptr %5, align 8, !tbaa !5
  %1743 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1742, i32 0, i32 5
  store i32 4, ptr %1743, align 4, !tbaa !21
  %1744 = load ptr, ptr %5, align 8, !tbaa !5
  %1745 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1744, i32 0, i32 9
  store i32 537138704, ptr %1745, align 4, !tbaa !25
  %1746 = load ptr, ptr %5, align 8, !tbaa !5
  %1747 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1746, i32 0, i32 10
  store i32 537138704, ptr %1747, align 8, !tbaa !34
  br label %1748

1748:                                             ; preds = %1741, %1734
  %1749 = load ptr, ptr %5, align 8, !tbaa !5
  %1750 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1749, i32 0, i32 21
  store i8 121, ptr %1750, align 4, !tbaa !17
  %1751 = load ptr, ptr %5, align 8, !tbaa !5
  %1752 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1751, i32 0, i32 6
  store i32 -536406417, ptr %1752, align 8, !tbaa !22
  %1753 = load ptr, ptr %5, align 8, !tbaa !5
  %1754 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1753, i32 0, i32 7
  store i32 537209209, ptr %1754, align 4, !tbaa !23
  %1755 = load ptr, ptr %5, align 8, !tbaa !5
  %1756 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1755, i32 0, i32 8
  store i32 9999, ptr %1756, align 8, !tbaa !24
  %1757 = load ptr, ptr %5, align 8, !tbaa !5
  %1758 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1757, i32 0, i32 13
  store i32 805639919, ptr %1758, align 4, !tbaa !26
  %1759 = load ptr, ptr %5, align 8, !tbaa !5
  %1760 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1759, i32 0, i32 14
  store i32 805643960, ptr %1760, align 8, !tbaa !27
  %1761 = load ptr, ptr %5, align 8, !tbaa !5
  %1762 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1761, i32 0, i32 15
  store i32 805574232, ptr %1762, align 4, !tbaa !28
  br label %2186

1763:                                             ; preds = %1716, %1704, %1698
  %1764 = load ptr, ptr %7, align 8, !tbaa !5
  %1765 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1764, i32 0, i32 8
  %1766 = getelementptr inbounds [3 x i8], ptr %1765, i64 0, i64 0
  %1767 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %1766)
  %1768 = icmp eq i32 12, %1767
  br i1 %1768, label %1769, label %1835

1769:                                             ; preds = %1763
  %1770 = load ptr, ptr %7, align 8, !tbaa !5
  %1771 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1770, i32 0, i32 8
  %1772 = getelementptr inbounds [3 x i8], ptr %1771, i64 0, i64 0
  %1773 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %1772)
  %1774 = icmp eq i32 2, %1773
  br i1 %1774, label %1775, label %1835

1775:                                             ; preds = %1769
  %1776 = load ptr, ptr %7, align 8, !tbaa !5
  %1777 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1776, i32 0, i32 8
  %1778 = getelementptr inbounds [3 x i8], ptr %1777, i64 0, i64 0
  %1779 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1778)
  %1780 = icmp eq i32 2, %1779
  br i1 %1780, label %1787, label %1781

1781:                                             ; preds = %1775
  %1782 = load ptr, ptr %7, align 8, !tbaa !5
  %1783 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1782, i32 0, i32 8
  %1784 = getelementptr inbounds [3 x i8], ptr %1783, i64 0, i64 0
  %1785 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1784)
  %1786 = icmp eq i32 1, %1785
  br i1 %1786, label %1787, label %1835

1787:                                             ; preds = %1781, %1775
  %1788 = load ptr, ptr %5, align 8, !tbaa !5
  %1789 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1788, i32 0, i32 2
  store i32 8, ptr %1789, align 8, !tbaa !18
  %1790 = load ptr, ptr %5, align 8, !tbaa !5
  %1791 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1790, i32 0, i32 3
  store i32 1, ptr %1791, align 4, !tbaa !19
  %1792 = load ptr, ptr %5, align 8, !tbaa !5
  %1793 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1792, i32 0, i32 4
  store i32 2, ptr %1793, align 8, !tbaa !20
  %1794 = load ptr, ptr %7, align 8, !tbaa !5
  %1795 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1794, i32 0, i32 8
  %1796 = getelementptr inbounds [3 x i8], ptr %1795, i64 0, i64 0
  %1797 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1796)
  %1798 = icmp eq i32 2, %1797
  br i1 %1798, label %1799, label %1806

1799:                                             ; preds = %1787
  %1800 = load ptr, ptr %5, align 8, !tbaa !5
  %1801 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1800, i32 0, i32 5
  store i32 2, ptr %1801, align 4, !tbaa !21
  %1802 = load ptr, ptr %5, align 8, !tbaa !5
  %1803 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1802, i32 0, i32 9
  store i32 -528017809, ptr %1803, align 4, !tbaa !25
  %1804 = load ptr, ptr %5, align 8, !tbaa !5
  %1805 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1804, i32 0, i32 10
  store i32 -528017809, ptr %1805, align 8, !tbaa !34
  br label %1813

1806:                                             ; preds = %1787
  %1807 = load ptr, ptr %5, align 8, !tbaa !5
  %1808 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1807, i32 0, i32 5
  store i32 4, ptr %1808, align 4, !tbaa !21
  %1809 = load ptr, ptr %5, align 8, !tbaa !5
  %1810 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1809, i32 0, i32 9
  store i32 537138704, ptr %1810, align 4, !tbaa !25
  %1811 = load ptr, ptr %5, align 8, !tbaa !5
  %1812 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1811, i32 0, i32 10
  store i32 537138704, ptr %1812, align 8, !tbaa !34
  br label %1813

1813:                                             ; preds = %1806, %1799
  %1814 = load ptr, ptr %5, align 8, !tbaa !5
  %1815 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1814, i32 0, i32 21
  store i8 121, ptr %1815, align 4, !tbaa !17
  %1816 = load ptr, ptr %5, align 8, !tbaa !5
  %1817 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1816, i32 0, i32 6
  store i32 -536406417, ptr %1817, align 8, !tbaa !22
  %1818 = load ptr, ptr %5, align 8, !tbaa !5
  %1819 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1818, i32 0, i32 7
  store i32 537209432, ptr %1819, align 4, !tbaa !23
  %1820 = load ptr, ptr %5, align 8, !tbaa !5
  %1821 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1820, i32 0, i32 8
  store i32 9999, ptr %1821, align 8, !tbaa !24
  %1822 = load ptr, ptr %5, align 8, !tbaa !5
  %1823 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1822, i32 0, i32 13
  store i32 805639919, ptr %1823, align 4, !tbaa !26
  %1824 = load i32, ptr %6, align 4, !tbaa !9
  %1825 = icmp eq i32 %1824, 1053
  br i1 %1825, label %1826, label %1829

1826:                                             ; preds = %1813
  %1827 = load ptr, ptr %5, align 8, !tbaa !5
  %1828 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1827, i32 0, i32 14
  store i32 -268032430, ptr %1828, align 8, !tbaa !27
  br label %1832

1829:                                             ; preds = %1813
  %1830 = load ptr, ptr %5, align 8, !tbaa !5
  %1831 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1830, i32 0, i32 14
  store i32 805643960, ptr %1831, align 8, !tbaa !27
  br label %1832

1832:                                             ; preds = %1829, %1826
  %1833 = load ptr, ptr %5, align 8, !tbaa !5
  %1834 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1833, i32 0, i32 15
  store i32 805574232, ptr %1834, align 4, !tbaa !28
  br label %2185

1835:                                             ; preds = %1781, %1769, %1763
  %1836 = load ptr, ptr %7, align 8, !tbaa !5
  %1837 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1836, i32 0, i32 8
  %1838 = getelementptr inbounds [3 x i8], ptr %1837, i64 0, i64 0
  %1839 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1838)
  %1840 = icmp eq i32 2, %1839
  br i1 %1840, label %1841, label %1949

1841:                                             ; preds = %1835
  %1842 = load ptr, ptr %7, align 8, !tbaa !5
  %1843 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1842, i32 0, i32 6
  %1844 = load i32, ptr %1843, align 1, !tbaa !29
  %1845 = and i32 %1844, 2048
  %1846 = icmp ugt i32 %1845, 0
  br i1 %1846, label %1847, label %1949

1847:                                             ; preds = %1841
  %1848 = load ptr, ptr %5, align 8, !tbaa !5
  %1849 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1848, i32 0, i32 2
  store i32 8, ptr %1849, align 8, !tbaa !18
  %1850 = load ptr, ptr %5, align 8, !tbaa !5
  %1851 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1850, i32 0, i32 3
  store i32 2, ptr %1851, align 4, !tbaa !19
  %1852 = load ptr, ptr %5, align 8, !tbaa !5
  %1853 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1852, i32 0, i32 4
  store i32 2, ptr %1853, align 8, !tbaa !20
  %1854 = load ptr, ptr %7, align 8, !tbaa !5
  %1855 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1854, i32 0, i32 8
  %1856 = getelementptr inbounds [3 x i8], ptr %1855, i64 0, i64 0
  %1857 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1856)
  %1858 = icmp eq i32 2, %1857
  br i1 %1858, label %1859, label %1862

1859:                                             ; preds = %1847
  %1860 = load ptr, ptr %5, align 8, !tbaa !5
  %1861 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1860, i32 0, i32 5
  store i32 2, ptr %1861, align 4, !tbaa !21
  br label %1881

1862:                                             ; preds = %1847
  %1863 = load ptr, ptr %7, align 8, !tbaa !5
  %1864 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1863, i32 0, i32 8
  %1865 = getelementptr inbounds [3 x i8], ptr %1864, i64 0, i64 0
  %1866 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1865)
  %1867 = icmp eq i32 4, %1866
  br i1 %1867, label %1874, label %1868

1868:                                             ; preds = %1862
  %1869 = load ptr, ptr %7, align 8, !tbaa !5
  %1870 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1869, i32 0, i32 8
  %1871 = getelementptr inbounds [3 x i8], ptr %1870, i64 0, i64 0
  %1872 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1871)
  %1873 = icmp eq i32 5, %1872
  br i1 %1873, label %1874, label %1877

1874:                                             ; preds = %1868, %1862
  %1875 = load ptr, ptr %5, align 8, !tbaa !5
  %1876 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1875, i32 0, i32 5
  store i32 1, ptr %1876, align 4, !tbaa !21
  br label %1880

1877:                                             ; preds = %1868
  %1878 = load ptr, ptr %5, align 8, !tbaa !5
  %1879 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1878, i32 0, i32 5
  store i32 4, ptr %1879, align 4, !tbaa !21
  br label %1880

1880:                                             ; preds = %1877, %1874
  br label %1881

1881:                                             ; preds = %1880, %1859
  %1882 = load ptr, ptr %7, align 8, !tbaa !5
  %1883 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1882, i32 0, i32 6
  %1884 = load i32, ptr %1883, align 1, !tbaa !29
  %1885 = and i32 8, %1884
  %1886 = icmp ne i32 %1885, 0
  br i1 %1886, label %1887, label %1901

1887:                                             ; preds = %1881
  %1888 = load ptr, ptr %7, align 8, !tbaa !5
  %1889 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1888, i32 0, i32 3
  %1890 = load i32, ptr %1889, align 1, !tbaa !32
  %1891 = load ptr, ptr %5, align 8, !tbaa !5
  %1892 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1891, i32 0, i32 2
  %1893 = load i32, ptr %1892, align 8, !tbaa !18
  %1894 = urem i32 %1890, %1893
  %1895 = icmp eq i32 0, %1894
  br i1 %1895, label %1896, label %1897

1896:                                             ; preds = %1887
  br label %1898

1897:                                             ; preds = %1887
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2756, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

1898:                                             ; preds = %1896
  %1899 = load ptr, ptr %5, align 8, !tbaa !5
  %1900 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1899, i32 0, i32 6
  store i32 537138728, ptr %1900, align 8, !tbaa !22
  br label %1904

1901:                                             ; preds = %1881
  %1902 = load ptr, ptr %5, align 8, !tbaa !5
  %1903 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1902, i32 0, i32 6
  store i32 537138704, ptr %1903, align 8, !tbaa !22
  br label %1904

1904:                                             ; preds = %1901, %1898
  %1905 = load ptr, ptr %5, align 8, !tbaa !5
  %1906 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1905, i32 0, i32 7
  store i32 537209432, ptr %1906, align 4, !tbaa !23
  %1907 = load ptr, ptr %5, align 8, !tbaa !5
  %1908 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1907, i32 0, i32 8
  store i32 9999, ptr %1908, align 8, !tbaa !24
  %1909 = load ptr, ptr %7, align 8, !tbaa !5
  %1910 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1909, i32 0, i32 6
  %1911 = load i32, ptr %1910, align 1, !tbaa !29
  %1912 = and i32 16, %1911
  %1913 = icmp ne i32 %1912, 0
  br i1 %1913, label %1914, label %1937

1914:                                             ; preds = %1904
  %1915 = load ptr, ptr %7, align 8, !tbaa !5
  %1916 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1915, i32 0, i32 5
  %1917 = load i32, ptr %1916, align 1, !tbaa !33
  %1918 = load ptr, ptr %5, align 8, !tbaa !5
  %1919 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1918, i32 0, i32 2
  %1920 = load i32, ptr %1919, align 8, !tbaa !18
  %1921 = urem i32 %1917, %1920
  %1922 = icmp eq i32 0, %1921
  br i1 %1922, label %1923, label %1924

1923:                                             ; preds = %1914
  br label %1925

1924:                                             ; preds = %1914
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2764, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

1925:                                             ; preds = %1923
  %1926 = load ptr, ptr %5, align 8, !tbaa !5
  %1927 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1926, i32 0, i32 9
  store i32 537138728, ptr %1927, align 4, !tbaa !25
  %1928 = load i32, ptr %8, align 4, !tbaa !9
  %1929 = icmp eq i32 %1928, 0
  br i1 %1929, label %1930, label %1933

1930:                                             ; preds = %1925
  %1931 = load ptr, ptr %5, align 8, !tbaa !5
  %1932 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1931, i32 0, i32 10
  store i32 537138731, ptr %1932, align 8, !tbaa !34
  br label %1936

1933:                                             ; preds = %1925
  %1934 = load ptr, ptr %5, align 8, !tbaa !5
  %1935 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1934, i32 0, i32 9
  store i32 537138728, ptr %1935, align 4, !tbaa !25
  br label %1936

1936:                                             ; preds = %1933, %1930
  br label %1942

1937:                                             ; preds = %1904
  %1938 = load ptr, ptr %5, align 8, !tbaa !5
  %1939 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1938, i32 0, i32 9
  store i32 537138704, ptr %1939, align 4, !tbaa !25
  %1940 = load ptr, ptr %5, align 8, !tbaa !5
  %1941 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1940, i32 0, i32 10
  store i32 537138704, ptr %1941, align 8, !tbaa !34
  br label %1942

1942:                                             ; preds = %1937, %1936
  %1943 = load ptr, ptr %5, align 8, !tbaa !5
  %1944 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1943, i32 0, i32 13
  store i32 805639919, ptr %1944, align 4, !tbaa !26
  %1945 = load ptr, ptr %5, align 8, !tbaa !5
  %1946 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1945, i32 0, i32 14
  store i32 -268032430, ptr %1946, align 8, !tbaa !27
  %1947 = load ptr, ptr %5, align 8, !tbaa !5
  %1948 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1947, i32 0, i32 15
  store i32 805574232, ptr %1948, align 4, !tbaa !28
  br label %2184

1949:                                             ; preds = %1841, %1835
  %1950 = load ptr, ptr %7, align 8, !tbaa !5
  %1951 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1950, i32 0, i32 8
  %1952 = getelementptr inbounds [3 x i8], ptr %1951, i64 0, i64 0
  %1953 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %1952)
  %1954 = icmp eq i32 2, %1953
  br i1 %1954, label %1955, label %2063

1955:                                             ; preds = %1949
  %1956 = load ptr, ptr %7, align 8, !tbaa !5
  %1957 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1956, i32 0, i32 6
  %1958 = load i32, ptr %1957, align 1, !tbaa !29
  %1959 = and i32 %1958, 2048
  %1960 = icmp eq i32 %1959, 0
  br i1 %1960, label %1961, label %2063

1961:                                             ; preds = %1955
  %1962 = load ptr, ptr %5, align 8, !tbaa !5
  %1963 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1962, i32 0, i32 2
  store i32 8, ptr %1963, align 8, !tbaa !18
  %1964 = load ptr, ptr %5, align 8, !tbaa !5
  %1965 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1964, i32 0, i32 3
  store i32 2, ptr %1965, align 4, !tbaa !19
  %1966 = load ptr, ptr %5, align 8, !tbaa !5
  %1967 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1966, i32 0, i32 4
  store i32 2, ptr %1967, align 8, !tbaa !20
  %1968 = load ptr, ptr %7, align 8, !tbaa !5
  %1969 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1968, i32 0, i32 8
  %1970 = getelementptr inbounds [3 x i8], ptr %1969, i64 0, i64 0
  %1971 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1970)
  %1972 = icmp eq i32 2, %1971
  br i1 %1972, label %1973, label %1976

1973:                                             ; preds = %1961
  %1974 = load ptr, ptr %5, align 8, !tbaa !5
  %1975 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1974, i32 0, i32 5
  store i32 2, ptr %1975, align 4, !tbaa !21
  br label %1995

1976:                                             ; preds = %1961
  %1977 = load ptr, ptr %7, align 8, !tbaa !5
  %1978 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1977, i32 0, i32 8
  %1979 = getelementptr inbounds [3 x i8], ptr %1978, i64 0, i64 0
  %1980 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1979)
  %1981 = icmp eq i32 4, %1980
  br i1 %1981, label %1988, label %1982

1982:                                             ; preds = %1976
  %1983 = load ptr, ptr %7, align 8, !tbaa !5
  %1984 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1983, i32 0, i32 8
  %1985 = getelementptr inbounds [3 x i8], ptr %1984, i64 0, i64 0
  %1986 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %1985)
  %1987 = icmp eq i32 5, %1986
  br i1 %1987, label %1988, label %1991

1988:                                             ; preds = %1982, %1976
  %1989 = load ptr, ptr %5, align 8, !tbaa !5
  %1990 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1989, i32 0, i32 5
  store i32 1, ptr %1990, align 4, !tbaa !21
  br label %1994

1991:                                             ; preds = %1982
  %1992 = load ptr, ptr %5, align 8, !tbaa !5
  %1993 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %1992, i32 0, i32 5
  store i32 4, ptr %1993, align 4, !tbaa !21
  br label %1994

1994:                                             ; preds = %1991, %1988
  br label %1995

1995:                                             ; preds = %1994, %1973
  %1996 = load ptr, ptr %7, align 8, !tbaa !5
  %1997 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %1996, i32 0, i32 6
  %1998 = load i32, ptr %1997, align 1, !tbaa !29
  %1999 = and i32 8, %1998
  %2000 = icmp ne i32 %1999, 0
  br i1 %2000, label %2001, label %2015

2001:                                             ; preds = %1995
  %2002 = load ptr, ptr %7, align 8, !tbaa !5
  %2003 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2002, i32 0, i32 3
  %2004 = load i32, ptr %2003, align 1, !tbaa !32
  %2005 = load ptr, ptr %5, align 8, !tbaa !5
  %2006 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2005, i32 0, i32 2
  %2007 = load i32, ptr %2006, align 8, !tbaa !18
  %2008 = urem i32 %2004, %2007
  %2009 = icmp eq i32 0, %2008
  br i1 %2009, label %2010, label %2011

2010:                                             ; preds = %2001
  br label %2012

2011:                                             ; preds = %2001
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2792, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

2012:                                             ; preds = %2010
  %2013 = load ptr, ptr %5, align 8, !tbaa !5
  %2014 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2013, i32 0, i32 6
  store i32 537138728, ptr %2014, align 8, !tbaa !22
  br label %2018

2015:                                             ; preds = %1995
  %2016 = load ptr, ptr %5, align 8, !tbaa !5
  %2017 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2016, i32 0, i32 6
  store i32 537138704, ptr %2017, align 8, !tbaa !22
  br label %2018

2018:                                             ; preds = %2015, %2012
  %2019 = load ptr, ptr %5, align 8, !tbaa !5
  %2020 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2019, i32 0, i32 7
  store i32 537209209, ptr %2020, align 4, !tbaa !23
  %2021 = load ptr, ptr %5, align 8, !tbaa !5
  %2022 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2021, i32 0, i32 8
  store i32 9999, ptr %2022, align 8, !tbaa !24
  %2023 = load ptr, ptr %7, align 8, !tbaa !5
  %2024 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2023, i32 0, i32 6
  %2025 = load i32, ptr %2024, align 1, !tbaa !29
  %2026 = and i32 16, %2025
  %2027 = icmp ne i32 %2026, 0
  br i1 %2027, label %2028, label %2051

2028:                                             ; preds = %2018
  %2029 = load ptr, ptr %7, align 8, !tbaa !5
  %2030 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2029, i32 0, i32 5
  %2031 = load i32, ptr %2030, align 1, !tbaa !33
  %2032 = load ptr, ptr %5, align 8, !tbaa !5
  %2033 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2032, i32 0, i32 2
  %2034 = load i32, ptr %2033, align 8, !tbaa !18
  %2035 = urem i32 %2031, %2034
  %2036 = icmp eq i32 0, %2035
  br i1 %2036, label %2037, label %2038

2037:                                             ; preds = %2028
  br label %2039

2038:                                             ; preds = %2028
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2800, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

2039:                                             ; preds = %2037
  %2040 = load ptr, ptr %5, align 8, !tbaa !5
  %2041 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2040, i32 0, i32 9
  store i32 537138728, ptr %2041, align 4, !tbaa !25
  %2042 = load i32, ptr %8, align 4, !tbaa !9
  %2043 = icmp eq i32 %2042, 0
  br i1 %2043, label %2044, label %2047

2044:                                             ; preds = %2039
  %2045 = load ptr, ptr %5, align 8, !tbaa !5
  %2046 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2045, i32 0, i32 10
  store i32 537138731, ptr %2046, align 8, !tbaa !34
  br label %2050

2047:                                             ; preds = %2039
  %2048 = load ptr, ptr %5, align 8, !tbaa !5
  %2049 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2048, i32 0, i32 9
  store i32 537138728, ptr %2049, align 4, !tbaa !25
  br label %2050

2050:                                             ; preds = %2047, %2044
  br label %2056

2051:                                             ; preds = %2018
  %2052 = load ptr, ptr %5, align 8, !tbaa !5
  %2053 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2052, i32 0, i32 9
  store i32 537138704, ptr %2053, align 4, !tbaa !25
  %2054 = load ptr, ptr %5, align 8, !tbaa !5
  %2055 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2054, i32 0, i32 10
  store i32 537138704, ptr %2055, align 8, !tbaa !34
  br label %2056

2056:                                             ; preds = %2051, %2050
  %2057 = load ptr, ptr %5, align 8, !tbaa !5
  %2058 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2057, i32 0, i32 13
  store i32 805639919, ptr %2058, align 4, !tbaa !26
  %2059 = load ptr, ptr %5, align 8, !tbaa !5
  %2060 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2059, i32 0, i32 14
  store i32 805643960, ptr %2060, align 8, !tbaa !27
  %2061 = load ptr, ptr %5, align 8, !tbaa !5
  %2062 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2061, i32 0, i32 15
  store i32 805574232, ptr %2062, align 4, !tbaa !28
  br label %2183

2063:                                             ; preds = %1955, %1949
  %2064 = load ptr, ptr %7, align 8, !tbaa !5
  %2065 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2064, i32 0, i32 8
  %2066 = getelementptr inbounds [3 x i8], ptr %2065, i64 0, i64 0
  %2067 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2066)
  %2068 = icmp eq i32 4, %2067
  br i1 %2068, label %2075, label %2069

2069:                                             ; preds = %2063
  %2070 = load ptr, ptr %7, align 8, !tbaa !5
  %2071 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2070, i32 0, i32 8
  %2072 = getelementptr inbounds [3 x i8], ptr %2071, i64 0, i64 0
  %2073 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2072)
  %2074 = icmp eq i32 5, %2073
  br i1 %2074, label %2075, label %2151

2075:                                             ; preds = %2069, %2063
  %2076 = load ptr, ptr %7, align 8, !tbaa !5
  %2077 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2076, i32 0, i32 6
  %2078 = load i32, ptr %2077, align 1, !tbaa !29
  %2079 = and i32 %2078, 2048
  %2080 = icmp ugt i32 %2079, 0
  br i1 %2080, label %2081, label %2151

2081:                                             ; preds = %2075
  %2082 = load ptr, ptr %5, align 8, !tbaa !5
  %2083 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2082, i32 0, i32 2
  store i32 8, ptr %2083, align 8, !tbaa !18
  %2084 = load ptr, ptr %5, align 8, !tbaa !5
  %2085 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2084, i32 0, i32 3
  store i32 1, ptr %2085, align 4, !tbaa !19
  %2086 = load ptr, ptr %5, align 8, !tbaa !5
  %2087 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2086, i32 0, i32 4
  store i32 1, ptr %2087, align 8, !tbaa !20
  %2088 = load ptr, ptr %7, align 8, !tbaa !5
  %2089 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2088, i32 0, i32 8
  %2090 = getelementptr inbounds [3 x i8], ptr %2089, i64 0, i64 0
  %2091 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2090)
  %2092 = icmp eq i32 4, %2091
  br i1 %2092, label %2099, label %2093

2093:                                             ; preds = %2081
  %2094 = load ptr, ptr %7, align 8, !tbaa !5
  %2095 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2094, i32 0, i32 8
  %2096 = getelementptr inbounds [3 x i8], ptr %2095, i64 0, i64 0
  %2097 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2096)
  %2098 = icmp eq i32 5, %2097
  br i1 %2098, label %2099, label %2102

2099:                                             ; preds = %2093, %2081
  %2100 = load ptr, ptr %5, align 8, !tbaa !5
  %2101 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2100, i32 0, i32 5
  store i32 1, ptr %2101, align 4, !tbaa !21
  br label %2105

2102:                                             ; preds = %2093
  %2103 = load ptr, ptr %5, align 8, !tbaa !5
  %2104 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2103, i32 0, i32 5
  store i32 4, ptr %2104, align 4, !tbaa !21
  br label %2105

2105:                                             ; preds = %2102, %2099
  %2106 = load ptr, ptr %7, align 8, !tbaa !5
  %2107 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2106, i32 0, i32 6
  %2108 = load i32, ptr %2107, align 1, !tbaa !29
  %2109 = and i32 8, %2108
  %2110 = icmp ne i32 %2109, 0
  br i1 %2110, label %2111, label %2114

2111:                                             ; preds = %2105
  %2112 = load ptr, ptr %5, align 8, !tbaa !5
  %2113 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2112, i32 0, i32 6
  store i32 537138728, ptr %2113, align 8, !tbaa !22
  br label %2117

2114:                                             ; preds = %2105
  %2115 = load ptr, ptr %5, align 8, !tbaa !5
  %2116 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2115, i32 0, i32 6
  store i32 537138704, ptr %2116, align 8, !tbaa !22
  br label %2117

2117:                                             ; preds = %2114, %2111
  %2118 = load ptr, ptr %5, align 8, !tbaa !5
  %2119 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2118, i32 0, i32 7
  store i32 537208952, ptr %2119, align 4, !tbaa !23
  %2120 = load ptr, ptr %5, align 8, !tbaa !5
  %2121 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2120, i32 0, i32 8
  store i32 9999, ptr %2121, align 8, !tbaa !24
  %2122 = load ptr, ptr %7, align 8, !tbaa !5
  %2123 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2122, i32 0, i32 6
  %2124 = load i32, ptr %2123, align 1, !tbaa !29
  %2125 = and i32 16, %2124
  %2126 = icmp ne i32 %2125, 0
  br i1 %2126, label %2127, label %2139

2127:                                             ; preds = %2117
  %2128 = load ptr, ptr %5, align 8, !tbaa !5
  %2129 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2128, i32 0, i32 9
  store i32 537138728, ptr %2129, align 4, !tbaa !25
  %2130 = load i32, ptr %8, align 4, !tbaa !9
  %2131 = icmp eq i32 %2130, 0
  br i1 %2131, label %2132, label %2135

2132:                                             ; preds = %2127
  %2133 = load ptr, ptr %5, align 8, !tbaa !5
  %2134 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2133, i32 0, i32 10
  store i32 537138731, ptr %2134, align 8, !tbaa !34
  br label %2138

2135:                                             ; preds = %2127
  %2136 = load ptr, ptr %5, align 8, !tbaa !5
  %2137 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2136, i32 0, i32 9
  store i32 537138728, ptr %2137, align 4, !tbaa !25
  br label %2138

2138:                                             ; preds = %2135, %2132
  br label %2144

2139:                                             ; preds = %2117
  %2140 = load ptr, ptr %5, align 8, !tbaa !5
  %2141 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2140, i32 0, i32 9
  store i32 537138704, ptr %2141, align 4, !tbaa !25
  %2142 = load ptr, ptr %5, align 8, !tbaa !5
  %2143 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2142, i32 0, i32 10
  store i32 537138704, ptr %2143, align 8, !tbaa !34
  br label %2144

2144:                                             ; preds = %2139, %2138
  %2145 = load ptr, ptr %5, align 8, !tbaa !5
  %2146 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2145, i32 0, i32 13
  store i32 805639919, ptr %2146, align 4, !tbaa !26
  %2147 = load ptr, ptr %5, align 8, !tbaa !5
  %2148 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2147, i32 0, i32 14
  store i32 805643960, ptr %2148, align 8, !tbaa !27
  %2149 = load ptr, ptr %5, align 8, !tbaa !5
  %2150 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2149, i32 0, i32 15
  store i32 805574232, ptr %2150, align 4, !tbaa !28
  br label %2182

2151:                                             ; preds = %2075, %2069
  %2152 = load ptr, ptr %5, align 8, !tbaa !5
  %2153 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2152, i32 0, i32 0
  store i32 1, ptr %2153, align 8, !tbaa !11
  %2154 = load ptr, ptr %5, align 8, !tbaa !5
  %2155 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2154, i32 0, i32 1
  store i32 0, ptr %2155, align 4, !tbaa !15
  %2156 = load ptr, ptr %5, align 8, !tbaa !5
  %2157 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2156, i32 0, i32 11
  store i32 0, ptr %2157, align 4, !tbaa !16
  %2158 = load ptr, ptr %5, align 8, !tbaa !5
  %2159 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2158, i32 0, i32 21
  store i8 97, ptr %2159, align 4, !tbaa !17
  %2160 = load ptr, ptr %5, align 8, !tbaa !5
  %2161 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2160, i32 0, i32 2
  store i32 0, ptr %2161, align 8, !tbaa !18
  %2162 = load ptr, ptr %5, align 8, !tbaa !5
  %2163 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2162, i32 0, i32 3
  store i32 0, ptr %2163, align 4, !tbaa !19
  %2164 = load ptr, ptr %5, align 8, !tbaa !5
  %2165 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2164, i32 0, i32 4
  store i32 0, ptr %2165, align 8, !tbaa !20
  %2166 = load ptr, ptr %5, align 8, !tbaa !5
  %2167 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2166, i32 0, i32 5
  store i32 0, ptr %2167, align 4, !tbaa !21
  %2168 = load ptr, ptr %5, align 8, !tbaa !5
  %2169 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2168, i32 0, i32 6
  store i32 9999, ptr %2169, align 8, !tbaa !22
  %2170 = load ptr, ptr %5, align 8, !tbaa !5
  %2171 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2170, i32 0, i32 7
  store i32 9999, ptr %2171, align 4, !tbaa !23
  %2172 = load ptr, ptr %5, align 8, !tbaa !5
  %2173 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2172, i32 0, i32 8
  store i32 9999, ptr %2173, align 8, !tbaa !24
  %2174 = load ptr, ptr %5, align 8, !tbaa !5
  %2175 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2174, i32 0, i32 9
  store i32 9999, ptr %2175, align 4, !tbaa !25
  %2176 = load ptr, ptr %5, align 8, !tbaa !5
  %2177 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2176, i32 0, i32 13
  store i32 9999, ptr %2177, align 4, !tbaa !26
  %2178 = load ptr, ptr %5, align 8, !tbaa !5
  %2179 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2178, i32 0, i32 14
  store i32 9999, ptr %2179, align 8, !tbaa !27
  %2180 = load ptr, ptr %5, align 8, !tbaa !5
  %2181 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2180, i32 0, i32 15
  store i32 9999, ptr %2181, align 4, !tbaa !28
  br label %2182

2182:                                             ; preds = %2151, %2144
  br label %2183

2183:                                             ; preds = %2182, %2056
  br label %2184

2184:                                             ; preds = %2183, %1942
  br label %2185

2185:                                             ; preds = %2184, %1832
  br label %2186

2186:                                             ; preds = %2185, %1748
  br label %2187

2187:                                             ; preds = %2186, %1677
  br label %2188

2188:                                             ; preds = %2187, %1618
  br label %2189

2189:                                             ; preds = %2188, %1536
  br label %2190

2190:                                             ; preds = %2189, %1454
  br label %2191

2191:                                             ; preds = %2190, %1357
  br label %3380

2192:                                             ; preds = %1269
  %2193 = load i32, ptr %6, align 4, !tbaa !9
  %2194 = icmp ule i32 %2193, 1999
  br i1 %2194, label %2195, label %3378

2195:                                             ; preds = %2192
  %2196 = load i32, ptr %6, align 4, !tbaa !9
  %2197 = load ptr, ptr %5, align 8, !tbaa !5
  %2198 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2197, i32 0, i32 0
  store i32 %2196, ptr %2198, align 8, !tbaa !11
  %2199 = load ptr, ptr %5, align 8, !tbaa !5
  %2200 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2199, i32 0, i32 1
  store i32 32, ptr %2200, align 4, !tbaa !15
  %2201 = load i32, ptr %8, align 4, !tbaa !9
  %2202 = load ptr, ptr %5, align 8, !tbaa !5
  %2203 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2202, i32 0, i32 11
  store i32 %2201, ptr %2203, align 4, !tbaa !16
  %2204 = load ptr, ptr %5, align 8, !tbaa !5
  %2205 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2204, i32 0, i32 21
  store i8 122, ptr %2205, align 4, !tbaa !17
  %2206 = load ptr, ptr %7, align 8, !tbaa !5
  %2207 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2206, i32 0, i32 8
  %2208 = getelementptr inbounds [3 x i8], ptr %2207, i64 0, i64 0
  %2209 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2208)
  %2210 = icmp eq i32 0, %2209
  br i1 %2210, label %2211, label %2287

2211:                                             ; preds = %2195
  %2212 = load ptr, ptr %5, align 8, !tbaa !5
  %2213 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2212, i32 0, i32 2
  store i32 8, ptr %2213, align 8, !tbaa !18
  %2214 = load ptr, ptr %5, align 8, !tbaa !5
  %2215 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2214, i32 0, i32 3
  store i32 8, ptr %2215, align 4, !tbaa !19
  %2216 = load ptr, ptr %5, align 8, !tbaa !5
  %2217 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2216, i32 0, i32 4
  store i32 8, ptr %2217, align 8, !tbaa !20
  %2218 = load ptr, ptr %5, align 8, !tbaa !5
  %2219 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2218, i32 0, i32 5
  store i32 8, ptr %2219, align 4, !tbaa !21
  %2220 = load ptr, ptr %7, align 8, !tbaa !5
  %2221 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2220, i32 0, i32 6
  %2222 = load i32, ptr %2221, align 1, !tbaa !29
  %2223 = and i32 8, %2222
  %2224 = icmp ne i32 %2223, 0
  br i1 %2224, label %2225, label %2239

2225:                                             ; preds = %2211
  %2226 = load ptr, ptr %7, align 8, !tbaa !5
  %2227 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2226, i32 0, i32 3
  %2228 = load i32, ptr %2227, align 1, !tbaa !32
  %2229 = load ptr, ptr %5, align 8, !tbaa !5
  %2230 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2229, i32 0, i32 2
  %2231 = load i32, ptr %2230, align 8, !tbaa !18
  %2232 = urem i32 %2228, %2231
  %2233 = icmp eq i32 0, %2232
  br i1 %2233, label %2234, label %2235

2234:                                             ; preds = %2225
  br label %2236

2235:                                             ; preds = %2225
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2876, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

2236:                                             ; preds = %2234
  %2237 = load ptr, ptr %5, align 8, !tbaa !5
  %2238 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2237, i32 0, i32 6
  store i32 545592872, ptr %2238, align 8, !tbaa !22
  br label %2242

2239:                                             ; preds = %2211
  %2240 = load ptr, ptr %5, align 8, !tbaa !5
  %2241 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2240, i32 0, i32 6
  store i32 545592848, ptr %2241, align 8, !tbaa !22
  br label %2242

2242:                                             ; preds = %2239, %2236
  %2243 = load ptr, ptr %5, align 8, !tbaa !5
  %2244 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2243, i32 0, i32 7
  store i32 545598233, ptr %2244, align 4, !tbaa !23
  %2245 = load ptr, ptr %5, align 8, !tbaa !5
  %2246 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2245, i32 0, i32 8
  store i32 9999, ptr %2246, align 8, !tbaa !24
  %2247 = load ptr, ptr %7, align 8, !tbaa !5
  %2248 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2247, i32 0, i32 6
  %2249 = load i32, ptr %2248, align 1, !tbaa !29
  %2250 = and i32 16, %2249
  %2251 = icmp ne i32 %2250, 0
  br i1 %2251, label %2252, label %2275

2252:                                             ; preds = %2242
  %2253 = load ptr, ptr %7, align 8, !tbaa !5
  %2254 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2253, i32 0, i32 5
  %2255 = load i32, ptr %2254, align 1, !tbaa !33
  %2256 = load ptr, ptr %5, align 8, !tbaa !5
  %2257 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2256, i32 0, i32 2
  %2258 = load i32, ptr %2257, align 8, !tbaa !18
  %2259 = urem i32 %2255, %2258
  %2260 = icmp eq i32 0, %2259
  br i1 %2260, label %2261, label %2262

2261:                                             ; preds = %2252
  br label %2263

2262:                                             ; preds = %2252
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2884, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

2263:                                             ; preds = %2261
  %2264 = load ptr, ptr %5, align 8, !tbaa !5
  %2265 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2264, i32 0, i32 9
  store i32 545592872, ptr %2265, align 4, !tbaa !25
  %2266 = load i32, ptr %8, align 4, !tbaa !9
  %2267 = icmp eq i32 %2266, 0
  br i1 %2267, label %2268, label %2271

2268:                                             ; preds = %2263
  %2269 = load ptr, ptr %5, align 8, !tbaa !5
  %2270 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2269, i32 0, i32 10
  store i32 545592875, ptr %2270, align 8, !tbaa !34
  br label %2274

2271:                                             ; preds = %2263
  %2272 = load ptr, ptr %5, align 8, !tbaa !5
  %2273 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2272, i32 0, i32 10
  store i32 545592872, ptr %2273, align 8, !tbaa !34
  br label %2274

2274:                                             ; preds = %2271, %2268
  br label %2280

2275:                                             ; preds = %2242
  %2276 = load ptr, ptr %5, align 8, !tbaa !5
  %2277 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2276, i32 0, i32 9
  store i32 545592848, ptr %2277, align 4, !tbaa !25
  %2278 = load ptr, ptr %5, align 8, !tbaa !5
  %2279 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2278, i32 0, i32 10
  store i32 545592848, ptr %2279, align 8, !tbaa !34
  br label %2280

2280:                                             ; preds = %2275, %2274
  %2281 = load ptr, ptr %5, align 8, !tbaa !5
  %2282 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2281, i32 0, i32 13
  store i32 805639919, ptr %2282, align 4, !tbaa !26
  %2283 = load ptr, ptr %5, align 8, !tbaa !5
  %2284 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2283, i32 0, i32 14
  store i32 814032568, ptr %2284, align 8, !tbaa !27
  %2285 = load ptr, ptr %5, align 8, !tbaa !5
  %2286 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2285, i32 0, i32 15
  store i32 814028376, ptr %2286, align 4, !tbaa !28
  br label %3377

2287:                                             ; preds = %2195
  %2288 = load ptr, ptr %7, align 8, !tbaa !5
  %2289 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2288, i32 0, i32 8
  %2290 = getelementptr inbounds [3 x i8], ptr %2289, i64 0, i64 0
  %2291 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2290)
  %2292 = icmp eq i32 1, %2291
  br i1 %2292, label %2293, label %2384

2293:                                             ; preds = %2287
  %2294 = load ptr, ptr %5, align 8, !tbaa !5
  %2295 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2294, i32 0, i32 2
  store i32 16, ptr %2295, align 8, !tbaa !18
  %2296 = load ptr, ptr %5, align 8, !tbaa !5
  %2297 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2296, i32 0, i32 3
  store i32 4, ptr %2297, align 4, !tbaa !19
  %2298 = load ptr, ptr %5, align 8, !tbaa !5
  %2299 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2298, i32 0, i32 4
  store i32 4, ptr %2299, align 8, !tbaa !20
  %2300 = load ptr, ptr %5, align 8, !tbaa !5
  %2301 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2300, i32 0, i32 5
  store i32 4, ptr %2301, align 4, !tbaa !21
  %2302 = load ptr, ptr %7, align 8, !tbaa !5
  %2303 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2302, i32 0, i32 8
  %2304 = getelementptr inbounds [3 x i8], ptr %2303, i64 0, i64 0
  %2305 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2304)
  %2306 = icmp eq i32 4, %2305
  br i1 %2306, label %2313, label %2307

2307:                                             ; preds = %2293
  %2308 = load ptr, ptr %7, align 8, !tbaa !5
  %2309 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2308, i32 0, i32 8
  %2310 = getelementptr inbounds [3 x i8], ptr %2309, i64 0, i64 0
  %2311 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2310)
  %2312 = icmp eq i32 5, %2311
  br i1 %2312, label %2313, label %2316

2313:                                             ; preds = %2307, %2293
  %2314 = load ptr, ptr %5, align 8, !tbaa !5
  %2315 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2314, i32 0, i32 5
  store i32 1, ptr %2315, align 4, !tbaa !21
  br label %2316

2316:                                             ; preds = %2313, %2307
  %2317 = load ptr, ptr %7, align 8, !tbaa !5
  %2318 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2317, i32 0, i32 6
  %2319 = load i32, ptr %2318, align 1, !tbaa !29
  %2320 = and i32 8, %2319
  %2321 = icmp ne i32 %2320, 0
  br i1 %2321, label %2322, label %2336

2322:                                             ; preds = %2316
  %2323 = load ptr, ptr %7, align 8, !tbaa !5
  %2324 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2323, i32 0, i32 3
  %2325 = load i32, ptr %2324, align 1, !tbaa !32
  %2326 = load ptr, ptr %5, align 8, !tbaa !5
  %2327 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2326, i32 0, i32 2
  %2328 = load i32, ptr %2327, align 8, !tbaa !18
  %2329 = urem i32 %2325, %2328
  %2330 = icmp eq i32 0, %2329
  br i1 %2330, label %2331, label %2332

2331:                                             ; preds = %2322
  br label %2333

2332:                                             ; preds = %2322
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2908, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

2333:                                             ; preds = %2331
  %2334 = load ptr, ptr %5, align 8, !tbaa !5
  %2335 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2334, i32 0, i32 6
  store i32 537138728, ptr %2335, align 8, !tbaa !22
  br label %2339

2336:                                             ; preds = %2316
  %2337 = load ptr, ptr %5, align 8, !tbaa !5
  %2338 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2337, i32 0, i32 6
  store i32 537138704, ptr %2338, align 8, !tbaa !22
  br label %2339

2339:                                             ; preds = %2336, %2333
  %2340 = load ptr, ptr %5, align 8, !tbaa !5
  %2341 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2340, i32 0, i32 7
  store i32 537209368, ptr %2341, align 4, !tbaa !23
  %2342 = load ptr, ptr %5, align 8, !tbaa !5
  %2343 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2342, i32 0, i32 8
  store i32 9999, ptr %2343, align 8, !tbaa !24
  %2344 = load ptr, ptr %7, align 8, !tbaa !5
  %2345 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2344, i32 0, i32 6
  %2346 = load i32, ptr %2345, align 1, !tbaa !29
  %2347 = and i32 16, %2346
  %2348 = icmp ne i32 %2347, 0
  br i1 %2348, label %2349, label %2372

2349:                                             ; preds = %2339
  %2350 = load ptr, ptr %7, align 8, !tbaa !5
  %2351 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2350, i32 0, i32 5
  %2352 = load i32, ptr %2351, align 1, !tbaa !33
  %2353 = load ptr, ptr %5, align 8, !tbaa !5
  %2354 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2353, i32 0, i32 2
  %2355 = load i32, ptr %2354, align 8, !tbaa !18
  %2356 = urem i32 %2352, %2355
  %2357 = icmp eq i32 0, %2356
  br i1 %2357, label %2358, label %2359

2358:                                             ; preds = %2349
  br label %2360

2359:                                             ; preds = %2349
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2916, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

2360:                                             ; preds = %2358
  %2361 = load ptr, ptr %5, align 8, !tbaa !5
  %2362 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2361, i32 0, i32 9
  store i32 537138728, ptr %2362, align 4, !tbaa !25
  %2363 = load i32, ptr %8, align 4, !tbaa !9
  %2364 = icmp eq i32 %2363, 0
  br i1 %2364, label %2365, label %2368

2365:                                             ; preds = %2360
  %2366 = load ptr, ptr %5, align 8, !tbaa !5
  %2367 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2366, i32 0, i32 10
  store i32 537138731, ptr %2367, align 8, !tbaa !34
  br label %2371

2368:                                             ; preds = %2360
  %2369 = load ptr, ptr %5, align 8, !tbaa !5
  %2370 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2369, i32 0, i32 9
  store i32 537138728, ptr %2370, align 4, !tbaa !25
  br label %2371

2371:                                             ; preds = %2368, %2365
  br label %2377

2372:                                             ; preds = %2339
  %2373 = load ptr, ptr %5, align 8, !tbaa !5
  %2374 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2373, i32 0, i32 9
  store i32 537138704, ptr %2374, align 4, !tbaa !25
  %2375 = load ptr, ptr %5, align 8, !tbaa !5
  %2376 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2375, i32 0, i32 10
  store i32 537138704, ptr %2376, align 8, !tbaa !34
  br label %2377

2377:                                             ; preds = %2372, %2371
  %2378 = load ptr, ptr %5, align 8, !tbaa !5
  %2379 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2378, i32 0, i32 13
  store i32 805639919, ptr %2379, align 4, !tbaa !26
  %2380 = load ptr, ptr %5, align 8, !tbaa !5
  %2381 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2380, i32 0, i32 14
  store i32 805643960, ptr %2381, align 8, !tbaa !27
  %2382 = load ptr, ptr %5, align 8, !tbaa !5
  %2383 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2382, i32 0, i32 15
  store i32 805574232, ptr %2383, align 4, !tbaa !28
  br label %3376

2384:                                             ; preds = %2287
  %2385 = load ptr, ptr %7, align 8, !tbaa !5
  %2386 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2385, i32 0, i32 8
  %2387 = getelementptr inbounds [3 x i8], ptr %2386, i64 0, i64 0
  %2388 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2387)
  %2389 = icmp eq i32 10, %2388
  br i1 %2389, label %2390, label %2466

2390:                                             ; preds = %2384
  %2391 = load ptr, ptr %5, align 8, !tbaa !5
  %2392 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2391, i32 0, i32 2
  store i32 16, ptr %2392, align 8, !tbaa !18
  %2393 = load ptr, ptr %5, align 8, !tbaa !5
  %2394 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2393, i32 0, i32 3
  store i32 2, ptr %2394, align 4, !tbaa !19
  %2395 = load ptr, ptr %5, align 8, !tbaa !5
  %2396 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2395, i32 0, i32 4
  store i32 2, ptr %2396, align 8, !tbaa !20
  %2397 = load ptr, ptr %5, align 8, !tbaa !5
  %2398 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2397, i32 0, i32 5
  store i32 4, ptr %2398, align 4, !tbaa !21
  %2399 = load ptr, ptr %7, align 8, !tbaa !5
  %2400 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2399, i32 0, i32 6
  %2401 = load i32, ptr %2400, align 1, !tbaa !29
  %2402 = and i32 8, %2401
  %2403 = icmp ne i32 %2402, 0
  br i1 %2403, label %2404, label %2418

2404:                                             ; preds = %2390
  %2405 = load ptr, ptr %7, align 8, !tbaa !5
  %2406 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2405, i32 0, i32 3
  %2407 = load i32, ptr %2406, align 1, !tbaa !32
  %2408 = load ptr, ptr %5, align 8, !tbaa !5
  %2409 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2408, i32 0, i32 2
  %2410 = load i32, ptr %2409, align 8, !tbaa !18
  %2411 = urem i32 %2407, %2410
  %2412 = icmp eq i32 0, %2411
  br i1 %2412, label %2413, label %2414

2413:                                             ; preds = %2404
  br label %2415

2414:                                             ; preds = %2404
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2937, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

2415:                                             ; preds = %2413
  %2416 = load ptr, ptr %5, align 8, !tbaa !5
  %2417 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2416, i32 0, i32 6
  store i32 537138728, ptr %2417, align 8, !tbaa !22
  br label %2421

2418:                                             ; preds = %2390
  %2419 = load ptr, ptr %5, align 8, !tbaa !5
  %2420 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2419, i32 0, i32 6
  store i32 537138704, ptr %2420, align 8, !tbaa !22
  br label %2421

2421:                                             ; preds = %2418, %2415
  %2422 = load ptr, ptr %5, align 8, !tbaa !5
  %2423 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2422, i32 0, i32 7
  store i32 537209432, ptr %2423, align 4, !tbaa !23
  %2424 = load ptr, ptr %5, align 8, !tbaa !5
  %2425 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2424, i32 0, i32 8
  store i32 9999, ptr %2425, align 8, !tbaa !24
  %2426 = load ptr, ptr %7, align 8, !tbaa !5
  %2427 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2426, i32 0, i32 6
  %2428 = load i32, ptr %2427, align 1, !tbaa !29
  %2429 = and i32 16, %2428
  %2430 = icmp ne i32 %2429, 0
  br i1 %2430, label %2431, label %2454

2431:                                             ; preds = %2421
  %2432 = load ptr, ptr %7, align 8, !tbaa !5
  %2433 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2432, i32 0, i32 5
  %2434 = load i32, ptr %2433, align 1, !tbaa !33
  %2435 = load ptr, ptr %5, align 8, !tbaa !5
  %2436 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2435, i32 0, i32 2
  %2437 = load i32, ptr %2436, align 8, !tbaa !18
  %2438 = urem i32 %2434, %2437
  %2439 = icmp eq i32 0, %2438
  br i1 %2439, label %2440, label %2441

2440:                                             ; preds = %2431
  br label %2442

2441:                                             ; preds = %2431
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2945, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

2442:                                             ; preds = %2440
  %2443 = load ptr, ptr %5, align 8, !tbaa !5
  %2444 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2443, i32 0, i32 9
  store i32 537138728, ptr %2444, align 4, !tbaa !25
  %2445 = load i32, ptr %8, align 4, !tbaa !9
  %2446 = icmp eq i32 %2445, 0
  br i1 %2446, label %2447, label %2450

2447:                                             ; preds = %2442
  %2448 = load ptr, ptr %5, align 8, !tbaa !5
  %2449 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2448, i32 0, i32 10
  store i32 537138731, ptr %2449, align 8, !tbaa !34
  br label %2453

2450:                                             ; preds = %2442
  %2451 = load ptr, ptr %5, align 8, !tbaa !5
  %2452 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2451, i32 0, i32 9
  store i32 537138728, ptr %2452, align 4, !tbaa !25
  br label %2453

2453:                                             ; preds = %2450, %2447
  br label %2459

2454:                                             ; preds = %2421
  %2455 = load ptr, ptr %5, align 8, !tbaa !5
  %2456 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2455, i32 0, i32 9
  store i32 537138704, ptr %2456, align 4, !tbaa !25
  %2457 = load ptr, ptr %5, align 8, !tbaa !5
  %2458 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2457, i32 0, i32 10
  store i32 537138704, ptr %2458, align 8, !tbaa !34
  br label %2459

2459:                                             ; preds = %2454, %2453
  %2460 = load ptr, ptr %5, align 8, !tbaa !5
  %2461 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2460, i32 0, i32 13
  store i32 805639919, ptr %2461, align 4, !tbaa !26
  %2462 = load ptr, ptr %5, align 8, !tbaa !5
  %2463 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2462, i32 0, i32 14
  store i32 805643858, ptr %2463, align 8, !tbaa !27
  %2464 = load ptr, ptr %5, align 8, !tbaa !5
  %2465 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2464, i32 0, i32 15
  store i32 805639934, ptr %2465, align 4, !tbaa !28
  br label %3375

2466:                                             ; preds = %2384
  %2467 = load ptr, ptr %7, align 8, !tbaa !5
  %2468 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2467, i32 0, i32 8
  %2469 = getelementptr inbounds [3 x i8], ptr %2468, i64 0, i64 0
  %2470 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2469)
  %2471 = icmp eq i32 12, %2470
  br i1 %2471, label %2472, label %2548

2472:                                             ; preds = %2466
  %2473 = load ptr, ptr %5, align 8, !tbaa !5
  %2474 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2473, i32 0, i32 2
  store i32 16, ptr %2474, align 8, !tbaa !18
  %2475 = load ptr, ptr %5, align 8, !tbaa !5
  %2476 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2475, i32 0, i32 3
  store i32 1, ptr %2476, align 4, !tbaa !19
  %2477 = load ptr, ptr %5, align 8, !tbaa !5
  %2478 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2477, i32 0, i32 4
  store i32 1, ptr %2478, align 8, !tbaa !20
  %2479 = load ptr, ptr %5, align 8, !tbaa !5
  %2480 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2479, i32 0, i32 5
  store i32 4, ptr %2480, align 4, !tbaa !21
  %2481 = load ptr, ptr %7, align 8, !tbaa !5
  %2482 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2481, i32 0, i32 6
  %2483 = load i32, ptr %2482, align 1, !tbaa !29
  %2484 = and i32 8, %2483
  %2485 = icmp ne i32 %2484, 0
  br i1 %2485, label %2486, label %2500

2486:                                             ; preds = %2472
  %2487 = load ptr, ptr %7, align 8, !tbaa !5
  %2488 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2487, i32 0, i32 3
  %2489 = load i32, ptr %2488, align 1, !tbaa !32
  %2490 = load ptr, ptr %5, align 8, !tbaa !5
  %2491 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2490, i32 0, i32 2
  %2492 = load i32, ptr %2491, align 8, !tbaa !18
  %2493 = urem i32 %2489, %2492
  %2494 = icmp eq i32 0, %2493
  br i1 %2494, label %2495, label %2496

2495:                                             ; preds = %2486
  br label %2497

2496:                                             ; preds = %2486
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 2966, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

2497:                                             ; preds = %2495
  %2498 = load ptr, ptr %5, align 8, !tbaa !5
  %2499 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2498, i32 0, i32 6
  store i32 537138728, ptr %2499, align 8, !tbaa !22
  br label %2503

2500:                                             ; preds = %2472
  %2501 = load ptr, ptr %5, align 8, !tbaa !5
  %2502 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2501, i32 0, i32 6
  store i32 537138704, ptr %2502, align 8, !tbaa !22
  br label %2503

2503:                                             ; preds = %2500, %2497
  %2504 = load ptr, ptr %5, align 8, !tbaa !5
  %2505 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2504, i32 0, i32 7
  store i32 537209432, ptr %2505, align 4, !tbaa !23
  %2506 = load ptr, ptr %5, align 8, !tbaa !5
  %2507 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2506, i32 0, i32 8
  store i32 9999, ptr %2507, align 8, !tbaa !24
  %2508 = load ptr, ptr %7, align 8, !tbaa !5
  %2509 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2508, i32 0, i32 6
  %2510 = load i32, ptr %2509, align 1, !tbaa !29
  %2511 = and i32 16, %2510
  %2512 = icmp ne i32 %2511, 0
  br i1 %2512, label %2513, label %2536

2513:                                             ; preds = %2503
  %2514 = load ptr, ptr %7, align 8, !tbaa !5
  %2515 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2514, i32 0, i32 5
  %2516 = load i32, ptr %2515, align 1, !tbaa !33
  %2517 = load ptr, ptr %5, align 8, !tbaa !5
  %2518 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2517, i32 0, i32 2
  %2519 = load i32, ptr %2518, align 8, !tbaa !18
  %2520 = urem i32 %2516, %2519
  %2521 = icmp eq i32 0, %2520
  br i1 %2521, label %2522, label %2523

2522:                                             ; preds = %2513
  br label %2524

2523:                                             ; preds = %2513
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 2974, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

2524:                                             ; preds = %2522
  %2525 = load ptr, ptr %5, align 8, !tbaa !5
  %2526 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2525, i32 0, i32 9
  store i32 537138728, ptr %2526, align 4, !tbaa !25
  %2527 = load i32, ptr %8, align 4, !tbaa !9
  %2528 = icmp eq i32 %2527, 0
  br i1 %2528, label %2529, label %2532

2529:                                             ; preds = %2524
  %2530 = load ptr, ptr %5, align 8, !tbaa !5
  %2531 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2530, i32 0, i32 10
  store i32 537138731, ptr %2531, align 8, !tbaa !34
  br label %2535

2532:                                             ; preds = %2524
  %2533 = load ptr, ptr %5, align 8, !tbaa !5
  %2534 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2533, i32 0, i32 9
  store i32 537138728, ptr %2534, align 4, !tbaa !25
  br label %2535

2535:                                             ; preds = %2532, %2529
  br label %2541

2536:                                             ; preds = %2503
  %2537 = load ptr, ptr %5, align 8, !tbaa !5
  %2538 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2537, i32 0, i32 9
  store i32 537138704, ptr %2538, align 4, !tbaa !25
  %2539 = load ptr, ptr %5, align 8, !tbaa !5
  %2540 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2539, i32 0, i32 10
  store i32 537138704, ptr %2540, align 8, !tbaa !34
  br label %2541

2541:                                             ; preds = %2536, %2535
  %2542 = load ptr, ptr %5, align 8, !tbaa !5
  %2543 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2542, i32 0, i32 13
  store i32 805639919, ptr %2543, align 4, !tbaa !26
  %2544 = load ptr, ptr %5, align 8, !tbaa !5
  %2545 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2544, i32 0, i32 14
  store i32 805643856, ptr %2545, align 8, !tbaa !27
  %2546 = load ptr, ptr %5, align 8, !tbaa !5
  %2547 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2546, i32 0, i32 15
  store i32 805639934, ptr %2547, align 4, !tbaa !28
  br label %3374

2548:                                             ; preds = %2466
  %2549 = load ptr, ptr %7, align 8, !tbaa !5
  %2550 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2549, i32 0, i32 8
  %2551 = getelementptr inbounds [3 x i8], ptr %2550, i64 0, i64 0
  %2552 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %2551)
  %2553 = icmp eq i32 12, %2552
  br i1 %2553, label %2554, label %2620

2554:                                             ; preds = %2548
  %2555 = load ptr, ptr %7, align 8, !tbaa !5
  %2556 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2555, i32 0, i32 8
  %2557 = getelementptr inbounds [3 x i8], ptr %2556, i64 0, i64 0
  %2558 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %2557)
  %2559 = icmp eq i32 2, %2558
  br i1 %2559, label %2560, label %2620

2560:                                             ; preds = %2554
  %2561 = load ptr, ptr %7, align 8, !tbaa !5
  %2562 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2561, i32 0, i32 8
  %2563 = getelementptr inbounds [3 x i8], ptr %2562, i64 0, i64 0
  %2564 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2563)
  %2565 = icmp eq i32 2, %2564
  br i1 %2565, label %2572, label %2566

2566:                                             ; preds = %2560
  %2567 = load ptr, ptr %7, align 8, !tbaa !5
  %2568 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2567, i32 0, i32 8
  %2569 = getelementptr inbounds [3 x i8], ptr %2568, i64 0, i64 0
  %2570 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2569)
  %2571 = icmp eq i32 1, %2570
  br i1 %2571, label %2572, label %2620

2572:                                             ; preds = %2566, %2560
  %2573 = load ptr, ptr %5, align 8, !tbaa !5
  %2574 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2573, i32 0, i32 2
  store i32 16, ptr %2574, align 8, !tbaa !18
  %2575 = load ptr, ptr %5, align 8, !tbaa !5
  %2576 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2575, i32 0, i32 3
  store i32 1, ptr %2576, align 4, !tbaa !19
  %2577 = load ptr, ptr %5, align 8, !tbaa !5
  %2578 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2577, i32 0, i32 4
  store i32 2, ptr %2578, align 8, !tbaa !20
  %2579 = load ptr, ptr %7, align 8, !tbaa !5
  %2580 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2579, i32 0, i32 8
  %2581 = getelementptr inbounds [3 x i8], ptr %2580, i64 0, i64 0
  %2582 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2581)
  %2583 = icmp eq i32 2, %2582
  br i1 %2583, label %2584, label %2591

2584:                                             ; preds = %2572
  %2585 = load ptr, ptr %5, align 8, !tbaa !5
  %2586 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2585, i32 0, i32 5
  store i32 2, ptr %2586, align 4, !tbaa !21
  %2587 = load ptr, ptr %5, align 8, !tbaa !5
  %2588 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2587, i32 0, i32 9
  store i32 -528017809, ptr %2588, align 4, !tbaa !25
  %2589 = load ptr, ptr %5, align 8, !tbaa !5
  %2590 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2589, i32 0, i32 10
  store i32 -528017809, ptr %2590, align 8, !tbaa !34
  br label %2598

2591:                                             ; preds = %2572
  %2592 = load ptr, ptr %5, align 8, !tbaa !5
  %2593 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2592, i32 0, i32 5
  store i32 4, ptr %2593, align 4, !tbaa !21
  %2594 = load ptr, ptr %5, align 8, !tbaa !5
  %2595 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2594, i32 0, i32 9
  store i32 537138704, ptr %2595, align 4, !tbaa !25
  %2596 = load ptr, ptr %5, align 8, !tbaa !5
  %2597 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2596, i32 0, i32 10
  store i32 537138704, ptr %2597, align 8, !tbaa !34
  br label %2598

2598:                                             ; preds = %2591, %2584
  %2599 = load ptr, ptr %5, align 8, !tbaa !5
  %2600 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2599, i32 0, i32 21
  store i8 122, ptr %2600, align 4, !tbaa !17
  %2601 = load ptr, ptr %5, align 8, !tbaa !5
  %2602 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2601, i32 0, i32 6
  store i32 -536406417, ptr %2602, align 8, !tbaa !22
  %2603 = load ptr, ptr %5, align 8, !tbaa !5
  %2604 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2603, i32 0, i32 7
  store i32 537209432, ptr %2604, align 4, !tbaa !23
  %2605 = load ptr, ptr %5, align 8, !tbaa !5
  %2606 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2605, i32 0, i32 8
  store i32 9999, ptr %2606, align 8, !tbaa !24
  %2607 = load ptr, ptr %5, align 8, !tbaa !5
  %2608 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2607, i32 0, i32 13
  store i32 805639919, ptr %2608, align 4, !tbaa !26
  %2609 = load i32, ptr %6, align 4, !tbaa !9
  %2610 = icmp uge i32 %2609, 1103
  br i1 %2610, label %2611, label %2614

2611:                                             ; preds = %2598
  %2612 = load ptr, ptr %5, align 8, !tbaa !5
  %2613 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2612, i32 0, i32 14
  store i32 -268032430, ptr %2613, align 8, !tbaa !27
  br label %2617

2614:                                             ; preds = %2598
  %2615 = load ptr, ptr %5, align 8, !tbaa !5
  %2616 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2615, i32 0, i32 14
  store i32 805643960, ptr %2616, align 8, !tbaa !27
  br label %2617

2617:                                             ; preds = %2614, %2611
  %2618 = load ptr, ptr %5, align 8, !tbaa !5
  %2619 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2618, i32 0, i32 15
  store i32 805574232, ptr %2619, align 4, !tbaa !28
  br label %3373

2620:                                             ; preds = %2566, %2554, %2548
  %2621 = load ptr, ptr %7, align 8, !tbaa !5
  %2622 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2621, i32 0, i32 8
  %2623 = getelementptr inbounds [3 x i8], ptr %2622, i64 0, i64 0
  %2624 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %2623)
  %2625 = icmp eq i32 4, %2624
  br i1 %2625, label %2632, label %2626

2626:                                             ; preds = %2620
  %2627 = load ptr, ptr %7, align 8, !tbaa !5
  %2628 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2627, i32 0, i32 8
  %2629 = getelementptr inbounds [3 x i8], ptr %2628, i64 0, i64 0
  %2630 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %2629)
  %2631 = icmp eq i32 5, %2630
  br i1 %2631, label %2632, label %2698

2632:                                             ; preds = %2626, %2620
  %2633 = load ptr, ptr %7, align 8, !tbaa !5
  %2634 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2633, i32 0, i32 8
  %2635 = getelementptr inbounds [3 x i8], ptr %2634, i64 0, i64 0
  %2636 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %2635)
  %2637 = icmp eq i32 2, %2636
  br i1 %2637, label %2638, label %2698

2638:                                             ; preds = %2632
  %2639 = load ptr, ptr %7, align 8, !tbaa !5
  %2640 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2639, i32 0, i32 8
  %2641 = getelementptr inbounds [3 x i8], ptr %2640, i64 0, i64 0
  %2642 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2641)
  %2643 = icmp eq i32 2, %2642
  br i1 %2643, label %2650, label %2644

2644:                                             ; preds = %2638
  %2645 = load ptr, ptr %7, align 8, !tbaa !5
  %2646 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2645, i32 0, i32 8
  %2647 = getelementptr inbounds [3 x i8], ptr %2646, i64 0, i64 0
  %2648 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2647)
  %2649 = icmp eq i32 1, %2648
  br i1 %2649, label %2650, label %2698

2650:                                             ; preds = %2644, %2638
  %2651 = load ptr, ptr %5, align 8, !tbaa !5
  %2652 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2651, i32 0, i32 2
  store i32 16, ptr %2652, align 8, !tbaa !18
  %2653 = load ptr, ptr %5, align 8, !tbaa !5
  %2654 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2653, i32 0, i32 3
  store i32 1, ptr %2654, align 4, !tbaa !19
  %2655 = load ptr, ptr %5, align 8, !tbaa !5
  %2656 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2655, i32 0, i32 4
  store i32 2, ptr %2656, align 8, !tbaa !20
  %2657 = load ptr, ptr %7, align 8, !tbaa !5
  %2658 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2657, i32 0, i32 8
  %2659 = getelementptr inbounds [3 x i8], ptr %2658, i64 0, i64 0
  %2660 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2659)
  %2661 = icmp eq i32 2, %2660
  br i1 %2661, label %2662, label %2669

2662:                                             ; preds = %2650
  %2663 = load ptr, ptr %5, align 8, !tbaa !5
  %2664 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2663, i32 0, i32 5
  store i32 2, ptr %2664, align 4, !tbaa !21
  %2665 = load ptr, ptr %5, align 8, !tbaa !5
  %2666 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2665, i32 0, i32 9
  store i32 -528017809, ptr %2666, align 4, !tbaa !25
  %2667 = load ptr, ptr %5, align 8, !tbaa !5
  %2668 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2667, i32 0, i32 10
  store i32 -528017809, ptr %2668, align 8, !tbaa !34
  br label %2676

2669:                                             ; preds = %2650
  %2670 = load ptr, ptr %5, align 8, !tbaa !5
  %2671 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2670, i32 0, i32 5
  store i32 4, ptr %2671, align 4, !tbaa !21
  %2672 = load ptr, ptr %5, align 8, !tbaa !5
  %2673 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2672, i32 0, i32 9
  store i32 537138704, ptr %2673, align 4, !tbaa !25
  %2674 = load ptr, ptr %5, align 8, !tbaa !5
  %2675 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2674, i32 0, i32 10
  store i32 537138704, ptr %2675, align 8, !tbaa !34
  br label %2676

2676:                                             ; preds = %2669, %2662
  %2677 = load ptr, ptr %5, align 8, !tbaa !5
  %2678 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2677, i32 0, i32 21
  store i8 122, ptr %2678, align 4, !tbaa !17
  %2679 = load ptr, ptr %5, align 8, !tbaa !5
  %2680 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2679, i32 0, i32 6
  store i32 -536406417, ptr %2680, align 8, !tbaa !22
  %2681 = load ptr, ptr %5, align 8, !tbaa !5
  %2682 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2681, i32 0, i32 7
  store i32 537209432, ptr %2682, align 4, !tbaa !23
  %2683 = load ptr, ptr %5, align 8, !tbaa !5
  %2684 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2683, i32 0, i32 8
  store i32 9999, ptr %2684, align 8, !tbaa !24
  %2685 = load ptr, ptr %5, align 8, !tbaa !5
  %2686 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2685, i32 0, i32 13
  store i32 805639919, ptr %2686, align 4, !tbaa !26
  %2687 = load i32, ptr %6, align 4, !tbaa !9
  %2688 = icmp uge i32 %2687, 1103
  br i1 %2688, label %2689, label %2692

2689:                                             ; preds = %2676
  %2690 = load ptr, ptr %5, align 8, !tbaa !5
  %2691 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2690, i32 0, i32 14
  store i32 -268032430, ptr %2691, align 8, !tbaa !27
  br label %2695

2692:                                             ; preds = %2676
  %2693 = load ptr, ptr %5, align 8, !tbaa !5
  %2694 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2693, i32 0, i32 14
  store i32 805643960, ptr %2694, align 8, !tbaa !27
  br label %2695

2695:                                             ; preds = %2692, %2689
  %2696 = load ptr, ptr %5, align 8, !tbaa !5
  %2697 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2696, i32 0, i32 15
  store i32 805574232, ptr %2697, align 4, !tbaa !28
  br label %3372

2698:                                             ; preds = %2644, %2632, %2626
  %2699 = load ptr, ptr %7, align 8, !tbaa !5
  %2700 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2699, i32 0, i32 8
  %2701 = getelementptr inbounds [3 x i8], ptr %2700, i64 0, i64 0
  %2702 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %2701)
  %2703 = icmp eq i32 12, %2702
  br i1 %2703, label %2710, label %2704

2704:                                             ; preds = %2698
  %2705 = load ptr, ptr %7, align 8, !tbaa !5
  %2706 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2705, i32 0, i32 8
  %2707 = getelementptr inbounds [3 x i8], ptr %2706, i64 0, i64 0
  %2708 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %2707)
  %2709 = icmp eq i32 4, %2708
  br i1 %2709, label %2710, label %2786

2710:                                             ; preds = %2704, %2698
  %2711 = load ptr, ptr %7, align 8, !tbaa !5
  %2712 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2711, i32 0, i32 8
  %2713 = getelementptr inbounds [3 x i8], ptr %2712, i64 0, i64 0
  %2714 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %2713)
  %2715 = icmp eq i32 3, %2714
  br i1 %2715, label %2716, label %2786

2716:                                             ; preds = %2710
  %2717 = load ptr, ptr %7, align 8, !tbaa !5
  %2718 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2717, i32 0, i32 8
  %2719 = getelementptr inbounds [3 x i8], ptr %2718, i64 0, i64 0
  %2720 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2719)
  %2721 = icmp eq i32 3, %2720
  br i1 %2721, label %2728, label %2722

2722:                                             ; preds = %2716
  %2723 = load ptr, ptr %7, align 8, !tbaa !5
  %2724 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2723, i32 0, i32 8
  %2725 = getelementptr inbounds [3 x i8], ptr %2724, i64 0, i64 0
  %2726 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2725)
  %2727 = icmp eq i32 1, %2726
  br i1 %2727, label %2728, label %2786

2728:                                             ; preds = %2722, %2716
  %2729 = load ptr, ptr %7, align 8, !tbaa !5
  %2730 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2729, i32 0, i32 8
  %2731 = getelementptr inbounds [3 x i8], ptr %2730, i64 0, i64 0
  %2732 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %2731)
  %2733 = icmp eq i32 3, %2732
  br i1 %2733, label %2734, label %2786

2734:                                             ; preds = %2728
  %2735 = load ptr, ptr %5, align 8, !tbaa !5
  %2736 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2735, i32 0, i32 2
  store i32 32, ptr %2736, align 8, !tbaa !18
  %2737 = load ptr, ptr %5, align 8, !tbaa !5
  %2738 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2737, i32 0, i32 3
  store i32 1, ptr %2738, align 4, !tbaa !19
  %2739 = load ptr, ptr %5, align 8, !tbaa !5
  %2740 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2739, i32 0, i32 4
  store i32 2, ptr %2740, align 8, !tbaa !20
  %2741 = load ptr, ptr %7, align 8, !tbaa !5
  %2742 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2741, i32 0, i32 8
  %2743 = getelementptr inbounds [3 x i8], ptr %2742, i64 0, i64 0
  %2744 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2743)
  %2745 = icmp eq i32 3, %2744
  br i1 %2745, label %2746, label %2753

2746:                                             ; preds = %2734
  %2747 = load ptr, ptr %5, align 8, !tbaa !5
  %2748 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2747, i32 0, i32 5
  store i32 2, ptr %2748, align 4, !tbaa !21
  %2749 = load ptr, ptr %5, align 8, !tbaa !5
  %2750 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2749, i32 0, i32 9
  store i32 -528017809, ptr %2750, align 4, !tbaa !25
  %2751 = load ptr, ptr %5, align 8, !tbaa !5
  %2752 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2751, i32 0, i32 10
  store i32 -528017809, ptr %2752, align 8, !tbaa !34
  br label %2760

2753:                                             ; preds = %2734
  %2754 = load ptr, ptr %5, align 8, !tbaa !5
  %2755 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2754, i32 0, i32 5
  store i32 4, ptr %2755, align 4, !tbaa !21
  %2756 = load ptr, ptr %5, align 8, !tbaa !5
  %2757 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2756, i32 0, i32 9
  store i32 537138704, ptr %2757, align 4, !tbaa !25
  %2758 = load ptr, ptr %5, align 8, !tbaa !5
  %2759 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2758, i32 0, i32 10
  store i32 537138704, ptr %2759, align 8, !tbaa !34
  br label %2760

2760:                                             ; preds = %2753, %2746
  %2761 = load i32, ptr %6, align 4, !tbaa !9
  %2762 = icmp uge i32 %2761, 1104
  br i1 %2762, label %2763, label %2770

2763:                                             ; preds = %2760
  %2764 = load ptr, ptr %5, align 8, !tbaa !5
  %2765 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2764, i32 0, i32 2
  store i32 32, ptr %2765, align 8, !tbaa !18
  %2766 = load ptr, ptr %5, align 8, !tbaa !5
  %2767 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2766, i32 0, i32 14
  store i32 -251304264, ptr %2767, align 8, !tbaa !27
  %2768 = load ptr, ptr %5, align 8, !tbaa !5
  %2769 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2768, i32 0, i32 15
  store i32 -251373992, ptr %2769, align 4, !tbaa !28
  br label %2777

2770:                                             ; preds = %2760
  %2771 = load ptr, ptr %5, align 8, !tbaa !5
  %2772 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2771, i32 0, i32 2
  store i32 16, ptr %2772, align 8, !tbaa !18
  %2773 = load ptr, ptr %5, align 8, !tbaa !5
  %2774 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2773, i32 0, i32 14
  store i32 805643960, ptr %2774, align 8, !tbaa !27
  %2775 = load ptr, ptr %5, align 8, !tbaa !5
  %2776 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2775, i32 0, i32 15
  store i32 805574232, ptr %2776, align 4, !tbaa !28
  br label %2777

2777:                                             ; preds = %2770, %2763
  %2778 = load ptr, ptr %5, align 8, !tbaa !5
  %2779 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2778, i32 0, i32 6
  store i32 -536406417, ptr %2779, align 8, !tbaa !22
  %2780 = load ptr, ptr %5, align 8, !tbaa !5
  %2781 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2780, i32 0, i32 7
  store i32 537209209, ptr %2781, align 4, !tbaa !23
  %2782 = load ptr, ptr %5, align 8, !tbaa !5
  %2783 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2782, i32 0, i32 8
  store i32 9999, ptr %2783, align 8, !tbaa !24
  %2784 = load ptr, ptr %5, align 8, !tbaa !5
  %2785 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2784, i32 0, i32 13
  store i32 805639919, ptr %2785, align 4, !tbaa !26
  br label %3371

2786:                                             ; preds = %2728, %2722, %2710, %2704
  %2787 = load ptr, ptr %7, align 8, !tbaa !5
  %2788 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2787, i32 0, i32 8
  %2789 = getelementptr inbounds [3 x i8], ptr %2788, i64 0, i64 0
  %2790 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2789)
  %2791 = icmp eq i32 3, %2790
  br i1 %2791, label %2792, label %2868

2792:                                             ; preds = %2786
  %2793 = load ptr, ptr %7, align 8, !tbaa !5
  %2794 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2793, i32 0, i32 8
  %2795 = getelementptr inbounds [3 x i8], ptr %2794, i64 0, i64 0
  %2796 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2795)
  %2797 = icmp eq i32 3, %2796
  br i1 %2797, label %2804, label %2798

2798:                                             ; preds = %2792
  %2799 = load ptr, ptr %7, align 8, !tbaa !5
  %2800 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2799, i32 0, i32 8
  %2801 = getelementptr inbounds [3 x i8], ptr %2800, i64 0, i64 0
  %2802 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2801)
  %2803 = icmp eq i32 1, %2802
  br i1 %2803, label %2804, label %2868

2804:                                             ; preds = %2798, %2792
  %2805 = load ptr, ptr %7, align 8, !tbaa !5
  %2806 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2805, i32 0, i32 8
  %2807 = getelementptr inbounds [3 x i8], ptr %2806, i64 0, i64 0
  %2808 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %2807)
  %2809 = icmp eq i32 3, %2808
  br i1 %2809, label %2810, label %2868

2810:                                             ; preds = %2804
  %2811 = load i32, ptr %6, align 4, !tbaa !9
  %2812 = icmp uge i32 %2811, 1104
  br i1 %2812, label %2813, label %2820

2813:                                             ; preds = %2810
  %2814 = load ptr, ptr %5, align 8, !tbaa !5
  %2815 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2814, i32 0, i32 2
  store i32 32, ptr %2815, align 8, !tbaa !18
  %2816 = load ptr, ptr %5, align 8, !tbaa !5
  %2817 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2816, i32 0, i32 14
  store i32 -251304264, ptr %2817, align 8, !tbaa !27
  %2818 = load ptr, ptr %5, align 8, !tbaa !5
  %2819 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2818, i32 0, i32 15
  store i32 -251373992, ptr %2819, align 4, !tbaa !28
  br label %2827

2820:                                             ; preds = %2810
  %2821 = load ptr, ptr %5, align 8, !tbaa !5
  %2822 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2821, i32 0, i32 2
  store i32 16, ptr %2822, align 8, !tbaa !18
  %2823 = load ptr, ptr %5, align 8, !tbaa !5
  %2824 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2823, i32 0, i32 14
  store i32 805643960, ptr %2824, align 8, !tbaa !27
  %2825 = load ptr, ptr %5, align 8, !tbaa !5
  %2826 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2825, i32 0, i32 15
  store i32 805574232, ptr %2826, align 4, !tbaa !28
  br label %2827

2827:                                             ; preds = %2820, %2813
  %2828 = load ptr, ptr %5, align 8, !tbaa !5
  %2829 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2828, i32 0, i32 3
  store i32 2, ptr %2829, align 4, !tbaa !19
  %2830 = load ptr, ptr %5, align 8, !tbaa !5
  %2831 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2830, i32 0, i32 4
  store i32 2, ptr %2831, align 8, !tbaa !20
  %2832 = load ptr, ptr %7, align 8, !tbaa !5
  %2833 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2832, i32 0, i32 8
  %2834 = getelementptr inbounds [3 x i8], ptr %2833, i64 0, i64 0
  %2835 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2834)
  %2836 = icmp eq i32 3, %2835
  br i1 %2836, label %2837, label %2844

2837:                                             ; preds = %2827
  %2838 = load ptr, ptr %5, align 8, !tbaa !5
  %2839 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2838, i32 0, i32 5
  store i32 2, ptr %2839, align 4, !tbaa !21
  %2840 = load ptr, ptr %5, align 8, !tbaa !5
  %2841 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2840, i32 0, i32 9
  store i32 -528017809, ptr %2841, align 4, !tbaa !25
  %2842 = load ptr, ptr %5, align 8, !tbaa !5
  %2843 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2842, i32 0, i32 10
  store i32 -528017809, ptr %2843, align 8, !tbaa !34
  br label %2859

2844:                                             ; preds = %2827
  %2845 = load ptr, ptr %7, align 8, !tbaa !5
  %2846 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2845, i32 0, i32 8
  %2847 = getelementptr inbounds [3 x i8], ptr %2846, i64 0, i64 0
  %2848 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2847)
  %2849 = icmp eq i32 1, %2848
  br i1 %2849, label %2850, label %2857

2850:                                             ; preds = %2844
  %2851 = load ptr, ptr %5, align 8, !tbaa !5
  %2852 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2851, i32 0, i32 5
  store i32 4, ptr %2852, align 4, !tbaa !21
  %2853 = load ptr, ptr %5, align 8, !tbaa !5
  %2854 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2853, i32 0, i32 9
  store i32 537138704, ptr %2854, align 4, !tbaa !25
  %2855 = load ptr, ptr %5, align 8, !tbaa !5
  %2856 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2855, i32 0, i32 10
  store i32 537138704, ptr %2856, align 8, !tbaa !34
  br label %2858

2857:                                             ; preds = %2844
  br label %2858

2858:                                             ; preds = %2857, %2850
  br label %2859

2859:                                             ; preds = %2858, %2837
  %2860 = load ptr, ptr %5, align 8, !tbaa !5
  %2861 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2860, i32 0, i32 6
  store i32 -528017809, ptr %2861, align 8, !tbaa !22
  %2862 = load ptr, ptr %5, align 8, !tbaa !5
  %2863 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2862, i32 0, i32 7
  store i32 537209209, ptr %2863, align 4, !tbaa !23
  %2864 = load ptr, ptr %5, align 8, !tbaa !5
  %2865 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2864, i32 0, i32 8
  store i32 9999, ptr %2865, align 8, !tbaa !24
  %2866 = load ptr, ptr %5, align 8, !tbaa !5
  %2867 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2866, i32 0, i32 13
  store i32 805639919, ptr %2867, align 4, !tbaa !26
  br label %3370

2868:                                             ; preds = %2804, %2798, %2786
  %2869 = load ptr, ptr %7, align 8, !tbaa !5
  %2870 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2869, i32 0, i32 8
  %2871 = getelementptr inbounds [3 x i8], ptr %2870, i64 0, i64 0
  %2872 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %2871)
  %2873 = icmp eq i32 3, %2872
  br i1 %2873, label %2874, label %2941

2874:                                             ; preds = %2868
  %2875 = load ptr, ptr %7, align 8, !tbaa !5
  %2876 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2875, i32 0, i32 8
  %2877 = getelementptr inbounds [3 x i8], ptr %2876, i64 0, i64 0
  %2878 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2877)
  %2879 = icmp eq i32 3, %2878
  br i1 %2879, label %2886, label %2880

2880:                                             ; preds = %2874
  %2881 = load ptr, ptr %7, align 8, !tbaa !5
  %2882 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2881, i32 0, i32 8
  %2883 = getelementptr inbounds [3 x i8], ptr %2882, i64 0, i64 0
  %2884 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2883)
  %2885 = icmp eq i32 1, %2884
  br i1 %2885, label %2886, label %2941

2886:                                             ; preds = %2880, %2874
  %2887 = load ptr, ptr %7, align 8, !tbaa !5
  %2888 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2887, i32 0, i32 8
  %2889 = getelementptr inbounds [3 x i8], ptr %2888, i64 0, i64 0
  %2890 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %2889)
  %2891 = icmp eq i32 1, %2890
  br i1 %2891, label %2892, label %2941

2892:                                             ; preds = %2886
  %2893 = load ptr, ptr %5, align 8, !tbaa !5
  %2894 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2893, i32 0, i32 2
  store i32 16, ptr %2894, align 8, !tbaa !18
  %2895 = load ptr, ptr %5, align 8, !tbaa !5
  %2896 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2895, i32 0, i32 3
  store i32 2, ptr %2896, align 4, !tbaa !19
  %2897 = load ptr, ptr %5, align 8, !tbaa !5
  %2898 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2897, i32 0, i32 4
  store i32 2, ptr %2898, align 8, !tbaa !20
  %2899 = load ptr, ptr %7, align 8, !tbaa !5
  %2900 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2899, i32 0, i32 8
  %2901 = getelementptr inbounds [3 x i8], ptr %2900, i64 0, i64 0
  %2902 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2901)
  %2903 = icmp eq i32 3, %2902
  br i1 %2903, label %2904, label %2911

2904:                                             ; preds = %2892
  %2905 = load ptr, ptr %5, align 8, !tbaa !5
  %2906 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2905, i32 0, i32 5
  store i32 2, ptr %2906, align 4, !tbaa !21
  %2907 = load ptr, ptr %5, align 8, !tbaa !5
  %2908 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2907, i32 0, i32 9
  store i32 -528017809, ptr %2908, align 4, !tbaa !25
  %2909 = load ptr, ptr %5, align 8, !tbaa !5
  %2910 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2909, i32 0, i32 10
  store i32 -528017809, ptr %2910, align 8, !tbaa !34
  br label %2926

2911:                                             ; preds = %2892
  %2912 = load ptr, ptr %7, align 8, !tbaa !5
  %2913 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2912, i32 0, i32 8
  %2914 = getelementptr inbounds [3 x i8], ptr %2913, i64 0, i64 0
  %2915 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2914)
  %2916 = icmp eq i32 1, %2915
  br i1 %2916, label %2917, label %2924

2917:                                             ; preds = %2911
  %2918 = load ptr, ptr %5, align 8, !tbaa !5
  %2919 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2918, i32 0, i32 5
  store i32 4, ptr %2919, align 4, !tbaa !21
  %2920 = load ptr, ptr %5, align 8, !tbaa !5
  %2921 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2920, i32 0, i32 9
  store i32 537138704, ptr %2921, align 4, !tbaa !25
  %2922 = load ptr, ptr %5, align 8, !tbaa !5
  %2923 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2922, i32 0, i32 10
  store i32 537138704, ptr %2923, align 8, !tbaa !34
  br label %2925

2924:                                             ; preds = %2911
  br label %2925

2925:                                             ; preds = %2924, %2917
  br label %2926

2926:                                             ; preds = %2925, %2904
  %2927 = load ptr, ptr %5, align 8, !tbaa !5
  %2928 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2927, i32 0, i32 21
  store i8 122, ptr %2928, align 4, !tbaa !17
  %2929 = load ptr, ptr %5, align 8, !tbaa !5
  %2930 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2929, i32 0, i32 6
  store i32 -528017809, ptr %2930, align 8, !tbaa !22
  %2931 = load ptr, ptr %5, align 8, !tbaa !5
  %2932 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2931, i32 0, i32 7
  store i32 537209209, ptr %2932, align 4, !tbaa !23
  %2933 = load ptr, ptr %5, align 8, !tbaa !5
  %2934 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2933, i32 0, i32 8
  store i32 9999, ptr %2934, align 8, !tbaa !24
  %2935 = load ptr, ptr %5, align 8, !tbaa !5
  %2936 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2935, i32 0, i32 13
  store i32 805639919, ptr %2936, align 4, !tbaa !26
  %2937 = load ptr, ptr %5, align 8, !tbaa !5
  %2938 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2937, i32 0, i32 14
  store i32 805643960, ptr %2938, align 8, !tbaa !27
  %2939 = load ptr, ptr %5, align 8, !tbaa !5
  %2940 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2939, i32 0, i32 15
  store i32 805574232, ptr %2940, align 4, !tbaa !28
  br label %3369

2941:                                             ; preds = %2886, %2880, %2868
  %2942 = load ptr, ptr %7, align 8, !tbaa !5
  %2943 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2942, i32 0, i32 8
  %2944 = getelementptr inbounds [3 x i8], ptr %2943, i64 0, i64 0
  %2945 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %2944)
  %2946 = icmp eq i32 12, %2945
  br i1 %2946, label %2953, label %2947

2947:                                             ; preds = %2941
  %2948 = load ptr, ptr %7, align 8, !tbaa !5
  %2949 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2948, i32 0, i32 8
  %2950 = getelementptr inbounds [3 x i8], ptr %2949, i64 0, i64 0
  %2951 = call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef %2950)
  %2952 = icmp eq i32 4, %2951
  br i1 %2952, label %2953, label %3018

2953:                                             ; preds = %2947, %2941
  %2954 = load ptr, ptr %7, align 8, !tbaa !5
  %2955 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2954, i32 0, i32 8
  %2956 = getelementptr inbounds [3 x i8], ptr %2955, i64 0, i64 0
  %2957 = call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef %2956)
  %2958 = icmp eq i32 3, %2957
  br i1 %2958, label %2959, label %3018

2959:                                             ; preds = %2953
  %2960 = load ptr, ptr %7, align 8, !tbaa !5
  %2961 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2960, i32 0, i32 8
  %2962 = getelementptr inbounds [3 x i8], ptr %2961, i64 0, i64 0
  %2963 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2962)
  %2964 = icmp eq i32 3, %2963
  br i1 %2964, label %2971, label %2965

2965:                                             ; preds = %2959
  %2966 = load ptr, ptr %7, align 8, !tbaa !5
  %2967 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2966, i32 0, i32 8
  %2968 = getelementptr inbounds [3 x i8], ptr %2967, i64 0, i64 0
  %2969 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2968)
  %2970 = icmp eq i32 1, %2969
  br i1 %2970, label %2971, label %3018

2971:                                             ; preds = %2965, %2959
  %2972 = load ptr, ptr %7, align 8, !tbaa !5
  %2973 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2972, i32 0, i32 8
  %2974 = getelementptr inbounds [3 x i8], ptr %2973, i64 0, i64 0
  %2975 = call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef %2974)
  %2976 = icmp eq i32 1, %2975
  br i1 %2976, label %2977, label %3018

2977:                                             ; preds = %2971
  %2978 = load ptr, ptr %5, align 8, !tbaa !5
  %2979 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2978, i32 0, i32 2
  store i32 16, ptr %2979, align 8, !tbaa !18
  %2980 = load ptr, ptr %5, align 8, !tbaa !5
  %2981 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2980, i32 0, i32 3
  store i32 1, ptr %2981, align 4, !tbaa !19
  %2982 = load ptr, ptr %5, align 8, !tbaa !5
  %2983 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2982, i32 0, i32 4
  store i32 2, ptr %2983, align 8, !tbaa !20
  %2984 = load ptr, ptr %7, align 8, !tbaa !5
  %2985 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %2984, i32 0, i32 8
  %2986 = getelementptr inbounds [3 x i8], ptr %2985, i64 0, i64 0
  %2987 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %2986)
  %2988 = icmp eq i32 3, %2987
  br i1 %2988, label %2989, label %2996

2989:                                             ; preds = %2977
  %2990 = load ptr, ptr %5, align 8, !tbaa !5
  %2991 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2990, i32 0, i32 5
  store i32 2, ptr %2991, align 4, !tbaa !21
  %2992 = load ptr, ptr %5, align 8, !tbaa !5
  %2993 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2992, i32 0, i32 9
  store i32 -528017809, ptr %2993, align 4, !tbaa !25
  %2994 = load ptr, ptr %5, align 8, !tbaa !5
  %2995 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2994, i32 0, i32 10
  store i32 -528017809, ptr %2995, align 8, !tbaa !34
  br label %3003

2996:                                             ; preds = %2977
  %2997 = load ptr, ptr %5, align 8, !tbaa !5
  %2998 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2997, i32 0, i32 5
  store i32 4, ptr %2998, align 4, !tbaa !21
  %2999 = load ptr, ptr %5, align 8, !tbaa !5
  %3000 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %2999, i32 0, i32 9
  store i32 537138704, ptr %3000, align 4, !tbaa !25
  %3001 = load ptr, ptr %5, align 8, !tbaa !5
  %3002 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3001, i32 0, i32 10
  store i32 537138704, ptr %3002, align 8, !tbaa !34
  br label %3003

3003:                                             ; preds = %2996, %2989
  %3004 = load ptr, ptr %5, align 8, !tbaa !5
  %3005 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3004, i32 0, i32 21
  store i8 122, ptr %3005, align 4, !tbaa !17
  %3006 = load ptr, ptr %5, align 8, !tbaa !5
  %3007 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3006, i32 0, i32 6
  store i32 -536406417, ptr %3007, align 8, !tbaa !22
  %3008 = load ptr, ptr %5, align 8, !tbaa !5
  %3009 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3008, i32 0, i32 7
  store i32 537209209, ptr %3009, align 4, !tbaa !23
  %3010 = load ptr, ptr %5, align 8, !tbaa !5
  %3011 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3010, i32 0, i32 8
  store i32 9999, ptr %3011, align 8, !tbaa !24
  %3012 = load ptr, ptr %5, align 8, !tbaa !5
  %3013 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3012, i32 0, i32 13
  store i32 805639919, ptr %3013, align 4, !tbaa !26
  %3014 = load ptr, ptr %5, align 8, !tbaa !5
  %3015 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3014, i32 0, i32 14
  store i32 805643960, ptr %3015, align 8, !tbaa !27
  %3016 = load ptr, ptr %5, align 8, !tbaa !5
  %3017 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3016, i32 0, i32 15
  store i32 805574232, ptr %3017, align 4, !tbaa !28
  br label %3368

3018:                                             ; preds = %2971, %2965, %2953, %2947
  %3019 = load ptr, ptr %7, align 8, !tbaa !5
  %3020 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3019, i32 0, i32 8
  %3021 = getelementptr inbounds [3 x i8], ptr %3020, i64 0, i64 0
  %3022 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3021)
  %3023 = icmp eq i32 2, %3022
  br i1 %3023, label %3024, label %3132

3024:                                             ; preds = %3018
  %3025 = load ptr, ptr %7, align 8, !tbaa !5
  %3026 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3025, i32 0, i32 6
  %3027 = load i32, ptr %3026, align 1, !tbaa !29
  %3028 = and i32 %3027, 2048
  %3029 = icmp ugt i32 %3028, 0
  br i1 %3029, label %3030, label %3132

3030:                                             ; preds = %3024
  %3031 = load ptr, ptr %5, align 8, !tbaa !5
  %3032 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3031, i32 0, i32 2
  store i32 16, ptr %3032, align 8, !tbaa !18
  %3033 = load ptr, ptr %5, align 8, !tbaa !5
  %3034 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3033, i32 0, i32 3
  store i32 2, ptr %3034, align 4, !tbaa !19
  %3035 = load ptr, ptr %5, align 8, !tbaa !5
  %3036 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3035, i32 0, i32 4
  store i32 2, ptr %3036, align 8, !tbaa !20
  %3037 = load ptr, ptr %7, align 8, !tbaa !5
  %3038 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3037, i32 0, i32 8
  %3039 = getelementptr inbounds [3 x i8], ptr %3038, i64 0, i64 0
  %3040 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %3039)
  %3041 = icmp eq i32 2, %3040
  br i1 %3041, label %3042, label %3045

3042:                                             ; preds = %3030
  %3043 = load ptr, ptr %5, align 8, !tbaa !5
  %3044 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3043, i32 0, i32 5
  store i32 2, ptr %3044, align 4, !tbaa !21
  br label %3064

3045:                                             ; preds = %3030
  %3046 = load ptr, ptr %7, align 8, !tbaa !5
  %3047 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3046, i32 0, i32 8
  %3048 = getelementptr inbounds [3 x i8], ptr %3047, i64 0, i64 0
  %3049 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %3048)
  %3050 = icmp eq i32 4, %3049
  br i1 %3050, label %3057, label %3051

3051:                                             ; preds = %3045
  %3052 = load ptr, ptr %7, align 8, !tbaa !5
  %3053 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3052, i32 0, i32 8
  %3054 = getelementptr inbounds [3 x i8], ptr %3053, i64 0, i64 0
  %3055 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %3054)
  %3056 = icmp eq i32 5, %3055
  br i1 %3056, label %3057, label %3060

3057:                                             ; preds = %3051, %3045
  %3058 = load ptr, ptr %5, align 8, !tbaa !5
  %3059 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3058, i32 0, i32 5
  store i32 1, ptr %3059, align 4, !tbaa !21
  br label %3063

3060:                                             ; preds = %3051
  %3061 = load ptr, ptr %5, align 8, !tbaa !5
  %3062 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3061, i32 0, i32 5
  store i32 4, ptr %3062, align 4, !tbaa !21
  br label %3063

3063:                                             ; preds = %3060, %3057
  br label %3064

3064:                                             ; preds = %3063, %3042
  %3065 = load ptr, ptr %7, align 8, !tbaa !5
  %3066 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3065, i32 0, i32 6
  %3067 = load i32, ptr %3066, align 1, !tbaa !29
  %3068 = and i32 8, %3067
  %3069 = icmp ne i32 %3068, 0
  br i1 %3069, label %3070, label %3084

3070:                                             ; preds = %3064
  %3071 = load ptr, ptr %7, align 8, !tbaa !5
  %3072 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3071, i32 0, i32 3
  %3073 = load i32, ptr %3072, align 1, !tbaa !32
  %3074 = load ptr, ptr %5, align 8, !tbaa !5
  %3075 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3074, i32 0, i32 2
  %3076 = load i32, ptr %3075, align 8, !tbaa !18
  %3077 = urem i32 %3073, %3076
  %3078 = icmp eq i32 0, %3077
  br i1 %3078, label %3079, label %3080

3079:                                             ; preds = %3070
  br label %3081

3080:                                             ; preds = %3070
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 3149, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

3081:                                             ; preds = %3079
  %3082 = load ptr, ptr %5, align 8, !tbaa !5
  %3083 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3082, i32 0, i32 6
  store i32 537138728, ptr %3083, align 8, !tbaa !22
  br label %3087

3084:                                             ; preds = %3064
  %3085 = load ptr, ptr %5, align 8, !tbaa !5
  %3086 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3085, i32 0, i32 6
  store i32 537138704, ptr %3086, align 8, !tbaa !22
  br label %3087

3087:                                             ; preds = %3084, %3081
  %3088 = load ptr, ptr %5, align 8, !tbaa !5
  %3089 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3088, i32 0, i32 7
  store i32 537209432, ptr %3089, align 4, !tbaa !23
  %3090 = load ptr, ptr %5, align 8, !tbaa !5
  %3091 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3090, i32 0, i32 8
  store i32 9999, ptr %3091, align 8, !tbaa !24
  %3092 = load ptr, ptr %7, align 8, !tbaa !5
  %3093 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3092, i32 0, i32 6
  %3094 = load i32, ptr %3093, align 1, !tbaa !29
  %3095 = and i32 16, %3094
  %3096 = icmp ne i32 %3095, 0
  br i1 %3096, label %3097, label %3120

3097:                                             ; preds = %3087
  %3098 = load ptr, ptr %7, align 8, !tbaa !5
  %3099 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3098, i32 0, i32 5
  %3100 = load i32, ptr %3099, align 1, !tbaa !33
  %3101 = load ptr, ptr %5, align 8, !tbaa !5
  %3102 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3101, i32 0, i32 2
  %3103 = load i32, ptr %3102, align 8, !tbaa !18
  %3104 = urem i32 %3100, %3103
  %3105 = icmp eq i32 0, %3104
  br i1 %3105, label %3106, label %3107

3106:                                             ; preds = %3097
  br label %3108

3107:                                             ; preds = %3097
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 3157, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

3108:                                             ; preds = %3106
  %3109 = load ptr, ptr %5, align 8, !tbaa !5
  %3110 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3109, i32 0, i32 9
  store i32 537138728, ptr %3110, align 4, !tbaa !25
  %3111 = load i32, ptr %8, align 4, !tbaa !9
  %3112 = icmp eq i32 %3111, 0
  br i1 %3112, label %3113, label %3116

3113:                                             ; preds = %3108
  %3114 = load ptr, ptr %5, align 8, !tbaa !5
  %3115 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3114, i32 0, i32 10
  store i32 537138731, ptr %3115, align 8, !tbaa !34
  br label %3119

3116:                                             ; preds = %3108
  %3117 = load ptr, ptr %5, align 8, !tbaa !5
  %3118 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3117, i32 0, i32 9
  store i32 537138728, ptr %3118, align 4, !tbaa !25
  br label %3119

3119:                                             ; preds = %3116, %3113
  br label %3125

3120:                                             ; preds = %3087
  %3121 = load ptr, ptr %5, align 8, !tbaa !5
  %3122 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3121, i32 0, i32 9
  store i32 537138704, ptr %3122, align 4, !tbaa !25
  %3123 = load ptr, ptr %5, align 8, !tbaa !5
  %3124 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3123, i32 0, i32 10
  store i32 537138704, ptr %3124, align 8, !tbaa !34
  br label %3125

3125:                                             ; preds = %3120, %3119
  %3126 = load ptr, ptr %5, align 8, !tbaa !5
  %3127 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3126, i32 0, i32 13
  store i32 805639919, ptr %3127, align 4, !tbaa !26
  %3128 = load ptr, ptr %5, align 8, !tbaa !5
  %3129 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3128, i32 0, i32 14
  store i32 -268032430, ptr %3129, align 8, !tbaa !27
  %3130 = load ptr, ptr %5, align 8, !tbaa !5
  %3131 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3130, i32 0, i32 15
  store i32 805574232, ptr %3131, align 4, !tbaa !28
  br label %3367

3132:                                             ; preds = %3024, %3018
  %3133 = load ptr, ptr %7, align 8, !tbaa !5
  %3134 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3133, 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 2, %3136
  br i1 %3137, label %3138, label %3246

3138:                                             ; preds = %3132
  %3139 = load ptr, ptr %7, align 8, !tbaa !5
  %3140 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3139, i32 0, i32 6
  %3141 = load i32, ptr %3140, align 1, !tbaa !29
  %3142 = and i32 %3141, 2048
  %3143 = icmp eq i32 %3142, 0
  br i1 %3143, label %3144, label %3246

3144:                                             ; preds = %3138
  %3145 = load ptr, ptr %5, align 8, !tbaa !5
  %3146 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3145, i32 0, i32 2
  store i32 16, ptr %3146, align 8, !tbaa !18
  %3147 = load ptr, ptr %5, align 8, !tbaa !5
  %3148 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3147, i32 0, i32 3
  store i32 2, ptr %3148, align 4, !tbaa !19
  %3149 = load ptr, ptr %5, align 8, !tbaa !5
  %3150 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3149, i32 0, i32 4
  store i32 2, ptr %3150, align 8, !tbaa !20
  %3151 = load ptr, ptr %7, align 8, !tbaa !5
  %3152 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3151, i32 0, i32 8
  %3153 = getelementptr inbounds [3 x i8], ptr %3152, i64 0, i64 0
  %3154 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %3153)
  %3155 = icmp eq i32 2, %3154
  br i1 %3155, label %3156, label %3159

3156:                                             ; preds = %3144
  %3157 = load ptr, ptr %5, align 8, !tbaa !5
  %3158 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3157, i32 0, i32 5
  store i32 2, ptr %3158, align 4, !tbaa !21
  br label %3178

3159:                                             ; preds = %3144
  %3160 = load ptr, ptr %7, align 8, !tbaa !5
  %3161 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3160, i32 0, i32 8
  %3162 = getelementptr inbounds [3 x i8], ptr %3161, i64 0, i64 0
  %3163 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %3162)
  %3164 = icmp eq i32 4, %3163
  br i1 %3164, label %3171, label %3165

3165:                                             ; preds = %3159
  %3166 = load ptr, ptr %7, align 8, !tbaa !5
  %3167 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3166, i32 0, i32 8
  %3168 = getelementptr inbounds [3 x i8], ptr %3167, i64 0, i64 0
  %3169 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %3168)
  %3170 = icmp eq i32 5, %3169
  br i1 %3170, label %3171, label %3174

3171:                                             ; preds = %3165, %3159
  %3172 = load ptr, ptr %5, align 8, !tbaa !5
  %3173 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3172, i32 0, i32 5
  store i32 1, ptr %3173, align 4, !tbaa !21
  br label %3177

3174:                                             ; preds = %3165
  %3175 = load ptr, ptr %5, align 8, !tbaa !5
  %3176 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3175, i32 0, i32 5
  store i32 4, ptr %3176, align 4, !tbaa !21
  br label %3177

3177:                                             ; preds = %3174, %3171
  br label %3178

3178:                                             ; preds = %3177, %3156
  %3179 = load ptr, ptr %7, align 8, !tbaa !5
  %3180 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3179, i32 0, i32 6
  %3181 = load i32, ptr %3180, align 1, !tbaa !29
  %3182 = and i32 8, %3181
  %3183 = icmp ne i32 %3182, 0
  br i1 %3183, label %3184, label %3198

3184:                                             ; preds = %3178
  %3185 = load ptr, ptr %7, align 8, !tbaa !5
  %3186 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3185, i32 0, i32 3
  %3187 = load i32, ptr %3186, align 1, !tbaa !32
  %3188 = load ptr, ptr %5, align 8, !tbaa !5
  %3189 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3188, i32 0, i32 2
  %3190 = load i32, ptr %3189, align 8, !tbaa !18
  %3191 = urem i32 %3187, %3190
  %3192 = icmp eq i32 0, %3191
  br i1 %3192, label %3193, label %3194

3193:                                             ; preds = %3184
  br label %3195

3194:                                             ; preds = %3184
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 3185, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

3195:                                             ; preds = %3193
  %3196 = load ptr, ptr %5, align 8, !tbaa !5
  %3197 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3196, i32 0, i32 6
  store i32 -528017809, ptr %3197, align 8, !tbaa !22
  br label %3201

3198:                                             ; preds = %3178
  %3199 = load ptr, ptr %5, align 8, !tbaa !5
  %3200 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3199, i32 0, i32 6
  store i32 -528017809, ptr %3200, align 8, !tbaa !22
  br label %3201

3201:                                             ; preds = %3198, %3195
  %3202 = load ptr, ptr %5, align 8, !tbaa !5
  %3203 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3202, i32 0, i32 7
  store i32 537209209, ptr %3203, align 4, !tbaa !23
  %3204 = load ptr, ptr %5, align 8, !tbaa !5
  %3205 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3204, i32 0, i32 8
  store i32 9999, ptr %3205, align 8, !tbaa !24
  %3206 = load ptr, ptr %7, align 8, !tbaa !5
  %3207 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3206, i32 0, i32 6
  %3208 = load i32, ptr %3207, align 1, !tbaa !29
  %3209 = and i32 16, %3208
  %3210 = icmp ne i32 %3209, 0
  br i1 %3210, label %3211, label %3234

3211:                                             ; preds = %3201
  %3212 = load ptr, ptr %7, align 8, !tbaa !5
  %3213 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3212, i32 0, i32 5
  %3214 = load i32, ptr %3213, align 1, !tbaa !33
  %3215 = load ptr, ptr %5, align 8, !tbaa !5
  %3216 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3215, i32 0, i32 2
  %3217 = load i32, ptr %3216, align 8, !tbaa !18
  %3218 = urem i32 %3214, %3217
  %3219 = icmp eq i32 0, %3218
  br i1 %3219, label %3220, label %3221

3220:                                             ; preds = %3211
  br label %3222

3221:                                             ; preds = %3211
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 3193, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #6
  unreachable

3222:                                             ; preds = %3220
  %3223 = load ptr, ptr %5, align 8, !tbaa !5
  %3224 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3223, i32 0, i32 9
  store i32 537138728, ptr %3224, align 4, !tbaa !25
  %3225 = load i32, ptr %8, align 4, !tbaa !9
  %3226 = icmp eq i32 %3225, 0
  br i1 %3226, label %3227, label %3230

3227:                                             ; preds = %3222
  %3228 = load ptr, ptr %5, align 8, !tbaa !5
  %3229 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3228, i32 0, i32 10
  store i32 537138731, ptr %3229, align 8, !tbaa !34
  br label %3233

3230:                                             ; preds = %3222
  %3231 = load ptr, ptr %5, align 8, !tbaa !5
  %3232 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3231, i32 0, i32 9
  store i32 537138728, ptr %3232, align 4, !tbaa !25
  br label %3233

3233:                                             ; preds = %3230, %3227
  br label %3239

3234:                                             ; preds = %3201
  %3235 = load ptr, ptr %5, align 8, !tbaa !5
  %3236 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3235, i32 0, i32 9
  store i32 537138704, ptr %3236, align 4, !tbaa !25
  %3237 = load ptr, ptr %5, align 8, !tbaa !5
  %3238 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3237, i32 0, i32 10
  store i32 537138704, ptr %3238, align 8, !tbaa !34
  br label %3239

3239:                                             ; preds = %3234, %3233
  %3240 = load ptr, ptr %5, align 8, !tbaa !5
  %3241 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3240, i32 0, i32 13
  store i32 805639919, ptr %3241, align 4, !tbaa !26
  %3242 = load ptr, ptr %5, align 8, !tbaa !5
  %3243 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3242, i32 0, i32 14
  store i32 805643960, ptr %3243, align 8, !tbaa !27
  %3244 = load ptr, ptr %5, align 8, !tbaa !5
  %3245 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3244, i32 0, i32 15
  store i32 805574232, ptr %3245, align 4, !tbaa !28
  br label %3366

3246:                                             ; preds = %3138, %3132
  %3247 = load ptr, ptr %7, align 8, !tbaa !5
  %3248 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3247, i32 0, i32 8
  %3249 = getelementptr inbounds [3 x i8], ptr %3248, i64 0, i64 0
  %3250 = call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef %3249)
  %3251 = icmp eq i32 4, %3250
  br i1 %3251, label %3258, label %3252

3252:                                             ; preds = %3246
  %3253 = load ptr, ptr %7, align 8, !tbaa !5
  %3254 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3253, 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 5, %3256
  br i1 %3257, label %3258, label %3334

3258:                                             ; preds = %3252, %3246
  %3259 = load ptr, ptr %7, align 8, !tbaa !5
  %3260 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3259, i32 0, i32 6
  %3261 = load i32, ptr %3260, align 1, !tbaa !29
  %3262 = and i32 %3261, 2048
  %3263 = icmp ugt i32 %3262, 0
  br i1 %3263, label %3264, label %3334

3264:                                             ; preds = %3258
  %3265 = load ptr, ptr %5, align 8, !tbaa !5
  %3266 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3265, i32 0, i32 2
  store i32 16, ptr %3266, align 8, !tbaa !18
  %3267 = load ptr, ptr %5, align 8, !tbaa !5
  %3268 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3267, i32 0, i32 3
  store i32 1, ptr %3268, align 4, !tbaa !19
  %3269 = load ptr, ptr %5, align 8, !tbaa !5
  %3270 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3269, i32 0, i32 4
  store i32 1, ptr %3270, align 8, !tbaa !20
  %3271 = load ptr, ptr %7, align 8, !tbaa !5
  %3272 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3271, i32 0, i32 8
  %3273 = getelementptr inbounds [3 x i8], ptr %3272, i64 0, i64 0
  %3274 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %3273)
  %3275 = icmp eq i32 4, %3274
  br i1 %3275, label %3282, label %3276

3276:                                             ; preds = %3264
  %3277 = load ptr, ptr %7, align 8, !tbaa !5
  %3278 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3277, i32 0, i32 8
  %3279 = getelementptr inbounds [3 x i8], ptr %3278, i64 0, i64 0
  %3280 = call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef %3279)
  %3281 = icmp eq i32 5, %3280
  br i1 %3281, label %3282, label %3285

3282:                                             ; preds = %3276, %3264
  %3283 = load ptr, ptr %5, align 8, !tbaa !5
  %3284 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3283, i32 0, i32 5
  store i32 1, ptr %3284, align 4, !tbaa !21
  br label %3288

3285:                                             ; preds = %3276
  %3286 = load ptr, ptr %5, align 8, !tbaa !5
  %3287 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3286, i32 0, i32 5
  store i32 4, ptr %3287, align 4, !tbaa !21
  br label %3288

3288:                                             ; preds = %3285, %3282
  %3289 = load ptr, ptr %7, align 8, !tbaa !5
  %3290 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3289, i32 0, i32 6
  %3291 = load i32, ptr %3290, align 1, !tbaa !29
  %3292 = and i32 8, %3291
  %3293 = icmp ne i32 %3292, 0
  br i1 %3293, label %3294, label %3297

3294:                                             ; preds = %3288
  %3295 = load ptr, ptr %5, align 8, !tbaa !5
  %3296 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3295, i32 0, i32 6
  store i32 537138728, ptr %3296, align 8, !tbaa !22
  br label %3300

3297:                                             ; preds = %3288
  %3298 = load ptr, ptr %5, align 8, !tbaa !5
  %3299 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3298, i32 0, i32 6
  store i32 537138704, ptr %3299, align 8, !tbaa !22
  br label %3300

3300:                                             ; preds = %3297, %3294
  %3301 = load ptr, ptr %5, align 8, !tbaa !5
  %3302 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3301, i32 0, i32 7
  store i32 537208952, ptr %3302, align 4, !tbaa !23
  %3303 = load ptr, ptr %5, align 8, !tbaa !5
  %3304 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3303, i32 0, i32 8
  store i32 9999, ptr %3304, align 8, !tbaa !24
  %3305 = load ptr, ptr %7, align 8, !tbaa !5
  %3306 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %3305, i32 0, i32 6
  %3307 = load i32, ptr %3306, align 1, !tbaa !29
  %3308 = and i32 16, %3307
  %3309 = icmp ne i32 %3308, 0
  br i1 %3309, label %3310, label %3322

3310:                                             ; preds = %3300
  %3311 = load ptr, ptr %5, align 8, !tbaa !5
  %3312 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3311, i32 0, i32 9
  store i32 537138728, ptr %3312, align 4, !tbaa !25
  %3313 = load i32, ptr %8, align 4, !tbaa !9
  %3314 = icmp eq i32 %3313, 0
  br i1 %3314, label %3315, label %3318

3315:                                             ; preds = %3310
  %3316 = load ptr, ptr %5, align 8, !tbaa !5
  %3317 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3316, i32 0, i32 10
  store i32 537138731, ptr %3317, align 8, !tbaa !34
  br label %3321

3318:                                             ; preds = %3310
  %3319 = load ptr, ptr %5, align 8, !tbaa !5
  %3320 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3319, i32 0, i32 9
  store i32 537138728, ptr %3320, align 4, !tbaa !25
  br label %3321

3321:                                             ; preds = %3318, %3315
  br label %3327

3322:                                             ; preds = %3300
  %3323 = load ptr, ptr %5, align 8, !tbaa !5
  %3324 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3323, i32 0, i32 9
  store i32 537138704, ptr %3324, align 4, !tbaa !25
  %3325 = load ptr, ptr %5, align 8, !tbaa !5
  %3326 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3325, i32 0, i32 10
  store i32 537138704, ptr %3326, align 8, !tbaa !34
  br label %3327

3327:                                             ; preds = %3322, %3321
  %3328 = load ptr, ptr %5, align 8, !tbaa !5
  %3329 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3328, i32 0, i32 13
  store i32 805639919, ptr %3329, align 4, !tbaa !26
  %3330 = load ptr, ptr %5, align 8, !tbaa !5
  %3331 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3330, i32 0, i32 14
  store i32 805643960, ptr %3331, align 8, !tbaa !27
  %3332 = load ptr, ptr %5, align 8, !tbaa !5
  %3333 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3332, i32 0, i32 15
  store i32 805574232, ptr %3333, align 4, !tbaa !28
  br label %3365

3334:                                             ; preds = %3258, %3252
  %3335 = load ptr, ptr %5, align 8, !tbaa !5
  %3336 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3335, i32 0, i32 0
  store i32 1, ptr %3336, align 8, !tbaa !11
  %3337 = load ptr, ptr %5, align 8, !tbaa !5
  %3338 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3337, i32 0, i32 1
  store i32 0, ptr %3338, align 4, !tbaa !15
  %3339 = load ptr, ptr %5, align 8, !tbaa !5
  %3340 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3339, i32 0, i32 11
  store i32 0, ptr %3340, align 4, !tbaa !16
  %3341 = load ptr, ptr %5, align 8, !tbaa !5
  %3342 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3341, i32 0, i32 21
  store i8 97, ptr %3342, align 4, !tbaa !17
  %3343 = load ptr, ptr %5, align 8, !tbaa !5
  %3344 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3343, i32 0, i32 2
  store i32 0, ptr %3344, align 8, !tbaa !18
  %3345 = load ptr, ptr %5, align 8, !tbaa !5
  %3346 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3345, i32 0, i32 3
  store i32 0, ptr %3346, align 4, !tbaa !19
  %3347 = load ptr, ptr %5, align 8, !tbaa !5
  %3348 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3347, i32 0, i32 4
  store i32 0, ptr %3348, align 8, !tbaa !20
  %3349 = load ptr, ptr %5, align 8, !tbaa !5
  %3350 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3349, i32 0, i32 5
  store i32 0, ptr %3350, align 4, !tbaa !21
  %3351 = load ptr, ptr %5, align 8, !tbaa !5
  %3352 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3351, i32 0, i32 6
  store i32 9999, ptr %3352, align 8, !tbaa !22
  %3353 = load ptr, ptr %5, align 8, !tbaa !5
  %3354 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3353, i32 0, i32 7
  store i32 9999, ptr %3354, align 4, !tbaa !23
  %3355 = load ptr, ptr %5, align 8, !tbaa !5
  %3356 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3355, i32 0, i32 8
  store i32 9999, ptr %3356, align 8, !tbaa !24
  %3357 = load ptr, ptr %5, align 8, !tbaa !5
  %3358 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3357, i32 0, i32 9
  store i32 9999, ptr %3358, align 4, !tbaa !25
  %3359 = load ptr, ptr %5, align 8, !tbaa !5
  %3360 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3359, i32 0, i32 13
  store i32 9999, ptr %3360, align 4, !tbaa !26
  %3361 = load ptr, ptr %5, align 8, !tbaa !5
  %3362 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3361, i32 0, i32 14
  store i32 9999, ptr %3362, align 8, !tbaa !27
  %3363 = load ptr, ptr %5, align 8, !tbaa !5
  %3364 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3363, i32 0, i32 15
  store i32 9999, ptr %3364, align 4, !tbaa !28
  br label %3365

3365:                                             ; preds = %3334, %3327
  br label %3366

3366:                                             ; preds = %3365, %3239
  br label %3367

3367:                                             ; preds = %3366, %3125
  br label %3368

3368:                                             ; preds = %3367, %3003
  br label %3369

3369:                                             ; preds = %3368, %2926
  br label %3370

3370:                                             ; preds = %3369, %2859
  br label %3371

3371:                                             ; preds = %3370, %2777
  br label %3372

3372:                                             ; preds = %3371, %2695
  br label %3373

3373:                                             ; preds = %3372, %2617
  br label %3374

3374:                                             ; preds = %3373, %2541
  br label %3375

3375:                                             ; preds = %3374, %2459
  br label %3376

3376:                                             ; preds = %3375, %2377
  br label %3377

3377:                                             ; preds = %3376, %2280
  br label %3379

3378:                                             ; preds = %2192
  br label %3379

3379:                                             ; preds = %3378, %3377
  br label %3380

3380:                                             ; preds = %3379, %2191
  br label %3381

3381:                                             ; preds = %3380, %1268
  br label %3382

3382:                                             ; preds = %3381, %499
  br label %3383

3383:                                             ; preds = %3382, %26
  %3384 = load ptr, ptr %5, align 8, !tbaa !5
  %3385 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3384, i32 0, i32 12
  store i32 -1809575912, ptr %3385, align 8, !tbaa !35
  %3386 = load ptr, ptr %5, align 8, !tbaa !5
  %3387 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3386, i32 0, i32 16
  store i32 30000, ptr %3387, align 8, !tbaa !36
  %3388 = load ptr, ptr %5, align 8, !tbaa !5
  %3389 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3388, i32 0, i32 17
  store i32 30008, ptr %3389, align 4, !tbaa !37
  %3390 = load ptr, ptr %5, align 8, !tbaa !5
  %3391 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3390, i32 0, i32 18
  store i32 30002, ptr %3391, align 8, !tbaa !38
  %3392 = load ptr, ptr %5, align 8, !tbaa !5
  %3393 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3392, i32 0, i32 19
  store i32 30100, ptr %3393, align 4, !tbaa !39
  %3394 = load ptr, ptr %5, align 8, !tbaa !5
  %3395 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %3394, i32 0, i32 20
  store i32 -1568407413, ptr %3395, align 8, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #5
  ret void
}

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

declare i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef) #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 0}
!12 = !{!"libxsmm_micro_kernel_config", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !10, i64 80, !7, i64 84, !10, i64 88, !10, i64 92, !10, i64 96, !10, i64 100, !10, i64 104, !10, i64 108, !10, i64 112, !10, i64 116, !10, i64 120, !10, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148, !10, i64 152, !10, i64 156, !10, i64 160, !10, i64 164, !10, i64 168, !10, i64 172, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !10, i64 192, !10, i64 196, !10, i64 200, !10, i64 204, !10, i64 208, !10, i64 212, !10, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !10, i64 232, !10, i64 236, !10, i64 240, !10, i64 244, !10, i64 248, !10, i64 252, !10, i64 256, !10, i64 260, !10, i64 264, !10, i64 268, !10, i64 272, !10, i64 276, !10, i64 280, !10, i64 284, !10, i64 288, !10, i64 292, !10, i64 296, !10, i64 300, !10, i64 304, !10, i64 308, !10, i64 312, !10, i64 316, !10, i64 320, !10, i64 324, !10, i64 328, !10, i64 332, !10, i64 336, !10, i64 340, !10, i64 344, !10, i64 348, !10, i64 352, !10, i64 356, !10, i64 360, !7, i64 364, !7, i64 380, !7, i64 396, !7, i64 412, !7, i64 428, !7, i64 444, !10, i64 460, !7, i64 464, !13, i64 520, !10, i64 556, !10, i64 560, !10, i64 564, !10, i64 568, !10, i64 572, !10, i64 576, !10, i64 580, !10, i64 584, !6, i64 592, !10, i64 600, !10, i64 604, !10, i64 608, !10, i64 612, !6, i64 616, !10, i64 624, !10, i64 628, !10, i64 632, !10, i64 636, !10, i64 640, !10, i64 644, !10, i64 648, !10, i64 652, !10, i64 656, !10, i64 660, !10, i64 664, !10, i64 668, !10, i64 672, !10, i64 676, !10, i64 680}
!13 = !{!"libxsmm_tile_config", !7, i64 0, !14, i64 2, !7, i64 4, !14, i64 6, !7, i64 8, !14, i64 10, !7, i64 12, !14, i64 14, !7, i64 16, !14, i64 18, !7, i64 20, !14, i64 22, !7, i64 24, !14, i64 26, !7, i64 28, !14, i64 30, !7, i64 32}
!14 = !{!"short", !7, i64 0}
!15 = !{!12, !10, i64 4}
!16 = !{!12, !10, i64 44}
!17 = !{!12, !7, i64 84}
!18 = !{!12, !10, i64 8}
!19 = !{!12, !10, i64 12}
!20 = !{!12, !10, i64 16}
!21 = !{!12, !10, i64 20}
!22 = !{!12, !10, i64 24}
!23 = !{!12, !10, i64 28}
!24 = !{!12, !10, i64 32}
!25 = !{!12, !10, i64 36}
!26 = !{!12, !10, i64 52}
!27 = !{!12, !10, i64 56}
!28 = !{!12, !10, i64 60}
!29 = !{!30, !10, i64 24}
!30 = !{!"libxsmm_gemm_descriptor", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !7, i64 28, !7, i64 29, !7, i64 32, !31, i64 33, !31, i64 41, !7, i64 49, !10, i64 50, !10, i64 54, !10, i64 58, !14, i64 62, !14, i64 64, !7, i64 66, !7, i64 67, !7, i64 68, !7, i64 69, !14, i64 70, !14, i64 72, !14, i64 74, !14, i64 76, !14, i64 78, !14, i64 80, !10, i64 82, !10, i64 86, !10, i64 90, !7, i64 94}
!31 = !{!"long long", !7, i64 0}
!32 = !{!30, !10, i64 12}
!33 = !{!30, !10, i64 20}
!34 = !{!12, !10, i64 40}
!35 = !{!12, !10, i64 48}
!36 = !{!12, !10, i64 64}
!37 = !{!12, !10, i64 68}
!38 = !{!12, !10, i64 72}
!39 = !{!12, !10, i64 76}
!40 = !{!12, !10, i64 80}


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

@.str.1 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [65 x i8], align 1
@__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config = external hidden unnamed_addr constant [157 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [65 x i8], align 1

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

declare i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef) local_unnamed_addr #1

declare i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef) local_unnamed_addr #1

declare i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef) local_unnamed_addr #1

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

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local void @libxsmm_generator_gemm_setup_fusion_microkernel_properties(ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_gemm_init_micro_kernel_config(ptr noundef %0, i32 noundef %1, ptr noundef %2, i32 noundef %3) local_unnamed_addr #0 {
  %5 = tail call i32 @libxsmm_x86_is_Amxfp4_Bfp32_gemm(ptr noundef %2)
  %6 = tail call i32 @libxsmm_x86_is_Amxfp4_Bi8_gemm(ptr noundef %2)
  %7 = tail call i32 @libxsmm_x86_is_Amxfp4_Bbf16_gemm(ptr noundef %2)
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(688) %0, i8 0, i64 688, i1 false)
  tail call void @libxsmm_generator_gemm_setup_fusion_microkernel_properties(ptr noundef %2, ptr noundef %0)
  %8 = add i32 %1, -2000
  %or.cond = icmp ult i32 %8, -1998
  br i1 %or.cond, label %9, label %16

9:                                                ; preds = %4
  store i32 1, ptr %0, align 8, !tbaa !5
  %10 = getelementptr inbounds i8, ptr %0, i64 4
  store i32 0, ptr %10, align 4, !tbaa !13
  %11 = getelementptr inbounds i8, ptr %0, i64 44
  store i32 0, ptr %11, align 4, !tbaa !14
  %12 = getelementptr inbounds i8, ptr %0, i64 84
  store i8 97, ptr %12, align 4, !tbaa !15
  %13 = getelementptr inbounds i8, ptr %0, i64 8
  %14 = getelementptr inbounds i8, ptr %0, i64 24
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %13, i8 0, i64 16, i1 false)
  store <4 x i32> <i32 9999, i32 9999, i32 9999, i32 9999>, ptr %14, align 8, !tbaa !16
  %15 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 9999, ptr %15, align 4, !tbaa !17
  br label %1290

16:                                               ; preds = %4
  %17 = icmp ult i32 %1, 1005
  br i1 %17, label %18, label %179

18:                                               ; preds = %16
  store i32 %1, ptr %0, align 8, !tbaa !5
  %19 = getelementptr inbounds i8, ptr %0, i64 4
  store i32 16, ptr %19, align 4, !tbaa !13
  %20 = getelementptr inbounds i8, ptr %0, i64 44
  store i32 %3, ptr %20, align 4, !tbaa !14
  %21 = getelementptr inbounds i8, ptr %0, i64 84
  store i8 120, ptr %21, align 4, !tbaa !15
  %22 = getelementptr inbounds i8, ptr %2, i64 29
  %23 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %22) #4
  %24 = icmp eq i32 %23, 0
  br i1 %24, label %25, label %52

25:                                               ; preds = %18
  %26 = getelementptr inbounds i8, ptr %0, i64 8
  store <4 x i32> <i32 2, i32 8, i32 8, i32 8>, ptr %26, align 8, !tbaa !16
  %27 = getelementptr inbounds i8, ptr %2, i64 24
  %28 = load i32, ptr %27, align 1, !tbaa !18
  %29 = and i32 %28, 8
  %.not1084 = icmp eq i32 %29, 0
  br i1 %.not1084, label %36, label %30

30:                                               ; preds = %25
  %31 = getelementptr inbounds i8, ptr %2, i64 12
  %32 = load i32, ptr %31, align 1, !tbaa !21
  %33 = and i32 %32, 1
  %34 = icmp eq i32 %33, 0
  br i1 %34, label %36, label %35

35:                                               ; preds = %30
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2136, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

36:                                               ; preds = %25, %30
  %.sink1122 = phi i32 [ -1610280920, %30 ], [ -1610280944, %25 ]
  %37 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1122, ptr %37, align 8, !tbaa !22
  %38 = icmp eq i32 %1, 1002
  %.sink1086 = select i1 %38, i32 -1610149872, i32 -1610149870
  %.sink = select i1 %38, i32 -1609756474, i32 9999
  %39 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 %.sink1086, ptr %39, align 4
  %40 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 %.sink, ptr %40, align 8
  %41 = and i32 %28, 16
  %.not1085 = icmp eq i32 %41, 0
  br i1 %.not1085, label %48, label %42

42:                                               ; preds = %36
  %43 = getelementptr inbounds i8, ptr %2, i64 20
  %44 = load i32, ptr %43, align 1, !tbaa !23
  %45 = and i32 %44, 1
  %46 = icmp eq i32 %45, 0
  br i1 %46, label %48, label %47

47:                                               ; preds = %42
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2149, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

48:                                               ; preds = %36, %42
  %.sink1126 = phi i32 [ -1610280920, %42 ], [ -1610280944, %36 ]
  %49 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 %.sink1126, ptr %49, align 4, !tbaa !24
  %50 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1126, ptr %50, align 8, !tbaa !25
  %51 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 -1610280873, ptr %51, align 4, !tbaa !17
  br label %1290

52:                                               ; preds = %18
  %53 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %22) #4
  %54 = icmp eq i32 %53, 1
  br i1 %54, label %55, label %81

55:                                               ; preds = %52
  %56 = getelementptr inbounds i8, ptr %0, i64 8
  store <4 x i32> <i32 4, i32 4, i32 4, i32 4>, ptr %56, align 8, !tbaa !16
  %57 = getelementptr inbounds i8, ptr %2, i64 24
  %58 = load i32, ptr %57, align 1, !tbaa !18
  %59 = and i32 %58, 8
  %.not1082 = icmp eq i32 %59, 0
  br i1 %.not1082, label %66, label %60

60:                                               ; preds = %55
  %61 = getelementptr inbounds i8, ptr %2, i64 12
  %62 = load i32, ptr %61, align 1, !tbaa !21
  %63 = and i32 %62, 3
  %64 = icmp eq i32 %63, 0
  br i1 %64, label %66, label %65

65:                                               ; preds = %60
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2165, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

66:                                               ; preds = %55, %60
  %.sink1128 = phi i32 [ -1610346456, %60 ], [ -1610346480, %55 ]
  %67 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1128, ptr %67, align 8, !tbaa !22
  %68 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 -1610215408, ptr %68, align 4, !tbaa !26
  %69 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 -1609822010, ptr %69, align 8, !tbaa !27
  %70 = and i32 %58, 16
  %.not1083 = icmp eq i32 %70, 0
  br i1 %.not1083, label %77, label %71

71:                                               ; preds = %66
  %72 = getelementptr inbounds i8, ptr %2, i64 20
  %73 = load i32, ptr %72, align 1, !tbaa !23
  %74 = and i32 %73, 3
  %75 = icmp eq i32 %74, 0
  br i1 %75, label %77, label %76

76:                                               ; preds = %71
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2173, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

77:                                               ; preds = %66, %71
  %.sink1132 = phi i32 [ -1610346456, %71 ], [ -1610346480, %66 ]
  %78 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 %.sink1132, ptr %78, align 4, !tbaa !24
  %79 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1132, ptr %79, align 8, !tbaa !25
  %80 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 -1610346409, ptr %80, align 4, !tbaa !17
  br label %1290

81:                                               ; preds = %52
  %82 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %22) #4
  %83 = icmp eq i32 %82, 12
  br i1 %83, label %84, label %110

84:                                               ; preds = %81
  %85 = getelementptr inbounds i8, ptr %0, i64 8
  store <4 x i32> <i32 4, i32 1, i32 1, i32 4>, ptr %85, align 8, !tbaa !16
  %86 = getelementptr inbounds i8, ptr %2, i64 24
  %87 = load i32, ptr %86, align 1, !tbaa !18
  %88 = and i32 %87, 8
  %.not1080 = icmp eq i32 %88, 0
  br i1 %.not1080, label %95, label %89

89:                                               ; preds = %84
  %90 = getelementptr inbounds i8, ptr %2, i64 12
  %91 = load i32, ptr %90, align 1, !tbaa !21
  %92 = and i32 %91, 3
  %93 = icmp eq i32 %92, 0
  br i1 %93, label %95, label %94

94:                                               ; preds = %89
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2189, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

95:                                               ; preds = %84, %89
  %.sink1134 = phi i32 [ -1610346456, %89 ], [ -1610346480, %84 ]
  %96 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1134, ptr %96, align 8, !tbaa !22
  %97 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 -1610215408, ptr %97, align 4, !tbaa !26
  %98 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 -1609822010, ptr %98, align 8, !tbaa !27
  %99 = and i32 %87, 16
  %.not1081 = icmp eq i32 %99, 0
  br i1 %.not1081, label %106, label %100

100:                                              ; preds = %95
  %101 = getelementptr inbounds i8, ptr %2, i64 20
  %102 = load i32, ptr %101, align 1, !tbaa !23
  %103 = and i32 %102, 3
  %104 = icmp eq i32 %103, 0
  br i1 %104, label %106, label %105

105:                                              ; preds = %100
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2197, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

106:                                              ; preds = %95, %100
  %.sink1138 = phi i32 [ -1610346456, %100 ], [ -1610346480, %95 ]
  %107 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 %.sink1138, ptr %107, align 4, !tbaa !24
  %108 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1138, ptr %108, align 8, !tbaa !25
  %109 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 -1610280721, ptr %109, align 4, !tbaa !17
  br label %1290

110:                                              ; preds = %81
  %111 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %22) #4
  %112 = icmp eq i32 %111, 10
  br i1 %112, label %113, label %139

113:                                              ; preds = %110
  %114 = getelementptr inbounds i8, ptr %0, i64 8
  store <4 x i32> <i32 4, i32 2, i32 2, i32 4>, ptr %114, align 8, !tbaa !16
  %115 = getelementptr inbounds i8, ptr %2, i64 24
  %116 = load i32, ptr %115, align 1, !tbaa !18
  %117 = and i32 %116, 8
  %.not1078 = icmp eq i32 %117, 0
  br i1 %.not1078, label %124, label %118

118:                                              ; preds = %113
  %119 = getelementptr inbounds i8, ptr %2, i64 12
  %120 = load i32, ptr %119, align 1, !tbaa !21
  %121 = and i32 %120, 3
  %122 = icmp eq i32 %121, 0
  br i1 %122, label %124, label %123

123:                                              ; preds = %118
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2213, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

124:                                              ; preds = %113, %118
  %.sink1140 = phi i32 [ -1610346456, %118 ], [ -1610346480, %113 ]
  %125 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1140, ptr %125, align 8, !tbaa !22
  %126 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 -1610215408, ptr %126, align 4, !tbaa !26
  %127 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 -1609822010, ptr %127, align 8, !tbaa !27
  %128 = and i32 %116, 16
  %.not1079 = icmp eq i32 %128, 0
  br i1 %.not1079, label %135, label %129

129:                                              ; preds = %124
  %130 = getelementptr inbounds i8, ptr %2, i64 20
  %131 = load i32, ptr %130, align 1, !tbaa !23
  %132 = and i32 %131, 3
  %133 = icmp eq i32 %132, 0
  br i1 %133, label %135, label %134

134:                                              ; preds = %129
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2221, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

135:                                              ; preds = %124, %129
  %.sink1144 = phi i32 [ -1610346456, %129 ], [ -1610346480, %124 ]
  %136 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 %.sink1144, ptr %136, align 4, !tbaa !24
  %137 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1144, ptr %137, align 8, !tbaa !25
  %138 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 -1610280721, ptr %138, align 4, !tbaa !17
  br label %1290

139:                                              ; preds = %110
  %140 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %22) #4
  %141 = icmp eq i32 %140, 2
  br i1 %141, label %142, label %175

142:                                              ; preds = %139
  %143 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 4, ptr %143, align 8, !tbaa !28
  %144 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 2, ptr %144, align 4, !tbaa !29
  %145 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 2, ptr %145, align 8, !tbaa !30
  %146 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %22) #4
  %147 = icmp eq i32 %146, 2
  %spec.select = select i1 %147, i32 2, i32 4
  %148 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %spec.select, ptr %148, align 4
  %149 = getelementptr inbounds i8, ptr %2, i64 24
  %150 = load i32, ptr %149, align 1, !tbaa !18
  %151 = and i32 %150, 8
  %.not1076 = icmp eq i32 %151, 0
  br i1 %.not1076, label %159, label %152

152:                                              ; preds = %142
  %153 = getelementptr inbounds i8, ptr %2, i64 12
  %154 = load i32, ptr %153, align 1, !tbaa !21
  %155 = load i32, ptr %143, align 8, !tbaa !28
  %156 = urem i32 %154, %155
  %157 = icmp eq i32 %156, 0
  br i1 %157, label %159, label %158

158:                                              ; preds = %152
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2241, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

159:                                              ; preds = %142, %152
  %.sink1146 = phi i32 [ -1610346456, %152 ], [ -1610346480, %142 ]
  %160 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1146, ptr %160, align 8, !tbaa !22
  %161 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 -1610215408, ptr %161, align 4, !tbaa !26
  %162 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 -1609822010, ptr %162, align 8, !tbaa !27
  %163 = and i32 %150, 16
  %.not1077 = icmp eq i32 %163, 0
  br i1 %.not1077, label %171, label %164

164:                                              ; preds = %159
  %165 = getelementptr inbounds i8, ptr %2, i64 20
  %166 = load i32, ptr %165, align 1, !tbaa !23
  %167 = load i32, ptr %143, align 8, !tbaa !28
  %168 = urem i32 %166, %167
  %169 = icmp eq i32 %168, 0
  br i1 %169, label %171, label %170

170:                                              ; preds = %164
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2249, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

171:                                              ; preds = %159, %164
  %.sink1150 = phi i32 [ -1610346456, %164 ], [ -1610346480, %159 ]
  %172 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 %.sink1150, ptr %172, align 4, !tbaa !24
  %173 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1150, ptr %173, align 8, !tbaa !25
  %174 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 -1610280721, ptr %174, align 4, !tbaa !17
  br label %1290

175:                                              ; preds = %139
  store i32 1, ptr %0, align 8, !tbaa !5
  store i32 0, ptr %19, align 4, !tbaa !13
  store i32 0, ptr %20, align 4, !tbaa !14
  store i8 97, ptr %21, align 4, !tbaa !15
  %176 = getelementptr inbounds i8, ptr %0, i64 8
  %177 = getelementptr inbounds i8, ptr %0, i64 24
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %176, i8 0, i64 16, i1 false)
  store <4 x i32> <i32 9999, i32 9999, i32 9999, i32 9999>, ptr %177, align 8, !tbaa !16
  %178 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 9999, ptr %178, align 4, !tbaa !17
  br label %1290

179:                                              ; preds = %16
  %180 = icmp ult i32 %1, 1041
  %181 = getelementptr inbounds i8, ptr %2, i64 29
  br i1 %180, label %182, label %460

182:                                              ; preds = %179
  store i32 %1, ptr %0, align 8, !tbaa !5
  %183 = getelementptr inbounds i8, ptr %0, i64 4
  store i32 16, ptr %183, align 4, !tbaa !13
  %184 = getelementptr inbounds i8, ptr %0, i64 44
  store i32 %3, ptr %184, align 4, !tbaa !14
  %185 = getelementptr inbounds i8, ptr %0, i64 84
  store i8 121, ptr %185, align 4, !tbaa !15
  %186 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %187 = icmp eq i32 %186, 0
  br i1 %187, label %188, label %215

188:                                              ; preds = %182
  %189 = getelementptr inbounds i8, ptr %0, i64 8
  store <4 x i32> <i32 4, i32 8, i32 8, i32 8>, ptr %189, align 8, !tbaa !16
  %190 = getelementptr inbounds i8, ptr %2, i64 24
  %191 = load i32, ptr %190, align 1, !tbaa !18
  %192 = and i32 %191, 8
  %.not1074 = icmp eq i32 %192, 0
  br i1 %.not1074, label %199, label %193

193:                                              ; preds = %188
  %194 = getelementptr inbounds i8, ptr %2, i64 12
  %195 = load i32, ptr %194, align 1, !tbaa !21
  %196 = and i32 %195, 3
  %197 = icmp eq i32 %196, 0
  br i1 %197, label %199, label %198

198:                                              ; preds = %193
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2288, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

199:                                              ; preds = %188, %193
  %.sink1152 = phi i32 [ 545592872, %193 ], [ 545592848, %188 ]
  %200 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1152, ptr %200, align 8, !tbaa !22
  %201 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 545598233, ptr %201, align 4, !tbaa !26
  %202 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %202, align 8, !tbaa !27
  %203 = and i32 %191, 16
  %.not1075 = icmp eq i32 %203, 0
  br i1 %.not1075, label %210, label %204

204:                                              ; preds = %199
  %205 = getelementptr inbounds i8, ptr %2, i64 20
  %206 = load i32, ptr %205, align 1, !tbaa !23
  %207 = and i32 %206, 3
  %208 = icmp eq i32 %207, 0
  br i1 %208, label %210, label %209

209:                                              ; preds = %204
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2296, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

210:                                              ; preds = %199, %204
  %211 = phi <2 x i32> [ <i32 545592872, i32 545592875>, %204 ], [ <i32 545592848, i32 545592848>, %199 ]
  %212 = getelementptr inbounds i8, ptr %0, i64 36
  store <2 x i32> %211, ptr %212, align 4, !tbaa !16
  %213 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 814028375, ptr %213, align 4, !tbaa !17
  %214 = icmp eq i32 %1, 1005
  %. = select i1 %214, i32 814028377, i32 814032568
  br label %1290

215:                                              ; preds = %182
  %216 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %217 = icmp eq i32 %216, 1
  br i1 %217, label %218, label %245

218:                                              ; preds = %215
  %219 = getelementptr inbounds i8, ptr %0, i64 8
  store <4 x i32> <i32 8, i32 4, i32 4, i32 4>, ptr %219, align 8, !tbaa !16
  %220 = getelementptr inbounds i8, ptr %2, i64 24
  %221 = load i32, ptr %220, align 1, !tbaa !18
  %222 = and i32 %221, 8
  %.not1072 = icmp eq i32 %222, 0
  br i1 %.not1072, label %229, label %223

223:                                              ; preds = %218
  %224 = getelementptr inbounds i8, ptr %2, i64 12
  %225 = load i32, ptr %224, align 1, !tbaa !21
  %226 = and i32 %225, 7
  %227 = icmp eq i32 %226, 0
  br i1 %227, label %229, label %228

228:                                              ; preds = %223
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2317, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

229:                                              ; preds = %218, %223
  %.sink1158 = phi i32 [ 537138728, %223 ], [ 537138704, %218 ]
  %230 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1158, ptr %230, align 8, !tbaa !22
  %231 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209368, ptr %231, align 4, !tbaa !26
  %232 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %232, align 8, !tbaa !27
  %233 = and i32 %221, 16
  %.not1073 = icmp eq i32 %233, 0
  br i1 %.not1073, label %240, label %234

234:                                              ; preds = %229
  %235 = getelementptr inbounds i8, ptr %2, i64 20
  %236 = load i32, ptr %235, align 1, !tbaa !23
  %237 = and i32 %236, 7
  %238 = icmp eq i32 %237, 0
  br i1 %238, label %240, label %239

239:                                              ; preds = %234
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2325, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

240:                                              ; preds = %229, %234
  %241 = phi <2 x i32> [ <i32 537138728, i32 537138731>, %234 ], [ <i32 537138704, i32 537138704>, %229 ]
  %242 = getelementptr inbounds i8, ptr %0, i64 36
  store <2 x i32> %241, ptr %242, align 4, !tbaa !16
  %243 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805574231, ptr %243, align 4, !tbaa !17
  %244 = icmp eq i32 %1, 1005
  %.1313 = select i1 %244, i32 805574233, i32 805643960
  br label %1290

245:                                              ; preds = %215
  %.not1057 = icmp eq i32 %5, 0
  br i1 %.not1057, label %265, label %246

246:                                              ; preds = %245
  %247 = getelementptr inbounds i8, ptr %0, i64 8
  store <4 x i32> <i32 8, i32 1, i32 4, i32 4>, ptr %247, align 8, !tbaa !16
  %248 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 545725200, ptr %248, align 8, !tbaa !22
  %249 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209368, ptr %249, align 4, !tbaa !26
  %250 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %250, align 8, !tbaa !27
  %251 = getelementptr inbounds i8, ptr %2, i64 24
  %252 = load i32, ptr %251, align 1, !tbaa !18
  %253 = and i32 %252, 16
  %.not1071 = icmp eq i32 %253, 0
  br i1 %.not1071, label %260, label %254

254:                                              ; preds = %246
  %255 = getelementptr inbounds i8, ptr %2, i64 20
  %256 = load i32, ptr %255, align 1, !tbaa !23
  %257 = and i32 %256, 7
  %258 = icmp eq i32 %257, 0
  br i1 %258, label %260, label %259

259:                                              ; preds = %254
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2349, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

260:                                              ; preds = %246, %254
  %261 = phi <2 x i32> [ <i32 537138728, i32 537138731>, %254 ], [ <i32 537138704, i32 537138704>, %246 ]
  %262 = getelementptr inbounds i8, ptr %0, i64 36
  store <2 x i32> %261, ptr %262, align 4, !tbaa !16
  %263 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805574231, ptr %263, align 4, !tbaa !17
  %264 = icmp eq i32 %1, 1005
  %.1314 = select i1 %264, i32 805574233, i32 805643960
  br label %1290

265:                                              ; preds = %245
  %.not1058 = icmp eq i32 %7, 0
  br i1 %.not1058, label %292, label %266

266:                                              ; preds = %265
  %267 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 8, ptr %267, align 8, !tbaa !28
  %268 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 1, ptr %268, align 4, !tbaa !29
  %269 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 2, ptr %269, align 8, !tbaa !30
  %270 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %271 = icmp eq i32 %270, 2
  %spec.select1168 = select i1 %271, i32 2, i32 4
  %272 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %spec.select1168, ptr %272, align 4
  %273 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 545725200, ptr %273, align 8, !tbaa !22
  %274 = icmp ugt i32 %1, 1007
  %.sink1089 = select i1 %274, i32 1611014321, i32 537209368
  %275 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 %.sink1089, ptr %275, align 4
  %276 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %276, align 8, !tbaa !27
  %277 = getelementptr inbounds i8, ptr %2, i64 24
  %278 = load i32, ptr %277, align 1, !tbaa !18
  %279 = and i32 %278, 16
  %.not1070 = icmp eq i32 %279, 0
  br i1 %.not1070, label %287, label %280

280:                                              ; preds = %266
  %281 = getelementptr inbounds i8, ptr %2, i64 20
  %282 = load i32, ptr %281, align 1, !tbaa !23
  %283 = load i32, ptr %267, align 8, !tbaa !28
  %284 = urem i32 %282, %283
  %285 = icmp eq i32 %284, 0
  br i1 %285, label %287, label %286

286:                                              ; preds = %280
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2381, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

287:                                              ; preds = %266, %280
  %288 = phi <2 x i32> [ <i32 537138728, i32 537138731>, %280 ], [ <i32 537138704, i32 537138704>, %266 ]
  %289 = getelementptr inbounds i8, ptr %0, i64 36
  store <2 x i32> %288, ptr %289, align 4, !tbaa !16
  %290 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805574231, ptr %290, align 4, !tbaa !17
  %291 = icmp eq i32 %1, 1005
  %.1315 = select i1 %291, i32 805574233, i32 805643960
  br label %1290

292:                                              ; preds = %265
  %.not1059 = icmp eq i32 %6, 0
  br i1 %.not1059, label %317, label %293

293:                                              ; preds = %292
  %294 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 8, ptr %294, align 8, !tbaa !28
  %295 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 1, ptr %295, align 4, !tbaa !29
  %296 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 1, ptr %296, align 8, !tbaa !30
  %297 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %298 = icmp eq i32 %297, 2
  %spec.select1173 = select i1 %298, i32 2, i32 4
  %299 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %spec.select1173, ptr %299, align 4
  %300 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 537138704, ptr %300, align 8, !tbaa !22
  %301 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209368, ptr %301, align 4, !tbaa !26
  %302 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %302, align 8, !tbaa !27
  %303 = getelementptr inbounds i8, ptr %2, i64 24
  %304 = load i32, ptr %303, align 1, !tbaa !18
  %305 = and i32 %304, 16
  %.not1069 = icmp eq i32 %305, 0
  br i1 %.not1069, label %313, label %306

306:                                              ; preds = %293
  %307 = getelementptr inbounds i8, ptr %2, i64 20
  %308 = load i32, ptr %307, align 1, !tbaa !23
  %309 = load i32, ptr %294, align 8, !tbaa !28
  %310 = urem i32 %308, %309
  %311 = icmp eq i32 %310, 0
  br i1 %311, label %313, label %312

312:                                              ; preds = %306
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2409, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

313:                                              ; preds = %293, %306
  %314 = phi <2 x i32> [ <i32 537138728, i32 537138731>, %306 ], [ <i32 537138704, i32 537138704>, %293 ]
  %315 = getelementptr inbounds i8, ptr %0, i64 36
  store <2 x i32> %314, ptr %315, align 4, !tbaa !16
  %316 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805574231, ptr %316, align 4, !tbaa !17
  br label %1290

317:                                              ; preds = %292
  %318 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %319 = icmp eq i32 %318, 2
  br i1 %319, label %320, label %357

320:                                              ; preds = %317
  %321 = getelementptr inbounds i8, ptr %2, i64 24
  %322 = load i32, ptr %321, align 1, !tbaa !18
  %323 = and i32 %322, 2048
  %.not1060 = icmp eq i32 %323, 0
  br i1 %.not1060, label %357, label %324

324:                                              ; preds = %320
  %325 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 8, ptr %325, align 8, !tbaa !28
  %326 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 2, ptr %326, align 4, !tbaa !29
  %327 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 2, ptr %327, align 8, !tbaa !30
  %328 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %329 = icmp eq i32 %328, 2
  %spec.select1178 = select i1 %329, i32 2, i32 4
  %330 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %spec.select1178, ptr %330, align 4
  %331 = load i32, ptr %321, align 1, !tbaa !18
  %332 = and i32 %331, 8
  %.not1067 = icmp eq i32 %332, 0
  br i1 %.not1067, label %340, label %333

333:                                              ; preds = %324
  %334 = getelementptr inbounds i8, ptr %2, i64 12
  %335 = load i32, ptr %334, align 1, !tbaa !21
  %336 = load i32, ptr %325, align 8, !tbaa !28
  %337 = urem i32 %335, %336
  %338 = icmp eq i32 %337, 0
  br i1 %338, label %340, label %339

339:                                              ; preds = %333
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2430, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

340:                                              ; preds = %324, %333
  %.sink1179 = phi i32 [ 537138728, %333 ], [ 537138704, %324 ]
  %341 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1179, ptr %341, align 8, !tbaa !22
  %342 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209368, ptr %342, align 4, !tbaa !26
  %343 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %343, align 8, !tbaa !27
  %344 = and i32 %331, 16
  %.not1068 = icmp eq i32 %344, 0
  br i1 %.not1068, label %352, label %345

345:                                              ; preds = %340
  %346 = getelementptr inbounds i8, ptr %2, i64 20
  %347 = load i32, ptr %346, align 1, !tbaa !23
  %348 = load i32, ptr %325, align 8, !tbaa !28
  %349 = urem i32 %347, %348
  %350 = icmp eq i32 %349, 0
  br i1 %350, label %352, label %351

351:                                              ; preds = %345
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2438, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

352:                                              ; preds = %340, %345
  %353 = phi <2 x i32> [ <i32 537138728, i32 537138731>, %345 ], [ <i32 537138704, i32 537138704>, %340 ]
  %354 = getelementptr inbounds i8, ptr %0, i64 36
  store <2 x i32> %353, ptr %354, align 4, !tbaa !16
  %355 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805574231, ptr %355, align 4, !tbaa !17
  %356 = icmp eq i32 %1, 1005
  %.1316 = select i1 %356, i32 805574233, i32 805643960
  br label %1290

357:                                              ; preds = %320, %317
  %358 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %359 = icmp eq i32 %358, 2
  br i1 %359, label %360, label %398

360:                                              ; preds = %357
  %361 = getelementptr inbounds i8, ptr %2, i64 24
  %362 = load i32, ptr %361, align 1, !tbaa !18
  %363 = and i32 %362, 2048
  %364 = icmp eq i32 %363, 0
  br i1 %364, label %365, label %398

365:                                              ; preds = %360
  %366 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 8, ptr %366, align 8, !tbaa !28
  %367 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 2, ptr %367, align 4, !tbaa !29
  %368 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 2, ptr %368, align 8, !tbaa !30
  %369 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %370 = icmp eq i32 %369, 2
  %spec.select1185 = select i1 %370, i32 2, i32 4
  %371 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %spec.select1185, ptr %371, align 4
  %372 = load i32, ptr %361, align 1, !tbaa !18
  %373 = and i32 %372, 8
  %.not1065 = icmp eq i32 %373, 0
  br i1 %.not1065, label %381, label %374

374:                                              ; preds = %365
  %375 = getelementptr inbounds i8, ptr %2, i64 12
  %376 = load i32, ptr %375, align 1, !tbaa !21
  %377 = load i32, ptr %366, align 8, !tbaa !28
  %378 = urem i32 %376, %377
  %379 = icmp eq i32 %378, 0
  br i1 %379, label %381, label %380

380:                                              ; preds = %374
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2464, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

381:                                              ; preds = %365, %374
  %.sink1186 = phi i32 [ 537138728, %374 ], [ 537138704, %365 ]
  %382 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1186, ptr %382, align 8, !tbaa !22
  %383 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209209, ptr %383, align 4, !tbaa !26
  %384 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %384, align 8, !tbaa !27
  %385 = and i32 %372, 16
  %.not1066 = icmp eq i32 %385, 0
  br i1 %.not1066, label %393, label %386

386:                                              ; preds = %381
  %387 = getelementptr inbounds i8, ptr %2, i64 20
  %388 = load i32, ptr %387, align 1, !tbaa !23
  %389 = load i32, ptr %366, align 8, !tbaa !28
  %390 = urem i32 %388, %389
  %391 = icmp eq i32 %390, 0
  br i1 %391, label %393, label %392

392:                                              ; preds = %386
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2472, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

393:                                              ; preds = %381, %386
  %394 = phi <2 x i32> [ <i32 537138728, i32 537138731>, %386 ], [ <i32 537138704, i32 537138704>, %381 ]
  %395 = getelementptr inbounds i8, ptr %0, i64 36
  store <2 x i32> %394, ptr %395, align 4, !tbaa !16
  %396 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805574231, ptr %396, align 4, !tbaa !17
  %397 = icmp eq i32 %1, 1005
  %.1317 = select i1 %397, i32 805574233, i32 805643960
  br label %1290

398:                                              ; preds = %360, %357
  %399 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %400 = icmp eq i32 %399, 10
  br i1 %400, label %401, label %427

401:                                              ; preds = %398
  %402 = getelementptr inbounds i8, ptr %0, i64 8
  store <4 x i32> <i32 8, i32 2, i32 2, i32 4>, ptr %402, align 8, !tbaa !16
  %403 = getelementptr inbounds i8, ptr %2, i64 24
  %404 = load i32, ptr %403, align 1, !tbaa !18
  %405 = and i32 %404, 8
  %.not1063 = icmp eq i32 %405, 0
  br i1 %.not1063, label %412, label %406

406:                                              ; preds = %401
  %407 = getelementptr inbounds i8, ptr %2, i64 12
  %408 = load i32, ptr %407, align 1, !tbaa !21
  %409 = and i32 %408, 7
  %410 = icmp eq i32 %409, 0
  br i1 %410, label %412, label %411

411:                                              ; preds = %406
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2493, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

412:                                              ; preds = %401, %406
  %.sink1192 = phi i32 [ 537138728, %406 ], [ 537138704, %401 ]
  %413 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1192, ptr %413, align 8, !tbaa !22
  %414 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209432, ptr %414, align 4, !tbaa !26
  %415 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %415, align 8, !tbaa !27
  %416 = and i32 %404, 16
  %.not1064 = icmp eq i32 %416, 0
  br i1 %.not1064, label %423, label %417

417:                                              ; preds = %412
  %418 = getelementptr inbounds i8, ptr %2, i64 20
  %419 = load i32, ptr %418, align 1, !tbaa !23
  %420 = and i32 %419, 7
  %421 = icmp eq i32 %420, 0
  br i1 %421, label %423, label %422

422:                                              ; preds = %417
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2501, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

423:                                              ; preds = %412, %417
  %424 = phi <2 x i32> [ <i32 537138728, i32 537138731>, %417 ], [ <i32 537138704, i32 537138704>, %412 ]
  %425 = getelementptr inbounds i8, ptr %0, i64 36
  store <2 x i32> %424, ptr %425, align 4, !tbaa !16
  %426 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %426, align 4, !tbaa !17
  br label %1290

427:                                              ; preds = %398
  %428 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %429 = icmp eq i32 %428, 12
  br i1 %429, label %430, label %456

430:                                              ; preds = %427
  %431 = getelementptr inbounds i8, ptr %0, i64 8
  store <4 x i32> <i32 8, i32 1, i32 1, i32 4>, ptr %431, align 8, !tbaa !16
  %432 = getelementptr inbounds i8, ptr %2, i64 24
  %433 = load i32, ptr %432, align 1, !tbaa !18
  %434 = and i32 %433, 8
  %.not1061 = icmp eq i32 %434, 0
  br i1 %.not1061, label %441, label %435

435:                                              ; preds = %430
  %436 = getelementptr inbounds i8, ptr %2, i64 12
  %437 = load i32, ptr %436, align 1, !tbaa !21
  %438 = and i32 %437, 7
  %439 = icmp eq i32 %438, 0
  br i1 %439, label %441, label %440

440:                                              ; preds = %435
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2517, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

441:                                              ; preds = %430, %435
  %.sink1198 = phi i32 [ 537138728, %435 ], [ 537138704, %430 ]
  %442 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1198, ptr %442, align 8, !tbaa !22
  %443 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209432, ptr %443, align 4, !tbaa !26
  %444 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %444, align 8, !tbaa !27
  %445 = and i32 %433, 16
  %.not1062 = icmp eq i32 %445, 0
  br i1 %.not1062, label %452, label %446

446:                                              ; preds = %441
  %447 = getelementptr inbounds i8, ptr %2, i64 20
  %448 = load i32, ptr %447, align 1, !tbaa !23
  %449 = and i32 %448, 7
  %450 = icmp eq i32 %449, 0
  br i1 %450, label %452, label %451

451:                                              ; preds = %446
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2525, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

452:                                              ; preds = %441, %446
  %453 = phi <2 x i32> [ <i32 537138728, i32 537138731>, %446 ], [ <i32 537138704, i32 537138704>, %441 ]
  %454 = getelementptr inbounds i8, ptr %0, i64 36
  store <2 x i32> %453, ptr %454, align 4, !tbaa !16
  %455 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %455, align 4, !tbaa !17
  br label %1290

456:                                              ; preds = %427
  store i32 1, ptr %0, align 8, !tbaa !5
  store i32 0, ptr %183, align 4, !tbaa !13
  store i32 0, ptr %184, align 4, !tbaa !14
  store i8 97, ptr %185, align 4, !tbaa !15
  %457 = getelementptr inbounds i8, ptr %0, i64 8
  %458 = getelementptr inbounds i8, ptr %0, i64 24
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %457, i8 0, i64 16, i1 false)
  store <4 x i32> <i32 9999, i32 9999, i32 9999, i32 9999>, ptr %458, align 8, !tbaa !16
  %459 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 9999, ptr %459, align 4, !tbaa !17
  br label %1290

460:                                              ; preds = %179
  %461 = icmp ult i32 %1, 1101
  store i32 %1, ptr %0, align 8, !tbaa !5
  %462 = getelementptr inbounds i8, ptr %0, i64 4
  store i32 32, ptr %462, align 4, !tbaa !13
  %463 = getelementptr inbounds i8, ptr %0, i64 44
  store i32 %3, ptr %463, align 4, !tbaa !14
  %464 = getelementptr inbounds i8, ptr %0, i64 84
  br i1 %461, label %465, label %829

465:                                              ; preds = %460
  store i8 121, ptr %464, align 4, !tbaa !15
  %466 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %467 = icmp eq i32 %466, 0
  br i1 %467, label %468, label %501

468:                                              ; preds = %465
  %469 = getelementptr inbounds i8, ptr %0, i64 8
  store <4 x i32> <i32 4, i32 8, i32 8, i32 8>, ptr %469, align 8, !tbaa !16
  %470 = getelementptr inbounds i8, ptr %2, i64 24
  %471 = load i32, ptr %470, align 1, !tbaa !18
  %472 = and i32 %471, 8
  %.not1055 = icmp eq i32 %472, 0
  br i1 %.not1055, label %479, label %473

473:                                              ; preds = %468
  %474 = getelementptr inbounds i8, ptr %2, i64 12
  %475 = load i32, ptr %474, align 1, !tbaa !21
  %476 = and i32 %475, 3
  %477 = icmp eq i32 %476, 0
  br i1 %477, label %479, label %478

478:                                              ; preds = %473
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2564, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

479:                                              ; preds = %468, %473
  %.sink1204 = phi i32 [ 545592872, %473 ], [ 545592848, %468 ]
  %480 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1204, ptr %480, align 8, !tbaa !22
  %481 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 545598233, ptr %481, align 4, !tbaa !26
  %482 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %482, align 8, !tbaa !27
  %483 = and i32 %471, 16
  %.not1056 = icmp eq i32 %483, 0
  br i1 %.not1056, label %496, label %484

484:                                              ; preds = %479
  %485 = getelementptr inbounds i8, ptr %2, i64 20
  %486 = load i32, ptr %485, align 1, !tbaa !23
  %487 = and i32 %486, 3
  %488 = icmp eq i32 %487, 0
  br i1 %488, label %490, label %489

489:                                              ; preds = %484
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2572, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

490:                                              ; preds = %484
  %491 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 545592872, ptr %491, align 4, !tbaa !24
  %492 = icmp eq i32 %3, 0
  %493 = getelementptr inbounds i8, ptr %0, i64 40
  br i1 %492, label %494, label %495

494:                                              ; preds = %490
  store i32 545592875, ptr %493, align 8, !tbaa !25
  br label %499

495:                                              ; preds = %490
  store i32 545592872, ptr %493, align 8, !tbaa !25
  br label %499

496:                                              ; preds = %479
  %497 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 545592848, ptr %497, align 4, !tbaa !24
  %498 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 545592848, ptr %498, align 8, !tbaa !25
  br label %499

499:                                              ; preds = %494, %495, %496
  %500 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %500, align 4, !tbaa !17
  br label %1290

501:                                              ; preds = %465
  %502 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %503 = icmp eq i32 %502, 1
  br i1 %503, label %504, label %544

504:                                              ; preds = %501
  %505 = getelementptr inbounds i8, ptr %0, i64 8
  %506 = getelementptr inbounds i8, ptr %0, i64 20
  store <4 x i32> <i32 8, i32 4, i32 4, i32 4>, ptr %505, align 8, !tbaa !16
  %507 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %508 = icmp eq i32 %507, 4
  br i1 %508, label %512, label %509

509:                                              ; preds = %504
  %510 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %511 = icmp eq i32 %510, 5
  br i1 %511, label %512, label %513

512:                                              ; preds = %509, %504
  store i32 1, ptr %506, align 4, !tbaa !31
  br label %513

513:                                              ; preds = %512, %509
  %514 = getelementptr inbounds i8, ptr %2, i64 24
  %515 = load i32, ptr %514, align 1, !tbaa !18
  %516 = and i32 %515, 8
  %.not1053 = icmp eq i32 %516, 0
  br i1 %.not1053, label %524, label %517

517:                                              ; preds = %513
  %518 = getelementptr inbounds i8, ptr %2, i64 12
  %519 = load i32, ptr %518, align 1, !tbaa !21
  %520 = load i32, ptr %505, align 8, !tbaa !28
  %521 = urem i32 %519, %520
  %522 = icmp eq i32 %521, 0
  br i1 %522, label %524, label %523

523:                                              ; preds = %517
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2596, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

524:                                              ; preds = %513, %517
  %.sink1206 = phi i32 [ 537138728, %517 ], [ 537138704, %513 ]
  %525 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1206, ptr %525, align 8, !tbaa !22
  %526 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209368, ptr %526, align 4, !tbaa !26
  %527 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %527, align 8, !tbaa !27
  %528 = and i32 %515, 16
  %.not1054 = icmp eq i32 %528, 0
  br i1 %.not1054, label %539, label %529

529:                                              ; preds = %524
  %530 = getelementptr inbounds i8, ptr %2, i64 20
  %531 = load i32, ptr %530, align 1, !tbaa !23
  %532 = load i32, ptr %505, align 8, !tbaa !28
  %533 = urem i32 %531, %532
  %534 = icmp eq i32 %533, 0
  br i1 %534, label %536, label %535

535:                                              ; preds = %529
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2604, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

536:                                              ; preds = %529
  %537 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138728, ptr %537, align 4, !tbaa !24
  %538 = icmp eq i32 %3, 0
  br i1 %538, label %.sink.split, label %542

539:                                              ; preds = %524
  %540 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138704, ptr %540, align 4, !tbaa !24
  br label %.sink.split

.sink.split:                                      ; preds = %536, %539
  %.sink1208 = phi i32 [ 537138704, %539 ], [ 537138731, %536 ]
  %541 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1208, ptr %541, align 8, !tbaa !25
  br label %542

542:                                              ; preds = %.sink.split, %536
  %543 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %543, align 4, !tbaa !17
  br label %1290

544:                                              ; preds = %501
  %545 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %546 = icmp eq i32 %545, 10
  br i1 %546, label %547, label %577

547:                                              ; preds = %544
  %548 = getelementptr inbounds i8, ptr %0, i64 8
  store <4 x i32> <i32 8, i32 2, i32 2, i32 4>, ptr %548, align 8, !tbaa !16
  %549 = getelementptr inbounds i8, ptr %2, i64 24
  %550 = load i32, ptr %549, align 1, !tbaa !18
  %551 = and i32 %550, 8
  %.not1051 = icmp eq i32 %551, 0
  br i1 %.not1051, label %558, label %552

552:                                              ; preds = %547
  %553 = getelementptr inbounds i8, ptr %2, i64 12
  %554 = load i32, ptr %553, align 1, !tbaa !21
  %555 = and i32 %554, 7
  %556 = icmp eq i32 %555, 0
  br i1 %556, label %558, label %557

557:                                              ; preds = %552
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2625, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

558:                                              ; preds = %547, %552
  %.sink1210 = phi i32 [ 537138728, %552 ], [ 537138704, %547 ]
  %559 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1210, ptr %559, align 8, !tbaa !22
  %560 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209432, ptr %560, align 4, !tbaa !26
  %561 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %561, align 8, !tbaa !27
  %562 = and i32 %550, 16
  %.not1052 = icmp eq i32 %562, 0
  br i1 %.not1052, label %572, label %563

563:                                              ; preds = %558
  %564 = getelementptr inbounds i8, ptr %2, i64 20
  %565 = load i32, ptr %564, align 1, !tbaa !23
  %566 = and i32 %565, 7
  %567 = icmp eq i32 %566, 0
  br i1 %567, label %569, label %568

568:                                              ; preds = %563
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2633, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

569:                                              ; preds = %563
  %570 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138728, ptr %570, align 4, !tbaa !24
  %571 = icmp eq i32 %3, 0
  br i1 %571, label %.sink.split1212, label %575

572:                                              ; preds = %558
  %573 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138704, ptr %573, align 4, !tbaa !24
  br label %.sink.split1212

.sink.split1212:                                  ; preds = %569, %572
  %.sink1213 = phi i32 [ 537138704, %572 ], [ 537138731, %569 ]
  %574 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1213, ptr %574, align 8, !tbaa !25
  br label %575

575:                                              ; preds = %.sink.split1212, %569
  %576 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %576, align 4, !tbaa !17
  br label %1290

577:                                              ; preds = %544
  %578 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %579 = icmp eq i32 %578, 12
  br i1 %579, label %580, label %610

580:                                              ; preds = %577
  %581 = getelementptr inbounds i8, ptr %0, i64 8
  store <4 x i32> <i32 8, i32 1, i32 1, i32 4>, ptr %581, align 8, !tbaa !16
  %582 = getelementptr inbounds i8, ptr %2, i64 24
  %583 = load i32, ptr %582, align 1, !tbaa !18
  %584 = and i32 %583, 8
  %.not1049 = icmp eq i32 %584, 0
  br i1 %.not1049, label %591, label %585

585:                                              ; preds = %580
  %586 = getelementptr inbounds i8, ptr %2, i64 12
  %587 = load i32, ptr %586, align 1, !tbaa !21
  %588 = and i32 %587, 7
  %589 = icmp eq i32 %588, 0
  br i1 %589, label %591, label %590

590:                                              ; preds = %585
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2654, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

591:                                              ; preds = %580, %585
  %.sink1215 = phi i32 [ 537138728, %585 ], [ 537138704, %580 ]
  %592 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1215, ptr %592, align 8, !tbaa !22
  %593 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209432, ptr %593, align 4, !tbaa !26
  %594 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %594, align 8, !tbaa !27
  %595 = and i32 %583, 16
  %.not1050 = icmp eq i32 %595, 0
  br i1 %.not1050, label %605, label %596

596:                                              ; preds = %591
  %597 = getelementptr inbounds i8, ptr %2, i64 20
  %598 = load i32, ptr %597, align 1, !tbaa !23
  %599 = and i32 %598, 7
  %600 = icmp eq i32 %599, 0
  br i1 %600, label %602, label %601

601:                                              ; preds = %596
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2662, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

602:                                              ; preds = %596
  %603 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138728, ptr %603, align 4, !tbaa !24
  %604 = icmp eq i32 %3, 0
  br i1 %604, label %.sink.split1217, label %608

605:                                              ; preds = %591
  %606 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138704, ptr %606, align 4, !tbaa !24
  br label %.sink.split1217

.sink.split1217:                                  ; preds = %602, %605
  %.sink1218 = phi i32 [ 537138704, %605 ], [ 537138731, %602 ]
  %607 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1218, ptr %607, align 8, !tbaa !25
  br label %608

608:                                              ; preds = %.sink.split1217, %602
  %609 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %609, align 4, !tbaa !17
  br label %1290

610:                                              ; preds = %577
  %611 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %612 = icmp eq i32 %611, 3
  br i1 %612, label %613, label %636

613:                                              ; preds = %610
  %614 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %615 = icmp eq i32 %614, 3
  br i1 %615, label %619, label %616

616:                                              ; preds = %613
  %617 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %618 = icmp eq i32 %617, 1
  br i1 %618, label %619, label %636

619:                                              ; preds = %616, %613
  %620 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 8, ptr %620, align 8, !tbaa !28
  %621 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 2, ptr %621, align 4, !tbaa !29
  %622 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 2, ptr %622, align 8, !tbaa !30
  %623 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %624 = icmp eq i32 %623, 3
  br i1 %624, label %.sink.split1220, label %625

625:                                              ; preds = %619
  %626 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %627 = icmp eq i32 %626, 1
  br i1 %627, label %.sink.split1220, label %631

.sink.split1220:                                  ; preds = %625, %619
  %.sink1225 = phi i32 [ 2, %619 ], [ 4, %625 ]
  %.sink1223 = phi i32 [ -528017809, %619 ], [ 537138704, %625 ]
  %628 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %.sink1225, ptr %628, align 4, !tbaa !31
  %629 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 %.sink1223, ptr %629, align 4, !tbaa !24
  %630 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1223, ptr %630, align 8, !tbaa !25
  br label %631

631:                                              ; preds = %.sink.split1220, %625
  store i8 121, ptr %464, align 4, !tbaa !15
  %632 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 -528017809, ptr %632, align 8, !tbaa !22
  %633 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209209, ptr %633, align 4, !tbaa !26
  %634 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %634, align 8, !tbaa !27
  %635 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %635, align 4, !tbaa !17
  br label %1290

636:                                              ; preds = %616, %610
  %637 = tail call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %181) #4
  %638 = icmp eq i32 %637, 12
  br i1 %638, label %642, label %639

639:                                              ; preds = %636
  %640 = tail call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %181) #4
  %641 = icmp eq i32 %640, 4
  br i1 %641, label %642, label %664

642:                                              ; preds = %639, %636
  %643 = tail call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %181) #4
  %644 = icmp eq i32 %643, 3
  br i1 %644, label %645, label %664

645:                                              ; preds = %642
  %646 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %647 = icmp eq i32 %646, 3
  br i1 %647, label %651, label %648

648:                                              ; preds = %645
  %649 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %650 = icmp eq i32 %649, 1
  br i1 %650, label %651, label %664

651:                                              ; preds = %648, %645
  %652 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 8, ptr %652, align 8, !tbaa !28
  %653 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 1, ptr %653, align 4, !tbaa !29
  %654 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 2, ptr %654, align 8, !tbaa !30
  %655 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %656 = icmp eq i32 %655, 3
  %spec.select1227 = select i1 %656, i32 2, i32 4
  %spec.select1228 = select i1 %656, i32 -528017809, i32 537138704
  %657 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %spec.select1227, ptr %657, align 4
  %658 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 %spec.select1228, ptr %658, align 4
  %659 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %spec.select1228, ptr %659, align 8
  store i8 121, ptr %464, align 4, !tbaa !15
  %660 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 -536406417, ptr %660, align 8, !tbaa !22
  %661 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209209, ptr %661, align 4, !tbaa !26
  %662 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %662, align 8, !tbaa !27
  %663 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %663, align 4, !tbaa !17
  br label %1290

664:                                              ; preds = %648, %642, %639
  %665 = tail call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %181) #4
  %666 = icmp eq i32 %665, 12
  br i1 %666, label %667, label %690

667:                                              ; preds = %664
  %668 = tail call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %181) #4
  %669 = icmp eq i32 %668, 2
  br i1 %669, label %670, label %690

670:                                              ; preds = %667
  %671 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %672 = icmp eq i32 %671, 2
  br i1 %672, label %676, label %673

673:                                              ; preds = %670
  %674 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %675 = icmp eq i32 %674, 1
  br i1 %675, label %676, label %690

676:                                              ; preds = %673, %670
  %677 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 8, ptr %677, align 8, !tbaa !28
  %678 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 1, ptr %678, align 4, !tbaa !29
  %679 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 2, ptr %679, align 8, !tbaa !30
  %680 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %681 = icmp eq i32 %680, 2
  %spec.select1229 = select i1 %681, i32 2, i32 4
  %spec.select1230 = select i1 %681, i32 -528017809, i32 537138704
  %682 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %spec.select1229, ptr %682, align 4
  %683 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 %spec.select1230, ptr %683, align 4
  %684 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %spec.select1230, ptr %684, align 8
  store i8 121, ptr %464, align 4, !tbaa !15
  %685 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 -536406417, ptr %685, align 8, !tbaa !22
  %686 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209432, ptr %686, align 4, !tbaa !26
  %687 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %687, align 8, !tbaa !27
  %688 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %688, align 4, !tbaa !17
  %689 = icmp eq i32 %1, 1053
  %.sink1099 = select i1 %689, i32 -268032430, i32 805643960
  br label %1290

690:                                              ; preds = %673, %667, %664
  %691 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %692 = icmp eq i32 %691, 2
  br i1 %692, label %693, label %740

693:                                              ; preds = %690
  %694 = getelementptr inbounds i8, ptr %2, i64 24
  %695 = load i32, ptr %694, align 1, !tbaa !18
  %696 = and i32 %695, 2048
  %.not1041 = icmp eq i32 %696, 0
  br i1 %.not1041, label %740, label %697

697:                                              ; preds = %693
  %698 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 8, ptr %698, align 8, !tbaa !28
  %699 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 2, ptr %699, align 4, !tbaa !29
  %700 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 2, ptr %700, align 8, !tbaa !30
  %701 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %702 = icmp eq i32 %701, 2
  br i1 %702, label %709, label %703

703:                                              ; preds = %697
  %704 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %705 = icmp eq i32 %704, 4
  br i1 %705, label %709, label %706

706:                                              ; preds = %703
  %707 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %708 = icmp eq i32 %707, 5
  %spec.select1318 = select i1 %708, i32 1, i32 4
  br label %709

709:                                              ; preds = %706, %703, %697
  %.sink1231 = phi i32 [ 2, %697 ], [ 1, %703 ], [ %spec.select1318, %706 ]
  %710 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %.sink1231, ptr %710, align 4, !tbaa !31
  %711 = load i32, ptr %694, align 1, !tbaa !18
  %712 = and i32 %711, 8
  %.not1047 = icmp eq i32 %712, 0
  br i1 %.not1047, label %720, label %713

713:                                              ; preds = %709
  %714 = getelementptr inbounds i8, ptr %2, i64 12
  %715 = load i32, ptr %714, align 1, !tbaa !21
  %716 = load i32, ptr %698, align 8, !tbaa !28
  %717 = urem i32 %715, %716
  %718 = icmp eq i32 %717, 0
  br i1 %718, label %720, label %719

719:                                              ; preds = %713
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2756, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

720:                                              ; preds = %709, %713
  %.sink1233 = phi i32 [ 537138728, %713 ], [ 537138704, %709 ]
  %721 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1233, ptr %721, align 8, !tbaa !22
  %722 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209432, ptr %722, align 4, !tbaa !26
  %723 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %723, align 8, !tbaa !27
  %724 = and i32 %711, 16
  %.not1048 = icmp eq i32 %724, 0
  br i1 %.not1048, label %735, label %725

725:                                              ; preds = %720
  %726 = getelementptr inbounds i8, ptr %2, i64 20
  %727 = load i32, ptr %726, align 1, !tbaa !23
  %728 = load i32, ptr %698, align 8, !tbaa !28
  %729 = urem i32 %727, %728
  %730 = icmp eq i32 %729, 0
  br i1 %730, label %732, label %731

731:                                              ; preds = %725
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2764, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

732:                                              ; preds = %725
  %733 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138728, ptr %733, align 4, !tbaa !24
  %734 = icmp eq i32 %3, 0
  br i1 %734, label %.sink.split1235, label %738

735:                                              ; preds = %720
  %736 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138704, ptr %736, align 4, !tbaa !24
  br label %.sink.split1235

.sink.split1235:                                  ; preds = %732, %735
  %.sink1236 = phi i32 [ 537138704, %735 ], [ 537138731, %732 ]
  %737 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1236, ptr %737, align 8, !tbaa !25
  br label %738

738:                                              ; preds = %.sink.split1235, %732
  %739 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %739, align 4, !tbaa !17
  br label %1290

740:                                              ; preds = %693, %690
  %741 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %742 = icmp eq i32 %741, 2
  br i1 %742, label %743, label %791

743:                                              ; preds = %740
  %744 = getelementptr inbounds i8, ptr %2, i64 24
  %745 = load i32, ptr %744, align 1, !tbaa !18
  %746 = and i32 %745, 2048
  %747 = icmp eq i32 %746, 0
  br i1 %747, label %748, label %791

748:                                              ; preds = %743
  %749 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 8, ptr %749, align 8, !tbaa !28
  %750 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 2, ptr %750, align 4, !tbaa !29
  %751 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 2, ptr %751, align 8, !tbaa !30
  %752 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %753 = icmp eq i32 %752, 2
  br i1 %753, label %760, label %754

754:                                              ; preds = %748
  %755 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %756 = icmp eq i32 %755, 4
  br i1 %756, label %760, label %757

757:                                              ; preds = %754
  %758 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %759 = icmp eq i32 %758, 5
  %spec.select1319 = select i1 %759, i32 1, i32 4
  br label %760

760:                                              ; preds = %757, %754, %748
  %.sink1238 = phi i32 [ 2, %748 ], [ 1, %754 ], [ %spec.select1319, %757 ]
  %761 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %.sink1238, ptr %761, align 4, !tbaa !31
  %762 = load i32, ptr %744, align 1, !tbaa !18
  %763 = and i32 %762, 8
  %.not1045 = icmp eq i32 %763, 0
  br i1 %.not1045, label %771, label %764

764:                                              ; preds = %760
  %765 = getelementptr inbounds i8, ptr %2, i64 12
  %766 = load i32, ptr %765, align 1, !tbaa !21
  %767 = load i32, ptr %749, align 8, !tbaa !28
  %768 = urem i32 %766, %767
  %769 = icmp eq i32 %768, 0
  br i1 %769, label %771, label %770

770:                                              ; preds = %764
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2792, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

771:                                              ; preds = %760, %764
  %.sink1240 = phi i32 [ 537138728, %764 ], [ 537138704, %760 ]
  %772 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1240, ptr %772, align 8, !tbaa !22
  %773 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209209, ptr %773, align 4, !tbaa !26
  %774 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %774, align 8, !tbaa !27
  %775 = and i32 %762, 16
  %.not1046 = icmp eq i32 %775, 0
  br i1 %.not1046, label %786, label %776

776:                                              ; preds = %771
  %777 = getelementptr inbounds i8, ptr %2, i64 20
  %778 = load i32, ptr %777, align 1, !tbaa !23
  %779 = load i32, ptr %749, align 8, !tbaa !28
  %780 = urem i32 %778, %779
  %781 = icmp eq i32 %780, 0
  br i1 %781, label %783, label %782

782:                                              ; preds = %776
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2800, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

783:                                              ; preds = %776
  %784 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138728, ptr %784, align 4, !tbaa !24
  %785 = icmp eq i32 %3, 0
  br i1 %785, label %.sink.split1242, label %789

786:                                              ; preds = %771
  %787 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138704, ptr %787, align 4, !tbaa !24
  br label %.sink.split1242

.sink.split1242:                                  ; preds = %783, %786
  %.sink1243 = phi i32 [ 537138704, %786 ], [ 537138731, %783 ]
  %788 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1243, ptr %788, align 8, !tbaa !25
  br label %789

789:                                              ; preds = %.sink.split1242, %783
  %790 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %790, align 4, !tbaa !17
  br label %1290

791:                                              ; preds = %743, %740
  %792 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %793 = icmp eq i32 %792, 4
  br i1 %793, label %797, label %794

794:                                              ; preds = %791
  %795 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %796 = icmp eq i32 %795, 5
  br i1 %796, label %797, label %825

797:                                              ; preds = %794, %791
  %798 = getelementptr inbounds i8, ptr %2, i64 24
  %799 = load i32, ptr %798, align 1, !tbaa !18
  %800 = and i32 %799, 2048
  %.not1042 = icmp eq i32 %800, 0
  br i1 %.not1042, label %825, label %801

801:                                              ; preds = %797
  %802 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 8, ptr %802, align 8, !tbaa !28
  %803 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 1, ptr %803, align 4, !tbaa !29
  %804 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 1, ptr %804, align 8, !tbaa !30
  %805 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %806 = icmp eq i32 %805, 4
  br i1 %806, label %810, label %807

807:                                              ; preds = %801
  %808 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %809 = icmp eq i32 %808, 5
  %spec.select1320 = select i1 %809, i32 1, i32 4
  br label %810

810:                                              ; preds = %807, %801
  %.sink1245 = phi i32 [ 1, %801 ], [ %spec.select1320, %807 ]
  %811 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %.sink1245, ptr %811, align 4, !tbaa !31
  %812 = load i32, ptr %798, align 1, !tbaa !18
  %813 = and i32 %812, 8
  %.not1043 = icmp eq i32 %813, 0
  %.sink1100 = select i1 %.not1043, i32 537138704, i32 537138728
  %814 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1100, ptr %814, align 8
  %815 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537208952, ptr %815, align 4, !tbaa !26
  %816 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %816, align 8, !tbaa !27
  %817 = and i32 %812, 16
  %.not1044 = icmp eq i32 %817, 0
  %818 = getelementptr inbounds i8, ptr %0, i64 36
  br i1 %.not1044, label %821, label %819

819:                                              ; preds = %810
  store i32 537138728, ptr %818, align 4, !tbaa !24
  %820 = icmp eq i32 %3, 0
  br i1 %820, label %.sink.split1247, label %823

821:                                              ; preds = %810
  store i32 537138704, ptr %818, align 4, !tbaa !24
  br label %.sink.split1247

.sink.split1247:                                  ; preds = %819, %821
  %.sink1248 = phi i32 [ 537138704, %821 ], [ 537138731, %819 ]
  %822 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1248, ptr %822, align 8, !tbaa !25
  br label %823

823:                                              ; preds = %.sink.split1247, %819
  %824 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %824, align 4, !tbaa !17
  br label %1290

825:                                              ; preds = %797, %794
  store i32 1, ptr %0, align 8, !tbaa !5
  store i32 0, ptr %462, align 4, !tbaa !13
  store i32 0, ptr %463, align 4, !tbaa !14
  store i8 97, ptr %464, align 4, !tbaa !15
  %826 = getelementptr inbounds i8, ptr %0, i64 8
  %827 = getelementptr inbounds i8, ptr %0, i64 24
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %826, i8 0, i64 16, i1 false)
  store <4 x i32> <i32 9999, i32 9999, i32 9999, i32 9999>, ptr %827, align 8, !tbaa !16
  %828 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 9999, ptr %828, align 4, !tbaa !17
  br label %1290

829:                                              ; preds = %460
  store i8 122, ptr %464, align 4, !tbaa !15
  %830 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %831 = icmp eq i32 %830, 0
  br i1 %831, label %832, label %865

832:                                              ; preds = %829
  %833 = getelementptr inbounds i8, ptr %0, i64 8
  store <4 x i32> <i32 8, i32 8, i32 8, i32 8>, ptr %833, align 8, !tbaa !16
  %834 = getelementptr inbounds i8, ptr %2, i64 24
  %835 = load i32, ptr %834, align 1, !tbaa !18
  %836 = and i32 %835, 8
  %.not1039 = icmp eq i32 %836, 0
  br i1 %.not1039, label %843, label %837

837:                                              ; preds = %832
  %838 = getelementptr inbounds i8, ptr %2, i64 12
  %839 = load i32, ptr %838, align 1, !tbaa !21
  %840 = and i32 %839, 7
  %841 = icmp eq i32 %840, 0
  br i1 %841, label %843, label %842

842:                                              ; preds = %837
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2876, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

843:                                              ; preds = %832, %837
  %.sink1250 = phi i32 [ 545592872, %837 ], [ 545592848, %832 ]
  %844 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1250, ptr %844, align 8, !tbaa !22
  %845 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 545598233, ptr %845, align 4, !tbaa !26
  %846 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %846, align 8, !tbaa !27
  %847 = and i32 %835, 16
  %.not1040 = icmp eq i32 %847, 0
  br i1 %.not1040, label %860, label %848

848:                                              ; preds = %843
  %849 = getelementptr inbounds i8, ptr %2, i64 20
  %850 = load i32, ptr %849, align 1, !tbaa !23
  %851 = and i32 %850, 7
  %852 = icmp eq i32 %851, 0
  br i1 %852, label %854, label %853

853:                                              ; preds = %848
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2884, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

854:                                              ; preds = %848
  %855 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 545592872, ptr %855, align 4, !tbaa !24
  %856 = icmp eq i32 %3, 0
  %857 = getelementptr inbounds i8, ptr %0, i64 40
  br i1 %856, label %858, label %859

858:                                              ; preds = %854
  store i32 545592875, ptr %857, align 8, !tbaa !25
  br label %863

859:                                              ; preds = %854
  store i32 545592872, ptr %857, align 8, !tbaa !25
  br label %863

860:                                              ; preds = %843
  %861 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 545592848, ptr %861, align 4, !tbaa !24
  %862 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 545592848, ptr %862, align 8, !tbaa !25
  br label %863

863:                                              ; preds = %858, %859, %860
  %864 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %864, align 4, !tbaa !17
  br label %1290

865:                                              ; preds = %829
  %866 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %867 = icmp eq i32 %866, 1
  br i1 %867, label %868, label %908

868:                                              ; preds = %865
  %869 = getelementptr inbounds i8, ptr %0, i64 8
  %870 = getelementptr inbounds i8, ptr %0, i64 20
  store <4 x i32> <i32 16, i32 4, i32 4, i32 4>, ptr %869, align 8, !tbaa !16
  %871 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %872 = icmp eq i32 %871, 4
  br i1 %872, label %876, label %873

873:                                              ; preds = %868
  %874 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %875 = icmp eq i32 %874, 5
  br i1 %875, label %876, label %877

876:                                              ; preds = %873, %868
  store i32 1, ptr %870, align 4, !tbaa !31
  br label %877

877:                                              ; preds = %876, %873
  %878 = getelementptr inbounds i8, ptr %2, i64 24
  %879 = load i32, ptr %878, align 1, !tbaa !18
  %880 = and i32 %879, 8
  %.not1037 = icmp eq i32 %880, 0
  br i1 %.not1037, label %888, label %881

881:                                              ; preds = %877
  %882 = getelementptr inbounds i8, ptr %2, i64 12
  %883 = load i32, ptr %882, align 1, !tbaa !21
  %884 = load i32, ptr %869, align 8, !tbaa !28
  %885 = urem i32 %883, %884
  %886 = icmp eq i32 %885, 0
  br i1 %886, label %888, label %887

887:                                              ; preds = %881
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2908, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

888:                                              ; preds = %877, %881
  %.sink1252 = phi i32 [ 537138728, %881 ], [ 537138704, %877 ]
  %889 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1252, ptr %889, align 8, !tbaa !22
  %890 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209368, ptr %890, align 4, !tbaa !26
  %891 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %891, align 8, !tbaa !27
  %892 = and i32 %879, 16
  %.not1038 = icmp eq i32 %892, 0
  br i1 %.not1038, label %903, label %893

893:                                              ; preds = %888
  %894 = getelementptr inbounds i8, ptr %2, i64 20
  %895 = load i32, ptr %894, align 1, !tbaa !23
  %896 = load i32, ptr %869, align 8, !tbaa !28
  %897 = urem i32 %895, %896
  %898 = icmp eq i32 %897, 0
  br i1 %898, label %900, label %899

899:                                              ; preds = %893
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2916, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

900:                                              ; preds = %893
  %901 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138728, ptr %901, align 4, !tbaa !24
  %902 = icmp eq i32 %3, 0
  br i1 %902, label %.sink.split1254, label %906

903:                                              ; preds = %888
  %904 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138704, ptr %904, align 4, !tbaa !24
  br label %.sink.split1254

.sink.split1254:                                  ; preds = %900, %903
  %.sink1255 = phi i32 [ 537138704, %903 ], [ 537138731, %900 ]
  %905 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1255, ptr %905, align 8, !tbaa !25
  br label %906

906:                                              ; preds = %.sink.split1254, %900
  %907 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %907, align 4, !tbaa !17
  br label %1290

908:                                              ; preds = %865
  %909 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %910 = icmp eq i32 %909, 10
  br i1 %910, label %911, label %941

911:                                              ; preds = %908
  %912 = getelementptr inbounds i8, ptr %0, i64 8
  store <4 x i32> <i32 16, i32 2, i32 2, i32 4>, ptr %912, align 8, !tbaa !16
  %913 = getelementptr inbounds i8, ptr %2, i64 24
  %914 = load i32, ptr %913, align 1, !tbaa !18
  %915 = and i32 %914, 8
  %.not1035 = icmp eq i32 %915, 0
  br i1 %.not1035, label %922, label %916

916:                                              ; preds = %911
  %917 = getelementptr inbounds i8, ptr %2, i64 12
  %918 = load i32, ptr %917, align 1, !tbaa !21
  %919 = and i32 %918, 15
  %920 = icmp eq i32 %919, 0
  br i1 %920, label %922, label %921

921:                                              ; preds = %916
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2937, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

922:                                              ; preds = %911, %916
  %.sink1257 = phi i32 [ 537138728, %916 ], [ 537138704, %911 ]
  %923 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1257, ptr %923, align 8, !tbaa !22
  %924 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209432, ptr %924, align 4, !tbaa !26
  %925 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %925, align 8, !tbaa !27
  %926 = and i32 %914, 16
  %.not1036 = icmp eq i32 %926, 0
  br i1 %.not1036, label %936, label %927

927:                                              ; preds = %922
  %928 = getelementptr inbounds i8, ptr %2, i64 20
  %929 = load i32, ptr %928, align 1, !tbaa !23
  %930 = and i32 %929, 15
  %931 = icmp eq i32 %930, 0
  br i1 %931, label %933, label %932

932:                                              ; preds = %927
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2945, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

933:                                              ; preds = %927
  %934 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138728, ptr %934, align 4, !tbaa !24
  %935 = icmp eq i32 %3, 0
  br i1 %935, label %.sink.split1259, label %939

936:                                              ; preds = %922
  %937 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138704, ptr %937, align 4, !tbaa !24
  br label %.sink.split1259

.sink.split1259:                                  ; preds = %933, %936
  %.sink1260 = phi i32 [ 537138704, %936 ], [ 537138731, %933 ]
  %938 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1260, ptr %938, align 8, !tbaa !25
  br label %939

939:                                              ; preds = %.sink.split1259, %933
  %940 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %940, align 4, !tbaa !17
  br label %1290

941:                                              ; preds = %908
  %942 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %943 = icmp eq i32 %942, 12
  br i1 %943, label %944, label %974

944:                                              ; preds = %941
  %945 = getelementptr inbounds i8, ptr %0, i64 8
  store <4 x i32> <i32 16, i32 1, i32 1, i32 4>, ptr %945, align 8, !tbaa !16
  %946 = getelementptr inbounds i8, ptr %2, i64 24
  %947 = load i32, ptr %946, align 1, !tbaa !18
  %948 = and i32 %947, 8
  %.not1033 = icmp eq i32 %948, 0
  br i1 %.not1033, label %955, label %949

949:                                              ; preds = %944
  %950 = getelementptr inbounds i8, ptr %2, i64 12
  %951 = load i32, ptr %950, align 1, !tbaa !21
  %952 = and i32 %951, 15
  %953 = icmp eq i32 %952, 0
  br i1 %953, label %955, label %954

954:                                              ; preds = %949
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 2966, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

955:                                              ; preds = %944, %949
  %.sink1262 = phi i32 [ 537138728, %949 ], [ 537138704, %944 ]
  %956 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1262, ptr %956, align 8, !tbaa !22
  %957 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209432, ptr %957, align 4, !tbaa !26
  %958 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %958, align 8, !tbaa !27
  %959 = and i32 %947, 16
  %.not1034 = icmp eq i32 %959, 0
  br i1 %.not1034, label %969, label %960

960:                                              ; preds = %955
  %961 = getelementptr inbounds i8, ptr %2, i64 20
  %962 = load i32, ptr %961, align 1, !tbaa !23
  %963 = and i32 %962, 15
  %964 = icmp eq i32 %963, 0
  br i1 %964, label %966, label %965

965:                                              ; preds = %960
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 2974, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

966:                                              ; preds = %960
  %967 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138728, ptr %967, align 4, !tbaa !24
  %968 = icmp eq i32 %3, 0
  br i1 %968, label %.sink.split1264, label %972

969:                                              ; preds = %955
  %970 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138704, ptr %970, align 4, !tbaa !24
  br label %.sink.split1264

.sink.split1264:                                  ; preds = %966, %969
  %.sink1265 = phi i32 [ 537138704, %969 ], [ 537138731, %966 ]
  %971 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1265, ptr %971, align 8, !tbaa !25
  br label %972

972:                                              ; preds = %.sink.split1264, %966
  %973 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %973, align 4, !tbaa !17
  br label %1290

974:                                              ; preds = %941
  %975 = tail call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %181) #4
  %976 = icmp eq i32 %975, 12
  br i1 %976, label %977, label %1000

977:                                              ; preds = %974
  %978 = tail call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %181) #4
  %979 = icmp eq i32 %978, 2
  br i1 %979, label %980, label %1000

980:                                              ; preds = %977
  %981 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %982 = icmp eq i32 %981, 2
  br i1 %982, label %986, label %983

983:                                              ; preds = %980
  %984 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %985 = icmp eq i32 %984, 1
  br i1 %985, label %986, label %1000

986:                                              ; preds = %983, %980
  %987 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 16, ptr %987, align 8, !tbaa !28
  %988 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 1, ptr %988, align 4, !tbaa !29
  %989 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 2, ptr %989, align 8, !tbaa !30
  %990 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %991 = icmp eq i32 %990, 2
  %spec.select1267 = select i1 %991, i32 2, i32 4
  %spec.select1268 = select i1 %991, i32 -528017809, i32 537138704
  %992 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %spec.select1267, ptr %992, align 4
  %993 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 %spec.select1268, ptr %993, align 4
  %994 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %spec.select1268, ptr %994, align 8
  store i8 122, ptr %464, align 4, !tbaa !15
  %995 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 -536406417, ptr %995, align 8, !tbaa !22
  %996 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209432, ptr %996, align 4, !tbaa !26
  %997 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %997, align 8, !tbaa !27
  %998 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %998, align 4, !tbaa !17
  %999 = icmp ugt i32 %1, 1102
  %.sink1104 = select i1 %999, i32 -268032430, i32 805643960
  br label %1290

1000:                                             ; preds = %983, %977, %974
  %1001 = tail call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %181) #4
  %1002 = icmp eq i32 %1001, 4
  br i1 %1002, label %1006, label %1003

1003:                                             ; preds = %1000
  %1004 = tail call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %181) #4
  %1005 = icmp eq i32 %1004, 5
  br i1 %1005, label %1006, label %1029

1006:                                             ; preds = %1003, %1000
  %1007 = tail call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %181) #4
  %1008 = icmp eq i32 %1007, 2
  br i1 %1008, label %1009, label %1029

1009:                                             ; preds = %1006
  %1010 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1011 = icmp eq i32 %1010, 2
  br i1 %1011, label %1015, label %1012

1012:                                             ; preds = %1009
  %1013 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1014 = icmp eq i32 %1013, 1
  br i1 %1014, label %1015, label %1029

1015:                                             ; preds = %1012, %1009
  %1016 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 16, ptr %1016, align 8, !tbaa !28
  %1017 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 1, ptr %1017, align 4, !tbaa !29
  %1018 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 2, ptr %1018, align 8, !tbaa !30
  %1019 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1020 = icmp eq i32 %1019, 2
  %spec.select1269 = select i1 %1020, i32 2, i32 4
  %spec.select1270 = select i1 %1020, i32 -528017809, i32 537138704
  %1021 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %spec.select1269, ptr %1021, align 4
  %1022 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 %spec.select1270, ptr %1022, align 4
  %1023 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %spec.select1270, ptr %1023, align 8
  store i8 122, ptr %464, align 4, !tbaa !15
  %1024 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 -536406417, ptr %1024, align 8, !tbaa !22
  %1025 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209432, ptr %1025, align 4, !tbaa !26
  %1026 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %1026, align 8, !tbaa !27
  %1027 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %1027, align 4, !tbaa !17
  %1028 = icmp ugt i32 %1, 1102
  %.sink1108 = select i1 %1028, i32 -268032430, i32 805643960
  br label %1290

1029:                                             ; preds = %1012, %1006, %1003
  %1030 = tail call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %181) #4
  %1031 = icmp eq i32 %1030, 12
  br i1 %1031, label %1035, label %1032

1032:                                             ; preds = %1029
  %1033 = tail call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %181) #4
  %1034 = icmp eq i32 %1033, 4
  br i1 %1034, label %1035, label %1061

1035:                                             ; preds = %1032, %1029
  %1036 = tail call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %181) #4
  %1037 = icmp eq i32 %1036, 3
  br i1 %1037, label %1038, label %1061

1038:                                             ; preds = %1035
  %1039 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1040 = icmp eq i32 %1039, 3
  br i1 %1040, label %1044, label %1041

1041:                                             ; preds = %1038
  %1042 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1043 = icmp eq i32 %1042, 1
  br i1 %1043, label %1044, label %1061

1044:                                             ; preds = %1041, %1038
  %1045 = tail call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %181) #4
  %1046 = icmp eq i32 %1045, 3
  br i1 %1046, label %1047, label %1061

1047:                                             ; preds = %1044
  %1048 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 32, ptr %1048, align 8, !tbaa !28
  %1049 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 1, ptr %1049, align 4, !tbaa !29
  %1050 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 2, ptr %1050, align 8, !tbaa !30
  %1051 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1052 = icmp eq i32 %1051, 3
  %spec.select1271 = select i1 %1052, i32 2, i32 4
  %spec.select1272 = select i1 %1052, i32 -528017809, i32 537138704
  %1053 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %spec.select1271, ptr %1053, align 4
  %1054 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 %spec.select1272, ptr %1054, align 4
  %1055 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %spec.select1272, ptr %1055, align 8
  %1056 = icmp ugt i32 %1, 1103
  %.sink1114 = select i1 %1056, i32 32, i32 16
  %.sink1113 = select i1 %1056, i32 -251304264, i32 805643960
  %.sink1112 = select i1 %1056, i32 -251373992, i32 805574232
  store i32 %.sink1114, ptr %1048, align 8
  %1057 = getelementptr inbounds i8, ptr %0, i64 56
  store i32 %.sink1113, ptr %1057, align 8
  %1058 = getelementptr inbounds i8, ptr %0, i64 60
  store i32 %.sink1112, ptr %1058, align 4
  %1059 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 -536406417, ptr %1059, align 8, !tbaa !22
  %1060 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209209, ptr %1060, align 4, !tbaa !26
  br label %1290

1061:                                             ; preds = %1044, %1041, %1035, %1032
  %1062 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %1063 = icmp eq i32 %1062, 3
  br i1 %1063, label %1064, label %1091

1064:                                             ; preds = %1061
  %1065 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1066 = icmp eq i32 %1065, 3
  br i1 %1066, label %1070, label %1067

1067:                                             ; preds = %1064
  %1068 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1069 = icmp eq i32 %1068, 1
  br i1 %1069, label %1070, label %1091

1070:                                             ; preds = %1067, %1064
  %1071 = tail call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %181) #4
  %1072 = icmp eq i32 %1071, 3
  br i1 %1072, label %1073, label %1091

1073:                                             ; preds = %1070
  %1074 = icmp ugt i32 %1, 1103
  %.sink1117 = select i1 %1074, i32 32, i32 16
  %.sink1116 = select i1 %1074, i32 -251304264, i32 805643960
  %.sink1115 = select i1 %1074, i32 -251373992, i32 805574232
  %1075 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 %.sink1117, ptr %1075, align 8
  %1076 = getelementptr inbounds i8, ptr %0, i64 56
  store i32 %.sink1116, ptr %1076, align 8
  %1077 = getelementptr inbounds i8, ptr %0, i64 60
  store i32 %.sink1115, ptr %1077, align 4
  %1078 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 2, ptr %1078, align 4, !tbaa !29
  %1079 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 2, ptr %1079, align 8, !tbaa !30
  %1080 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1081 = icmp eq i32 %1080, 3
  br i1 %1081, label %.sink.split1273, label %1082

1082:                                             ; preds = %1073
  %1083 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1084 = icmp eq i32 %1083, 1
  br i1 %1084, label %.sink.split1273, label %1088

.sink.split1273:                                  ; preds = %1082, %1073
  %.sink1278 = phi i32 [ 2, %1073 ], [ 4, %1082 ]
  %.sink1276 = phi i32 [ -528017809, %1073 ], [ 537138704, %1082 ]
  %1085 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %.sink1278, ptr %1085, align 4, !tbaa !31
  %1086 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 %.sink1276, ptr %1086, align 4, !tbaa !24
  %1087 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1276, ptr %1087, align 8, !tbaa !25
  br label %1088

1088:                                             ; preds = %.sink.split1273, %1082
  %1089 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 -528017809, ptr %1089, align 8, !tbaa !22
  %1090 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209209, ptr %1090, align 4, !tbaa !26
  br label %1290

1091:                                             ; preds = %1070, %1067, %1061
  %1092 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %1093 = icmp eq i32 %1092, 3
  br i1 %1093, label %1094, label %1120

1094:                                             ; preds = %1091
  %1095 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1096 = icmp eq i32 %1095, 3
  br i1 %1096, label %1100, label %1097

1097:                                             ; preds = %1094
  %1098 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1099 = icmp eq i32 %1098, 1
  br i1 %1099, label %1100, label %1120

1100:                                             ; preds = %1097, %1094
  %1101 = tail call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %181) #4
  %1102 = icmp eq i32 %1101, 1
  br i1 %1102, label %1103, label %1120

1103:                                             ; preds = %1100
  %1104 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 16, ptr %1104, align 8, !tbaa !28
  %1105 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 2, ptr %1105, align 4, !tbaa !29
  %1106 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 2, ptr %1106, align 8, !tbaa !30
  %1107 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1108 = icmp eq i32 %1107, 3
  br i1 %1108, label %.sink.split1280, label %1109

1109:                                             ; preds = %1103
  %1110 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1111 = icmp eq i32 %1110, 1
  br i1 %1111, label %.sink.split1280, label %1115

.sink.split1280:                                  ; preds = %1109, %1103
  %.sink1285 = phi i32 [ 2, %1103 ], [ 4, %1109 ]
  %.sink1283 = phi i32 [ -528017809, %1103 ], [ 537138704, %1109 ]
  %1112 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %.sink1285, ptr %1112, align 4, !tbaa !31
  %1113 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 %.sink1283, ptr %1113, align 4, !tbaa !24
  %1114 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1283, ptr %1114, align 8, !tbaa !25
  br label %1115

1115:                                             ; preds = %.sink.split1280, %1109
  store i8 122, ptr %464, align 4, !tbaa !15
  %1116 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 -528017809, ptr %1116, align 8, !tbaa !22
  %1117 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209209, ptr %1117, align 4, !tbaa !26
  %1118 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %1118, align 8, !tbaa !27
  %1119 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %1119, align 4, !tbaa !17
  br label %1290

1120:                                             ; preds = %1100, %1097, %1091
  %1121 = tail call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %181) #4
  %1122 = icmp eq i32 %1121, 12
  br i1 %1122, label %1126, label %1123

1123:                                             ; preds = %1120
  %1124 = tail call i32 @LIBXSMM_GEMM_GETENUM_A_PREC(ptr noundef nonnull %181) #4
  %1125 = icmp eq i32 %1124, 4
  br i1 %1125, label %1126, label %1151

1126:                                             ; preds = %1123, %1120
  %1127 = tail call i32 @LIBXSMM_GEMM_GETENUM_B_PREC(ptr noundef nonnull %181) #4
  %1128 = icmp eq i32 %1127, 3
  br i1 %1128, label %1129, label %1151

1129:                                             ; preds = %1126
  %1130 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1131 = icmp eq i32 %1130, 3
  br i1 %1131, label %1135, label %1132

1132:                                             ; preds = %1129
  %1133 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1134 = icmp eq i32 %1133, 1
  br i1 %1134, label %1135, label %1151

1135:                                             ; preds = %1132, %1129
  %1136 = tail call i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef nonnull %181) #4
  %1137 = icmp eq i32 %1136, 1
  br i1 %1137, label %1138, label %1151

1138:                                             ; preds = %1135
  %1139 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 16, ptr %1139, align 8, !tbaa !28
  %1140 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 1, ptr %1140, align 4, !tbaa !29
  %1141 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 2, ptr %1141, align 8, !tbaa !30
  %1142 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1143 = icmp eq i32 %1142, 3
  %spec.select1287 = select i1 %1143, i32 2, i32 4
  %spec.select1288 = select i1 %1143, i32 -528017809, i32 537138704
  %1144 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %spec.select1287, ptr %1144, align 4
  %1145 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 %spec.select1288, ptr %1145, align 4
  %1146 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %spec.select1288, ptr %1146, align 8
  store i8 122, ptr %464, align 4, !tbaa !15
  %1147 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 -536406417, ptr %1147, align 8, !tbaa !22
  %1148 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209209, ptr %1148, align 4, !tbaa !26
  %1149 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %1149, align 8, !tbaa !27
  %1150 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %1150, align 4, !tbaa !17
  br label %1290

1151:                                             ; preds = %1135, %1132, %1126, %1123
  %1152 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %1153 = icmp eq i32 %1152, 2
  br i1 %1153, label %1154, label %1201

1154:                                             ; preds = %1151
  %1155 = getelementptr inbounds i8, ptr %2, i64 24
  %1156 = load i32, ptr %1155, align 1, !tbaa !18
  %1157 = and i32 %1156, 2048
  %.not = icmp eq i32 %1157, 0
  br i1 %.not, label %1201, label %1158

1158:                                             ; preds = %1154
  %1159 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 16, ptr %1159, align 8, !tbaa !28
  %1160 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 2, ptr %1160, align 4, !tbaa !29
  %1161 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 2, ptr %1161, align 8, !tbaa !30
  %1162 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1163 = icmp eq i32 %1162, 2
  br i1 %1163, label %1170, label %1164

1164:                                             ; preds = %1158
  %1165 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1166 = icmp eq i32 %1165, 4
  br i1 %1166, label %1170, label %1167

1167:                                             ; preds = %1164
  %1168 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1169 = icmp eq i32 %1168, 5
  %spec.select1321 = select i1 %1169, i32 1, i32 4
  br label %1170

1170:                                             ; preds = %1167, %1164, %1158
  %.sink1289 = phi i32 [ 2, %1158 ], [ 1, %1164 ], [ %spec.select1321, %1167 ]
  %1171 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %.sink1289, ptr %1171, align 4, !tbaa !31
  %1172 = load i32, ptr %1155, align 1, !tbaa !18
  %1173 = and i32 %1172, 8
  %.not1031 = icmp eq i32 %1173, 0
  br i1 %.not1031, label %1181, label %1174

1174:                                             ; preds = %1170
  %1175 = getelementptr inbounds i8, ptr %2, i64 12
  %1176 = load i32, ptr %1175, align 1, !tbaa !21
  %1177 = load i32, ptr %1159, align 8, !tbaa !28
  %1178 = urem i32 %1176, %1177
  %1179 = icmp eq i32 %1178, 0
  br i1 %1179, label %1181, label %1180

1180:                                             ; preds = %1174
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 3149, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

1181:                                             ; preds = %1170, %1174
  %.sink1291 = phi i32 [ 537138728, %1174 ], [ 537138704, %1170 ]
  %1182 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1291, ptr %1182, align 8, !tbaa !22
  %1183 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209432, ptr %1183, align 4, !tbaa !26
  %1184 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %1184, align 8, !tbaa !27
  %1185 = and i32 %1172, 16
  %.not1032 = icmp eq i32 %1185, 0
  br i1 %.not1032, label %1196, label %1186

1186:                                             ; preds = %1181
  %1187 = getelementptr inbounds i8, ptr %2, i64 20
  %1188 = load i32, ptr %1187, align 1, !tbaa !23
  %1189 = load i32, ptr %1159, align 8, !tbaa !28
  %1190 = urem i32 %1188, %1189
  %1191 = icmp eq i32 %1190, 0
  br i1 %1191, label %1193, label %1192

1192:                                             ; preds = %1186
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 3157, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

1193:                                             ; preds = %1186
  %1194 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138728, ptr %1194, align 4, !tbaa !24
  %1195 = icmp eq i32 %3, 0
  br i1 %1195, label %.sink.split1293, label %1199

1196:                                             ; preds = %1181
  %1197 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138704, ptr %1197, align 4, !tbaa !24
  br label %.sink.split1293

.sink.split1293:                                  ; preds = %1193, %1196
  %.sink1294 = phi i32 [ 537138704, %1196 ], [ 537138731, %1193 ]
  %1198 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1294, ptr %1198, align 8, !tbaa !25
  br label %1199

1199:                                             ; preds = %.sink.split1293, %1193
  %1200 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %1200, align 4, !tbaa !17
  br label %1290

1201:                                             ; preds = %1154, %1151
  %1202 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %1203 = icmp eq i32 %1202, 2
  br i1 %1203, label %1204, label %1252

1204:                                             ; preds = %1201
  %1205 = getelementptr inbounds i8, ptr %2, i64 24
  %1206 = load i32, ptr %1205, align 1, !tbaa !18
  %1207 = and i32 %1206, 2048
  %1208 = icmp eq i32 %1207, 0
  br i1 %1208, label %1209, label %1252

1209:                                             ; preds = %1204
  %1210 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 16, ptr %1210, align 8, !tbaa !28
  %1211 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 2, ptr %1211, align 4, !tbaa !29
  %1212 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 2, ptr %1212, align 8, !tbaa !30
  %1213 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1214 = icmp eq i32 %1213, 2
  br i1 %1214, label %1221, label %1215

1215:                                             ; preds = %1209
  %1216 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1217 = icmp eq i32 %1216, 4
  br i1 %1217, label %1221, label %1218

1218:                                             ; preds = %1215
  %1219 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1220 = icmp eq i32 %1219, 5
  %spec.select1322 = select i1 %1220, i32 1, i32 4
  br label %1221

1221:                                             ; preds = %1218, %1215, %1209
  %.sink1296 = phi i32 [ 2, %1209 ], [ 1, %1215 ], [ %spec.select1322, %1218 ]
  %1222 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %.sink1296, ptr %1222, align 4, !tbaa !31
  %1223 = load i32, ptr %1205, align 1, !tbaa !18
  %1224 = and i32 %1223, 8
  %.not1029 = icmp eq i32 %1224, 0
  br i1 %.not1029, label %1232, label %1225

1225:                                             ; preds = %1221
  %1226 = getelementptr inbounds i8, ptr %2, i64 12
  %1227 = load i32, ptr %1226, align 1, !tbaa !21
  %1228 = load i32, ptr %1210, align 8, !tbaa !28
  %1229 = urem i32 %1227, %1228
  %1230 = icmp eq i32 %1229, 0
  br i1 %1230, label %1232, label %1231

1231:                                             ; preds = %1225
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 3185, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

1232:                                             ; preds = %1221, %1225
  %1233 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 -528017809, ptr %1233, align 8, !tbaa !22
  %1234 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537209209, ptr %1234, align 4, !tbaa !26
  %1235 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %1235, align 8, !tbaa !27
  %1236 = and i32 %1223, 16
  %.not1030 = icmp eq i32 %1236, 0
  br i1 %.not1030, label %1247, label %1237

1237:                                             ; preds = %1232
  %1238 = getelementptr inbounds i8, ptr %2, i64 20
  %1239 = load i32, ptr %1238, align 1, !tbaa !23
  %1240 = load i32, ptr %1210, align 8, !tbaa !28
  %1241 = urem i32 %1239, %1240
  %1242 = icmp eq i32 %1241, 0
  br i1 %1242, label %1244, label %1243

1243:                                             ; preds = %1237
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 3193, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_init_micro_kernel_config) #5
  unreachable

1244:                                             ; preds = %1237
  %1245 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138728, ptr %1245, align 4, !tbaa !24
  %1246 = icmp eq i32 %3, 0
  br i1 %1246, label %.sink.split1299, label %1250

1247:                                             ; preds = %1232
  %1248 = getelementptr inbounds i8, ptr %0, i64 36
  store i32 537138704, ptr %1248, align 4, !tbaa !24
  br label %.sink.split1299

.sink.split1299:                                  ; preds = %1244, %1247
  %.sink1300 = phi i32 [ 537138704, %1247 ], [ 537138731, %1244 ]
  %1249 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1300, ptr %1249, align 8, !tbaa !25
  br label %1250

1250:                                             ; preds = %.sink.split1299, %1244
  %1251 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %1251, align 4, !tbaa !17
  br label %1290

1252:                                             ; preds = %1204, %1201
  %1253 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %1254 = icmp eq i32 %1253, 4
  br i1 %1254, label %1258, label %1255

1255:                                             ; preds = %1252
  %1256 = tail call i32 @LIBXSMM_GEMM_GETENUM_AB_COMMON_PREC(ptr noundef nonnull %181) #4
  %1257 = icmp eq i32 %1256, 5
  br i1 %1257, label %1258, label %1286

1258:                                             ; preds = %1255, %1252
  %1259 = getelementptr inbounds i8, ptr %2, i64 24
  %1260 = load i32, ptr %1259, align 1, !tbaa !18
  %1261 = and i32 %1260, 2048
  %.not1026 = icmp eq i32 %1261, 0
  br i1 %.not1026, label %1286, label %1262

1262:                                             ; preds = %1258
  %1263 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 16, ptr %1263, align 8, !tbaa !28
  %1264 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 1, ptr %1264, align 4, !tbaa !29
  %1265 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 1, ptr %1265, align 8, !tbaa !30
  %1266 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1267 = icmp eq i32 %1266, 4
  br i1 %1267, label %1271, label %1268

1268:                                             ; preds = %1262
  %1269 = tail call i32 @LIBXSMM_GEMM_GETENUM_C_PREC(ptr noundef nonnull %181) #4
  %1270 = icmp eq i32 %1269, 5
  %spec.select1323 = select i1 %1270, i32 1, i32 4
  br label %1271

1271:                                             ; preds = %1268, %1262
  %.sink1302 = phi i32 [ 1, %1262 ], [ %spec.select1323, %1268 ]
  %1272 = getelementptr inbounds i8, ptr %0, i64 20
  store i32 %.sink1302, ptr %1272, align 4, !tbaa !31
  %1273 = load i32, ptr %1259, align 1, !tbaa !18
  %1274 = and i32 %1273, 8
  %.not1027 = icmp eq i32 %1274, 0
  %.sink1121 = select i1 %.not1027, i32 537138704, i32 537138728
  %1275 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 %.sink1121, ptr %1275, align 8
  %1276 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 537208952, ptr %1276, align 4, !tbaa !26
  %1277 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 9999, ptr %1277, align 8, !tbaa !27
  %1278 = and i32 %1273, 16
  %.not1028 = icmp eq i32 %1278, 0
  %1279 = getelementptr inbounds i8, ptr %0, i64 36
  br i1 %.not1028, label %1282, label %1280

1280:                                             ; preds = %1271
  store i32 537138728, ptr %1279, align 4, !tbaa !24
  %1281 = icmp eq i32 %3, 0
  br i1 %1281, label %.sink.split1304, label %1284

1282:                                             ; preds = %1271
  store i32 537138704, ptr %1279, align 4, !tbaa !24
  br label %.sink.split1304

.sink.split1304:                                  ; preds = %1280, %1282
  %.sink1305 = phi i32 [ 537138704, %1282 ], [ 537138731, %1280 ]
  %1283 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %.sink1305, ptr %1283, align 8, !tbaa !25
  br label %1284

1284:                                             ; preds = %.sink.split1304, %1280
  %1285 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 805639919, ptr %1285, align 4, !tbaa !17
  br label %1290

1286:                                             ; preds = %1258, %1255
  store i32 1, ptr %0, align 8, !tbaa !5
  store i32 0, ptr %462, align 4, !tbaa !13
  store i32 0, ptr %463, align 4, !tbaa !14
  store i8 97, ptr %464, align 4, !tbaa !15
  %1287 = getelementptr inbounds i8, ptr %0, i64 8
  %1288 = getelementptr inbounds i8, ptr %0, i64 24
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1287, i8 0, i64 16, i1 false)
  store <4 x i32> <i32 9999, i32 9999, i32 9999, i32 9999>, ptr %1288, align 8, !tbaa !16
  %1289 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 9999, ptr %1289, align 4, !tbaa !17
  br label %1290

1290:                                             ; preds = %393, %352, %287, %260, %240, %210, %77, %135, %175, %171, %106, %48, %542, %608, %651, %738, %823, %825, %789, %676, %631, %575, %499, %863, %939, %986, %1047, %1115, %1199, %1284, %1286, %1250, %1138, %1088, %1015, %972, %906, %313, %452, %456, %423, %9
  %.sink1312 = phi i64 [ 56, %77 ], [ 56, %135 ], [ 56, %175 ], [ 56, %171 ], [ 56, %106 ], [ 56, %48 ], [ 56, %542 ], [ 56, %608 ], [ 56, %651 ], [ 56, %738 ], [ 56, %823 ], [ 56, %825 ], [ 56, %789 ], [ 56, %676 ], [ 56, %631 ], [ 56, %575 ], [ 56, %499 ], [ 56, %863 ], [ 56, %939 ], [ 56, %986 ], [ 32, %1047 ], [ 56, %1115 ], [ 56, %1199 ], [ 56, %1284 ], [ 56, %1286 ], [ 56, %1250 ], [ 56, %1138 ], [ 32, %1088 ], [ 56, %1015 ], [ 56, %972 ], [ 56, %906 ], [ 56, %313 ], [ 56, %452 ], [ 56, %456 ], [ 56, %423 ], [ 56, %9 ], [ 56, %210 ], [ 56, %240 ], [ 56, %260 ], [ 56, %287 ], [ 56, %352 ], [ 56, %393 ]
  %.sink1310 = phi i32 [ -1610346407, %77 ], [ -1610280715, %135 ], [ 9999, %175 ], [ -1610346407, %171 ], [ -1610276860, %106 ], [ -1610280871, %48 ], [ 805643960, %542 ], [ 805643856, %608 ], [ 805643960, %651 ], [ -268032430, %738 ], [ 805643960, %823 ], [ 9999, %825 ], [ 805643960, %789 ], [ %.sink1099, %676 ], [ 805643960, %631 ], [ 805643858, %575 ], [ 814032568, %499 ], [ 814032568, %863 ], [ 805643858, %939 ], [ %.sink1104, %986 ], [ 9999, %1047 ], [ 805643960, %1115 ], [ -268032430, %1199 ], [ 805643960, %1284 ], [ 9999, %1286 ], [ 805643960, %1250 ], [ 805643960, %1138 ], [ 9999, %1088 ], [ %.sink1108, %1015 ], [ 805643856, %972 ], [ 805643960, %906 ], [ 1879515216, %313 ], [ 805643856, %452 ], [ 9999, %456 ], [ 805643858, %423 ], [ 9999, %9 ], [ %., %210 ], [ %.1313, %240 ], [ %.1314, %260 ], [ %.1315, %287 ], [ %.1316, %352 ], [ %.1317, %393 ]
  %.sink1309 = phi i64 [ 60, %77 ], [ 60, %135 ], [ 60, %175 ], [ 60, %171 ], [ 60, %106 ], [ 60, %48 ], [ 60, %542 ], [ 60, %608 ], [ 60, %651 ], [ 60, %738 ], [ 60, %823 ], [ 60, %825 ], [ 60, %789 ], [ 60, %676 ], [ 60, %631 ], [ 60, %575 ], [ 60, %499 ], [ 60, %863 ], [ 60, %939 ], [ 60, %986 ], [ 52, %1047 ], [ 60, %1115 ], [ 60, %1199 ], [ 60, %1284 ], [ 60, %1286 ], [ 60, %1250 ], [ 60, %1138 ], [ 52, %1088 ], [ 60, %1015 ], [ 60, %972 ], [ 60, %906 ], [ 60, %313 ], [ 60, %452 ], [ 60, %456 ], [ 60, %423 ], [ 60, %9 ], [ 60, %210 ], [ 60, %240 ], [ 60, %260 ], [ 60, %287 ], [ 60, %352 ], [ 60, %393 ]
  %.sink1307 = phi i32 [ -1610346408, %77 ], [ -1610280706, %135 ], [ 9999, %175 ], [ -1610346408, %171 ], [ -1610280706, %106 ], [ -1610280872, %48 ], [ 805574232, %542 ], [ 805639934, %608 ], [ 805574232, %651 ], [ 805574232, %738 ], [ 805574232, %823 ], [ 9999, %825 ], [ 805574232, %789 ], [ 805574232, %676 ], [ 805574232, %631 ], [ 805639934, %575 ], [ 814028376, %499 ], [ 814028376, %863 ], [ 805639934, %939 ], [ 805574232, %986 ], [ 805639919, %1047 ], [ 805574232, %1115 ], [ 805574232, %1199 ], [ 805574232, %1284 ], [ 9999, %1286 ], [ 805574232, %1250 ], [ 805574232, %1138 ], [ 805639919, %1088 ], [ 805574232, %1015 ], [ 805639934, %972 ], [ 805574232, %906 ], [ 805574232, %313 ], [ 805639934, %452 ], [ 9999, %456 ], [ 805639934, %423 ], [ 9999, %9 ], [ 814028376, %210 ], [ 805574232, %240 ], [ 805574232, %260 ], [ 805574232, %287 ], [ 805574232, %352 ], [ 805574232, %393 ]
  %1291 = getelementptr inbounds i8, ptr %0, i64 %.sink1312
  store i32 %.sink1310, ptr %1291, align 8
  %1292 = getelementptr inbounds i8, ptr %0, i64 %.sink1309
  store i32 %.sink1307, ptr %1292, align 4, !tbaa !16
  %1293 = getelementptr inbounds i8, ptr %0, i64 48
  store i32 -1809575912, ptr %1293, align 8, !tbaa !32
  %1294 = getelementptr inbounds i8, ptr %0, i64 64
  store <4 x i32> <i32 30000, i32 30008, i32 30002, i32 30100>, ptr %1294, align 8, !tbaa !16
  %1295 = getelementptr inbounds i8, ptr %0, i64 80
  store i32 -1568407413, ptr %1295, align 8, !tbaa !33
  ret void
}

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3

declare i32 @LIBXSMM_GEMM_GETENUM_COMP_PREC(ptr noundef) local_unnamed_addr #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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #4 = { nounwind }
attributes #5 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"libxsmm_micro_kernel_config", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28, !7, i64 32, !7, i64 36, !7, i64 40, !7, i64 44, !7, i64 48, !7, i64 52, !7, i64 56, !7, i64 60, !7, i64 64, !7, i64 68, !7, i64 72, !7, i64 76, !7, i64 80, !8, i64 84, !7, i64 88, !7, i64 92, !7, i64 96, !7, i64 100, !7, i64 104, !7, i64 108, !7, i64 112, !7, i64 116, !7, i64 120, !7, i64 124, !7, i64 128, !7, i64 132, !7, i64 136, !7, i64 140, !7, i64 144, !7, i64 148, !7, i64 152, !7, i64 156, !7, i64 160, !7, i64 164, !7, i64 168, !7, i64 172, !7, i64 176, !7, i64 180, !7, i64 184, !7, i64 188, !7, i64 192, !7, i64 196, !7, i64 200, !7, i64 204, !7, i64 208, !7, i64 212, !7, i64 216, !7, i64 220, !7, i64 224, !7, i64 228, !7, i64 232, !7, i64 236, !7, i64 240, !7, i64 244, !7, i64 248, !7, i64 252, !7, i64 256, !7, i64 260, !7, i64 264, !7, i64 268, !7, i64 272, !7, i64 276, !7, i64 280, !7, i64 284, !7, i64 288, !7, i64 292, !7, i64 296, !7, i64 300, !7, i64 304, !7, i64 308, !7, i64 312, !7, i64 316, !7, i64 320, !7, i64 324, !7, i64 328, !7, i64 332, !7, i64 336, !7, i64 340, !7, i64 344, !7, i64 348, !7, i64 352, !7, i64 356, !7, i64 360, !8, i64 364, !8, i64 380, !8, i64 396, !8, i64 412, !8, i64 428, !8, i64 444, !7, i64 460, !8, i64 464, !10, i64 520, !7, i64 556, !7, i64 560, !7, i64 564, !7, i64 568, !7, i64 572, !7, i64 576, !7, i64 580, !7, i64 584, !12, i64 592, !7, i64 600, !7, i64 604, !7, i64 608, !7, i64 612, !12, i64 616, !7, i64 624, !7, i64 628, !7, i64 632, !7, i64 636, !7, i64 640, !7, i64 644, !7, i64 648, !7, i64 652, !7, i64 656, !7, i64 660, !7, i64 664, !7, i64 668, !7, i64 672, !7, i64 676, !7, i64 680}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"libxsmm_tile_config", !8, i64 0, !11, i64 2, !8, i64 4, !11, i64 6, !8, i64 8, !11, i64 10, !8, i64 12, !11, i64 14, !8, i64 16, !11, i64 18, !8, i64 20, !11, i64 22, !8, i64 24, !11, i64 26, !8, i64 28, !11, i64 30, !8, i64 32}
!11 = !{!"short", !8, i64 0}
!12 = !{!"any pointer", !8, i64 0}
!13 = !{!6, !7, i64 4}
!14 = !{!6, !7, i64 44}
!15 = !{!6, !8, i64 84}
!16 = !{!7, !7, i64 0}
!17 = !{!6, !7, i64 52}
!18 = !{!19, !7, i64 24}
!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, !20, i64 33, !20, i64 41, !8, i64 49, !7, i64 50, !7, i64 54, !7, i64 58, !11, i64 62, !11, i64 64, !8, i64 66, !8, i64 67, !8, i64 68, !8, i64 69, !11, i64 70, !11, i64 72, !11, i64 74, !11, i64 76, !11, i64 78, !11, i64 80, !7, i64 82, !7, i64 86, !7, i64 90, !8, i64 94}
!20 = !{!"long long", !8, i64 0}
!21 = !{!19, !7, i64 12}
!22 = !{!6, !7, i64 24}
!23 = !{!19, !7, i64 20}
!24 = !{!6, !7, i64 36}
!25 = !{!6, !7, i64 40}
!26 = !{!6, !7, i64 28}
!27 = !{!6, !7, i64 32}
!28 = !{!6, !7, i64 8}
!29 = !{!6, !7, i64 12}
!30 = !{!6, !7, i64 16}
!31 = !{!6, !7, i64 20}
!32 = !{!6, !7, i64 48}
!33 = !{!6, !7, i64 80}


; Effective O3 passes: DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,MemCpyOptPass,MergedLoadStoreMotionPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass