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

@.str = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [359 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [359 x i8], align 1
@__PRETTY_FUNCTION__.libxsmm_generator_gemm_setup_B_vnni2t_to_norm_into_stack = external hidden unnamed_addr constant [259 x i8], align 1

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

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

; Function Attrs: nounwind uwtable
declare dso_local void @libxsmm_generator_gemm_apply_ops_input_tensor_and_store_to_stack(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #1

; Function Attrs: nounwind uwtable
declare dso_local void @libxsmm_generator_gemm_getval_stack_var(ptr noundef, ptr noundef, i32 noundef, i32 noundef) #1

declare void @libxsmm_x86_instruction_alu_reg(ptr noundef, i32 noundef, i32 noundef, i32 noundef) #2

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

declare void @libxsmm_generator_x86_save_gpr_regs(ptr noundef, i16 noundef zeroext) #2

declare void @libxsmm_generator_x86_restore_gpr_regs(ptr noundef, i16 noundef zeroext) #2

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_gemm_setup_B_vnni2t_to_norm_into_stack(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, i32 noundef %6) #1 {
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i16, align 2
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store ptr %2, ptr %10, align 8, !tbaa !5
  store ptr %3, ptr %11, align 8, !tbaa !5
  store ptr %4, ptr %12, align 8, !tbaa !5
  store ptr %5, ptr %13, align 8, !tbaa !5
  store i32 %6, ptr %14, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #4
  %25 = load ptr, ptr %12, align 8, !tbaa !5
  %26 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %25, i32 0, i32 6
  %27 = load i32, ptr %26, align 1, !tbaa !11
  %28 = and i32 %27, 262144
  %29 = icmp ugt i32 %28, 0
  %30 = zext i1 %29 to i64
  %31 = select i1 %29, i32 1, i32 0
  store i32 %31, ptr %15, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #4
  %32 = load ptr, ptr %12, align 8, !tbaa !5
  %33 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %32, i32 0, i32 6
  %34 = load i32, ptr %33, align 1, !tbaa !11
  %35 = and i32 %34, 131072
  %36 = icmp ugt i32 %35, 0
  %37 = zext i1 %36 to i64
  %38 = select i1 %36, i32 1, i32 0
  store i32 %38, ptr %16, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  %39 = load ptr, ptr %12, align 8, !tbaa !5
  %40 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %39, i32 0, i32 6
  %41 = load i32, ptr %40, align 1, !tbaa !11
  %42 = and i32 %41, 65536
  %43 = icmp ugt i32 %42, 0
  %44 = zext i1 %43 to i64
  %45 = select i1 %43, i32 1, i32 0
  store i32 %45, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #4
  %46 = load i32, ptr %15, align 4, !tbaa !9
  %47 = icmp eq i32 %46, 1
  br i1 %47, label %54, label %48

48:                                               ; preds = %7
  %49 = load i32, ptr %16, align 4, !tbaa !9
  %50 = icmp eq i32 %49, 1
  br i1 %50, label %54, label %51

51:                                               ; preds = %48
  %52 = load i32, ptr %17, align 4, !tbaa !9
  %53 = icmp eq i32 %52, 1
  br label %54

54:                                               ; preds = %51, %48, %7
  %55 = phi i1 [ true, %48 ], [ true, %7 ], [ %53, %51 ]
  %56 = zext i1 %55 to i64
  %57 = select i1 %55, i32 1, i32 0
  store i32 %57, ptr %18, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #4
  store i32 15, ptr %19, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #4
  store i32 14, ptr %20, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #4
  store i32 13, ptr %21, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  store i32 12, ptr %22, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #4
  store i32 2, ptr %23, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 2, ptr %24) #4
  store i16 -250, ptr %24, align 2, !tbaa !15
  %58 = load ptr, ptr %8, align 8, !tbaa !5
  %59 = load i16, ptr %24, align 2, !tbaa !15
  call void @libxsmm_generator_x86_save_gpr_regs(ptr noundef %58, i16 noundef zeroext %59)
  %60 = load ptr, ptr %8, align 8, !tbaa !5
  %61 = load ptr, ptr %9, align 8, !tbaa !5
  %62 = load ptr, ptr %11, align 8, !tbaa !5
  %63 = load ptr, ptr %12, align 8, !tbaa !5
  %64 = load ptr, ptr %10, align 8, !tbaa !5
  %65 = getelementptr inbounds %struct.libxsmm_gp_reg_mapping_struct, ptr %64, i32 0, i32 3
  %66 = load i32, ptr %65, align 4, !tbaa !16
  %67 = load i32, ptr %19, align 4, !tbaa !9
  %68 = load i32, ptr %20, align 4, !tbaa !9
  %69 = load i32, ptr %21, align 4, !tbaa !9
  %70 = load i32, ptr %22, align 4, !tbaa !9
  %71 = load i32, ptr %23, align 4, !tbaa !9
  %72 = load ptr, ptr %13, align 8, !tbaa !5
  %73 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %72, i32 0, i32 1
  %74 = load i32, ptr %73, align 1, !tbaa !18
  %75 = load ptr, ptr %13, align 8, !tbaa !5
  %76 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %75, i32 0, i32 2
  %77 = load i32, ptr %76, align 1, !tbaa !19
  %78 = load ptr, ptr %13, align 8, !tbaa !5
  %79 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %78, i32 0, i32 4
  %80 = load i32, ptr %79, align 1, !tbaa !20
  %81 = load ptr, ptr %13, align 8, !tbaa !5
  %82 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %81, i32 0, i32 2
  %83 = load i32, ptr %82, align 1, !tbaa !19
  %84 = load ptr, ptr %13, align 8, !tbaa !5
  %85 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %84, i32 0, i32 11
  %86 = load i64, ptr %85, align 1, !tbaa !21
  %87 = trunc i64 %86 to i32
  %88 = icmp eq i32 -2147483648, %87
  br i1 %88, label %95, label %89

89:                                               ; preds = %54
  %90 = load ptr, ptr %13, align 8, !tbaa !5
  %91 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %90, i32 0, i32 11
  %92 = load i64, ptr %91, align 1, !tbaa !21
  %93 = trunc i64 %92 to i32
  %94 = icmp slt i32 -2147483648, %93
  br i1 %94, label %95, label %118

95:                                               ; preds = %89, %54
  %96 = load ptr, ptr %13, align 8, !tbaa !5
  %97 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %96, i32 0, i32 11
  %98 = load i64, ptr %97, align 1, !tbaa !21
  %99 = mul i64 1, %98
  %100 = icmp ult i64 %99, 2147483647
  br i1 %100, label %101, label %106

101:                                              ; preds = %95
  %102 = load ptr, ptr %13, align 8, !tbaa !5
  %103 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %102, i32 0, i32 11
  %104 = load i64, ptr %103, align 1, !tbaa !21
  %105 = mul i64 1, %104
  br label %107

106:                                              ; preds = %95
  br label %107

107:                                              ; preds = %106, %101
  %108 = phi i64 [ %105, %101 ], [ 2147483647, %106 ]
  %109 = icmp ule i64 %108, 2147483647
  br i1 %109, label %110, label %118

110:                                              ; preds = %107
  %111 = load ptr, ptr %13, align 8, !tbaa !5
  %112 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %111, i32 0, i32 11
  %113 = load i64, ptr %112, align 1, !tbaa !21
  %114 = sitofp i64 %113 to double
  %115 = fcmp ole double 0.000000e+00, %114
  br i1 %115, label %117, label %116

116:                                              ; preds = %110
  br i1 true, label %117, label %118

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

118:                                              ; preds = %116, %107, %89
  call void @__assert_fail(ptr noundef @.str.5, ptr noundef @.str.1, i32 noundef 348, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_setup_B_vnni2t_to_norm_into_stack) #5
  unreachable

119:                                              ; preds = %117
  %120 = load ptr, ptr %13, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %120, i32 0, i32 11
  %122 = load i64, ptr %121, align 1, !tbaa !21
  %123 = trunc i64 %122 to i32
  %124 = load i32, ptr %14, align 4, !tbaa !9
  %125 = load i32, ptr %14, align 4, !tbaa !9
  %126 = load i32, ptr %14, align 4, !tbaa !9
  call void @libxsmm_generator_gemm_apply_ops_input_tensor_and_store_to_stack(ptr noundef %60, ptr noundef %61, ptr noundef %62, ptr noundef %63, i32 noundef %66, i32 noundef %67, i32 noundef %68, i32 noundef %69, i32 noundef %70, i32 noundef %71, i32 noundef 67, i32 noundef %74, i32 noundef %77, i32 noundef %80, i32 noundef %83, i32 noundef %123, i32 noundef %124, i32 noundef %125, i32 noundef %126, i32 noundef 4, i32 noundef 27, i32 noundef 25, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %127 = load ptr, ptr %8, align 8, !tbaa !5
  %128 = load ptr, ptr %11, align 8, !tbaa !5
  %129 = load i32, ptr %20, align 4, !tbaa !9
  call void @libxsmm_generator_gemm_getval_stack_var(ptr noundef %127, ptr noundef %128, i32 noundef 25, i32 noundef %129)
  %130 = load ptr, ptr %8, align 8, !tbaa !5
  %131 = load ptr, ptr %11, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %131, i32 0, i32 20
  %133 = load i32, ptr %132, align 8, !tbaa !22
  %134 = load i32, ptr %20, align 4, !tbaa !9
  %135 = load ptr, ptr %10, align 8, !tbaa !5
  %136 = getelementptr inbounds %struct.libxsmm_gp_reg_mapping_struct, ptr %135, i32 0, i32 3
  %137 = load i32, ptr %136, align 4, !tbaa !16
  call void @libxsmm_x86_instruction_alu_reg(ptr noundef %130, i32 noundef %133, i32 noundef %134, i32 noundef %137)
  %138 = load i32, ptr %16, align 4, !tbaa !9
  %139 = icmp sgt i32 %138, 0
  br i1 %139, label %143, label %140

140:                                              ; preds = %119
  %141 = load i32, ptr %17, align 4, !tbaa !9
  %142 = icmp sgt i32 %141, 0
  br i1 %142, label %143, label %226

143:                                              ; preds = %140, %119
  %144 = load ptr, ptr %8, align 8, !tbaa !5
  %145 = load ptr, ptr %9, align 8, !tbaa !5
  %146 = load ptr, ptr %11, align 8, !tbaa !5
  %147 = load ptr, ptr %12, align 8, !tbaa !5
  %148 = load ptr, ptr %10, align 8, !tbaa !5
  %149 = getelementptr inbounds %struct.libxsmm_gp_reg_mapping_struct, ptr %148, i32 0, i32 1
  %150 = load i32, ptr %149, align 4, !tbaa !25
  %151 = load i32, ptr %19, align 4, !tbaa !9
  %152 = load i32, ptr %20, align 4, !tbaa !9
  %153 = load i32, ptr %21, align 4, !tbaa !9
  %154 = load i32, ptr %22, align 4, !tbaa !9
  %155 = load i32, ptr %23, align 4, !tbaa !9
  %156 = load ptr, ptr %12, align 8, !tbaa !5
  %157 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %156, i32 0, i32 0
  %158 = load i32, ptr %157, align 1, !tbaa !26
  %159 = mul i32 %158, 2
  %160 = load ptr, ptr %12, align 8, !tbaa !5
  %161 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %160, i32 0, i32 2
  %162 = load i32, ptr %161, align 1, !tbaa !19
  %163 = udiv i32 %162, 2
  %164 = load ptr, ptr %13, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %164, i32 0, i32 3
  %166 = load i32, ptr %165, align 1, !tbaa !27
  %167 = mul i32 %166, 2
  %168 = load ptr, ptr %12, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %168, i32 0, i32 0
  %170 = load i32, ptr %169, align 1, !tbaa !26
  %171 = mul i32 %170, 2
  %172 = load ptr, ptr %13, align 8, !tbaa !5
  %173 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %172, i32 0, i32 10
  %174 = load i64, ptr %173, align 1, !tbaa !28
  %175 = trunc i64 %174 to i32
  %176 = icmp eq i32 -2147483648, %175
  br i1 %176, label %183, label %177

177:                                              ; preds = %143
  %178 = load ptr, ptr %13, align 8, !tbaa !5
  %179 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %178, i32 0, i32 10
  %180 = load i64, ptr %179, align 1, !tbaa !28
  %181 = trunc i64 %180 to i32
  %182 = icmp slt i32 -2147483648, %181
  br i1 %182, label %183, label %206

183:                                              ; preds = %177, %143
  %184 = load ptr, ptr %13, align 8, !tbaa !5
  %185 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %184, i32 0, i32 10
  %186 = load i64, ptr %185, align 1, !tbaa !28
  %187 = mul i64 1, %186
  %188 = icmp ult i64 %187, 2147483647
  br i1 %188, label %189, label %194

189:                                              ; preds = %183
  %190 = load ptr, ptr %13, align 8, !tbaa !5
  %191 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %190, i32 0, i32 10
  %192 = load i64, ptr %191, align 1, !tbaa !28
  %193 = mul i64 1, %192
  br label %195

194:                                              ; preds = %183
  br label %195

195:                                              ; preds = %194, %189
  %196 = phi i64 [ %193, %189 ], [ 2147483647, %194 ]
  %197 = icmp ule i64 %196, 2147483647
  br i1 %197, label %198, label %206

198:                                              ; preds = %195
  %199 = load ptr, ptr %13, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %199, i32 0, i32 10
  %201 = load i64, ptr %200, align 1, !tbaa !28
  %202 = sitofp i64 %201 to double
  %203 = fcmp ole double 0.000000e+00, %202
  br i1 %203, label %205, label %204

204:                                              ; preds = %198
  br i1 true, label %205, label %206

205:                                              ; preds = %204, %198
  br label %207

206:                                              ; preds = %204, %195, %177
  call void @__assert_fail(ptr noundef @.str.4, ptr noundef @.str.1, i32 noundef 361, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_setup_B_vnni2t_to_norm_into_stack) #5
  unreachable

207:                                              ; preds = %205
  %208 = load ptr, ptr %13, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %208, i32 0, i32 10
  %210 = load i64, ptr %209, align 1, !tbaa !28
  %211 = trunc i64 %210 to i32
  %212 = load i32, ptr %14, align 4, !tbaa !9
  %213 = load i32, ptr %14, align 4, !tbaa !9
  %214 = load i32, ptr %14, align 4, !tbaa !9
  call void @libxsmm_generator_gemm_apply_ops_input_tensor_and_store_to_stack(ptr noundef %144, ptr noundef %145, ptr noundef %146, ptr noundef %147, i32 noundef %150, i32 noundef %151, i32 noundef %152, i32 noundef %153, i32 noundef %154, i32 noundef %155, i32 noundef 1, i32 noundef %159, i32 noundef %163, i32 noundef %167, i32 noundef %171, i32 noundef %211, i32 noundef %212, i32 noundef %213, i32 noundef %214, i32 noundef 3, i32 noundef 27, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %215 = load ptr, ptr %8, align 8, !tbaa !5
  %216 = load ptr, ptr %11, align 8, !tbaa !5
  %217 = load i32, ptr %20, align 4, !tbaa !9
  call void @libxsmm_generator_gemm_getval_stack_var(ptr noundef %215, ptr noundef %216, i32 noundef 24, i32 noundef %217)
  %218 = load ptr, ptr %8, align 8, !tbaa !5
  %219 = load ptr, ptr %11, align 8, !tbaa !5
  %220 = getelementptr inbounds %struct.libxsmm_micro_kernel_config, ptr %219, i32 0, i32 20
  %221 = load i32, ptr %220, align 8, !tbaa !22
  %222 = load i32, ptr %20, align 4, !tbaa !9
  %223 = load ptr, ptr %10, align 8, !tbaa !5
  %224 = getelementptr inbounds %struct.libxsmm_gp_reg_mapping_struct, ptr %223, i32 0, i32 1
  %225 = load i32, ptr %224, align 4, !tbaa !25
  call void @libxsmm_x86_instruction_alu_reg(ptr noundef %218, i32 noundef %221, i32 noundef %222, i32 noundef %225)
  br label %226

226:                                              ; preds = %207, %140
  %227 = load i32, ptr %18, align 4, !tbaa !9
  %228 = icmp sgt i32 %227, 0
  br i1 %228, label %229, label %566

229:                                              ; preds = %226
  %230 = load i32, ptr %16, align 4, !tbaa !9
  %231 = icmp sgt i32 %230, 0
  br i1 %231, label %232, label %348

232:                                              ; preds = %229
  %233 = load ptr, ptr %12, align 8, !tbaa !5
  %234 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %233, i32 0, i32 6
  %235 = load i32, ptr %234, align 1, !tbaa !11
  %236 = xor i32 %235, 131072
  %237 = load ptr, ptr %12, align 8, !tbaa !5
  %238 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %237, i32 0, i32 6
  store i32 %236, ptr %238, align 1, !tbaa !11
  %239 = load ptr, ptr %12, align 8, !tbaa !5
  %240 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %239, i32 0, i32 6
  %241 = load i32, ptr %240, align 1, !tbaa !11
  %242 = or i32 %241, 262144
  %243 = load ptr, ptr %12, align 8, !tbaa !5
  %244 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %243, i32 0, i32 6
  store i32 %242, ptr %244, align 1, !tbaa !11
  %245 = load ptr, ptr %12, align 8, !tbaa !5
  %246 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %245, i32 0, i32 0
  %247 = load i32, ptr %246, align 1, !tbaa !26
  %248 = load ptr, ptr %12, align 8, !tbaa !5
  %249 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %248, i32 0, i32 3
  store i32 %247, ptr %249, align 1, !tbaa !27
  %250 = load i32, ptr %14, align 4, !tbaa !9
  %251 = icmp eq i32 0, %250
  br i1 %251, label %252, label %253

252:                                              ; preds = %232
  br label %333

253:                                              ; preds = %232
  %254 = load i32, ptr %14, align 4, !tbaa !9
  %255 = icmp eq i32 1, %254
  br i1 %255, label %256, label %257

256:                                              ; preds = %253
  br label %331

257:                                              ; preds = %253
  %258 = load i32, ptr %14, align 4, !tbaa !9
  %259 = icmp eq i32 2, %258
  br i1 %259, label %260, label %261

260:                                              ; preds = %257
  br label %329

261:                                              ; preds = %257
  %262 = load i32, ptr %14, align 4, !tbaa !9
  %263 = icmp eq i32 3, %262
  br i1 %263, label %264, label %265

264:                                              ; preds = %261
  br label %327

265:                                              ; preds = %261
  %266 = load i32, ptr %14, align 4, !tbaa !9
  %267 = icmp eq i32 4, %266
  br i1 %267, label %268, label %269

268:                                              ; preds = %265
  br label %325

269:                                              ; preds = %265
  %270 = load i32, ptr %14, align 4, !tbaa !9
  %271 = icmp eq i32 5, %270
  br i1 %271, label %272, label %273

272:                                              ; preds = %269
  br label %323

273:                                              ; preds = %269
  %274 = load i32, ptr %14, align 4, !tbaa !9
  %275 = icmp eq i32 6, %274
  br i1 %275, label %276, label %277

276:                                              ; preds = %273
  br label %321

277:                                              ; preds = %273
  %278 = load i32, ptr %14, align 4, !tbaa !9
  %279 = icmp eq i32 7, %278
  br i1 %279, label %280, label %281

280:                                              ; preds = %277
  br label %319

281:                                              ; preds = %277
  %282 = load i32, ptr %14, align 4, !tbaa !9
  %283 = icmp eq i32 8, %282
  br i1 %283, label %284, label %285

284:                                              ; preds = %281
  br label %317

285:                                              ; preds = %281
  %286 = load i32, ptr %14, align 4, !tbaa !9
  %287 = icmp eq i32 9, %286
  br i1 %287, label %288, label %289

288:                                              ; preds = %285
  br label %315

289:                                              ; preds = %285
  %290 = load i32, ptr %14, align 4, !tbaa !9
  %291 = icmp eq i32 10, %290
  br i1 %291, label %292, label %293

292:                                              ; preds = %289
  br label %313

293:                                              ; preds = %289
  %294 = load i32, ptr %14, align 4, !tbaa !9
  %295 = icmp eq i32 11, %294
  br i1 %295, label %296, label %297

296:                                              ; preds = %293
  br label %311

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

300:                                              ; preds = %297
  br label %309

301:                                              ; preds = %297
  %302 = load i32, ptr %14, align 4, !tbaa !9
  %303 = icmp eq i32 13, %302
  br i1 %303, label %304, label %305

304:                                              ; preds = %301
  br label %307

305:                                              ; preds = %301
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 375, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_setup_B_vnni2t_to_norm_into_stack) #5
  unreachable

306:                                              ; No predecessors!
  br label %307

307:                                              ; preds = %306, %304
  %308 = phi i32 [ 1, %304 ], [ 0, %306 ]
  br label %309

309:                                              ; preds = %307, %300
  %310 = phi i32 [ 1, %300 ], [ %308, %307 ]
  br label %311

311:                                              ; preds = %309, %296
  %312 = phi i32 [ 2, %296 ], [ %310, %309 ]
  br label %313

313:                                              ; preds = %311, %292
  %314 = phi i32 [ 2, %292 ], [ %312, %311 ]
  br label %315

315:                                              ; preds = %313, %288
  %316 = phi i32 [ 4, %288 ], [ %314, %313 ]
  br label %317

317:                                              ; preds = %315, %284
  %318 = phi i32 [ 4, %284 ], [ %316, %315 ]
  br label %319

319:                                              ; preds = %317, %280
  %320 = phi i32 [ 8, %280 ], [ %318, %317 ]
  br label %321

321:                                              ; preds = %319, %276
  %322 = phi i32 [ 8, %276 ], [ %320, %319 ]
  br label %323

323:                                              ; preds = %321, %272
  %324 = phi i32 [ 1, %272 ], [ %322, %321 ]
  br label %325

325:                                              ; preds = %323, %268
  %326 = phi i32 [ 1, %268 ], [ %324, %323 ]
  br label %327

327:                                              ; preds = %325, %264
  %328 = phi i32 [ 2, %264 ], [ %326, %325 ]
  br label %329

329:                                              ; preds = %327, %260
  %330 = phi i32 [ 2, %260 ], [ %328, %327 ]
  br label %331

331:                                              ; preds = %329, %256
  %332 = phi i32 [ 4, %256 ], [ %330, %329 ]
  br label %333

333:                                              ; preds = %331, %252
  %334 = phi i32 [ 8, %252 ], [ %332, %331 ]
  %335 = sext i32 %334 to i64
  %336 = load ptr, ptr %12, align 8, !tbaa !5
  %337 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %336, i32 0, i32 0
  %338 = load i32, ptr %337, align 1, !tbaa !26
  %339 = zext i32 %338 to i64
  %340 = mul nsw i64 %335, %339
  %341 = load ptr, ptr %12, align 8, !tbaa !5
  %342 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %341, i32 0, i32 2
  %343 = load i32, ptr %342, align 1, !tbaa !19
  %344 = zext i32 %343 to i64
  %345 = mul nsw i64 %340, %344
  %346 = load ptr, ptr %12, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %346, i32 0, i32 10
  store i64 %345, ptr %347, align 1, !tbaa !28
  br label %348

348:                                              ; preds = %333, %229
  %349 = load i32, ptr %17, align 4, !tbaa !9
  %350 = icmp sgt i32 %349, 0
  br i1 %350, label %351, label %467

351:                                              ; preds = %348
  %352 = load ptr, ptr %12, align 8, !tbaa !5
  %353 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %352, i32 0, i32 6
  %354 = load i32, ptr %353, align 1, !tbaa !11
  %355 = xor i32 %354, 65536
  %356 = load ptr, ptr %12, align 8, !tbaa !5
  %357 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %356, i32 0, i32 6
  store i32 %355, ptr %357, align 1, !tbaa !11
  %358 = load ptr, ptr %12, align 8, !tbaa !5
  %359 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %358, i32 0, i32 6
  %360 = load i32, ptr %359, align 1, !tbaa !11
  %361 = or i32 %360, 262144
  %362 = load ptr, ptr %12, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %362, i32 0, i32 6
  store i32 %361, ptr %363, align 1, !tbaa !11
  %364 = load ptr, ptr %12, align 8, !tbaa !5
  %365 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %364, i32 0, i32 0
  %366 = load i32, ptr %365, align 1, !tbaa !26
  %367 = load ptr, ptr %12, align 8, !tbaa !5
  %368 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %367, i32 0, i32 3
  store i32 %366, ptr %368, align 1, !tbaa !27
  %369 = load i32, ptr %14, align 4, !tbaa !9
  %370 = icmp eq i32 0, %369
  br i1 %370, label %371, label %372

371:                                              ; preds = %351
  br label %452

372:                                              ; preds = %351
  %373 = load i32, ptr %14, align 4, !tbaa !9
  %374 = icmp eq i32 1, %373
  br i1 %374, label %375, label %376

375:                                              ; preds = %372
  br label %450

376:                                              ; preds = %372
  %377 = load i32, ptr %14, align 4, !tbaa !9
  %378 = icmp eq i32 2, %377
  br i1 %378, label %379, label %380

379:                                              ; preds = %376
  br label %448

380:                                              ; preds = %376
  %381 = load i32, ptr %14, align 4, !tbaa !9
  %382 = icmp eq i32 3, %381
  br i1 %382, label %383, label %384

383:                                              ; preds = %380
  br label %446

384:                                              ; preds = %380
  %385 = load i32, ptr %14, align 4, !tbaa !9
  %386 = icmp eq i32 4, %385
  br i1 %386, label %387, label %388

387:                                              ; preds = %384
  br label %444

388:                                              ; preds = %384
  %389 = load i32, ptr %14, align 4, !tbaa !9
  %390 = icmp eq i32 5, %389
  br i1 %390, label %391, label %392

391:                                              ; preds = %388
  br label %442

392:                                              ; preds = %388
  %393 = load i32, ptr %14, align 4, !tbaa !9
  %394 = icmp eq i32 6, %393
  br i1 %394, label %395, label %396

395:                                              ; preds = %392
  br label %440

396:                                              ; preds = %392
  %397 = load i32, ptr %14, align 4, !tbaa !9
  %398 = icmp eq i32 7, %397
  br i1 %398, label %399, label %400

399:                                              ; preds = %396
  br label %438

400:                                              ; preds = %396
  %401 = load i32, ptr %14, align 4, !tbaa !9
  %402 = icmp eq i32 8, %401
  br i1 %402, label %403, label %404

403:                                              ; preds = %400
  br label %436

404:                                              ; preds = %400
  %405 = load i32, ptr %14, align 4, !tbaa !9
  %406 = icmp eq i32 9, %405
  br i1 %406, label %407, label %408

407:                                              ; preds = %404
  br label %434

408:                                              ; preds = %404
  %409 = load i32, ptr %14, align 4, !tbaa !9
  %410 = icmp eq i32 10, %409
  br i1 %410, label %411, label %412

411:                                              ; preds = %408
  br label %432

412:                                              ; preds = %408
  %413 = load i32, ptr %14, align 4, !tbaa !9
  %414 = icmp eq i32 11, %413
  br i1 %414, label %415, label %416

415:                                              ; preds = %412
  br label %430

416:                                              ; preds = %412
  %417 = load i32, ptr %14, align 4, !tbaa !9
  %418 = icmp eq i32 12, %417
  br i1 %418, label %419, label %420

419:                                              ; preds = %416
  br label %428

420:                                              ; preds = %416
  %421 = load i32, ptr %14, align 4, !tbaa !9
  %422 = icmp eq i32 13, %421
  br i1 %422, label %423, label %424

423:                                              ; preds = %420
  br label %426

424:                                              ; preds = %420
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 381, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_setup_B_vnni2t_to_norm_into_stack) #5
  unreachable

425:                                              ; No predecessors!
  br label %426

426:                                              ; preds = %425, %423
  %427 = phi i32 [ 1, %423 ], [ 0, %425 ]
  br label %428

428:                                              ; preds = %426, %419
  %429 = phi i32 [ 1, %419 ], [ %427, %426 ]
  br label %430

430:                                              ; preds = %428, %415
  %431 = phi i32 [ 2, %415 ], [ %429, %428 ]
  br label %432

432:                                              ; preds = %430, %411
  %433 = phi i32 [ 2, %411 ], [ %431, %430 ]
  br label %434

434:                                              ; preds = %432, %407
  %435 = phi i32 [ 4, %407 ], [ %433, %432 ]
  br label %436

436:                                              ; preds = %434, %403
  %437 = phi i32 [ 4, %403 ], [ %435, %434 ]
  br label %438

438:                                              ; preds = %436, %399
  %439 = phi i32 [ 8, %399 ], [ %437, %436 ]
  br label %440

440:                                              ; preds = %438, %395
  %441 = phi i32 [ 8, %395 ], [ %439, %438 ]
  br label %442

442:                                              ; preds = %440, %391
  %443 = phi i32 [ 1, %391 ], [ %441, %440 ]
  br label %444

444:                                              ; preds = %442, %387
  %445 = phi i32 [ 1, %387 ], [ %443, %442 ]
  br label %446

446:                                              ; preds = %444, %383
  %447 = phi i32 [ 2, %383 ], [ %445, %444 ]
  br label %448

448:                                              ; preds = %446, %379
  %449 = phi i32 [ 2, %379 ], [ %447, %446 ]
  br label %450

450:                                              ; preds = %448, %375
  %451 = phi i32 [ 4, %375 ], [ %449, %448 ]
  br label %452

452:                                              ; preds = %450, %371
  %453 = phi i32 [ 8, %371 ], [ %451, %450 ]
  %454 = sext i32 %453 to i64
  %455 = load ptr, ptr %12, align 8, !tbaa !5
  %456 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %455, i32 0, i32 0
  %457 = load i32, ptr %456, align 1, !tbaa !26
  %458 = zext i32 %457 to i64
  %459 = mul nsw i64 %454, %458
  %460 = load ptr, ptr %12, align 8, !tbaa !5
  %461 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %460, i32 0, i32 2
  %462 = load i32, ptr %461, align 1, !tbaa !19
  %463 = zext i32 %462 to i64
  %464 = mul nsw i64 %459, %463
  %465 = load ptr, ptr %12, align 8, !tbaa !5
  %466 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %465, i32 0, i32 10
  store i64 %464, ptr %466, align 1, !tbaa !28
  br label %467

467:                                              ; preds = %452, %348
  %468 = load i32, ptr %14, align 4, !tbaa !9
  %469 = icmp eq i32 0, %468
  br i1 %469, label %470, label %471

470:                                              ; preds = %467
  br label %551

471:                                              ; preds = %467
  %472 = load i32, ptr %14, align 4, !tbaa !9
  %473 = icmp eq i32 1, %472
  br i1 %473, label %474, label %475

474:                                              ; preds = %471
  br label %549

475:                                              ; preds = %471
  %476 = load i32, ptr %14, align 4, !tbaa !9
  %477 = icmp eq i32 2, %476
  br i1 %477, label %478, label %479

478:                                              ; preds = %475
  br label %547

479:                                              ; preds = %475
  %480 = load i32, ptr %14, align 4, !tbaa !9
  %481 = icmp eq i32 3, %480
  br i1 %481, label %482, label %483

482:                                              ; preds = %479
  br label %545

483:                                              ; preds = %479
  %484 = load i32, ptr %14, align 4, !tbaa !9
  %485 = icmp eq i32 4, %484
  br i1 %485, label %486, label %487

486:                                              ; preds = %483
  br label %543

487:                                              ; preds = %483
  %488 = load i32, ptr %14, align 4, !tbaa !9
  %489 = icmp eq i32 5, %488
  br i1 %489, label %490, label %491

490:                                              ; preds = %487
  br label %541

491:                                              ; preds = %487
  %492 = load i32, ptr %14, align 4, !tbaa !9
  %493 = icmp eq i32 6, %492
  br i1 %493, label %494, label %495

494:                                              ; preds = %491
  br label %539

495:                                              ; preds = %491
  %496 = load i32, ptr %14, align 4, !tbaa !9
  %497 = icmp eq i32 7, %496
  br i1 %497, label %498, label %499

498:                                              ; preds = %495
  br label %537

499:                                              ; preds = %495
  %500 = load i32, ptr %14, align 4, !tbaa !9
  %501 = icmp eq i32 8, %500
  br i1 %501, label %502, label %503

502:                                              ; preds = %499
  br label %535

503:                                              ; preds = %499
  %504 = load i32, ptr %14, align 4, !tbaa !9
  %505 = icmp eq i32 9, %504
  br i1 %505, label %506, label %507

506:                                              ; preds = %503
  br label %533

507:                                              ; preds = %503
  %508 = load i32, ptr %14, align 4, !tbaa !9
  %509 = icmp eq i32 10, %508
  br i1 %509, label %510, label %511

510:                                              ; preds = %507
  br label %531

511:                                              ; preds = %507
  %512 = load i32, ptr %14, align 4, !tbaa !9
  %513 = icmp eq i32 11, %512
  br i1 %513, label %514, label %515

514:                                              ; preds = %511
  br label %529

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

518:                                              ; preds = %515
  br label %527

519:                                              ; preds = %515
  %520 = load i32, ptr %14, align 4, !tbaa !9
  %521 = icmp eq i32 13, %520
  br i1 %521, label %522, label %523

522:                                              ; preds = %519
  br label %525

523:                                              ; preds = %519
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 383, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_gemm_setup_B_vnni2t_to_norm_into_stack) #5
  unreachable

