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

; 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_generated_code = type { ptr, i32, i32, i32, i32, i32, i32 }
%struct.libxsmm_matequation_kernel_config_struct = type { 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, [32 x i32], i32, i32, i32, i32, ptr, ptr, i32, i32, i32, [64 x i32], [64 x i32], %struct.libxsmm_mateltwise_kernel_config_struct, %struct.libxsmm_micro_kernel_config }
%struct.libxsmm_mateltwise_kernel_config_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, 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, 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, i8 }
%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_meqn_descriptor = type <{ i32, i32, i32, i8, i32 }>
%struct.libxsmm_matequation_gp_reg_mapping_struct = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.libxsmm_mateltwise_gp_reg_mapping_struct, %struct.libxsmm_gp_reg_mapping_struct }
%struct.libxsmm_mateltwise_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, i32, i32, i32, i32 }
%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 }

@.str = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [98 x i8], align 1
@__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block = external hidden unnamed_addr constant [267 x i8], align 1

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

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

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

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

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

declare void @libxsmm_x86_instruction_unified_vec_move(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #3

declare void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef) #3

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_mateqn_store_2d_reg_block(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %9) #0 {
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %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 i32, align 4
  %25 = alloca i8, align 1
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  store ptr %0, ptr %11, align 8, !tbaa !5
  store ptr %1, ptr %12, align 8, !tbaa !5
  store ptr %2, ptr %13, align 8, !tbaa !5
  store ptr %3, ptr %14, align 8, !tbaa !5
  store i32 %4, ptr %15, align 4, !tbaa !9
  store i32 %5, ptr %16, align 4, !tbaa !9
  store i32 %6, ptr %17, align 4, !tbaa !9
  store i32 %7, ptr %18, align 4, !tbaa !9
  store i32 %8, ptr %19, align 4, !tbaa !9
  store i32 %9, ptr %20, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #4
  %28 = load ptr, ptr %13, align 8, !tbaa !5
  %29 = load i32, ptr %16, align 4, !tbaa !9
  %30 = call i32 @libxsmm_generator_matequation_regblocks_get_start_of_register_block(ptr noundef %28, i32 noundef %29)
  store i32 %30, ptr %24, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #4
  %31 = load ptr, ptr %11, align 8, !tbaa !5
  %32 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %31, i32 0, i32 6
  %33 = load i32, ptr %32, align 4, !tbaa !11
  %34 = icmp ult i32 %33, 1101
  %35 = zext i1 %34 to i64
  %36 = select i1 %34, i32 121, i32 122
  %37 = trunc i32 %36 to i8
  store i8 %37, ptr %25, align 1, !tbaa !13
  %38 = load ptr, ptr %13, align 8, !tbaa !5
  %39 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %38, i32 0, i32 24
  %40 = load i32, ptr %39, align 8, !tbaa !14
  %41 = icmp ugt i32 %40, 0
  br i1 %41, label %42, label %43

42:                                               ; preds = %10
  store i32 1, ptr %26, align 4
  br label %3720

43:                                               ; preds = %10
  %44 = load ptr, ptr %14, align 8, !tbaa !5
  %45 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %44, i32 0, i32 3
  %46 = load i8, ptr %45, align 1, !tbaa !20
  %47 = zext i8 %46 to i32
  %48 = ashr i32 %47, 4
  %49 = icmp eq i32 0, %48
  br i1 %49, label %50, label %212

50:                                               ; preds = %43
  %51 = load ptr, ptr %14, align 8, !tbaa !5
  %52 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %51, i32 0, i32 3
  %53 = load i8, ptr %52, align 1, !tbaa !20
  %54 = zext i8 %53 to i32
  %55 = and i32 %54, 15
  %56 = icmp eq i32 0, %55
  br i1 %56, label %57, label %58

57:                                               ; preds = %50
  br label %210

58:                                               ; preds = %50
  %59 = load ptr, ptr %14, align 8, !tbaa !5
  %60 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %59, i32 0, i32 3
  %61 = load i8, ptr %60, align 1, !tbaa !20
  %62 = zext i8 %61 to i32
  %63 = and i32 %62, 15
  %64 = icmp eq i32 1, %63
  br i1 %64, label %65, label %66

65:                                               ; preds = %58
  br label %208

66:                                               ; preds = %58
  %67 = load ptr, ptr %14, align 8, !tbaa !5
  %68 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %67, i32 0, i32 3
  %69 = load i8, ptr %68, align 1, !tbaa !20
  %70 = zext i8 %69 to i32
  %71 = and i32 %70, 15
  %72 = icmp eq i32 2, %71
  br i1 %72, label %73, label %74

73:                                               ; preds = %66
  br label %206

74:                                               ; preds = %66
  %75 = load ptr, ptr %14, align 8, !tbaa !5
  %76 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %75, i32 0, i32 3
  %77 = load i8, ptr %76, align 1, !tbaa !20
  %78 = zext i8 %77 to i32
  %79 = and i32 %78, 15
  %80 = icmp eq i32 3, %79
  br i1 %80, label %81, label %82

81:                                               ; preds = %74
  br label %204

82:                                               ; preds = %74
  %83 = load ptr, ptr %14, align 8, !tbaa !5
  %84 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %83, i32 0, i32 3
  %85 = load i8, ptr %84, align 1, !tbaa !20
  %86 = zext i8 %85 to i32
  %87 = and i32 %86, 15
  %88 = icmp eq i32 4, %87
  br i1 %88, label %89, label %90

89:                                               ; preds = %82
  br label %202

90:                                               ; preds = %82
  %91 = load ptr, ptr %14, align 8, !tbaa !5
  %92 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %91, i32 0, i32 3
  %93 = load i8, ptr %92, align 1, !tbaa !20
  %94 = zext i8 %93 to i32
  %95 = and i32 %94, 15
  %96 = icmp eq i32 5, %95
  br i1 %96, label %97, label %98

97:                                               ; preds = %90
  br label %200

98:                                               ; preds = %90
  %99 = load ptr, ptr %14, align 8, !tbaa !5
  %100 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %99, i32 0, i32 3
  %101 = load i8, ptr %100, align 1, !tbaa !20
  %102 = zext i8 %101 to i32
  %103 = and i32 %102, 15
  %104 = icmp eq i32 6, %103
  br i1 %104, label %105, label %106

105:                                              ; preds = %98
  br label %198

106:                                              ; preds = %98
  %107 = load ptr, ptr %14, align 8, !tbaa !5
  %108 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %107, i32 0, i32 3
  %109 = load i8, ptr %108, align 1, !tbaa !20
  %110 = zext i8 %109 to i32
  %111 = and i32 %110, 15
  %112 = icmp eq i32 7, %111
  br i1 %112, label %113, label %114

113:                                              ; preds = %106
  br label %196

114:                                              ; preds = %106
  %115 = load ptr, ptr %14, align 8, !tbaa !5
  %116 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %115, i32 0, i32 3
  %117 = load i8, ptr %116, align 1, !tbaa !20
  %118 = zext i8 %117 to i32
  %119 = and i32 %118, 15
  %120 = icmp eq i32 8, %119
  br i1 %120, label %121, label %122

121:                                              ; preds = %114
  br label %194

122:                                              ; preds = %114
  %123 = load ptr, ptr %14, align 8, !tbaa !5
  %124 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %123, i32 0, i32 3
  %125 = load i8, ptr %124, align 1, !tbaa !20
  %126 = zext i8 %125 to i32
  %127 = and i32 %126, 15
  %128 = icmp eq i32 9, %127
  br i1 %128, label %129, label %130

129:                                              ; preds = %122
  br label %192

130:                                              ; preds = %122
  %131 = load ptr, ptr %14, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %131, i32 0, i32 3
  %133 = load i8, ptr %132, align 1, !tbaa !20
  %134 = zext i8 %133 to i32
  %135 = and i32 %134, 15
  %136 = icmp eq i32 10, %135
  br i1 %136, label %137, label %138

137:                                              ; preds = %130
  br label %190

138:                                              ; preds = %130
  %139 = load ptr, ptr %14, align 8, !tbaa !5
  %140 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %139, i32 0, i32 3
  %141 = load i8, ptr %140, align 1, !tbaa !20
  %142 = zext i8 %141 to i32
  %143 = and i32 %142, 15
  %144 = icmp eq i32 11, %143
  br i1 %144, label %145, label %146

145:                                              ; preds = %138
  br label %188

146:                                              ; preds = %138
  %147 = load ptr, ptr %14, align 8, !tbaa !5
  %148 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %147, i32 0, i32 3
  %149 = load i8, ptr %148, align 1, !tbaa !20
  %150 = zext i8 %149 to i32
  %151 = and i32 %150, 15
  %152 = icmp eq i32 12, %151
  br i1 %152, label %153, label %154

153:                                              ; preds = %146
  br label %186

154:                                              ; preds = %146
  %155 = load ptr, ptr %14, align 8, !tbaa !5
  %156 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %155, i32 0, i32 3
  %157 = load i8, ptr %156, align 1, !tbaa !20
  %158 = zext i8 %157 to i32
  %159 = and i32 %158, 15
  %160 = icmp eq i32 13, %159
  br i1 %160, label %161, label %162

161:                                              ; preds = %154
  br label %184

162:                                              ; preds = %154
  %163 = load ptr, ptr %14, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %163, i32 0, i32 3
  %165 = load i8, ptr %164, align 1, !tbaa !20
  %166 = zext i8 %165 to i32
  %167 = and i32 %166, 15
  %168 = icmp eq i32 14, %167
  br i1 %168, label %169, label %170

169:                                              ; preds = %162
  br label %182

170:                                              ; preds = %162
  %171 = load ptr, ptr %14, align 8, !tbaa !5
  %172 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %171, i32 0, i32 3
  %173 = load i8, ptr %172, align 1, !tbaa !20
  %174 = zext i8 %173 to i32
  %175 = and i32 %174, 15
  %176 = icmp eq i32 15, %175
  br i1 %176, label %177, label %178

177:                                              ; preds = %170
  br label %180

178:                                              ; preds = %170
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 872, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

179:                                              ; No predecessors!
  br label %180

180:                                              ; preds = %179, %177
  %181 = phi i32 [ 15, %177 ], [ 0, %179 ]
  br label %182

182:                                              ; preds = %180, %169
  %183 = phi i32 [ 14, %169 ], [ %181, %180 ]
  br label %184

184:                                              ; preds = %182, %161
  %185 = phi i32 [ 12, %161 ], [ %183, %182 ]
  br label %186

186:                                              ; preds = %184, %153
  %187 = phi i32 [ 12, %153 ], [ %185, %184 ]
  br label %188

188:                                              ; preds = %186, %145
  %189 = phi i32 [ 10, %145 ], [ %187, %186 ]
  br label %190

190:                                              ; preds = %188, %137
  %191 = phi i32 [ 10, %137 ], [ %189, %188 ]
  br label %192

192:                                              ; preds = %190, %129
  %193 = phi i32 [ 8, %129 ], [ %191, %190 ]
  br label %194

194:                                              ; preds = %192, %121
  %195 = phi i32 [ 8, %121 ], [ %193, %192 ]
  br label %196

196:                                              ; preds = %194, %113
  %197 = phi i32 [ 6, %113 ], [ %195, %194 ]
  br label %198

198:                                              ; preds = %196, %105
  %199 = phi i32 [ 6, %105 ], [ %197, %196 ]
  br label %200

200:                                              ; preds = %198, %97
  %201 = phi i32 [ 5, %97 ], [ %199, %198 ]
  br label %202

202:                                              ; preds = %200, %89
  %203 = phi i32 [ 4, %89 ], [ %201, %200 ]
  br label %204

204:                                              ; preds = %202, %81
  %205 = phi i32 [ 3, %81 ], [ %203, %202 ]
  br label %206

206:                                              ; preds = %204, %73
  %207 = phi i32 [ 2, %73 ], [ %205, %204 ]
  br label %208

208:                                              ; preds = %206, %65
  %209 = phi i32 [ 1, %65 ], [ %207, %206 ]
  br label %210

210:                                              ; preds = %208, %57
  %211 = phi i32 [ 0, %57 ], [ %209, %208 ]
  br label %218

212:                                              ; preds = %43
  %213 = load ptr, ptr %14, align 8, !tbaa !5
  %214 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %213, i32 0, i32 3
  %215 = load i8, ptr %214, align 1, !tbaa !20
  %216 = zext i8 %215 to i32
  %217 = ashr i32 %216, 4
  br label %218

218:                                              ; preds = %212, %210
  %219 = phi i32 [ %211, %210 ], [ %217, %212 ]
  %220 = icmp eq i32 %219, 2
  br i1 %220, label %399, label %221

221:                                              ; preds = %218
  %222 = load ptr, ptr %14, align 8, !tbaa !5
  %223 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %222, i32 0, i32 3
  %224 = load i8, ptr %223, align 1, !tbaa !20
  %225 = zext i8 %224 to i32
  %226 = ashr i32 %225, 4
  %227 = icmp eq i32 0, %226
  br i1 %227, label %228, label %390

228:                                              ; preds = %221
  %229 = load ptr, ptr %14, align 8, !tbaa !5
  %230 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %229, i32 0, i32 3
  %231 = load i8, ptr %230, align 1, !tbaa !20
  %232 = zext i8 %231 to i32
  %233 = and i32 %232, 15
  %234 = icmp eq i32 0, %233
  br i1 %234, label %235, label %236

235:                                              ; preds = %228
  br label %388

236:                                              ; preds = %228
  %237 = load ptr, ptr %14, align 8, !tbaa !5
  %238 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %237, i32 0, i32 3
  %239 = load i8, ptr %238, align 1, !tbaa !20
  %240 = zext i8 %239 to i32
  %241 = and i32 %240, 15
  %242 = icmp eq i32 1, %241
  br i1 %242, label %243, label %244

243:                                              ; preds = %236
  br label %386

244:                                              ; preds = %236
  %245 = load ptr, ptr %14, align 8, !tbaa !5
  %246 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %245, i32 0, i32 3
  %247 = load i8, ptr %246, align 1, !tbaa !20
  %248 = zext i8 %247 to i32
  %249 = and i32 %248, 15
  %250 = icmp eq i32 2, %249
  br i1 %250, label %251, label %252

251:                                              ; preds = %244
  br label %384

252:                                              ; preds = %244
  %253 = load ptr, ptr %14, align 8, !tbaa !5
  %254 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %253, i32 0, i32 3
  %255 = load i8, ptr %254, align 1, !tbaa !20
  %256 = zext i8 %255 to i32
  %257 = and i32 %256, 15
  %258 = icmp eq i32 3, %257
  br i1 %258, label %259, label %260

259:                                              ; preds = %252
  br label %382

260:                                              ; preds = %252
  %261 = load ptr, ptr %14, align 8, !tbaa !5
  %262 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %261, i32 0, i32 3
  %263 = load i8, ptr %262, align 1, !tbaa !20
  %264 = zext i8 %263 to i32
  %265 = and i32 %264, 15
  %266 = icmp eq i32 4, %265
  br i1 %266, label %267, label %268

267:                                              ; preds = %260
  br label %380

268:                                              ; preds = %260
  %269 = load ptr, ptr %14, align 8, !tbaa !5
  %270 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %269, i32 0, i32 3
  %271 = load i8, ptr %270, align 1, !tbaa !20
  %272 = zext i8 %271 to i32
  %273 = and i32 %272, 15
  %274 = icmp eq i32 5, %273
  br i1 %274, label %275, label %276

275:                                              ; preds = %268
  br label %378

276:                                              ; preds = %268
  %277 = load ptr, ptr %14, align 8, !tbaa !5
  %278 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %277, i32 0, i32 3
  %279 = load i8, ptr %278, align 1, !tbaa !20
  %280 = zext i8 %279 to i32
  %281 = and i32 %280, 15
  %282 = icmp eq i32 6, %281
  br i1 %282, label %283, label %284

283:                                              ; preds = %276
  br label %376

284:                                              ; preds = %276
  %285 = load ptr, ptr %14, align 8, !tbaa !5
  %286 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %285, i32 0, i32 3
  %287 = load i8, ptr %286, align 1, !tbaa !20
  %288 = zext i8 %287 to i32
  %289 = and i32 %288, 15
  %290 = icmp eq i32 7, %289
  br i1 %290, label %291, label %292

291:                                              ; preds = %284
  br label %374

292:                                              ; preds = %284
  %293 = load ptr, ptr %14, align 8, !tbaa !5
  %294 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %293, i32 0, i32 3
  %295 = load i8, ptr %294, align 1, !tbaa !20
  %296 = zext i8 %295 to i32
  %297 = and i32 %296, 15
  %298 = icmp eq i32 8, %297
  br i1 %298, label %299, label %300

299:                                              ; preds = %292
  br label %372

300:                                              ; preds = %292
  %301 = load ptr, ptr %14, align 8, !tbaa !5
  %302 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %301, i32 0, i32 3
  %303 = load i8, ptr %302, align 1, !tbaa !20
  %304 = zext i8 %303 to i32
  %305 = and i32 %304, 15
  %306 = icmp eq i32 9, %305
  br i1 %306, label %307, label %308

307:                                              ; preds = %300
  br label %370

308:                                              ; preds = %300
  %309 = load ptr, ptr %14, align 8, !tbaa !5
  %310 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %309, i32 0, i32 3
  %311 = load i8, ptr %310, align 1, !tbaa !20
  %312 = zext i8 %311 to i32
  %313 = and i32 %312, 15
  %314 = icmp eq i32 10, %313
  br i1 %314, label %315, label %316

315:                                              ; preds = %308
  br label %368

316:                                              ; preds = %308
  %317 = load ptr, ptr %14, align 8, !tbaa !5
  %318 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %317, i32 0, i32 3
  %319 = load i8, ptr %318, align 1, !tbaa !20
  %320 = zext i8 %319 to i32
  %321 = and i32 %320, 15
  %322 = icmp eq i32 11, %321
  br i1 %322, label %323, label %324

323:                                              ; preds = %316
  br label %366

324:                                              ; preds = %316
  %325 = load ptr, ptr %14, align 8, !tbaa !5
  %326 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %325, i32 0, i32 3
  %327 = load i8, ptr %326, align 1, !tbaa !20
  %328 = zext i8 %327 to i32
  %329 = and i32 %328, 15
  %330 = icmp eq i32 12, %329
  br i1 %330, label %331, label %332

331:                                              ; preds = %324
  br label %364

332:                                              ; preds = %324
  %333 = load ptr, ptr %14, align 8, !tbaa !5
  %334 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %333, i32 0, i32 3
  %335 = load i8, ptr %334, align 1, !tbaa !20
  %336 = zext i8 %335 to i32
  %337 = and i32 %336, 15
  %338 = icmp eq i32 13, %337
  br i1 %338, label %339, label %340

339:                                              ; preds = %332
  br label %362

340:                                              ; preds = %332
  %341 = load ptr, ptr %14, align 8, !tbaa !5
  %342 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %341, i32 0, i32 3
  %343 = load i8, ptr %342, align 1, !tbaa !20
  %344 = zext i8 %343 to i32
  %345 = and i32 %344, 15
  %346 = icmp eq i32 14, %345
  br i1 %346, label %347, label %348

347:                                              ; preds = %340
  br label %360

348:                                              ; preds = %340
  %349 = load ptr, ptr %14, align 8, !tbaa !5
  %350 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %349, i32 0, i32 3
  %351 = load i8, ptr %350, align 1, !tbaa !20
  %352 = zext i8 %351 to i32
  %353 = and i32 %352, 15
  %354 = icmp eq i32 15, %353
  br i1 %354, label %355, label %356

355:                                              ; preds = %348
  br label %358

356:                                              ; preds = %348
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 872, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

357:                                              ; No predecessors!
  br label %358

358:                                              ; preds = %357, %355
  %359 = phi i32 [ 15, %355 ], [ 0, %357 ]
  br label %360

360:                                              ; preds = %358, %347
  %361 = phi i32 [ 14, %347 ], [ %359, %358 ]
  br label %362

362:                                              ; preds = %360, %339
  %363 = phi i32 [ 12, %339 ], [ %361, %360 ]
  br label %364

364:                                              ; preds = %362, %331
  %365 = phi i32 [ 12, %331 ], [ %363, %362 ]
  br label %366

366:                                              ; preds = %364, %323
  %367 = phi i32 [ 10, %323 ], [ %365, %364 ]
  br label %368

368:                                              ; preds = %366, %315
  %369 = phi i32 [ 10, %315 ], [ %367, %366 ]
  br label %370

370:                                              ; preds = %368, %307
  %371 = phi i32 [ 8, %307 ], [ %369, %368 ]
  br label %372

372:                                              ; preds = %370, %299
  %373 = phi i32 [ 8, %299 ], [ %371, %370 ]
  br label %374

374:                                              ; preds = %372, %291
  %375 = phi i32 [ 6, %291 ], [ %373, %372 ]
  br label %376

376:                                              ; preds = %374, %283
  %377 = phi i32 [ 6, %283 ], [ %375, %374 ]
  br label %378

378:                                              ; preds = %376, %275
  %379 = phi i32 [ 5, %275 ], [ %377, %376 ]
  br label %380

380:                                              ; preds = %378, %267
  %381 = phi i32 [ 4, %267 ], [ %379, %378 ]
  br label %382

382:                                              ; preds = %380, %259
  %383 = phi i32 [ 3, %259 ], [ %381, %380 ]
  br label %384

384:                                              ; preds = %382, %251
  %385 = phi i32 [ 2, %251 ], [ %383, %382 ]
  br label %386

386:                                              ; preds = %384, %243
  %387 = phi i32 [ 1, %243 ], [ %385, %384 ]
  br label %388

388:                                              ; preds = %386, %235
  %389 = phi i32 [ 0, %235 ], [ %387, %386 ]
  br label %396

390:                                              ; preds = %221
  %391 = load ptr, ptr %14, align 8, !tbaa !5
  %392 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %391, i32 0, i32 3
  %393 = load i8, ptr %392, align 1, !tbaa !20
  %394 = zext i8 %393 to i32
  %395 = ashr i32 %394, 4
  br label %396

396:                                              ; preds = %390, %388
  %397 = phi i32 [ %389, %388 ], [ %395, %390 ]
  %398 = icmp eq i32 %397, 3
  br i1 %398, label %399, label %415

399:                                              ; preds = %396, %218
  %400 = load ptr, ptr %11, align 8, !tbaa !5
  %401 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %400, i32 0, i32 6
  %402 = load i32, ptr %401, align 4, !tbaa !11
  %403 = icmp ult i32 %402, 1051
  br i1 %403, label %404, label %414

404:                                              ; preds = %399
  %405 = load i32, ptr %19, align 4, !tbaa !9
  %406 = icmp ugt i32 %405, 0
  br i1 %406, label %407, label %413

407:                                              ; preds = %404
  %408 = load ptr, ptr %14, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %408, i32 0, i32 0
  %410 = load i32, ptr %409, align 1, !tbaa !22
  %411 = load i32, ptr %15, align 4, !tbaa !9
  %412 = urem i32 %410, %411
  store i32 %412, ptr %20, align 4, !tbaa !9
  br label %413

413:                                              ; preds = %407, %404
  br label %414

414:                                              ; preds = %413, %399
  br label %415

415:                                              ; preds = %414, %396
  store i32 0, ptr %21, align 4, !tbaa !9
  br label %416

416:                                              ; preds = %3716, %415
  %417 = load i32, ptr %21, align 4, !tbaa !9
  %418 = load i32, ptr %18, align 4, !tbaa !9
  %419 = icmp ult i32 %417, %418
  br i1 %419, label %420, label %3719

420:                                              ; preds = %416
  store i32 0, ptr %22, align 4, !tbaa !9
  br label %421

421:                                              ; preds = %3712, %420
  %422 = load i32, ptr %22, align 4, !tbaa !9
  %423 = load i32, ptr %17, align 4, !tbaa !9
  %424 = icmp ult i32 %422, %423
  br i1 %424, label %425, label %3715

425:                                              ; preds = %421
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #4
  %426 = load ptr, ptr %14, align 8, !tbaa !5
  %427 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %426, i32 0, i32 3
  %428 = load i8, ptr %427, align 1, !tbaa !20
  %429 = zext i8 %428 to i32
  %430 = ashr i32 %429, 4
  %431 = icmp eq i32 0, %430
  br i1 %431, label %432, label %594

432:                                              ; preds = %425
  %433 = load ptr, ptr %14, align 8, !tbaa !5
  %434 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %433, i32 0, i32 3
  %435 = load i8, ptr %434, align 1, !tbaa !20
  %436 = zext i8 %435 to i32
  %437 = and i32 %436, 15
  %438 = icmp eq i32 0, %437
  br i1 %438, label %439, label %440

439:                                              ; preds = %432
  br label %592

440:                                              ; preds = %432
  %441 = load ptr, ptr %14, align 8, !tbaa !5
  %442 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %441, i32 0, i32 3
  %443 = load i8, ptr %442, align 1, !tbaa !20
  %444 = zext i8 %443 to i32
  %445 = and i32 %444, 15
  %446 = icmp eq i32 1, %445
  br i1 %446, label %447, label %448

447:                                              ; preds = %440
  br label %590

448:                                              ; preds = %440
  %449 = load ptr, ptr %14, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %449, i32 0, i32 3
  %451 = load i8, ptr %450, align 1, !tbaa !20
  %452 = zext i8 %451 to i32
  %453 = and i32 %452, 15
  %454 = icmp eq i32 2, %453
  br i1 %454, label %455, label %456

455:                                              ; preds = %448
  br label %588

456:                                              ; preds = %448
  %457 = load ptr, ptr %14, align 8, !tbaa !5
  %458 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %457, i32 0, i32 3
  %459 = load i8, ptr %458, align 1, !tbaa !20
  %460 = zext i8 %459 to i32
  %461 = and i32 %460, 15
  %462 = icmp eq i32 3, %461
  br i1 %462, label %463, label %464

463:                                              ; preds = %456
  br label %586

464:                                              ; preds = %456
  %465 = load ptr, ptr %14, align 8, !tbaa !5
  %466 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %465, i32 0, i32 3
  %467 = load i8, ptr %466, align 1, !tbaa !20
  %468 = zext i8 %467 to i32
  %469 = and i32 %468, 15
  %470 = icmp eq i32 4, %469
  br i1 %470, label %471, label %472

471:                                              ; preds = %464
  br label %584

472:                                              ; preds = %464
  %473 = load ptr, ptr %14, align 8, !tbaa !5
  %474 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %473, i32 0, i32 3
  %475 = load i8, ptr %474, align 1, !tbaa !20
  %476 = zext i8 %475 to i32
  %477 = and i32 %476, 15
  %478 = icmp eq i32 5, %477
  br i1 %478, label %479, label %480

479:                                              ; preds = %472
  br label %582

480:                                              ; preds = %472
  %481 = load ptr, ptr %14, align 8, !tbaa !5
  %482 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %481, i32 0, i32 3
  %483 = load i8, ptr %482, align 1, !tbaa !20
  %484 = zext i8 %483 to i32
  %485 = and i32 %484, 15
  %486 = icmp eq i32 6, %485
  br i1 %486, label %487, label %488

487:                                              ; preds = %480
  br label %580

488:                                              ; preds = %480
  %489 = load ptr, ptr %14, align 8, !tbaa !5
  %490 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %489, i32 0, i32 3
  %491 = load i8, ptr %490, align 1, !tbaa !20
  %492 = zext i8 %491 to i32
  %493 = and i32 %492, 15
  %494 = icmp eq i32 7, %493
  br i1 %494, label %495, label %496

495:                                              ; preds = %488
  br label %578

496:                                              ; preds = %488
  %497 = load ptr, ptr %14, align 8, !tbaa !5
  %498 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %497, i32 0, i32 3
  %499 = load i8, ptr %498, align 1, !tbaa !20
  %500 = zext i8 %499 to i32
  %501 = and i32 %500, 15
  %502 = icmp eq i32 8, %501
  br i1 %502, label %503, label %504

503:                                              ; preds = %496
  br label %576

504:                                              ; preds = %496
  %505 = load ptr, ptr %14, align 8, !tbaa !5
  %506 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %505, i32 0, i32 3
  %507 = load i8, ptr %506, align 1, !tbaa !20
  %508 = zext i8 %507 to i32
  %509 = and i32 %508, 15
  %510 = icmp eq i32 9, %509
  br i1 %510, label %511, label %512

511:                                              ; preds = %504
  br label %574

512:                                              ; preds = %504
  %513 = load ptr, ptr %14, align 8, !tbaa !5
  %514 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %513, i32 0, i32 3
  %515 = load i8, ptr %514, align 1, !tbaa !20
  %516 = zext i8 %515 to i32
  %517 = and i32 %516, 15
  %518 = icmp eq i32 10, %517
  br i1 %518, label %519, label %520

519:                                              ; preds = %512
  br label %572

520:                                              ; preds = %512
  %521 = load ptr, ptr %14, align 8, !tbaa !5
  %522 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %521, i32 0, i32 3
  %523 = load i8, ptr %522, align 1, !tbaa !20
  %524 = zext i8 %523 to i32
  %525 = and i32 %524, 15
  %526 = icmp eq i32 11, %525
  br i1 %526, label %527, label %528

527:                                              ; preds = %520
  br label %570

528:                                              ; preds = %520
  %529 = load ptr, ptr %14, align 8, !tbaa !5
  %530 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %529, i32 0, i32 3
  %531 = load i8, ptr %530, align 1, !tbaa !20
  %532 = zext i8 %531 to i32
  %533 = and i32 %532, 15
  %534 = icmp eq i32 12, %533
  br i1 %534, label %535, label %536

535:                                              ; preds = %528
  br label %568

536:                                              ; preds = %528
  %537 = load ptr, ptr %14, align 8, !tbaa !5
  %538 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %537, i32 0, i32 3
  %539 = load i8, ptr %538, align 1, !tbaa !20
  %540 = zext i8 %539 to i32
  %541 = and i32 %540, 15
  %542 = icmp eq i32 13, %541
  br i1 %542, label %543, label %544

543:                                              ; preds = %536
  br label %566

544:                                              ; preds = %536
  %545 = load ptr, ptr %14, align 8, !tbaa !5
  %546 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %545, i32 0, i32 3
  %547 = load i8, ptr %546, align 1, !tbaa !20
  %548 = zext i8 %547 to i32
  %549 = and i32 %548, 15
  %550 = icmp eq i32 14, %549
  br i1 %550, label %551, label %552

551:                                              ; preds = %544
  br label %564

552:                                              ; preds = %544
  %553 = load ptr, ptr %14, align 8, !tbaa !5
  %554 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %553, i32 0, i32 3
  %555 = load i8, ptr %554, align 1, !tbaa !20
  %556 = zext i8 %555 to i32
  %557 = and i32 %556, 15
  %558 = icmp eq i32 15, %557
  br i1 %558, label %559, label %560

559:                                              ; preds = %552
  br label %562

560:                                              ; preds = %552
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 882, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

561:                                              ; No predecessors!
  br label %562

562:                                              ; preds = %561, %559
  %563 = phi i32 [ 15, %559 ], [ 0, %561 ]
  br label %564

564:                                              ; preds = %562, %551
  %565 = phi i32 [ 14, %551 ], [ %563, %562 ]
  br label %566

566:                                              ; preds = %564, %543
  %567 = phi i32 [ 12, %543 ], [ %565, %564 ]
  br label %568

568:                                              ; preds = %566, %535
  %569 = phi i32 [ 12, %535 ], [ %567, %566 ]
  br label %570

570:                                              ; preds = %568, %527
  %571 = phi i32 [ 10, %527 ], [ %569, %568 ]
  br label %572

572:                                              ; preds = %570, %519
  %573 = phi i32 [ 10, %519 ], [ %571, %570 ]
  br label %574

574:                                              ; preds = %572, %511
  %575 = phi i32 [ 8, %511 ], [ %573, %572 ]
  br label %576

576:                                              ; preds = %574, %503
  %577 = phi i32 [ 8, %503 ], [ %575, %574 ]
  br label %578

578:                                              ; preds = %576, %495
  %579 = phi i32 [ 6, %495 ], [ %577, %576 ]
  br label %580

580:                                              ; preds = %578, %487
  %581 = phi i32 [ 6, %487 ], [ %579, %578 ]
  br label %582

582:                                              ; preds = %580, %479
  %583 = phi i32 [ 5, %479 ], [ %581, %580 ]
  br label %584

584:                                              ; preds = %582, %471
  %585 = phi i32 [ 4, %471 ], [ %583, %582 ]
  br label %586

586:                                              ; preds = %584, %463
  %587 = phi i32 [ 3, %463 ], [ %585, %584 ]
  br label %588

588:                                              ; preds = %586, %455
  %589 = phi i32 [ 2, %455 ], [ %587, %586 ]
  br label %590

590:                                              ; preds = %588, %447
  %591 = phi i32 [ 1, %447 ], [ %589, %588 ]
  br label %592

592:                                              ; preds = %590, %439
  %593 = phi i32 [ 0, %439 ], [ %591, %590 ]
  br label %600

594:                                              ; preds = %425
  %595 = load ptr, ptr %14, align 8, !tbaa !5
  %596 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %595, i32 0, i32 3
  %597 = load i8, ptr %596, align 1, !tbaa !20
  %598 = zext i8 %597 to i32
  %599 = ashr i32 %598, 4
  br label %600

600:                                              ; preds = %594, %592
  %601 = phi i32 [ %593, %592 ], [ %599, %594 ]
  %602 = icmp eq i32 4, %601
  br i1 %602, label %781, label %603

603:                                              ; preds = %600
  %604 = load ptr, ptr %14, align 8, !tbaa !5
  %605 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %604, i32 0, i32 3
  %606 = load i8, ptr %605, align 1, !tbaa !20
  %607 = zext i8 %606 to i32
  %608 = ashr i32 %607, 4
  %609 = icmp eq i32 0, %608
  br i1 %609, label %610, label %772

610:                                              ; preds = %603
  %611 = load ptr, ptr %14, align 8, !tbaa !5
  %612 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %611, i32 0, i32 3
  %613 = load i8, ptr %612, align 1, !tbaa !20
  %614 = zext i8 %613 to i32
  %615 = and i32 %614, 15
  %616 = icmp eq i32 0, %615
  br i1 %616, label %617, label %618

617:                                              ; preds = %610
  br label %770

618:                                              ; preds = %610
  %619 = load ptr, ptr %14, align 8, !tbaa !5
  %620 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %619, i32 0, i32 3
  %621 = load i8, ptr %620, align 1, !tbaa !20
  %622 = zext i8 %621 to i32
  %623 = and i32 %622, 15
  %624 = icmp eq i32 1, %623
  br i1 %624, label %625, label %626

625:                                              ; preds = %618
  br label %768

626:                                              ; preds = %618
  %627 = load ptr, ptr %14, align 8, !tbaa !5
  %628 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %627, i32 0, i32 3
  %629 = load i8, ptr %628, align 1, !tbaa !20
  %630 = zext i8 %629 to i32
  %631 = and i32 %630, 15
  %632 = icmp eq i32 2, %631
  br i1 %632, label %633, label %634

633:                                              ; preds = %626
  br label %766

634:                                              ; preds = %626
  %635 = load ptr, ptr %14, align 8, !tbaa !5
  %636 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %635, i32 0, i32 3
  %637 = load i8, ptr %636, align 1, !tbaa !20
  %638 = zext i8 %637 to i32
  %639 = and i32 %638, 15
  %640 = icmp eq i32 3, %639
  br i1 %640, label %641, label %642

641:                                              ; preds = %634
  br label %764

642:                                              ; preds = %634
  %643 = load ptr, ptr %14, align 8, !tbaa !5
  %644 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %643, i32 0, i32 3
  %645 = load i8, ptr %644, align 1, !tbaa !20
  %646 = zext i8 %645 to i32
  %647 = and i32 %646, 15
  %648 = icmp eq i32 4, %647
  br i1 %648, label %649, label %650

649:                                              ; preds = %642
  br label %762

650:                                              ; preds = %642
  %651 = load ptr, ptr %14, align 8, !tbaa !5
  %652 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %651, i32 0, i32 3
  %653 = load i8, ptr %652, align 1, !tbaa !20
  %654 = zext i8 %653 to i32
  %655 = and i32 %654, 15
  %656 = icmp eq i32 5, %655
  br i1 %656, label %657, label %658

657:                                              ; preds = %650
  br label %760

658:                                              ; preds = %650
  %659 = load ptr, ptr %14, align 8, !tbaa !5
  %660 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %659, i32 0, i32 3
  %661 = load i8, ptr %660, align 1, !tbaa !20
  %662 = zext i8 %661 to i32
  %663 = and i32 %662, 15
  %664 = icmp eq i32 6, %663
  br i1 %664, label %665, label %666

665:                                              ; preds = %658
  br label %758

666:                                              ; preds = %658
  %667 = load ptr, ptr %14, align 8, !tbaa !5
  %668 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %667, i32 0, i32 3
  %669 = load i8, ptr %668, align 1, !tbaa !20
  %670 = zext i8 %669 to i32
  %671 = and i32 %670, 15
  %672 = icmp eq i32 7, %671
  br i1 %672, label %673, label %674

673:                                              ; preds = %666
  br label %756

674:                                              ; preds = %666
  %675 = load ptr, ptr %14, align 8, !tbaa !5
  %676 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %675, i32 0, i32 3
  %677 = load i8, ptr %676, align 1, !tbaa !20
  %678 = zext i8 %677 to i32
  %679 = and i32 %678, 15
  %680 = icmp eq i32 8, %679
  br i1 %680, label %681, label %682

681:                                              ; preds = %674
  br label %754

682:                                              ; preds = %674
  %683 = load ptr, ptr %14, align 8, !tbaa !5
  %684 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %683, i32 0, i32 3
  %685 = load i8, ptr %684, align 1, !tbaa !20
  %686 = zext i8 %685 to i32
  %687 = and i32 %686, 15
  %688 = icmp eq i32 9, %687
  br i1 %688, label %689, label %690

689:                                              ; preds = %682
  br label %752

690:                                              ; preds = %682
  %691 = load ptr, ptr %14, align 8, !tbaa !5
  %692 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %691, i32 0, i32 3
  %693 = load i8, ptr %692, align 1, !tbaa !20
  %694 = zext i8 %693 to i32
  %695 = and i32 %694, 15
  %696 = icmp eq i32 10, %695
  br i1 %696, label %697, label %698

697:                                              ; preds = %690
  br label %750

698:                                              ; preds = %690
  %699 = load ptr, ptr %14, align 8, !tbaa !5
  %700 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %699, i32 0, i32 3
  %701 = load i8, ptr %700, align 1, !tbaa !20
  %702 = zext i8 %701 to i32
  %703 = and i32 %702, 15
  %704 = icmp eq i32 11, %703
  br i1 %704, label %705, label %706

705:                                              ; preds = %698
  br label %748

706:                                              ; preds = %698
  %707 = load ptr, ptr %14, align 8, !tbaa !5
  %708 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %707, i32 0, i32 3
  %709 = load i8, ptr %708, align 1, !tbaa !20
  %710 = zext i8 %709 to i32
  %711 = and i32 %710, 15
  %712 = icmp eq i32 12, %711
  br i1 %712, label %713, label %714

713:                                              ; preds = %706
  br label %746

714:                                              ; preds = %706
  %715 = load ptr, ptr %14, align 8, !tbaa !5
  %716 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %715, i32 0, i32 3
  %717 = load i8, ptr %716, align 1, !tbaa !20
  %718 = zext i8 %717 to i32
  %719 = and i32 %718, 15
  %720 = icmp eq i32 13, %719
  br i1 %720, label %721, label %722

721:                                              ; preds = %714
  br label %744

722:                                              ; preds = %714
  %723 = load ptr, ptr %14, align 8, !tbaa !5
  %724 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %723, i32 0, i32 3
  %725 = load i8, ptr %724, align 1, !tbaa !20
  %726 = zext i8 %725 to i32
  %727 = and i32 %726, 15
  %728 = icmp eq i32 14, %727
  br i1 %728, label %729, label %730

729:                                              ; preds = %722
  br label %742

730:                                              ; preds = %722
  %731 = load ptr, ptr %14, align 8, !tbaa !5
  %732 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %731, i32 0, i32 3
  %733 = load i8, ptr %732, align 1, !tbaa !20
  %734 = zext i8 %733 to i32
  %735 = and i32 %734, 15
  %736 = icmp eq i32 15, %735
  br i1 %736, label %737, label %738

737:                                              ; preds = %730
  br label %740

738:                                              ; preds = %730
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 882, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

739:                                              ; No predecessors!
  br label %740

740:                                              ; preds = %739, %737
  %741 = phi i32 [ 15, %737 ], [ 0, %739 ]
  br label %742

742:                                              ; preds = %740, %729
  %743 = phi i32 [ 14, %729 ], [ %741, %740 ]
  br label %744

744:                                              ; preds = %742, %721
  %745 = phi i32 [ 12, %721 ], [ %743, %742 ]
  br label %746

746:                                              ; preds = %744, %713
  %747 = phi i32 [ 12, %713 ], [ %745, %744 ]
  br label %748

748:                                              ; preds = %746, %705
  %749 = phi i32 [ 10, %705 ], [ %747, %746 ]
  br label %750

750:                                              ; preds = %748, %697
  %751 = phi i32 [ 10, %697 ], [ %749, %748 ]
  br label %752

752:                                              ; preds = %750, %689
  %753 = phi i32 [ 8, %689 ], [ %751, %750 ]
  br label %754

754:                                              ; preds = %752, %681
  %755 = phi i32 [ 8, %681 ], [ %753, %752 ]
  br label %756

756:                                              ; preds = %754, %673
  %757 = phi i32 [ 6, %673 ], [ %755, %754 ]
  br label %758

758:                                              ; preds = %756, %665
  %759 = phi i32 [ 6, %665 ], [ %757, %756 ]
  br label %760

760:                                              ; preds = %758, %657
  %761 = phi i32 [ 5, %657 ], [ %759, %758 ]
  br label %762

762:                                              ; preds = %760, %649
  %763 = phi i32 [ 4, %649 ], [ %761, %760 ]
  br label %764

764:                                              ; preds = %762, %641
  %765 = phi i32 [ 3, %641 ], [ %763, %762 ]
  br label %766

766:                                              ; preds = %764, %633
  %767 = phi i32 [ 2, %633 ], [ %765, %764 ]
  br label %768

768:                                              ; preds = %766, %625
  %769 = phi i32 [ 1, %625 ], [ %767, %766 ]
  br label %770

770:                                              ; preds = %768, %617
  %771 = phi i32 [ 0, %617 ], [ %769, %768 ]
  br label %778

772:                                              ; preds = %603
  %773 = load ptr, ptr %14, align 8, !tbaa !5
  %774 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %773, i32 0, i32 3
  %775 = load i8, ptr %774, align 1, !tbaa !20
  %776 = zext i8 %775 to i32
  %777 = ashr i32 %776, 4
  br label %778

778:                                              ; preds = %772, %770
  %779 = phi i32 [ %771, %770 ], [ %777, %772 ]
  %780 = icmp eq i32 5, %779
  br i1 %780, label %781, label %795

781:                                              ; preds = %778, %600
  %782 = load ptr, ptr %11, align 8, !tbaa !5
  %783 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %782, i32 0, i32 6
  %784 = load i32, ptr %783, align 4, !tbaa !11
  %785 = icmp ult i32 %784, 1101
  br i1 %785, label %786, label %795

786:                                              ; preds = %781
  %787 = load i32, ptr %19, align 4, !tbaa !9
  %788 = icmp eq i32 %787, 1
  br i1 %788, label %789, label %794

789:                                              ; preds = %786
  %790 = load i32, ptr %22, align 4, !tbaa !9
  %791 = load i32, ptr %17, align 4, !tbaa !9
  %792 = sub i32 %791, 1
  %793 = icmp eq i32 %790, %792
  br i1 %793, label %795, label %794

794:                                              ; preds = %789, %786
  br label %973

795:                                              ; preds = %789, %781, %778
  %796 = load ptr, ptr %14, align 8, !tbaa !5
  %797 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %796, i32 0, i32 3
  %798 = load i8, ptr %797, align 1, !tbaa !20
  %799 = zext i8 %798 to i32
  %800 = ashr i32 %799, 4
  %801 = icmp eq i32 0, %800
  br i1 %801, label %802, label %964

802:                                              ; preds = %795
  %803 = load ptr, ptr %14, align 8, !tbaa !5
  %804 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %803, i32 0, i32 3
  %805 = load i8, ptr %804, align 1, !tbaa !20
  %806 = zext i8 %805 to i32
  %807 = and i32 %806, 15
  %808 = icmp eq i32 0, %807
  br i1 %808, label %809, label %810

809:                                              ; preds = %802
  br label %962

810:                                              ; preds = %802
  %811 = load ptr, ptr %14, align 8, !tbaa !5
  %812 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %811, i32 0, i32 3
  %813 = load i8, ptr %812, align 1, !tbaa !20
  %814 = zext i8 %813 to i32
  %815 = and i32 %814, 15
  %816 = icmp eq i32 1, %815
  br i1 %816, label %817, label %818

817:                                              ; preds = %810
  br label %960

818:                                              ; preds = %810
  %819 = load ptr, ptr %14, align 8, !tbaa !5
  %820 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %819, i32 0, i32 3
  %821 = load i8, ptr %820, align 1, !tbaa !20
  %822 = zext i8 %821 to i32
  %823 = and i32 %822, 15
  %824 = icmp eq i32 2, %823
  br i1 %824, label %825, label %826

825:                                              ; preds = %818
  br label %958

826:                                              ; preds = %818
  %827 = load ptr, ptr %14, align 8, !tbaa !5
  %828 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %827, i32 0, i32 3
  %829 = load i8, ptr %828, align 1, !tbaa !20
  %830 = zext i8 %829 to i32
  %831 = and i32 %830, 15
  %832 = icmp eq i32 3, %831
  br i1 %832, label %833, label %834

833:                                              ; preds = %826
  br label %956

834:                                              ; preds = %826
  %835 = load ptr, ptr %14, align 8, !tbaa !5
  %836 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %835, i32 0, i32 3
  %837 = load i8, ptr %836, align 1, !tbaa !20
  %838 = zext i8 %837 to i32
  %839 = and i32 %838, 15
  %840 = icmp eq i32 4, %839
  br i1 %840, label %841, label %842

841:                                              ; preds = %834
  br label %954

842:                                              ; preds = %834
  %843 = load ptr, ptr %14, align 8, !tbaa !5
  %844 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %843, i32 0, i32 3
  %845 = load i8, ptr %844, align 1, !tbaa !20
  %846 = zext i8 %845 to i32
  %847 = and i32 %846, 15
  %848 = icmp eq i32 5, %847
  br i1 %848, label %849, label %850

849:                                              ; preds = %842
  br label %952

850:                                              ; preds = %842
  %851 = load ptr, ptr %14, align 8, !tbaa !5
  %852 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %851, i32 0, i32 3
  %853 = load i8, ptr %852, align 1, !tbaa !20
  %854 = zext i8 %853 to i32
  %855 = and i32 %854, 15
  %856 = icmp eq i32 6, %855
  br i1 %856, label %857, label %858

857:                                              ; preds = %850
  br label %950

858:                                              ; preds = %850
  %859 = load ptr, ptr %14, align 8, !tbaa !5
  %860 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %859, i32 0, i32 3
  %861 = load i8, ptr %860, align 1, !tbaa !20
  %862 = zext i8 %861 to i32
  %863 = and i32 %862, 15
  %864 = icmp eq i32 7, %863
  br i1 %864, label %865, label %866

865:                                              ; preds = %858
  br label %948

866:                                              ; preds = %858
  %867 = load ptr, ptr %14, align 8, !tbaa !5
  %868 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %867, i32 0, i32 3
  %869 = load i8, ptr %868, align 1, !tbaa !20
  %870 = zext i8 %869 to i32
  %871 = and i32 %870, 15
  %872 = icmp eq i32 8, %871
  br i1 %872, label %873, label %874

873:                                              ; preds = %866
  br label %946

874:                                              ; preds = %866
  %875 = load ptr, ptr %14, align 8, !tbaa !5
  %876 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %875, i32 0, i32 3
  %877 = load i8, ptr %876, align 1, !tbaa !20
  %878 = zext i8 %877 to i32
  %879 = and i32 %878, 15
  %880 = icmp eq i32 9, %879
  br i1 %880, label %881, label %882

881:                                              ; preds = %874
  br label %944

882:                                              ; preds = %874
  %883 = load ptr, ptr %14, align 8, !tbaa !5
  %884 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %883, i32 0, i32 3
  %885 = load i8, ptr %884, align 1, !tbaa !20
  %886 = zext i8 %885 to i32
  %887 = and i32 %886, 15
  %888 = icmp eq i32 10, %887
  br i1 %888, label %889, label %890

889:                                              ; preds = %882
  br label %942

890:                                              ; preds = %882
  %891 = load ptr, ptr %14, align 8, !tbaa !5
  %892 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %891, i32 0, i32 3
  %893 = load i8, ptr %892, align 1, !tbaa !20
  %894 = zext i8 %893 to i32
  %895 = and i32 %894, 15
  %896 = icmp eq i32 11, %895
  br i1 %896, label %897, label %898

897:                                              ; preds = %890
  br label %940

898:                                              ; preds = %890
  %899 = load ptr, ptr %14, align 8, !tbaa !5
  %900 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %899, i32 0, i32 3
  %901 = load i8, ptr %900, align 1, !tbaa !20
  %902 = zext i8 %901 to i32
  %903 = and i32 %902, 15
  %904 = icmp eq i32 12, %903
  br i1 %904, label %905, label %906

905:                                              ; preds = %898
  br label %938

906:                                              ; preds = %898
  %907 = load ptr, ptr %14, align 8, !tbaa !5
  %908 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %907, i32 0, i32 3
  %909 = load i8, ptr %908, align 1, !tbaa !20
  %910 = zext i8 %909 to i32
  %911 = and i32 %910, 15
  %912 = icmp eq i32 13, %911
  br i1 %912, label %913, label %914

913:                                              ; preds = %906
  br label %936

914:                                              ; preds = %906
  %915 = load ptr, ptr %14, align 8, !tbaa !5
  %916 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %915, i32 0, i32 3
  %917 = load i8, ptr %916, align 1, !tbaa !20
  %918 = zext i8 %917 to i32
  %919 = and i32 %918, 15
  %920 = icmp eq i32 14, %919
  br i1 %920, label %921, label %922

921:                                              ; preds = %914
  br label %934

922:                                              ; preds = %914
  %923 = load ptr, ptr %14, align 8, !tbaa !5
  %924 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %923, i32 0, i32 3
  %925 = load i8, ptr %924, align 1, !tbaa !20
  %926 = zext i8 %925 to i32
  %927 = and i32 %926, 15
  %928 = icmp eq i32 15, %927
  br i1 %928, label %929, label %930

929:                                              ; preds = %922
  br label %932

930:                                              ; preds = %922
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 882, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

931:                                              ; No predecessors!
  br label %932

932:                                              ; preds = %931, %929
  %933 = phi i32 [ 15, %929 ], [ 0, %931 ]
  br label %934

934:                                              ; preds = %932, %921
  %935 = phi i32 [ 14, %921 ], [ %933, %932 ]
  br label %936

936:                                              ; preds = %934, %913
  %937 = phi i32 [ 12, %913 ], [ %935, %934 ]
  br label %938

938:                                              ; preds = %936, %905
  %939 = phi i32 [ 12, %905 ], [ %937, %936 ]
  br label %940

940:                                              ; preds = %938, %897
  %941 = phi i32 [ 10, %897 ], [ %939, %938 ]
  br label %942

942:                                              ; preds = %940, %889
  %943 = phi i32 [ 10, %889 ], [ %941, %940 ]
  br label %944

944:                                              ; preds = %942, %881
  %945 = phi i32 [ 8, %881 ], [ %943, %942 ]
  br label %946

946:                                              ; preds = %944, %873
  %947 = phi i32 [ 8, %873 ], [ %945, %944 ]
  br label %948

948:                                              ; preds = %946, %865
  %949 = phi i32 [ 6, %865 ], [ %947, %946 ]
  br label %950

950:                                              ; preds = %948, %857
  %951 = phi i32 [ 6, %857 ], [ %949, %948 ]
  br label %952

952:                                              ; preds = %950, %849
  %953 = phi i32 [ 5, %849 ], [ %951, %950 ]
  br label %954

954:                                              ; preds = %952, %841
  %955 = phi i32 [ 4, %841 ], [ %953, %952 ]
  br label %956

956:                                              ; preds = %954, %833
  %957 = phi i32 [ 3, %833 ], [ %955, %954 ]
  br label %958

958:                                              ; preds = %956, %825
  %959 = phi i32 [ 2, %825 ], [ %957, %956 ]
  br label %960

960:                                              ; preds = %958, %817
  %961 = phi i32 [ 1, %817 ], [ %959, %958 ]
  br label %962

962:                                              ; preds = %960, %809
  %963 = phi i32 [ 0, %809 ], [ %961, %960 ]
  br label %970

964:                                              ; preds = %795
  %965 = load ptr, ptr %14, align 8, !tbaa !5
  %966 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %965, i32 0, i32 3
  %967 = load i8, ptr %966, align 1, !tbaa !20
  %968 = zext i8 %967 to i32
  %969 = ashr i32 %968, 4
  br label %970

970:                                              ; preds = %964, %962
  %971 = phi i32 [ %963, %962 ], [ %969, %964 ]
  %972 = call i32 @libxsmm_generator_matequation_regblocks_vmove_instruction(i32 noundef %971)
  br label %973

973:                                              ; preds = %970, %794
  %974 = phi i32 [ 545725200, %794 ], [ %972, %970 ]
  store i32 %974, ptr %27, align 4, !tbaa !9
  %975 = load i32, ptr %24, align 4, !tbaa !9
  %976 = load i32, ptr %21, align 4, !tbaa !9
  %977 = load i32, ptr %17, align 4, !tbaa !9
  %978 = mul i32 %976, %977
  %979 = add i32 %975, %978
  %980 = load i32, ptr %22, align 4, !tbaa !9
  %981 = add i32 %979, %980
  store i32 %981, ptr %23, align 4, !tbaa !9
  %982 = load ptr, ptr %13, align 8, !tbaa !5
  %983 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %982, i32 0, i32 32
  %984 = load i32, ptr %983, align 8, !tbaa !23
  %985 = icmp eq i32 %984, 1
  br i1 %985, label %986, label %1014

986:                                              ; preds = %973
  %987 = load ptr, ptr %13, align 8, !tbaa !5
  %988 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %987, i32 0, i32 33
  %989 = load i32, ptr %988, align 4, !tbaa !24
  %990 = icmp eq i32 %989, 1
  br i1 %990, label %991, label %1008

991:                                              ; preds = %986
  %992 = load ptr, ptr %11, align 8, !tbaa !5
  %993 = load i8, ptr %25, align 1, !tbaa !13
  %994 = load i32, ptr %23, align 4, !tbaa !9
  %995 = load i32, ptr %23, align 4, !tbaa !9
  %996 = load ptr, ptr %13, align 8, !tbaa !5
  %997 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %996, i32 0, i32 41
  %998 = load i32, ptr %997, align 4, !tbaa !25
  %999 = load ptr, ptr %13, align 8, !tbaa !5
  %1000 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %999, i32 0, i32 42
  %1001 = load i32, ptr %1000, align 8, !tbaa !26
  %1002 = load ptr, ptr %13, align 8, !tbaa !5
  %1003 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %1002, i32 0, i32 38
  %1004 = load i32, ptr %1003, align 8, !tbaa !27
  %1005 = load ptr, ptr %13, align 8, !tbaa !5
  %1006 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %1005, i32 0, i32 39
  %1007 = load i32, ptr %1006, align 4, !tbaa !28
  call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %992, i8 noundef signext %993, i32 noundef %994, i32 noundef %995, i32 noundef %998, i32 noundef %1001, i32 noundef %1004, i32 noundef %1007, i32 noundef 0)
  br label %1013

1008:                                             ; preds = %986
  %1009 = load ptr, ptr %11, align 8, !tbaa !5
  %1010 = load i8, ptr %25, align 1, !tbaa !13
  %1011 = load i32, ptr %23, align 4, !tbaa !9
  %1012 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %1009, i32 noundef 537273970, i8 noundef signext %1010, i32 noundef %1011, i32 noundef %1012)
  br label %1013

1013:                                             ; preds = %1008, %991
  br label %1014

1014:                                             ; preds = %1013, %973
  %1015 = load ptr, ptr %13, align 8, !tbaa !5
  %1016 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %1015, i32 0, i32 34
  %1017 = load i32, ptr %1016, align 8, !tbaa !29
  %1018 = icmp eq i32 %1017, 1
  br i1 %1018, label %1019, label %1037

1019:                                             ; preds = %1014
  %1020 = load ptr, ptr %11, align 8, !tbaa !5
  %1021 = load i8, ptr %25, align 1, !tbaa !13
  %1022 = load i32, ptr %23, align 4, !tbaa !9
  %1023 = load i32, ptr %23, align 4, !tbaa !9
  %1024 = load ptr, ptr %11, align 8, !tbaa !5
  %1025 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1024, i32 0, i32 6
  %1026 = load i32, ptr %1025, align 4, !tbaa !11
  %1027 = icmp ult i32 %1026, 1051
  %1028 = zext i1 %1027 to i64
  %1029 = select i1 %1027, i32 0, i32 1
  %1030 = load ptr, ptr %11, align 8, !tbaa !5
  %1031 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1030, i32 0, i32 6
  %1032 = load i32, ptr %1031, align 4, !tbaa !11
  %1033 = icmp ult i32 %1032, 1051
  %1034 = zext i1 %1033 to i64
  %1035 = select i1 %1033, i32 0, i32 1
  %1036 = trunc i32 %1035 to i8
  call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %1020, i32 noundef 671954205, i8 noundef signext %1021, i32 noundef %1022, i32 noundef %1023, i32 noundef 0, i32 noundef %1029, i8 noundef zeroext %1036, i32 noundef 0)
  br label %1037

1037:                                             ; preds = %1019, %1014
  %1038 = load ptr, ptr %13, align 8, !tbaa !5
  %1039 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %1038, i32 0, i32 35
  %1040 = load i32, ptr %1039, align 4, !tbaa !30
  %1041 = icmp eq i32 %1040, 1
  br i1 %1041, label %1042, label %1059

1042:                                             ; preds = %1037
  %1043 = load ptr, ptr %11, align 8, !tbaa !5
  %1044 = load i8, ptr %25, align 1, !tbaa !13
  %1045 = load i32, ptr %23, align 4, !tbaa !9
  %1046 = load i32, ptr %23, align 4, !tbaa !9
  %1047 = load ptr, ptr %13, align 8, !tbaa !5
  %1048 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %1047, i32 0, i32 41
  %1049 = load i32, ptr %1048, align 4, !tbaa !25
  %1050 = load ptr, ptr %13, align 8, !tbaa !5
  %1051 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %1050, i32 0, i32 42
  %1052 = load i32, ptr %1051, align 8, !tbaa !26
  %1053 = load ptr, ptr %13, align 8, !tbaa !5
  %1054 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %1053, i32 0, i32 38
  %1055 = load i32, ptr %1054, align 8, !tbaa !27
  %1056 = load ptr, ptr %13, align 8, !tbaa !5
  %1057 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %1056, i32 0, i32 39
  %1058 = load i32, ptr %1057, align 4, !tbaa !28
  call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %1043, i8 noundef signext %1044, i32 noundef %1045, i32 noundef %1046, i32 noundef %1049, i32 noundef %1052, i32 noundef %1055, i32 noundef %1058, i32 noundef 0, i32 noundef 255)
  br label %1059

1059:                                             ; preds = %1042, %1037
  %1060 = load ptr, ptr %13, align 8, !tbaa !5
  %1061 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %1060, i32 0, i32 36
  %1062 = load i32, ptr %1061, align 8, !tbaa !31
  %1063 = icmp eq i32 %1062, 1
  br i1 %1063, label %1064, label %1090

1064:                                             ; preds = %1059
  %1065 = load ptr, ptr %11, align 8, !tbaa !5
  %1066 = load i8, ptr %25, align 1, !tbaa !13
  %1067 = load i32, ptr %23, align 4, !tbaa !9
  %1068 = load i32, ptr %23, align 4, !tbaa !9
  %1069 = load ptr, ptr %13, align 8, !tbaa !5
  %1070 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %1069, i32 0, i32 41
  %1071 = load i32, ptr %1070, align 4, !tbaa !25
  %1072 = load ptr, ptr %13, align 8, !tbaa !5
  %1073 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %1072, i32 0, i32 42
  %1074 = load i32, ptr %1073, align 8, !tbaa !26
  %1075 = load ptr, ptr %13, align 8, !tbaa !5
  %1076 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %1075, i32 0, i32 43
  %1077 = load i32, ptr %1076, align 4, !tbaa !32
  %1078 = load ptr, ptr %13, align 8, !tbaa !5
  %1079 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %1078, i32 0, i32 44
  %1080 = load i32, ptr %1079, align 8, !tbaa !33
  %1081 = load ptr, ptr %13, align 8, !tbaa !5
  %1082 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %1081, i32 0, i32 38
  %1083 = load i32, ptr %1082, align 8, !tbaa !27
  %1084 = load ptr, ptr %13, align 8, !tbaa !5
  %1085 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %1084, i32 0, i32 39
  %1086 = load i32, ptr %1085, align 4, !tbaa !28
  %1087 = load ptr, ptr %13, align 8, !tbaa !5
  %1088 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %1087, i32 0, i32 40
  %1089 = load i32, ptr %1088, align 8, !tbaa !34
  call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %1065, i8 noundef signext %1066, i32 noundef %1067, i32 noundef %1068, i32 noundef %1071, i32 noundef %1074, i32 noundef %1077, i32 noundef %1080, i32 noundef %1083, i32 noundef %1086, i32 noundef %1089)
  br label %1090