524:                                              ; No predecessors!
  br label %525

525:                                              ; preds = %524, %522
  %526 = phi i32 [ 1, %522 ], [ 0, %524 ]
  br label %527

527:                                              ; preds = %525, %518
  %528 = phi i32 [ 1, %518 ], [ %526, %525 ]
  br label %529

529:                                              ; preds = %527, %514
  %530 = phi i32 [ 2, %514 ], [ %528, %527 ]
  br label %531

531:                                              ; preds = %529, %510
  %532 = phi i32 [ 2, %510 ], [ %530, %529 ]
  br label %533

533:                                              ; preds = %531, %506
  %534 = phi i32 [ 4, %506 ], [ %532, %531 ]
  br label %535

535:                                              ; preds = %533, %502
  %536 = phi i32 [ 4, %502 ], [ %534, %533 ]
  br label %537

537:                                              ; preds = %535, %498
  %538 = phi i32 [ 8, %498 ], [ %536, %535 ]
  br label %539

539:                                              ; preds = %537, %494
  %540 = phi i32 [ 8, %494 ], [ %538, %537 ]
  br label %541

541:                                              ; preds = %539, %490
  %542 = phi i32 [ 1, %490 ], [ %540, %539 ]
  br label %543

543:                                              ; preds = %541, %486
  %544 = phi i32 [ 1, %486 ], [ %542, %541 ]
  br label %545