1090:                                             ; preds = %1064, %1059
  %1091 = load ptr, ptr %11, align 8, !tbaa !5
  %1092 = load i32, ptr %27, align 4, !tbaa !9
  %1093 = load ptr, ptr %12, align 8, !tbaa !5
  %1094 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %1093, i32 0, i32 5
  %1095 = load i32, ptr %1094, align 4, !tbaa !35
  %1096 = load i32, ptr %22, align 4, !tbaa !9
  %1097 = load i32, ptr %15, align 4, !tbaa !9
  %1098 = mul i32 %1096, %1097
  %1099 = load i32, ptr %21, align 4, !tbaa !9
  %1100 = load ptr, ptr %14, align 8, !tbaa !5
  %1101 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1100, i32 0, i32 2
  %1102 = load i32, ptr %1101, align 1, !tbaa !39
  %1103 = mul i32 %1099, %1102
  %1104 = add i32 %1098, %1103
  %1105 = load ptr, ptr %14, align 8, !tbaa !5
  %1106 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1105, i32 0, i32 3
  %1107 = load i8, ptr %1106, align 1, !tbaa !20
  %1108 = zext i8 %1107 to i32
  %1109 = ashr i32 %1108, 4
  %1110 = icmp eq i32 0, %1109
  br i1 %1110, label %1111, label %1273

1111:                                             ; preds = %1090
  %1112 = load ptr, ptr %14, align 8, !tbaa !5
  %1113 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1112, i32 0, i32 3
  %1114 = load i8, ptr %1113, align 1, !tbaa !20
  %1115 = zext i8 %1114 to i32
  %1116 = and i32 %1115, 15
  %1117 = icmp eq i32 0, %1116
  br i1 %1117, label %1118, label %1119

1118:                                             ; preds = %1111
  br label %1271

1119:                                             ; preds = %1111
  %1120 = load ptr, ptr %14, align 8, !tbaa !5
  %1121 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1120, i32 0, i32 3
  %1122 = load i8, ptr %1121, align 1, !tbaa !20
  %1123 = zext i8 %1122 to i32
  %1124 = and i32 %1123, 15
  %1125 = icmp eq i32 1, %1124
  br i1 %1125, label %1126, label %1127

1126:                                             ; preds = %1119
  br label %1269

1127:                                             ; preds = %1119
  %1128 = load ptr, ptr %14, align 8, !tbaa !5
  %1129 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1128, i32 0, i32 3
  %1130 = load i8, ptr %1129, align 1, !tbaa !20
  %1131 = zext i8 %1130 to i32
  %1132 = and i32 %1131, 15
  %1133 = icmp eq i32 2, %1132
  br i1 %1133, label %1134, label %1135

1134:                                             ; preds = %1127
  br label %1267

1135:                                             ; preds = %1127
  %1136 = load ptr, ptr %14, align 8, !tbaa !5
  %1137 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1136, i32 0, i32 3
  %1138 = load i8, ptr %1137, align 1, !tbaa !20
  %1139 = zext i8 %1138 to i32
  %1140 = and i32 %1139, 15
  %1141 = icmp eq i32 3, %1140
  br i1 %1141, label %1142, label %1143

1142:                                             ; preds = %1135
  br label %1265

1143:                                             ; preds = %1135
  %1144 = load ptr, ptr %14, align 8, !tbaa !5
  %1145 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1144, i32 0, i32 3
  %1146 = load i8, ptr %1145, align 1, !tbaa !20
  %1147 = zext i8 %1146 to i32
  %1148 = and i32 %1147, 15
  %1149 = icmp eq i32 4, %1148
  br i1 %1149, label %1150, label %1151

1150:                                             ; preds = %1143
  br label %1263

1151:                                             ; preds = %1143
  %1152 = load ptr, ptr %14, align 8, !tbaa !5
  %1153 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1152, i32 0, i32 3
  %1154 = load i8, ptr %1153, align 1, !tbaa !20
  %1155 = zext i8 %1154 to i32
  %1156 = and i32 %1155, 15
  %1157 = icmp eq i32 5, %1156
  br i1 %1157, label %1158, label %1159

1158:                                             ; preds = %1151
  br label %1261

1159:                                             ; preds = %1151
  %1160 = load ptr, ptr %14, align 8, !tbaa !5
  %1161 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1160, i32 0, i32 3
  %1162 = load i8, ptr %1161, align 1, !tbaa !20
  %1163 = zext i8 %1162 to i32
  %1164 = and i32 %1163, 15
  %1165 = icmp eq i32 6, %1164
  br i1 %1165, label %1166, label %1167

1166:                                             ; preds = %1159
  br label %1259

1167:                                             ; preds = %1159
  %1168 = load ptr, ptr %14, align 8, !tbaa !5
  %1169 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1168, i32 0, i32 3
  %1170 = load i8, ptr %1169, align 1, !tbaa !20
  %1171 = zext i8 %1170 to i32
  %1172 = and i32 %1171, 15
  %1173 = icmp eq i32 7, %1172
  br i1 %1173, label %1174, label %1175

1174:                                             ; preds = %1167
  br label %1257

1175:                                             ; preds = %1167
  %1176 = load ptr, ptr %14, align 8, !tbaa !5
  %1177 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1176, i32 0, i32 3
  %1178 = load i8, ptr %1177, align 1, !tbaa !20
  %1179 = zext i8 %1178 to i32
  %1180 = and i32 %1179, 15
  %1181 = icmp eq i32 8, %1180
  br i1 %1181, label %1182, label %1183

1182:                                             ; preds = %1175
  br label %1255

1183:                                             ; preds = %1175
  %1184 = load ptr, ptr %14, align 8, !tbaa !5
  %1185 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1184, i32 0, i32 3
  %1186 = load i8, ptr %1185, align 1, !tbaa !20
  %1187 = zext i8 %1186 to i32
  %1188 = and i32 %1187, 15
  %1189 = icmp eq i32 9, %1188
  br i1 %1189, label %1190, label %1191

1190:                                             ; preds = %1183
  br label %1253

1191:                                             ; preds = %1183
  %1192 = load ptr, ptr %14, align 8, !tbaa !5
  %1193 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1192, i32 0, i32 3
  %1194 = load i8, ptr %1193, align 1, !tbaa !20
  %1195 = zext i8 %1194 to i32
  %1196 = and i32 %1195, 15
  %1197 = icmp eq i32 10, %1196
  br i1 %1197, label %1198, label %1199

1198:                                             ; preds = %1191
  br label %1251

1199:                                             ; preds = %1191
  %1200 = load ptr, ptr %14, align 8, !tbaa !5
  %1201 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1200, i32 0, i32 3
  %1202 = load i8, ptr %1201, align 1, !tbaa !20
  %1203 = zext i8 %1202 to i32
  %1204 = and i32 %1203, 15
  %1205 = icmp eq i32 11, %1204
  br i1 %1205, label %1206, label %1207

1206:                                             ; preds = %1199
  br label %1249

1207:                                             ; preds = %1199
  %1208 = load ptr, ptr %14, align 8, !tbaa !5
  %1209 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1208, i32 0, i32 3
  %1210 = load i8, ptr %1209, align 1, !tbaa !20
  %1211 = zext i8 %1210 to i32
  %1212 = and i32 %1211, 15
  %1213 = icmp eq i32 12, %1212
  br i1 %1213, label %1214, label %1215

1214:                                             ; preds = %1207
  br label %1247

1215:                                             ; preds = %1207
  %1216 = load ptr, ptr %14, align 8, !tbaa !5
  %1217 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1216, i32 0, i32 3
  %1218 = load i8, ptr %1217, align 1, !tbaa !20
  %1219 = zext i8 %1218 to i32
  %1220 = and i32 %1219, 15
  %1221 = icmp eq i32 13, %1220
  br i1 %1221, label %1222, label %1223

1222:                                             ; preds = %1215
  br label %1245

1223:                                             ; preds = %1215
  %1224 = load ptr, ptr %14, align 8, !tbaa !5
  %1225 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1224, i32 0, i32 3
  %1226 = load i8, ptr %1225, align 1, !tbaa !20
  %1227 = zext i8 %1226 to i32
  %1228 = and i32 %1227, 15
  %1229 = icmp eq i32 14, %1228
  br i1 %1229, label %1230, label %1231

1230:                                             ; preds = %1223
  br label %1243

1231:                                             ; preds = %1223
  %1232 = load ptr, ptr %14, align 8, !tbaa !5
  %1233 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1232, i32 0, i32 3
  %1234 = load i8, ptr %1233, align 1, !tbaa !20
  %1235 = zext i8 %1234 to i32
  %1236 = and i32 %1235, 15
  %1237 = icmp eq i32 15, %1236
  br i1 %1237, label %1238, label %1239

1238:                                             ; preds = %1231
  br label %1241

1239:                                             ; preds = %1231
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 913, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

1240:                                             ; No predecessors!
  br label %1241

1241:                                             ; preds = %1240, %1238
  %1242 = phi i32 [ 15, %1238 ], [ 0, %1240 ]
  br label %1243

1243:                                             ; preds = %1241, %1230
  %1244 = phi i32 [ 14, %1230 ], [ %1242, %1241 ]
  br label %1245

1245:                                             ; preds = %1243, %1222
  %1246 = phi i32 [ 12, %1222 ], [ %1244, %1243 ]
  br label %1247

1247:                                             ; preds = %1245, %1214
  %1248 = phi i32 [ 12, %1214 ], [ %1246, %1245 ]
  br label %1249

1249:                                             ; preds = %1247, %1206
  %1250 = phi i32 [ 10, %1206 ], [ %1248, %1247 ]
  br label %1251

1251:                                             ; preds = %1249, %1198
  %1252 = phi i32 [ 10, %1198 ], [ %1250, %1249 ]
  br label %1253

1253:                                             ; preds = %1251, %1190
  %1254 = phi i32 [ 8, %1190 ], [ %1252, %1251 ]
  br label %1255

1255:                                             ; preds = %1253, %1182
  %1256 = phi i32 [ 8, %1182 ], [ %1254, %1253 ]
  br label %1257

1257:                                             ; preds = %1255, %1174
  %1258 = phi i32 [ 6, %1174 ], [ %1256, %1255 ]
  br label %1259

1259:                                             ; preds = %1257, %1166
  %1260 = phi i32 [ 6, %1166 ], [ %1258, %1257 ]
  br label %1261

1261:                                             ; preds = %1259, %1158
  %1262 = phi i32 [ 5, %1158 ], [ %1260, %1259 ]
  br label %1263

1263:                                             ; preds = %1261, %1150
  %1264 = phi i32 [ 4, %1150 ], [ %1262, %1261 ]
  br label %1265

1265:                                             ; preds = %1263, %1142
  %1266 = phi i32 [ 3, %1142 ], [ %1264, %1263 ]
  br label %1267

1267:                                             ; preds = %1265, %1134
  %1268 = phi i32 [ 2, %1134 ], [ %1266, %1265 ]
  br label %1269

1269:                                             ; preds = %1267, %1126
  %1270 = phi i32 [ 1, %1126 ], [ %1268, %1267 ]
  br label %1271

1271:                                             ; preds = %1269, %1118
  %1272 = phi i32 [ 0, %1118 ], [ %1270, %1269 ]
  br label %1279

1273:                                             ; preds = %1090
  %1274 = load ptr, ptr %14, align 8, !tbaa !5
  %1275 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1274, i32 0, i32 3
  %1276 = load i8, ptr %1275, align 1, !tbaa !20
  %1277 = zext i8 %1276 to i32
  %1278 = ashr i32 %1277, 4
  br label %1279

1279:                                             ; preds = %1273, %1271
  %1280 = phi i32 [ %1272, %1271 ], [ %1278, %1273 ]
  %1281 = icmp eq i32 0, %1280
  br i1 %1281, label %1282, label %1283

1282:                                             ; preds = %1279
  br label %3638

1283:                                             ; preds = %1279
  %1284 = load ptr, ptr %14, align 8, !tbaa !5
  %1285 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1284, i32 0, i32 3
  %1286 = load i8, ptr %1285, align 1, !tbaa !20
  %1287 = zext i8 %1286 to i32
  %1288 = ashr i32 %1287, 4
  %1289 = icmp eq i32 0, %1288
  br i1 %1289, label %1290, label %1452

1290:                                             ; preds = %1283
  %1291 = load ptr, ptr %14, align 8, !tbaa !5
  %1292 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1291, i32 0, i32 3
  %1293 = load i8, ptr %1292, align 1, !tbaa !20
  %1294 = zext i8 %1293 to i32
  %1295 = and i32 %1294, 15
  %1296 = icmp eq i32 0, %1295
  br i1 %1296, label %1297, label %1298

1297:                                             ; preds = %1290
  br label %1450

1298:                                             ; preds = %1290
  %1299 = load ptr, ptr %14, align 8, !tbaa !5
  %1300 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1299, i32 0, i32 3
  %1301 = load i8, ptr %1300, align 1, !tbaa !20
  %1302 = zext i8 %1301 to i32
  %1303 = and i32 %1302, 15
  %1304 = icmp eq i32 1, %1303
  br i1 %1304, label %1305, label %1306

1305:                                             ; preds = %1298
  br label %1448

1306:                                             ; preds = %1298
  %1307 = load ptr, ptr %14, align 8, !tbaa !5
  %1308 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1307, i32 0, i32 3
  %1309 = load i8, ptr %1308, align 1, !tbaa !20
  %1310 = zext i8 %1309 to i32
  %1311 = and i32 %1310, 15
  %1312 = icmp eq i32 2, %1311
  br i1 %1312, label %1313, label %1314

1313:                                             ; preds = %1306
  br label %1446

1314:                                             ; preds = %1306
  %1315 = load ptr, ptr %14, align 8, !tbaa !5
  %1316 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1315, i32 0, i32 3
  %1317 = load i8, ptr %1316, align 1, !tbaa !20
  %1318 = zext i8 %1317 to i32
  %1319 = and i32 %1318, 15
  %1320 = icmp eq i32 3, %1319
  br i1 %1320, label %1321, label %1322

1321:                                             ; preds = %1314
  br label %1444

1322:                                             ; preds = %1314
  %1323 = load ptr, ptr %14, align 8, !tbaa !5
  %1324 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1323, i32 0, i32 3
  %1325 = load i8, ptr %1324, align 1, !tbaa !20
  %1326 = zext i8 %1325 to i32
  %1327 = and i32 %1326, 15
  %1328 = icmp eq i32 4, %1327
  br i1 %1328, label %1329, label %1330

1329:                                             ; preds = %1322
  br label %1442

1330:                                             ; preds = %1322
  %1331 = load ptr, ptr %14, align 8, !tbaa !5
  %1332 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1331, i32 0, i32 3
  %1333 = load i8, ptr %1332, align 1, !tbaa !20
  %1334 = zext i8 %1333 to i32
  %1335 = and i32 %1334, 15
  %1336 = icmp eq i32 5, %1335
  br i1 %1336, label %1337, label %1338

1337:                                             ; preds = %1330
  br label %1440

1338:                                             ; preds = %1330
  %1339 = load ptr, ptr %14, align 8, !tbaa !5
  %1340 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1339, i32 0, i32 3
  %1341 = load i8, ptr %1340, align 1, !tbaa !20
  %1342 = zext i8 %1341 to i32
  %1343 = and i32 %1342, 15
  %1344 = icmp eq i32 6, %1343
  br i1 %1344, label %1345, label %1346

1345:                                             ; preds = %1338
  br label %1438

1346:                                             ; preds = %1338
  %1347 = load ptr, ptr %14, align 8, !tbaa !5
  %1348 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1347, i32 0, i32 3
  %1349 = load i8, ptr %1348, align 1, !tbaa !20
  %1350 = zext i8 %1349 to i32
  %1351 = and i32 %1350, 15
  %1352 = icmp eq i32 7, %1351
  br i1 %1352, label %1353, label %1354

1353:                                             ; preds = %1346
  br label %1436

1354:                                             ; preds = %1346
  %1355 = load ptr, ptr %14, align 8, !tbaa !5
  %1356 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1355, i32 0, i32 3
  %1357 = load i8, ptr %1356, align 1, !tbaa !20
  %1358 = zext i8 %1357 to i32
  %1359 = and i32 %1358, 15
  %1360 = icmp eq i32 8, %1359
  br i1 %1360, label %1361, label %1362

1361:                                             ; preds = %1354
  br label %1434

1362:                                             ; preds = %1354
  %1363 = load ptr, ptr %14, align 8, !tbaa !5
  %1364 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1363, i32 0, i32 3
  %1365 = load i8, ptr %1364, align 1, !tbaa !20
  %1366 = zext i8 %1365 to i32
  %1367 = and i32 %1366, 15
  %1368 = icmp eq i32 9, %1367
  br i1 %1368, label %1369, label %1370

1369:                                             ; preds = %1362
  br label %1432

1370:                                             ; preds = %1362
  %1371 = load ptr, ptr %14, align 8, !tbaa !5
  %1372 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1371, i32 0, i32 3
  %1373 = load i8, ptr %1372, align 1, !tbaa !20
  %1374 = zext i8 %1373 to i32
  %1375 = and i32 %1374, 15
  %1376 = icmp eq i32 10, %1375
  br i1 %1376, label %1377, label %1378

1377:                                             ; preds = %1370
  br label %1430

1378:                                             ; preds = %1370
  %1379 = load ptr, ptr %14, align 8, !tbaa !5
  %1380 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1379, i32 0, i32 3
  %1381 = load i8, ptr %1380, align 1, !tbaa !20
  %1382 = zext i8 %1381 to i32
  %1383 = and i32 %1382, 15
  %1384 = icmp eq i32 11, %1383
  br i1 %1384, label %1385, label %1386

1385:                                             ; preds = %1378
  br label %1428

1386:                                             ; preds = %1378
  %1387 = load ptr, ptr %14, align 8, !tbaa !5
  %1388 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1387, i32 0, i32 3
  %1389 = load i8, ptr %1388, align 1, !tbaa !20
  %1390 = zext i8 %1389 to i32
  %1391 = and i32 %1390, 15
  %1392 = icmp eq i32 12, %1391
  br i1 %1392, label %1393, label %1394

1393:                                             ; preds = %1386
  br label %1426

1394:                                             ; preds = %1386
  %1395 = load ptr, ptr %14, align 8, !tbaa !5
  %1396 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1395, i32 0, i32 3
  %1397 = load i8, ptr %1396, align 1, !tbaa !20
  %1398 = zext i8 %1397 to i32
  %1399 = and i32 %1398, 15
  %1400 = icmp eq i32 13, %1399
  br i1 %1400, label %1401, label %1402

1401:                                             ; preds = %1394
  br label %1424

1402:                                             ; preds = %1394
  %1403 = load ptr, ptr %14, align 8, !tbaa !5
  %1404 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1403, i32 0, i32 3
  %1405 = load i8, ptr %1404, align 1, !tbaa !20
  %1406 = zext i8 %1405 to i32
  %1407 = and i32 %1406, 15
  %1408 = icmp eq i32 14, %1407
  br i1 %1408, label %1409, label %1410

1409:                                             ; preds = %1402
  br label %1422

1410:                                             ; preds = %1402
  %1411 = load ptr, ptr %14, align 8, !tbaa !5
  %1412 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1411, i32 0, i32 3
  %1413 = load i8, ptr %1412, align 1, !tbaa !20
  %1414 = zext i8 %1413 to i32
  %1415 = and i32 %1414, 15
  %1416 = icmp eq i32 15, %1415
  br i1 %1416, label %1417, label %1418

1417:                                             ; preds = %1410
  br label %1420

1418:                                             ; preds = %1410
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 913, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

1419:                                             ; No predecessors!
  br label %1420

1420:                                             ; preds = %1419, %1417
  %1421 = phi i32 [ 15, %1417 ], [ 0, %1419 ]
  br label %1422

1422:                                             ; preds = %1420, %1409
  %1423 = phi i32 [ 14, %1409 ], [ %1421, %1420 ]
  br label %1424

1424:                                             ; preds = %1422, %1401
  %1425 = phi i32 [ 12, %1401 ], [ %1423, %1422 ]
  br label %1426

1426:                                             ; preds = %1424, %1393
  %1427 = phi i32 [ 12, %1393 ], [ %1425, %1424 ]
  br label %1428

1428:                                             ; preds = %1426, %1385
  %1429 = phi i32 [ 10, %1385 ], [ %1427, %1426 ]
  br label %1430

1430:                                             ; preds = %1428, %1377
  %1431 = phi i32 [ 10, %1377 ], [ %1429, %1428 ]
  br label %1432

1432:                                             ; preds = %1430, %1369
  %1433 = phi i32 [ 8, %1369 ], [ %1431, %1430 ]
  br label %1434

1434:                                             ; preds = %1432, %1361
  %1435 = phi i32 [ 8, %1361 ], [ %1433, %1432 ]
  br label %1436

1436:                                             ; preds = %1434, %1353
  %1437 = phi i32 [ 6, %1353 ], [ %1435, %1434 ]
  br label %1438

1438:                                             ; preds = %1436, %1345
  %1439 = phi i32 [ 6, %1345 ], [ %1437, %1436 ]
  br label %1440

1440:                                             ; preds = %1438, %1337
  %1441 = phi i32 [ 5, %1337 ], [ %1439, %1438 ]
  br label %1442

1442:                                             ; preds = %1440, %1329
  %1443 = phi i32 [ 4, %1329 ], [ %1441, %1440 ]
  br label %1444

1444:                                             ; preds = %1442, %1321
  %1445 = phi i32 [ 3, %1321 ], [ %1443, %1442 ]
  br label %1446

1446:                                             ; preds = %1444, %1313
  %1447 = phi i32 [ 2, %1313 ], [ %1445, %1444 ]
  br label %1448

1448:                                             ; preds = %1446, %1305
  %1449 = phi i32 [ 1, %1305 ], [ %1447, %1446 ]
  br label %1450

1450:                                             ; preds = %1448, %1297
  %1451 = phi i32 [ 0, %1297 ], [ %1449, %1448 ]
  br label %1458

1452:                                             ; preds = %1283
  %1453 = load ptr, ptr %14, align 8, !tbaa !5
  %1454 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1453, i32 0, i32 3
  %1455 = load i8, ptr %1454, align 1, !tbaa !20
  %1456 = zext i8 %1455 to i32
  %1457 = ashr i32 %1456, 4
  br label %1458

1458:                                             ; preds = %1452, %1450
  %1459 = phi i32 [ %1451, %1450 ], [ %1457, %1452 ]
  %1460 = icmp eq i32 1, %1459
  br i1 %1460, label %1461, label %1462

1461:                                             ; preds = %1458
  br label %3636

1462:                                             ; preds = %1458
  %1463 = load ptr, ptr %14, align 8, !tbaa !5
  %1464 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1463, i32 0, i32 3
  %1465 = load i8, ptr %1464, align 1, !tbaa !20
  %1466 = zext i8 %1465 to i32
  %1467 = ashr i32 %1466, 4
  %1468 = icmp eq i32 0, %1467
  br i1 %1468, label %1469, label %1631

1469:                                             ; preds = %1462
  %1470 = load ptr, ptr %14, align 8, !tbaa !5
  %1471 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1470, i32 0, i32 3
  %1472 = load i8, ptr %1471, align 1, !tbaa !20
  %1473 = zext i8 %1472 to i32
  %1474 = and i32 %1473, 15
  %1475 = icmp eq i32 0, %1474
  br i1 %1475, label %1476, label %1477

1476:                                             ; preds = %1469
  br label %1629

1477:                                             ; preds = %1469
  %1478 = load ptr, ptr %14, align 8, !tbaa !5
  %1479 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1478, i32 0, i32 3
  %1480 = load i8, ptr %1479, align 1, !tbaa !20
  %1481 = zext i8 %1480 to i32
  %1482 = and i32 %1481, 15
  %1483 = icmp eq i32 1, %1482
  br i1 %1483, label %1484, label %1485

1484:                                             ; preds = %1477
  br label %1627

1485:                                             ; preds = %1477
  %1486 = load ptr, ptr %14, align 8, !tbaa !5
  %1487 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1486, i32 0, i32 3
  %1488 = load i8, ptr %1487, align 1, !tbaa !20
  %1489 = zext i8 %1488 to i32
  %1490 = and i32 %1489, 15
  %1491 = icmp eq i32 2, %1490
  br i1 %1491, label %1492, label %1493

1492:                                             ; preds = %1485
  br label %1625

1493:                                             ; preds = %1485
  %1494 = load ptr, ptr %14, align 8, !tbaa !5
  %1495 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1494, i32 0, i32 3
  %1496 = load i8, ptr %1495, align 1, !tbaa !20
  %1497 = zext i8 %1496 to i32
  %1498 = and i32 %1497, 15
  %1499 = icmp eq i32 3, %1498
  br i1 %1499, label %1500, label %1501

1500:                                             ; preds = %1493
  br label %1623

1501:                                             ; preds = %1493
  %1502 = load ptr, ptr %14, align 8, !tbaa !5
  %1503 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1502, i32 0, i32 3
  %1504 = load i8, ptr %1503, align 1, !tbaa !20
  %1505 = zext i8 %1504 to i32
  %1506 = and i32 %1505, 15
  %1507 = icmp eq i32 4, %1506
  br i1 %1507, label %1508, label %1509

1508:                                             ; preds = %1501
  br label %1621

1509:                                             ; preds = %1501
  %1510 = load ptr, ptr %14, align 8, !tbaa !5
  %1511 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1510, i32 0, i32 3
  %1512 = load i8, ptr %1511, align 1, !tbaa !20
  %1513 = zext i8 %1512 to i32
  %1514 = and i32 %1513, 15
  %1515 = icmp eq i32 5, %1514
  br i1 %1515, label %1516, label %1517

1516:                                             ; preds = %1509
  br label %1619

1517:                                             ; preds = %1509
  %1518 = load ptr, ptr %14, align 8, !tbaa !5
  %1519 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1518, i32 0, i32 3
  %1520 = load i8, ptr %1519, align 1, !tbaa !20
  %1521 = zext i8 %1520 to i32
  %1522 = and i32 %1521, 15
  %1523 = icmp eq i32 6, %1522
  br i1 %1523, label %1524, label %1525

1524:                                             ; preds = %1517
  br label %1617

1525:                                             ; preds = %1517
  %1526 = load ptr, ptr %14, align 8, !tbaa !5
  %1527 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1526, i32 0, i32 3
  %1528 = load i8, ptr %1527, align 1, !tbaa !20
  %1529 = zext i8 %1528 to i32
  %1530 = and i32 %1529, 15
  %1531 = icmp eq i32 7, %1530
  br i1 %1531, label %1532, label %1533

1532:                                             ; preds = %1525
  br label %1615

1533:                                             ; preds = %1525
  %1534 = load ptr, ptr %14, align 8, !tbaa !5
  %1535 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1534, i32 0, i32 3
  %1536 = load i8, ptr %1535, align 1, !tbaa !20
  %1537 = zext i8 %1536 to i32
  %1538 = and i32 %1537, 15
  %1539 = icmp eq i32 8, %1538
  br i1 %1539, label %1540, label %1541

1540:                                             ; preds = %1533
  br label %1613

1541:                                             ; preds = %1533
  %1542 = load ptr, ptr %14, align 8, !tbaa !5
  %1543 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1542, i32 0, i32 3
  %1544 = load i8, ptr %1543, align 1, !tbaa !20
  %1545 = zext i8 %1544 to i32
  %1546 = and i32 %1545, 15
  %1547 = icmp eq i32 9, %1546
  br i1 %1547, label %1548, label %1549

1548:                                             ; preds = %1541
  br label %1611

1549:                                             ; preds = %1541
  %1550 = load ptr, ptr %14, align 8, !tbaa !5
  %1551 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1550, i32 0, i32 3
  %1552 = load i8, ptr %1551, align 1, !tbaa !20
  %1553 = zext i8 %1552 to i32
  %1554 = and i32 %1553, 15
  %1555 = icmp eq i32 10, %1554
  br i1 %1555, label %1556, label %1557

1556:                                             ; preds = %1549
  br label %1609

1557:                                             ; preds = %1549
  %1558 = load ptr, ptr %14, align 8, !tbaa !5
  %1559 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1558, i32 0, i32 3
  %1560 = load i8, ptr %1559, align 1, !tbaa !20
  %1561 = zext i8 %1560 to i32
  %1562 = and i32 %1561, 15
  %1563 = icmp eq i32 11, %1562
  br i1 %1563, label %1564, label %1565

1564:                                             ; preds = %1557
  br label %1607

1565:                                             ; preds = %1557
  %1566 = load ptr, ptr %14, align 8, !tbaa !5
  %1567 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1566, i32 0, i32 3
  %1568 = load i8, ptr %1567, align 1, !tbaa !20
  %1569 = zext i8 %1568 to i32
  %1570 = and i32 %1569, 15
  %1571 = icmp eq i32 12, %1570
  br i1 %1571, label %1572, label %1573

1572:                                             ; preds = %1565
  br label %1605

1573:                                             ; preds = %1565
  %1574 = load ptr, ptr %14, align 8, !tbaa !5
  %1575 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1574, i32 0, i32 3
  %1576 = load i8, ptr %1575, align 1, !tbaa !20
  %1577 = zext i8 %1576 to i32
  %1578 = and i32 %1577, 15
  %1579 = icmp eq i32 13, %1578
  br i1 %1579, label %1580, label %1581

1580:                                             ; preds = %1573
  br label %1603

1581:                                             ; preds = %1573
  %1582 = load ptr, ptr %14, align 8, !tbaa !5
  %1583 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1582, i32 0, i32 3
  %1584 = load i8, ptr %1583, align 1, !tbaa !20
  %1585 = zext i8 %1584 to i32
  %1586 = and i32 %1585, 15
  %1587 = icmp eq i32 14, %1586
  br i1 %1587, label %1588, label %1589

1588:                                             ; preds = %1581
  br label %1601