545:                                              ; preds = %543, %482
  %546 = phi i32 [ 2, %482 ], [ %544, %543 ]
  br label %547

547:                                              ; preds = %545, %478
  %548 = phi i32 [ 2, %478 ], [ %546, %545 ]
  br label %549

549:                                              ; preds = %547, %474
  %550 = phi i32 [ 4, %474 ], [ %548, %547 ]
  br label %551

551:                                              ; preds = %549, %470
  %552 = phi i32 [ 8, %470 ], [ %550, %549 ]
  %553 = sext i32 %552 to i64
  %554 = load ptr, ptr %12, align 8, !tbaa !5
  %555 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %554, i32 0, i32 1
  %556 = load i32, ptr %555, align 1, !tbaa !18
  %557 = zext i32 %556 to i64
  %558 = mul nsw i64 %553, %557
  %559 = load ptr, ptr %12, align 8, !tbaa !5
  %560 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %559, i32 0, i32 2
  %561 = load i32, ptr %560, align 1, !tbaa !19
  %562 = zext i32 %561 to i64
  %563 = mul nsw i64 %558, %562
  %564 = load ptr, ptr %12, align 8, !tbaa !5
  %565 = getelementptr inbounds %struct.libxsmm_gemm_descriptor, ptr %564, i32 0, i32 11
  store i64 %563, ptr %565, align 1, !tbaa !21
  br label %566