1589:                                             ; preds = %1581
  %1590 = load ptr, ptr %14, align 8, !tbaa !5
  %1591 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1590, i32 0, i32 3
  %1592 = load i8, ptr %1591, align 1, !tbaa !20
  %1593 = zext i8 %1592 to i32
  %1594 = and i32 %1593, 15
  %1595 = icmp eq i32 15, %1594
  br i1 %1595, label %1596, label %1597

1596:                                             ; preds = %1589
  br label %1599

1597:                                             ; preds = %1589
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 913, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

1598:                                             ; No predecessors!
  br label %1599

1599:                                             ; preds = %1598, %1596
  %1600 = phi i32 [ 15, %1596 ], [ 0, %1598 ]
  br label %1601

1601:                                             ; preds = %1599, %1588
  %1602 = phi i32 [ 14, %1588 ], [ %1600, %1599 ]
  br label %1603

1603:                                             ; preds = %1601, %1580
  %1604 = phi i32 [ 12, %1580 ], [ %1602, %1601 ]
  br label %1605

1605:                                             ; preds = %1603, %1572
  %1606 = phi i32 [ 12, %1572 ], [ %1604, %1603 ]
  br label %1607

1607:                                             ; preds = %1605, %1564
  %1608 = phi i32 [ 10, %1564 ], [ %1606, %1605 ]
  br label %1609

1609:                                             ; preds = %1607, %1556
  %1610 = phi i32 [ 10, %1556 ], [ %1608, %1607 ]
  br label %1611

1611:                                             ; preds = %1609, %1548
  %1612 = phi i32 [ 8, %1548 ], [ %1610, %1609 ]
  br label %1613

1613:                                             ; preds = %1611, %1540
  %1614 = phi i32 [ 8, %1540 ], [ %1612, %1611 ]
  br label %1615

1615:                                             ; preds = %1613, %1532
  %1616 = phi i32 [ 6, %1532 ], [ %1614, %1613 ]
  br label %1617

1617:                                             ; preds = %1615, %1524
  %1618 = phi i32 [ 6, %1524 ], [ %1616, %1615 ]
  br label %1619

1619:                                             ; preds = %1617, %1516
  %1620 = phi i32 [ 5, %1516 ], [ %1618, %1617 ]
  br label %1621

1621:                                             ; preds = %1619, %1508
  %1622 = phi i32 [ 4, %1508 ], [ %1620, %1619 ]
  br label %1623

1623:                                             ; preds = %1621, %1500
  %1624 = phi i32 [ 3, %1500 ], [ %1622, %1621 ]
  br label %1625

1625:                                             ; preds = %1623, %1492
  %1626 = phi i32 [ 2, %1492 ], [ %1624, %1623 ]
  br label %1627

1627:                                             ; preds = %1625, %1484
  %1628 = phi i32 [ 1, %1484 ], [ %1626, %1625 ]
  br label %1629

1629:                                             ; preds = %1627, %1476
  %1630 = phi i32 [ 0, %1476 ], [ %1628, %1627 ]
  br label %1637

1631:                                             ; preds = %1462
  %1632 = load ptr, ptr %14, align 8, !tbaa !5
  %1633 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1632, i32 0, i32 3
  %1634 = load i8, ptr %1633, align 1, !tbaa !20
  %1635 = zext i8 %1634 to i32
  %1636 = ashr i32 %1635, 4
  br label %1637

1637:                                             ; preds = %1631, %1629
  %1638 = phi i32 [ %1630, %1629 ], [ %1636, %1631 ]
  %1639 = icmp eq i32 2, %1638
  br i1 %1639, label %1640, label %1641

1640:                                             ; preds = %1637
  br label %3634

1641:                                             ; preds = %1637
  %1642 = load ptr, ptr %14, align 8, !tbaa !5
  %1643 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1642, i32 0, i32 3
  %1644 = load i8, ptr %1643, align 1, !tbaa !20
  %1645 = zext i8 %1644 to i32
  %1646 = ashr i32 %1645, 4
  %1647 = icmp eq i32 0, %1646
  br i1 %1647, label %1648, label %1810

1648:                                             ; preds = %1641
  %1649 = load ptr, ptr %14, align 8, !tbaa !5
  %1650 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1649, i32 0, i32 3
  %1651 = load i8, ptr %1650, align 1, !tbaa !20
  %1652 = zext i8 %1651 to i32
  %1653 = and i32 %1652, 15
  %1654 = icmp eq i32 0, %1653
  br i1 %1654, label %1655, label %1656

1655:                                             ; preds = %1648
  br label %1808

1656:                                             ; preds = %1648
  %1657 = load ptr, ptr %14, align 8, !tbaa !5
  %1658 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1657, i32 0, i32 3
  %1659 = load i8, ptr %1658, align 1, !tbaa !20
  %1660 = zext i8 %1659 to i32
  %1661 = and i32 %1660, 15
  %1662 = icmp eq i32 1, %1661
  br i1 %1662, label %1663, label %1664

1663:                                             ; preds = %1656
  br label %1806

1664:                                             ; preds = %1656
  %1665 = load ptr, ptr %14, align 8, !tbaa !5
  %1666 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1665, i32 0, i32 3
  %1667 = load i8, ptr %1666, align 1, !tbaa !20
  %1668 = zext i8 %1667 to i32
  %1669 = and i32 %1668, 15
  %1670 = icmp eq i32 2, %1669
  br i1 %1670, label %1671, label %1672

1671:                                             ; preds = %1664
  br label %1804

1672:                                             ; preds = %1664
  %1673 = load ptr, ptr %14, align 8, !tbaa !5
  %1674 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1673, i32 0, i32 3
  %1675 = load i8, ptr %1674, align 1, !tbaa !20
  %1676 = zext i8 %1675 to i32
  %1677 = and i32 %1676, 15
  %1678 = icmp eq i32 3, %1677
  br i1 %1678, label %1679, label %1680

1679:                                             ; preds = %1672
  br label %1802

1680:                                             ; preds = %1672
  %1681 = load ptr, ptr %14, align 8, !tbaa !5
  %1682 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1681, i32 0, i32 3
  %1683 = load i8, ptr %1682, align 1, !tbaa !20
  %1684 = zext i8 %1683 to i32
  %1685 = and i32 %1684, 15
  %1686 = icmp eq i32 4, %1685
  br i1 %1686, label %1687, label %1688

1687:                                             ; preds = %1680
  br label %1800

1688:                                             ; preds = %1680
  %1689 = load ptr, ptr %14, align 8, !tbaa !5
  %1690 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1689, i32 0, i32 3
  %1691 = load i8, ptr %1690, align 1, !tbaa !20
  %1692 = zext i8 %1691 to i32
  %1693 = and i32 %1692, 15
  %1694 = icmp eq i32 5, %1693
  br i1 %1694, label %1695, label %1696

1695:                                             ; preds = %1688
  br label %1798

1696:                                             ; preds = %1688
  %1697 = load ptr, ptr %14, align 8, !tbaa !5
  %1698 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1697, i32 0, i32 3
  %1699 = load i8, ptr %1698, align 1, !tbaa !20
  %1700 = zext i8 %1699 to i32
  %1701 = and i32 %1700, 15
  %1702 = icmp eq i32 6, %1701
  br i1 %1702, label %1703, label %1704

1703:                                             ; preds = %1696
  br label %1796

1704:                                             ; preds = %1696
  %1705 = load ptr, ptr %14, align 8, !tbaa !5
  %1706 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1705, i32 0, i32 3
  %1707 = load i8, ptr %1706, align 1, !tbaa !20
  %1708 = zext i8 %1707 to i32
  %1709 = and i32 %1708, 15
  %1710 = icmp eq i32 7, %1709
  br i1 %1710, label %1711, label %1712

1711:                                             ; preds = %1704
  br label %1794

1712:                                             ; preds = %1704
  %1713 = load ptr, ptr %14, align 8, !tbaa !5
  %1714 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1713, i32 0, i32 3
  %1715 = load i8, ptr %1714, align 1, !tbaa !20
  %1716 = zext i8 %1715 to i32
  %1717 = and i32 %1716, 15
  %1718 = icmp eq i32 8, %1717
  br i1 %1718, label %1719, label %1720

1719:                                             ; preds = %1712
  br label %1792

1720:                                             ; preds = %1712
  %1721 = load ptr, ptr %14, align 8, !tbaa !5
  %1722 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1721, i32 0, i32 3
  %1723 = load i8, ptr %1722, align 1, !tbaa !20
  %1724 = zext i8 %1723 to i32
  %1725 = and i32 %1724, 15
  %1726 = icmp eq i32 9, %1725
  br i1 %1726, label %1727, label %1728

1727:                                             ; preds = %1720
  br label %1790

1728:                                             ; preds = %1720
  %1729 = load ptr, ptr %14, align 8, !tbaa !5
  %1730 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1729, i32 0, i32 3
  %1731 = load i8, ptr %1730, align 1, !tbaa !20
  %1732 = zext i8 %1731 to i32
  %1733 = and i32 %1732, 15
  %1734 = icmp eq i32 10, %1733
  br i1 %1734, label %1735, label %1736

1735:                                             ; preds = %1728
  br label %1788

1736:                                             ; preds = %1728
  %1737 = load ptr, ptr %14, align 8, !tbaa !5
  %1738 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1737, i32 0, i32 3
  %1739 = load i8, ptr %1738, align 1, !tbaa !20
  %1740 = zext i8 %1739 to i32
  %1741 = and i32 %1740, 15
  %1742 = icmp eq i32 11, %1741
  br i1 %1742, label %1743, label %1744

1743:                                             ; preds = %1736
  br label %1786

1744:                                             ; preds = %1736
  %1745 = load ptr, ptr %14, align 8, !tbaa !5
  %1746 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1745, i32 0, i32 3
  %1747 = load i8, ptr %1746, align 1, !tbaa !20
  %1748 = zext i8 %1747 to i32
  %1749 = and i32 %1748, 15
  %1750 = icmp eq i32 12, %1749
  br i1 %1750, label %1751, label %1752

1751:                                             ; preds = %1744
  br label %1784

1752:                                             ; preds = %1744
  %1753 = load ptr, ptr %14, align 8, !tbaa !5
  %1754 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1753, i32 0, i32 3
  %1755 = load i8, ptr %1754, align 1, !tbaa !20
  %1756 = zext i8 %1755 to i32
  %1757 = and i32 %1756, 15
  %1758 = icmp eq i32 13, %1757
  br i1 %1758, label %1759, label %1760

1759:                                             ; preds = %1752
  br label %1782

1760:                                             ; preds = %1752
  %1761 = load ptr, ptr %14, align 8, !tbaa !5
  %1762 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1761, i32 0, i32 3
  %1763 = load i8, ptr %1762, align 1, !tbaa !20
  %1764 = zext i8 %1763 to i32
  %1765 = and i32 %1764, 15
  %1766 = icmp eq i32 14, %1765
  br i1 %1766, label %1767, label %1768

1767:                                             ; preds = %1760
  br label %1780

1768:                                             ; preds = %1760
  %1769 = load ptr, ptr %14, align 8, !tbaa !5
  %1770 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1769, i32 0, i32 3
  %1771 = load i8, ptr %1770, align 1, !tbaa !20
  %1772 = zext i8 %1771 to i32
  %1773 = and i32 %1772, 15
  %1774 = icmp eq i32 15, %1773
  br i1 %1774, label %1775, label %1776

1775:                                             ; preds = %1768
  br label %1778

1776:                                             ; preds = %1768
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 913, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

1777:                                             ; No predecessors!
  br label %1778

1778:                                             ; preds = %1777, %1775
  %1779 = phi i32 [ 15, %1775 ], [ 0, %1777 ]
  br label %1780

1780:                                             ; preds = %1778, %1767
  %1781 = phi i32 [ 14, %1767 ], [ %1779, %1778 ]
  br label %1782

1782:                                             ; preds = %1780, %1759
  %1783 = phi i32 [ 12, %1759 ], [ %1781, %1780 ]
  br label %1784

1784:                                             ; preds = %1782, %1751
  %1785 = phi i32 [ 12, %1751 ], [ %1783, %1782 ]
  br label %1786

1786:                                             ; preds = %1784, %1743
  %1787 = phi i32 [ 10, %1743 ], [ %1785, %1784 ]
  br label %1788

1788:                                             ; preds = %1786, %1735
  %1789 = phi i32 [ 10, %1735 ], [ %1787, %1786 ]
  br label %1790

1790:                                             ; preds = %1788, %1727
  %1791 = phi i32 [ 8, %1727 ], [ %1789, %1788 ]
  br label %1792

1792:                                             ; preds = %1790, %1719
  %1793 = phi i32 [ 8, %1719 ], [ %1791, %1790 ]
  br label %1794

1794:                                             ; preds = %1792, %1711
  %1795 = phi i32 [ 6, %1711 ], [ %1793, %1792 ]
  br label %1796

1796:                                             ; preds = %1794, %1703
  %1797 = phi i32 [ 6, %1703 ], [ %1795, %1794 ]
  br label %1798

1798:                                             ; preds = %1796, %1695
  %1799 = phi i32 [ 5, %1695 ], [ %1797, %1796 ]
  br label %1800

1800:                                             ; preds = %1798, %1687
  %1801 = phi i32 [ 4, %1687 ], [ %1799, %1798 ]
  br label %1802

1802:                                             ; preds = %1800, %1679
  %1803 = phi i32 [ 3, %1679 ], [ %1801, %1800 ]
  br label %1804

1804:                                             ; preds = %1802, %1671
  %1805 = phi i32 [ 2, %1671 ], [ %1803, %1802 ]
  br label %1806

1806:                                             ; preds = %1804, %1663
  %1807 = phi i32 [ 1, %1663 ], [ %1805, %1804 ]
  br label %1808

1808:                                             ; preds = %1806, %1655
  %1809 = phi i32 [ 0, %1655 ], [ %1807, %1806 ]
  br label %1816

1810:                                             ; preds = %1641
  %1811 = load ptr, ptr %14, align 8, !tbaa !5
  %1812 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1811, i32 0, i32 3
  %1813 = load i8, ptr %1812, align 1, !tbaa !20
  %1814 = zext i8 %1813 to i32
  %1815 = ashr i32 %1814, 4
  br label %1816

1816:                                             ; preds = %1810, %1808
  %1817 = phi i32 [ %1809, %1808 ], [ %1815, %1810 ]
  %1818 = icmp eq i32 3, %1817
  br i1 %1818, label %1819, label %1820

1819:                                             ; preds = %1816
  br label %3632

1820:                                             ; preds = %1816
  %1821 = load ptr, ptr %14, align 8, !tbaa !5
  %1822 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1821, i32 0, i32 3
  %1823 = load i8, ptr %1822, align 1, !tbaa !20
  %1824 = zext i8 %1823 to i32
  %1825 = ashr i32 %1824, 4
  %1826 = icmp eq i32 0, %1825
  br i1 %1826, label %1827, label %1989

1827:                                             ; preds = %1820
  %1828 = load ptr, ptr %14, align 8, !tbaa !5
  %1829 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1828, i32 0, i32 3
  %1830 = load i8, ptr %1829, align 1, !tbaa !20
  %1831 = zext i8 %1830 to i32
  %1832 = and i32 %1831, 15
  %1833 = icmp eq i32 0, %1832
  br i1 %1833, label %1834, label %1835

1834:                                             ; preds = %1827
  br label %1987

1835:                                             ; preds = %1827
  %1836 = load ptr, ptr %14, align 8, !tbaa !5
  %1837 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1836, i32 0, i32 3
  %1838 = load i8, ptr %1837, align 1, !tbaa !20
  %1839 = zext i8 %1838 to i32
  %1840 = and i32 %1839, 15
  %1841 = icmp eq i32 1, %1840
  br i1 %1841, label %1842, label %1843

1842:                                             ; preds = %1835
  br label %1985

1843:                                             ; preds = %1835
  %1844 = load ptr, ptr %14, align 8, !tbaa !5
  %1845 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1844, i32 0, i32 3
  %1846 = load i8, ptr %1845, align 1, !tbaa !20
  %1847 = zext i8 %1846 to i32
  %1848 = and i32 %1847, 15
  %1849 = icmp eq i32 2, %1848
  br i1 %1849, label %1850, label %1851

1850:                                             ; preds = %1843
  br label %1983

1851:                                             ; preds = %1843
  %1852 = load ptr, ptr %14, align 8, !tbaa !5
  %1853 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1852, i32 0, i32 3
  %1854 = load i8, ptr %1853, align 1, !tbaa !20
  %1855 = zext i8 %1854 to i32
  %1856 = and i32 %1855, 15
  %1857 = icmp eq i32 3, %1856
  br i1 %1857, label %1858, label %1859

1858:                                             ; preds = %1851
  br label %1981

1859:                                             ; preds = %1851
  %1860 = load ptr, ptr %14, align 8, !tbaa !5
  %1861 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1860, i32 0, i32 3
  %1862 = load i8, ptr %1861, align 1, !tbaa !20
  %1863 = zext i8 %1862 to i32
  %1864 = and i32 %1863, 15
  %1865 = icmp eq i32 4, %1864
  br i1 %1865, label %1866, label %1867

1866:                                             ; preds = %1859
  br label %1979

1867:                                             ; preds = %1859
  %1868 = load ptr, ptr %14, align 8, !tbaa !5
  %1869 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1868, i32 0, i32 3
  %1870 = load i8, ptr %1869, align 1, !tbaa !20
  %1871 = zext i8 %1870 to i32
  %1872 = and i32 %1871, 15
  %1873 = icmp eq i32 5, %1872
  br i1 %1873, label %1874, label %1875

1874:                                             ; preds = %1867
  br label %1977

1875:                                             ; preds = %1867
  %1876 = load ptr, ptr %14, align 8, !tbaa !5
  %1877 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1876, i32 0, i32 3
  %1878 = load i8, ptr %1877, align 1, !tbaa !20
  %1879 = zext i8 %1878 to i32
  %1880 = and i32 %1879, 15
  %1881 = icmp eq i32 6, %1880
  br i1 %1881, label %1882, label %1883

1882:                                             ; preds = %1875
  br label %1975

1883:                                             ; preds = %1875
  %1884 = load ptr, ptr %14, align 8, !tbaa !5
  %1885 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1884, i32 0, i32 3
  %1886 = load i8, ptr %1885, align 1, !tbaa !20
  %1887 = zext i8 %1886 to i32
  %1888 = and i32 %1887, 15
  %1889 = icmp eq i32 7, %1888
  br i1 %1889, label %1890, label %1891

1890:                                             ; preds = %1883
  br label %1973

1891:                                             ; preds = %1883
  %1892 = load ptr, ptr %14, align 8, !tbaa !5
  %1893 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1892, i32 0, i32 3
  %1894 = load i8, ptr %1893, align 1, !tbaa !20
  %1895 = zext i8 %1894 to i32
  %1896 = and i32 %1895, 15
  %1897 = icmp eq i32 8, %1896
  br i1 %1897, label %1898, label %1899

1898:                                             ; preds = %1891
  br label %1971

1899:                                             ; preds = %1891
  %1900 = load ptr, ptr %14, align 8, !tbaa !5
  %1901 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1900, i32 0, i32 3
  %1902 = load i8, ptr %1901, align 1, !tbaa !20
  %1903 = zext i8 %1902 to i32
  %1904 = and i32 %1903, 15
  %1905 = icmp eq i32 9, %1904
  br i1 %1905, label %1906, label %1907

1906:                                             ; preds = %1899
  br label %1969

1907:                                             ; preds = %1899
  %1908 = load ptr, ptr %14, align 8, !tbaa !5
  %1909 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1908, i32 0, i32 3
  %1910 = load i8, ptr %1909, align 1, !tbaa !20
  %1911 = zext i8 %1910 to i32
  %1912 = and i32 %1911, 15
  %1913 = icmp eq i32 10, %1912
  br i1 %1913, label %1914, label %1915

1914:                                             ; preds = %1907
  br label %1967

1915:                                             ; preds = %1907
  %1916 = load ptr, ptr %14, align 8, !tbaa !5
  %1917 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1916, i32 0, i32 3
  %1918 = load i8, ptr %1917, align 1, !tbaa !20
  %1919 = zext i8 %1918 to i32
  %1920 = and i32 %1919, 15
  %1921 = icmp eq i32 11, %1920
  br i1 %1921, label %1922, label %1923

1922:                                             ; preds = %1915
  br label %1965

1923:                                             ; preds = %1915
  %1924 = load ptr, ptr %14, align 8, !tbaa !5
  %1925 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1924, i32 0, i32 3
  %1926 = load i8, ptr %1925, align 1, !tbaa !20
  %1927 = zext i8 %1926 to i32
  %1928 = and i32 %1927, 15
  %1929 = icmp eq i32 12, %1928
  br i1 %1929, label %1930, label %1931

1930:                                             ; preds = %1923
  br label %1963

1931:                                             ; preds = %1923
  %1932 = load ptr, ptr %14, align 8, !tbaa !5
  %1933 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1932, i32 0, i32 3
  %1934 = load i8, ptr %1933, align 1, !tbaa !20
  %1935 = zext i8 %1934 to i32
  %1936 = and i32 %1935, 15
  %1937 = icmp eq i32 13, %1936
  br i1 %1937, label %1938, label %1939

1938:                                             ; preds = %1931
  br label %1961

1939:                                             ; preds = %1931
  %1940 = load ptr, ptr %14, align 8, !tbaa !5
  %1941 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1940, i32 0, i32 3
  %1942 = load i8, ptr %1941, align 1, !tbaa !20
  %1943 = zext i8 %1942 to i32
  %1944 = and i32 %1943, 15
  %1945 = icmp eq i32 14, %1944
  br i1 %1945, label %1946, label %1947

1946:                                             ; preds = %1939
  br label %1959

1947:                                             ; preds = %1939
  %1948 = load ptr, ptr %14, align 8, !tbaa !5
  %1949 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1948, i32 0, i32 3
  %1950 = load i8, ptr %1949, align 1, !tbaa !20
  %1951 = zext i8 %1950 to i32
  %1952 = and i32 %1951, 15
  %1953 = icmp eq i32 15, %1952
  br i1 %1953, label %1954, label %1955

1954:                                             ; preds = %1947
  br label %1957

1955:                                             ; preds = %1947
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 913, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

1956:                                             ; No predecessors!
  br label %1957

1957:                                             ; preds = %1956, %1954
  %1958 = phi i32 [ 15, %1954 ], [ 0, %1956 ]
  br label %1959

1959:                                             ; preds = %1957, %1946
  %1960 = phi i32 [ 14, %1946 ], [ %1958, %1957 ]
  br label %1961

1961:                                             ; preds = %1959, %1938
  %1962 = phi i32 [ 12, %1938 ], [ %1960, %1959 ]
  br label %1963

1963:                                             ; preds = %1961, %1930
  %1964 = phi i32 [ 12, %1930 ], [ %1962, %1961 ]
  br label %1965

1965:                                             ; preds = %1963, %1922
  %1966 = phi i32 [ 10, %1922 ], [ %1964, %1963 ]
  br label %1967

1967:                                             ; preds = %1965, %1914
  %1968 = phi i32 [ 10, %1914 ], [ %1966, %1965 ]
  br label %1969

1969:                                             ; preds = %1967, %1906
  %1970 = phi i32 [ 8, %1906 ], [ %1968, %1967 ]
  br label %1971

1971:                                             ; preds = %1969, %1898
  %1972 = phi i32 [ 8, %1898 ], [ %1970, %1969 ]
  br label %1973

1973:                                             ; preds = %1971, %1890
  %1974 = phi i32 [ 6, %1890 ], [ %1972, %1971 ]
  br label %1975

1975:                                             ; preds = %1973, %1882
  %1976 = phi i32 [ 6, %1882 ], [ %1974, %1973 ]
  br label %1977

1977:                                             ; preds = %1975, %1874
  %1978 = phi i32 [ 5, %1874 ], [ %1976, %1975 ]
  br label %1979

1979:                                             ; preds = %1977, %1866
  %1980 = phi i32 [ 4, %1866 ], [ %1978, %1977 ]
  br label %1981

1981:                                             ; preds = %1979, %1858
  %1982 = phi i32 [ 3, %1858 ], [ %1980, %1979 ]
  br label %1983

1983:                                             ; preds = %1981, %1850
  %1984 = phi i32 [ 2, %1850 ], [ %1982, %1981 ]
  br label %1985

1985:                                             ; preds = %1983, %1842
  %1986 = phi i32 [ 1, %1842 ], [ %1984, %1983 ]
  br label %1987

1987:                                             ; preds = %1985, %1834
  %1988 = phi i32 [ 0, %1834 ], [ %1986, %1985 ]
  br label %1995

1989:                                             ; preds = %1820
  %1990 = load ptr, ptr %14, align 8, !tbaa !5
  %1991 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1990, i32 0, i32 3
  %1992 = load i8, ptr %1991, align 1, !tbaa !20
  %1993 = zext i8 %1992 to i32
  %1994 = ashr i32 %1993, 4
  br label %1995

1995:                                             ; preds = %1989, %1987
  %1996 = phi i32 [ %1988, %1987 ], [ %1994, %1989 ]
  %1997 = icmp eq i32 4, %1996
  br i1 %1997, label %1998, label %1999

1998:                                             ; preds = %1995
  br label %3630

1999:                                             ; preds = %1995
  %2000 = load ptr, ptr %14, align 8, !tbaa !5
  %2001 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2000, i32 0, i32 3
  %2002 = load i8, ptr %2001, align 1, !tbaa !20
  %2003 = zext i8 %2002 to i32
  %2004 = ashr i32 %2003, 4
  %2005 = icmp eq i32 0, %2004
  br i1 %2005, label %2006, label %2168

2006:                                             ; preds = %1999
  %2007 = load ptr, ptr %14, align 8, !tbaa !5
  %2008 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2007, i32 0, i32 3
  %2009 = load i8, ptr %2008, align 1, !tbaa !20
  %2010 = zext i8 %2009 to i32
  %2011 = and i32 %2010, 15
  %2012 = icmp eq i32 0, %2011
  br i1 %2012, label %2013, label %2014

2013:                                             ; preds = %2006
  br label %2166

2014:                                             ; preds = %2006
  %2015 = load ptr, ptr %14, align 8, !tbaa !5
  %2016 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2015, i32 0, i32 3
  %2017 = load i8, ptr %2016, align 1, !tbaa !20
  %2018 = zext i8 %2017 to i32
  %2019 = and i32 %2018, 15
  %2020 = icmp eq i32 1, %2019
  br i1 %2020, label %2021, label %2022

2021:                                             ; preds = %2014
  br label %2164

2022:                                             ; preds = %2014
  %2023 = load ptr, ptr %14, align 8, !tbaa !5
  %2024 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2023, i32 0, i32 3
  %2025 = load i8, ptr %2024, align 1, !tbaa !20
  %2026 = zext i8 %2025 to i32
  %2027 = and i32 %2026, 15
  %2028 = icmp eq i32 2, %2027
  br i1 %2028, label %2029, label %2030

2029:                                             ; preds = %2022
  br label %2162

2030:                                             ; preds = %2022
  %2031 = load ptr, ptr %14, align 8, !tbaa !5
  %2032 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2031, i32 0, i32 3
  %2033 = load i8, ptr %2032, align 1, !tbaa !20
  %2034 = zext i8 %2033 to i32
  %2035 = and i32 %2034, 15
  %2036 = icmp eq i32 3, %2035
  br i1 %2036, label %2037, label %2038

2037:                                             ; preds = %2030
  br label %2160

2038:                                             ; preds = %2030
  %2039 = load ptr, ptr %14, align 8, !tbaa !5
  %2040 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2039, i32 0, i32 3
  %2041 = load i8, ptr %2040, align 1, !tbaa !20
  %2042 = zext i8 %2041 to i32
  %2043 = and i32 %2042, 15
  %2044 = icmp eq i32 4, %2043
  br i1 %2044, label %2045, label %2046

2045:                                             ; preds = %2038
  br label %2158

2046:                                             ; preds = %2038
  %2047 = load ptr, ptr %14, align 8, !tbaa !5
  %2048 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2047, i32 0, i32 3
  %2049 = load i8, ptr %2048, align 1, !tbaa !20
  %2050 = zext i8 %2049 to i32
  %2051 = and i32 %2050, 15
  %2052 = icmp eq i32 5, %2051
  br i1 %2052, label %2053, label %2054

2053:                                             ; preds = %2046
  br label %2156

2054:                                             ; preds = %2046
  %2055 = load ptr, ptr %14, align 8, !tbaa !5
  %2056 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2055, i32 0, i32 3
  %2057 = load i8, ptr %2056, align 1, !tbaa !20
  %2058 = zext i8 %2057 to i32
  %2059 = and i32 %2058, 15
  %2060 = icmp eq i32 6, %2059
  br i1 %2060, label %2061, label %2062

2061:                                             ; preds = %2054
  br label %2154

2062:                                             ; preds = %2054
  %2063 = load ptr, ptr %14, align 8, !tbaa !5
  %2064 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2063, i32 0, i32 3
  %2065 = load i8, ptr %2064, align 1, !tbaa !20
  %2066 = zext i8 %2065 to i32
  %2067 = and i32 %2066, 15
  %2068 = icmp eq i32 7, %2067
  br i1 %2068, label %2069, label %2070

2069:                                             ; preds = %2062
  br label %2152

2070:                                             ; preds = %2062
  %2071 = load ptr, ptr %14, align 8, !tbaa !5
  %2072 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2071, i32 0, i32 3
  %2073 = load i8, ptr %2072, align 1, !tbaa !20
  %2074 = zext i8 %2073 to i32
  %2075 = and i32 %2074, 15
  %2076 = icmp eq i32 8, %2075
  br i1 %2076, label %2077, label %2078

2077:                                             ; preds = %2070
  br label %2150

2078:                                             ; preds = %2070
  %2079 = load ptr, ptr %14, align 8, !tbaa !5
  %2080 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2079, i32 0, i32 3
  %2081 = load i8, ptr %2080, align 1, !tbaa !20
  %2082 = zext i8 %2081 to i32
  %2083 = and i32 %2082, 15
  %2084 = icmp eq i32 9, %2083
  br i1 %2084, label %2085, label %2086

2085:                                             ; preds = %2078
  br label %2148

2086:                                             ; preds = %2078
  %2087 = load ptr, ptr %14, align 8, !tbaa !5
  %2088 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2087, i32 0, i32 3
  %2089 = load i8, ptr %2088, align 1, !tbaa !20
  %2090 = zext i8 %2089 to i32
  %2091 = and i32 %2090, 15
  %2092 = icmp eq i32 10, %2091
  br i1 %2092, label %2093, label %2094

2093:                                             ; preds = %2086
  br label %2146

2094:                                             ; preds = %2086
  %2095 = load ptr, ptr %14, align 8, !tbaa !5
  %2096 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2095, i32 0, i32 3
  %2097 = load i8, ptr %2096, align 1, !tbaa !20
  %2098 = zext i8 %2097 to i32
  %2099 = and i32 %2098, 15
  %2100 = icmp eq i32 11, %2099
  br i1 %2100, label %2101, label %2102

2101:                                             ; preds = %2094
  br label %2144

2102:                                             ; preds = %2094
  %2103 = load ptr, ptr %14, align 8, !tbaa !5
  %2104 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2103, i32 0, i32 3
  %2105 = load i8, ptr %2104, align 1, !tbaa !20
  %2106 = zext i8 %2105 to i32
  %2107 = and i32 %2106, 15
  %2108 = icmp eq i32 12, %2107
  br i1 %2108, label %2109, label %2110

2109:                                             ; preds = %2102
  br label %2142

2110:                                             ; preds = %2102
  %2111 = load ptr, ptr %14, align 8, !tbaa !5
  %2112 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2111, i32 0, i32 3
  %2113 = load i8, ptr %2112, align 1, !tbaa !20
  %2114 = zext i8 %2113 to i32
  %2115 = and i32 %2114, 15
  %2116 = icmp eq i32 13, %2115
  br i1 %2116, label %2117, label %2118

2117:                                             ; preds = %2110
  br label %2140

2118:                                             ; preds = %2110
  %2119 = load ptr, ptr %14, align 8, !tbaa !5
  %2120 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2119, i32 0, i32 3
  %2121 = load i8, ptr %2120, align 1, !tbaa !20
  %2122 = zext i8 %2121 to i32
  %2123 = and i32 %2122, 15
  %2124 = icmp eq i32 14, %2123
  br i1 %2124, label %2125, label %2126

2125:                                             ; preds = %2118
  br label %2138

2126:                                             ; preds = %2118
  %2127 = load ptr, ptr %14, align 8, !tbaa !5
  %2128 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2127, i32 0, i32 3
  %2129 = load i8, ptr %2128, align 1, !tbaa !20
  %2130 = zext i8 %2129 to i32
  %2131 = and i32 %2130, 15
  %2132 = icmp eq i32 15, %2131
  br i1 %2132, label %2133, label %2134

2133:                                             ; preds = %2126
  br label %2136

2134:                                             ; preds = %2126
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 913, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

2135:                                             ; No predecessors!
  br label %2136

2136:                                             ; preds = %2135, %2133
  %2137 = phi i32 [ 15, %2133 ], [ 0, %2135 ]
  br label %2138

2138:                                             ; preds = %2136, %2125
  %2139 = phi i32 [ 14, %2125 ], [ %2137, %2136 ]
  br label %2140

2140:                                             ; preds = %2138, %2117
  %2141 = phi i32 [ 12, %2117 ], [ %2139, %2138 ]
  br label %2142

2142:                                             ; preds = %2140, %2109
  %2143 = phi i32 [ 12, %2109 ], [ %2141, %2140 ]
  br label %2144

2144:                                             ; preds = %2142, %2101
  %2145 = phi i32 [ 10, %2101 ], [ %2143, %2142 ]
  br label %2146

2146:                                             ; preds = %2144, %2093
  %2147 = phi i32 [ 10, %2093 ], [ %2145, %2144 ]
  br label %2148

2148:                                             ; preds = %2146, %2085
  %2149 = phi i32 [ 8, %2085 ], [ %2147, %2146 ]
  br label %2150

2150:                                             ; preds = %2148, %2077
  %2151 = phi i32 [ 8, %2077 ], [ %2149, %2148 ]
  br label %2152

2152:                                             ; preds = %2150, %2069
  %2153 = phi i32 [ 6, %2069 ], [ %2151, %2150 ]
  br label %2154

2154:                                             ; preds = %2152, %2061
  %2155 = phi i32 [ 6, %2061 ], [ %2153, %2152 ]
  br label %2156

2156:                                             ; preds = %2154, %2053
  %2157 = phi i32 [ 5, %2053 ], [ %2155, %2154 ]
  br label %2158

2158:                                             ; preds = %2156, %2045
  %2159 = phi i32 [ 4, %2045 ], [ %2157, %2156 ]
  br label %2160

2160:                                             ; preds = %2158, %2037
  %2161 = phi i32 [ 3, %2037 ], [ %2159, %2158 ]
  br label %2162

2162:                                             ; preds = %2160, %2029
  %2163 = phi i32 [ 2, %2029 ], [ %2161, %2160 ]
  br label %2164

2164:                                             ; preds = %2162, %2021
  %2165 = phi i32 [ 1, %2021 ], [ %2163, %2162 ]
  br label %2166

2166:                                             ; preds = %2164, %2013
  %2167 = phi i32 [ 0, %2013 ], [ %2165, %2164 ]
  br label %2174

2168:                                             ; preds = %1999
  %2169 = load ptr, ptr %14, align 8, !tbaa !5
  %2170 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2169, i32 0, i32 3
  %2171 = load i8, ptr %2170, align 1, !tbaa !20
  %2172 = zext i8 %2171 to i32
  %2173 = ashr i32 %2172, 4
  br label %2174

2174:                                             ; preds = %2168, %2166
  %2175 = phi i32 [ %2167, %2166 ], [ %2173, %2168 ]
  %2176 = icmp eq i32 5, %2175
  br i1 %2176, label %2177, label %2178

2177:                                             ; preds = %2174
  br label %3628

2178:                                             ; preds = %2174
  %2179 = load ptr, ptr %14, align 8, !tbaa !5
  %2180 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2179, i32 0, i32 3
  %2181 = load i8, ptr %2180, align 1, !tbaa !20
  %2182 = zext i8 %2181 to i32
  %2183 = ashr i32 %2182, 4
  %2184 = icmp eq i32 0, %2183
  br i1 %2184, label %2185, label %2347

2185:                                             ; preds = %2178
  %2186 = load ptr, ptr %14, align 8, !tbaa !5
  %2187 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2186, i32 0, i32 3
  %2188 = load i8, ptr %2187, align 1, !tbaa !20
  %2189 = zext i8 %2188 to i32
  %2190 = and i32 %2189, 15
  %2191 = icmp eq i32 0, %2190
  br i1 %2191, label %2192, label %2193

2192:                                             ; preds = %2185
  br label %2345

2193:                                             ; preds = %2185
  %2194 = load ptr, ptr %14, align 8, !tbaa !5
  %2195 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2194, i32 0, i32 3
  %2196 = load i8, ptr %2195, align 1, !tbaa !20
  %2197 = zext i8 %2196 to i32
  %2198 = and i32 %2197, 15
  %2199 = icmp eq i32 1, %2198
  br i1 %2199, label %2200, label %2201

2200:                                             ; preds = %2193
  br label %2343

2201:                                             ; preds = %2193
  %2202 = load ptr, ptr %14, align 8, !tbaa !5
  %2203 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2202, i32 0, i32 3
  %2204 = load i8, ptr %2203, align 1, !tbaa !20
  %2205 = zext i8 %2204 to i32
  %2206 = and i32 %2205, 15
  %2207 = icmp eq i32 2, %2206
  br i1 %2207, label %2208, label %2209

2208:                                             ; preds = %2201
  br label %2341

2209:                                             ; preds = %2201
  %2210 = load ptr, ptr %14, align 8, !tbaa !5
  %2211 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2210, i32 0, i32 3
  %2212 = load i8, ptr %2211, align 1, !tbaa !20
  %2213 = zext i8 %2212 to i32
  %2214 = and i32 %2213, 15
  %2215 = icmp eq i32 3, %2214
  br i1 %2215, label %2216, label %2217

2216:                                             ; preds = %2209
  br label %2339

2217:                                             ; preds = %2209
  %2218 = load ptr, ptr %14, align 8, !tbaa !5
  %2219 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2218, i32 0, i32 3
  %2220 = load i8, ptr %2219, align 1, !tbaa !20
  %2221 = zext i8 %2220 to i32
  %2222 = and i32 %2221, 15
  %2223 = icmp eq i32 4, %2222
  br i1 %2223, label %2224, label %2225

2224:                                             ; preds = %2217
  br label %2337

2225:                                             ; preds = %2217
  %2226 = load ptr, ptr %14, align 8, !tbaa !5
  %2227 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2226, i32 0, i32 3
  %2228 = load i8, ptr %2227, align 1, !tbaa !20
  %2229 = zext i8 %2228 to i32
  %2230 = and i32 %2229, 15
  %2231 = icmp eq i32 5, %2230
  br i1 %2231, label %2232, label %2233

2232:                                             ; preds = %2225
  br label %2335

2233:                                             ; preds = %2225
  %2234 = load ptr, ptr %14, align 8, !tbaa !5
  %2235 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2234, i32 0, i32 3
  %2236 = load i8, ptr %2235, align 1, !tbaa !20
  %2237 = zext i8 %2236 to i32
  %2238 = and i32 %2237, 15
  %2239 = icmp eq i32 6, %2238
  br i1 %2239, label %2240, label %2241

2240:                                             ; preds = %2233
  br label %2333

2241:                                             ; preds = %2233
  %2242 = load ptr, ptr %14, align 8, !tbaa !5
  %2243 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2242, i32 0, i32 3
  %2244 = load i8, ptr %2243, align 1, !tbaa !20
  %2245 = zext i8 %2244 to i32
  %2246 = and i32 %2245, 15
  %2247 = icmp eq i32 7, %2246
  br i1 %2247, label %2248, label %2249

2248:                                             ; preds = %2241
  br label %2331

2249:                                             ; preds = %2241
  %2250 = load ptr, ptr %14, align 8, !tbaa !5
  %2251 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2250, i32 0, i32 3
  %2252 = load i8, ptr %2251, align 1, !tbaa !20
  %2253 = zext i8 %2252 to i32
  %2254 = and i32 %2253, 15
  %2255 = icmp eq i32 8, %2254
  br i1 %2255, label %2256, label %2257

2256:                                             ; preds = %2249
  br label %2329

2257:                                             ; preds = %2249
  %2258 = load ptr, ptr %14, align 8, !tbaa !5
  %2259 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2258, i32 0, i32 3
  %2260 = load i8, ptr %2259, align 1, !tbaa !20
  %2261 = zext i8 %2260 to i32
  %2262 = and i32 %2261, 15
  %2263 = icmp eq i32 9, %2262
  br i1 %2263, label %2264, label %2265

2264:                                             ; preds = %2257
  br label %2327

2265:                                             ; preds = %2257
  %2266 = load ptr, ptr %14, align 8, !tbaa !5
  %2267 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2266, i32 0, i32 3
  %2268 = load i8, ptr %2267, align 1, !tbaa !20
  %2269 = zext i8 %2268 to i32
  %2270 = and i32 %2269, 15
  %2271 = icmp eq i32 10, %2270
  br i1 %2271, label %2272, label %2273

2272:                                             ; preds = %2265
  br label %2325

2273:                                             ; preds = %2265
  %2274 = load ptr, ptr %14, align 8, !tbaa !5
  %2275 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2274, i32 0, i32 3
  %2276 = load i8, ptr %2275, align 1, !tbaa !20
  %2277 = zext i8 %2276 to i32
  %2278 = and i32 %2277, 15
  %2279 = icmp eq i32 11, %2278
  br i1 %2279, label %2280, label %2281

2280:                                             ; preds = %2273
  br label %2323

2281:                                             ; preds = %2273
  %2282 = load ptr, ptr %14, align 8, !tbaa !5
  %2283 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2282, i32 0, i32 3
  %2284 = load i8, ptr %2283, align 1, !tbaa !20
  %2285 = zext i8 %2284 to i32
  %2286 = and i32 %2285, 15
  %2287 = icmp eq i32 12, %2286
  br i1 %2287, label %2288, label %2289

2288:                                             ; preds = %2281
  br label %2321

2289:                                             ; preds = %2281
  %2290 = load ptr, ptr %14, align 8, !tbaa !5
  %2291 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2290, i32 0, i32 3
  %2292 = load i8, ptr %2291, align 1, !tbaa !20
  %2293 = zext i8 %2292 to i32
  %2294 = and i32 %2293, 15
  %2295 = icmp eq i32 13, %2294
  br i1 %2295, label %2296, label %2297

2296:                                             ; preds = %2289
  br label %2319

2297:                                             ; preds = %2289
  %2298 = load ptr, ptr %14, align 8, !tbaa !5
  %2299 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2298, i32 0, i32 3
  %2300 = load i8, ptr %2299, align 1, !tbaa !20
  %2301 = zext i8 %2300 to i32
  %2302 = and i32 %2301, 15
  %2303 = icmp eq i32 14, %2302
  br i1 %2303, label %2304, label %2305

2304:                                             ; preds = %2297
  br label %2317

2305:                                             ; preds = %2297
  %2306 = load ptr, ptr %14, align 8, !tbaa !5
  %2307 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2306, i32 0, i32 3
  %2308 = load i8, ptr %2307, align 1, !tbaa !20
  %2309 = zext i8 %2308 to i32
  %2310 = and i32 %2309, 15
  %2311 = icmp eq i32 15, %2310
  br i1 %2311, label %2312, label %2313

2312:                                             ; preds = %2305
  br label %2315

2313:                                             ; preds = %2305
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 913, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

2314:                                             ; No predecessors!
  br label %2315

2315:                                             ; preds = %2314, %2312
  %2316 = phi i32 [ 15, %2312 ], [ 0, %2314 ]
  br label %2317

2317:                                             ; preds = %2315, %2304
  %2318 = phi i32 [ 14, %2304 ], [ %2316, %2315 ]
  br label %2319

2319:                                             ; preds = %2317, %2296
  %2320 = phi i32 [ 12, %2296 ], [ %2318, %2317 ]
  br label %2321

2321:                                             ; preds = %2319, %2288
  %2322 = phi i32 [ 12, %2288 ], [ %2320, %2319 ]
  br label %2323

2323:                                             ; preds = %2321, %2280
  %2324 = phi i32 [ 10, %2280 ], [ %2322, %2321 ]
  br label %2325

2325:                                             ; preds = %2323, %2272
  %2326 = phi i32 [ 10, %2272 ], [ %2324, %2323 ]
  br label %2327

2327:                                             ; preds = %2325, %2264
  %2328 = phi i32 [ 8, %2264 ], [ %2326, %2325 ]
  br label %2329

2329:                                             ; preds = %2327, %2256
  %2330 = phi i32 [ 8, %2256 ], [ %2328, %2327 ]
  br label %2331

2331:                                             ; preds = %2329, %2248
  %2332 = phi i32 [ 6, %2248 ], [ %2330, %2329 ]
  br label %2333

2333:                                             ; preds = %2331, %2240
  %2334 = phi i32 [ 6, %2240 ], [ %2332, %2331 ]
  br label %2335

2335:                                             ; preds = %2333, %2232
  %2336 = phi i32 [ 5, %2232 ], [ %2334, %2333 ]
  br label %2337

2337:                                             ; preds = %2335, %2224
  %2338 = phi i32 [ 4, %2224 ], [ %2336, %2335 ]
  br label %2339

2339:                                             ; preds = %2337, %2216
  %2340 = phi i32 [ 3, %2216 ], [ %2338, %2337 ]
  br label %2341

2341:                                             ; preds = %2339, %2208
  %2342 = phi i32 [ 2, %2208 ], [ %2340, %2339 ]
  br label %2343

2343:                                             ; preds = %2341, %2200
  %2344 = phi i32 [ 1, %2200 ], [ %2342, %2341 ]
  br label %2345

2345:                                             ; preds = %2343, %2192
  %2346 = phi i32 [ 0, %2192 ], [ %2344, %2343 ]
  br label %2353

2347:                                             ; preds = %2178
  %2348 = load ptr, ptr %14, align 8, !tbaa !5
  %2349 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2348, i32 0, i32 3
  %2350 = load i8, ptr %2349, align 1, !tbaa !20
  %2351 = zext i8 %2350 to i32
  %2352 = ashr i32 %2351, 4
  br label %2353

2353:                                             ; preds = %2347, %2345
  %2354 = phi i32 [ %2346, %2345 ], [ %2352, %2347 ]
  %2355 = icmp eq i32 6, %2354
  br i1 %2355, label %2356, label %2357

2356:                                             ; preds = %2353
  br label %3626

2357:                                             ; preds = %2353
  %2358 = load ptr, ptr %14, align 8, !tbaa !5
  %2359 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2358, i32 0, i32 3
  %2360 = load i8, ptr %2359, align 1, !tbaa !20
  %2361 = zext i8 %2360 to i32
  %2362 = ashr i32 %2361, 4
  %2363 = icmp eq i32 0, %2362
  br i1 %2363, label %2364, label %2526

2364:                                             ; preds = %2357
  %2365 = load ptr, ptr %14, align 8, !tbaa !5
  %2366 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2365, i32 0, i32 3
  %2367 = load i8, ptr %2366, align 1, !tbaa !20
  %2368 = zext i8 %2367 to i32
  %2369 = and i32 %2368, 15
  %2370 = icmp eq i32 0, %2369
  br i1 %2370, label %2371, label %2372

2371:                                             ; preds = %2364
  br label %2524

2372:                                             ; preds = %2364
  %2373 = load ptr, ptr %14, align 8, !tbaa !5
  %2374 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2373, i32 0, i32 3
  %2375 = load i8, ptr %2374, align 1, !tbaa !20
  %2376 = zext i8 %2375 to i32
  %2377 = and i32 %2376, 15
  %2378 = icmp eq i32 1, %2377
  br i1 %2378, label %2379, label %2380

2379:                                             ; preds = %2372
  br label %2522

2380:                                             ; preds = %2372
  %2381 = load ptr, ptr %14, align 8, !tbaa !5
  %2382 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2381, i32 0, i32 3
  %2383 = load i8, ptr %2382, align 1, !tbaa !20
  %2384 = zext i8 %2383 to i32
  %2385 = and i32 %2384, 15
  %2386 = icmp eq i32 2, %2385
  br i1 %2386, label %2387, label %2388

2387:                                             ; preds = %2380
  br label %2520

2388:                                             ; preds = %2380
  %2389 = load ptr, ptr %14, align 8, !tbaa !5
  %2390 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2389, i32 0, i32 3
  %2391 = load i8, ptr %2390, align 1, !tbaa !20
  %2392 = zext i8 %2391 to i32
  %2393 = and i32 %2392, 15
  %2394 = icmp eq i32 3, %2393
  br i1 %2394, label %2395, label %2396

2395:                                             ; preds = %2388
  br label %2518

2396:                                             ; preds = %2388
  %2397 = load ptr, ptr %14, align 8, !tbaa !5
  %2398 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2397, i32 0, i32 3
  %2399 = load i8, ptr %2398, align 1, !tbaa !20
  %2400 = zext i8 %2399 to i32
  %2401 = and i32 %2400, 15
  %2402 = icmp eq i32 4, %2401
  br i1 %2402, label %2403, label %2404

2403:                                             ; preds = %2396
  br label %2516

2404:                                             ; preds = %2396
  %2405 = load ptr, ptr %14, align 8, !tbaa !5
  %2406 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2405, i32 0, i32 3
  %2407 = load i8, ptr %2406, align 1, !tbaa !20
  %2408 = zext i8 %2407 to i32
  %2409 = and i32 %2408, 15
  %2410 = icmp eq i32 5, %2409
  br i1 %2410, label %2411, label %2412

2411:                                             ; preds = %2404
  br label %2514

2412:                                             ; preds = %2404
  %2413 = load ptr, ptr %14, align 8, !tbaa !5
  %2414 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2413, i32 0, i32 3
  %2415 = load i8, ptr %2414, align 1, !tbaa !20
  %2416 = zext i8 %2415 to i32
  %2417 = and i32 %2416, 15
  %2418 = icmp eq i32 6, %2417
  br i1 %2418, label %2419, label %2420

2419:                                             ; preds = %2412
  br label %2512

2420:                                             ; preds = %2412
  %2421 = load ptr, ptr %14, align 8, !tbaa !5
  %2422 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2421, i32 0, i32 3
  %2423 = load i8, ptr %2422, align 1, !tbaa !20
  %2424 = zext i8 %2423 to i32
  %2425 = and i32 %2424, 15
  %2426 = icmp eq i32 7, %2425
  br i1 %2426, label %2427, label %2428

2427:                                             ; preds = %2420
  br label %2510

2428:                                             ; preds = %2420
  %2429 = load ptr, ptr %14, align 8, !tbaa !5
  %2430 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2429, i32 0, i32 3
  %2431 = load i8, ptr %2430, align 1, !tbaa !20
  %2432 = zext i8 %2431 to i32
  %2433 = and i32 %2432, 15
  %2434 = icmp eq i32 8, %2433
  br i1 %2434, label %2435, label %2436

2435:                                             ; preds = %2428
  br label %2508

2436:                                             ; preds = %2428
  %2437 = load ptr, ptr %14, align 8, !tbaa !5
  %2438 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2437, i32 0, i32 3
  %2439 = load i8, ptr %2438, align 1, !tbaa !20
  %2440 = zext i8 %2439 to i32
  %2441 = and i32 %2440, 15
  %2442 = icmp eq i32 9, %2441
  br i1 %2442, label %2443, label %2444

2443:                                             ; preds = %2436
  br label %2506

2444:                                             ; preds = %2436
  %2445 = load ptr, ptr %14, align 8, !tbaa !5
  %2446 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2445, i32 0, i32 3
  %2447 = load i8, ptr %2446, align 1, !tbaa !20
  %2448 = zext i8 %2447 to i32
  %2449 = and i32 %2448, 15
  %2450 = icmp eq i32 10, %2449
  br i1 %2450, label %2451, label %2452

2451:                                             ; preds = %2444
  br label %2504

2452:                                             ; preds = %2444
  %2453 = load ptr, ptr %14, align 8, !tbaa !5
  %2454 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2453, i32 0, i32 3
  %2455 = load i8, ptr %2454, align 1, !tbaa !20
  %2456 = zext i8 %2455 to i32
  %2457 = and i32 %2456, 15
  %2458 = icmp eq i32 11, %2457
  br i1 %2458, label %2459, label %2460

2459:                                             ; preds = %2452
  br label %2502

2460:                                             ; preds = %2452
  %2461 = load ptr, ptr %14, align 8, !tbaa !5
  %2462 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2461, i32 0, i32 3
  %2463 = load i8, ptr %2462, align 1, !tbaa !20
  %2464 = zext i8 %2463 to i32
  %2465 = and i32 %2464, 15
  %2466 = icmp eq i32 12, %2465
  br i1 %2466, label %2467, label %2468

2467:                                             ; preds = %2460
  br label %2500

2468:                                             ; preds = %2460
  %2469 = load ptr, ptr %14, align 8, !tbaa !5
  %2470 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2469, i32 0, i32 3
  %2471 = load i8, ptr %2470, align 1, !tbaa !20
  %2472 = zext i8 %2471 to i32
  %2473 = and i32 %2472, 15
  %2474 = icmp eq i32 13, %2473
  br i1 %2474, label %2475, label %2476

2475:                                             ; preds = %2468
  br label %2498

2476:                                             ; preds = %2468
  %2477 = load ptr, ptr %14, align 8, !tbaa !5
  %2478 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2477, i32 0, i32 3
  %2479 = load i8, ptr %2478, align 1, !tbaa !20
  %2480 = zext i8 %2479 to i32
  %2481 = and i32 %2480, 15
  %2482 = icmp eq i32 14, %2481
  br i1 %2482, label %2483, label %2484

2483:                                             ; preds = %2476
  br label %2496

2484:                                             ; preds = %2476
  %2485 = load ptr, ptr %14, align 8, !tbaa !5
  %2486 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2485, i32 0, i32 3
  %2487 = load i8, ptr %2486, align 1, !tbaa !20
  %2488 = zext i8 %2487 to i32
  %2489 = and i32 %2488, 15
  %2490 = icmp eq i32 15, %2489
  br i1 %2490, label %2491, label %2492

2491:                                             ; preds = %2484
  br label %2494

2492:                                             ; preds = %2484
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 913, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

2493:                                             ; No predecessors!
  br label %2494

2494:                                             ; preds = %2493, %2491
  %2495 = phi i32 [ 15, %2491 ], [ 0, %2493 ]
  br label %2496

2496:                                             ; preds = %2494, %2483
  %2497 = phi i32 [ 14, %2483 ], [ %2495, %2494 ]
  br label %2498

2498:                                             ; preds = %2496, %2475
  %2499 = phi i32 [ 12, %2475 ], [ %2497, %2496 ]
  br label %2500

2500:                                             ; preds = %2498, %2467
  %2501 = phi i32 [ 12, %2467 ], [ %2499, %2498 ]
  br label %2502

2502:                                             ; preds = %2500, %2459
  %2503 = phi i32 [ 10, %2459 ], [ %2501, %2500 ]
  br label %2504

2504:                                             ; preds = %2502, %2451
  %2505 = phi i32 [ 10, %2451 ], [ %2503, %2502 ]
  br label %2506

2506:                                             ; preds = %2504, %2443
  %2507 = phi i32 [ 8, %2443 ], [ %2505, %2504 ]
  br label %2508

2508:                                             ; preds = %2506, %2435
  %2509 = phi i32 [ 8, %2435 ], [ %2507, %2506 ]
  br label %2510

2510:                                             ; preds = %2508, %2427
  %2511 = phi i32 [ 6, %2427 ], [ %2509, %2508 ]
  br label %2512

2512:                                             ; preds = %2510, %2419
  %2513 = phi i32 [ 6, %2419 ], [ %2511, %2510 ]
  br label %2514

2514:                                             ; preds = %2512, %2411
  %2515 = phi i32 [ 5, %2411 ], [ %2513, %2512 ]
  br label %2516

2516:                                             ; preds = %2514, %2403
  %2517 = phi i32 [ 4, %2403 ], [ %2515, %2514 ]
  br label %2518

2518:                                             ; preds = %2516, %2395
  %2519 = phi i32 [ 3, %2395 ], [ %2517, %2516 ]
  br label %2520

2520:                                             ; preds = %2518, %2387
  %2521 = phi i32 [ 2, %2387 ], [ %2519, %2518 ]
  br label %2522

2522:                                             ; preds = %2520, %2379
  %2523 = phi i32 [ 1, %2379 ], [ %2521, %2520 ]
  br label %2524

2524:                                             ; preds = %2522, %2371
  %2525 = phi i32 [ 0, %2371 ], [ %2523, %2522 ]
  br label %2532

2526:                                             ; preds = %2357
  %2527 = load ptr, ptr %14, align 8, !tbaa !5
  %2528 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2527, i32 0, i32 3
  %2529 = load i8, ptr %2528, align 1, !tbaa !20
  %2530 = zext i8 %2529 to i32
  %2531 = ashr i32 %2530, 4
  br label %2532

2532:                                             ; preds = %2526, %2524
  %2533 = phi i32 [ %2525, %2524 ], [ %2531, %2526 ]
  %2534 = icmp eq i32 7, %2533
  br i1 %2534, label %2535, label %2536

2535:                                             ; preds = %2532
  br label %3624

2536:                                             ; preds = %2532
  %2537 = load ptr, ptr %14, align 8, !tbaa !5
  %2538 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2537, i32 0, i32 3
  %2539 = load i8, ptr %2538, align 1, !tbaa !20
  %2540 = zext i8 %2539 to i32
  %2541 = ashr i32 %2540, 4
  %2542 = icmp eq i32 0, %2541
  br i1 %2542, label %2543, label %2705

2543:                                             ; preds = %2536
  %2544 = load ptr, ptr %14, align 8, !tbaa !5
  %2545 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2544, i32 0, i32 3
  %2546 = load i8, ptr %2545, align 1, !tbaa !20
  %2547 = zext i8 %2546 to i32
  %2548 = and i32 %2547, 15
  %2549 = icmp eq i32 0, %2548
  br i1 %2549, label %2550, label %2551

2550:                                             ; preds = %2543
  br label %2703

2551:                                             ; preds = %2543
  %2552 = load ptr, ptr %14, align 8, !tbaa !5
  %2553 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2552, i32 0, i32 3
  %2554 = load i8, ptr %2553, align 1, !tbaa !20
  %2555 = zext i8 %2554 to i32
  %2556 = and i32 %2555, 15
  %2557 = icmp eq i32 1, %2556
  br i1 %2557, label %2558, label %2559

2558:                                             ; preds = %2551
  br label %2701

2559:                                             ; preds = %2551
  %2560 = load ptr, ptr %14, align 8, !tbaa !5
  %2561 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2560, i32 0, i32 3
  %2562 = load i8, ptr %2561, align 1, !tbaa !20
  %2563 = zext i8 %2562 to i32
  %2564 = and i32 %2563, 15
  %2565 = icmp eq i32 2, %2564
  br i1 %2565, label %2566, label %2567

2566:                                             ; preds = %2559
  br label %2699

2567:                                             ; preds = %2559
  %2568 = load ptr, ptr %14, align 8, !tbaa !5
  %2569 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2568, i32 0, i32 3
  %2570 = load i8, ptr %2569, align 1, !tbaa !20
  %2571 = zext i8 %2570 to i32
  %2572 = and i32 %2571, 15
  %2573 = icmp eq i32 3, %2572
  br i1 %2573, label %2574, label %2575

2574:                                             ; preds = %2567
  br label %2697

2575:                                             ; preds = %2567
  %2576 = load ptr, ptr %14, align 8, !tbaa !5
  %2577 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2576, i32 0, i32 3
  %2578 = load i8, ptr %2577, align 1, !tbaa !20
  %2579 = zext i8 %2578 to i32
  %2580 = and i32 %2579, 15
  %2581 = icmp eq i32 4, %2580
  br i1 %2581, label %2582, label %2583

2582:                                             ; preds = %2575
  br label %2695

2583:                                             ; preds = %2575
  %2584 = load ptr, ptr %14, align 8, !tbaa !5
  %2585 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2584, i32 0, i32 3
  %2586 = load i8, ptr %2585, align 1, !tbaa !20
  %2587 = zext i8 %2586 to i32
  %2588 = and i32 %2587, 15
  %2589 = icmp eq i32 5, %2588
  br i1 %2589, label %2590, label %2591

2590:                                             ; preds = %2583
  br label %2693

2591:                                             ; preds = %2583
  %2592 = load ptr, ptr %14, align 8, !tbaa !5
  %2593 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2592, i32 0, i32 3
  %2594 = load i8, ptr %2593, align 1, !tbaa !20
  %2595 = zext i8 %2594 to i32
  %2596 = and i32 %2595, 15
  %2597 = icmp eq i32 6, %2596
  br i1 %2597, label %2598, label %2599

2598:                                             ; preds = %2591
  br label %2691