566:                                              ; preds = %551, %226
  %567 = load ptr, ptr %8, align 8, !tbaa !5
  %568 = load i16, ptr %24, align 2, !tbaa !15
  call void @libxsmm_generator_x86_restore_gpr_regs(ptr noundef %567, i16 noundef zeroext %568)
  call void @llvm.lifetime.end.p0(i64 2, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #4
  ret void
}

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "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 = { 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, !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 24}
!12 = !{!"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, !13, i64 33, !13, 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}
!13 = !{!"long long", !7, i64 0}
!14 = !{!"short", !7, i64 0}
!15 = !{!14, !14, i64 0}
!16 = !{!17, !10, i64 12}
!17 = !{!"libxsmm_gp_reg_mapping_struct", !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, !10, 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}
!18 = !{!12, !10, i64 4}
!19 = !{!12, !10, i64 8}
!20 = !{!12, !10, i64 16}
!21 = !{!12, !13, i64 41}
!22 = !{!23, !10, i64 80}
!23 = !{!"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, !24, 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}
!24 = !{!"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}
!25 = !{!17, !10, i64 4}
!26 = !{!12, !10, i64 0}
!27 = !{!12, !10, i64 12}
!28 = !{!12, !13, i64 33}


; 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 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [77 x i8], align 1
@__PRETTY_FUNCTION__.libxsmm_generator_gemm_setup_B_vnni2t_to_norm_into_stack = external hidden unnamed_addr constant [259 x i8], align 1
@switch.table.libxsmm_generator_gemm_setup_B_vnni2t_to_norm_into_stack.2 = private unnamed_addr constant [11 x i64] [i64 2, i64 2, i64 1, i64 2, i64 8, i64 2, i64 4, i64 2, i64 2, i64 2, i64 1], align 8

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

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

declare void @libxsmm_x86_instruction_alu_reg(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

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

declare void @libxsmm_generator_x86_save_gpr_regs(ptr noundef, i16 noundef zeroext) local_unnamed_addr #1

declare void @libxsmm_generator_x86_restore_gpr_regs(ptr noundef, i16 noundef zeroext) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_gemm_setup_B_vnni2t_to_norm_into_stack(ptr noundef %0, ptr noundef %1, ptr nocapture noundef readonly %2, ptr noundef %3, ptr noundef %4, ptr nocapture noundef readonly %5, i32 noundef %6) local_unnamed_addr #0 {
  %8 = getelementptr inbounds i8, ptr %4, i64 24
  %9 = load i32, ptr %8, align 1, !tbaa !5
  tail call void @libxsmm_generator_x86_save_gpr_regs(ptr noundef %0, i16 noundef zeroext -250) #3
  %10 = getelementptr inbounds i8, ptr %2, i64 12
  %11 = load i32, ptr %10, align 4, !tbaa !12
  %12 = getelementptr inbounds i8, ptr %5, i64 4
  %13 = load i32, ptr %12, align 1, !tbaa !14
  %14 = getelementptr inbounds i8, ptr %5, i64 8
  %15 = load i32, ptr %14, align 1, !tbaa !15
  %16 = getelementptr inbounds i8, ptr %5, i64 16
  %17 = load i32, ptr %16, align 1, !tbaa !16
  %18 = getelementptr inbounds i8, ptr %5, i64 41
  %19 = load i64, ptr %18, align 1, !tbaa !17
  %20 = trunc i64 %19 to i32
  tail call void @libxsmm_generator_gemm_apply_ops_input_tensor_and_store_to_stack(ptr noundef %0, ptr noundef %1, ptr noundef %3, ptr noundef %4, i32 noundef %11, i32 noundef 15, i32 noundef 14, i32 noundef 13, i32 noundef 12, i32 noundef 2, i32 noundef 67, i32 noundef %13, i32 noundef %15, i32 noundef %17, i32 noundef %15, i32 noundef %20, i32 noundef %6, i32 noundef %6, i32 noundef %6, i32 noundef 4, i32 noundef 27, i32 noundef 25, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  tail call void @libxsmm_generator_gemm_getval_stack_var(ptr noundef %0, ptr noundef %3, i32 noundef 25, i32 noundef 14)
  %21 = getelementptr inbounds i8, ptr %3, i64 80
  %22 = load i32, ptr %21, align 8, !tbaa !18
  %23 = load i32, ptr %10, align 4, !tbaa !12
  tail call void @libxsmm_x86_instruction_alu_reg(ptr noundef %0, i32 noundef %22, i32 noundef 14, i32 noundef %23) #3
  %24 = insertelement <4 x i32> poison, i32 %9, i64 0
  %25 = shufflevector <4 x i32> %24, <4 x i32> poison, <4 x i32> zeroinitializer
  %26 = and <4 x i32> %25, <i32 196608, i32 458752, i32 65536, i32 131072>
  %27 = icmp eq <4 x i32> %26, zeroinitializer
  %28 = extractelement <4 x i1> %27, i64 0
  br i1 %28, label %45, label %29

29:                                               ; preds = %7
  %30 = getelementptr inbounds i8, ptr %2, i64 4
  %31 = load i32, ptr %30, align 4, !tbaa !22
  %32 = load i32, ptr %4, align 1, !tbaa !23
  %33 = shl i32 %32, 1
  %34 = getelementptr inbounds i8, ptr %4, i64 8
  %35 = load i32, ptr %34, align 1, !tbaa !15
  %36 = lshr i32 %35, 1
  %37 = getelementptr inbounds i8, ptr %5, i64 12
  %38 = load i32, ptr %37, align 1, !tbaa !24
  %39 = shl i32 %38, 1
  %40 = getelementptr inbounds i8, ptr %5, i64 33
  %41 = load i64, ptr %40, align 1, !tbaa !25
  %42 = trunc i64 %41 to i32
  tail call void @libxsmm_generator_gemm_apply_ops_input_tensor_and_store_to_stack(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %3, ptr noundef nonnull %4, i32 noundef %31, i32 noundef 15, i32 noundef 14, i32 noundef 13, i32 noundef 12, i32 noundef 2, i32 noundef 1, i32 noundef %33, i32 noundef %36, i32 noundef %39, i32 noundef %33, i32 noundef %42, i32 noundef %6, i32 noundef %6, i32 noundef %6, i32 noundef 3, i32 noundef 27, i32 noundef 24, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  tail call void @libxsmm_generator_gemm_getval_stack_var(ptr noundef %0, ptr noundef nonnull %3, i32 noundef 24, i32 noundef 14)
  %43 = load i32, ptr %21, align 8, !tbaa !18
  %44 = load i32, ptr %30, align 4, !tbaa !22
  tail call void @libxsmm_x86_instruction_alu_reg(ptr noundef %0, i32 noundef %43, i32 noundef 14, i32 noundef %44) #3
  br label %45

45:                                               ; preds = %7, %29
  %46 = extractelement <4 x i1> %27, i64 1
  br i1 %46, label %108, label %47

47:                                               ; preds = %45
  %48 = extractelement <4 x i1> %27, i64 3
  br i1 %48, label %69, label %49

49:                                               ; preds = %47
  %50 = load i32, ptr %8, align 1, !tbaa !5
  %51 = and i32 %50, -262145
  %52 = xor i32 %51, 393216
  store i32 %52, ptr %8, align 1, !tbaa !5
  %53 = load i32, ptr %4, align 1, !tbaa !23
  %54 = getelementptr inbounds i8, ptr %4, i64 12
  store i32 %53, ptr %54, align 1, !tbaa !24
  switch i32 %6, label %55 [
    i32 0, label %60
    i32 1, label %.fold.split
  ]

55:                                               ; preds = %49
  %56 = and i32 %6, -2
  %switch.tableidx = add i32 %56, -2
  %57 = icmp ult i32 %switch.tableidx, 11
  br i1 %57, label %switch.hole_check, label %58

58:                                               ; preds = %switch.hole_check, %55
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 375, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_setup_B_vnni2t_to_norm_into_stack) #4
  unreachable

.fold.split:                                      ; preds = %49
  br label %60

switch.hole_check:                                ; preds = %55
  %switch.maskindex = trunc nuw i32 %switch.tableidx to i16
  %switch.shifted = lshr i16 1365, %switch.maskindex
  %switch.lobit = trunc i16 %switch.shifted to i1
  br i1 %switch.lobit, label %switch.lookup, label %58

switch.lookup:                                    ; preds = %switch.hole_check
  %59 = zext nneg i32 %switch.tableidx to i64
  %switch.gep = getelementptr inbounds [11 x i64], ptr @switch.table.libxsmm_generator_gemm_setup_B_vnni2t_to_norm_into_stack.2, i64 0, i64 %59
  %switch.load = load i64, ptr %switch.gep, align 8
  br label %60

60:                                               ; preds = %switch.lookup, %49, %.fold.split
  %61 = phi i64 [ 8, %49 ], [ 4, %.fold.split ], [ %switch.load, %switch.lookup ]
  %62 = zext i32 %53 to i64
  %63 = mul nuw nsw i64 %61, %62
  %64 = getelementptr inbounds i8, ptr %4, i64 8
  %65 = load i32, ptr %64, align 1, !tbaa !15
  %66 = zext i32 %65 to i64
  %67 = mul nuw nsw i64 %63, %66
  %68 = getelementptr inbounds i8, ptr %4, i64 33
  store i64 %67, ptr %68, align 1, !tbaa !25
  br label %69

69:                                               ; preds = %60, %47
  %70 = extractelement <4 x i1> %27, i64 2
  br i1 %70, label %91, label %71

71:                                               ; preds = %69
  %72 = load i32, ptr %8, align 1, !tbaa !5
  %73 = and i32 %72, -262145
  %74 = xor i32 %73, 327680
  store i32 %74, ptr %8, align 1, !tbaa !5
  %75 = load i32, ptr %4, align 1, !tbaa !23
  %76 = getelementptr inbounds i8, ptr %4, i64 12
  store i32 %75, ptr %76, align 1, !tbaa !24
  switch i32 %6, label %77 [
    i32 0, label %82
    i32 1, label %.fold.split178
  ]

77:                                               ; preds = %71
  %78 = and i32 %6, -2
  %switch.tableidx194 = add i32 %78, -2
  %79 = icmp ult i32 %switch.tableidx194, 11
  br i1 %79, label %switch.hole_check195, label %80

80:                                               ; preds = %switch.hole_check195, %77
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 381, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_setup_B_vnni2t_to_norm_into_stack) #4
  unreachable

.fold.split178:                                   ; preds = %71
  br label %82

switch.hole_check195:                             ; preds = %77
  %switch.maskindex197 = trunc nuw i32 %switch.tableidx194 to i16
  %switch.shifted198 = lshr i16 1365, %switch.maskindex197
  %switch.lobit199 = trunc i16 %switch.shifted198 to i1
  br i1 %switch.lobit199, label %switch.lookup196, label %80

switch.lookup196:                                 ; preds = %switch.hole_check195
  %81 = zext nneg i32 %switch.tableidx194 to i64
  %switch.gep200 = getelementptr inbounds [11 x i64], ptr @switch.table.libxsmm_generator_gemm_setup_B_vnni2t_to_norm_into_stack.2, i64 0, i64 %81
  %switch.load201 = load i64, ptr %switch.gep200, align 8
  br label %82

82:                                               ; preds = %switch.lookup196, %71, %.fold.split178
  %83 = phi i64 [ 8, %71 ], [ 4, %.fold.split178 ], [ %switch.load201, %switch.lookup196 ]
  %84 = zext i32 %75 to i64
  %85 = mul nuw nsw i64 %83, %84
  %86 = getelementptr inbounds i8, ptr %4, i64 8
  %87 = load i32, ptr %86, align 1, !tbaa !15
  %88 = zext i32 %87 to i64
  %89 = mul nuw nsw i64 %85, %88
  %90 = getelementptr inbounds i8, ptr %4, i64 33
  store i64 %89, ptr %90, align 1, !tbaa !25
  br label %91

91:                                               ; preds = %82, %69
  switch i32 %6, label %92 [
    i32 0, label %97
    i32 1, label %.fold.split179
  ]

92:                                               ; preds = %91
  %93 = and i32 %6, -2
  %switch.tableidx203 = add i32 %93, -2
  %94 = icmp ult i32 %switch.tableidx203, 11
  br i1 %94, label %switch.hole_check204, label %95

95:                                               ; preds = %switch.hole_check204, %92
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 383, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_gemm_setup_B_vnni2t_to_norm_into_stack) #4
  unreachable

.fold.split179:                                   ; preds = %91
  br label %97

switch.hole_check204:                             ; preds = %92
  %switch.maskindex206 = trunc nuw i32 %switch.tableidx203 to i16
  %switch.shifted207 = lshr i16 1365, %switch.maskindex206
  %switch.lobit208 = trunc i16 %switch.shifted207 to i1
  br i1 %switch.lobit208, label %switch.lookup205, label %95

switch.lookup205:                                 ; preds = %switch.hole_check204
  %96 = zext nneg i32 %switch.tableidx203 to i64
  %switch.gep209 = getelementptr inbounds [11 x i64], ptr @switch.table.libxsmm_generator_gemm_setup_B_vnni2t_to_norm_into_stack.2, i64 0, i64 %96
  %switch.load210 = load i64, ptr %switch.gep209, align 8
  br label %97

97:                                               ; preds = %switch.lookup205, %91, %.fold.split179
  %98 = phi i64 [ 8, %91 ], [ 4, %.fold.split179 ], [ %switch.load210, %switch.lookup205 ]
  %99 = getelementptr inbounds i8, ptr %4, i64 4
  %100 = load i32, ptr %99, align 1, !tbaa !14
  %101 = zext i32 %100 to i64
  %102 = mul nuw nsw i64 %98, %101
  %103 = getelementptr inbounds i8, ptr %4, i64 8
  %104 = load i32, ptr %103, align 1, !tbaa !15
  %105 = zext i32 %104 to i64
  %106 = mul nuw nsw i64 %102, %105
  %107 = getelementptr inbounds i8, ptr %4, i64 41
  store i64 %106, ptr %107, align 1, !tbaa !17
  br label %108

108:                                              ; preds = %97, %45
  tail call void @libxsmm_generator_x86_restore_gpr_regs(ptr noundef %0, i16 noundef zeroext -250) #3
  ret void
}

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 = { nounwind }
attributes #4 = { 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 24}
!6 = !{!"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, !10, i64 33, !10, 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}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"long long", !8, i64 0}
!11 = !{!"short", !8, i64 0}
!12 = !{!13, !7, i64 12}
!13 = !{!"libxsmm_gp_reg_mapping_struct", !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, !7, 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}
!14 = !{!6, !7, i64 4}
!15 = !{!6, !7, i64 8}
!16 = !{!6, !7, i64 16}
!17 = !{!6, !10, i64 41}
!18 = !{!19, !7, i64 80}
!19 = !{!"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, !20, 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, !21, i64 592, !7, i64 600, !7, i64 604, !7, i64 608, !7, i64 612, !21, 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}
!20 = !{!"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}
!21 = !{!"any pointer", !8, i64 0}
!22 = !{!13, !7, i64 4}
!23 = !{!6, !7, i64 0}
!24 = !{!6, !7, i64 12}
!25 = !{!6, !10, i64 33}


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