2599:                                             ; preds = %2591
  %2600 = load ptr, ptr %14, align 8, !tbaa !5
  %2601 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2600, i32 0, i32 3
  %2602 = load i8, ptr %2601, align 1, !tbaa !20
  %2603 = zext i8 %2602 to i32
  %2604 = and i32 %2603, 15
  %2605 = icmp eq i32 7, %2604
  br i1 %2605, label %2606, label %2607

2606:                                             ; preds = %2599
  br label %2689

2607:                                             ; preds = %2599
  %2608 = load ptr, ptr %14, align 8, !tbaa !5
  %2609 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2608, i32 0, i32 3
  %2610 = load i8, ptr %2609, align 1, !tbaa !20
  %2611 = zext i8 %2610 to i32
  %2612 = and i32 %2611, 15
  %2613 = icmp eq i32 8, %2612
  br i1 %2613, label %2614, label %2615

2614:                                             ; preds = %2607
  br label %2687

2615:                                             ; preds = %2607
  %2616 = load ptr, ptr %14, align 8, !tbaa !5
  %2617 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2616, i32 0, i32 3
  %2618 = load i8, ptr %2617, align 1, !tbaa !20
  %2619 = zext i8 %2618 to i32
  %2620 = and i32 %2619, 15
  %2621 = icmp eq i32 9, %2620
  br i1 %2621, label %2622, label %2623

2622:                                             ; preds = %2615
  br label %2685

2623:                                             ; preds = %2615
  %2624 = load ptr, ptr %14, align 8, !tbaa !5
  %2625 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2624, i32 0, i32 3
  %2626 = load i8, ptr %2625, align 1, !tbaa !20
  %2627 = zext i8 %2626 to i32
  %2628 = and i32 %2627, 15
  %2629 = icmp eq i32 10, %2628
  br i1 %2629, label %2630, label %2631

2630:                                             ; preds = %2623
  br label %2683

2631:                                             ; preds = %2623
  %2632 = load ptr, ptr %14, align 8, !tbaa !5
  %2633 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2632, i32 0, i32 3
  %2634 = load i8, ptr %2633, align 1, !tbaa !20
  %2635 = zext i8 %2634 to i32
  %2636 = and i32 %2635, 15
  %2637 = icmp eq i32 11, %2636
  br i1 %2637, label %2638, label %2639

2638:                                             ; preds = %2631
  br label %2681

2639:                                             ; preds = %2631
  %2640 = load ptr, ptr %14, align 8, !tbaa !5
  %2641 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2640, i32 0, i32 3
  %2642 = load i8, ptr %2641, align 1, !tbaa !20
  %2643 = zext i8 %2642 to i32
  %2644 = and i32 %2643, 15
  %2645 = icmp eq i32 12, %2644
  br i1 %2645, label %2646, label %2647

2646:                                             ; preds = %2639
  br label %2679

2647:                                             ; preds = %2639
  %2648 = load ptr, ptr %14, align 8, !tbaa !5
  %2649 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2648, i32 0, i32 3
  %2650 = load i8, ptr %2649, align 1, !tbaa !20
  %2651 = zext i8 %2650 to i32
  %2652 = and i32 %2651, 15
  %2653 = icmp eq i32 13, %2652
  br i1 %2653, label %2654, label %2655

2654:                                             ; preds = %2647
  br label %2677

2655:                                             ; preds = %2647
  %2656 = load ptr, ptr %14, align 8, !tbaa !5
  %2657 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2656, i32 0, i32 3
  %2658 = load i8, ptr %2657, align 1, !tbaa !20
  %2659 = zext i8 %2658 to i32
  %2660 = and i32 %2659, 15
  %2661 = icmp eq i32 14, %2660
  br i1 %2661, label %2662, label %2663

2662:                                             ; preds = %2655
  br label %2675

2663:                                             ; preds = %2655
  %2664 = load ptr, ptr %14, align 8, !tbaa !5
  %2665 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2664, i32 0, i32 3
  %2666 = load i8, ptr %2665, align 1, !tbaa !20
  %2667 = zext i8 %2666 to i32
  %2668 = and i32 %2667, 15
  %2669 = icmp eq i32 15, %2668
  br i1 %2669, label %2670, label %2671

2670:                                             ; preds = %2663
  br label %2673

2671:                                             ; preds = %2663
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 913, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

2672:                                             ; No predecessors!
  br label %2673

2673:                                             ; preds = %2672, %2670
  %2674 = phi i32 [ 15, %2670 ], [ 0, %2672 ]
  br label %2675

2675:                                             ; preds = %2673, %2662
  %2676 = phi i32 [ 14, %2662 ], [ %2674, %2673 ]
  br label %2677

2677:                                             ; preds = %2675, %2654
  %2678 = phi i32 [ 12, %2654 ], [ %2676, %2675 ]
  br label %2679

2679:                                             ; preds = %2677, %2646
  %2680 = phi i32 [ 12, %2646 ], [ %2678, %2677 ]
  br label %2681

2681:                                             ; preds = %2679, %2638
  %2682 = phi i32 [ 10, %2638 ], [ %2680, %2679 ]
  br label %2683

2683:                                             ; preds = %2681, %2630
  %2684 = phi i32 [ 10, %2630 ], [ %2682, %2681 ]
  br label %2685

2685:                                             ; preds = %2683, %2622
  %2686 = phi i32 [ 8, %2622 ], [ %2684, %2683 ]
  br label %2687

2687:                                             ; preds = %2685, %2614
  %2688 = phi i32 [ 8, %2614 ], [ %2686, %2685 ]
  br label %2689

2689:                                             ; preds = %2687, %2606
  %2690 = phi i32 [ 6, %2606 ], [ %2688, %2687 ]
  br label %2691

2691:                                             ; preds = %2689, %2598
  %2692 = phi i32 [ 6, %2598 ], [ %2690, %2689 ]
  br label %2693

2693:                                             ; preds = %2691, %2590
  %2694 = phi i32 [ 5, %2590 ], [ %2692, %2691 ]
  br label %2695

2695:                                             ; preds = %2693, %2582
  %2696 = phi i32 [ 4, %2582 ], [ %2694, %2693 ]
  br label %2697

2697:                                             ; preds = %2695, %2574
  %2698 = phi i32 [ 3, %2574 ], [ %2696, %2695 ]
  br label %2699

2699:                                             ; preds = %2697, %2566
  %2700 = phi i32 [ 2, %2566 ], [ %2698, %2697 ]
  br label %2701

2701:                                             ; preds = %2699, %2558
  %2702 = phi i32 [ 1, %2558 ], [ %2700, %2699 ]
  br label %2703

2703:                                             ; preds = %2701, %2550
  %2704 = phi i32 [ 0, %2550 ], [ %2702, %2701 ]
  br label %2711

2705:                                             ; preds = %2536
  %2706 = load ptr, ptr %14, align 8, !tbaa !5
  %2707 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2706, i32 0, i32 3
  %2708 = load i8, ptr %2707, align 1, !tbaa !20
  %2709 = zext i8 %2708 to i32
  %2710 = ashr i32 %2709, 4
  br label %2711

2711:                                             ; preds = %2705, %2703
  %2712 = phi i32 [ %2704, %2703 ], [ %2710, %2705 ]
  %2713 = icmp eq i32 8, %2712
  br i1 %2713, label %2714, label %2715

2714:                                             ; preds = %2711
  br label %3622

2715:                                             ; preds = %2711
  %2716 = load ptr, ptr %14, align 8, !tbaa !5
  %2717 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2716, i32 0, i32 3
  %2718 = load i8, ptr %2717, align 1, !tbaa !20
  %2719 = zext i8 %2718 to i32
  %2720 = ashr i32 %2719, 4
  %2721 = icmp eq i32 0, %2720
  br i1 %2721, label %2722, label %2884

2722:                                             ; preds = %2715
  %2723 = load ptr, ptr %14, align 8, !tbaa !5
  %2724 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2723, i32 0, i32 3
  %2725 = load i8, ptr %2724, align 1, !tbaa !20
  %2726 = zext i8 %2725 to i32
  %2727 = and i32 %2726, 15
  %2728 = icmp eq i32 0, %2727
  br i1 %2728, label %2729, label %2730

2729:                                             ; preds = %2722
  br label %2882

2730:                                             ; preds = %2722
  %2731 = load ptr, ptr %14, align 8, !tbaa !5
  %2732 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2731, i32 0, i32 3
  %2733 = load i8, ptr %2732, align 1, !tbaa !20
  %2734 = zext i8 %2733 to i32
  %2735 = and i32 %2734, 15
  %2736 = icmp eq i32 1, %2735
  br i1 %2736, label %2737, label %2738

2737:                                             ; preds = %2730
  br label %2880

2738:                                             ; preds = %2730
  %2739 = load ptr, ptr %14, align 8, !tbaa !5
  %2740 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2739, i32 0, i32 3
  %2741 = load i8, ptr %2740, align 1, !tbaa !20
  %2742 = zext i8 %2741 to i32
  %2743 = and i32 %2742, 15
  %2744 = icmp eq i32 2, %2743
  br i1 %2744, label %2745, label %2746

2745:                                             ; preds = %2738
  br label %2878

2746:                                             ; preds = %2738
  %2747 = load ptr, ptr %14, align 8, !tbaa !5
  %2748 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2747, i32 0, i32 3
  %2749 = load i8, ptr %2748, align 1, !tbaa !20
  %2750 = zext i8 %2749 to i32
  %2751 = and i32 %2750, 15
  %2752 = icmp eq i32 3, %2751
  br i1 %2752, label %2753, label %2754

2753:                                             ; preds = %2746
  br label %2876

2754:                                             ; preds = %2746
  %2755 = load ptr, ptr %14, align 8, !tbaa !5
  %2756 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2755, i32 0, i32 3
  %2757 = load i8, ptr %2756, align 1, !tbaa !20
  %2758 = zext i8 %2757 to i32
  %2759 = and i32 %2758, 15
  %2760 = icmp eq i32 4, %2759
  br i1 %2760, label %2761, label %2762

2761:                                             ; preds = %2754
  br label %2874

2762:                                             ; preds = %2754
  %2763 = load ptr, ptr %14, align 8, !tbaa !5
  %2764 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2763, i32 0, i32 3
  %2765 = load i8, ptr %2764, align 1, !tbaa !20
  %2766 = zext i8 %2765 to i32
  %2767 = and i32 %2766, 15
  %2768 = icmp eq i32 5, %2767
  br i1 %2768, label %2769, label %2770

2769:                                             ; preds = %2762
  br label %2872

2770:                                             ; preds = %2762
  %2771 = load ptr, ptr %14, align 8, !tbaa !5
  %2772 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2771, i32 0, i32 3
  %2773 = load i8, ptr %2772, align 1, !tbaa !20
  %2774 = zext i8 %2773 to i32
  %2775 = and i32 %2774, 15
  %2776 = icmp eq i32 6, %2775
  br i1 %2776, label %2777, label %2778

2777:                                             ; preds = %2770
  br label %2870

2778:                                             ; preds = %2770
  %2779 = load ptr, ptr %14, align 8, !tbaa !5
  %2780 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2779, i32 0, i32 3
  %2781 = load i8, ptr %2780, align 1, !tbaa !20
  %2782 = zext i8 %2781 to i32
  %2783 = and i32 %2782, 15
  %2784 = icmp eq i32 7, %2783
  br i1 %2784, label %2785, label %2786

2785:                                             ; preds = %2778
  br label %2868

2786:                                             ; preds = %2778
  %2787 = load ptr, ptr %14, align 8, !tbaa !5
  %2788 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2787, i32 0, i32 3
  %2789 = load i8, ptr %2788, align 1, !tbaa !20
  %2790 = zext i8 %2789 to i32
  %2791 = and i32 %2790, 15
  %2792 = icmp eq i32 8, %2791
  br i1 %2792, label %2793, label %2794

2793:                                             ; preds = %2786
  br label %2866

2794:                                             ; preds = %2786
  %2795 = load ptr, ptr %14, align 8, !tbaa !5
  %2796 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2795, i32 0, i32 3
  %2797 = load i8, ptr %2796, align 1, !tbaa !20
  %2798 = zext i8 %2797 to i32
  %2799 = and i32 %2798, 15
  %2800 = icmp eq i32 9, %2799
  br i1 %2800, label %2801, label %2802

2801:                                             ; preds = %2794
  br label %2864

2802:                                             ; preds = %2794
  %2803 = load ptr, ptr %14, align 8, !tbaa !5
  %2804 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2803, i32 0, i32 3
  %2805 = load i8, ptr %2804, align 1, !tbaa !20
  %2806 = zext i8 %2805 to i32
  %2807 = and i32 %2806, 15
  %2808 = icmp eq i32 10, %2807
  br i1 %2808, label %2809, label %2810

2809:                                             ; preds = %2802
  br label %2862

2810:                                             ; preds = %2802
  %2811 = load ptr, ptr %14, align 8, !tbaa !5
  %2812 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2811, i32 0, i32 3
  %2813 = load i8, ptr %2812, align 1, !tbaa !20
  %2814 = zext i8 %2813 to i32
  %2815 = and i32 %2814, 15
  %2816 = icmp eq i32 11, %2815
  br i1 %2816, label %2817, label %2818

2817:                                             ; preds = %2810
  br label %2860

2818:                                             ; preds = %2810
  %2819 = load ptr, ptr %14, align 8, !tbaa !5
  %2820 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2819, i32 0, i32 3
  %2821 = load i8, ptr %2820, align 1, !tbaa !20
  %2822 = zext i8 %2821 to i32
  %2823 = and i32 %2822, 15
  %2824 = icmp eq i32 12, %2823
  br i1 %2824, label %2825, label %2826

2825:                                             ; preds = %2818
  br label %2858

2826:                                             ; preds = %2818
  %2827 = load ptr, ptr %14, align 8, !tbaa !5
  %2828 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2827, i32 0, i32 3
  %2829 = load i8, ptr %2828, align 1, !tbaa !20
  %2830 = zext i8 %2829 to i32
  %2831 = and i32 %2830, 15
  %2832 = icmp eq i32 13, %2831
  br i1 %2832, label %2833, label %2834

2833:                                             ; preds = %2826
  br label %2856

2834:                                             ; preds = %2826
  %2835 = load ptr, ptr %14, align 8, !tbaa !5
  %2836 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2835, i32 0, i32 3
  %2837 = load i8, ptr %2836, align 1, !tbaa !20
  %2838 = zext i8 %2837 to i32
  %2839 = and i32 %2838, 15
  %2840 = icmp eq i32 14, %2839
  br i1 %2840, label %2841, label %2842

2841:                                             ; preds = %2834
  br label %2854

2842:                                             ; preds = %2834
  %2843 = load ptr, ptr %14, align 8, !tbaa !5
  %2844 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2843, i32 0, i32 3
  %2845 = load i8, ptr %2844, align 1, !tbaa !20
  %2846 = zext i8 %2845 to i32
  %2847 = and i32 %2846, 15
  %2848 = icmp eq i32 15, %2847
  br i1 %2848, label %2849, label %2850

2849:                                             ; preds = %2842
  br label %2852

2850:                                             ; preds = %2842
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 913, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

2851:                                             ; No predecessors!
  br label %2852

2852:                                             ; preds = %2851, %2849
  %2853 = phi i32 [ 15, %2849 ], [ 0, %2851 ]
  br label %2854

2854:                                             ; preds = %2852, %2841
  %2855 = phi i32 [ 14, %2841 ], [ %2853, %2852 ]
  br label %2856

2856:                                             ; preds = %2854, %2833
  %2857 = phi i32 [ 12, %2833 ], [ %2855, %2854 ]
  br label %2858

2858:                                             ; preds = %2856, %2825
  %2859 = phi i32 [ 12, %2825 ], [ %2857, %2856 ]
  br label %2860

2860:                                             ; preds = %2858, %2817
  %2861 = phi i32 [ 10, %2817 ], [ %2859, %2858 ]
  br label %2862

2862:                                             ; preds = %2860, %2809
  %2863 = phi i32 [ 10, %2809 ], [ %2861, %2860 ]
  br label %2864

2864:                                             ; preds = %2862, %2801
  %2865 = phi i32 [ 8, %2801 ], [ %2863, %2862 ]
  br label %2866

2866:                                             ; preds = %2864, %2793
  %2867 = phi i32 [ 8, %2793 ], [ %2865, %2864 ]
  br label %2868

2868:                                             ; preds = %2866, %2785
  %2869 = phi i32 [ 6, %2785 ], [ %2867, %2866 ]
  br label %2870

2870:                                             ; preds = %2868, %2777
  %2871 = phi i32 [ 6, %2777 ], [ %2869, %2868 ]
  br label %2872

2872:                                             ; preds = %2870, %2769
  %2873 = phi i32 [ 5, %2769 ], [ %2871, %2870 ]
  br label %2874

2874:                                             ; preds = %2872, %2761
  %2875 = phi i32 [ 4, %2761 ], [ %2873, %2872 ]
  br label %2876

2876:                                             ; preds = %2874, %2753
  %2877 = phi i32 [ 3, %2753 ], [ %2875, %2874 ]
  br label %2878

2878:                                             ; preds = %2876, %2745
  %2879 = phi i32 [ 2, %2745 ], [ %2877, %2876 ]
  br label %2880

2880:                                             ; preds = %2878, %2737
  %2881 = phi i32 [ 1, %2737 ], [ %2879, %2878 ]
  br label %2882

2882:                                             ; preds = %2880, %2729
  %2883 = phi i32 [ 0, %2729 ], [ %2881, %2880 ]
  br label %2890

2884:                                             ; preds = %2715
  %2885 = load ptr, ptr %14, align 8, !tbaa !5
  %2886 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2885, i32 0, i32 3
  %2887 = load i8, ptr %2886, align 1, !tbaa !20
  %2888 = zext i8 %2887 to i32
  %2889 = ashr i32 %2888, 4
  br label %2890

2890:                                             ; preds = %2884, %2882
  %2891 = phi i32 [ %2883, %2882 ], [ %2889, %2884 ]
  %2892 = icmp eq i32 9, %2891
  br i1 %2892, label %2893, label %2894

2893:                                             ; preds = %2890
  br label %3620

2894:                                             ; preds = %2890
  %2895 = load ptr, ptr %14, align 8, !tbaa !5
  %2896 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2895, i32 0, i32 3
  %2897 = load i8, ptr %2896, align 1, !tbaa !20
  %2898 = zext i8 %2897 to i32
  %2899 = ashr i32 %2898, 4
  %2900 = icmp eq i32 0, %2899
  br i1 %2900, label %2901, label %3063

2901:                                             ; preds = %2894
  %2902 = load ptr, ptr %14, align 8, !tbaa !5
  %2903 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2902, i32 0, i32 3
  %2904 = load i8, ptr %2903, align 1, !tbaa !20
  %2905 = zext i8 %2904 to i32
  %2906 = and i32 %2905, 15
  %2907 = icmp eq i32 0, %2906
  br i1 %2907, label %2908, label %2909

2908:                                             ; preds = %2901
  br label %3061

2909:                                             ; preds = %2901
  %2910 = load ptr, ptr %14, align 8, !tbaa !5
  %2911 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2910, i32 0, i32 3
  %2912 = load i8, ptr %2911, align 1, !tbaa !20
  %2913 = zext i8 %2912 to i32
  %2914 = and i32 %2913, 15
  %2915 = icmp eq i32 1, %2914
  br i1 %2915, label %2916, label %2917

2916:                                             ; preds = %2909
  br label %3059

2917:                                             ; preds = %2909
  %2918 = load ptr, ptr %14, align 8, !tbaa !5
  %2919 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2918, i32 0, i32 3
  %2920 = load i8, ptr %2919, align 1, !tbaa !20
  %2921 = zext i8 %2920 to i32
  %2922 = and i32 %2921, 15
  %2923 = icmp eq i32 2, %2922
  br i1 %2923, label %2924, label %2925

2924:                                             ; preds = %2917
  br label %3057

2925:                                             ; preds = %2917
  %2926 = load ptr, ptr %14, align 8, !tbaa !5
  %2927 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2926, i32 0, i32 3
  %2928 = load i8, ptr %2927, align 1, !tbaa !20
  %2929 = zext i8 %2928 to i32
  %2930 = and i32 %2929, 15
  %2931 = icmp eq i32 3, %2930
  br i1 %2931, label %2932, label %2933

2932:                                             ; preds = %2925
  br label %3055

2933:                                             ; preds = %2925
  %2934 = load ptr, ptr %14, align 8, !tbaa !5
  %2935 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2934, i32 0, i32 3
  %2936 = load i8, ptr %2935, align 1, !tbaa !20
  %2937 = zext i8 %2936 to i32
  %2938 = and i32 %2937, 15
  %2939 = icmp eq i32 4, %2938
  br i1 %2939, label %2940, label %2941

2940:                                             ; preds = %2933
  br label %3053

2941:                                             ; preds = %2933
  %2942 = load ptr, ptr %14, align 8, !tbaa !5
  %2943 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2942, i32 0, i32 3
  %2944 = load i8, ptr %2943, align 1, !tbaa !20
  %2945 = zext i8 %2944 to i32
  %2946 = and i32 %2945, 15
  %2947 = icmp eq i32 5, %2946
  br i1 %2947, label %2948, label %2949

2948:                                             ; preds = %2941
  br label %3051

2949:                                             ; preds = %2941
  %2950 = load ptr, ptr %14, align 8, !tbaa !5
  %2951 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2950, i32 0, i32 3
  %2952 = load i8, ptr %2951, align 1, !tbaa !20
  %2953 = zext i8 %2952 to i32
  %2954 = and i32 %2953, 15
  %2955 = icmp eq i32 6, %2954
  br i1 %2955, label %2956, label %2957

2956:                                             ; preds = %2949
  br label %3049

2957:                                             ; preds = %2949
  %2958 = load ptr, ptr %14, align 8, !tbaa !5
  %2959 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2958, i32 0, i32 3
  %2960 = load i8, ptr %2959, align 1, !tbaa !20
  %2961 = zext i8 %2960 to i32
  %2962 = and i32 %2961, 15
  %2963 = icmp eq i32 7, %2962
  br i1 %2963, label %2964, label %2965

2964:                                             ; preds = %2957
  br label %3047

2965:                                             ; preds = %2957
  %2966 = load ptr, ptr %14, align 8, !tbaa !5
  %2967 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2966, i32 0, i32 3
  %2968 = load i8, ptr %2967, align 1, !tbaa !20
  %2969 = zext i8 %2968 to i32
  %2970 = and i32 %2969, 15
  %2971 = icmp eq i32 8, %2970
  br i1 %2971, label %2972, label %2973

2972:                                             ; preds = %2965
  br label %3045

2973:                                             ; preds = %2965
  %2974 = load ptr, ptr %14, align 8, !tbaa !5
  %2975 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2974, i32 0, i32 3
  %2976 = load i8, ptr %2975, align 1, !tbaa !20
  %2977 = zext i8 %2976 to i32
  %2978 = and i32 %2977, 15
  %2979 = icmp eq i32 9, %2978
  br i1 %2979, label %2980, label %2981

2980:                                             ; preds = %2973
  br label %3043

2981:                                             ; preds = %2973
  %2982 = load ptr, ptr %14, align 8, !tbaa !5
  %2983 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2982, i32 0, i32 3
  %2984 = load i8, ptr %2983, align 1, !tbaa !20
  %2985 = zext i8 %2984 to i32
  %2986 = and i32 %2985, 15
  %2987 = icmp eq i32 10, %2986
  br i1 %2987, label %2988, label %2989

2988:                                             ; preds = %2981
  br label %3041

2989:                                             ; preds = %2981
  %2990 = load ptr, ptr %14, align 8, !tbaa !5
  %2991 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2990, i32 0, i32 3
  %2992 = load i8, ptr %2991, align 1, !tbaa !20
  %2993 = zext i8 %2992 to i32
  %2994 = and i32 %2993, 15
  %2995 = icmp eq i32 11, %2994
  br i1 %2995, label %2996, label %2997

2996:                                             ; preds = %2989
  br label %3039

2997:                                             ; preds = %2989
  %2998 = load ptr, ptr %14, align 8, !tbaa !5
  %2999 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2998, i32 0, i32 3
  %3000 = load i8, ptr %2999, align 1, !tbaa !20
  %3001 = zext i8 %3000 to i32
  %3002 = and i32 %3001, 15
  %3003 = icmp eq i32 12, %3002
  br i1 %3003, label %3004, label %3005

3004:                                             ; preds = %2997
  br label %3037

3005:                                             ; preds = %2997
  %3006 = load ptr, ptr %14, align 8, !tbaa !5
  %3007 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3006, i32 0, i32 3
  %3008 = load i8, ptr %3007, align 1, !tbaa !20
  %3009 = zext i8 %3008 to i32
  %3010 = and i32 %3009, 15
  %3011 = icmp eq i32 13, %3010
  br i1 %3011, label %3012, label %3013

3012:                                             ; preds = %3005
  br label %3035

3013:                                             ; preds = %3005
  %3014 = load ptr, ptr %14, align 8, !tbaa !5
  %3015 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3014, i32 0, i32 3
  %3016 = load i8, ptr %3015, align 1, !tbaa !20
  %3017 = zext i8 %3016 to i32
  %3018 = and i32 %3017, 15
  %3019 = icmp eq i32 14, %3018
  br i1 %3019, label %3020, label %3021

3020:                                             ; preds = %3013
  br label %3033

3021:                                             ; preds = %3013
  %3022 = load ptr, ptr %14, align 8, !tbaa !5
  %3023 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3022, i32 0, i32 3
  %3024 = load i8, ptr %3023, align 1, !tbaa !20
  %3025 = zext i8 %3024 to i32
  %3026 = and i32 %3025, 15
  %3027 = icmp eq i32 15, %3026
  br i1 %3027, label %3028, label %3029

3028:                                             ; preds = %3021
  br label %3031

3029:                                             ; preds = %3021
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 913, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

3030:                                             ; No predecessors!
  br label %3031

3031:                                             ; preds = %3030, %3028
  %3032 = phi i32 [ 15, %3028 ], [ 0, %3030 ]
  br label %3033

3033:                                             ; preds = %3031, %3020
  %3034 = phi i32 [ 14, %3020 ], [ %3032, %3031 ]
  br label %3035

3035:                                             ; preds = %3033, %3012
  %3036 = phi i32 [ 12, %3012 ], [ %3034, %3033 ]
  br label %3037

3037:                                             ; preds = %3035, %3004
  %3038 = phi i32 [ 12, %3004 ], [ %3036, %3035 ]
  br label %3039

3039:                                             ; preds = %3037, %2996
  %3040 = phi i32 [ 10, %2996 ], [ %3038, %3037 ]
  br label %3041

3041:                                             ; preds = %3039, %2988
  %3042 = phi i32 [ 10, %2988 ], [ %3040, %3039 ]
  br label %3043

3043:                                             ; preds = %3041, %2980
  %3044 = phi i32 [ 8, %2980 ], [ %3042, %3041 ]
  br label %3045

3045:                                             ; preds = %3043, %2972
  %3046 = phi i32 [ 8, %2972 ], [ %3044, %3043 ]
  br label %3047

3047:                                             ; preds = %3045, %2964
  %3048 = phi i32 [ 6, %2964 ], [ %3046, %3045 ]
  br label %3049

3049:                                             ; preds = %3047, %2956
  %3050 = phi i32 [ 6, %2956 ], [ %3048, %3047 ]
  br label %3051

3051:                                             ; preds = %3049, %2948
  %3052 = phi i32 [ 5, %2948 ], [ %3050, %3049 ]
  br label %3053

3053:                                             ; preds = %3051, %2940
  %3054 = phi i32 [ 4, %2940 ], [ %3052, %3051 ]
  br label %3055

3055:                                             ; preds = %3053, %2932
  %3056 = phi i32 [ 3, %2932 ], [ %3054, %3053 ]
  br label %3057

3057:                                             ; preds = %3055, %2924
  %3058 = phi i32 [ 2, %2924 ], [ %3056, %3055 ]
  br label %3059

3059:                                             ; preds = %3057, %2916
  %3060 = phi i32 [ 1, %2916 ], [ %3058, %3057 ]
  br label %3061

3061:                                             ; preds = %3059, %2908
  %3062 = phi i32 [ 0, %2908 ], [ %3060, %3059 ]
  br label %3069

3063:                                             ; preds = %2894
  %3064 = load ptr, ptr %14, align 8, !tbaa !5
  %3065 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3064, i32 0, i32 3
  %3066 = load i8, ptr %3065, align 1, !tbaa !20
  %3067 = zext i8 %3066 to i32
  %3068 = ashr i32 %3067, 4
  br label %3069

3069:                                             ; preds = %3063, %3061
  %3070 = phi i32 [ %3062, %3061 ], [ %3068, %3063 ]
  %3071 = icmp eq i32 10, %3070
  br i1 %3071, label %3072, label %3073

3072:                                             ; preds = %3069
  br label %3618

3073:                                             ; preds = %3069
  %3074 = load ptr, ptr %14, align 8, !tbaa !5
  %3075 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3074, i32 0, i32 3
  %3076 = load i8, ptr %3075, align 1, !tbaa !20
  %3077 = zext i8 %3076 to i32
  %3078 = ashr i32 %3077, 4
  %3079 = icmp eq i32 0, %3078
  br i1 %3079, label %3080, label %3242

3080:                                             ; preds = %3073
  %3081 = load ptr, ptr %14, align 8, !tbaa !5
  %3082 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3081, i32 0, i32 3
  %3083 = load i8, ptr %3082, align 1, !tbaa !20
  %3084 = zext i8 %3083 to i32
  %3085 = and i32 %3084, 15
  %3086 = icmp eq i32 0, %3085
  br i1 %3086, label %3087, label %3088

3087:                                             ; preds = %3080
  br label %3240

3088:                                             ; preds = %3080
  %3089 = load ptr, ptr %14, align 8, !tbaa !5
  %3090 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3089, i32 0, i32 3
  %3091 = load i8, ptr %3090, align 1, !tbaa !20
  %3092 = zext i8 %3091 to i32
  %3093 = and i32 %3092, 15
  %3094 = icmp eq i32 1, %3093
  br i1 %3094, label %3095, label %3096

3095:                                             ; preds = %3088
  br label %3238

3096:                                             ; preds = %3088
  %3097 = load ptr, ptr %14, align 8, !tbaa !5
  %3098 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3097, i32 0, i32 3
  %3099 = load i8, ptr %3098, align 1, !tbaa !20
  %3100 = zext i8 %3099 to i32
  %3101 = and i32 %3100, 15
  %3102 = icmp eq i32 2, %3101
  br i1 %3102, label %3103, label %3104

3103:                                             ; preds = %3096
  br label %3236

3104:                                             ; preds = %3096
  %3105 = load ptr, ptr %14, align 8, !tbaa !5
  %3106 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3105, i32 0, i32 3
  %3107 = load i8, ptr %3106, align 1, !tbaa !20
  %3108 = zext i8 %3107 to i32
  %3109 = and i32 %3108, 15
  %3110 = icmp eq i32 3, %3109
  br i1 %3110, label %3111, label %3112

3111:                                             ; preds = %3104
  br label %3234

3112:                                             ; preds = %3104
  %3113 = load ptr, ptr %14, align 8, !tbaa !5
  %3114 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3113, i32 0, i32 3
  %3115 = load i8, ptr %3114, align 1, !tbaa !20
  %3116 = zext i8 %3115 to i32
  %3117 = and i32 %3116, 15
  %3118 = icmp eq i32 4, %3117
  br i1 %3118, label %3119, label %3120

3119:                                             ; preds = %3112
  br label %3232

3120:                                             ; preds = %3112
  %3121 = load ptr, ptr %14, align 8, !tbaa !5
  %3122 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3121, i32 0, i32 3
  %3123 = load i8, ptr %3122, align 1, !tbaa !20
  %3124 = zext i8 %3123 to i32
  %3125 = and i32 %3124, 15
  %3126 = icmp eq i32 5, %3125
  br i1 %3126, label %3127, label %3128

3127:                                             ; preds = %3120
  br label %3230

3128:                                             ; preds = %3120
  %3129 = load ptr, ptr %14, align 8, !tbaa !5
  %3130 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3129, i32 0, i32 3
  %3131 = load i8, ptr %3130, align 1, !tbaa !20
  %3132 = zext i8 %3131 to i32
  %3133 = and i32 %3132, 15
  %3134 = icmp eq i32 6, %3133
  br i1 %3134, label %3135, label %3136

3135:                                             ; preds = %3128
  br label %3228

3136:                                             ; preds = %3128
  %3137 = load ptr, ptr %14, align 8, !tbaa !5
  %3138 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3137, i32 0, i32 3
  %3139 = load i8, ptr %3138, align 1, !tbaa !20
  %3140 = zext i8 %3139 to i32
  %3141 = and i32 %3140, 15
  %3142 = icmp eq i32 7, %3141
  br i1 %3142, label %3143, label %3144

3143:                                             ; preds = %3136
  br label %3226

3144:                                             ; preds = %3136
  %3145 = load ptr, ptr %14, align 8, !tbaa !5
  %3146 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3145, i32 0, i32 3
  %3147 = load i8, ptr %3146, align 1, !tbaa !20
  %3148 = zext i8 %3147 to i32
  %3149 = and i32 %3148, 15
  %3150 = icmp eq i32 8, %3149
  br i1 %3150, label %3151, label %3152

3151:                                             ; preds = %3144
  br label %3224

3152:                                             ; preds = %3144
  %3153 = load ptr, ptr %14, align 8, !tbaa !5
  %3154 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3153, i32 0, i32 3
  %3155 = load i8, ptr %3154, align 1, !tbaa !20
  %3156 = zext i8 %3155 to i32
  %3157 = and i32 %3156, 15
  %3158 = icmp eq i32 9, %3157
  br i1 %3158, label %3159, label %3160

3159:                                             ; preds = %3152
  br label %3222

3160:                                             ; preds = %3152
  %3161 = load ptr, ptr %14, align 8, !tbaa !5
  %3162 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3161, i32 0, i32 3
  %3163 = load i8, ptr %3162, align 1, !tbaa !20
  %3164 = zext i8 %3163 to i32
  %3165 = and i32 %3164, 15
  %3166 = icmp eq i32 10, %3165
  br i1 %3166, label %3167, label %3168

3167:                                             ; preds = %3160
  br label %3220

3168:                                             ; preds = %3160
  %3169 = load ptr, ptr %14, align 8, !tbaa !5
  %3170 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3169, i32 0, i32 3
  %3171 = load i8, ptr %3170, align 1, !tbaa !20
  %3172 = zext i8 %3171 to i32
  %3173 = and i32 %3172, 15
  %3174 = icmp eq i32 11, %3173
  br i1 %3174, label %3175, label %3176

3175:                                             ; preds = %3168
  br label %3218

3176:                                             ; preds = %3168
  %3177 = load ptr, ptr %14, align 8, !tbaa !5
  %3178 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3177, i32 0, i32 3
  %3179 = load i8, ptr %3178, align 1, !tbaa !20
  %3180 = zext i8 %3179 to i32
  %3181 = and i32 %3180, 15
  %3182 = icmp eq i32 12, %3181
  br i1 %3182, label %3183, label %3184

3183:                                             ; preds = %3176
  br label %3216

3184:                                             ; preds = %3176
  %3185 = load ptr, ptr %14, align 8, !tbaa !5
  %3186 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3185, i32 0, i32 3
  %3187 = load i8, ptr %3186, align 1, !tbaa !20
  %3188 = zext i8 %3187 to i32
  %3189 = and i32 %3188, 15
  %3190 = icmp eq i32 13, %3189
  br i1 %3190, label %3191, label %3192

3191:                                             ; preds = %3184
  br label %3214

3192:                                             ; preds = %3184
  %3193 = load ptr, ptr %14, align 8, !tbaa !5
  %3194 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3193, i32 0, i32 3
  %3195 = load i8, ptr %3194, align 1, !tbaa !20
  %3196 = zext i8 %3195 to i32
  %3197 = and i32 %3196, 15
  %3198 = icmp eq i32 14, %3197
  br i1 %3198, label %3199, label %3200

3199:                                             ; preds = %3192
  br label %3212

3200:                                             ; preds = %3192
  %3201 = load ptr, ptr %14, align 8, !tbaa !5
  %3202 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3201, i32 0, i32 3
  %3203 = load i8, ptr %3202, align 1, !tbaa !20
  %3204 = zext i8 %3203 to i32
  %3205 = and i32 %3204, 15
  %3206 = icmp eq i32 15, %3205
  br i1 %3206, label %3207, label %3208

3207:                                             ; preds = %3200
  br label %3210

3208:                                             ; preds = %3200
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 913, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

3209:                                             ; No predecessors!
  br label %3210

3210:                                             ; preds = %3209, %3207
  %3211 = phi i32 [ 15, %3207 ], [ 0, %3209 ]
  br label %3212

3212:                                             ; preds = %3210, %3199
  %3213 = phi i32 [ 14, %3199 ], [ %3211, %3210 ]
  br label %3214

3214:                                             ; preds = %3212, %3191
  %3215 = phi i32 [ 12, %3191 ], [ %3213, %3212 ]
  br label %3216

3216:                                             ; preds = %3214, %3183
  %3217 = phi i32 [ 12, %3183 ], [ %3215, %3214 ]
  br label %3218

3218:                                             ; preds = %3216, %3175
  %3219 = phi i32 [ 10, %3175 ], [ %3217, %3216 ]
  br label %3220

3220:                                             ; preds = %3218, %3167
  %3221 = phi i32 [ 10, %3167 ], [ %3219, %3218 ]
  br label %3222

3222:                                             ; preds = %3220, %3159
  %3223 = phi i32 [ 8, %3159 ], [ %3221, %3220 ]
  br label %3224

3224:                                             ; preds = %3222, %3151
  %3225 = phi i32 [ 8, %3151 ], [ %3223, %3222 ]
  br label %3226

3226:                                             ; preds = %3224, %3143
  %3227 = phi i32 [ 6, %3143 ], [ %3225, %3224 ]
  br label %3228

3228:                                             ; preds = %3226, %3135
  %3229 = phi i32 [ 6, %3135 ], [ %3227, %3226 ]
  br label %3230

3230:                                             ; preds = %3228, %3127
  %3231 = phi i32 [ 5, %3127 ], [ %3229, %3228 ]
  br label %3232

3232:                                             ; preds = %3230, %3119
  %3233 = phi i32 [ 4, %3119 ], [ %3231, %3230 ]
  br label %3234

3234:                                             ; preds = %3232, %3111
  %3235 = phi i32 [ 3, %3111 ], [ %3233, %3232 ]
  br label %3236

3236:                                             ; preds = %3234, %3103
  %3237 = phi i32 [ 2, %3103 ], [ %3235, %3234 ]
  br label %3238

3238:                                             ; preds = %3236, %3095
  %3239 = phi i32 [ 1, %3095 ], [ %3237, %3236 ]
  br label %3240

3240:                                             ; preds = %3238, %3087
  %3241 = phi i32 [ 0, %3087 ], [ %3239, %3238 ]
  br label %3248

3242:                                             ; preds = %3073
  %3243 = load ptr, ptr %14, align 8, !tbaa !5
  %3244 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3243, i32 0, i32 3
  %3245 = load i8, ptr %3244, align 1, !tbaa !20
  %3246 = zext i8 %3245 to i32
  %3247 = ashr i32 %3246, 4
  br label %3248

3248:                                             ; preds = %3242, %3240
  %3249 = phi i32 [ %3241, %3240 ], [ %3247, %3242 ]
  %3250 = icmp eq i32 11, %3249
  br i1 %3250, label %3251, label %3252

3251:                                             ; preds = %3248
  br label %3616

3252:                                             ; preds = %3248
  %3253 = load ptr, ptr %14, align 8, !tbaa !5
  %3254 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3253, i32 0, i32 3
  %3255 = load i8, ptr %3254, align 1, !tbaa !20
  %3256 = zext i8 %3255 to i32
  %3257 = ashr i32 %3256, 4
  %3258 = icmp eq i32 0, %3257
  br i1 %3258, label %3259, label %3421

3259:                                             ; preds = %3252
  %3260 = load ptr, ptr %14, align 8, !tbaa !5
  %3261 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3260, i32 0, i32 3
  %3262 = load i8, ptr %3261, align 1, !tbaa !20
  %3263 = zext i8 %3262 to i32
  %3264 = and i32 %3263, 15
  %3265 = icmp eq i32 0, %3264
  br i1 %3265, label %3266, label %3267

3266:                                             ; preds = %3259
  br label %3419

3267:                                             ; preds = %3259
  %3268 = load ptr, ptr %14, align 8, !tbaa !5
  %3269 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3268, i32 0, i32 3
  %3270 = load i8, ptr %3269, align 1, !tbaa !20
  %3271 = zext i8 %3270 to i32
  %3272 = and i32 %3271, 15
  %3273 = icmp eq i32 1, %3272
  br i1 %3273, label %3274, label %3275

3274:                                             ; preds = %3267
  br label %3417

3275:                                             ; preds = %3267
  %3276 = load ptr, ptr %14, align 8, !tbaa !5
  %3277 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3276, i32 0, i32 3
  %3278 = load i8, ptr %3277, align 1, !tbaa !20
  %3279 = zext i8 %3278 to i32
  %3280 = and i32 %3279, 15
  %3281 = icmp eq i32 2, %3280
  br i1 %3281, label %3282, label %3283

3282:                                             ; preds = %3275
  br label %3415

3283:                                             ; preds = %3275
  %3284 = load ptr, ptr %14, align 8, !tbaa !5
  %3285 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3284, i32 0, i32 3
  %3286 = load i8, ptr %3285, align 1, !tbaa !20
  %3287 = zext i8 %3286 to i32
  %3288 = and i32 %3287, 15
  %3289 = icmp eq i32 3, %3288
  br i1 %3289, label %3290, label %3291

3290:                                             ; preds = %3283
  br label %3413

3291:                                             ; preds = %3283
  %3292 = load ptr, ptr %14, align 8, !tbaa !5
  %3293 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3292, i32 0, i32 3
  %3294 = load i8, ptr %3293, align 1, !tbaa !20
  %3295 = zext i8 %3294 to i32
  %3296 = and i32 %3295, 15
  %3297 = icmp eq i32 4, %3296
  br i1 %3297, label %3298, label %3299

3298:                                             ; preds = %3291
  br label %3411

3299:                                             ; preds = %3291
  %3300 = load ptr, ptr %14, align 8, !tbaa !5
  %3301 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3300, i32 0, i32 3
  %3302 = load i8, ptr %3301, align 1, !tbaa !20
  %3303 = zext i8 %3302 to i32
  %3304 = and i32 %3303, 15
  %3305 = icmp eq i32 5, %3304
  br i1 %3305, label %3306, label %3307

3306:                                             ; preds = %3299
  br label %3409

3307:                                             ; preds = %3299
  %3308 = load ptr, ptr %14, align 8, !tbaa !5
  %3309 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3308, i32 0, i32 3
  %3310 = load i8, ptr %3309, align 1, !tbaa !20
  %3311 = zext i8 %3310 to i32
  %3312 = and i32 %3311, 15
  %3313 = icmp eq i32 6, %3312
  br i1 %3313, label %3314, label %3315

3314:                                             ; preds = %3307
  br label %3407

3315:                                             ; preds = %3307
  %3316 = load ptr, ptr %14, align 8, !tbaa !5
  %3317 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3316, i32 0, i32 3
  %3318 = load i8, ptr %3317, align 1, !tbaa !20
  %3319 = zext i8 %3318 to i32
  %3320 = and i32 %3319, 15
  %3321 = icmp eq i32 7, %3320
  br i1 %3321, label %3322, label %3323

3322:                                             ; preds = %3315
  br label %3405

3323:                                             ; preds = %3315
  %3324 = load ptr, ptr %14, align 8, !tbaa !5
  %3325 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3324, i32 0, i32 3
  %3326 = load i8, ptr %3325, align 1, !tbaa !20
  %3327 = zext i8 %3326 to i32
  %3328 = and i32 %3327, 15
  %3329 = icmp eq i32 8, %3328
  br i1 %3329, label %3330, label %3331

3330:                                             ; preds = %3323
  br label %3403

3331:                                             ; preds = %3323
  %3332 = load ptr, ptr %14, align 8, !tbaa !5
  %3333 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3332, i32 0, i32 3
  %3334 = load i8, ptr %3333, align 1, !tbaa !20
  %3335 = zext i8 %3334 to i32
  %3336 = and i32 %3335, 15
  %3337 = icmp eq i32 9, %3336
  br i1 %3337, label %3338, label %3339

3338:                                             ; preds = %3331
  br label %3401

3339:                                             ; preds = %3331
  %3340 = load ptr, ptr %14, align 8, !tbaa !5
  %3341 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3340, i32 0, i32 3
  %3342 = load i8, ptr %3341, align 1, !tbaa !20
  %3343 = zext i8 %3342 to i32
  %3344 = and i32 %3343, 15
  %3345 = icmp eq i32 10, %3344
  br i1 %3345, label %3346, label %3347

3346:                                             ; preds = %3339
  br label %3399

3347:                                             ; preds = %3339
  %3348 = load ptr, ptr %14, align 8, !tbaa !5
  %3349 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3348, i32 0, i32 3
  %3350 = load i8, ptr %3349, align 1, !tbaa !20
  %3351 = zext i8 %3350 to i32
  %3352 = and i32 %3351, 15
  %3353 = icmp eq i32 11, %3352
  br i1 %3353, label %3354, label %3355

3354:                                             ; preds = %3347
  br label %3397

3355:                                             ; preds = %3347
  %3356 = load ptr, ptr %14, align 8, !tbaa !5
  %3357 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3356, i32 0, i32 3
  %3358 = load i8, ptr %3357, align 1, !tbaa !20
  %3359 = zext i8 %3358 to i32
  %3360 = and i32 %3359, 15
  %3361 = icmp eq i32 12, %3360
  br i1 %3361, label %3362, label %3363

3362:                                             ; preds = %3355
  br label %3395

3363:                                             ; preds = %3355
  %3364 = load ptr, ptr %14, align 8, !tbaa !5
  %3365 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3364, i32 0, i32 3
  %3366 = load i8, ptr %3365, align 1, !tbaa !20
  %3367 = zext i8 %3366 to i32
  %3368 = and i32 %3367, 15
  %3369 = icmp eq i32 13, %3368
  br i1 %3369, label %3370, label %3371

3370:                                             ; preds = %3363
  br label %3393

3371:                                             ; preds = %3363
  %3372 = load ptr, ptr %14, align 8, !tbaa !5
  %3373 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3372, i32 0, i32 3
  %3374 = load i8, ptr %3373, align 1, !tbaa !20
  %3375 = zext i8 %3374 to i32
  %3376 = and i32 %3375, 15
  %3377 = icmp eq i32 14, %3376
  br i1 %3377, label %3378, label %3379

3378:                                             ; preds = %3371
  br label %3391

3379:                                             ; preds = %3371
  %3380 = load ptr, ptr %14, align 8, !tbaa !5
  %3381 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3380, i32 0, i32 3
  %3382 = load i8, ptr %3381, align 1, !tbaa !20
  %3383 = zext i8 %3382 to i32
  %3384 = and i32 %3383, 15
  %3385 = icmp eq i32 15, %3384
  br i1 %3385, label %3386, label %3387

3386:                                             ; preds = %3379
  br label %3389

3387:                                             ; preds = %3379
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 913, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

3388:                                             ; No predecessors!
  br label %3389

3389:                                             ; preds = %3388, %3386
  %3390 = phi i32 [ 15, %3386 ], [ 0, %3388 ]
  br label %3391

3391:                                             ; preds = %3389, %3378
  %3392 = phi i32 [ 14, %3378 ], [ %3390, %3389 ]
  br label %3393

3393:                                             ; preds = %3391, %3370
  %3394 = phi i32 [ 12, %3370 ], [ %3392, %3391 ]
  br label %3395

3395:                                             ; preds = %3393, %3362
  %3396 = phi i32 [ 12, %3362 ], [ %3394, %3393 ]
  br label %3397

3397:                                             ; preds = %3395, %3354
  %3398 = phi i32 [ 10, %3354 ], [ %3396, %3395 ]
  br label %3399

3399:                                             ; preds = %3397, %3346
  %3400 = phi i32 [ 10, %3346 ], [ %3398, %3397 ]
  br label %3401

3401:                                             ; preds = %3399, %3338
  %3402 = phi i32 [ 8, %3338 ], [ %3400, %3399 ]
  br label %3403

3403:                                             ; preds = %3401, %3330
  %3404 = phi i32 [ 8, %3330 ], [ %3402, %3401 ]
  br label %3405

3405:                                             ; preds = %3403, %3322
  %3406 = phi i32 [ 6, %3322 ], [ %3404, %3403 ]
  br label %3407

3407:                                             ; preds = %3405, %3314
  %3408 = phi i32 [ 6, %3314 ], [ %3406, %3405 ]
  br label %3409

3409:                                             ; preds = %3407, %3306
  %3410 = phi i32 [ 5, %3306 ], [ %3408, %3407 ]
  br label %3411

3411:                                             ; preds = %3409, %3298
  %3412 = phi i32 [ 4, %3298 ], [ %3410, %3409 ]
  br label %3413

3413:                                             ; preds = %3411, %3290
  %3414 = phi i32 [ 3, %3290 ], [ %3412, %3411 ]
  br label %3415

3415:                                             ; preds = %3413, %3282
  %3416 = phi i32 [ 2, %3282 ], [ %3414, %3413 ]
  br label %3417

3417:                                             ; preds = %3415, %3274
  %3418 = phi i32 [ 1, %3274 ], [ %3416, %3415 ]
  br label %3419

3419:                                             ; preds = %3417, %3266
  %3420 = phi i32 [ 0, %3266 ], [ %3418, %3417 ]
  br label %3427

3421:                                             ; preds = %3252
  %3422 = load ptr, ptr %14, align 8, !tbaa !5
  %3423 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3422, i32 0, i32 3
  %3424 = load i8, ptr %3423, align 1, !tbaa !20
  %3425 = zext i8 %3424 to i32
  %3426 = ashr i32 %3425, 4
  br label %3427

3427:                                             ; preds = %3421, %3419
  %3428 = phi i32 [ %3420, %3419 ], [ %3426, %3421 ]
  %3429 = icmp eq i32 12, %3428
  br i1 %3429, label %3430, label %3431

3430:                                             ; preds = %3427
  br label %3614

3431:                                             ; preds = %3427
  %3432 = load ptr, ptr %14, align 8, !tbaa !5
  %3433 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3432, i32 0, i32 3
  %3434 = load i8, ptr %3433, align 1, !tbaa !20
  %3435 = zext i8 %3434 to i32
  %3436 = ashr i32 %3435, 4
  %3437 = icmp eq i32 0, %3436
  br i1 %3437, label %3438, label %3600

3438:                                             ; preds = %3431
  %3439 = load ptr, ptr %14, align 8, !tbaa !5
  %3440 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3439, i32 0, i32 3
  %3441 = load i8, ptr %3440, align 1, !tbaa !20
  %3442 = zext i8 %3441 to i32
  %3443 = and i32 %3442, 15
  %3444 = icmp eq i32 0, %3443
  br i1 %3444, label %3445, label %3446

3445:                                             ; preds = %3438
  br label %3598

3446:                                             ; preds = %3438
  %3447 = load ptr, ptr %14, align 8, !tbaa !5
  %3448 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3447, i32 0, i32 3
  %3449 = load i8, ptr %3448, align 1, !tbaa !20
  %3450 = zext i8 %3449 to i32
  %3451 = and i32 %3450, 15
  %3452 = icmp eq i32 1, %3451
  br i1 %3452, label %3453, label %3454

3453:                                             ; preds = %3446
  br label %3596

3454:                                             ; preds = %3446
  %3455 = load ptr, ptr %14, align 8, !tbaa !5
  %3456 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3455, i32 0, i32 3
  %3457 = load i8, ptr %3456, align 1, !tbaa !20
  %3458 = zext i8 %3457 to i32
  %3459 = and i32 %3458, 15
  %3460 = icmp eq i32 2, %3459
  br i1 %3460, label %3461, label %3462

3461:                                             ; preds = %3454
  br label %3594

3462:                                             ; preds = %3454
  %3463 = load ptr, ptr %14, align 8, !tbaa !5
  %3464 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3463, i32 0, i32 3
  %3465 = load i8, ptr %3464, align 1, !tbaa !20
  %3466 = zext i8 %3465 to i32
  %3467 = and i32 %3466, 15
  %3468 = icmp eq i32 3, %3467
  br i1 %3468, label %3469, label %3470

3469:                                             ; preds = %3462
  br label %3592

3470:                                             ; preds = %3462
  %3471 = load ptr, ptr %14, align 8, !tbaa !5
  %3472 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3471, i32 0, i32 3
  %3473 = load i8, ptr %3472, align 1, !tbaa !20
  %3474 = zext i8 %3473 to i32
  %3475 = and i32 %3474, 15
  %3476 = icmp eq i32 4, %3475
  br i1 %3476, label %3477, label %3478

3477:                                             ; preds = %3470
  br label %3590

3478:                                             ; preds = %3470
  %3479 = load ptr, ptr %14, align 8, !tbaa !5
  %3480 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3479, i32 0, i32 3
  %3481 = load i8, ptr %3480, align 1, !tbaa !20
  %3482 = zext i8 %3481 to i32
  %3483 = and i32 %3482, 15
  %3484 = icmp eq i32 5, %3483
  br i1 %3484, label %3485, label %3486

3485:                                             ; preds = %3478
  br label %3588

3486:                                             ; preds = %3478
  %3487 = load ptr, ptr %14, align 8, !tbaa !5
  %3488 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3487, i32 0, i32 3
  %3489 = load i8, ptr %3488, align 1, !tbaa !20
  %3490 = zext i8 %3489 to i32
  %3491 = and i32 %3490, 15
  %3492 = icmp eq i32 6, %3491
  br i1 %3492, label %3493, label %3494

3493:                                             ; preds = %3486
  br label %3586

3494:                                             ; preds = %3486
  %3495 = load ptr, ptr %14, align 8, !tbaa !5
  %3496 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3495, i32 0, i32 3
  %3497 = load i8, ptr %3496, align 1, !tbaa !20
  %3498 = zext i8 %3497 to i32
  %3499 = and i32 %3498, 15
  %3500 = icmp eq i32 7, %3499
  br i1 %3500, label %3501, label %3502

3501:                                             ; preds = %3494
  br label %3584

3502:                                             ; preds = %3494
  %3503 = load ptr, ptr %14, align 8, !tbaa !5
  %3504 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3503, i32 0, i32 3
  %3505 = load i8, ptr %3504, align 1, !tbaa !20
  %3506 = zext i8 %3505 to i32
  %3507 = and i32 %3506, 15
  %3508 = icmp eq i32 8, %3507
  br i1 %3508, label %3509, label %3510

3509:                                             ; preds = %3502
  br label %3582

3510:                                             ; preds = %3502
  %3511 = load ptr, ptr %14, align 8, !tbaa !5
  %3512 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3511, i32 0, i32 3
  %3513 = load i8, ptr %3512, align 1, !tbaa !20
  %3514 = zext i8 %3513 to i32
  %3515 = and i32 %3514, 15
  %3516 = icmp eq i32 9, %3515
  br i1 %3516, label %3517, label %3518

3517:                                             ; preds = %3510
  br label %3580

3518:                                             ; preds = %3510
  %3519 = load ptr, ptr %14, align 8, !tbaa !5
  %3520 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3519, i32 0, i32 3
  %3521 = load i8, ptr %3520, align 1, !tbaa !20
  %3522 = zext i8 %3521 to i32
  %3523 = and i32 %3522, 15
  %3524 = icmp eq i32 10, %3523
  br i1 %3524, label %3525, label %3526

3525:                                             ; preds = %3518
  br label %3578

3526:                                             ; preds = %3518
  %3527 = load ptr, ptr %14, align 8, !tbaa !5
  %3528 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3527, i32 0, i32 3
  %3529 = load i8, ptr %3528, align 1, !tbaa !20
  %3530 = zext i8 %3529 to i32
  %3531 = and i32 %3530, 15
  %3532 = icmp eq i32 11, %3531
  br i1 %3532, label %3533, label %3534

3533:                                             ; preds = %3526
  br label %3576

3534:                                             ; preds = %3526
  %3535 = load ptr, ptr %14, align 8, !tbaa !5
  %3536 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3535, i32 0, i32 3
  %3537 = load i8, ptr %3536, align 1, !tbaa !20
  %3538 = zext i8 %3537 to i32
  %3539 = and i32 %3538, 15
  %3540 = icmp eq i32 12, %3539
  br i1 %3540, label %3541, label %3542

3541:                                             ; preds = %3534
  br label %3574

3542:                                             ; preds = %3534
  %3543 = load ptr, ptr %14, align 8, !tbaa !5
  %3544 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3543, i32 0, i32 3
  %3545 = load i8, ptr %3544, align 1, !tbaa !20
  %3546 = zext i8 %3545 to i32
  %3547 = and i32 %3546, 15
  %3548 = icmp eq i32 13, %3547
  br i1 %3548, label %3549, label %3550

3549:                                             ; preds = %3542
  br label %3572

3550:                                             ; preds = %3542
  %3551 = load ptr, ptr %14, align 8, !tbaa !5
  %3552 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3551, i32 0, i32 3
  %3553 = load i8, ptr %3552, align 1, !tbaa !20
  %3554 = zext i8 %3553 to i32
  %3555 = and i32 %3554, 15
  %3556 = icmp eq i32 14, %3555
  br i1 %3556, label %3557, label %3558

3557:                                             ; preds = %3550
  br label %3570

3558:                                             ; preds = %3550
  %3559 = load ptr, ptr %14, align 8, !tbaa !5
  %3560 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3559, i32 0, i32 3
  %3561 = load i8, ptr %3560, align 1, !tbaa !20
  %3562 = zext i8 %3561 to i32
  %3563 = and i32 %3562, 15
  %3564 = icmp eq i32 15, %3563
  br i1 %3564, label %3565, label %3566

3565:                                             ; preds = %3558
  br label %3568

3566:                                             ; preds = %3558
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 913, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

3567:                                             ; No predecessors!
  br label %3568

3568:                                             ; preds = %3567, %3565
  %3569 = phi i32 [ 15, %3565 ], [ 0, %3567 ]
  br label %3570

3570:                                             ; preds = %3568, %3557
  %3571 = phi i32 [ 14, %3557 ], [ %3569, %3568 ]
  br label %3572

3572:                                             ; preds = %3570, %3549
  %3573 = phi i32 [ 12, %3549 ], [ %3571, %3570 ]
  br label %3574

3574:                                             ; preds = %3572, %3541
  %3575 = phi i32 [ 12, %3541 ], [ %3573, %3572 ]
  br label %3576

3576:                                             ; preds = %3574, %3533
  %3577 = phi i32 [ 10, %3533 ], [ %3575, %3574 ]
  br label %3578

3578:                                             ; preds = %3576, %3525
  %3579 = phi i32 [ 10, %3525 ], [ %3577, %3576 ]
  br label %3580

3580:                                             ; preds = %3578, %3517
  %3581 = phi i32 [ 8, %3517 ], [ %3579, %3578 ]
  br label %3582

3582:                                             ; preds = %3580, %3509
  %3583 = phi i32 [ 8, %3509 ], [ %3581, %3580 ]
  br label %3584

3584:                                             ; preds = %3582, %3501
  %3585 = phi i32 [ 6, %3501 ], [ %3583, %3582 ]
  br label %3586

3586:                                             ; preds = %3584, %3493
  %3587 = phi i32 [ 6, %3493 ], [ %3585, %3584 ]
  br label %3588

3588:                                             ; preds = %3586, %3485
  %3589 = phi i32 [ 5, %3485 ], [ %3587, %3586 ]
  br label %3590

3590:                                             ; preds = %3588, %3477
  %3591 = phi i32 [ 4, %3477 ], [ %3589, %3588 ]
  br label %3592

3592:                                             ; preds = %3590, %3469
  %3593 = phi i32 [ 3, %3469 ], [ %3591, %3590 ]
  br label %3594

3594:                                             ; preds = %3592, %3461
  %3595 = phi i32 [ 2, %3461 ], [ %3593, %3592 ]
  br label %3596

3596:                                             ; preds = %3594, %3453
  %3597 = phi i32 [ 1, %3453 ], [ %3595, %3594 ]
  br label %3598

3598:                                             ; preds = %3596, %3445
  %3599 = phi i32 [ 0, %3445 ], [ %3597, %3596 ]
  br label %3606

3600:                                             ; preds = %3431
  %3601 = load ptr, ptr %14, align 8, !tbaa !5
  %3602 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3601, i32 0, i32 3
  %3603 = load i8, ptr %3602, align 1, !tbaa !20
  %3604 = zext i8 %3603 to i32
  %3605 = ashr i32 %3604, 4
  br label %3606

3606:                                             ; preds = %3600, %3598
  %3607 = phi i32 [ %3599, %3598 ], [ %3605, %3600 ]
  %3608 = icmp eq i32 13, %3607
  br i1 %3608, label %3609, label %3610

3609:                                             ; preds = %3606
  br label %3612

3610:                                             ; preds = %3606
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 913, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #5
  unreachable

3611:                                             ; No predecessors!
  br label %3612

3612:                                             ; preds = %3611, %3609
  %3613 = phi i32 [ 1, %3609 ], [ 0, %3611 ]
  br label %3614

3614:                                             ; preds = %3612, %3430
  %3615 = phi i32 [ 1, %3430 ], [ %3613, %3612 ]
  br label %3616

3616:                                             ; preds = %3614, %3251
  %3617 = phi i32 [ 2, %3251 ], [ %3615, %3614 ]
  br label %3618

3618:                                             ; preds = %3616, %3072
  %3619 = phi i32 [ 2, %3072 ], [ %3617, %3616 ]
  br label %3620

3620:                                             ; preds = %3618, %2893
  %3621 = phi i32 [ 4, %2893 ], [ %3619, %3618 ]
  br label %3622

3622:                                             ; preds = %3620, %2714
  %3623 = phi i32 [ 4, %2714 ], [ %3621, %3620 ]
  br label %3624

3624:                                             ; preds = %3622, %2535
  %3625 = phi i32 [ 8, %2535 ], [ %3623, %3622 ]
  br label %3626

3626:                                             ; preds = %3624, %2356
  %3627 = phi i32 [ 8, %2356 ], [ %3625, %3624 ]
  br label %3628

3628:                                             ; preds = %3626, %2177
  %3629 = phi i32 [ 1, %2177 ], [ %3627, %3626 ]
  br label %3630

3630:                                             ; preds = %3628, %1998
  %3631 = phi i32 [ 1, %1998 ], [ %3629, %3628 ]
  br label %3632

3632:                                             ; preds = %3630, %1819
  %3633 = phi i32 [ 2, %1819 ], [ %3631, %3630 ]
  br label %3634

3634:                                             ; preds = %3632, %1640
  %3635 = phi i32 [ 2, %1640 ], [ %3633, %3632 ]
  br label %3636

3636:                                             ; preds = %3634, %1461
  %3637 = phi i32 [ 4, %1461 ], [ %3635, %3634 ]
  br label %3638

3638:                                             ; preds = %3636, %1282
  %3639 = phi i32 [ 8, %1282 ], [ %3637, %3636 ]
  %3640 = mul i32 %1104, %3639
  %3641 = load ptr, ptr %13, align 8, !tbaa !5
  %3642 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %3641, i32 0, i32 35
  %3643 = load i32, ptr %3642, align 4, !tbaa !30
  %3644 = icmp eq i32 %3643, 1
  br i1 %3644, label %3665, label %3645

3645:                                             ; preds = %3638
  %3646 = load ptr, ptr %13, align 8, !tbaa !5
  %3647 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %3646, i32 0, i32 36
  %3648 = load i32, ptr %3647, align 8, !tbaa !31
  %3649 = icmp eq i32 %3648, 1
  br i1 %3649, label %3665, label %3650

3650:                                             ; preds = %3645
  %3651 = load ptr, ptr %13, align 8, !tbaa !5
  %3652 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %3651, i32 0, i32 32
  %3653 = load i32, ptr %3652, align 8, !tbaa !23
  %3654 = icmp eq i32 %3653, 1
  br i1 %3654, label %3660, label %3655

3655:                                             ; preds = %3650
  %3656 = load ptr, ptr %13, align 8, !tbaa !5
  %3657 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %3656, i32 0, i32 34
  %3658 = load i32, ptr %3657, align 8, !tbaa !29
  %3659 = icmp eq i32 %3658, 1
  br i1 %3659, label %3660, label %3666

3660:                                             ; preds = %3655, %3650
  %3661 = load ptr, ptr %11, align 8, !tbaa !5
  %3662 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3661, i32 0, i32 6
  %3663 = load i32, ptr %3662, align 4, !tbaa !11
  %3664 = icmp ult i32 %3663, 1101
  br i1 %3664, label %3665, label %3666

3665:                                             ; preds = %3660, %3645, %3638
  br label %3685

3666:                                             ; preds = %3660, %3655
  %3667 = load ptr, ptr %13, align 8, !tbaa !5
  %3668 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %3667, i32 0, i32 32
  %3669 = load i32, ptr %3668, align 8, !tbaa !23
  %3670 = icmp eq i32 %3669, 1
  br i1 %3670, label %3681, label %3671

3671:                                             ; preds = %3666
  %3672 = load ptr, ptr %13, align 8, !tbaa !5
  %3673 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %3672, i32 0, i32 34
  %3674 = load i32, ptr %3673, align 8, !tbaa !29
  %3675 = icmp eq i32 %3674, 1
  br i1 %3675, label %3681, label %3676

3676:                                             ; preds = %3671
  %3677 = load ptr, ptr %11, align 8, !tbaa !5
  %3678 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %3677, i32 0, i32 6
  %3679 = load i32, ptr %3678, align 4, !tbaa !11
  %3680 = icmp ult i32 %3679, 1101
  br label %3681

3681:                                             ; preds = %3676, %3671, %3666
  %3682 = phi i1 [ true, %3671 ], [ true, %3666 ], [ %3680, %3676 ]
  %3683 = zext i1 %3682 to i64
  %3684 = select i1 %3682, i32 121, i32 122
  br label %3685

3685:                                             ; preds = %3681, %3665
  %3686 = phi i32 [ 120, %3665 ], [ %3684, %3681 ]
  %3687 = trunc i32 %3686 to i8
  %3688 = load i32, ptr %23, align 4, !tbaa !9
  %3689 = load i32, ptr %19, align 4, !tbaa !9
  %3690 = icmp eq i32 %3689, 1
  br i1 %3690, label %3691, label %3696

3691:                                             ; preds = %3685
  %3692 = load i32, ptr %22, align 4, !tbaa !9
  %3693 = load i32, ptr %17, align 4, !tbaa !9
  %3694 = sub i32 %3693, 1
  %3695 = icmp eq i32 %3692, %3694
  br label %3696

3696:                                             ; preds = %3691, %3685
  %3697 = phi i1 [ false, %3685 ], [ %3695, %3691 ]
  %3698 = zext i1 %3697 to i64
  %3699 = select i1 %3697, i32 1, i32 0
  %3700 = load i32, ptr %19, align 4, !tbaa !9
  %3701 = icmp eq i32 %3700, 1
  br i1 %3701, label %3702, label %3709

3702:                                             ; preds = %3696
  %3703 = load i32, ptr %22, align 4, !tbaa !9
  %3704 = load i32, ptr %17, align 4, !tbaa !9
  %3705 = sub i32 %3704, 1
  %3706 = icmp eq i32 %3703, %3705
  br i1 %3706, label %3707, label %3709

3707:                                             ; preds = %3702
  %3708 = load i32, ptr %20, align 4, !tbaa !9
  br label %3710

3709:                                             ; preds = %3702, %3696
  br label %3710

3710:                                             ; preds = %3709, %3707
  %3711 = phi i32 [ %3708, %3707 ], [ 0, %3709 ]
  call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %1091, i32 noundef %1092, i32 noundef %1095, i32 noundef 127, i32 noundef 0, i32 noundef %3640, i8 noundef signext %3687, i32 noundef %3688, i32 noundef %3699, i32 noundef %3711, i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #4
  br label %3712

3712:                                             ; preds = %3710
  %3713 = load i32, ptr %22, align 4, !tbaa !9
  %3714 = add i32 %3713, 1
  store i32 %3714, ptr %22, align 4, !tbaa !9
  br label %421, !llvm.loop !40

3715:                                             ; preds = %421
  br label %3716

3716:                                             ; preds = %3715
  %3717 = load i32, ptr %21, align 4, !tbaa !9
  %3718 = add i32 %3717, 1
  store i32 %3718, ptr %21, align 4, !tbaa !9
  br label %416, !llvm.loop !42

3719:                                             ; preds = %416
  store i32 0, ptr %26, align 4
  br label %3720

3720:                                             ; preds = %3719, %42
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 4, 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
  %3721 = load i32, ptr %26, align 4
  switch i32 %3721, label %3723 [
    i32 0, label %3722
    i32 1, label %3722
  ]

3722:                                             ; preds = %3720, %3720
  ret void

3723:                                             ; preds = %3720
  unreachable
}

declare void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #3

declare void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef zeroext, i32 noundef) #3

declare void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #3

declare void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #3

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 = { 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 = { "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 28}
!12 = !{!"libxsmm_generated_code", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28}
!13 = !{!7, !7, i64 0}
!14 = !{!15, !10, i64 96}
!15 = !{!"libxsmm_matequation_kernel_config_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, !7, 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, !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, !7, i64 188, !10, i64 316, !10, i64 320, !10, i64 324, !10, i64 328, !6, i64 336, !6, i64 344, !10, i64 352, !10, i64 356, !10, i64 360, !7, i64 364, !7, i64 620, !16, i64 876, !17, i64 1392}
!16 = !{!"libxsmm_mateltwise_kernel_config_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, !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, !10, i64 364, !10, i64 368, !10, i64 372, !10, i64 376, !10, i64 380, !10, i64 384, !10, i64 388, !10, i64 392, !10, i64 396, !10, i64 400, !10, i64 404, !10, i64 408, !10, i64 412, !10, i64 416, !10, i64 420, !10, i64 424, !10, i64 428, !10, i64 432, !10, i64 436, !10, i64 440, !10, i64 444, !10, i64 448, !10, i64 452, !10, i64 456, !10, i64 460, !10, i64 464, !10, i64 468, !10, i64 472, !10, i64 476, !10, i64 480, !10, i64 484, !10, i64 488, !10, i64 492, !10, i64 496, !10, i64 500, !10, i64 504, !10, i64 508, !7, i64 512}
!17 = !{!"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, !18, 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}
!18 = !{!"libxsmm_tile_config", !7, i64 0, !19, i64 2, !7, i64 4, !19, i64 6, !7, i64 8, !19, i64 10, !7, i64 12, !19, i64 14, !7, i64 16, !19, i64 18, !7, i64 20, !19, i64 22, !7, i64 24, !19, i64 26, !7, i64 28, !19, i64 30, !7, i64 32}
!19 = !{!"short", !7, i64 0}
!20 = !{!21, !7, i64 12}
!21 = !{!"libxsmm_meqn_descriptor", !10, i64 0, !10, i64 4, !10, i64 8, !7, i64 12, !10, i64 13}
!22 = !{!21, !10, i64 0}
!23 = !{!15, !10, i64 128}
!24 = !{!15, !10, i64 132}
!25 = !{!15, !10, i64 164}
!26 = !{!15, !10, i64 168}
!27 = !{!15, !10, i64 152}
!28 = !{!15, !10, i64 156}
!29 = !{!15, !10, i64 136}
!30 = !{!15, !10, i64 140}
!31 = !{!15, !10, i64 144}
!32 = !{!15, !10, i64 172}
!33 = !{!15, !10, i64 176}
!34 = !{!15, !10, i64 160}
!35 = !{!36, !10, i64 20}
!36 = !{!"libxsmm_matequation_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, !37, i64 72, !38, i64 220}
!37 = !{!"libxsmm_mateltwise_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, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144}
!38 = !{!"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}
!39 = !{!21, !10, i64 8}
!40 = distinct !{!40, !41}
!41 = !{!"llvm.loop.mustprogress"}
!42 = distinct !{!42, !41}


; 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 [98 x i8], align 1
@__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block = external hidden unnamed_addr constant [267 x i8], align 1
@switch.table.libxsmm_generator_mateqn_store_2d_reg_block = private unnamed_addr constant [15 x i32] [i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 6, i32 8, i32 8, i32 10, i32 10, i32 12, i32 12, i32 14], align 4
@switch.table.libxsmm_generator_mateqn_store_2d_reg_block.1 = private unnamed_addr constant [14 x i32] [i32 8, i32 4, i32 2, i32 2, i32 1, i32 1, i32 8, i32 8, i32 4, i32 4, i32 2, i32 2, i32 1, i32 1], align 4

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

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

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

declare void @libxsmm_x86_instruction_unified_vec_move(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_mateqn_store_2d_reg_block(ptr noundef %0, ptr nocapture noundef readonly %1, ptr noundef %2, ptr nocapture noundef readonly %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %9) local_unnamed_addr #0 {
  %11 = tail call i32 @libxsmm_generator_matequation_regblocks_get_start_of_register_block(ptr noundef %2, i32 noundef %5)
  %12 = getelementptr inbounds i8, ptr %0, i64 28
  %13 = load i32, ptr %12, align 4, !tbaa !5
  %14 = icmp ult i32 %13, 1101
  %15 = select i1 %14, i8 121, i8 122
  %16 = getelementptr inbounds i8, ptr %2, i64 96
  %17 = load i32, ptr %16, align 8, !tbaa !11
  %.not = icmp eq i32 %17, 0
  br i1 %.not, label %18, label %.loopexit

18:                                               ; preds = %10
  %19 = getelementptr inbounds i8, ptr %3, i64 12
  %20 = load i8, ptr %19, align 1, !tbaa !17
  %21 = icmp ult i8 %20, 16
  br i1 %21, label %22, label %24

22:                                               ; preds = %18
  %23 = and i8 %20, 14
  %switch = icmp eq i8 %23, 2
  br i1 %switch, label %.thread738, label %.thread755

24:                                               ; preds = %18
  %25 = and i8 %20, -32
  %or.cond963 = icmp eq i8 %25, 32
  br i1 %or.cond963, label %.thread738, label %.thread755

.thread738:                                       ; preds = %22, %24
  %26 = icmp ult i32 %13, 1051
  %27 = icmp ne i32 %8, 0
  %or.cond = and i1 %27, %26
  br i1 %or.cond, label %28, label %.thread755

28:                                               ; preds = %.thread738
  %29 = load i32, ptr %3, align 1, !tbaa !19
  %30 = urem i32 %29, %4
  br label %.thread755

.thread755:                                       ; preds = %24, %22, %.thread738, %28
  %.0 = phi i32 [ %30, %28 ], [ %9, %.thread738 ], [ %9, %22 ], [ %9, %24 ]
  %.not978 = icmp eq i32 %7, 0
  br i1 %.not978, label %.loopexit, label %.preheader.lr.ph

.preheader.lr.ph:                                 ; preds = %.thread755
  %.not979 = icmp eq i32 %6, 0
  %31 = icmp eq i32 %8, 1
  %32 = add i32 %6, -1
  %33 = getelementptr inbounds i8, ptr %2, i64 128
  %34 = getelementptr inbounds i8, ptr %2, i64 132
  %35 = getelementptr inbounds i8, ptr %2, i64 164
  %36 = getelementptr inbounds i8, ptr %2, i64 168
  %37 = getelementptr inbounds i8, ptr %2, i64 152
  %38 = getelementptr inbounds i8, ptr %2, i64 156
  %39 = getelementptr inbounds i8, ptr %2, i64 136
  %40 = getelementptr inbounds i8, ptr %2, i64 140
  %41 = getelementptr inbounds i8, ptr %2, i64 144
  %42 = getelementptr inbounds i8, ptr %2, i64 172
  %43 = getelementptr inbounds i8, ptr %2, i64 176
  %44 = getelementptr inbounds i8, ptr %2, i64 160
  %45 = getelementptr inbounds i8, ptr %1, i64 20
  %46 = getelementptr inbounds i8, ptr %3, i64 8
  br i1 %.not979, label %.loopexit, label %.preheader.us

.preheader.us:                                    ; preds = %.preheader.lr.ph, %._crit_edge.us
  %.0429976.us = phi i32 [ %158, %._crit_edge.us ], [ 0, %.preheader.lr.ph ]
  %47 = mul i32 %.0429976.us, %6
  %48 = add i32 %47, %11
  br label %49

49:                                               ; preds = %.preheader.us, %.thread943.us
  %.0430971.us = phi i32 [ 0, %.preheader.us ], [ %157, %.thread943.us ]
  %50 = load i8, ptr %19, align 1, !tbaa !17
  %51 = icmp ult i8 %50, 16
  br i1 %51, label %54, label %52

52:                                               ; preds = %49
  %53 = and i8 %50, -32
  %or.cond964.us = icmp eq i8 %53, 64
  br i1 %or.cond964.us, label %.thread759.us.thread, label %.thread779.us

54:                                               ; preds = %49
  %55 = and i8 %50, 14
  %switch946.us = icmp eq i8 %55, 4
  br i1 %switch946.us, label %.thread759.us, label %.thread778.us

.thread759.us:                                    ; preds = %54
  %56 = load i32, ptr %12, align 4, !tbaa !5
  %57 = icmp ugt i32 %56, 1100
  %58 = icmp eq i32 %.0430971.us, %32
  %or.cond526.us = and i1 %31, %58
  %or.cond977 = or i1 %57, %or.cond526.us
  br i1 %or.cond977, label %.thread778.us, label %68

.thread759.us.thread:                             ; preds = %52
  %59 = load i32, ptr %12, align 4, !tbaa !5
  %60 = icmp ugt i32 %59, 1100
  %61 = icmp eq i32 %.0430971.us, %32
  %or.cond526.us982 = and i1 %31, %61
  %or.cond977983 = or i1 %60, %or.cond526.us982
  br i1 %or.cond977983, label %.thread779.us, label %68

.thread779.us:                                    ; preds = %.thread759.us.thread, %52
  %62 = lshr i8 %50, 4
  %63 = zext nneg i8 %62 to i32
  br label %65

.thread778.us:                                    ; preds = %.thread759.us, %54
  %.not987 = icmp eq i8 %50, 15
  br i1 %.not987, label %65, label %switch.lookup

switch.lookup:                                    ; preds = %.thread778.us
  %64 = zext nneg i8 %50 to i64
  %switch.gep = getelementptr inbounds [15 x i32], ptr @switch.table.libxsmm_generator_mateqn_store_2d_reg_block, i64 0, i64 %64
  %switch.load = load i32, ptr %switch.gep, align 4
  br label %65

65:                                               ; preds = %.thread778.us, %switch.lookup, %.thread779.us
  %66 = phi i32 [ %63, %.thread779.us ], [ %switch.load, %switch.lookup ], [ 15, %.thread778.us ]
  %67 = tail call i32 @libxsmm_generator_matequation_regblocks_vmove_instruction(i32 noundef %66)
  br label %68

68:                                               ; preds = %.thread759.us.thread, %.thread759.us, %65
  %69 = phi i32 [ %67, %65 ], [ 545725200, %.thread759.us ], [ 545725200, %.thread759.us.thread ]
  %70 = add i32 %48, %.0430971.us
  %71 = load i32, ptr %33, align 8, !tbaa !20
  %72 = icmp eq i32 %71, 1
  br i1 %72, label %73, label %82

73:                                               ; preds = %68
  %74 = load i32, ptr %34, align 4, !tbaa !21
  %75 = icmp eq i32 %74, 1
  br i1 %75, label %77, label %76

76:                                               ; preds = %73
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %0, i32 noundef 537273970, i8 noundef signext %15, i32 noundef %70, i32 noundef %70) #3
  br label %82

77:                                               ; preds = %73
  %78 = load i32, ptr %35, align 4, !tbaa !22
  %79 = load i32, ptr %36, align 8, !tbaa !23
  %80 = load i32, ptr %37, align 8, !tbaa !24
  %81 = load i32, ptr %38, align 4, !tbaa !25
  tail call void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef %0, i8 noundef signext %15, i32 noundef %70, i32 noundef %70, i32 noundef %78, i32 noundef %79, i32 noundef %80, i32 noundef %81, i32 noundef 0) #3
  br label %82

82:                                               ; preds = %77, %76, %68
  %83 = load i32, ptr %39, align 8, !tbaa !26
  %84 = icmp eq i32 %83, 1
  br i1 %84, label %85, label %90

85:                                               ; preds = %82
  %86 = load i32, ptr %12, align 4, !tbaa !5
  %87 = icmp ugt i32 %86, 1050
  %88 = zext i1 %87 to i32
  %89 = zext i1 %87 to i8
  tail call void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef %0, i32 noundef 671954205, i8 noundef signext %15, i32 noundef %70, i32 noundef %70, i32 noundef 0, i32 noundef %88, i8 noundef zeroext %89, i32 noundef 0) #3
  br label %90

90:                                               ; preds = %85, %82
  %91 = load i32, ptr %40, align 4, !tbaa !27
  %92 = icmp eq i32 %91, 1
  br i1 %92, label %93, label %98

93:                                               ; preds = %90
  %94 = load i32, ptr %35, align 4, !tbaa !22
  %95 = load i32, ptr %36, align 8, !tbaa !23
  %96 = load i32, ptr %37, align 8, !tbaa !24
  %97 = load i32, ptr %38, align 4, !tbaa !25
  tail call void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef %0, i8 noundef signext %15, i32 noundef %70, i32 noundef %70, i32 noundef %94, i32 noundef %95, i32 noundef %96, i32 noundef %97, i32 noundef 0, i32 noundef 255) #3
  br label %98

98:                                               ; preds = %93, %90
  %99 = load i32, ptr %41, align 8, !tbaa !28
  %100 = icmp eq i32 %99, 1
  br i1 %100, label %101, label %109

101:                                              ; preds = %98
  %102 = load i32, ptr %35, align 4, !tbaa !22
  %103 = load i32, ptr %36, align 8, !tbaa !23
  %104 = load i32, ptr %42, align 4, !tbaa !29
  %105 = load i32, ptr %43, align 8, !tbaa !30
  %106 = load i32, ptr %37, align 8, !tbaa !24
  %107 = load i32, ptr %38, align 4, !tbaa !25
  %108 = load i32, ptr %44, align 8, !tbaa !31
  tail call void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef %0, i8 noundef signext %15, i32 noundef %70, i32 noundef %70, i32 noundef %102, i32 noundef %103, i32 noundef %104, i32 noundef %105, i32 noundef %106, i32 noundef %107, i32 noundef %108) #3
  br label %109

109:                                              ; preds = %101, %98
  %110 = load i32, ptr %45, align 4, !tbaa !32
  %111 = mul i32 %.0430971.us, %4
  %112 = load i32, ptr %46, align 1, !tbaa !36
  %113 = mul i32 %112, %.0429976.us
  %114 = add i32 %113, %111
  %115 = load i8, ptr %19, align 1, !tbaa !17
  %116 = icmp ult i8 %115, 16
  br i1 %116, label %131, label %117

117:                                              ; preds = %109
  %.mask950.us = and i8 %115, -16
  %118 = icmp eq i8 %.mask950.us, 16
  br i1 %118, label %.thread876.us, label %119

119:                                              ; preds = %117
  %120 = and i8 %115, -32
  %or.cond965.us = icmp eq i8 %120, 32
  br i1 %or.cond965.us, label %.thread876.us, label %121

121:                                              ; preds = %119
  %122 = and i8 %115, -32
  %or.cond966.us = icmp eq i8 %122, 64
  br i1 %or.cond966.us, label %.thread876.us, label %123

123:                                              ; preds = %121
  %124 = and i8 %115, -32
  %or.cond967.us = icmp eq i8 %124, 96
  br i1 %or.cond967.us, label %.thread876.us, label %125

125:                                              ; preds = %123
  %126 = and i8 %115, -32
  %or.cond968.us = icmp eq i8 %126, -128
  br i1 %or.cond968.us, label %.thread876.us, label %127

127:                                              ; preds = %125
  %128 = and i8 %115, -32
  %or.cond969.us = icmp eq i8 %128, -96
  br i1 %or.cond969.us, label %.thread876.us, label %129

129:                                              ; preds = %127
  %130 = and i8 %115, -32
  %or.cond970.us = icmp eq i8 %130, -64
  br i1 %or.cond970.us, label %.thread876.us, label %.thread934

131:                                              ; preds = %109
  %132 = icmp ult i8 %115, 14
  br i1 %132, label %switch.lookup984, label %.thread934

switch.lookup984:                                 ; preds = %131
  %133 = zext nneg i8 %115 to i64
  %switch.gep985 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_store_2d_reg_block.1, i64 0, i64 %133
  %switch.load986 = load i32, ptr %switch.gep985, align 4
  br label %.thread876.us

.thread876.us:                                    ; preds = %switch.lookup984, %129, %127, %125, %123, %121, %119, %117
  %134 = phi i32 [ 4, %117 ], [ 2, %119 ], [ 1, %121 ], [ 8, %123 ], [ 4, %125 ], [ 2, %127 ], [ 1, %129 ], [ %switch.load986, %switch.lookup984 ]
  %135 = mul i32 %134, %114
  %136 = load i32, ptr %40, align 4, !tbaa !27
  %137 = icmp eq i32 %136, 1
  br i1 %137, label %.thread943.us, label %138

138:                                              ; preds = %.thread876.us
  %139 = load i32, ptr %41, align 8, !tbaa !28
  %140 = icmp eq i32 %139, 1
  br i1 %140, label %.thread943.us, label %141

141:                                              ; preds = %138
  %142 = load i32, ptr %33, align 8, !tbaa !20
  %143 = icmp eq i32 %142, 1
  br i1 %143, label %150, label %144

144:                                              ; preds = %141
  %145 = load i32, ptr %39, align 8, !tbaa !26
  %146 = icmp eq i32 %145, 1
  %147 = load i32, ptr %12, align 4, !tbaa !5
  %.pr942.fr.us = freeze i32 %147
  %148 = icmp ult i32 %.pr942.fr.us, 1101
  br i1 %146, label %.thread936.us, label %149

149:                                              ; preds = %144
  br i1 %148, label %.thread940.us, label %.thread943.us

.thread936.us:                                    ; preds = %144
  br i1 %148, label %.thread943.us, label %.thread940.us

150:                                              ; preds = %141
  %151 = load i32, ptr %12, align 4, !tbaa !5
  %152 = icmp ult i32 %151, 1101
  br i1 %152, label %.thread943.us, label %.thread940.us

.thread940.us:                                    ; preds = %.thread936.us, %150, %149
  br label %.thread943.us

.thread943.us:                                    ; preds = %.thread940.us, %150, %.thread936.us, %149, %138, %.thread876.us
  %153 = phi i8 [ 120, %150 ], [ 120, %138 ], [ 120, %.thread876.us ], [ 120, %.thread936.us ], [ 121, %.thread940.us ], [ 122, %149 ]
  %154 = icmp eq i32 %.0430971.us, %32
  %155 = and i1 %31, %154
  %156 = zext i1 %155 to i32
  %spec.select737.us = select i1 %155, i32 %.0, i32 0
  tail call void @libxsmm_x86_instruction_unified_vec_move(ptr noundef %0, i32 noundef %69, i32 noundef %110, i32 noundef 127, i32 noundef 0, i32 noundef %135, i8 noundef signext %153, i32 noundef %70, i32 noundef %156, i32 noundef %spec.select737.us, i32 noundef 1) #3
  %157 = add nuw i32 %.0430971.us, 1
  %exitcond.not = icmp eq i32 %157, %6
  br i1 %exitcond.not, label %._crit_edge.us, label %49, !llvm.loop !37

._crit_edge.us:                                   ; preds = %.thread943.us
  %158 = add nuw i32 %.0429976.us, 1
  %exitcond981.not = icmp eq i32 %158, %7
  br i1 %exitcond981.not, label %.loopexit, label %.preheader.us, !llvm.loop !39

.thread934:                                       ; preds = %131, %129
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 913, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block) #4
  unreachable

.loopexit:                                        ; preds = %._crit_edge.us, %.preheader.lr.ph, %.thread755, %10
  ret void
}

declare void @libxsmm_generator_vcvtneps2bf16_avx512_preppedstack(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_x86_instruction_vec_compute_2reg_mask_sae_imm8(ptr noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef zeroext, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_vcvtneps2bf8_avx512_preppedstack(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @libxsmm_generator_vcvtf32_to_hf8_avx512_preppedstack(ptr noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #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 = { 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 #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 = { 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, !10, i64 28}
!6 = !{!"libxsmm_generated_code", !7, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!12, !10, i64 96}
!12 = !{!"libxsmm_matequation_kernel_config_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, !8, 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, !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, !8, i64 188, !10, i64 316, !10, i64 320, !10, i64 324, !10, i64 328, !7, i64 336, !7, i64 344, !10, i64 352, !10, i64 356, !10, i64 360, !8, i64 364, !8, i64 620, !13, i64 876, !14, i64 1392}
!13 = !{!"libxsmm_mateltwise_kernel_config_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, !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, !10, i64 364, !10, i64 368, !10, i64 372, !10, i64 376, !10, i64 380, !10, i64 384, !10, i64 388, !10, i64 392, !10, i64 396, !10, i64 400, !10, i64 404, !10, i64 408, !10, i64 412, !10, i64 416, !10, i64 420, !10, i64 424, !10, i64 428, !10, i64 432, !10, i64 436, !10, i64 440, !10, i64 444, !10, i64 448, !10, i64 452, !10, i64 456, !10, i64 460, !10, i64 464, !10, i64 468, !10, i64 472, !10, i64 476, !10, i64 480, !10, i64 484, !10, i64 488, !10, i64 492, !10, i64 496, !10, i64 500, !10, i64 504, !10, i64 508, !8, i64 512}
!14 = !{!"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, !8, 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, !8, i64 364, !8, i64 380, !8, i64 396, !8, i64 412, !8, i64 428, !8, i64 444, !10, i64 460, !8, i64 464, !15, 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, !7, i64 592, !10, i64 600, !10, i64 604, !10, i64 608, !10, i64 612, !7, 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}
!15 = !{!"libxsmm_tile_config", !8, i64 0, !16, i64 2, !8, i64 4, !16, i64 6, !8, i64 8, !16, i64 10, !8, i64 12, !16, i64 14, !8, i64 16, !16, i64 18, !8, i64 20, !16, i64 22, !8, i64 24, !16, i64 26, !8, i64 28, !16, i64 30, !8, i64 32}
!16 = !{!"short", !8, i64 0}
!17 = !{!18, !8, i64 12}
!18 = !{!"libxsmm_meqn_descriptor", !10, i64 0, !10, i64 4, !10, i64 8, !8, i64 12, !10, i64 13}
!19 = !{!18, !10, i64 0}
!20 = !{!12, !10, i64 128}
!21 = !{!12, !10, i64 132}
!22 = !{!12, !10, i64 164}
!23 = !{!12, !10, i64 168}
!24 = !{!12, !10, i64 152}
!25 = !{!12, !10, i64 156}
!26 = !{!12, !10, i64 136}
!27 = !{!12, !10, i64 140}
!28 = !{!12, !10, i64 144}
!29 = !{!12, !10, i64 172}
!30 = !{!12, !10, i64 176}
!31 = !{!12, !10, i64 160}
!32 = !{!33, !10, i64 20}
!33 = !{!"libxsmm_matequation_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, !34, i64 72, !35, i64 220}
!34 = !{!"libxsmm_mateltwise_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, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144}
!35 = !{!"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}
!36 = !{!18, !10, i64 8}
!37 = distinct !{!37, !38}
!38 = !{!"llvm.loop.mustprogress"}
!39 = distinct !{!39, !38}


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