; 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_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 }
%struct.libxsmm_meqn_descriptor = type <{ i32, i32, i32, i8, 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_unpackstore_2d_reg_block = external hidden unnamed_addr constant [273 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

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

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

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

42:                                               ; preds = %10
  store i32 0, ptr %21, align 4, !tbaa !9
  br label %43

43:                                               ; preds = %5203, %42
  %44 = load i32, ptr %21, align 4, !tbaa !9
  %45 = load i32, ptr %18, align 4, !tbaa !9
  %46 = icmp ult i32 %44, %45
  br i1 %46, label %47, label %5206

47:                                               ; preds = %43
  store i32 0, ptr %22, align 4, !tbaa !9
  br label %48

48:                                               ; preds = %5199, %47
  %49 = load i32, ptr %22, align 4, !tbaa !9
  %50 = load i32, ptr %17, align 4, !tbaa !9
  %51 = icmp ult i32 %49, %50
  br i1 %51, label %52, label %5202

52:                                               ; preds = %48
  %53 = load i32, ptr %24, align 4, !tbaa !9
  %54 = load i32, ptr %21, align 4, !tbaa !9
  %55 = load i32, ptr %17, align 4, !tbaa !9
  %56 = mul i32 %54, %55
  %57 = add i32 %53, %56
  %58 = load i32, ptr %22, align 4, !tbaa !9
  %59 = add i32 %57, %58
  store i32 %59, ptr %23, align 4, !tbaa !9
  %60 = load ptr, ptr %11, align 8, !tbaa !5
  %61 = load ptr, ptr %11, align 8, !tbaa !5
  %62 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %61, i32 0, i32 6
  %63 = load i32, ptr %62, align 4, !tbaa !11
  %64 = load ptr, ptr %12, align 8, !tbaa !5
  %65 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %64, i32 0, i32 5
  %66 = load i32, ptr %65, align 4, !tbaa !20
  %67 = load i32, ptr %22, align 4, !tbaa !9
  %68 = load i32, ptr %15, align 4, !tbaa !9
  %69 = mul i32 %67, %68
  %70 = load i32, ptr %21, align 4, !tbaa !9
  %71 = load ptr, ptr %14, align 8, !tbaa !5
  %72 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %71, i32 0, i32 2
  %73 = load i32, ptr %72, align 1, !tbaa !24
  %74 = mul i32 %70, %73
  %75 = add i32 %69, %74
  %76 = load ptr, ptr %14, align 8, !tbaa !5
  %77 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %76, i32 0, i32 3
  %78 = load i8, ptr %77, align 1, !tbaa !26
  %79 = zext i8 %78 to i32
  %80 = ashr i32 %79, 4
  %81 = icmp eq i32 0, %80
  br i1 %81, label %82, label %244

82:                                               ; preds = %52
  %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 !26
  %86 = zext i8 %85 to i32
  %87 = and i32 %86, 15
  %88 = icmp eq i32 0, %87
  br i1 %88, label %89, label %90

89:                                               ; preds = %82
  br label %242

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 !26
  %94 = zext i8 %93 to i32
  %95 = and i32 %94, 15
  %96 = icmp eq i32 1, %95
  br i1 %96, label %97, label %98

97:                                               ; preds = %90
  br label %240

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 !26
  %102 = zext i8 %101 to i32
  %103 = and i32 %102, 15
  %104 = icmp eq i32 2, %103
  br i1 %104, label %105, label %106

105:                                              ; preds = %98
  br label %238

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 !26
  %110 = zext i8 %109 to i32
  %111 = and i32 %110, 15
  %112 = icmp eq i32 3, %111
  br i1 %112, label %113, label %114

113:                                              ; preds = %106
  br label %236

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 !26
  %118 = zext i8 %117 to i32
  %119 = and i32 %118, 15
  %120 = icmp eq i32 4, %119
  br i1 %120, label %121, label %122

121:                                              ; preds = %114
  br label %234

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 !26
  %126 = zext i8 %125 to i32
  %127 = and i32 %126, 15
  %128 = icmp eq i32 5, %127
  br i1 %128, label %129, label %130

129:                                              ; preds = %122
  br label %232

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 !26
  %134 = zext i8 %133 to i32
  %135 = and i32 %134, 15
  %136 = icmp eq i32 6, %135
  br i1 %136, label %137, label %138

137:                                              ; preds = %130
  br label %230

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 !26
  %142 = zext i8 %141 to i32
  %143 = and i32 %142, 15
  %144 = icmp eq i32 7, %143
  br i1 %144, label %145, label %146

145:                                              ; preds = %138
  br label %228

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 !26
  %150 = zext i8 %149 to i32
  %151 = and i32 %150, 15
  %152 = icmp eq i32 8, %151
  br i1 %152, label %153, label %154

153:                                              ; preds = %146
  br label %226

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 !26
  %158 = zext i8 %157 to i32
  %159 = and i32 %158, 15
  %160 = icmp eq i32 9, %159
  br i1 %160, label %161, label %162

161:                                              ; preds = %154
  br label %224

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 !26
  %166 = zext i8 %165 to i32
  %167 = and i32 %166, 15
  %168 = icmp eq i32 10, %167
  br i1 %168, label %169, label %170

169:                                              ; preds = %162
  br label %222

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 !26
  %174 = zext i8 %173 to i32
  %175 = and i32 %174, 15
  %176 = icmp eq i32 11, %175
  br i1 %176, label %177, label %178

177:                                              ; preds = %170
  br label %220

178:                                              ; preds = %170
  %179 = load ptr, ptr %14, align 8, !tbaa !5
  %180 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %179, i32 0, i32 3
  %181 = load i8, ptr %180, align 1, !tbaa !26
  %182 = zext i8 %181 to i32
  %183 = and i32 %182, 15
  %184 = icmp eq i32 12, %183
  br i1 %184, label %185, label %186

185:                                              ; preds = %178
  br label %218

186:                                              ; preds = %178
  %187 = load ptr, ptr %14, align 8, !tbaa !5
  %188 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %187, i32 0, i32 3
  %189 = load i8, ptr %188, align 1, !tbaa !26
  %190 = zext i8 %189 to i32
  %191 = and i32 %190, 15
  %192 = icmp eq i32 13, %191
  br i1 %192, label %193, label %194

193:                                              ; preds = %186
  br label %216

194:                                              ; preds = %186
  %195 = load ptr, ptr %14, align 8, !tbaa !5
  %196 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %195, i32 0, i32 3
  %197 = load i8, ptr %196, align 1, !tbaa !26
  %198 = zext i8 %197 to i32
  %199 = and i32 %198, 15
  %200 = icmp eq i32 14, %199
  br i1 %200, label %201, label %202

201:                                              ; preds = %194
  br label %214

202:                                              ; preds = %194
  %203 = load ptr, ptr %14, align 8, !tbaa !5
  %204 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %203, i32 0, i32 3
  %205 = load i8, ptr %204, align 1, !tbaa !26
  %206 = zext i8 %205 to i32
  %207 = and i32 %206, 15
  %208 = icmp eq i32 15, %207
  br i1 %208, label %209, label %210

209:                                              ; preds = %202
  br label %212

210:                                              ; preds = %202
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 947, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

211:                                              ; No predecessors!
  br label %212

212:                                              ; preds = %211, %209
  %213 = phi i32 [ 15, %209 ], [ 0, %211 ]
  br label %214

214:                                              ; preds = %212, %201
  %215 = phi i32 [ 14, %201 ], [ %213, %212 ]
  br label %216

216:                                              ; preds = %214, %193
  %217 = phi i32 [ 12, %193 ], [ %215, %214 ]
  br label %218

218:                                              ; preds = %216, %185
  %219 = phi i32 [ 12, %185 ], [ %217, %216 ]
  br label %220

220:                                              ; preds = %218, %177
  %221 = phi i32 [ 10, %177 ], [ %219, %218 ]
  br label %222

222:                                              ; preds = %220, %169
  %223 = phi i32 [ 10, %169 ], [ %221, %220 ]
  br label %224

224:                                              ; preds = %222, %161
  %225 = phi i32 [ 8, %161 ], [ %223, %222 ]
  br label %226

226:                                              ; preds = %224, %153
  %227 = phi i32 [ 8, %153 ], [ %225, %224 ]
  br label %228

228:                                              ; preds = %226, %145
  %229 = phi i32 [ 6, %145 ], [ %227, %226 ]
  br label %230

230:                                              ; preds = %228, %137
  %231 = phi i32 [ 6, %137 ], [ %229, %228 ]
  br label %232

232:                                              ; preds = %230, %129
  %233 = phi i32 [ 5, %129 ], [ %231, %230 ]
  br label %234

234:                                              ; preds = %232, %121
  %235 = phi i32 [ 4, %121 ], [ %233, %232 ]
  br label %236

236:                                              ; preds = %234, %113
  %237 = phi i32 [ 3, %113 ], [ %235, %234 ]
  br label %238

238:                                              ; preds = %236, %105
  %239 = phi i32 [ 2, %105 ], [ %237, %236 ]
  br label %240

240:                                              ; preds = %238, %97
  %241 = phi i32 [ 1, %97 ], [ %239, %238 ]
  br label %242

242:                                              ; preds = %240, %89
  %243 = phi i32 [ 0, %89 ], [ %241, %240 ]
  br label %250

244:                                              ; preds = %52
  %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 !26
  %248 = zext i8 %247 to i32
  %249 = ashr i32 %248, 4
  br label %250

250:                                              ; preds = %244, %242
  %251 = phi i32 [ %243, %242 ], [ %249, %244 ]
  %252 = icmp eq i32 0, %251
  br i1 %252, label %253, label %254

253:                                              ; preds = %250
  br label %2609

254:                                              ; preds = %250
  %255 = load ptr, ptr %14, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %255, i32 0, i32 3
  %257 = load i8, ptr %256, align 1, !tbaa !26
  %258 = zext i8 %257 to i32
  %259 = ashr i32 %258, 4
  %260 = icmp eq i32 0, %259
  br i1 %260, label %261, label %423

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

268:                                              ; preds = %261
  br label %421

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

276:                                              ; preds = %269
  br label %419

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

284:                                              ; preds = %277
  br label %417

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

292:                                              ; preds = %285
  br label %415

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

300:                                              ; preds = %293
  br label %413

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

308:                                              ; preds = %301
  br label %411

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

316:                                              ; preds = %309
  br label %409

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

324:                                              ; preds = %317
  br label %407

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

332:                                              ; preds = %325
  br label %405

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

340:                                              ; preds = %333
  br label %403

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

348:                                              ; preds = %341
  br label %401

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

356:                                              ; preds = %349
  br label %399

357:                                              ; preds = %349
  %358 = load ptr, ptr %14, align 8, !tbaa !5
  %359 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %358, i32 0, i32 3
  %360 = load i8, ptr %359, align 1, !tbaa !26
  %361 = zext i8 %360 to i32
  %362 = and i32 %361, 15
  %363 = icmp eq i32 12, %362
  br i1 %363, label %364, label %365

364:                                              ; preds = %357
  br label %397

365:                                              ; preds = %357
  %366 = load ptr, ptr %14, align 8, !tbaa !5
  %367 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %366, i32 0, i32 3
  %368 = load i8, ptr %367, align 1, !tbaa !26
  %369 = zext i8 %368 to i32
  %370 = and i32 %369, 15
  %371 = icmp eq i32 13, %370
  br i1 %371, label %372, label %373

372:                                              ; preds = %365
  br label %395

373:                                              ; preds = %365
  %374 = load ptr, ptr %14, align 8, !tbaa !5
  %375 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %374, i32 0, i32 3
  %376 = load i8, ptr %375, align 1, !tbaa !26
  %377 = zext i8 %376 to i32
  %378 = and i32 %377, 15
  %379 = icmp eq i32 14, %378
  br i1 %379, label %380, label %381

380:                                              ; preds = %373
  br label %393

381:                                              ; preds = %373
  %382 = load ptr, ptr %14, align 8, !tbaa !5
  %383 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %382, i32 0, i32 3
  %384 = load i8, ptr %383, align 1, !tbaa !26
  %385 = zext i8 %384 to i32
  %386 = and i32 %385, 15
  %387 = icmp eq i32 15, %386
  br i1 %387, label %388, label %389

388:                                              ; preds = %381
  br label %391

389:                                              ; preds = %381
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 947, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

390:                                              ; No predecessors!
  br label %391

391:                                              ; preds = %390, %388
  %392 = phi i32 [ 15, %388 ], [ 0, %390 ]
  br label %393

393:                                              ; preds = %391, %380
  %394 = phi i32 [ 14, %380 ], [ %392, %391 ]
  br label %395

395:                                              ; preds = %393, %372
  %396 = phi i32 [ 12, %372 ], [ %394, %393 ]
  br label %397

397:                                              ; preds = %395, %364
  %398 = phi i32 [ 12, %364 ], [ %396, %395 ]
  br label %399

399:                                              ; preds = %397, %356
  %400 = phi i32 [ 10, %356 ], [ %398, %397 ]
  br label %401

401:                                              ; preds = %399, %348
  %402 = phi i32 [ 10, %348 ], [ %400, %399 ]
  br label %403

403:                                              ; preds = %401, %340
  %404 = phi i32 [ 8, %340 ], [ %402, %401 ]
  br label %405

405:                                              ; preds = %403, %332
  %406 = phi i32 [ 8, %332 ], [ %404, %403 ]
  br label %407

407:                                              ; preds = %405, %324
  %408 = phi i32 [ 6, %324 ], [ %406, %405 ]
  br label %409

409:                                              ; preds = %407, %316
  %410 = phi i32 [ 6, %316 ], [ %408, %407 ]
  br label %411

411:                                              ; preds = %409, %308
  %412 = phi i32 [ 5, %308 ], [ %410, %409 ]
  br label %413

413:                                              ; preds = %411, %300
  %414 = phi i32 [ 4, %300 ], [ %412, %411 ]
  br label %415

415:                                              ; preds = %413, %292
  %416 = phi i32 [ 3, %292 ], [ %414, %413 ]
  br label %417

417:                                              ; preds = %415, %284
  %418 = phi i32 [ 2, %284 ], [ %416, %415 ]
  br label %419

419:                                              ; preds = %417, %276
  %420 = phi i32 [ 1, %276 ], [ %418, %417 ]
  br label %421

421:                                              ; preds = %419, %268
  %422 = phi i32 [ 0, %268 ], [ %420, %419 ]
  br label %429

423:                                              ; preds = %254
  %424 = load ptr, ptr %14, align 8, !tbaa !5
  %425 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %424, i32 0, i32 3
  %426 = load i8, ptr %425, align 1, !tbaa !26
  %427 = zext i8 %426 to i32
  %428 = ashr i32 %427, 4
  br label %429

429:                                              ; preds = %423, %421
  %430 = phi i32 [ %422, %421 ], [ %428, %423 ]
  %431 = icmp eq i32 1, %430
  br i1 %431, label %432, label %433

432:                                              ; preds = %429
  br label %2607

433:                                              ; preds = %429
  %434 = load ptr, ptr %14, align 8, !tbaa !5
  %435 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %434, i32 0, i32 3
  %436 = load i8, ptr %435, align 1, !tbaa !26
  %437 = zext i8 %436 to i32
  %438 = ashr i32 %437, 4
  %439 = icmp eq i32 0, %438
  br i1 %439, label %440, label %602

440:                                              ; preds = %433
  %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 !26
  %444 = zext i8 %443 to i32
  %445 = and i32 %444, 15
  %446 = icmp eq i32 0, %445
  br i1 %446, label %447, label %448

447:                                              ; preds = %440
  br label %600

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 !26
  %452 = zext i8 %451 to i32
  %453 = and i32 %452, 15
  %454 = icmp eq i32 1, %453
  br i1 %454, label %455, label %456

455:                                              ; preds = %448
  br label %598

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 !26
  %460 = zext i8 %459 to i32
  %461 = and i32 %460, 15
  %462 = icmp eq i32 2, %461
  br i1 %462, label %463, label %464

463:                                              ; preds = %456
  br label %596

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 !26
  %468 = zext i8 %467 to i32
  %469 = and i32 %468, 15
  %470 = icmp eq i32 3, %469
  br i1 %470, label %471, label %472

471:                                              ; preds = %464
  br label %594

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 !26
  %476 = zext i8 %475 to i32
  %477 = and i32 %476, 15
  %478 = icmp eq i32 4, %477
  br i1 %478, label %479, label %480

479:                                              ; preds = %472
  br label %592

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 !26
  %484 = zext i8 %483 to i32
  %485 = and i32 %484, 15
  %486 = icmp eq i32 5, %485
  br i1 %486, label %487, label %488

487:                                              ; preds = %480
  br label %590

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 !26
  %492 = zext i8 %491 to i32
  %493 = and i32 %492, 15
  %494 = icmp eq i32 6, %493
  br i1 %494, label %495, label %496

495:                                              ; preds = %488
  br label %588

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 !26
  %500 = zext i8 %499 to i32
  %501 = and i32 %500, 15
  %502 = icmp eq i32 7, %501
  br i1 %502, label %503, label %504

503:                                              ; preds = %496
  br label %586

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 !26
  %508 = zext i8 %507 to i32
  %509 = and i32 %508, 15
  %510 = icmp eq i32 8, %509
  br i1 %510, label %511, label %512

511:                                              ; preds = %504
  br label %584

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 !26
  %516 = zext i8 %515 to i32
  %517 = and i32 %516, 15
  %518 = icmp eq i32 9, %517
  br i1 %518, label %519, label %520

519:                                              ; preds = %512
  br label %582

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 !26
  %524 = zext i8 %523 to i32
  %525 = and i32 %524, 15
  %526 = icmp eq i32 10, %525
  br i1 %526, label %527, label %528

527:                                              ; preds = %520
  br label %580

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 !26
  %532 = zext i8 %531 to i32
  %533 = and i32 %532, 15
  %534 = icmp eq i32 11, %533
  br i1 %534, label %535, label %536

535:                                              ; preds = %528
  br label %578

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 !26
  %540 = zext i8 %539 to i32
  %541 = and i32 %540, 15
  %542 = icmp eq i32 12, %541
  br i1 %542, label %543, label %544

543:                                              ; preds = %536
  br label %576

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 !26
  %548 = zext i8 %547 to i32
  %549 = and i32 %548, 15
  %550 = icmp eq i32 13, %549
  br i1 %550, label %551, label %552

551:                                              ; preds = %544
  br label %574

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 !26
  %556 = zext i8 %555 to i32
  %557 = and i32 %556, 15
  %558 = icmp eq i32 14, %557
  br i1 %558, label %559, label %560

559:                                              ; preds = %552
  br label %572

560:                                              ; preds = %552
  %561 = load ptr, ptr %14, align 8, !tbaa !5
  %562 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %561, i32 0, i32 3
  %563 = load i8, ptr %562, align 1, !tbaa !26
  %564 = zext i8 %563 to i32
  %565 = and i32 %564, 15
  %566 = icmp eq i32 15, %565
  br i1 %566, label %567, label %568

567:                                              ; preds = %560
  br label %570

568:                                              ; preds = %560
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 947, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

569:                                              ; No predecessors!
  br label %570

570:                                              ; preds = %569, %567
  %571 = phi i32 [ 15, %567 ], [ 0, %569 ]
  br label %572

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

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

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

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

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

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

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

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

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

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

592:                                              ; preds = %590, %479
  %593 = phi i32 [ 4, %479 ], [ %591, %590 ]
  br label %594

594:                                              ; preds = %592, %471
  %595 = phi i32 [ 3, %471 ], [ %593, %592 ]
  br label %596

596:                                              ; preds = %594, %463
  %597 = phi i32 [ 2, %463 ], [ %595, %594 ]
  br label %598

598:                                              ; preds = %596, %455
  %599 = phi i32 [ 1, %455 ], [ %597, %596 ]
  br label %600

600:                                              ; preds = %598, %447
  %601 = phi i32 [ 0, %447 ], [ %599, %598 ]
  br label %608

602:                                              ; preds = %433
  %603 = load ptr, ptr %14, align 8, !tbaa !5
  %604 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %603, i32 0, i32 3
  %605 = load i8, ptr %604, align 1, !tbaa !26
  %606 = zext i8 %605 to i32
  %607 = ashr i32 %606, 4
  br label %608

608:                                              ; preds = %602, %600
  %609 = phi i32 [ %601, %600 ], [ %607, %602 ]
  %610 = icmp eq i32 2, %609
  br i1 %610, label %611, label %612

611:                                              ; preds = %608
  br label %2605

612:                                              ; preds = %608
  %613 = load ptr, ptr %14, align 8, !tbaa !5
  %614 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %613, i32 0, i32 3
  %615 = load i8, ptr %614, align 1, !tbaa !26
  %616 = zext i8 %615 to i32
  %617 = ashr i32 %616, 4
  %618 = icmp eq i32 0, %617
  br i1 %618, label %619, label %781

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

626:                                              ; preds = %619
  br label %779

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

634:                                              ; preds = %627
  br label %777

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

642:                                              ; preds = %635
  br label %775

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

650:                                              ; preds = %643
  br label %773

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

658:                                              ; preds = %651
  br label %771

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

666:                                              ; preds = %659
  br label %769

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

674:                                              ; preds = %667
  br label %767

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

682:                                              ; preds = %675
  br label %765

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

690:                                              ; preds = %683
  br label %763

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

698:                                              ; preds = %691
  br label %761

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

706:                                              ; preds = %699
  br label %759

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

714:                                              ; preds = %707
  br label %757

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

722:                                              ; preds = %715
  br label %755

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

730:                                              ; preds = %723
  br label %753

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

738:                                              ; preds = %731
  br label %751

739:                                              ; preds = %731
  %740 = load ptr, ptr %14, align 8, !tbaa !5
  %741 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %740, i32 0, i32 3
  %742 = load i8, ptr %741, align 1, !tbaa !26
  %743 = zext i8 %742 to i32
  %744 = and i32 %743, 15
  %745 = icmp eq i32 15, %744
  br i1 %745, label %746, label %747

746:                                              ; preds = %739
  br label %749

747:                                              ; preds = %739
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 947, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

748:                                              ; No predecessors!
  br label %749

749:                                              ; preds = %748, %746
  %750 = phi i32 [ 15, %746 ], [ 0, %748 ]
  br label %751

751:                                              ; preds = %749, %738
  %752 = phi i32 [ 14, %738 ], [ %750, %749 ]
  br label %753

753:                                              ; preds = %751, %730
  %754 = phi i32 [ 12, %730 ], [ %752, %751 ]
  br label %755

755:                                              ; preds = %753, %722
  %756 = phi i32 [ 12, %722 ], [ %754, %753 ]
  br label %757

757:                                              ; preds = %755, %714
  %758 = phi i32 [ 10, %714 ], [ %756, %755 ]
  br label %759

759:                                              ; preds = %757, %706
  %760 = phi i32 [ 10, %706 ], [ %758, %757 ]
  br label %761

761:                                              ; preds = %759, %698
  %762 = phi i32 [ 8, %698 ], [ %760, %759 ]
  br label %763

763:                                              ; preds = %761, %690
  %764 = phi i32 [ 8, %690 ], [ %762, %761 ]
  br label %765

765:                                              ; preds = %763, %682
  %766 = phi i32 [ 6, %682 ], [ %764, %763 ]
  br label %767

767:                                              ; preds = %765, %674
  %768 = phi i32 [ 6, %674 ], [ %766, %765 ]
  br label %769

769:                                              ; preds = %767, %666
  %770 = phi i32 [ 5, %666 ], [ %768, %767 ]
  br label %771

771:                                              ; preds = %769, %658
  %772 = phi i32 [ 4, %658 ], [ %770, %769 ]
  br label %773

773:                                              ; preds = %771, %650
  %774 = phi i32 [ 3, %650 ], [ %772, %771 ]
  br label %775

775:                                              ; preds = %773, %642
  %776 = phi i32 [ 2, %642 ], [ %774, %773 ]
  br label %777

777:                                              ; preds = %775, %634
  %778 = phi i32 [ 1, %634 ], [ %776, %775 ]
  br label %779

779:                                              ; preds = %777, %626
  %780 = phi i32 [ 0, %626 ], [ %778, %777 ]
  br label %787

781:                                              ; preds = %612
  %782 = load ptr, ptr %14, align 8, !tbaa !5
  %783 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %782, i32 0, i32 3
  %784 = load i8, ptr %783, align 1, !tbaa !26
  %785 = zext i8 %784 to i32
  %786 = ashr i32 %785, 4
  br label %787

787:                                              ; preds = %781, %779
  %788 = phi i32 [ %780, %779 ], [ %786, %781 ]
  %789 = icmp eq i32 3, %788
  br i1 %789, label %790, label %791

790:                                              ; preds = %787
  br label %2603

791:                                              ; preds = %787
  %792 = load ptr, ptr %14, align 8, !tbaa !5
  %793 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %792, i32 0, i32 3
  %794 = load i8, ptr %793, align 1, !tbaa !26
  %795 = zext i8 %794 to i32
  %796 = ashr i32 %795, 4
  %797 = icmp eq i32 0, %796
  br i1 %797, label %798, label %960

798:                                              ; preds = %791
  %799 = load ptr, ptr %14, align 8, !tbaa !5
  %800 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %799, i32 0, i32 3
  %801 = load i8, ptr %800, align 1, !tbaa !26
  %802 = zext i8 %801 to i32
  %803 = and i32 %802, 15
  %804 = icmp eq i32 0, %803
  br i1 %804, label %805, label %806

805:                                              ; preds = %798
  br label %958

806:                                              ; preds = %798
  %807 = load ptr, ptr %14, align 8, !tbaa !5
  %808 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %807, i32 0, i32 3
  %809 = load i8, ptr %808, align 1, !tbaa !26
  %810 = zext i8 %809 to i32
  %811 = and i32 %810, 15
  %812 = icmp eq i32 1, %811
  br i1 %812, label %813, label %814

813:                                              ; preds = %806
  br label %956

814:                                              ; preds = %806
  %815 = load ptr, ptr %14, align 8, !tbaa !5
  %816 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %815, i32 0, i32 3
  %817 = load i8, ptr %816, align 1, !tbaa !26
  %818 = zext i8 %817 to i32
  %819 = and i32 %818, 15
  %820 = icmp eq i32 2, %819
  br i1 %820, label %821, label %822

821:                                              ; preds = %814
  br label %954

822:                                              ; preds = %814
  %823 = load ptr, ptr %14, align 8, !tbaa !5
  %824 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %823, i32 0, i32 3
  %825 = load i8, ptr %824, align 1, !tbaa !26
  %826 = zext i8 %825 to i32
  %827 = and i32 %826, 15
  %828 = icmp eq i32 3, %827
  br i1 %828, label %829, label %830

829:                                              ; preds = %822
  br label %952

830:                                              ; preds = %822
  %831 = load ptr, ptr %14, align 8, !tbaa !5
  %832 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %831, i32 0, i32 3
  %833 = load i8, ptr %832, align 1, !tbaa !26
  %834 = zext i8 %833 to i32
  %835 = and i32 %834, 15
  %836 = icmp eq i32 4, %835
  br i1 %836, label %837, label %838

837:                                              ; preds = %830
  br label %950

838:                                              ; preds = %830
  %839 = load ptr, ptr %14, align 8, !tbaa !5
  %840 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %839, i32 0, i32 3
  %841 = load i8, ptr %840, align 1, !tbaa !26
  %842 = zext i8 %841 to i32
  %843 = and i32 %842, 15
  %844 = icmp eq i32 5, %843
  br i1 %844, label %845, label %846

845:                                              ; preds = %838
  br label %948

846:                                              ; preds = %838
  %847 = load ptr, ptr %14, align 8, !tbaa !5
  %848 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %847, i32 0, i32 3
  %849 = load i8, ptr %848, align 1, !tbaa !26
  %850 = zext i8 %849 to i32
  %851 = and i32 %850, 15
  %852 = icmp eq i32 6, %851
  br i1 %852, label %853, label %854

853:                                              ; preds = %846
  br label %946

854:                                              ; preds = %846
  %855 = load ptr, ptr %14, align 8, !tbaa !5
  %856 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %855, i32 0, i32 3
  %857 = load i8, ptr %856, align 1, !tbaa !26
  %858 = zext i8 %857 to i32
  %859 = and i32 %858, 15
  %860 = icmp eq i32 7, %859
  br i1 %860, label %861, label %862

861:                                              ; preds = %854
  br label %944

862:                                              ; preds = %854
  %863 = load ptr, ptr %14, align 8, !tbaa !5
  %864 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %863, i32 0, i32 3
  %865 = load i8, ptr %864, align 1, !tbaa !26
  %866 = zext i8 %865 to i32
  %867 = and i32 %866, 15
  %868 = icmp eq i32 8, %867
  br i1 %868, label %869, label %870

869:                                              ; preds = %862
  br label %942

870:                                              ; preds = %862
  %871 = load ptr, ptr %14, align 8, !tbaa !5
  %872 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %871, i32 0, i32 3
  %873 = load i8, ptr %872, align 1, !tbaa !26
  %874 = zext i8 %873 to i32
  %875 = and i32 %874, 15
  %876 = icmp eq i32 9, %875
  br i1 %876, label %877, label %878

877:                                              ; preds = %870
  br label %940

878:                                              ; preds = %870
  %879 = load ptr, ptr %14, align 8, !tbaa !5
  %880 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %879, i32 0, i32 3
  %881 = load i8, ptr %880, align 1, !tbaa !26
  %882 = zext i8 %881 to i32
  %883 = and i32 %882, 15
  %884 = icmp eq i32 10, %883
  br i1 %884, label %885, label %886

885:                                              ; preds = %878
  br label %938

886:                                              ; preds = %878
  %887 = load ptr, ptr %14, align 8, !tbaa !5
  %888 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %887, i32 0, i32 3
  %889 = load i8, ptr %888, align 1, !tbaa !26
  %890 = zext i8 %889 to i32
  %891 = and i32 %890, 15
  %892 = icmp eq i32 11, %891
  br i1 %892, label %893, label %894

893:                                              ; preds = %886
  br label %936

894:                                              ; preds = %886
  %895 = load ptr, ptr %14, align 8, !tbaa !5
  %896 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %895, i32 0, i32 3
  %897 = load i8, ptr %896, align 1, !tbaa !26
  %898 = zext i8 %897 to i32
  %899 = and i32 %898, 15
  %900 = icmp eq i32 12, %899
  br i1 %900, label %901, label %902

901:                                              ; preds = %894
  br label %934

902:                                              ; preds = %894
  %903 = load ptr, ptr %14, align 8, !tbaa !5
  %904 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %903, i32 0, i32 3
  %905 = load i8, ptr %904, align 1, !tbaa !26
  %906 = zext i8 %905 to i32
  %907 = and i32 %906, 15
  %908 = icmp eq i32 13, %907
  br i1 %908, label %909, label %910

909:                                              ; preds = %902
  br label %932

910:                                              ; preds = %902
  %911 = load ptr, ptr %14, align 8, !tbaa !5
  %912 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %911, i32 0, i32 3
  %913 = load i8, ptr %912, align 1, !tbaa !26
  %914 = zext i8 %913 to i32
  %915 = and i32 %914, 15
  %916 = icmp eq i32 14, %915
  br i1 %916, label %917, label %918

917:                                              ; preds = %910
  br label %930

918:                                              ; preds = %910
  %919 = load ptr, ptr %14, align 8, !tbaa !5
  %920 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %919, i32 0, i32 3
  %921 = load i8, ptr %920, align 1, !tbaa !26
  %922 = zext i8 %921 to i32
  %923 = and i32 %922, 15
  %924 = icmp eq i32 15, %923
  br i1 %924, label %925, label %926

925:                                              ; preds = %918
  br label %928

926:                                              ; preds = %918
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 947, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

927:                                              ; No predecessors!
  br label %928

928:                                              ; preds = %927, %925
  %929 = phi i32 [ 15, %925 ], [ 0, %927 ]
  br label %930

930:                                              ; preds = %928, %917
  %931 = phi i32 [ 14, %917 ], [ %929, %928 ]
  br label %932

932:                                              ; preds = %930, %909
  %933 = phi i32 [ 12, %909 ], [ %931, %930 ]
  br label %934

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

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

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

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

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

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

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

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

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

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

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

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

958:                                              ; preds = %956, %805
  %959 = phi i32 [ 0, %805 ], [ %957, %956 ]
  br label %966

960:                                              ; preds = %791
  %961 = load ptr, ptr %14, align 8, !tbaa !5
  %962 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %961, i32 0, i32 3
  %963 = load i8, ptr %962, align 1, !tbaa !26
  %964 = zext i8 %963 to i32
  %965 = ashr i32 %964, 4
  br label %966

966:                                              ; preds = %960, %958
  %967 = phi i32 [ %959, %958 ], [ %965, %960 ]
  %968 = icmp eq i32 4, %967
  br i1 %968, label %969, label %970

969:                                              ; preds = %966
  br label %2601

970:                                              ; preds = %966
  %971 = load ptr, ptr %14, align 8, !tbaa !5
  %972 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %971, i32 0, i32 3
  %973 = load i8, ptr %972, align 1, !tbaa !26
  %974 = zext i8 %973 to i32
  %975 = ashr i32 %974, 4
  %976 = icmp eq i32 0, %975
  br i1 %976, label %977, label %1139

977:                                              ; preds = %970
  %978 = load ptr, ptr %14, align 8, !tbaa !5
  %979 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %978, i32 0, i32 3
  %980 = load i8, ptr %979, align 1, !tbaa !26
  %981 = zext i8 %980 to i32
  %982 = and i32 %981, 15
  %983 = icmp eq i32 0, %982
  br i1 %983, label %984, label %985

984:                                              ; preds = %977
  br label %1137

985:                                              ; preds = %977
  %986 = load ptr, ptr %14, align 8, !tbaa !5
  %987 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %986, i32 0, i32 3
  %988 = load i8, ptr %987, align 1, !tbaa !26
  %989 = zext i8 %988 to i32
  %990 = and i32 %989, 15
  %991 = icmp eq i32 1, %990
  br i1 %991, label %992, label %993

992:                                              ; preds = %985
  br label %1135

993:                                              ; preds = %985
  %994 = load ptr, ptr %14, align 8, !tbaa !5
  %995 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %994, i32 0, i32 3
  %996 = load i8, ptr %995, align 1, !tbaa !26
  %997 = zext i8 %996 to i32
  %998 = and i32 %997, 15
  %999 = icmp eq i32 2, %998
  br i1 %999, label %1000, label %1001

1000:                                             ; preds = %993
  br label %1133

1001:                                             ; preds = %993
  %1002 = load ptr, ptr %14, align 8, !tbaa !5
  %1003 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1002, i32 0, i32 3
  %1004 = load i8, ptr %1003, align 1, !tbaa !26
  %1005 = zext i8 %1004 to i32
  %1006 = and i32 %1005, 15
  %1007 = icmp eq i32 3, %1006
  br i1 %1007, label %1008, label %1009

1008:                                             ; preds = %1001
  br label %1131

1009:                                             ; preds = %1001
  %1010 = load ptr, ptr %14, align 8, !tbaa !5
  %1011 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1010, i32 0, i32 3
  %1012 = load i8, ptr %1011, align 1, !tbaa !26
  %1013 = zext i8 %1012 to i32
  %1014 = and i32 %1013, 15
  %1015 = icmp eq i32 4, %1014
  br i1 %1015, label %1016, label %1017

1016:                                             ; preds = %1009
  br label %1129

1017:                                             ; preds = %1009
  %1018 = load ptr, ptr %14, align 8, !tbaa !5
  %1019 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1018, i32 0, i32 3
  %1020 = load i8, ptr %1019, align 1, !tbaa !26
  %1021 = zext i8 %1020 to i32
  %1022 = and i32 %1021, 15
  %1023 = icmp eq i32 5, %1022
  br i1 %1023, label %1024, label %1025

1024:                                             ; preds = %1017
  br label %1127

1025:                                             ; preds = %1017
  %1026 = load ptr, ptr %14, align 8, !tbaa !5
  %1027 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1026, i32 0, i32 3
  %1028 = load i8, ptr %1027, align 1, !tbaa !26
  %1029 = zext i8 %1028 to i32
  %1030 = and i32 %1029, 15
  %1031 = icmp eq i32 6, %1030
  br i1 %1031, label %1032, label %1033

1032:                                             ; preds = %1025
  br label %1125

1033:                                             ; preds = %1025
  %1034 = load ptr, ptr %14, align 8, !tbaa !5
  %1035 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1034, i32 0, i32 3
  %1036 = load i8, ptr %1035, align 1, !tbaa !26
  %1037 = zext i8 %1036 to i32
  %1038 = and i32 %1037, 15
  %1039 = icmp eq i32 7, %1038
  br i1 %1039, label %1040, label %1041

1040:                                             ; preds = %1033
  br label %1123

1041:                                             ; preds = %1033
  %1042 = load ptr, ptr %14, align 8, !tbaa !5
  %1043 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1042, i32 0, i32 3
  %1044 = load i8, ptr %1043, align 1, !tbaa !26
  %1045 = zext i8 %1044 to i32
  %1046 = and i32 %1045, 15
  %1047 = icmp eq i32 8, %1046
  br i1 %1047, label %1048, label %1049

1048:                                             ; preds = %1041
  br label %1121

1049:                                             ; preds = %1041
  %1050 = load ptr, ptr %14, align 8, !tbaa !5
  %1051 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1050, i32 0, i32 3
  %1052 = load i8, ptr %1051, align 1, !tbaa !26
  %1053 = zext i8 %1052 to i32
  %1054 = and i32 %1053, 15
  %1055 = icmp eq i32 9, %1054
  br i1 %1055, label %1056, label %1057

1056:                                             ; preds = %1049
  br label %1119

1057:                                             ; preds = %1049
  %1058 = load ptr, ptr %14, align 8, !tbaa !5
  %1059 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1058, i32 0, i32 3
  %1060 = load i8, ptr %1059, align 1, !tbaa !26
  %1061 = zext i8 %1060 to i32
  %1062 = and i32 %1061, 15
  %1063 = icmp eq i32 10, %1062
  br i1 %1063, label %1064, label %1065

1064:                                             ; preds = %1057
  br label %1117

1065:                                             ; preds = %1057
  %1066 = load ptr, ptr %14, align 8, !tbaa !5
  %1067 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1066, i32 0, i32 3
  %1068 = load i8, ptr %1067, align 1, !tbaa !26
  %1069 = zext i8 %1068 to i32
  %1070 = and i32 %1069, 15
  %1071 = icmp eq i32 11, %1070
  br i1 %1071, label %1072, label %1073

1072:                                             ; preds = %1065
  br label %1115

1073:                                             ; preds = %1065
  %1074 = load ptr, ptr %14, align 8, !tbaa !5
  %1075 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1074, i32 0, i32 3
  %1076 = load i8, ptr %1075, align 1, !tbaa !26
  %1077 = zext i8 %1076 to i32
  %1078 = and i32 %1077, 15
  %1079 = icmp eq i32 12, %1078
  br i1 %1079, label %1080, label %1081

1080:                                             ; preds = %1073
  br label %1113

1081:                                             ; preds = %1073
  %1082 = load ptr, ptr %14, align 8, !tbaa !5
  %1083 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1082, i32 0, i32 3
  %1084 = load i8, ptr %1083, align 1, !tbaa !26
  %1085 = zext i8 %1084 to i32
  %1086 = and i32 %1085, 15
  %1087 = icmp eq i32 13, %1086
  br i1 %1087, label %1088, label %1089

1088:                                             ; preds = %1081
  br label %1111

1089:                                             ; preds = %1081
  %1090 = load ptr, ptr %14, align 8, !tbaa !5
  %1091 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1090, i32 0, i32 3
  %1092 = load i8, ptr %1091, align 1, !tbaa !26
  %1093 = zext i8 %1092 to i32
  %1094 = and i32 %1093, 15
  %1095 = icmp eq i32 14, %1094
  br i1 %1095, label %1096, label %1097

1096:                                             ; preds = %1089
  br label %1109

1097:                                             ; preds = %1089
  %1098 = load ptr, ptr %14, align 8, !tbaa !5
  %1099 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1098, i32 0, i32 3
  %1100 = load i8, ptr %1099, align 1, !tbaa !26
  %1101 = zext i8 %1100 to i32
  %1102 = and i32 %1101, 15
  %1103 = icmp eq i32 15, %1102
  br i1 %1103, label %1104, label %1105

1104:                                             ; preds = %1097
  br label %1107

1105:                                             ; preds = %1097
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 947, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

1106:                                             ; No predecessors!
  br label %1107

1107:                                             ; preds = %1106, %1104
  %1108 = phi i32 [ 15, %1104 ], [ 0, %1106 ]
  br label %1109

1109:                                             ; preds = %1107, %1096
  %1110 = phi i32 [ 14, %1096 ], [ %1108, %1107 ]
  br label %1111

1111:                                             ; preds = %1109, %1088
  %1112 = phi i32 [ 12, %1088 ], [ %1110, %1109 ]
  br label %1113

1113:                                             ; preds = %1111, %1080
  %1114 = phi i32 [ 12, %1080 ], [ %1112, %1111 ]
  br label %1115

1115:                                             ; preds = %1113, %1072
  %1116 = phi i32 [ 10, %1072 ], [ %1114, %1113 ]
  br label %1117

1117:                                             ; preds = %1115, %1064
  %1118 = phi i32 [ 10, %1064 ], [ %1116, %1115 ]
  br label %1119

1119:                                             ; preds = %1117, %1056
  %1120 = phi i32 [ 8, %1056 ], [ %1118, %1117 ]
  br label %1121

1121:                                             ; preds = %1119, %1048
  %1122 = phi i32 [ 8, %1048 ], [ %1120, %1119 ]
  br label %1123

1123:                                             ; preds = %1121, %1040
  %1124 = phi i32 [ 6, %1040 ], [ %1122, %1121 ]
  br label %1125

1125:                                             ; preds = %1123, %1032
  %1126 = phi i32 [ 6, %1032 ], [ %1124, %1123 ]
  br label %1127

1127:                                             ; preds = %1125, %1024
  %1128 = phi i32 [ 5, %1024 ], [ %1126, %1125 ]
  br label %1129

1129:                                             ; preds = %1127, %1016
  %1130 = phi i32 [ 4, %1016 ], [ %1128, %1127 ]
  br label %1131

1131:                                             ; preds = %1129, %1008
  %1132 = phi i32 [ 3, %1008 ], [ %1130, %1129 ]
  br label %1133

1133:                                             ; preds = %1131, %1000
  %1134 = phi i32 [ 2, %1000 ], [ %1132, %1131 ]
  br label %1135

1135:                                             ; preds = %1133, %992
  %1136 = phi i32 [ 1, %992 ], [ %1134, %1133 ]
  br label %1137

1137:                                             ; preds = %1135, %984
  %1138 = phi i32 [ 0, %984 ], [ %1136, %1135 ]
  br label %1145

1139:                                             ; preds = %970
  %1140 = load ptr, ptr %14, align 8, !tbaa !5
  %1141 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1140, i32 0, i32 3
  %1142 = load i8, ptr %1141, align 1, !tbaa !26
  %1143 = zext i8 %1142 to i32
  %1144 = ashr i32 %1143, 4
  br label %1145

1145:                                             ; preds = %1139, %1137
  %1146 = phi i32 [ %1138, %1137 ], [ %1144, %1139 ]
  %1147 = icmp eq i32 5, %1146
  br i1 %1147, label %1148, label %1149

1148:                                             ; preds = %1145
  br label %2599

1149:                                             ; preds = %1145
  %1150 = load ptr, ptr %14, align 8, !tbaa !5
  %1151 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1150, i32 0, i32 3
  %1152 = load i8, ptr %1151, align 1, !tbaa !26
  %1153 = zext i8 %1152 to i32
  %1154 = ashr i32 %1153, 4
  %1155 = icmp eq i32 0, %1154
  br i1 %1155, label %1156, label %1318

1156:                                             ; preds = %1149
  %1157 = load ptr, ptr %14, align 8, !tbaa !5
  %1158 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1157, i32 0, i32 3
  %1159 = load i8, ptr %1158, align 1, !tbaa !26
  %1160 = zext i8 %1159 to i32
  %1161 = and i32 %1160, 15
  %1162 = icmp eq i32 0, %1161
  br i1 %1162, label %1163, label %1164

1163:                                             ; preds = %1156
  br label %1316

1164:                                             ; preds = %1156
  %1165 = load ptr, ptr %14, align 8, !tbaa !5
  %1166 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1165, i32 0, i32 3
  %1167 = load i8, ptr %1166, align 1, !tbaa !26
  %1168 = zext i8 %1167 to i32
  %1169 = and i32 %1168, 15
  %1170 = icmp eq i32 1, %1169
  br i1 %1170, label %1171, label %1172

1171:                                             ; preds = %1164
  br label %1314

1172:                                             ; preds = %1164
  %1173 = load ptr, ptr %14, align 8, !tbaa !5
  %1174 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1173, i32 0, i32 3
  %1175 = load i8, ptr %1174, align 1, !tbaa !26
  %1176 = zext i8 %1175 to i32
  %1177 = and i32 %1176, 15
  %1178 = icmp eq i32 2, %1177
  br i1 %1178, label %1179, label %1180

1179:                                             ; preds = %1172
  br label %1312

1180:                                             ; preds = %1172
  %1181 = load ptr, ptr %14, align 8, !tbaa !5
  %1182 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1181, i32 0, i32 3
  %1183 = load i8, ptr %1182, align 1, !tbaa !26
  %1184 = zext i8 %1183 to i32
  %1185 = and i32 %1184, 15
  %1186 = icmp eq i32 3, %1185
  br i1 %1186, label %1187, label %1188

1187:                                             ; preds = %1180
  br label %1310

1188:                                             ; preds = %1180
  %1189 = load ptr, ptr %14, align 8, !tbaa !5
  %1190 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1189, i32 0, i32 3
  %1191 = load i8, ptr %1190, align 1, !tbaa !26
  %1192 = zext i8 %1191 to i32
  %1193 = and i32 %1192, 15
  %1194 = icmp eq i32 4, %1193
  br i1 %1194, label %1195, label %1196

1195:                                             ; preds = %1188
  br label %1308

1196:                                             ; preds = %1188
  %1197 = load ptr, ptr %14, align 8, !tbaa !5
  %1198 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1197, i32 0, i32 3
  %1199 = load i8, ptr %1198, align 1, !tbaa !26
  %1200 = zext i8 %1199 to i32
  %1201 = and i32 %1200, 15
  %1202 = icmp eq i32 5, %1201
  br i1 %1202, label %1203, label %1204

1203:                                             ; preds = %1196
  br label %1306

1204:                                             ; preds = %1196
  %1205 = load ptr, ptr %14, align 8, !tbaa !5
  %1206 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1205, i32 0, i32 3
  %1207 = load i8, ptr %1206, align 1, !tbaa !26
  %1208 = zext i8 %1207 to i32
  %1209 = and i32 %1208, 15
  %1210 = icmp eq i32 6, %1209
  br i1 %1210, label %1211, label %1212

1211:                                             ; preds = %1204
  br label %1304

1212:                                             ; preds = %1204
  %1213 = load ptr, ptr %14, align 8, !tbaa !5
  %1214 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1213, i32 0, i32 3
  %1215 = load i8, ptr %1214, align 1, !tbaa !26
  %1216 = zext i8 %1215 to i32
  %1217 = and i32 %1216, 15
  %1218 = icmp eq i32 7, %1217
  br i1 %1218, label %1219, label %1220

1219:                                             ; preds = %1212
  br label %1302

1220:                                             ; preds = %1212
  %1221 = load ptr, ptr %14, align 8, !tbaa !5
  %1222 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1221, i32 0, i32 3
  %1223 = load i8, ptr %1222, align 1, !tbaa !26
  %1224 = zext i8 %1223 to i32
  %1225 = and i32 %1224, 15
  %1226 = icmp eq i32 8, %1225
  br i1 %1226, label %1227, label %1228

1227:                                             ; preds = %1220
  br label %1300

1228:                                             ; preds = %1220
  %1229 = load ptr, ptr %14, align 8, !tbaa !5
  %1230 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1229, i32 0, i32 3
  %1231 = load i8, ptr %1230, align 1, !tbaa !26
  %1232 = zext i8 %1231 to i32
  %1233 = and i32 %1232, 15
  %1234 = icmp eq i32 9, %1233
  br i1 %1234, label %1235, label %1236

1235:                                             ; preds = %1228
  br label %1298

1236:                                             ; preds = %1228
  %1237 = load ptr, ptr %14, align 8, !tbaa !5
  %1238 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1237, i32 0, i32 3
  %1239 = load i8, ptr %1238, align 1, !tbaa !26
  %1240 = zext i8 %1239 to i32
  %1241 = and i32 %1240, 15
  %1242 = icmp eq i32 10, %1241
  br i1 %1242, label %1243, label %1244

1243:                                             ; preds = %1236
  br label %1296

1244:                                             ; preds = %1236
  %1245 = load ptr, ptr %14, align 8, !tbaa !5
  %1246 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1245, i32 0, i32 3
  %1247 = load i8, ptr %1246, align 1, !tbaa !26
  %1248 = zext i8 %1247 to i32
  %1249 = and i32 %1248, 15
  %1250 = icmp eq i32 11, %1249
  br i1 %1250, label %1251, label %1252

1251:                                             ; preds = %1244
  br label %1294

1252:                                             ; preds = %1244
  %1253 = load ptr, ptr %14, align 8, !tbaa !5
  %1254 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1253, i32 0, i32 3
  %1255 = load i8, ptr %1254, align 1, !tbaa !26
  %1256 = zext i8 %1255 to i32
  %1257 = and i32 %1256, 15
  %1258 = icmp eq i32 12, %1257
  br i1 %1258, label %1259, label %1260

1259:                                             ; preds = %1252
  br label %1292

1260:                                             ; preds = %1252
  %1261 = load ptr, ptr %14, align 8, !tbaa !5
  %1262 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1261, i32 0, i32 3
  %1263 = load i8, ptr %1262, align 1, !tbaa !26
  %1264 = zext i8 %1263 to i32
  %1265 = and i32 %1264, 15
  %1266 = icmp eq i32 13, %1265
  br i1 %1266, label %1267, label %1268

1267:                                             ; preds = %1260
  br label %1290

1268:                                             ; preds = %1260
  %1269 = load ptr, ptr %14, align 8, !tbaa !5
  %1270 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1269, i32 0, i32 3
  %1271 = load i8, ptr %1270, align 1, !tbaa !26
  %1272 = zext i8 %1271 to i32
  %1273 = and i32 %1272, 15
  %1274 = icmp eq i32 14, %1273
  br i1 %1274, label %1275, label %1276

1275:                                             ; preds = %1268
  br label %1288

1276:                                             ; preds = %1268
  %1277 = load ptr, ptr %14, align 8, !tbaa !5
  %1278 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1277, i32 0, i32 3
  %1279 = load i8, ptr %1278, align 1, !tbaa !26
  %1280 = zext i8 %1279 to i32
  %1281 = and i32 %1280, 15
  %1282 = icmp eq i32 15, %1281
  br i1 %1282, label %1283, label %1284

1283:                                             ; preds = %1276
  br label %1286

1284:                                             ; preds = %1276
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 947, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

1285:                                             ; No predecessors!
  br label %1286

1286:                                             ; preds = %1285, %1283
  %1287 = phi i32 [ 15, %1283 ], [ 0, %1285 ]
  br label %1288

1288:                                             ; preds = %1286, %1275
  %1289 = phi i32 [ 14, %1275 ], [ %1287, %1286 ]
  br label %1290

1290:                                             ; preds = %1288, %1267
  %1291 = phi i32 [ 12, %1267 ], [ %1289, %1288 ]
  br label %1292

1292:                                             ; preds = %1290, %1259
  %1293 = phi i32 [ 12, %1259 ], [ %1291, %1290 ]
  br label %1294

1294:                                             ; preds = %1292, %1251
  %1295 = phi i32 [ 10, %1251 ], [ %1293, %1292 ]
  br label %1296

1296:                                             ; preds = %1294, %1243
  %1297 = phi i32 [ 10, %1243 ], [ %1295, %1294 ]
  br label %1298

1298:                                             ; preds = %1296, %1235
  %1299 = phi i32 [ 8, %1235 ], [ %1297, %1296 ]
  br label %1300

1300:                                             ; preds = %1298, %1227
  %1301 = phi i32 [ 8, %1227 ], [ %1299, %1298 ]
  br label %1302

1302:                                             ; preds = %1300, %1219
  %1303 = phi i32 [ 6, %1219 ], [ %1301, %1300 ]
  br label %1304

1304:                                             ; preds = %1302, %1211
  %1305 = phi i32 [ 6, %1211 ], [ %1303, %1302 ]
  br label %1306

1306:                                             ; preds = %1304, %1203
  %1307 = phi i32 [ 5, %1203 ], [ %1305, %1304 ]
  br label %1308

1308:                                             ; preds = %1306, %1195
  %1309 = phi i32 [ 4, %1195 ], [ %1307, %1306 ]
  br label %1310

1310:                                             ; preds = %1308, %1187
  %1311 = phi i32 [ 3, %1187 ], [ %1309, %1308 ]
  br label %1312

1312:                                             ; preds = %1310, %1179
  %1313 = phi i32 [ 2, %1179 ], [ %1311, %1310 ]
  br label %1314

1314:                                             ; preds = %1312, %1171
  %1315 = phi i32 [ 1, %1171 ], [ %1313, %1312 ]
  br label %1316

1316:                                             ; preds = %1314, %1163
  %1317 = phi i32 [ 0, %1163 ], [ %1315, %1314 ]
  br label %1324

1318:                                             ; preds = %1149
  %1319 = load ptr, ptr %14, align 8, !tbaa !5
  %1320 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1319, i32 0, i32 3
  %1321 = load i8, ptr %1320, align 1, !tbaa !26
  %1322 = zext i8 %1321 to i32
  %1323 = ashr i32 %1322, 4
  br label %1324

1324:                                             ; preds = %1318, %1316
  %1325 = phi i32 [ %1317, %1316 ], [ %1323, %1318 ]
  %1326 = icmp eq i32 6, %1325
  br i1 %1326, label %1327, label %1328

1327:                                             ; preds = %1324
  br label %2597

1328:                                             ; preds = %1324
  %1329 = load ptr, ptr %14, align 8, !tbaa !5
  %1330 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1329, i32 0, i32 3
  %1331 = load i8, ptr %1330, align 1, !tbaa !26
  %1332 = zext i8 %1331 to i32
  %1333 = ashr i32 %1332, 4
  %1334 = icmp eq i32 0, %1333
  br i1 %1334, label %1335, label %1497

1335:                                             ; preds = %1328
  %1336 = load ptr, ptr %14, align 8, !tbaa !5
  %1337 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1336, i32 0, i32 3
  %1338 = load i8, ptr %1337, align 1, !tbaa !26
  %1339 = zext i8 %1338 to i32
  %1340 = and i32 %1339, 15
  %1341 = icmp eq i32 0, %1340
  br i1 %1341, label %1342, label %1343

1342:                                             ; preds = %1335
  br label %1495

1343:                                             ; preds = %1335
  %1344 = load ptr, ptr %14, align 8, !tbaa !5
  %1345 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1344, i32 0, i32 3
  %1346 = load i8, ptr %1345, align 1, !tbaa !26
  %1347 = zext i8 %1346 to i32
  %1348 = and i32 %1347, 15
  %1349 = icmp eq i32 1, %1348
  br i1 %1349, label %1350, label %1351

1350:                                             ; preds = %1343
  br label %1493

1351:                                             ; preds = %1343
  %1352 = load ptr, ptr %14, align 8, !tbaa !5
  %1353 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1352, i32 0, i32 3
  %1354 = load i8, ptr %1353, align 1, !tbaa !26
  %1355 = zext i8 %1354 to i32
  %1356 = and i32 %1355, 15
  %1357 = icmp eq i32 2, %1356
  br i1 %1357, label %1358, label %1359

1358:                                             ; preds = %1351
  br label %1491

1359:                                             ; preds = %1351
  %1360 = load ptr, ptr %14, align 8, !tbaa !5
  %1361 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1360, i32 0, i32 3
  %1362 = load i8, ptr %1361, align 1, !tbaa !26
  %1363 = zext i8 %1362 to i32
  %1364 = and i32 %1363, 15
  %1365 = icmp eq i32 3, %1364
  br i1 %1365, label %1366, label %1367

1366:                                             ; preds = %1359
  br label %1489

1367:                                             ; preds = %1359
  %1368 = load ptr, ptr %14, align 8, !tbaa !5
  %1369 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1368, i32 0, i32 3
  %1370 = load i8, ptr %1369, align 1, !tbaa !26
  %1371 = zext i8 %1370 to i32
  %1372 = and i32 %1371, 15
  %1373 = icmp eq i32 4, %1372
  br i1 %1373, label %1374, label %1375

1374:                                             ; preds = %1367
  br label %1487

1375:                                             ; preds = %1367
  %1376 = load ptr, ptr %14, align 8, !tbaa !5
  %1377 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1376, i32 0, i32 3
  %1378 = load i8, ptr %1377, align 1, !tbaa !26
  %1379 = zext i8 %1378 to i32
  %1380 = and i32 %1379, 15
  %1381 = icmp eq i32 5, %1380
  br i1 %1381, label %1382, label %1383

1382:                                             ; preds = %1375
  br label %1485

1383:                                             ; preds = %1375
  %1384 = load ptr, ptr %14, align 8, !tbaa !5
  %1385 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1384, i32 0, i32 3
  %1386 = load i8, ptr %1385, align 1, !tbaa !26
  %1387 = zext i8 %1386 to i32
  %1388 = and i32 %1387, 15
  %1389 = icmp eq i32 6, %1388
  br i1 %1389, label %1390, label %1391

1390:                                             ; preds = %1383
  br label %1483

1391:                                             ; preds = %1383
  %1392 = load ptr, ptr %14, align 8, !tbaa !5
  %1393 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1392, i32 0, i32 3
  %1394 = load i8, ptr %1393, align 1, !tbaa !26
  %1395 = zext i8 %1394 to i32
  %1396 = and i32 %1395, 15
  %1397 = icmp eq i32 7, %1396
  br i1 %1397, label %1398, label %1399

1398:                                             ; preds = %1391
  br label %1481

1399:                                             ; preds = %1391
  %1400 = load ptr, ptr %14, align 8, !tbaa !5
  %1401 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1400, i32 0, i32 3
  %1402 = load i8, ptr %1401, align 1, !tbaa !26
  %1403 = zext i8 %1402 to i32
  %1404 = and i32 %1403, 15
  %1405 = icmp eq i32 8, %1404
  br i1 %1405, label %1406, label %1407

1406:                                             ; preds = %1399
  br label %1479

1407:                                             ; preds = %1399
  %1408 = load ptr, ptr %14, align 8, !tbaa !5
  %1409 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1408, i32 0, i32 3
  %1410 = load i8, ptr %1409, align 1, !tbaa !26
  %1411 = zext i8 %1410 to i32
  %1412 = and i32 %1411, 15
  %1413 = icmp eq i32 9, %1412
  br i1 %1413, label %1414, label %1415

1414:                                             ; preds = %1407
  br label %1477

1415:                                             ; preds = %1407
  %1416 = load ptr, ptr %14, align 8, !tbaa !5
  %1417 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1416, i32 0, i32 3
  %1418 = load i8, ptr %1417, align 1, !tbaa !26
  %1419 = zext i8 %1418 to i32
  %1420 = and i32 %1419, 15
  %1421 = icmp eq i32 10, %1420
  br i1 %1421, label %1422, label %1423

1422:                                             ; preds = %1415
  br label %1475

1423:                                             ; preds = %1415
  %1424 = load ptr, ptr %14, align 8, !tbaa !5
  %1425 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1424, i32 0, i32 3
  %1426 = load i8, ptr %1425, align 1, !tbaa !26
  %1427 = zext i8 %1426 to i32
  %1428 = and i32 %1427, 15
  %1429 = icmp eq i32 11, %1428
  br i1 %1429, label %1430, label %1431

1430:                                             ; preds = %1423
  br label %1473

1431:                                             ; preds = %1423
  %1432 = load ptr, ptr %14, align 8, !tbaa !5
  %1433 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1432, i32 0, i32 3
  %1434 = load i8, ptr %1433, align 1, !tbaa !26
  %1435 = zext i8 %1434 to i32
  %1436 = and i32 %1435, 15
  %1437 = icmp eq i32 12, %1436
  br i1 %1437, label %1438, label %1439

1438:                                             ; preds = %1431
  br label %1471

1439:                                             ; preds = %1431
  %1440 = load ptr, ptr %14, align 8, !tbaa !5
  %1441 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1440, i32 0, i32 3
  %1442 = load i8, ptr %1441, align 1, !tbaa !26
  %1443 = zext i8 %1442 to i32
  %1444 = and i32 %1443, 15
  %1445 = icmp eq i32 13, %1444
  br i1 %1445, label %1446, label %1447

1446:                                             ; preds = %1439
  br label %1469

1447:                                             ; preds = %1439
  %1448 = load ptr, ptr %14, align 8, !tbaa !5
  %1449 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1448, i32 0, i32 3
  %1450 = load i8, ptr %1449, align 1, !tbaa !26
  %1451 = zext i8 %1450 to i32
  %1452 = and i32 %1451, 15
  %1453 = icmp eq i32 14, %1452
  br i1 %1453, label %1454, label %1455

1454:                                             ; preds = %1447
  br label %1467

1455:                                             ; preds = %1447
  %1456 = load ptr, ptr %14, align 8, !tbaa !5
  %1457 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1456, i32 0, i32 3
  %1458 = load i8, ptr %1457, align 1, !tbaa !26
  %1459 = zext i8 %1458 to i32
  %1460 = and i32 %1459, 15
  %1461 = icmp eq i32 15, %1460
  br i1 %1461, label %1462, label %1463

1462:                                             ; preds = %1455
  br label %1465

1463:                                             ; preds = %1455
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 947, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

1464:                                             ; No predecessors!
  br label %1465

1465:                                             ; preds = %1464, %1462
  %1466 = phi i32 [ 15, %1462 ], [ 0, %1464 ]
  br label %1467

1467:                                             ; preds = %1465, %1454
  %1468 = phi i32 [ 14, %1454 ], [ %1466, %1465 ]
  br label %1469

1469:                                             ; preds = %1467, %1446
  %1470 = phi i32 [ 12, %1446 ], [ %1468, %1467 ]
  br label %1471

1471:                                             ; preds = %1469, %1438
  %1472 = phi i32 [ 12, %1438 ], [ %1470, %1469 ]
  br label %1473

1473:                                             ; preds = %1471, %1430
  %1474 = phi i32 [ 10, %1430 ], [ %1472, %1471 ]
  br label %1475

1475:                                             ; preds = %1473, %1422
  %1476 = phi i32 [ 10, %1422 ], [ %1474, %1473 ]
  br label %1477

1477:                                             ; preds = %1475, %1414
  %1478 = phi i32 [ 8, %1414 ], [ %1476, %1475 ]
  br label %1479

1479:                                             ; preds = %1477, %1406
  %1480 = phi i32 [ 8, %1406 ], [ %1478, %1477 ]
  br label %1481

1481:                                             ; preds = %1479, %1398
  %1482 = phi i32 [ 6, %1398 ], [ %1480, %1479 ]
  br label %1483

1483:                                             ; preds = %1481, %1390
  %1484 = phi i32 [ 6, %1390 ], [ %1482, %1481 ]
  br label %1485

1485:                                             ; preds = %1483, %1382
  %1486 = phi i32 [ 5, %1382 ], [ %1484, %1483 ]
  br label %1487

1487:                                             ; preds = %1485, %1374
  %1488 = phi i32 [ 4, %1374 ], [ %1486, %1485 ]
  br label %1489

1489:                                             ; preds = %1487, %1366
  %1490 = phi i32 [ 3, %1366 ], [ %1488, %1487 ]
  br label %1491

1491:                                             ; preds = %1489, %1358
  %1492 = phi i32 [ 2, %1358 ], [ %1490, %1489 ]
  br label %1493

1493:                                             ; preds = %1491, %1350
  %1494 = phi i32 [ 1, %1350 ], [ %1492, %1491 ]
  br label %1495

1495:                                             ; preds = %1493, %1342
  %1496 = phi i32 [ 0, %1342 ], [ %1494, %1493 ]
  br label %1503

1497:                                             ; preds = %1328
  %1498 = load ptr, ptr %14, align 8, !tbaa !5
  %1499 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1498, i32 0, i32 3
  %1500 = load i8, ptr %1499, align 1, !tbaa !26
  %1501 = zext i8 %1500 to i32
  %1502 = ashr i32 %1501, 4
  br label %1503

1503:                                             ; preds = %1497, %1495
  %1504 = phi i32 [ %1496, %1495 ], [ %1502, %1497 ]
  %1505 = icmp eq i32 7, %1504
  br i1 %1505, label %1506, label %1507

1506:                                             ; preds = %1503
  br label %2595

1507:                                             ; preds = %1503
  %1508 = load ptr, ptr %14, align 8, !tbaa !5
  %1509 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1508, i32 0, i32 3
  %1510 = load i8, ptr %1509, align 1, !tbaa !26
  %1511 = zext i8 %1510 to i32
  %1512 = ashr i32 %1511, 4
  %1513 = icmp eq i32 0, %1512
  br i1 %1513, label %1514, label %1676

1514:                                             ; preds = %1507
  %1515 = load ptr, ptr %14, align 8, !tbaa !5
  %1516 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1515, i32 0, i32 3
  %1517 = load i8, ptr %1516, align 1, !tbaa !26
  %1518 = zext i8 %1517 to i32
  %1519 = and i32 %1518, 15
  %1520 = icmp eq i32 0, %1519
  br i1 %1520, label %1521, label %1522

1521:                                             ; preds = %1514
  br label %1674

1522:                                             ; preds = %1514
  %1523 = load ptr, ptr %14, align 8, !tbaa !5
  %1524 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1523, i32 0, i32 3
  %1525 = load i8, ptr %1524, align 1, !tbaa !26
  %1526 = zext i8 %1525 to i32
  %1527 = and i32 %1526, 15
  %1528 = icmp eq i32 1, %1527
  br i1 %1528, label %1529, label %1530

1529:                                             ; preds = %1522
  br label %1672

1530:                                             ; preds = %1522
  %1531 = load ptr, ptr %14, align 8, !tbaa !5
  %1532 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1531, i32 0, i32 3
  %1533 = load i8, ptr %1532, align 1, !tbaa !26
  %1534 = zext i8 %1533 to i32
  %1535 = and i32 %1534, 15
  %1536 = icmp eq i32 2, %1535
  br i1 %1536, label %1537, label %1538

1537:                                             ; preds = %1530
  br label %1670

1538:                                             ; preds = %1530
  %1539 = load ptr, ptr %14, align 8, !tbaa !5
  %1540 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1539, i32 0, i32 3
  %1541 = load i8, ptr %1540, align 1, !tbaa !26
  %1542 = zext i8 %1541 to i32
  %1543 = and i32 %1542, 15
  %1544 = icmp eq i32 3, %1543
  br i1 %1544, label %1545, label %1546

1545:                                             ; preds = %1538
  br label %1668

1546:                                             ; preds = %1538
  %1547 = load ptr, ptr %14, align 8, !tbaa !5
  %1548 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1547, i32 0, i32 3
  %1549 = load i8, ptr %1548, align 1, !tbaa !26
  %1550 = zext i8 %1549 to i32
  %1551 = and i32 %1550, 15
  %1552 = icmp eq i32 4, %1551
  br i1 %1552, label %1553, label %1554

1553:                                             ; preds = %1546
  br label %1666

1554:                                             ; preds = %1546
  %1555 = load ptr, ptr %14, align 8, !tbaa !5
  %1556 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1555, i32 0, i32 3
  %1557 = load i8, ptr %1556, align 1, !tbaa !26
  %1558 = zext i8 %1557 to i32
  %1559 = and i32 %1558, 15
  %1560 = icmp eq i32 5, %1559
  br i1 %1560, label %1561, label %1562

1561:                                             ; preds = %1554
  br label %1664

1562:                                             ; preds = %1554
  %1563 = load ptr, ptr %14, align 8, !tbaa !5
  %1564 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1563, i32 0, i32 3
  %1565 = load i8, ptr %1564, align 1, !tbaa !26
  %1566 = zext i8 %1565 to i32
  %1567 = and i32 %1566, 15
  %1568 = icmp eq i32 6, %1567
  br i1 %1568, label %1569, label %1570

1569:                                             ; preds = %1562
  br label %1662

1570:                                             ; preds = %1562
  %1571 = load ptr, ptr %14, align 8, !tbaa !5
  %1572 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1571, i32 0, i32 3
  %1573 = load i8, ptr %1572, align 1, !tbaa !26
  %1574 = zext i8 %1573 to i32
  %1575 = and i32 %1574, 15
  %1576 = icmp eq i32 7, %1575
  br i1 %1576, label %1577, label %1578

1577:                                             ; preds = %1570
  br label %1660

1578:                                             ; preds = %1570
  %1579 = load ptr, ptr %14, align 8, !tbaa !5
  %1580 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1579, i32 0, i32 3
  %1581 = load i8, ptr %1580, align 1, !tbaa !26
  %1582 = zext i8 %1581 to i32
  %1583 = and i32 %1582, 15
  %1584 = icmp eq i32 8, %1583
  br i1 %1584, label %1585, label %1586

1585:                                             ; preds = %1578
  br label %1658

1586:                                             ; preds = %1578
  %1587 = load ptr, ptr %14, align 8, !tbaa !5
  %1588 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1587, i32 0, i32 3
  %1589 = load i8, ptr %1588, align 1, !tbaa !26
  %1590 = zext i8 %1589 to i32
  %1591 = and i32 %1590, 15
  %1592 = icmp eq i32 9, %1591
  br i1 %1592, label %1593, label %1594

1593:                                             ; preds = %1586
  br label %1656

1594:                                             ; preds = %1586
  %1595 = load ptr, ptr %14, align 8, !tbaa !5
  %1596 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1595, i32 0, i32 3
  %1597 = load i8, ptr %1596, align 1, !tbaa !26
  %1598 = zext i8 %1597 to i32
  %1599 = and i32 %1598, 15
  %1600 = icmp eq i32 10, %1599
  br i1 %1600, label %1601, label %1602

1601:                                             ; preds = %1594
  br label %1654

1602:                                             ; preds = %1594
  %1603 = load ptr, ptr %14, align 8, !tbaa !5
  %1604 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1603, i32 0, i32 3
  %1605 = load i8, ptr %1604, align 1, !tbaa !26
  %1606 = zext i8 %1605 to i32
  %1607 = and i32 %1606, 15
  %1608 = icmp eq i32 11, %1607
  br i1 %1608, label %1609, label %1610

1609:                                             ; preds = %1602
  br label %1652

1610:                                             ; preds = %1602
  %1611 = load ptr, ptr %14, align 8, !tbaa !5
  %1612 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1611, i32 0, i32 3
  %1613 = load i8, ptr %1612, align 1, !tbaa !26
  %1614 = zext i8 %1613 to i32
  %1615 = and i32 %1614, 15
  %1616 = icmp eq i32 12, %1615
  br i1 %1616, label %1617, label %1618

1617:                                             ; preds = %1610
  br label %1650

1618:                                             ; preds = %1610
  %1619 = load ptr, ptr %14, align 8, !tbaa !5
  %1620 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1619, i32 0, i32 3
  %1621 = load i8, ptr %1620, align 1, !tbaa !26
  %1622 = zext i8 %1621 to i32
  %1623 = and i32 %1622, 15
  %1624 = icmp eq i32 13, %1623
  br i1 %1624, label %1625, label %1626

1625:                                             ; preds = %1618
  br label %1648

1626:                                             ; preds = %1618
  %1627 = load ptr, ptr %14, align 8, !tbaa !5
  %1628 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1627, i32 0, i32 3
  %1629 = load i8, ptr %1628, align 1, !tbaa !26
  %1630 = zext i8 %1629 to i32
  %1631 = and i32 %1630, 15
  %1632 = icmp eq i32 14, %1631
  br i1 %1632, label %1633, label %1634

1633:                                             ; preds = %1626
  br label %1646

1634:                                             ; preds = %1626
  %1635 = load ptr, ptr %14, align 8, !tbaa !5
  %1636 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1635, i32 0, i32 3
  %1637 = load i8, ptr %1636, align 1, !tbaa !26
  %1638 = zext i8 %1637 to i32
  %1639 = and i32 %1638, 15
  %1640 = icmp eq i32 15, %1639
  br i1 %1640, label %1641, label %1642

1641:                                             ; preds = %1634
  br label %1644

1642:                                             ; preds = %1634
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 947, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

1643:                                             ; No predecessors!
  br label %1644

1644:                                             ; preds = %1643, %1641
  %1645 = phi i32 [ 15, %1641 ], [ 0, %1643 ]
  br label %1646

1646:                                             ; preds = %1644, %1633
  %1647 = phi i32 [ 14, %1633 ], [ %1645, %1644 ]
  br label %1648

1648:                                             ; preds = %1646, %1625
  %1649 = phi i32 [ 12, %1625 ], [ %1647, %1646 ]
  br label %1650

1650:                                             ; preds = %1648, %1617
  %1651 = phi i32 [ 12, %1617 ], [ %1649, %1648 ]
  br label %1652

1652:                                             ; preds = %1650, %1609
  %1653 = phi i32 [ 10, %1609 ], [ %1651, %1650 ]
  br label %1654

1654:                                             ; preds = %1652, %1601
  %1655 = phi i32 [ 10, %1601 ], [ %1653, %1652 ]
  br label %1656

1656:                                             ; preds = %1654, %1593
  %1657 = phi i32 [ 8, %1593 ], [ %1655, %1654 ]
  br label %1658

1658:                                             ; preds = %1656, %1585
  %1659 = phi i32 [ 8, %1585 ], [ %1657, %1656 ]
  br label %1660

1660:                                             ; preds = %1658, %1577
  %1661 = phi i32 [ 6, %1577 ], [ %1659, %1658 ]
  br label %1662

1662:                                             ; preds = %1660, %1569
  %1663 = phi i32 [ 6, %1569 ], [ %1661, %1660 ]
  br label %1664

1664:                                             ; preds = %1662, %1561
  %1665 = phi i32 [ 5, %1561 ], [ %1663, %1662 ]
  br label %1666

1666:                                             ; preds = %1664, %1553
  %1667 = phi i32 [ 4, %1553 ], [ %1665, %1664 ]
  br label %1668

1668:                                             ; preds = %1666, %1545
  %1669 = phi i32 [ 3, %1545 ], [ %1667, %1666 ]
  br label %1670

1670:                                             ; preds = %1668, %1537
  %1671 = phi i32 [ 2, %1537 ], [ %1669, %1668 ]
  br label %1672

1672:                                             ; preds = %1670, %1529
  %1673 = phi i32 [ 1, %1529 ], [ %1671, %1670 ]
  br label %1674

1674:                                             ; preds = %1672, %1521
  %1675 = phi i32 [ 0, %1521 ], [ %1673, %1672 ]
  br label %1682

1676:                                             ; preds = %1507
  %1677 = load ptr, ptr %14, align 8, !tbaa !5
  %1678 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1677, i32 0, i32 3
  %1679 = load i8, ptr %1678, align 1, !tbaa !26
  %1680 = zext i8 %1679 to i32
  %1681 = ashr i32 %1680, 4
  br label %1682

1682:                                             ; preds = %1676, %1674
  %1683 = phi i32 [ %1675, %1674 ], [ %1681, %1676 ]
  %1684 = icmp eq i32 8, %1683
  br i1 %1684, label %1685, label %1686

1685:                                             ; preds = %1682
  br label %2593

1686:                                             ; preds = %1682
  %1687 = load ptr, ptr %14, align 8, !tbaa !5
  %1688 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1687, i32 0, i32 3
  %1689 = load i8, ptr %1688, align 1, !tbaa !26
  %1690 = zext i8 %1689 to i32
  %1691 = ashr i32 %1690, 4
  %1692 = icmp eq i32 0, %1691
  br i1 %1692, label %1693, label %1855

1693:                                             ; preds = %1686
  %1694 = load ptr, ptr %14, align 8, !tbaa !5
  %1695 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1694, i32 0, i32 3
  %1696 = load i8, ptr %1695, align 1, !tbaa !26
  %1697 = zext i8 %1696 to i32
  %1698 = and i32 %1697, 15
  %1699 = icmp eq i32 0, %1698
  br i1 %1699, label %1700, label %1701

1700:                                             ; preds = %1693
  br label %1853

1701:                                             ; preds = %1693
  %1702 = load ptr, ptr %14, align 8, !tbaa !5
  %1703 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1702, i32 0, i32 3
  %1704 = load i8, ptr %1703, align 1, !tbaa !26
  %1705 = zext i8 %1704 to i32
  %1706 = and i32 %1705, 15
  %1707 = icmp eq i32 1, %1706
  br i1 %1707, label %1708, label %1709

1708:                                             ; preds = %1701
  br label %1851

1709:                                             ; preds = %1701
  %1710 = load ptr, ptr %14, align 8, !tbaa !5
  %1711 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1710, i32 0, i32 3
  %1712 = load i8, ptr %1711, align 1, !tbaa !26
  %1713 = zext i8 %1712 to i32
  %1714 = and i32 %1713, 15
  %1715 = icmp eq i32 2, %1714
  br i1 %1715, label %1716, label %1717

1716:                                             ; preds = %1709
  br label %1849

1717:                                             ; preds = %1709
  %1718 = load ptr, ptr %14, align 8, !tbaa !5
  %1719 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1718, i32 0, i32 3
  %1720 = load i8, ptr %1719, align 1, !tbaa !26
  %1721 = zext i8 %1720 to i32
  %1722 = and i32 %1721, 15
  %1723 = icmp eq i32 3, %1722
  br i1 %1723, label %1724, label %1725

1724:                                             ; preds = %1717
  br label %1847

1725:                                             ; preds = %1717
  %1726 = load ptr, ptr %14, align 8, !tbaa !5
  %1727 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1726, i32 0, i32 3
  %1728 = load i8, ptr %1727, align 1, !tbaa !26
  %1729 = zext i8 %1728 to i32
  %1730 = and i32 %1729, 15
  %1731 = icmp eq i32 4, %1730
  br i1 %1731, label %1732, label %1733

1732:                                             ; preds = %1725
  br label %1845

1733:                                             ; preds = %1725
  %1734 = load ptr, ptr %14, align 8, !tbaa !5
  %1735 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1734, i32 0, i32 3
  %1736 = load i8, ptr %1735, align 1, !tbaa !26
  %1737 = zext i8 %1736 to i32
  %1738 = and i32 %1737, 15
  %1739 = icmp eq i32 5, %1738
  br i1 %1739, label %1740, label %1741

1740:                                             ; preds = %1733
  br label %1843

1741:                                             ; preds = %1733
  %1742 = load ptr, ptr %14, align 8, !tbaa !5
  %1743 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1742, i32 0, i32 3
  %1744 = load i8, ptr %1743, align 1, !tbaa !26
  %1745 = zext i8 %1744 to i32
  %1746 = and i32 %1745, 15
  %1747 = icmp eq i32 6, %1746
  br i1 %1747, label %1748, label %1749

1748:                                             ; preds = %1741
  br label %1841

1749:                                             ; preds = %1741
  %1750 = load ptr, ptr %14, align 8, !tbaa !5
  %1751 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1750, i32 0, i32 3
  %1752 = load i8, ptr %1751, align 1, !tbaa !26
  %1753 = zext i8 %1752 to i32
  %1754 = and i32 %1753, 15
  %1755 = icmp eq i32 7, %1754
  br i1 %1755, label %1756, label %1757

1756:                                             ; preds = %1749
  br label %1839

1757:                                             ; preds = %1749
  %1758 = load ptr, ptr %14, align 8, !tbaa !5
  %1759 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1758, i32 0, i32 3
  %1760 = load i8, ptr %1759, align 1, !tbaa !26
  %1761 = zext i8 %1760 to i32
  %1762 = and i32 %1761, 15
  %1763 = icmp eq i32 8, %1762
  br i1 %1763, label %1764, label %1765

1764:                                             ; preds = %1757
  br label %1837

1765:                                             ; preds = %1757
  %1766 = load ptr, ptr %14, align 8, !tbaa !5
  %1767 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1766, i32 0, i32 3
  %1768 = load i8, ptr %1767, align 1, !tbaa !26
  %1769 = zext i8 %1768 to i32
  %1770 = and i32 %1769, 15
  %1771 = icmp eq i32 9, %1770
  br i1 %1771, label %1772, label %1773

1772:                                             ; preds = %1765
  br label %1835

1773:                                             ; preds = %1765
  %1774 = load ptr, ptr %14, align 8, !tbaa !5
  %1775 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1774, i32 0, i32 3
  %1776 = load i8, ptr %1775, align 1, !tbaa !26
  %1777 = zext i8 %1776 to i32
  %1778 = and i32 %1777, 15
  %1779 = icmp eq i32 10, %1778
  br i1 %1779, label %1780, label %1781

1780:                                             ; preds = %1773
  br label %1833

1781:                                             ; preds = %1773
  %1782 = load ptr, ptr %14, align 8, !tbaa !5
  %1783 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1782, i32 0, i32 3
  %1784 = load i8, ptr %1783, align 1, !tbaa !26
  %1785 = zext i8 %1784 to i32
  %1786 = and i32 %1785, 15
  %1787 = icmp eq i32 11, %1786
  br i1 %1787, label %1788, label %1789

1788:                                             ; preds = %1781
  br label %1831

1789:                                             ; preds = %1781
  %1790 = load ptr, ptr %14, align 8, !tbaa !5
  %1791 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1790, i32 0, i32 3
  %1792 = load i8, ptr %1791, align 1, !tbaa !26
  %1793 = zext i8 %1792 to i32
  %1794 = and i32 %1793, 15
  %1795 = icmp eq i32 12, %1794
  br i1 %1795, label %1796, label %1797

1796:                                             ; preds = %1789
  br label %1829

1797:                                             ; preds = %1789
  %1798 = load ptr, ptr %14, align 8, !tbaa !5
  %1799 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1798, i32 0, i32 3
  %1800 = load i8, ptr %1799, align 1, !tbaa !26
  %1801 = zext i8 %1800 to i32
  %1802 = and i32 %1801, 15
  %1803 = icmp eq i32 13, %1802
  br i1 %1803, label %1804, label %1805

1804:                                             ; preds = %1797
  br label %1827

1805:                                             ; preds = %1797
  %1806 = load ptr, ptr %14, align 8, !tbaa !5
  %1807 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1806, i32 0, i32 3
  %1808 = load i8, ptr %1807, align 1, !tbaa !26
  %1809 = zext i8 %1808 to i32
  %1810 = and i32 %1809, 15
  %1811 = icmp eq i32 14, %1810
  br i1 %1811, label %1812, label %1813

1812:                                             ; preds = %1805
  br label %1825

1813:                                             ; preds = %1805
  %1814 = load ptr, ptr %14, align 8, !tbaa !5
  %1815 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1814, i32 0, i32 3
  %1816 = load i8, ptr %1815, align 1, !tbaa !26
  %1817 = zext i8 %1816 to i32
  %1818 = and i32 %1817, 15
  %1819 = icmp eq i32 15, %1818
  br i1 %1819, label %1820, label %1821

1820:                                             ; preds = %1813
  br label %1823

1821:                                             ; preds = %1813
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 947, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

1822:                                             ; No predecessors!
  br label %1823

1823:                                             ; preds = %1822, %1820
  %1824 = phi i32 [ 15, %1820 ], [ 0, %1822 ]
  br label %1825

1825:                                             ; preds = %1823, %1812
  %1826 = phi i32 [ 14, %1812 ], [ %1824, %1823 ]
  br label %1827

1827:                                             ; preds = %1825, %1804
  %1828 = phi i32 [ 12, %1804 ], [ %1826, %1825 ]
  br label %1829

1829:                                             ; preds = %1827, %1796
  %1830 = phi i32 [ 12, %1796 ], [ %1828, %1827 ]
  br label %1831

1831:                                             ; preds = %1829, %1788
  %1832 = phi i32 [ 10, %1788 ], [ %1830, %1829 ]
  br label %1833

1833:                                             ; preds = %1831, %1780
  %1834 = phi i32 [ 10, %1780 ], [ %1832, %1831 ]
  br label %1835

1835:                                             ; preds = %1833, %1772
  %1836 = phi i32 [ 8, %1772 ], [ %1834, %1833 ]
  br label %1837

1837:                                             ; preds = %1835, %1764
  %1838 = phi i32 [ 8, %1764 ], [ %1836, %1835 ]
  br label %1839

1839:                                             ; preds = %1837, %1756
  %1840 = phi i32 [ 6, %1756 ], [ %1838, %1837 ]
  br label %1841

1841:                                             ; preds = %1839, %1748
  %1842 = phi i32 [ 6, %1748 ], [ %1840, %1839 ]
  br label %1843

1843:                                             ; preds = %1841, %1740
  %1844 = phi i32 [ 5, %1740 ], [ %1842, %1841 ]
  br label %1845

1845:                                             ; preds = %1843, %1732
  %1846 = phi i32 [ 4, %1732 ], [ %1844, %1843 ]
  br label %1847

1847:                                             ; preds = %1845, %1724
  %1848 = phi i32 [ 3, %1724 ], [ %1846, %1845 ]
  br label %1849

1849:                                             ; preds = %1847, %1716
  %1850 = phi i32 [ 2, %1716 ], [ %1848, %1847 ]
  br label %1851

1851:                                             ; preds = %1849, %1708
  %1852 = phi i32 [ 1, %1708 ], [ %1850, %1849 ]
  br label %1853

1853:                                             ; preds = %1851, %1700
  %1854 = phi i32 [ 0, %1700 ], [ %1852, %1851 ]
  br label %1861

1855:                                             ; preds = %1686
  %1856 = load ptr, ptr %14, align 8, !tbaa !5
  %1857 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1856, i32 0, i32 3
  %1858 = load i8, ptr %1857, align 1, !tbaa !26
  %1859 = zext i8 %1858 to i32
  %1860 = ashr i32 %1859, 4
  br label %1861

1861:                                             ; preds = %1855, %1853
  %1862 = phi i32 [ %1854, %1853 ], [ %1860, %1855 ]
  %1863 = icmp eq i32 9, %1862
  br i1 %1863, label %1864, label %1865

1864:                                             ; preds = %1861
  br label %2591

1865:                                             ; preds = %1861
  %1866 = load ptr, ptr %14, align 8, !tbaa !5
  %1867 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1866, i32 0, i32 3
  %1868 = load i8, ptr %1867, align 1, !tbaa !26
  %1869 = zext i8 %1868 to i32
  %1870 = ashr i32 %1869, 4
  %1871 = icmp eq i32 0, %1870
  br i1 %1871, label %1872, label %2034

1872:                                             ; preds = %1865
  %1873 = load ptr, ptr %14, align 8, !tbaa !5
  %1874 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1873, i32 0, i32 3
  %1875 = load i8, ptr %1874, align 1, !tbaa !26
  %1876 = zext i8 %1875 to i32
  %1877 = and i32 %1876, 15
  %1878 = icmp eq i32 0, %1877
  br i1 %1878, label %1879, label %1880

1879:                                             ; preds = %1872
  br label %2032

1880:                                             ; preds = %1872
  %1881 = load ptr, ptr %14, align 8, !tbaa !5
  %1882 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1881, i32 0, i32 3
  %1883 = load i8, ptr %1882, align 1, !tbaa !26
  %1884 = zext i8 %1883 to i32
  %1885 = and i32 %1884, 15
  %1886 = icmp eq i32 1, %1885
  br i1 %1886, label %1887, label %1888

1887:                                             ; preds = %1880
  br label %2030

1888:                                             ; preds = %1880
  %1889 = load ptr, ptr %14, align 8, !tbaa !5
  %1890 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1889, i32 0, i32 3
  %1891 = load i8, ptr %1890, align 1, !tbaa !26
  %1892 = zext i8 %1891 to i32
  %1893 = and i32 %1892, 15
  %1894 = icmp eq i32 2, %1893
  br i1 %1894, label %1895, label %1896

1895:                                             ; preds = %1888
  br label %2028

1896:                                             ; preds = %1888
  %1897 = load ptr, ptr %14, align 8, !tbaa !5
  %1898 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1897, i32 0, i32 3
  %1899 = load i8, ptr %1898, align 1, !tbaa !26
  %1900 = zext i8 %1899 to i32
  %1901 = and i32 %1900, 15
  %1902 = icmp eq i32 3, %1901
  br i1 %1902, label %1903, label %1904

1903:                                             ; preds = %1896
  br label %2026

1904:                                             ; preds = %1896
  %1905 = load ptr, ptr %14, align 8, !tbaa !5
  %1906 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1905, i32 0, i32 3
  %1907 = load i8, ptr %1906, align 1, !tbaa !26
  %1908 = zext i8 %1907 to i32
  %1909 = and i32 %1908, 15
  %1910 = icmp eq i32 4, %1909
  br i1 %1910, label %1911, label %1912

1911:                                             ; preds = %1904
  br label %2024

1912:                                             ; preds = %1904
  %1913 = load ptr, ptr %14, align 8, !tbaa !5
  %1914 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1913, i32 0, i32 3
  %1915 = load i8, ptr %1914, align 1, !tbaa !26
  %1916 = zext i8 %1915 to i32
  %1917 = and i32 %1916, 15
  %1918 = icmp eq i32 5, %1917
  br i1 %1918, label %1919, label %1920

1919:                                             ; preds = %1912
  br label %2022

1920:                                             ; preds = %1912
  %1921 = load ptr, ptr %14, align 8, !tbaa !5
  %1922 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1921, i32 0, i32 3
  %1923 = load i8, ptr %1922, align 1, !tbaa !26
  %1924 = zext i8 %1923 to i32
  %1925 = and i32 %1924, 15
  %1926 = icmp eq i32 6, %1925
  br i1 %1926, label %1927, label %1928

1927:                                             ; preds = %1920
  br label %2020

1928:                                             ; preds = %1920
  %1929 = load ptr, ptr %14, align 8, !tbaa !5
  %1930 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1929, i32 0, i32 3
  %1931 = load i8, ptr %1930, align 1, !tbaa !26
  %1932 = zext i8 %1931 to i32
  %1933 = and i32 %1932, 15
  %1934 = icmp eq i32 7, %1933
  br i1 %1934, label %1935, label %1936

1935:                                             ; preds = %1928
  br label %2018

1936:                                             ; preds = %1928
  %1937 = load ptr, ptr %14, align 8, !tbaa !5
  %1938 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1937, i32 0, i32 3
  %1939 = load i8, ptr %1938, align 1, !tbaa !26
  %1940 = zext i8 %1939 to i32
  %1941 = and i32 %1940, 15
  %1942 = icmp eq i32 8, %1941
  br i1 %1942, label %1943, label %1944

1943:                                             ; preds = %1936
  br label %2016

1944:                                             ; preds = %1936
  %1945 = load ptr, ptr %14, align 8, !tbaa !5
  %1946 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1945, i32 0, i32 3
  %1947 = load i8, ptr %1946, align 1, !tbaa !26
  %1948 = zext i8 %1947 to i32
  %1949 = and i32 %1948, 15
  %1950 = icmp eq i32 9, %1949
  br i1 %1950, label %1951, label %1952

1951:                                             ; preds = %1944
  br label %2014

1952:                                             ; preds = %1944
  %1953 = load ptr, ptr %14, align 8, !tbaa !5
  %1954 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1953, i32 0, i32 3
  %1955 = load i8, ptr %1954, align 1, !tbaa !26
  %1956 = zext i8 %1955 to i32
  %1957 = and i32 %1956, 15
  %1958 = icmp eq i32 10, %1957
  br i1 %1958, label %1959, label %1960

1959:                                             ; preds = %1952
  br label %2012

1960:                                             ; preds = %1952
  %1961 = load ptr, ptr %14, align 8, !tbaa !5
  %1962 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1961, i32 0, i32 3
  %1963 = load i8, ptr %1962, align 1, !tbaa !26
  %1964 = zext i8 %1963 to i32
  %1965 = and i32 %1964, 15
  %1966 = icmp eq i32 11, %1965
  br i1 %1966, label %1967, label %1968

1967:                                             ; preds = %1960
  br label %2010

1968:                                             ; preds = %1960
  %1969 = load ptr, ptr %14, align 8, !tbaa !5
  %1970 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1969, i32 0, i32 3
  %1971 = load i8, ptr %1970, align 1, !tbaa !26
  %1972 = zext i8 %1971 to i32
  %1973 = and i32 %1972, 15
  %1974 = icmp eq i32 12, %1973
  br i1 %1974, label %1975, label %1976

1975:                                             ; preds = %1968
  br label %2008

1976:                                             ; preds = %1968
  %1977 = load ptr, ptr %14, align 8, !tbaa !5
  %1978 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1977, i32 0, i32 3
  %1979 = load i8, ptr %1978, align 1, !tbaa !26
  %1980 = zext i8 %1979 to i32
  %1981 = and i32 %1980, 15
  %1982 = icmp eq i32 13, %1981
  br i1 %1982, label %1983, label %1984

1983:                                             ; preds = %1976
  br label %2006

1984:                                             ; preds = %1976
  %1985 = load ptr, ptr %14, align 8, !tbaa !5
  %1986 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1985, i32 0, i32 3
  %1987 = load i8, ptr %1986, align 1, !tbaa !26
  %1988 = zext i8 %1987 to i32
  %1989 = and i32 %1988, 15
  %1990 = icmp eq i32 14, %1989
  br i1 %1990, label %1991, label %1992

1991:                                             ; preds = %1984
  br label %2004

1992:                                             ; preds = %1984
  %1993 = load ptr, ptr %14, align 8, !tbaa !5
  %1994 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1993, i32 0, i32 3
  %1995 = load i8, ptr %1994, align 1, !tbaa !26
  %1996 = zext i8 %1995 to i32
  %1997 = and i32 %1996, 15
  %1998 = icmp eq i32 15, %1997
  br i1 %1998, label %1999, label %2000

1999:                                             ; preds = %1992
  br label %2002

2000:                                             ; preds = %1992
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 947, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

2001:                                             ; No predecessors!
  br label %2002

2002:                                             ; preds = %2001, %1999
  %2003 = phi i32 [ 15, %1999 ], [ 0, %2001 ]
  br label %2004

2004:                                             ; preds = %2002, %1991
  %2005 = phi i32 [ 14, %1991 ], [ %2003, %2002 ]
  br label %2006

2006:                                             ; preds = %2004, %1983
  %2007 = phi i32 [ 12, %1983 ], [ %2005, %2004 ]
  br label %2008

2008:                                             ; preds = %2006, %1975
  %2009 = phi i32 [ 12, %1975 ], [ %2007, %2006 ]
  br label %2010

2010:                                             ; preds = %2008, %1967
  %2011 = phi i32 [ 10, %1967 ], [ %2009, %2008 ]
  br label %2012

2012:                                             ; preds = %2010, %1959
  %2013 = phi i32 [ 10, %1959 ], [ %2011, %2010 ]
  br label %2014

2014:                                             ; preds = %2012, %1951
  %2015 = phi i32 [ 8, %1951 ], [ %2013, %2012 ]
  br label %2016

2016:                                             ; preds = %2014, %1943
  %2017 = phi i32 [ 8, %1943 ], [ %2015, %2014 ]
  br label %2018

2018:                                             ; preds = %2016, %1935
  %2019 = phi i32 [ 6, %1935 ], [ %2017, %2016 ]
  br label %2020

2020:                                             ; preds = %2018, %1927
  %2021 = phi i32 [ 6, %1927 ], [ %2019, %2018 ]
  br label %2022

2022:                                             ; preds = %2020, %1919
  %2023 = phi i32 [ 5, %1919 ], [ %2021, %2020 ]
  br label %2024

2024:                                             ; preds = %2022, %1911
  %2025 = phi i32 [ 4, %1911 ], [ %2023, %2022 ]
  br label %2026

2026:                                             ; preds = %2024, %1903
  %2027 = phi i32 [ 3, %1903 ], [ %2025, %2024 ]
  br label %2028

2028:                                             ; preds = %2026, %1895
  %2029 = phi i32 [ 2, %1895 ], [ %2027, %2026 ]
  br label %2030

2030:                                             ; preds = %2028, %1887
  %2031 = phi i32 [ 1, %1887 ], [ %2029, %2028 ]
  br label %2032

2032:                                             ; preds = %2030, %1879
  %2033 = phi i32 [ 0, %1879 ], [ %2031, %2030 ]
  br label %2040

2034:                                             ; preds = %1865
  %2035 = load ptr, ptr %14, align 8, !tbaa !5
  %2036 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2035, i32 0, i32 3
  %2037 = load i8, ptr %2036, align 1, !tbaa !26
  %2038 = zext i8 %2037 to i32
  %2039 = ashr i32 %2038, 4
  br label %2040

2040:                                             ; preds = %2034, %2032
  %2041 = phi i32 [ %2033, %2032 ], [ %2039, %2034 ]
  %2042 = icmp eq i32 10, %2041
  br i1 %2042, label %2043, label %2044

2043:                                             ; preds = %2040
  br label %2589

2044:                                             ; preds = %2040
  %2045 = load ptr, ptr %14, align 8, !tbaa !5
  %2046 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2045, i32 0, i32 3
  %2047 = load i8, ptr %2046, align 1, !tbaa !26
  %2048 = zext i8 %2047 to i32
  %2049 = ashr i32 %2048, 4
  %2050 = icmp eq i32 0, %2049
  br i1 %2050, label %2051, label %2213

2051:                                             ; preds = %2044
  %2052 = load ptr, ptr %14, align 8, !tbaa !5
  %2053 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2052, i32 0, i32 3
  %2054 = load i8, ptr %2053, align 1, !tbaa !26
  %2055 = zext i8 %2054 to i32
  %2056 = and i32 %2055, 15
  %2057 = icmp eq i32 0, %2056
  br i1 %2057, label %2058, label %2059

2058:                                             ; preds = %2051
  br label %2211

2059:                                             ; preds = %2051
  %2060 = load ptr, ptr %14, align 8, !tbaa !5
  %2061 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2060, i32 0, i32 3
  %2062 = load i8, ptr %2061, align 1, !tbaa !26
  %2063 = zext i8 %2062 to i32
  %2064 = and i32 %2063, 15
  %2065 = icmp eq i32 1, %2064
  br i1 %2065, label %2066, label %2067

2066:                                             ; preds = %2059
  br label %2209

2067:                                             ; preds = %2059
  %2068 = load ptr, ptr %14, align 8, !tbaa !5
  %2069 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2068, i32 0, i32 3
  %2070 = load i8, ptr %2069, align 1, !tbaa !26
  %2071 = zext i8 %2070 to i32
  %2072 = and i32 %2071, 15
  %2073 = icmp eq i32 2, %2072
  br i1 %2073, label %2074, label %2075

2074:                                             ; preds = %2067
  br label %2207

2075:                                             ; preds = %2067
  %2076 = load ptr, ptr %14, align 8, !tbaa !5
  %2077 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2076, i32 0, i32 3
  %2078 = load i8, ptr %2077, align 1, !tbaa !26
  %2079 = zext i8 %2078 to i32
  %2080 = and i32 %2079, 15
  %2081 = icmp eq i32 3, %2080
  br i1 %2081, label %2082, label %2083

2082:                                             ; preds = %2075
  br label %2205

2083:                                             ; preds = %2075
  %2084 = load ptr, ptr %14, align 8, !tbaa !5
  %2085 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2084, i32 0, i32 3
  %2086 = load i8, ptr %2085, align 1, !tbaa !26
  %2087 = zext i8 %2086 to i32
  %2088 = and i32 %2087, 15
  %2089 = icmp eq i32 4, %2088
  br i1 %2089, label %2090, label %2091

2090:                                             ; preds = %2083
  br label %2203

2091:                                             ; preds = %2083
  %2092 = load ptr, ptr %14, align 8, !tbaa !5
  %2093 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2092, i32 0, i32 3
  %2094 = load i8, ptr %2093, align 1, !tbaa !26
  %2095 = zext i8 %2094 to i32
  %2096 = and i32 %2095, 15
  %2097 = icmp eq i32 5, %2096
  br i1 %2097, label %2098, label %2099

2098:                                             ; preds = %2091
  br label %2201

2099:                                             ; preds = %2091
  %2100 = load ptr, ptr %14, align 8, !tbaa !5
  %2101 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2100, i32 0, i32 3
  %2102 = load i8, ptr %2101, align 1, !tbaa !26
  %2103 = zext i8 %2102 to i32
  %2104 = and i32 %2103, 15
  %2105 = icmp eq i32 6, %2104
  br i1 %2105, label %2106, label %2107

2106:                                             ; preds = %2099
  br label %2199

2107:                                             ; preds = %2099
  %2108 = load ptr, ptr %14, align 8, !tbaa !5
  %2109 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2108, i32 0, i32 3
  %2110 = load i8, ptr %2109, align 1, !tbaa !26
  %2111 = zext i8 %2110 to i32
  %2112 = and i32 %2111, 15
  %2113 = icmp eq i32 7, %2112
  br i1 %2113, label %2114, label %2115

2114:                                             ; preds = %2107
  br label %2197

2115:                                             ; preds = %2107
  %2116 = load ptr, ptr %14, align 8, !tbaa !5
  %2117 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2116, i32 0, i32 3
  %2118 = load i8, ptr %2117, align 1, !tbaa !26
  %2119 = zext i8 %2118 to i32
  %2120 = and i32 %2119, 15
  %2121 = icmp eq i32 8, %2120
  br i1 %2121, label %2122, label %2123

2122:                                             ; preds = %2115
  br label %2195

2123:                                             ; preds = %2115
  %2124 = load ptr, ptr %14, align 8, !tbaa !5
  %2125 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2124, i32 0, i32 3
  %2126 = load i8, ptr %2125, align 1, !tbaa !26
  %2127 = zext i8 %2126 to i32
  %2128 = and i32 %2127, 15
  %2129 = icmp eq i32 9, %2128
  br i1 %2129, label %2130, label %2131

2130:                                             ; preds = %2123
  br label %2193

2131:                                             ; preds = %2123
  %2132 = load ptr, ptr %14, align 8, !tbaa !5
  %2133 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2132, i32 0, i32 3
  %2134 = load i8, ptr %2133, align 1, !tbaa !26
  %2135 = zext i8 %2134 to i32
  %2136 = and i32 %2135, 15
  %2137 = icmp eq i32 10, %2136
  br i1 %2137, label %2138, label %2139

2138:                                             ; preds = %2131
  br label %2191

2139:                                             ; preds = %2131
  %2140 = load ptr, ptr %14, align 8, !tbaa !5
  %2141 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2140, i32 0, i32 3
  %2142 = load i8, ptr %2141, align 1, !tbaa !26
  %2143 = zext i8 %2142 to i32
  %2144 = and i32 %2143, 15
  %2145 = icmp eq i32 11, %2144
  br i1 %2145, label %2146, label %2147

2146:                                             ; preds = %2139
  br label %2189

2147:                                             ; preds = %2139
  %2148 = load ptr, ptr %14, align 8, !tbaa !5
  %2149 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2148, i32 0, i32 3
  %2150 = load i8, ptr %2149, align 1, !tbaa !26
  %2151 = zext i8 %2150 to i32
  %2152 = and i32 %2151, 15
  %2153 = icmp eq i32 12, %2152
  br i1 %2153, label %2154, label %2155

2154:                                             ; preds = %2147
  br label %2187

2155:                                             ; preds = %2147
  %2156 = load ptr, ptr %14, align 8, !tbaa !5
  %2157 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2156, i32 0, i32 3
  %2158 = load i8, ptr %2157, align 1, !tbaa !26
  %2159 = zext i8 %2158 to i32
  %2160 = and i32 %2159, 15
  %2161 = icmp eq i32 13, %2160
  br i1 %2161, label %2162, label %2163

2162:                                             ; preds = %2155
  br label %2185

2163:                                             ; preds = %2155
  %2164 = load ptr, ptr %14, align 8, !tbaa !5
  %2165 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2164, i32 0, i32 3
  %2166 = load i8, ptr %2165, align 1, !tbaa !26
  %2167 = zext i8 %2166 to i32
  %2168 = and i32 %2167, 15
  %2169 = icmp eq i32 14, %2168
  br i1 %2169, label %2170, label %2171

2170:                                             ; preds = %2163
  br label %2183

2171:                                             ; preds = %2163
  %2172 = load ptr, ptr %14, align 8, !tbaa !5
  %2173 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2172, i32 0, i32 3
  %2174 = load i8, ptr %2173, align 1, !tbaa !26
  %2175 = zext i8 %2174 to i32
  %2176 = and i32 %2175, 15
  %2177 = icmp eq i32 15, %2176
  br i1 %2177, label %2178, label %2179

2178:                                             ; preds = %2171
  br label %2181

2179:                                             ; preds = %2171
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 947, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

2180:                                             ; No predecessors!
  br label %2181

2181:                                             ; preds = %2180, %2178
  %2182 = phi i32 [ 15, %2178 ], [ 0, %2180 ]
  br label %2183

2183:                                             ; preds = %2181, %2170
  %2184 = phi i32 [ 14, %2170 ], [ %2182, %2181 ]
  br label %2185

2185:                                             ; preds = %2183, %2162
  %2186 = phi i32 [ 12, %2162 ], [ %2184, %2183 ]
  br label %2187

2187:                                             ; preds = %2185, %2154
  %2188 = phi i32 [ 12, %2154 ], [ %2186, %2185 ]
  br label %2189

2189:                                             ; preds = %2187, %2146
  %2190 = phi i32 [ 10, %2146 ], [ %2188, %2187 ]
  br label %2191

2191:                                             ; preds = %2189, %2138
  %2192 = phi i32 [ 10, %2138 ], [ %2190, %2189 ]
  br label %2193

2193:                                             ; preds = %2191, %2130
  %2194 = phi i32 [ 8, %2130 ], [ %2192, %2191 ]
  br label %2195

2195:                                             ; preds = %2193, %2122
  %2196 = phi i32 [ 8, %2122 ], [ %2194, %2193 ]
  br label %2197

2197:                                             ; preds = %2195, %2114
  %2198 = phi i32 [ 6, %2114 ], [ %2196, %2195 ]
  br label %2199

2199:                                             ; preds = %2197, %2106
  %2200 = phi i32 [ 6, %2106 ], [ %2198, %2197 ]
  br label %2201

2201:                                             ; preds = %2199, %2098
  %2202 = phi i32 [ 5, %2098 ], [ %2200, %2199 ]
  br label %2203

2203:                                             ; preds = %2201, %2090
  %2204 = phi i32 [ 4, %2090 ], [ %2202, %2201 ]
  br label %2205

2205:                                             ; preds = %2203, %2082
  %2206 = phi i32 [ 3, %2082 ], [ %2204, %2203 ]
  br label %2207

2207:                                             ; preds = %2205, %2074
  %2208 = phi i32 [ 2, %2074 ], [ %2206, %2205 ]
  br label %2209

2209:                                             ; preds = %2207, %2066
  %2210 = phi i32 [ 1, %2066 ], [ %2208, %2207 ]
  br label %2211

2211:                                             ; preds = %2209, %2058
  %2212 = phi i32 [ 0, %2058 ], [ %2210, %2209 ]
  br label %2219

2213:                                             ; preds = %2044
  %2214 = load ptr, ptr %14, align 8, !tbaa !5
  %2215 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2214, i32 0, i32 3
  %2216 = load i8, ptr %2215, align 1, !tbaa !26
  %2217 = zext i8 %2216 to i32
  %2218 = ashr i32 %2217, 4
  br label %2219

2219:                                             ; preds = %2213, %2211
  %2220 = phi i32 [ %2212, %2211 ], [ %2218, %2213 ]
  %2221 = icmp eq i32 11, %2220
  br i1 %2221, label %2222, label %2223

2222:                                             ; preds = %2219
  br label %2587

2223:                                             ; preds = %2219
  %2224 = load ptr, ptr %14, align 8, !tbaa !5
  %2225 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2224, i32 0, i32 3
  %2226 = load i8, ptr %2225, align 1, !tbaa !26
  %2227 = zext i8 %2226 to i32
  %2228 = ashr i32 %2227, 4
  %2229 = icmp eq i32 0, %2228
  br i1 %2229, label %2230, label %2392

2230:                                             ; preds = %2223
  %2231 = load ptr, ptr %14, align 8, !tbaa !5
  %2232 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2231, i32 0, i32 3
  %2233 = load i8, ptr %2232, align 1, !tbaa !26
  %2234 = zext i8 %2233 to i32
  %2235 = and i32 %2234, 15
  %2236 = icmp eq i32 0, %2235
  br i1 %2236, label %2237, label %2238

2237:                                             ; preds = %2230
  br label %2390

2238:                                             ; preds = %2230
  %2239 = load ptr, ptr %14, align 8, !tbaa !5
  %2240 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2239, i32 0, i32 3
  %2241 = load i8, ptr %2240, align 1, !tbaa !26
  %2242 = zext i8 %2241 to i32
  %2243 = and i32 %2242, 15
  %2244 = icmp eq i32 1, %2243
  br i1 %2244, label %2245, label %2246

2245:                                             ; preds = %2238
  br label %2388

2246:                                             ; preds = %2238
  %2247 = load ptr, ptr %14, align 8, !tbaa !5
  %2248 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2247, i32 0, i32 3
  %2249 = load i8, ptr %2248, align 1, !tbaa !26
  %2250 = zext i8 %2249 to i32
  %2251 = and i32 %2250, 15
  %2252 = icmp eq i32 2, %2251
  br i1 %2252, label %2253, label %2254

2253:                                             ; preds = %2246
  br label %2386

2254:                                             ; preds = %2246
  %2255 = load ptr, ptr %14, align 8, !tbaa !5
  %2256 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2255, i32 0, i32 3
  %2257 = load i8, ptr %2256, align 1, !tbaa !26
  %2258 = zext i8 %2257 to i32
  %2259 = and i32 %2258, 15
  %2260 = icmp eq i32 3, %2259
  br i1 %2260, label %2261, label %2262

2261:                                             ; preds = %2254
  br label %2384

2262:                                             ; preds = %2254
  %2263 = load ptr, ptr %14, align 8, !tbaa !5
  %2264 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2263, i32 0, i32 3
  %2265 = load i8, ptr %2264, align 1, !tbaa !26
  %2266 = zext i8 %2265 to i32
  %2267 = and i32 %2266, 15
  %2268 = icmp eq i32 4, %2267
  br i1 %2268, label %2269, label %2270

2269:                                             ; preds = %2262
  br label %2382

2270:                                             ; preds = %2262
  %2271 = load ptr, ptr %14, align 8, !tbaa !5
  %2272 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2271, i32 0, i32 3
  %2273 = load i8, ptr %2272, align 1, !tbaa !26
  %2274 = zext i8 %2273 to i32
  %2275 = and i32 %2274, 15
  %2276 = icmp eq i32 5, %2275
  br i1 %2276, label %2277, label %2278

2277:                                             ; preds = %2270
  br label %2380

2278:                                             ; preds = %2270
  %2279 = load ptr, ptr %14, align 8, !tbaa !5
  %2280 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2279, i32 0, i32 3
  %2281 = load i8, ptr %2280, align 1, !tbaa !26
  %2282 = zext i8 %2281 to i32
  %2283 = and i32 %2282, 15
  %2284 = icmp eq i32 6, %2283
  br i1 %2284, label %2285, label %2286

2285:                                             ; preds = %2278
  br label %2378

2286:                                             ; preds = %2278
  %2287 = load ptr, ptr %14, align 8, !tbaa !5
  %2288 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2287, i32 0, i32 3
  %2289 = load i8, ptr %2288, align 1, !tbaa !26
  %2290 = zext i8 %2289 to i32
  %2291 = and i32 %2290, 15
  %2292 = icmp eq i32 7, %2291
  br i1 %2292, label %2293, label %2294

2293:                                             ; preds = %2286
  br label %2376

2294:                                             ; preds = %2286
  %2295 = load ptr, ptr %14, align 8, !tbaa !5
  %2296 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2295, i32 0, i32 3
  %2297 = load i8, ptr %2296, align 1, !tbaa !26
  %2298 = zext i8 %2297 to i32
  %2299 = and i32 %2298, 15
  %2300 = icmp eq i32 8, %2299
  br i1 %2300, label %2301, label %2302

2301:                                             ; preds = %2294
  br label %2374

2302:                                             ; preds = %2294
  %2303 = load ptr, ptr %14, align 8, !tbaa !5
  %2304 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2303, i32 0, i32 3
  %2305 = load i8, ptr %2304, align 1, !tbaa !26
  %2306 = zext i8 %2305 to i32
  %2307 = and i32 %2306, 15
  %2308 = icmp eq i32 9, %2307
  br i1 %2308, label %2309, label %2310

2309:                                             ; preds = %2302
  br label %2372

2310:                                             ; preds = %2302
  %2311 = load ptr, ptr %14, align 8, !tbaa !5
  %2312 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2311, i32 0, i32 3
  %2313 = load i8, ptr %2312, align 1, !tbaa !26
  %2314 = zext i8 %2313 to i32
  %2315 = and i32 %2314, 15
  %2316 = icmp eq i32 10, %2315
  br i1 %2316, label %2317, label %2318

2317:                                             ; preds = %2310
  br label %2370

2318:                                             ; preds = %2310
  %2319 = load ptr, ptr %14, align 8, !tbaa !5
  %2320 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2319, i32 0, i32 3
  %2321 = load i8, ptr %2320, align 1, !tbaa !26
  %2322 = zext i8 %2321 to i32
  %2323 = and i32 %2322, 15
  %2324 = icmp eq i32 11, %2323
  br i1 %2324, label %2325, label %2326

2325:                                             ; preds = %2318
  br label %2368

2326:                                             ; preds = %2318
  %2327 = load ptr, ptr %14, align 8, !tbaa !5
  %2328 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2327, i32 0, i32 3
  %2329 = load i8, ptr %2328, align 1, !tbaa !26
  %2330 = zext i8 %2329 to i32
  %2331 = and i32 %2330, 15
  %2332 = icmp eq i32 12, %2331
  br i1 %2332, label %2333, label %2334

2333:                                             ; preds = %2326
  br label %2366

2334:                                             ; preds = %2326
  %2335 = load ptr, ptr %14, align 8, !tbaa !5
  %2336 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2335, i32 0, i32 3
  %2337 = load i8, ptr %2336, align 1, !tbaa !26
  %2338 = zext i8 %2337 to i32
  %2339 = and i32 %2338, 15
  %2340 = icmp eq i32 13, %2339
  br i1 %2340, label %2341, label %2342

2341:                                             ; preds = %2334
  br label %2364

2342:                                             ; preds = %2334
  %2343 = load ptr, ptr %14, align 8, !tbaa !5
  %2344 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2343, i32 0, i32 3
  %2345 = load i8, ptr %2344, align 1, !tbaa !26
  %2346 = zext i8 %2345 to i32
  %2347 = and i32 %2346, 15
  %2348 = icmp eq i32 14, %2347
  br i1 %2348, label %2349, label %2350

2349:                                             ; preds = %2342
  br label %2362

2350:                                             ; preds = %2342
  %2351 = load ptr, ptr %14, align 8, !tbaa !5
  %2352 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2351, i32 0, i32 3
  %2353 = load i8, ptr %2352, align 1, !tbaa !26
  %2354 = zext i8 %2353 to i32
  %2355 = and i32 %2354, 15
  %2356 = icmp eq i32 15, %2355
  br i1 %2356, label %2357, label %2358

2357:                                             ; preds = %2350
  br label %2360

2358:                                             ; preds = %2350
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 947, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

2359:                                             ; No predecessors!
  br label %2360

2360:                                             ; preds = %2359, %2357
  %2361 = phi i32 [ 15, %2357 ], [ 0, %2359 ]
  br label %2362

2362:                                             ; preds = %2360, %2349
  %2363 = phi i32 [ 14, %2349 ], [ %2361, %2360 ]
  br label %2364

2364:                                             ; preds = %2362, %2341
  %2365 = phi i32 [ 12, %2341 ], [ %2363, %2362 ]
  br label %2366

2366:                                             ; preds = %2364, %2333
  %2367 = phi i32 [ 12, %2333 ], [ %2365, %2364 ]
  br label %2368

2368:                                             ; preds = %2366, %2325
  %2369 = phi i32 [ 10, %2325 ], [ %2367, %2366 ]
  br label %2370

2370:                                             ; preds = %2368, %2317
  %2371 = phi i32 [ 10, %2317 ], [ %2369, %2368 ]
  br label %2372

2372:                                             ; preds = %2370, %2309
  %2373 = phi i32 [ 8, %2309 ], [ %2371, %2370 ]
  br label %2374

2374:                                             ; preds = %2372, %2301
  %2375 = phi i32 [ 8, %2301 ], [ %2373, %2372 ]
  br label %2376

2376:                                             ; preds = %2374, %2293
  %2377 = phi i32 [ 6, %2293 ], [ %2375, %2374 ]
  br label %2378

2378:                                             ; preds = %2376, %2285
  %2379 = phi i32 [ 6, %2285 ], [ %2377, %2376 ]
  br label %2380

2380:                                             ; preds = %2378, %2277
  %2381 = phi i32 [ 5, %2277 ], [ %2379, %2378 ]
  br label %2382

2382:                                             ; preds = %2380, %2269
  %2383 = phi i32 [ 4, %2269 ], [ %2381, %2380 ]
  br label %2384

2384:                                             ; preds = %2382, %2261
  %2385 = phi i32 [ 3, %2261 ], [ %2383, %2382 ]
  br label %2386

2386:                                             ; preds = %2384, %2253
  %2387 = phi i32 [ 2, %2253 ], [ %2385, %2384 ]
  br label %2388

2388:                                             ; preds = %2386, %2245
  %2389 = phi i32 [ 1, %2245 ], [ %2387, %2386 ]
  br label %2390

2390:                                             ; preds = %2388, %2237
  %2391 = phi i32 [ 0, %2237 ], [ %2389, %2388 ]
  br label %2398

2392:                                             ; preds = %2223
  %2393 = load ptr, ptr %14, align 8, !tbaa !5
  %2394 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2393, i32 0, i32 3
  %2395 = load i8, ptr %2394, align 1, !tbaa !26
  %2396 = zext i8 %2395 to i32
  %2397 = ashr i32 %2396, 4
  br label %2398

2398:                                             ; preds = %2392, %2390
  %2399 = phi i32 [ %2391, %2390 ], [ %2397, %2392 ]
  %2400 = icmp eq i32 12, %2399
  br i1 %2400, label %2401, label %2402

2401:                                             ; preds = %2398
  br label %2585

2402:                                             ; preds = %2398
  %2403 = load ptr, ptr %14, align 8, !tbaa !5
  %2404 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2403, i32 0, i32 3
  %2405 = load i8, ptr %2404, align 1, !tbaa !26
  %2406 = zext i8 %2405 to i32
  %2407 = ashr i32 %2406, 4
  %2408 = icmp eq i32 0, %2407
  br i1 %2408, label %2409, label %2571

2409:                                             ; preds = %2402
  %2410 = load ptr, ptr %14, align 8, !tbaa !5
  %2411 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2410, i32 0, i32 3
  %2412 = load i8, ptr %2411, align 1, !tbaa !26
  %2413 = zext i8 %2412 to i32
  %2414 = and i32 %2413, 15
  %2415 = icmp eq i32 0, %2414
  br i1 %2415, label %2416, label %2417

2416:                                             ; preds = %2409
  br label %2569

2417:                                             ; preds = %2409
  %2418 = load ptr, ptr %14, align 8, !tbaa !5
  %2419 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2418, i32 0, i32 3
  %2420 = load i8, ptr %2419, align 1, !tbaa !26
  %2421 = zext i8 %2420 to i32
  %2422 = and i32 %2421, 15
  %2423 = icmp eq i32 1, %2422
  br i1 %2423, label %2424, label %2425

2424:                                             ; preds = %2417
  br label %2567

2425:                                             ; preds = %2417
  %2426 = load ptr, ptr %14, align 8, !tbaa !5
  %2427 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2426, i32 0, i32 3
  %2428 = load i8, ptr %2427, align 1, !tbaa !26
  %2429 = zext i8 %2428 to i32
  %2430 = and i32 %2429, 15
  %2431 = icmp eq i32 2, %2430
  br i1 %2431, label %2432, label %2433

2432:                                             ; preds = %2425
  br label %2565

2433:                                             ; preds = %2425
  %2434 = load ptr, ptr %14, align 8, !tbaa !5
  %2435 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2434, i32 0, i32 3
  %2436 = load i8, ptr %2435, align 1, !tbaa !26
  %2437 = zext i8 %2436 to i32
  %2438 = and i32 %2437, 15
  %2439 = icmp eq i32 3, %2438
  br i1 %2439, label %2440, label %2441

2440:                                             ; preds = %2433
  br label %2563

2441:                                             ; preds = %2433
  %2442 = load ptr, ptr %14, align 8, !tbaa !5
  %2443 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2442, i32 0, i32 3
  %2444 = load i8, ptr %2443, align 1, !tbaa !26
  %2445 = zext i8 %2444 to i32
  %2446 = and i32 %2445, 15
  %2447 = icmp eq i32 4, %2446
  br i1 %2447, label %2448, label %2449

2448:                                             ; preds = %2441
  br label %2561

2449:                                             ; preds = %2441
  %2450 = load ptr, ptr %14, align 8, !tbaa !5
  %2451 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2450, i32 0, i32 3
  %2452 = load i8, ptr %2451, align 1, !tbaa !26
  %2453 = zext i8 %2452 to i32
  %2454 = and i32 %2453, 15
  %2455 = icmp eq i32 5, %2454
  br i1 %2455, label %2456, label %2457

2456:                                             ; preds = %2449
  br label %2559

2457:                                             ; preds = %2449
  %2458 = load ptr, ptr %14, align 8, !tbaa !5
  %2459 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2458, i32 0, i32 3
  %2460 = load i8, ptr %2459, align 1, !tbaa !26
  %2461 = zext i8 %2460 to i32
  %2462 = and i32 %2461, 15
  %2463 = icmp eq i32 6, %2462
  br i1 %2463, label %2464, label %2465

2464:                                             ; preds = %2457
  br label %2557

2465:                                             ; preds = %2457
  %2466 = load ptr, ptr %14, align 8, !tbaa !5
  %2467 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2466, i32 0, i32 3
  %2468 = load i8, ptr %2467, align 1, !tbaa !26
  %2469 = zext i8 %2468 to i32
  %2470 = and i32 %2469, 15
  %2471 = icmp eq i32 7, %2470
  br i1 %2471, label %2472, label %2473

2472:                                             ; preds = %2465
  br label %2555

2473:                                             ; preds = %2465
  %2474 = load ptr, ptr %14, align 8, !tbaa !5
  %2475 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2474, i32 0, i32 3
  %2476 = load i8, ptr %2475, align 1, !tbaa !26
  %2477 = zext i8 %2476 to i32
  %2478 = and i32 %2477, 15
  %2479 = icmp eq i32 8, %2478
  br i1 %2479, label %2480, label %2481

2480:                                             ; preds = %2473
  br label %2553

2481:                                             ; preds = %2473
  %2482 = load ptr, ptr %14, align 8, !tbaa !5
  %2483 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2482, i32 0, i32 3
  %2484 = load i8, ptr %2483, align 1, !tbaa !26
  %2485 = zext i8 %2484 to i32
  %2486 = and i32 %2485, 15
  %2487 = icmp eq i32 9, %2486
  br i1 %2487, label %2488, label %2489

2488:                                             ; preds = %2481
  br label %2551

2489:                                             ; preds = %2481
  %2490 = load ptr, ptr %14, align 8, !tbaa !5
  %2491 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2490, i32 0, i32 3
  %2492 = load i8, ptr %2491, align 1, !tbaa !26
  %2493 = zext i8 %2492 to i32
  %2494 = and i32 %2493, 15
  %2495 = icmp eq i32 10, %2494
  br i1 %2495, label %2496, label %2497

2496:                                             ; preds = %2489
  br label %2549

2497:                                             ; preds = %2489
  %2498 = load ptr, ptr %14, align 8, !tbaa !5
  %2499 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2498, i32 0, i32 3
  %2500 = load i8, ptr %2499, align 1, !tbaa !26
  %2501 = zext i8 %2500 to i32
  %2502 = and i32 %2501, 15
  %2503 = icmp eq i32 11, %2502
  br i1 %2503, label %2504, label %2505

2504:                                             ; preds = %2497
  br label %2547

2505:                                             ; preds = %2497
  %2506 = load ptr, ptr %14, align 8, !tbaa !5
  %2507 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2506, i32 0, i32 3
  %2508 = load i8, ptr %2507, align 1, !tbaa !26
  %2509 = zext i8 %2508 to i32
  %2510 = and i32 %2509, 15
  %2511 = icmp eq i32 12, %2510
  br i1 %2511, label %2512, label %2513

2512:                                             ; preds = %2505
  br label %2545

2513:                                             ; preds = %2505
  %2514 = load ptr, ptr %14, align 8, !tbaa !5
  %2515 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2514, i32 0, i32 3
  %2516 = load i8, ptr %2515, align 1, !tbaa !26
  %2517 = zext i8 %2516 to i32
  %2518 = and i32 %2517, 15
  %2519 = icmp eq i32 13, %2518
  br i1 %2519, label %2520, label %2521

2520:                                             ; preds = %2513
  br label %2543

2521:                                             ; preds = %2513
  %2522 = load ptr, ptr %14, align 8, !tbaa !5
  %2523 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2522, i32 0, i32 3
  %2524 = load i8, ptr %2523, align 1, !tbaa !26
  %2525 = zext i8 %2524 to i32
  %2526 = and i32 %2525, 15
  %2527 = icmp eq i32 14, %2526
  br i1 %2527, label %2528, label %2529

2528:                                             ; preds = %2521
  br label %2541

2529:                                             ; preds = %2521
  %2530 = load ptr, ptr %14, align 8, !tbaa !5
  %2531 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2530, i32 0, i32 3
  %2532 = load i8, ptr %2531, align 1, !tbaa !26
  %2533 = zext i8 %2532 to i32
  %2534 = and i32 %2533, 15
  %2535 = icmp eq i32 15, %2534
  br i1 %2535, label %2536, label %2537

2536:                                             ; preds = %2529
  br label %2539

2537:                                             ; preds = %2529
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 947, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

2538:                                             ; No predecessors!
  br label %2539

2539:                                             ; preds = %2538, %2536
  %2540 = phi i32 [ 15, %2536 ], [ 0, %2538 ]
  br label %2541

2541:                                             ; preds = %2539, %2528
  %2542 = phi i32 [ 14, %2528 ], [ %2540, %2539 ]
  br label %2543

2543:                                             ; preds = %2541, %2520
  %2544 = phi i32 [ 12, %2520 ], [ %2542, %2541 ]
  br label %2545

2545:                                             ; preds = %2543, %2512
  %2546 = phi i32 [ 12, %2512 ], [ %2544, %2543 ]
  br label %2547

2547:                                             ; preds = %2545, %2504
  %2548 = phi i32 [ 10, %2504 ], [ %2546, %2545 ]
  br label %2549

2549:                                             ; preds = %2547, %2496
  %2550 = phi i32 [ 10, %2496 ], [ %2548, %2547 ]
  br label %2551

2551:                                             ; preds = %2549, %2488
  %2552 = phi i32 [ 8, %2488 ], [ %2550, %2549 ]
  br label %2553

2553:                                             ; preds = %2551, %2480
  %2554 = phi i32 [ 8, %2480 ], [ %2552, %2551 ]
  br label %2555

2555:                                             ; preds = %2553, %2472
  %2556 = phi i32 [ 6, %2472 ], [ %2554, %2553 ]
  br label %2557

2557:                                             ; preds = %2555, %2464
  %2558 = phi i32 [ 6, %2464 ], [ %2556, %2555 ]
  br label %2559

2559:                                             ; preds = %2557, %2456
  %2560 = phi i32 [ 5, %2456 ], [ %2558, %2557 ]
  br label %2561

2561:                                             ; preds = %2559, %2448
  %2562 = phi i32 [ 4, %2448 ], [ %2560, %2559 ]
  br label %2563

2563:                                             ; preds = %2561, %2440
  %2564 = phi i32 [ 3, %2440 ], [ %2562, %2561 ]
  br label %2565

2565:                                             ; preds = %2563, %2432
  %2566 = phi i32 [ 2, %2432 ], [ %2564, %2563 ]
  br label %2567

2567:                                             ; preds = %2565, %2424
  %2568 = phi i32 [ 1, %2424 ], [ %2566, %2565 ]
  br label %2569

2569:                                             ; preds = %2567, %2416
  %2570 = phi i32 [ 0, %2416 ], [ %2568, %2567 ]
  br label %2577

2571:                                             ; preds = %2402
  %2572 = load ptr, ptr %14, align 8, !tbaa !5
  %2573 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2572, i32 0, i32 3
  %2574 = load i8, ptr %2573, align 1, !tbaa !26
  %2575 = zext i8 %2574 to i32
  %2576 = ashr i32 %2575, 4
  br label %2577

2577:                                             ; preds = %2571, %2569
  %2578 = phi i32 [ %2570, %2569 ], [ %2576, %2571 ]
  %2579 = icmp eq i32 13, %2578
  br i1 %2579, label %2580, label %2581

2580:                                             ; preds = %2577
  br label %2583

2581:                                             ; preds = %2577
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 947, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

2582:                                             ; No predecessors!
  br label %2583

2583:                                             ; preds = %2582, %2580
  %2584 = phi i32 [ 1, %2580 ], [ 0, %2582 ]
  br label %2585

2585:                                             ; preds = %2583, %2401
  %2586 = phi i32 [ 1, %2401 ], [ %2584, %2583 ]
  br label %2587

2587:                                             ; preds = %2585, %2222
  %2588 = phi i32 [ 2, %2222 ], [ %2586, %2585 ]
  br label %2589

2589:                                             ; preds = %2587, %2043
  %2590 = phi i32 [ 2, %2043 ], [ %2588, %2587 ]
  br label %2591

2591:                                             ; preds = %2589, %1864
  %2592 = phi i32 [ 4, %1864 ], [ %2590, %2589 ]
  br label %2593

2593:                                             ; preds = %2591, %1685
  %2594 = phi i32 [ 4, %1685 ], [ %2592, %2591 ]
  br label %2595

2595:                                             ; preds = %2593, %1506
  %2596 = phi i32 [ 8, %1506 ], [ %2594, %2593 ]
  br label %2597

2597:                                             ; preds = %2595, %1327
  %2598 = phi i32 [ 8, %1327 ], [ %2596, %2595 ]
  br label %2599

2599:                                             ; preds = %2597, %1148
  %2600 = phi i32 [ 1, %1148 ], [ %2598, %2597 ]
  br label %2601

2601:                                             ; preds = %2599, %969
  %2602 = phi i32 [ 1, %969 ], [ %2600, %2599 ]
  br label %2603

2603:                                             ; preds = %2601, %790
  %2604 = phi i32 [ 2, %790 ], [ %2602, %2601 ]
  br label %2605

2605:                                             ; preds = %2603, %611
  %2606 = phi i32 [ 2, %611 ], [ %2604, %2603 ]
  br label %2607

2607:                                             ; preds = %2605, %432
  %2608 = phi i32 [ 4, %432 ], [ %2606, %2605 ]
  br label %2609

2609:                                             ; preds = %2607, %253
  %2610 = phi i32 [ 8, %253 ], [ %2608, %2607 ]
  %2611 = mul i32 %75, %2610
  %2612 = load i8, ptr %25, align 1, !tbaa !13
  %2613 = load i32, ptr %23, align 4, !tbaa !9
  %2614 = load i32, ptr %19, align 4, !tbaa !9
  %2615 = icmp eq i32 %2614, 1
  br i1 %2615, label %2616, label %2623

2616:                                             ; preds = %2609
  %2617 = load i32, ptr %22, align 4, !tbaa !9
  %2618 = load i32, ptr %17, align 4, !tbaa !9
  %2619 = sub i32 %2618, 1
  %2620 = icmp eq i32 %2617, %2619
  br i1 %2620, label %2621, label %2623

2621:                                             ; preds = %2616
  %2622 = load i32, ptr %20, align 4, !tbaa !9
  br label %2624

2623:                                             ; preds = %2616, %2609
  br label %2624

2624:                                             ; preds = %2623, %2621
  %2625 = phi i32 [ %2622, %2621 ], [ 0, %2623 ]
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %60, i32 noundef %63, i32 noundef 671491379, i32 noundef %66, i32 noundef 127, i32 noundef 0, i32 noundef %2611, i8 noundef signext %2612, i32 noundef %2613, i32 noundef %2625, i32 noundef 0, i32 noundef 1)
  %2626 = load ptr, ptr %11, align 8, !tbaa !5
  %2627 = load i8, ptr %25, align 1, !tbaa !13
  %2628 = load i32, ptr %23, align 4, !tbaa !9
  %2629 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg_imm8(ptr noundef %2626, i32 noundef 609031794, i8 noundef signext %2627, i32 noundef %2628, i32 noundef %2629, i32 noundef 16)
  %2630 = load ptr, ptr %11, align 8, !tbaa !5
  %2631 = load ptr, ptr %11, align 8, !tbaa !5
  %2632 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %2631, i32 0, i32 6
  %2633 = load i32, ptr %2632, align 4, !tbaa !11
  %2634 = load ptr, ptr %12, align 8, !tbaa !5
  %2635 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %2634, i32 0, i32 5
  %2636 = load i32, ptr %2635, align 4, !tbaa !20
  %2637 = load ptr, ptr %12, align 8, !tbaa !5
  %2638 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %2637, i32 0, i32 11
  %2639 = load i32, ptr %2638, align 4, !tbaa !27
  %2640 = load i32, ptr %22, align 4, !tbaa !9
  %2641 = load i32, ptr %15, align 4, !tbaa !9
  %2642 = mul i32 %2640, %2641
  %2643 = load i32, ptr %21, align 4, !tbaa !9
  %2644 = load ptr, ptr %14, align 8, !tbaa !5
  %2645 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2644, i32 0, i32 2
  %2646 = load i32, ptr %2645, align 1, !tbaa !24
  %2647 = mul i32 %2643, %2646
  %2648 = add i32 %2642, %2647
  %2649 = load ptr, ptr %14, align 8, !tbaa !5
  %2650 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2649, i32 0, i32 3
  %2651 = load i8, ptr %2650, align 1, !tbaa !26
  %2652 = zext i8 %2651 to i32
  %2653 = ashr i32 %2652, 4
  %2654 = icmp eq i32 0, %2653
  br i1 %2654, label %2655, label %2817

2655:                                             ; preds = %2624
  %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 !26
  %2659 = zext i8 %2658 to i32
  %2660 = and i32 %2659, 15
  %2661 = icmp eq i32 0, %2660
  br i1 %2661, label %2662, label %2663

2662:                                             ; preds = %2655
  br label %2815

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 !26
  %2667 = zext i8 %2666 to i32
  %2668 = and i32 %2667, 15
  %2669 = icmp eq i32 1, %2668
  br i1 %2669, label %2670, label %2671

2670:                                             ; preds = %2663
  br label %2813

2671:                                             ; preds = %2663
  %2672 = load ptr, ptr %14, align 8, !tbaa !5
  %2673 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2672, i32 0, i32 3
  %2674 = load i8, ptr %2673, align 1, !tbaa !26
  %2675 = zext i8 %2674 to i32
  %2676 = and i32 %2675, 15
  %2677 = icmp eq i32 2, %2676
  br i1 %2677, label %2678, label %2679

2678:                                             ; preds = %2671
  br label %2811

2679:                                             ; preds = %2671
  %2680 = load ptr, ptr %14, align 8, !tbaa !5
  %2681 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2680, i32 0, i32 3
  %2682 = load i8, ptr %2681, align 1, !tbaa !26
  %2683 = zext i8 %2682 to i32
  %2684 = and i32 %2683, 15
  %2685 = icmp eq i32 3, %2684
  br i1 %2685, label %2686, label %2687

2686:                                             ; preds = %2679
  br label %2809

2687:                                             ; preds = %2679
  %2688 = load ptr, ptr %14, align 8, !tbaa !5
  %2689 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2688, i32 0, i32 3
  %2690 = load i8, ptr %2689, align 1, !tbaa !26
  %2691 = zext i8 %2690 to i32
  %2692 = and i32 %2691, 15
  %2693 = icmp eq i32 4, %2692
  br i1 %2693, label %2694, label %2695

2694:                                             ; preds = %2687
  br label %2807

2695:                                             ; preds = %2687
  %2696 = load ptr, ptr %14, align 8, !tbaa !5
  %2697 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2696, i32 0, i32 3
  %2698 = load i8, ptr %2697, align 1, !tbaa !26
  %2699 = zext i8 %2698 to i32
  %2700 = and i32 %2699, 15
  %2701 = icmp eq i32 5, %2700
  br i1 %2701, label %2702, label %2703

2702:                                             ; preds = %2695
  br label %2805

2703:                                             ; preds = %2695
  %2704 = load ptr, ptr %14, align 8, !tbaa !5
  %2705 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2704, i32 0, i32 3
  %2706 = load i8, ptr %2705, align 1, !tbaa !26
  %2707 = zext i8 %2706 to i32
  %2708 = and i32 %2707, 15
  %2709 = icmp eq i32 6, %2708
  br i1 %2709, label %2710, label %2711

2710:                                             ; preds = %2703
  br label %2803

2711:                                             ; preds = %2703
  %2712 = load ptr, ptr %14, align 8, !tbaa !5
  %2713 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2712, i32 0, i32 3
  %2714 = load i8, ptr %2713, align 1, !tbaa !26
  %2715 = zext i8 %2714 to i32
  %2716 = and i32 %2715, 15
  %2717 = icmp eq i32 7, %2716
  br i1 %2717, label %2718, label %2719

2718:                                             ; preds = %2711
  br label %2801

2719:                                             ; preds = %2711
  %2720 = load ptr, ptr %14, align 8, !tbaa !5
  %2721 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2720, i32 0, i32 3
  %2722 = load i8, ptr %2721, align 1, !tbaa !26
  %2723 = zext i8 %2722 to i32
  %2724 = and i32 %2723, 15
  %2725 = icmp eq i32 8, %2724
  br i1 %2725, label %2726, label %2727

2726:                                             ; preds = %2719
  br label %2799

2727:                                             ; preds = %2719
  %2728 = load ptr, ptr %14, align 8, !tbaa !5
  %2729 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2728, i32 0, i32 3
  %2730 = load i8, ptr %2729, align 1, !tbaa !26
  %2731 = zext i8 %2730 to i32
  %2732 = and i32 %2731, 15
  %2733 = icmp eq i32 9, %2732
  br i1 %2733, label %2734, label %2735

2734:                                             ; preds = %2727
  br label %2797

2735:                                             ; preds = %2727
  %2736 = load ptr, ptr %14, align 8, !tbaa !5
  %2737 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2736, i32 0, i32 3
  %2738 = load i8, ptr %2737, align 1, !tbaa !26
  %2739 = zext i8 %2738 to i32
  %2740 = and i32 %2739, 15
  %2741 = icmp eq i32 10, %2740
  br i1 %2741, label %2742, label %2743

2742:                                             ; preds = %2735
  br label %2795

2743:                                             ; preds = %2735
  %2744 = load ptr, ptr %14, align 8, !tbaa !5
  %2745 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2744, i32 0, i32 3
  %2746 = load i8, ptr %2745, align 1, !tbaa !26
  %2747 = zext i8 %2746 to i32
  %2748 = and i32 %2747, 15
  %2749 = icmp eq i32 11, %2748
  br i1 %2749, label %2750, label %2751

2750:                                             ; preds = %2743
  br label %2793

2751:                                             ; preds = %2743
  %2752 = load ptr, ptr %14, align 8, !tbaa !5
  %2753 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2752, i32 0, i32 3
  %2754 = load i8, ptr %2753, align 1, !tbaa !26
  %2755 = zext i8 %2754 to i32
  %2756 = and i32 %2755, 15
  %2757 = icmp eq i32 12, %2756
  br i1 %2757, label %2758, label %2759

2758:                                             ; preds = %2751
  br label %2791

2759:                                             ; preds = %2751
  %2760 = load ptr, ptr %14, align 8, !tbaa !5
  %2761 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2760, i32 0, i32 3
  %2762 = load i8, ptr %2761, align 1, !tbaa !26
  %2763 = zext i8 %2762 to i32
  %2764 = and i32 %2763, 15
  %2765 = icmp eq i32 13, %2764
  br i1 %2765, label %2766, label %2767

2766:                                             ; preds = %2759
  br label %2789

2767:                                             ; preds = %2759
  %2768 = load ptr, ptr %14, align 8, !tbaa !5
  %2769 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2768, i32 0, i32 3
  %2770 = load i8, ptr %2769, align 1, !tbaa !26
  %2771 = zext i8 %2770 to i32
  %2772 = and i32 %2771, 15
  %2773 = icmp eq i32 14, %2772
  br i1 %2773, label %2774, label %2775

2774:                                             ; preds = %2767
  br label %2787

2775:                                             ; preds = %2767
  %2776 = load ptr, ptr %14, align 8, !tbaa !5
  %2777 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2776, i32 0, i32 3
  %2778 = load i8, ptr %2777, align 1, !tbaa !26
  %2779 = zext i8 %2778 to i32
  %2780 = and i32 %2779, 15
  %2781 = icmp eq i32 15, %2780
  br i1 %2781, label %2782, label %2783

2782:                                             ; preds = %2775
  br label %2785

2783:                                             ; preds = %2775
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 959, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

2784:                                             ; No predecessors!
  br label %2785

2785:                                             ; preds = %2784, %2782
  %2786 = phi i32 [ 15, %2782 ], [ 0, %2784 ]
  br label %2787

2787:                                             ; preds = %2785, %2774
  %2788 = phi i32 [ 14, %2774 ], [ %2786, %2785 ]
  br label %2789

2789:                                             ; preds = %2787, %2766
  %2790 = phi i32 [ 12, %2766 ], [ %2788, %2787 ]
  br label %2791

2791:                                             ; preds = %2789, %2758
  %2792 = phi i32 [ 12, %2758 ], [ %2790, %2789 ]
  br label %2793

2793:                                             ; preds = %2791, %2750
  %2794 = phi i32 [ 10, %2750 ], [ %2792, %2791 ]
  br label %2795

2795:                                             ; preds = %2793, %2742
  %2796 = phi i32 [ 10, %2742 ], [ %2794, %2793 ]
  br label %2797

2797:                                             ; preds = %2795, %2734
  %2798 = phi i32 [ 8, %2734 ], [ %2796, %2795 ]
  br label %2799

2799:                                             ; preds = %2797, %2726
  %2800 = phi i32 [ 8, %2726 ], [ %2798, %2797 ]
  br label %2801

2801:                                             ; preds = %2799, %2718
  %2802 = phi i32 [ 6, %2718 ], [ %2800, %2799 ]
  br label %2803

2803:                                             ; preds = %2801, %2710
  %2804 = phi i32 [ 6, %2710 ], [ %2802, %2801 ]
  br label %2805

2805:                                             ; preds = %2803, %2702
  %2806 = phi i32 [ 5, %2702 ], [ %2804, %2803 ]
  br label %2807

2807:                                             ; preds = %2805, %2694
  %2808 = phi i32 [ 4, %2694 ], [ %2806, %2805 ]
  br label %2809

2809:                                             ; preds = %2807, %2686
  %2810 = phi i32 [ 3, %2686 ], [ %2808, %2807 ]
  br label %2811

2811:                                             ; preds = %2809, %2678
  %2812 = phi i32 [ 2, %2678 ], [ %2810, %2809 ]
  br label %2813

2813:                                             ; preds = %2811, %2670
  %2814 = phi i32 [ 1, %2670 ], [ %2812, %2811 ]
  br label %2815

2815:                                             ; preds = %2813, %2662
  %2816 = phi i32 [ 0, %2662 ], [ %2814, %2813 ]
  br label %2823

2817:                                             ; preds = %2624
  %2818 = load ptr, ptr %14, align 8, !tbaa !5
  %2819 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2818, i32 0, i32 3
  %2820 = load i8, ptr %2819, align 1, !tbaa !26
  %2821 = zext i8 %2820 to i32
  %2822 = ashr i32 %2821, 4
  br label %2823

2823:                                             ; preds = %2817, %2815
  %2824 = phi i32 [ %2816, %2815 ], [ %2822, %2817 ]
  %2825 = icmp eq i32 0, %2824
  br i1 %2825, label %2826, label %2827

2826:                                             ; preds = %2823
  br label %5182

2827:                                             ; preds = %2823
  %2828 = load ptr, ptr %14, align 8, !tbaa !5
  %2829 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2828, i32 0, i32 3
  %2830 = load i8, ptr %2829, align 1, !tbaa !26
  %2831 = zext i8 %2830 to i32
  %2832 = ashr i32 %2831, 4
  %2833 = icmp eq i32 0, %2832
  br i1 %2833, label %2834, label %2996

2834:                                             ; preds = %2827
  %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 !26
  %2838 = zext i8 %2837 to i32
  %2839 = and i32 %2838, 15
  %2840 = icmp eq i32 0, %2839
  br i1 %2840, label %2841, label %2842

2841:                                             ; preds = %2834
  br label %2994

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 !26
  %2846 = zext i8 %2845 to i32
  %2847 = and i32 %2846, 15
  %2848 = icmp eq i32 1, %2847
  br i1 %2848, label %2849, label %2850

2849:                                             ; preds = %2842
  br label %2992

2850:                                             ; preds = %2842
  %2851 = load ptr, ptr %14, align 8, !tbaa !5
  %2852 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2851, i32 0, i32 3
  %2853 = load i8, ptr %2852, align 1, !tbaa !26
  %2854 = zext i8 %2853 to i32
  %2855 = and i32 %2854, 15
  %2856 = icmp eq i32 2, %2855
  br i1 %2856, label %2857, label %2858

2857:                                             ; preds = %2850
  br label %2990

2858:                                             ; preds = %2850
  %2859 = load ptr, ptr %14, align 8, !tbaa !5
  %2860 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2859, i32 0, i32 3
  %2861 = load i8, ptr %2860, align 1, !tbaa !26
  %2862 = zext i8 %2861 to i32
  %2863 = and i32 %2862, 15
  %2864 = icmp eq i32 3, %2863
  br i1 %2864, label %2865, label %2866

2865:                                             ; preds = %2858
  br label %2988

2866:                                             ; preds = %2858
  %2867 = load ptr, ptr %14, align 8, !tbaa !5
  %2868 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2867, i32 0, i32 3
  %2869 = load i8, ptr %2868, align 1, !tbaa !26
  %2870 = zext i8 %2869 to i32
  %2871 = and i32 %2870, 15
  %2872 = icmp eq i32 4, %2871
  br i1 %2872, label %2873, label %2874

2873:                                             ; preds = %2866
  br label %2986

2874:                                             ; preds = %2866
  %2875 = load ptr, ptr %14, align 8, !tbaa !5
  %2876 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2875, i32 0, i32 3
  %2877 = load i8, ptr %2876, align 1, !tbaa !26
  %2878 = zext i8 %2877 to i32
  %2879 = and i32 %2878, 15
  %2880 = icmp eq i32 5, %2879
  br i1 %2880, label %2881, label %2882

2881:                                             ; preds = %2874
  br label %2984

2882:                                             ; preds = %2874
  %2883 = load ptr, ptr %14, align 8, !tbaa !5
  %2884 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2883, i32 0, i32 3
  %2885 = load i8, ptr %2884, align 1, !tbaa !26
  %2886 = zext i8 %2885 to i32
  %2887 = and i32 %2886, 15
  %2888 = icmp eq i32 6, %2887
  br i1 %2888, label %2889, label %2890

2889:                                             ; preds = %2882
  br label %2982

2890:                                             ; preds = %2882
  %2891 = load ptr, ptr %14, align 8, !tbaa !5
  %2892 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2891, i32 0, i32 3
  %2893 = load i8, ptr %2892, align 1, !tbaa !26
  %2894 = zext i8 %2893 to i32
  %2895 = and i32 %2894, 15
  %2896 = icmp eq i32 7, %2895
  br i1 %2896, label %2897, label %2898

2897:                                             ; preds = %2890
  br label %2980

2898:                                             ; preds = %2890
  %2899 = load ptr, ptr %14, align 8, !tbaa !5
  %2900 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2899, i32 0, i32 3
  %2901 = load i8, ptr %2900, align 1, !tbaa !26
  %2902 = zext i8 %2901 to i32
  %2903 = and i32 %2902, 15
  %2904 = icmp eq i32 8, %2903
  br i1 %2904, label %2905, label %2906

2905:                                             ; preds = %2898
  br label %2978

2906:                                             ; preds = %2898
  %2907 = load ptr, ptr %14, align 8, !tbaa !5
  %2908 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2907, i32 0, i32 3
  %2909 = load i8, ptr %2908, align 1, !tbaa !26
  %2910 = zext i8 %2909 to i32
  %2911 = and i32 %2910, 15
  %2912 = icmp eq i32 9, %2911
  br i1 %2912, label %2913, label %2914

2913:                                             ; preds = %2906
  br label %2976

2914:                                             ; preds = %2906
  %2915 = load ptr, ptr %14, align 8, !tbaa !5
  %2916 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2915, i32 0, i32 3
  %2917 = load i8, ptr %2916, align 1, !tbaa !26
  %2918 = zext i8 %2917 to i32
  %2919 = and i32 %2918, 15
  %2920 = icmp eq i32 10, %2919
  br i1 %2920, label %2921, label %2922

2921:                                             ; preds = %2914
  br label %2974

2922:                                             ; preds = %2914
  %2923 = load ptr, ptr %14, align 8, !tbaa !5
  %2924 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2923, i32 0, i32 3
  %2925 = load i8, ptr %2924, align 1, !tbaa !26
  %2926 = zext i8 %2925 to i32
  %2927 = and i32 %2926, 15
  %2928 = icmp eq i32 11, %2927
  br i1 %2928, label %2929, label %2930

2929:                                             ; preds = %2922
  br label %2972

2930:                                             ; preds = %2922
  %2931 = load ptr, ptr %14, align 8, !tbaa !5
  %2932 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2931, i32 0, i32 3
  %2933 = load i8, ptr %2932, align 1, !tbaa !26
  %2934 = zext i8 %2933 to i32
  %2935 = and i32 %2934, 15
  %2936 = icmp eq i32 12, %2935
  br i1 %2936, label %2937, label %2938

2937:                                             ; preds = %2930
  br label %2970

2938:                                             ; preds = %2930
  %2939 = load ptr, ptr %14, align 8, !tbaa !5
  %2940 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2939, i32 0, i32 3
  %2941 = load i8, ptr %2940, align 1, !tbaa !26
  %2942 = zext i8 %2941 to i32
  %2943 = and i32 %2942, 15
  %2944 = icmp eq i32 13, %2943
  br i1 %2944, label %2945, label %2946

2945:                                             ; preds = %2938
  br label %2968

2946:                                             ; preds = %2938
  %2947 = load ptr, ptr %14, align 8, !tbaa !5
  %2948 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2947, i32 0, i32 3
  %2949 = load i8, ptr %2948, align 1, !tbaa !26
  %2950 = zext i8 %2949 to i32
  %2951 = and i32 %2950, 15
  %2952 = icmp eq i32 14, %2951
  br i1 %2952, label %2953, label %2954

2953:                                             ; preds = %2946
  br label %2966

2954:                                             ; preds = %2946
  %2955 = load ptr, ptr %14, align 8, !tbaa !5
  %2956 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2955, i32 0, i32 3
  %2957 = load i8, ptr %2956, align 1, !tbaa !26
  %2958 = zext i8 %2957 to i32
  %2959 = and i32 %2958, 15
  %2960 = icmp eq i32 15, %2959
  br i1 %2960, label %2961, label %2962

2961:                                             ; preds = %2954
  br label %2964

2962:                                             ; preds = %2954
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 959, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

2963:                                             ; No predecessors!
  br label %2964

2964:                                             ; preds = %2963, %2961
  %2965 = phi i32 [ 15, %2961 ], [ 0, %2963 ]
  br label %2966

2966:                                             ; preds = %2964, %2953
  %2967 = phi i32 [ 14, %2953 ], [ %2965, %2964 ]
  br label %2968

2968:                                             ; preds = %2966, %2945
  %2969 = phi i32 [ 12, %2945 ], [ %2967, %2966 ]
  br label %2970

2970:                                             ; preds = %2968, %2937
  %2971 = phi i32 [ 12, %2937 ], [ %2969, %2968 ]
  br label %2972

2972:                                             ; preds = %2970, %2929
  %2973 = phi i32 [ 10, %2929 ], [ %2971, %2970 ]
  br label %2974

2974:                                             ; preds = %2972, %2921
  %2975 = phi i32 [ 10, %2921 ], [ %2973, %2972 ]
  br label %2976

2976:                                             ; preds = %2974, %2913
  %2977 = phi i32 [ 8, %2913 ], [ %2975, %2974 ]
  br label %2978

2978:                                             ; preds = %2976, %2905
  %2979 = phi i32 [ 8, %2905 ], [ %2977, %2976 ]
  br label %2980

2980:                                             ; preds = %2978, %2897
  %2981 = phi i32 [ 6, %2897 ], [ %2979, %2978 ]
  br label %2982

2982:                                             ; preds = %2980, %2889
  %2983 = phi i32 [ 6, %2889 ], [ %2981, %2980 ]
  br label %2984

2984:                                             ; preds = %2982, %2881
  %2985 = phi i32 [ 5, %2881 ], [ %2983, %2982 ]
  br label %2986

2986:                                             ; preds = %2984, %2873
  %2987 = phi i32 [ 4, %2873 ], [ %2985, %2984 ]
  br label %2988

2988:                                             ; preds = %2986, %2865
  %2989 = phi i32 [ 3, %2865 ], [ %2987, %2986 ]
  br label %2990

2990:                                             ; preds = %2988, %2857
  %2991 = phi i32 [ 2, %2857 ], [ %2989, %2988 ]
  br label %2992

2992:                                             ; preds = %2990, %2849
  %2993 = phi i32 [ 1, %2849 ], [ %2991, %2990 ]
  br label %2994

2994:                                             ; preds = %2992, %2841
  %2995 = phi i32 [ 0, %2841 ], [ %2993, %2992 ]
  br label %3002

2996:                                             ; preds = %2827
  %2997 = load ptr, ptr %14, align 8, !tbaa !5
  %2998 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2997, i32 0, i32 3
  %2999 = load i8, ptr %2998, align 1, !tbaa !26
  %3000 = zext i8 %2999 to i32
  %3001 = ashr i32 %3000, 4
  br label %3002

3002:                                             ; preds = %2996, %2994
  %3003 = phi i32 [ %2995, %2994 ], [ %3001, %2996 ]
  %3004 = icmp eq i32 1, %3003
  br i1 %3004, label %3005, label %3006

3005:                                             ; preds = %3002
  br label %5180

3006:                                             ; preds = %3002
  %3007 = load ptr, ptr %14, align 8, !tbaa !5
  %3008 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3007, i32 0, i32 3
  %3009 = load i8, ptr %3008, align 1, !tbaa !26
  %3010 = zext i8 %3009 to i32
  %3011 = ashr i32 %3010, 4
  %3012 = icmp eq i32 0, %3011
  br i1 %3012, label %3013, label %3175

3013:                                             ; preds = %3006
  %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 !26
  %3017 = zext i8 %3016 to i32
  %3018 = and i32 %3017, 15
  %3019 = icmp eq i32 0, %3018
  br i1 %3019, label %3020, label %3021

3020:                                             ; preds = %3013
  br label %3173

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 !26
  %3025 = zext i8 %3024 to i32
  %3026 = and i32 %3025, 15
  %3027 = icmp eq i32 1, %3026
  br i1 %3027, label %3028, label %3029

3028:                                             ; preds = %3021
  br label %3171

3029:                                             ; preds = %3021
  %3030 = load ptr, ptr %14, align 8, !tbaa !5
  %3031 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3030, i32 0, i32 3
  %3032 = load i8, ptr %3031, align 1, !tbaa !26
  %3033 = zext i8 %3032 to i32
  %3034 = and i32 %3033, 15
  %3035 = icmp eq i32 2, %3034
  br i1 %3035, label %3036, label %3037

3036:                                             ; preds = %3029
  br label %3169

3037:                                             ; preds = %3029
  %3038 = load ptr, ptr %14, align 8, !tbaa !5
  %3039 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3038, i32 0, i32 3
  %3040 = load i8, ptr %3039, align 1, !tbaa !26
  %3041 = zext i8 %3040 to i32
  %3042 = and i32 %3041, 15
  %3043 = icmp eq i32 3, %3042
  br i1 %3043, label %3044, label %3045

3044:                                             ; preds = %3037
  br label %3167

3045:                                             ; preds = %3037
  %3046 = load ptr, ptr %14, align 8, !tbaa !5
  %3047 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3046, i32 0, i32 3
  %3048 = load i8, ptr %3047, align 1, !tbaa !26
  %3049 = zext i8 %3048 to i32
  %3050 = and i32 %3049, 15
  %3051 = icmp eq i32 4, %3050
  br i1 %3051, label %3052, label %3053

3052:                                             ; preds = %3045
  br label %3165

3053:                                             ; preds = %3045
  %3054 = load ptr, ptr %14, align 8, !tbaa !5
  %3055 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3054, i32 0, i32 3
  %3056 = load i8, ptr %3055, align 1, !tbaa !26
  %3057 = zext i8 %3056 to i32
  %3058 = and i32 %3057, 15
  %3059 = icmp eq i32 5, %3058
  br i1 %3059, label %3060, label %3061

3060:                                             ; preds = %3053
  br label %3163

3061:                                             ; preds = %3053
  %3062 = load ptr, ptr %14, align 8, !tbaa !5
  %3063 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3062, i32 0, i32 3
  %3064 = load i8, ptr %3063, align 1, !tbaa !26
  %3065 = zext i8 %3064 to i32
  %3066 = and i32 %3065, 15
  %3067 = icmp eq i32 6, %3066
  br i1 %3067, label %3068, label %3069

3068:                                             ; preds = %3061
  br label %3161

3069:                                             ; preds = %3061
  %3070 = load ptr, ptr %14, align 8, !tbaa !5
  %3071 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3070, i32 0, i32 3
  %3072 = load i8, ptr %3071, align 1, !tbaa !26
  %3073 = zext i8 %3072 to i32
  %3074 = and i32 %3073, 15
  %3075 = icmp eq i32 7, %3074
  br i1 %3075, label %3076, label %3077

3076:                                             ; preds = %3069
  br label %3159

3077:                                             ; preds = %3069
  %3078 = load ptr, ptr %14, align 8, !tbaa !5
  %3079 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3078, i32 0, i32 3
  %3080 = load i8, ptr %3079, align 1, !tbaa !26
  %3081 = zext i8 %3080 to i32
  %3082 = and i32 %3081, 15
  %3083 = icmp eq i32 8, %3082
  br i1 %3083, label %3084, label %3085

3084:                                             ; preds = %3077
  br label %3157

3085:                                             ; preds = %3077
  %3086 = load ptr, ptr %14, align 8, !tbaa !5
  %3087 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3086, i32 0, i32 3
  %3088 = load i8, ptr %3087, align 1, !tbaa !26
  %3089 = zext i8 %3088 to i32
  %3090 = and i32 %3089, 15
  %3091 = icmp eq i32 9, %3090
  br i1 %3091, label %3092, label %3093

3092:                                             ; preds = %3085
  br label %3155

3093:                                             ; preds = %3085
  %3094 = load ptr, ptr %14, align 8, !tbaa !5
  %3095 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3094, i32 0, i32 3
  %3096 = load i8, ptr %3095, align 1, !tbaa !26
  %3097 = zext i8 %3096 to i32
  %3098 = and i32 %3097, 15
  %3099 = icmp eq i32 10, %3098
  br i1 %3099, label %3100, label %3101

3100:                                             ; preds = %3093
  br label %3153

3101:                                             ; preds = %3093
  %3102 = load ptr, ptr %14, align 8, !tbaa !5
  %3103 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3102, i32 0, i32 3
  %3104 = load i8, ptr %3103, align 1, !tbaa !26
  %3105 = zext i8 %3104 to i32
  %3106 = and i32 %3105, 15
  %3107 = icmp eq i32 11, %3106
  br i1 %3107, label %3108, label %3109

3108:                                             ; preds = %3101
  br label %3151

3109:                                             ; preds = %3101
  %3110 = load ptr, ptr %14, align 8, !tbaa !5
  %3111 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3110, i32 0, i32 3
  %3112 = load i8, ptr %3111, align 1, !tbaa !26
  %3113 = zext i8 %3112 to i32
  %3114 = and i32 %3113, 15
  %3115 = icmp eq i32 12, %3114
  br i1 %3115, label %3116, label %3117

3116:                                             ; preds = %3109
  br label %3149

3117:                                             ; preds = %3109
  %3118 = load ptr, ptr %14, align 8, !tbaa !5
  %3119 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3118, i32 0, i32 3
  %3120 = load i8, ptr %3119, align 1, !tbaa !26
  %3121 = zext i8 %3120 to i32
  %3122 = and i32 %3121, 15
  %3123 = icmp eq i32 13, %3122
  br i1 %3123, label %3124, label %3125

3124:                                             ; preds = %3117
  br label %3147

3125:                                             ; preds = %3117
  %3126 = load ptr, ptr %14, align 8, !tbaa !5
  %3127 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3126, i32 0, i32 3
  %3128 = load i8, ptr %3127, align 1, !tbaa !26
  %3129 = zext i8 %3128 to i32
  %3130 = and i32 %3129, 15
  %3131 = icmp eq i32 14, %3130
  br i1 %3131, label %3132, label %3133

3132:                                             ; preds = %3125
  br label %3145

3133:                                             ; preds = %3125
  %3134 = load ptr, ptr %14, align 8, !tbaa !5
  %3135 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3134, i32 0, i32 3
  %3136 = load i8, ptr %3135, align 1, !tbaa !26
  %3137 = zext i8 %3136 to i32
  %3138 = and i32 %3137, 15
  %3139 = icmp eq i32 15, %3138
  br i1 %3139, label %3140, label %3141

3140:                                             ; preds = %3133
  br label %3143

3141:                                             ; preds = %3133
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 959, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

3142:                                             ; No predecessors!
  br label %3143

3143:                                             ; preds = %3142, %3140
  %3144 = phi i32 [ 15, %3140 ], [ 0, %3142 ]
  br label %3145

3145:                                             ; preds = %3143, %3132
  %3146 = phi i32 [ 14, %3132 ], [ %3144, %3143 ]
  br label %3147

3147:                                             ; preds = %3145, %3124
  %3148 = phi i32 [ 12, %3124 ], [ %3146, %3145 ]
  br label %3149

3149:                                             ; preds = %3147, %3116
  %3150 = phi i32 [ 12, %3116 ], [ %3148, %3147 ]
  br label %3151

3151:                                             ; preds = %3149, %3108
  %3152 = phi i32 [ 10, %3108 ], [ %3150, %3149 ]
  br label %3153

3153:                                             ; preds = %3151, %3100
  %3154 = phi i32 [ 10, %3100 ], [ %3152, %3151 ]
  br label %3155

3155:                                             ; preds = %3153, %3092
  %3156 = phi i32 [ 8, %3092 ], [ %3154, %3153 ]
  br label %3157

3157:                                             ; preds = %3155, %3084
  %3158 = phi i32 [ 8, %3084 ], [ %3156, %3155 ]
  br label %3159

3159:                                             ; preds = %3157, %3076
  %3160 = phi i32 [ 6, %3076 ], [ %3158, %3157 ]
  br label %3161

3161:                                             ; preds = %3159, %3068
  %3162 = phi i32 [ 6, %3068 ], [ %3160, %3159 ]
  br label %3163

3163:                                             ; preds = %3161, %3060
  %3164 = phi i32 [ 5, %3060 ], [ %3162, %3161 ]
  br label %3165

3165:                                             ; preds = %3163, %3052
  %3166 = phi i32 [ 4, %3052 ], [ %3164, %3163 ]
  br label %3167

3167:                                             ; preds = %3165, %3044
  %3168 = phi i32 [ 3, %3044 ], [ %3166, %3165 ]
  br label %3169

3169:                                             ; preds = %3167, %3036
  %3170 = phi i32 [ 2, %3036 ], [ %3168, %3167 ]
  br label %3171

3171:                                             ; preds = %3169, %3028
  %3172 = phi i32 [ 1, %3028 ], [ %3170, %3169 ]
  br label %3173

3173:                                             ; preds = %3171, %3020
  %3174 = phi i32 [ 0, %3020 ], [ %3172, %3171 ]
  br label %3181

3175:                                             ; preds = %3006
  %3176 = load ptr, ptr %14, align 8, !tbaa !5
  %3177 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3176, i32 0, i32 3
  %3178 = load i8, ptr %3177, align 1, !tbaa !26
  %3179 = zext i8 %3178 to i32
  %3180 = ashr i32 %3179, 4
  br label %3181

3181:                                             ; preds = %3175, %3173
  %3182 = phi i32 [ %3174, %3173 ], [ %3180, %3175 ]
  %3183 = icmp eq i32 2, %3182
  br i1 %3183, label %3184, label %3185

3184:                                             ; preds = %3181
  br label %5178

3185:                                             ; preds = %3181
  %3186 = load ptr, ptr %14, align 8, !tbaa !5
  %3187 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3186, i32 0, i32 3
  %3188 = load i8, ptr %3187, align 1, !tbaa !26
  %3189 = zext i8 %3188 to i32
  %3190 = ashr i32 %3189, 4
  %3191 = icmp eq i32 0, %3190
  br i1 %3191, label %3192, label %3354

3192:                                             ; preds = %3185
  %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 !26
  %3196 = zext i8 %3195 to i32
  %3197 = and i32 %3196, 15
  %3198 = icmp eq i32 0, %3197
  br i1 %3198, label %3199, label %3200

3199:                                             ; preds = %3192
  br label %3352

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 !26
  %3204 = zext i8 %3203 to i32
  %3205 = and i32 %3204, 15
  %3206 = icmp eq i32 1, %3205
  br i1 %3206, label %3207, label %3208

3207:                                             ; preds = %3200
  br label %3350

3208:                                             ; preds = %3200
  %3209 = load ptr, ptr %14, align 8, !tbaa !5
  %3210 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3209, i32 0, i32 3
  %3211 = load i8, ptr %3210, align 1, !tbaa !26
  %3212 = zext i8 %3211 to i32
  %3213 = and i32 %3212, 15
  %3214 = icmp eq i32 2, %3213
  br i1 %3214, label %3215, label %3216

3215:                                             ; preds = %3208
  br label %3348

3216:                                             ; preds = %3208
  %3217 = load ptr, ptr %14, align 8, !tbaa !5
  %3218 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3217, i32 0, i32 3
  %3219 = load i8, ptr %3218, align 1, !tbaa !26
  %3220 = zext i8 %3219 to i32
  %3221 = and i32 %3220, 15
  %3222 = icmp eq i32 3, %3221
  br i1 %3222, label %3223, label %3224

3223:                                             ; preds = %3216
  br label %3346

3224:                                             ; preds = %3216
  %3225 = load ptr, ptr %14, align 8, !tbaa !5
  %3226 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3225, i32 0, i32 3
  %3227 = load i8, ptr %3226, align 1, !tbaa !26
  %3228 = zext i8 %3227 to i32
  %3229 = and i32 %3228, 15
  %3230 = icmp eq i32 4, %3229
  br i1 %3230, label %3231, label %3232

3231:                                             ; preds = %3224
  br label %3344

3232:                                             ; preds = %3224
  %3233 = load ptr, ptr %14, align 8, !tbaa !5
  %3234 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3233, i32 0, i32 3
  %3235 = load i8, ptr %3234, align 1, !tbaa !26
  %3236 = zext i8 %3235 to i32
  %3237 = and i32 %3236, 15
  %3238 = icmp eq i32 5, %3237
  br i1 %3238, label %3239, label %3240

3239:                                             ; preds = %3232
  br label %3342

3240:                                             ; preds = %3232
  %3241 = load ptr, ptr %14, align 8, !tbaa !5
  %3242 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3241, i32 0, i32 3
  %3243 = load i8, ptr %3242, align 1, !tbaa !26
  %3244 = zext i8 %3243 to i32
  %3245 = and i32 %3244, 15
  %3246 = icmp eq i32 6, %3245
  br i1 %3246, label %3247, label %3248

3247:                                             ; preds = %3240
  br label %3340

3248:                                             ; preds = %3240
  %3249 = load ptr, ptr %14, align 8, !tbaa !5
  %3250 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3249, i32 0, i32 3
  %3251 = load i8, ptr %3250, align 1, !tbaa !26
  %3252 = zext i8 %3251 to i32
  %3253 = and i32 %3252, 15
  %3254 = icmp eq i32 7, %3253
  br i1 %3254, label %3255, label %3256

3255:                                             ; preds = %3248
  br label %3338

3256:                                             ; preds = %3248
  %3257 = load ptr, ptr %14, align 8, !tbaa !5
  %3258 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3257, i32 0, i32 3
  %3259 = load i8, ptr %3258, align 1, !tbaa !26
  %3260 = zext i8 %3259 to i32
  %3261 = and i32 %3260, 15
  %3262 = icmp eq i32 8, %3261
  br i1 %3262, label %3263, label %3264

3263:                                             ; preds = %3256
  br label %3336

3264:                                             ; preds = %3256
  %3265 = load ptr, ptr %14, align 8, !tbaa !5
  %3266 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3265, i32 0, i32 3
  %3267 = load i8, ptr %3266, align 1, !tbaa !26
  %3268 = zext i8 %3267 to i32
  %3269 = and i32 %3268, 15
  %3270 = icmp eq i32 9, %3269
  br i1 %3270, label %3271, label %3272

3271:                                             ; preds = %3264
  br label %3334

3272:                                             ; preds = %3264
  %3273 = load ptr, ptr %14, align 8, !tbaa !5
  %3274 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3273, i32 0, i32 3
  %3275 = load i8, ptr %3274, align 1, !tbaa !26
  %3276 = zext i8 %3275 to i32
  %3277 = and i32 %3276, 15
  %3278 = icmp eq i32 10, %3277
  br i1 %3278, label %3279, label %3280

3279:                                             ; preds = %3272
  br label %3332

3280:                                             ; preds = %3272
  %3281 = load ptr, ptr %14, align 8, !tbaa !5
  %3282 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3281, i32 0, i32 3
  %3283 = load i8, ptr %3282, align 1, !tbaa !26
  %3284 = zext i8 %3283 to i32
  %3285 = and i32 %3284, 15
  %3286 = icmp eq i32 11, %3285
  br i1 %3286, label %3287, label %3288

3287:                                             ; preds = %3280
  br label %3330

3288:                                             ; preds = %3280
  %3289 = load ptr, ptr %14, align 8, !tbaa !5
  %3290 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3289, i32 0, i32 3
  %3291 = load i8, ptr %3290, align 1, !tbaa !26
  %3292 = zext i8 %3291 to i32
  %3293 = and i32 %3292, 15
  %3294 = icmp eq i32 12, %3293
  br i1 %3294, label %3295, label %3296

3295:                                             ; preds = %3288
  br label %3328

3296:                                             ; preds = %3288
  %3297 = load ptr, ptr %14, align 8, !tbaa !5
  %3298 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3297, i32 0, i32 3
  %3299 = load i8, ptr %3298, align 1, !tbaa !26
  %3300 = zext i8 %3299 to i32
  %3301 = and i32 %3300, 15
  %3302 = icmp eq i32 13, %3301
  br i1 %3302, label %3303, label %3304

3303:                                             ; preds = %3296
  br label %3326

3304:                                             ; preds = %3296
  %3305 = load ptr, ptr %14, align 8, !tbaa !5
  %3306 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3305, i32 0, i32 3
  %3307 = load i8, ptr %3306, align 1, !tbaa !26
  %3308 = zext i8 %3307 to i32
  %3309 = and i32 %3308, 15
  %3310 = icmp eq i32 14, %3309
  br i1 %3310, label %3311, label %3312

3311:                                             ; preds = %3304
  br label %3324

3312:                                             ; preds = %3304
  %3313 = load ptr, ptr %14, align 8, !tbaa !5
  %3314 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3313, i32 0, i32 3
  %3315 = load i8, ptr %3314, align 1, !tbaa !26
  %3316 = zext i8 %3315 to i32
  %3317 = and i32 %3316, 15
  %3318 = icmp eq i32 15, %3317
  br i1 %3318, label %3319, label %3320

3319:                                             ; preds = %3312
  br label %3322

3320:                                             ; preds = %3312
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 959, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

3321:                                             ; No predecessors!
  br label %3322

3322:                                             ; preds = %3321, %3319
  %3323 = phi i32 [ 15, %3319 ], [ 0, %3321 ]
  br label %3324

3324:                                             ; preds = %3322, %3311
  %3325 = phi i32 [ 14, %3311 ], [ %3323, %3322 ]
  br label %3326

3326:                                             ; preds = %3324, %3303
  %3327 = phi i32 [ 12, %3303 ], [ %3325, %3324 ]
  br label %3328

3328:                                             ; preds = %3326, %3295
  %3329 = phi i32 [ 12, %3295 ], [ %3327, %3326 ]
  br label %3330

3330:                                             ; preds = %3328, %3287
  %3331 = phi i32 [ 10, %3287 ], [ %3329, %3328 ]
  br label %3332

3332:                                             ; preds = %3330, %3279
  %3333 = phi i32 [ 10, %3279 ], [ %3331, %3330 ]
  br label %3334

3334:                                             ; preds = %3332, %3271
  %3335 = phi i32 [ 8, %3271 ], [ %3333, %3332 ]
  br label %3336

3336:                                             ; preds = %3334, %3263
  %3337 = phi i32 [ 8, %3263 ], [ %3335, %3334 ]
  br label %3338

3338:                                             ; preds = %3336, %3255
  %3339 = phi i32 [ 6, %3255 ], [ %3337, %3336 ]
  br label %3340

3340:                                             ; preds = %3338, %3247
  %3341 = phi i32 [ 6, %3247 ], [ %3339, %3338 ]
  br label %3342

3342:                                             ; preds = %3340, %3239
  %3343 = phi i32 [ 5, %3239 ], [ %3341, %3340 ]
  br label %3344

3344:                                             ; preds = %3342, %3231
  %3345 = phi i32 [ 4, %3231 ], [ %3343, %3342 ]
  br label %3346

3346:                                             ; preds = %3344, %3223
  %3347 = phi i32 [ 3, %3223 ], [ %3345, %3344 ]
  br label %3348

3348:                                             ; preds = %3346, %3215
  %3349 = phi i32 [ 2, %3215 ], [ %3347, %3346 ]
  br label %3350

3350:                                             ; preds = %3348, %3207
  %3351 = phi i32 [ 1, %3207 ], [ %3349, %3348 ]
  br label %3352

3352:                                             ; preds = %3350, %3199
  %3353 = phi i32 [ 0, %3199 ], [ %3351, %3350 ]
  br label %3360

3354:                                             ; preds = %3185
  %3355 = load ptr, ptr %14, align 8, !tbaa !5
  %3356 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3355, i32 0, i32 3
  %3357 = load i8, ptr %3356, align 1, !tbaa !26
  %3358 = zext i8 %3357 to i32
  %3359 = ashr i32 %3358, 4
  br label %3360

3360:                                             ; preds = %3354, %3352
  %3361 = phi i32 [ %3353, %3352 ], [ %3359, %3354 ]
  %3362 = icmp eq i32 3, %3361
  br i1 %3362, label %3363, label %3364

3363:                                             ; preds = %3360
  br label %5176

3364:                                             ; preds = %3360
  %3365 = load ptr, ptr %14, align 8, !tbaa !5
  %3366 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3365, i32 0, i32 3
  %3367 = load i8, ptr %3366, align 1, !tbaa !26
  %3368 = zext i8 %3367 to i32
  %3369 = ashr i32 %3368, 4
  %3370 = icmp eq i32 0, %3369
  br i1 %3370, label %3371, label %3533

3371:                                             ; preds = %3364
  %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 !26
  %3375 = zext i8 %3374 to i32
  %3376 = and i32 %3375, 15
  %3377 = icmp eq i32 0, %3376
  br i1 %3377, label %3378, label %3379

3378:                                             ; preds = %3371
  br label %3531

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 !26
  %3383 = zext i8 %3382 to i32
  %3384 = and i32 %3383, 15
  %3385 = icmp eq i32 1, %3384
  br i1 %3385, label %3386, label %3387

3386:                                             ; preds = %3379
  br label %3529

3387:                                             ; preds = %3379
  %3388 = load ptr, ptr %14, align 8, !tbaa !5
  %3389 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3388, i32 0, i32 3
  %3390 = load i8, ptr %3389, align 1, !tbaa !26
  %3391 = zext i8 %3390 to i32
  %3392 = and i32 %3391, 15
  %3393 = icmp eq i32 2, %3392
  br i1 %3393, label %3394, label %3395

3394:                                             ; preds = %3387
  br label %3527

3395:                                             ; preds = %3387
  %3396 = load ptr, ptr %14, align 8, !tbaa !5
  %3397 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3396, i32 0, i32 3
  %3398 = load i8, ptr %3397, align 1, !tbaa !26
  %3399 = zext i8 %3398 to i32
  %3400 = and i32 %3399, 15
  %3401 = icmp eq i32 3, %3400
  br i1 %3401, label %3402, label %3403

3402:                                             ; preds = %3395
  br label %3525

3403:                                             ; preds = %3395
  %3404 = load ptr, ptr %14, align 8, !tbaa !5
  %3405 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3404, i32 0, i32 3
  %3406 = load i8, ptr %3405, align 1, !tbaa !26
  %3407 = zext i8 %3406 to i32
  %3408 = and i32 %3407, 15
  %3409 = icmp eq i32 4, %3408
  br i1 %3409, label %3410, label %3411

3410:                                             ; preds = %3403
  br label %3523

3411:                                             ; preds = %3403
  %3412 = load ptr, ptr %14, align 8, !tbaa !5
  %3413 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3412, i32 0, i32 3
  %3414 = load i8, ptr %3413, align 1, !tbaa !26
  %3415 = zext i8 %3414 to i32
  %3416 = and i32 %3415, 15
  %3417 = icmp eq i32 5, %3416
  br i1 %3417, label %3418, label %3419

3418:                                             ; preds = %3411
  br label %3521

3419:                                             ; preds = %3411
  %3420 = load ptr, ptr %14, align 8, !tbaa !5
  %3421 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3420, i32 0, i32 3
  %3422 = load i8, ptr %3421, align 1, !tbaa !26
  %3423 = zext i8 %3422 to i32
  %3424 = and i32 %3423, 15
  %3425 = icmp eq i32 6, %3424
  br i1 %3425, label %3426, label %3427

3426:                                             ; preds = %3419
  br label %3519

3427:                                             ; preds = %3419
  %3428 = load ptr, ptr %14, align 8, !tbaa !5
  %3429 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3428, i32 0, i32 3
  %3430 = load i8, ptr %3429, align 1, !tbaa !26
  %3431 = zext i8 %3430 to i32
  %3432 = and i32 %3431, 15
  %3433 = icmp eq i32 7, %3432
  br i1 %3433, label %3434, label %3435

3434:                                             ; preds = %3427
  br label %3517

3435:                                             ; preds = %3427
  %3436 = load ptr, ptr %14, align 8, !tbaa !5
  %3437 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3436, i32 0, i32 3
  %3438 = load i8, ptr %3437, align 1, !tbaa !26
  %3439 = zext i8 %3438 to i32
  %3440 = and i32 %3439, 15
  %3441 = icmp eq i32 8, %3440
  br i1 %3441, label %3442, label %3443

3442:                                             ; preds = %3435
  br label %3515

3443:                                             ; preds = %3435
  %3444 = load ptr, ptr %14, align 8, !tbaa !5
  %3445 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3444, i32 0, i32 3
  %3446 = load i8, ptr %3445, align 1, !tbaa !26
  %3447 = zext i8 %3446 to i32
  %3448 = and i32 %3447, 15
  %3449 = icmp eq i32 9, %3448
  br i1 %3449, label %3450, label %3451

3450:                                             ; preds = %3443
  br label %3513

3451:                                             ; preds = %3443
  %3452 = load ptr, ptr %14, align 8, !tbaa !5
  %3453 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3452, i32 0, i32 3
  %3454 = load i8, ptr %3453, align 1, !tbaa !26
  %3455 = zext i8 %3454 to i32
  %3456 = and i32 %3455, 15
  %3457 = icmp eq i32 10, %3456
  br i1 %3457, label %3458, label %3459

3458:                                             ; preds = %3451
  br label %3511

3459:                                             ; preds = %3451
  %3460 = load ptr, ptr %14, align 8, !tbaa !5
  %3461 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3460, i32 0, i32 3
  %3462 = load i8, ptr %3461, align 1, !tbaa !26
  %3463 = zext i8 %3462 to i32
  %3464 = and i32 %3463, 15
  %3465 = icmp eq i32 11, %3464
  br i1 %3465, label %3466, label %3467

3466:                                             ; preds = %3459
  br label %3509

3467:                                             ; preds = %3459
  %3468 = load ptr, ptr %14, align 8, !tbaa !5
  %3469 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3468, i32 0, i32 3
  %3470 = load i8, ptr %3469, align 1, !tbaa !26
  %3471 = zext i8 %3470 to i32
  %3472 = and i32 %3471, 15
  %3473 = icmp eq i32 12, %3472
  br i1 %3473, label %3474, label %3475

3474:                                             ; preds = %3467
  br label %3507

3475:                                             ; preds = %3467
  %3476 = load ptr, ptr %14, align 8, !tbaa !5
  %3477 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3476, i32 0, i32 3
  %3478 = load i8, ptr %3477, align 1, !tbaa !26
  %3479 = zext i8 %3478 to i32
  %3480 = and i32 %3479, 15
  %3481 = icmp eq i32 13, %3480
  br i1 %3481, label %3482, label %3483

3482:                                             ; preds = %3475
  br label %3505

3483:                                             ; preds = %3475
  %3484 = load ptr, ptr %14, align 8, !tbaa !5
  %3485 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3484, i32 0, i32 3
  %3486 = load i8, ptr %3485, align 1, !tbaa !26
  %3487 = zext i8 %3486 to i32
  %3488 = and i32 %3487, 15
  %3489 = icmp eq i32 14, %3488
  br i1 %3489, label %3490, label %3491

3490:                                             ; preds = %3483
  br label %3503

3491:                                             ; preds = %3483
  %3492 = load ptr, ptr %14, align 8, !tbaa !5
  %3493 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3492, i32 0, i32 3
  %3494 = load i8, ptr %3493, align 1, !tbaa !26
  %3495 = zext i8 %3494 to i32
  %3496 = and i32 %3495, 15
  %3497 = icmp eq i32 15, %3496
  br i1 %3497, label %3498, label %3499

3498:                                             ; preds = %3491
  br label %3501

3499:                                             ; preds = %3491
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 959, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

3500:                                             ; No predecessors!
  br label %3501

3501:                                             ; preds = %3500, %3498
  %3502 = phi i32 [ 15, %3498 ], [ 0, %3500 ]
  br label %3503

3503:                                             ; preds = %3501, %3490
  %3504 = phi i32 [ 14, %3490 ], [ %3502, %3501 ]
  br label %3505

3505:                                             ; preds = %3503, %3482
  %3506 = phi i32 [ 12, %3482 ], [ %3504, %3503 ]
  br label %3507

3507:                                             ; preds = %3505, %3474
  %3508 = phi i32 [ 12, %3474 ], [ %3506, %3505 ]
  br label %3509

3509:                                             ; preds = %3507, %3466
  %3510 = phi i32 [ 10, %3466 ], [ %3508, %3507 ]
  br label %3511

3511:                                             ; preds = %3509, %3458
  %3512 = phi i32 [ 10, %3458 ], [ %3510, %3509 ]
  br label %3513

3513:                                             ; preds = %3511, %3450
  %3514 = phi i32 [ 8, %3450 ], [ %3512, %3511 ]
  br label %3515

3515:                                             ; preds = %3513, %3442
  %3516 = phi i32 [ 8, %3442 ], [ %3514, %3513 ]
  br label %3517

3517:                                             ; preds = %3515, %3434
  %3518 = phi i32 [ 6, %3434 ], [ %3516, %3515 ]
  br label %3519

3519:                                             ; preds = %3517, %3426
  %3520 = phi i32 [ 6, %3426 ], [ %3518, %3517 ]
  br label %3521

3521:                                             ; preds = %3519, %3418
  %3522 = phi i32 [ 5, %3418 ], [ %3520, %3519 ]
  br label %3523

3523:                                             ; preds = %3521, %3410
  %3524 = phi i32 [ 4, %3410 ], [ %3522, %3521 ]
  br label %3525

3525:                                             ; preds = %3523, %3402
  %3526 = phi i32 [ 3, %3402 ], [ %3524, %3523 ]
  br label %3527

3527:                                             ; preds = %3525, %3394
  %3528 = phi i32 [ 2, %3394 ], [ %3526, %3525 ]
  br label %3529

3529:                                             ; preds = %3527, %3386
  %3530 = phi i32 [ 1, %3386 ], [ %3528, %3527 ]
  br label %3531

3531:                                             ; preds = %3529, %3378
  %3532 = phi i32 [ 0, %3378 ], [ %3530, %3529 ]
  br label %3539

3533:                                             ; preds = %3364
  %3534 = load ptr, ptr %14, align 8, !tbaa !5
  %3535 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3534, i32 0, i32 3
  %3536 = load i8, ptr %3535, align 1, !tbaa !26
  %3537 = zext i8 %3536 to i32
  %3538 = ashr i32 %3537, 4
  br label %3539

3539:                                             ; preds = %3533, %3531
  %3540 = phi i32 [ %3532, %3531 ], [ %3538, %3533 ]
  %3541 = icmp eq i32 4, %3540
  br i1 %3541, label %3542, label %3543

3542:                                             ; preds = %3539
  br label %5174

3543:                                             ; preds = %3539
  %3544 = load ptr, ptr %14, align 8, !tbaa !5
  %3545 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3544, i32 0, i32 3
  %3546 = load i8, ptr %3545, align 1, !tbaa !26
  %3547 = zext i8 %3546 to i32
  %3548 = ashr i32 %3547, 4
  %3549 = icmp eq i32 0, %3548
  br i1 %3549, label %3550, label %3712

3550:                                             ; preds = %3543
  %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 !26
  %3554 = zext i8 %3553 to i32
  %3555 = and i32 %3554, 15
  %3556 = icmp eq i32 0, %3555
  br i1 %3556, label %3557, label %3558

3557:                                             ; preds = %3550
  br label %3710

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 !26
  %3562 = zext i8 %3561 to i32
  %3563 = and i32 %3562, 15
  %3564 = icmp eq i32 1, %3563
  br i1 %3564, label %3565, label %3566

3565:                                             ; preds = %3558
  br label %3708

3566:                                             ; preds = %3558
  %3567 = load ptr, ptr %14, align 8, !tbaa !5
  %3568 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3567, i32 0, i32 3
  %3569 = load i8, ptr %3568, align 1, !tbaa !26
  %3570 = zext i8 %3569 to i32
  %3571 = and i32 %3570, 15
  %3572 = icmp eq i32 2, %3571
  br i1 %3572, label %3573, label %3574

3573:                                             ; preds = %3566
  br label %3706

3574:                                             ; preds = %3566
  %3575 = load ptr, ptr %14, align 8, !tbaa !5
  %3576 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3575, i32 0, i32 3
  %3577 = load i8, ptr %3576, align 1, !tbaa !26
  %3578 = zext i8 %3577 to i32
  %3579 = and i32 %3578, 15
  %3580 = icmp eq i32 3, %3579
  br i1 %3580, label %3581, label %3582

3581:                                             ; preds = %3574
  br label %3704

3582:                                             ; preds = %3574
  %3583 = load ptr, ptr %14, align 8, !tbaa !5
  %3584 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3583, i32 0, i32 3
  %3585 = load i8, ptr %3584, align 1, !tbaa !26
  %3586 = zext i8 %3585 to i32
  %3587 = and i32 %3586, 15
  %3588 = icmp eq i32 4, %3587
  br i1 %3588, label %3589, label %3590

3589:                                             ; preds = %3582
  br label %3702

3590:                                             ; preds = %3582
  %3591 = load ptr, ptr %14, align 8, !tbaa !5
  %3592 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3591, i32 0, i32 3
  %3593 = load i8, ptr %3592, align 1, !tbaa !26
  %3594 = zext i8 %3593 to i32
  %3595 = and i32 %3594, 15
  %3596 = icmp eq i32 5, %3595
  br i1 %3596, label %3597, label %3598

3597:                                             ; preds = %3590
  br label %3700

3598:                                             ; preds = %3590
  %3599 = load ptr, ptr %14, align 8, !tbaa !5
  %3600 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3599, i32 0, i32 3
  %3601 = load i8, ptr %3600, align 1, !tbaa !26
  %3602 = zext i8 %3601 to i32
  %3603 = and i32 %3602, 15
  %3604 = icmp eq i32 6, %3603
  br i1 %3604, label %3605, label %3606

3605:                                             ; preds = %3598
  br label %3698

3606:                                             ; preds = %3598
  %3607 = load ptr, ptr %14, align 8, !tbaa !5
  %3608 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3607, i32 0, i32 3
  %3609 = load i8, ptr %3608, align 1, !tbaa !26
  %3610 = zext i8 %3609 to i32
  %3611 = and i32 %3610, 15
  %3612 = icmp eq i32 7, %3611
  br i1 %3612, label %3613, label %3614

3613:                                             ; preds = %3606
  br label %3696

3614:                                             ; preds = %3606
  %3615 = load ptr, ptr %14, align 8, !tbaa !5
  %3616 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3615, i32 0, i32 3
  %3617 = load i8, ptr %3616, align 1, !tbaa !26
  %3618 = zext i8 %3617 to i32
  %3619 = and i32 %3618, 15
  %3620 = icmp eq i32 8, %3619
  br i1 %3620, label %3621, label %3622

3621:                                             ; preds = %3614
  br label %3694

3622:                                             ; preds = %3614
  %3623 = load ptr, ptr %14, align 8, !tbaa !5
  %3624 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3623, i32 0, i32 3
  %3625 = load i8, ptr %3624, align 1, !tbaa !26
  %3626 = zext i8 %3625 to i32
  %3627 = and i32 %3626, 15
  %3628 = icmp eq i32 9, %3627
  br i1 %3628, label %3629, label %3630

3629:                                             ; preds = %3622
  br label %3692

3630:                                             ; preds = %3622
  %3631 = load ptr, ptr %14, align 8, !tbaa !5
  %3632 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3631, i32 0, i32 3
  %3633 = load i8, ptr %3632, align 1, !tbaa !26
  %3634 = zext i8 %3633 to i32
  %3635 = and i32 %3634, 15
  %3636 = icmp eq i32 10, %3635
  br i1 %3636, label %3637, label %3638

3637:                                             ; preds = %3630
  br label %3690

3638:                                             ; preds = %3630
  %3639 = load ptr, ptr %14, align 8, !tbaa !5
  %3640 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3639, i32 0, i32 3
  %3641 = load i8, ptr %3640, align 1, !tbaa !26
  %3642 = zext i8 %3641 to i32
  %3643 = and i32 %3642, 15
  %3644 = icmp eq i32 11, %3643
  br i1 %3644, label %3645, label %3646

3645:                                             ; preds = %3638
  br label %3688

3646:                                             ; preds = %3638
  %3647 = load ptr, ptr %14, align 8, !tbaa !5
  %3648 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3647, i32 0, i32 3
  %3649 = load i8, ptr %3648, align 1, !tbaa !26
  %3650 = zext i8 %3649 to i32
  %3651 = and i32 %3650, 15
  %3652 = icmp eq i32 12, %3651
  br i1 %3652, label %3653, label %3654

3653:                                             ; preds = %3646
  br label %3686

3654:                                             ; preds = %3646
  %3655 = load ptr, ptr %14, align 8, !tbaa !5
  %3656 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3655, i32 0, i32 3
  %3657 = load i8, ptr %3656, align 1, !tbaa !26
  %3658 = zext i8 %3657 to i32
  %3659 = and i32 %3658, 15
  %3660 = icmp eq i32 13, %3659
  br i1 %3660, label %3661, label %3662

3661:                                             ; preds = %3654
  br label %3684

3662:                                             ; preds = %3654
  %3663 = load ptr, ptr %14, align 8, !tbaa !5
  %3664 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3663, i32 0, i32 3
  %3665 = load i8, ptr %3664, align 1, !tbaa !26
  %3666 = zext i8 %3665 to i32
  %3667 = and i32 %3666, 15
  %3668 = icmp eq i32 14, %3667
  br i1 %3668, label %3669, label %3670

3669:                                             ; preds = %3662
  br label %3682

3670:                                             ; preds = %3662
  %3671 = load ptr, ptr %14, align 8, !tbaa !5
  %3672 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3671, i32 0, i32 3
  %3673 = load i8, ptr %3672, align 1, !tbaa !26
  %3674 = zext i8 %3673 to i32
  %3675 = and i32 %3674, 15
  %3676 = icmp eq i32 15, %3675
  br i1 %3676, label %3677, label %3678

3677:                                             ; preds = %3670
  br label %3680

3678:                                             ; preds = %3670
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 959, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

3679:                                             ; No predecessors!
  br label %3680

3680:                                             ; preds = %3679, %3677
  %3681 = phi i32 [ 15, %3677 ], [ 0, %3679 ]
  br label %3682

3682:                                             ; preds = %3680, %3669
  %3683 = phi i32 [ 14, %3669 ], [ %3681, %3680 ]
  br label %3684

3684:                                             ; preds = %3682, %3661
  %3685 = phi i32 [ 12, %3661 ], [ %3683, %3682 ]
  br label %3686

3686:                                             ; preds = %3684, %3653
  %3687 = phi i32 [ 12, %3653 ], [ %3685, %3684 ]
  br label %3688

3688:                                             ; preds = %3686, %3645
  %3689 = phi i32 [ 10, %3645 ], [ %3687, %3686 ]
  br label %3690

3690:                                             ; preds = %3688, %3637
  %3691 = phi i32 [ 10, %3637 ], [ %3689, %3688 ]
  br label %3692

3692:                                             ; preds = %3690, %3629
  %3693 = phi i32 [ 8, %3629 ], [ %3691, %3690 ]
  br label %3694

3694:                                             ; preds = %3692, %3621
  %3695 = phi i32 [ 8, %3621 ], [ %3693, %3692 ]
  br label %3696

3696:                                             ; preds = %3694, %3613
  %3697 = phi i32 [ 6, %3613 ], [ %3695, %3694 ]
  br label %3698

3698:                                             ; preds = %3696, %3605
  %3699 = phi i32 [ 6, %3605 ], [ %3697, %3696 ]
  br label %3700

3700:                                             ; preds = %3698, %3597
  %3701 = phi i32 [ 5, %3597 ], [ %3699, %3698 ]
  br label %3702

3702:                                             ; preds = %3700, %3589
  %3703 = phi i32 [ 4, %3589 ], [ %3701, %3700 ]
  br label %3704

3704:                                             ; preds = %3702, %3581
  %3705 = phi i32 [ 3, %3581 ], [ %3703, %3702 ]
  br label %3706

3706:                                             ; preds = %3704, %3573
  %3707 = phi i32 [ 2, %3573 ], [ %3705, %3704 ]
  br label %3708

3708:                                             ; preds = %3706, %3565
  %3709 = phi i32 [ 1, %3565 ], [ %3707, %3706 ]
  br label %3710

3710:                                             ; preds = %3708, %3557
  %3711 = phi i32 [ 0, %3557 ], [ %3709, %3708 ]
  br label %3718

3712:                                             ; preds = %3543
  %3713 = load ptr, ptr %14, align 8, !tbaa !5
  %3714 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3713, i32 0, i32 3
  %3715 = load i8, ptr %3714, align 1, !tbaa !26
  %3716 = zext i8 %3715 to i32
  %3717 = ashr i32 %3716, 4
  br label %3718

3718:                                             ; preds = %3712, %3710
  %3719 = phi i32 [ %3711, %3710 ], [ %3717, %3712 ]
  %3720 = icmp eq i32 5, %3719
  br i1 %3720, label %3721, label %3722

3721:                                             ; preds = %3718
  br label %5172

3722:                                             ; preds = %3718
  %3723 = load ptr, ptr %14, align 8, !tbaa !5
  %3724 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3723, i32 0, i32 3
  %3725 = load i8, ptr %3724, align 1, !tbaa !26
  %3726 = zext i8 %3725 to i32
  %3727 = ashr i32 %3726, 4
  %3728 = icmp eq i32 0, %3727
  br i1 %3728, label %3729, label %3891

3729:                                             ; preds = %3722
  %3730 = load ptr, ptr %14, align 8, !tbaa !5
  %3731 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3730, i32 0, i32 3
  %3732 = load i8, ptr %3731, align 1, !tbaa !26
  %3733 = zext i8 %3732 to i32
  %3734 = and i32 %3733, 15
  %3735 = icmp eq i32 0, %3734
  br i1 %3735, label %3736, label %3737

3736:                                             ; preds = %3729
  br label %3889

3737:                                             ; preds = %3729
  %3738 = load ptr, ptr %14, align 8, !tbaa !5
  %3739 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3738, i32 0, i32 3
  %3740 = load i8, ptr %3739, align 1, !tbaa !26
  %3741 = zext i8 %3740 to i32
  %3742 = and i32 %3741, 15
  %3743 = icmp eq i32 1, %3742
  br i1 %3743, label %3744, label %3745

3744:                                             ; preds = %3737
  br label %3887

3745:                                             ; preds = %3737
  %3746 = load ptr, ptr %14, align 8, !tbaa !5
  %3747 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3746, i32 0, i32 3
  %3748 = load i8, ptr %3747, align 1, !tbaa !26
  %3749 = zext i8 %3748 to i32
  %3750 = and i32 %3749, 15
  %3751 = icmp eq i32 2, %3750
  br i1 %3751, label %3752, label %3753

3752:                                             ; preds = %3745
  br label %3885

3753:                                             ; preds = %3745
  %3754 = load ptr, ptr %14, align 8, !tbaa !5
  %3755 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3754, i32 0, i32 3
  %3756 = load i8, ptr %3755, align 1, !tbaa !26
  %3757 = zext i8 %3756 to i32
  %3758 = and i32 %3757, 15
  %3759 = icmp eq i32 3, %3758
  br i1 %3759, label %3760, label %3761

3760:                                             ; preds = %3753
  br label %3883

3761:                                             ; preds = %3753
  %3762 = load ptr, ptr %14, align 8, !tbaa !5
  %3763 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3762, i32 0, i32 3
  %3764 = load i8, ptr %3763, align 1, !tbaa !26
  %3765 = zext i8 %3764 to i32
  %3766 = and i32 %3765, 15
  %3767 = icmp eq i32 4, %3766
  br i1 %3767, label %3768, label %3769

3768:                                             ; preds = %3761
  br label %3881

3769:                                             ; preds = %3761
  %3770 = load ptr, ptr %14, align 8, !tbaa !5
  %3771 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3770, i32 0, i32 3
  %3772 = load i8, ptr %3771, align 1, !tbaa !26
  %3773 = zext i8 %3772 to i32
  %3774 = and i32 %3773, 15
  %3775 = icmp eq i32 5, %3774
  br i1 %3775, label %3776, label %3777

3776:                                             ; preds = %3769
  br label %3879

3777:                                             ; preds = %3769
  %3778 = load ptr, ptr %14, align 8, !tbaa !5
  %3779 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3778, i32 0, i32 3
  %3780 = load i8, ptr %3779, align 1, !tbaa !26
  %3781 = zext i8 %3780 to i32
  %3782 = and i32 %3781, 15
  %3783 = icmp eq i32 6, %3782
  br i1 %3783, label %3784, label %3785

3784:                                             ; preds = %3777
  br label %3877

3785:                                             ; preds = %3777
  %3786 = load ptr, ptr %14, align 8, !tbaa !5
  %3787 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3786, i32 0, i32 3
  %3788 = load i8, ptr %3787, align 1, !tbaa !26
  %3789 = zext i8 %3788 to i32
  %3790 = and i32 %3789, 15
  %3791 = icmp eq i32 7, %3790
  br i1 %3791, label %3792, label %3793

3792:                                             ; preds = %3785
  br label %3875

3793:                                             ; preds = %3785
  %3794 = load ptr, ptr %14, align 8, !tbaa !5
  %3795 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3794, i32 0, i32 3
  %3796 = load i8, ptr %3795, align 1, !tbaa !26
  %3797 = zext i8 %3796 to i32
  %3798 = and i32 %3797, 15
  %3799 = icmp eq i32 8, %3798
  br i1 %3799, label %3800, label %3801

3800:                                             ; preds = %3793
  br label %3873

3801:                                             ; preds = %3793
  %3802 = load ptr, ptr %14, align 8, !tbaa !5
  %3803 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3802, i32 0, i32 3
  %3804 = load i8, ptr %3803, align 1, !tbaa !26
  %3805 = zext i8 %3804 to i32
  %3806 = and i32 %3805, 15
  %3807 = icmp eq i32 9, %3806
  br i1 %3807, label %3808, label %3809

3808:                                             ; preds = %3801
  br label %3871

3809:                                             ; preds = %3801
  %3810 = load ptr, ptr %14, align 8, !tbaa !5
  %3811 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3810, i32 0, i32 3
  %3812 = load i8, ptr %3811, align 1, !tbaa !26
  %3813 = zext i8 %3812 to i32
  %3814 = and i32 %3813, 15
  %3815 = icmp eq i32 10, %3814
  br i1 %3815, label %3816, label %3817

3816:                                             ; preds = %3809
  br label %3869

3817:                                             ; preds = %3809
  %3818 = load ptr, ptr %14, align 8, !tbaa !5
  %3819 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3818, i32 0, i32 3
  %3820 = load i8, ptr %3819, align 1, !tbaa !26
  %3821 = zext i8 %3820 to i32
  %3822 = and i32 %3821, 15
  %3823 = icmp eq i32 11, %3822
  br i1 %3823, label %3824, label %3825

3824:                                             ; preds = %3817
  br label %3867

3825:                                             ; preds = %3817
  %3826 = load ptr, ptr %14, align 8, !tbaa !5
  %3827 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3826, i32 0, i32 3
  %3828 = load i8, ptr %3827, align 1, !tbaa !26
  %3829 = zext i8 %3828 to i32
  %3830 = and i32 %3829, 15
  %3831 = icmp eq i32 12, %3830
  br i1 %3831, label %3832, label %3833

3832:                                             ; preds = %3825
  br label %3865

3833:                                             ; preds = %3825
  %3834 = load ptr, ptr %14, align 8, !tbaa !5
  %3835 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3834, i32 0, i32 3
  %3836 = load i8, ptr %3835, align 1, !tbaa !26
  %3837 = zext i8 %3836 to i32
  %3838 = and i32 %3837, 15
  %3839 = icmp eq i32 13, %3838
  br i1 %3839, label %3840, label %3841

3840:                                             ; preds = %3833
  br label %3863

3841:                                             ; preds = %3833
  %3842 = load ptr, ptr %14, align 8, !tbaa !5
  %3843 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3842, i32 0, i32 3
  %3844 = load i8, ptr %3843, align 1, !tbaa !26
  %3845 = zext i8 %3844 to i32
  %3846 = and i32 %3845, 15
  %3847 = icmp eq i32 14, %3846
  br i1 %3847, label %3848, label %3849

3848:                                             ; preds = %3841
  br label %3861

3849:                                             ; preds = %3841
  %3850 = load ptr, ptr %14, align 8, !tbaa !5
  %3851 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3850, i32 0, i32 3
  %3852 = load i8, ptr %3851, align 1, !tbaa !26
  %3853 = zext i8 %3852 to i32
  %3854 = and i32 %3853, 15
  %3855 = icmp eq i32 15, %3854
  br i1 %3855, label %3856, label %3857

3856:                                             ; preds = %3849
  br label %3859

3857:                                             ; preds = %3849
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 959, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

3858:                                             ; No predecessors!
  br label %3859

3859:                                             ; preds = %3858, %3856
  %3860 = phi i32 [ 15, %3856 ], [ 0, %3858 ]
  br label %3861

3861:                                             ; preds = %3859, %3848
  %3862 = phi i32 [ 14, %3848 ], [ %3860, %3859 ]
  br label %3863

3863:                                             ; preds = %3861, %3840
  %3864 = phi i32 [ 12, %3840 ], [ %3862, %3861 ]
  br label %3865

3865:                                             ; preds = %3863, %3832
  %3866 = phi i32 [ 12, %3832 ], [ %3864, %3863 ]
  br label %3867

3867:                                             ; preds = %3865, %3824
  %3868 = phi i32 [ 10, %3824 ], [ %3866, %3865 ]
  br label %3869

3869:                                             ; preds = %3867, %3816
  %3870 = phi i32 [ 10, %3816 ], [ %3868, %3867 ]
  br label %3871

3871:                                             ; preds = %3869, %3808
  %3872 = phi i32 [ 8, %3808 ], [ %3870, %3869 ]
  br label %3873

3873:                                             ; preds = %3871, %3800
  %3874 = phi i32 [ 8, %3800 ], [ %3872, %3871 ]
  br label %3875

3875:                                             ; preds = %3873, %3792
  %3876 = phi i32 [ 6, %3792 ], [ %3874, %3873 ]
  br label %3877

3877:                                             ; preds = %3875, %3784
  %3878 = phi i32 [ 6, %3784 ], [ %3876, %3875 ]
  br label %3879

3879:                                             ; preds = %3877, %3776
  %3880 = phi i32 [ 5, %3776 ], [ %3878, %3877 ]
  br label %3881

3881:                                             ; preds = %3879, %3768
  %3882 = phi i32 [ 4, %3768 ], [ %3880, %3879 ]
  br label %3883

3883:                                             ; preds = %3881, %3760
  %3884 = phi i32 [ 3, %3760 ], [ %3882, %3881 ]
  br label %3885

3885:                                             ; preds = %3883, %3752
  %3886 = phi i32 [ 2, %3752 ], [ %3884, %3883 ]
  br label %3887

3887:                                             ; preds = %3885, %3744
  %3888 = phi i32 [ 1, %3744 ], [ %3886, %3885 ]
  br label %3889

3889:                                             ; preds = %3887, %3736
  %3890 = phi i32 [ 0, %3736 ], [ %3888, %3887 ]
  br label %3897

3891:                                             ; preds = %3722
  %3892 = load ptr, ptr %14, align 8, !tbaa !5
  %3893 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3892, i32 0, i32 3
  %3894 = load i8, ptr %3893, align 1, !tbaa !26
  %3895 = zext i8 %3894 to i32
  %3896 = ashr i32 %3895, 4
  br label %3897

3897:                                             ; preds = %3891, %3889
  %3898 = phi i32 [ %3890, %3889 ], [ %3896, %3891 ]
  %3899 = icmp eq i32 6, %3898
  br i1 %3899, label %3900, label %3901

3900:                                             ; preds = %3897
  br label %5170

3901:                                             ; preds = %3897
  %3902 = load ptr, ptr %14, align 8, !tbaa !5
  %3903 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3902, i32 0, i32 3
  %3904 = load i8, ptr %3903, align 1, !tbaa !26
  %3905 = zext i8 %3904 to i32
  %3906 = ashr i32 %3905, 4
  %3907 = icmp eq i32 0, %3906
  br i1 %3907, label %3908, label %4070

3908:                                             ; preds = %3901
  %3909 = load ptr, ptr %14, align 8, !tbaa !5
  %3910 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3909, i32 0, i32 3
  %3911 = load i8, ptr %3910, align 1, !tbaa !26
  %3912 = zext i8 %3911 to i32
  %3913 = and i32 %3912, 15
  %3914 = icmp eq i32 0, %3913
  br i1 %3914, label %3915, label %3916

3915:                                             ; preds = %3908
  br label %4068

3916:                                             ; preds = %3908
  %3917 = load ptr, ptr %14, align 8, !tbaa !5
  %3918 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3917, i32 0, i32 3
  %3919 = load i8, ptr %3918, align 1, !tbaa !26
  %3920 = zext i8 %3919 to i32
  %3921 = and i32 %3920, 15
  %3922 = icmp eq i32 1, %3921
  br i1 %3922, label %3923, label %3924

3923:                                             ; preds = %3916
  br label %4066

3924:                                             ; preds = %3916
  %3925 = load ptr, ptr %14, align 8, !tbaa !5
  %3926 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3925, i32 0, i32 3
  %3927 = load i8, ptr %3926, align 1, !tbaa !26
  %3928 = zext i8 %3927 to i32
  %3929 = and i32 %3928, 15
  %3930 = icmp eq i32 2, %3929
  br i1 %3930, label %3931, label %3932

3931:                                             ; preds = %3924
  br label %4064

3932:                                             ; preds = %3924
  %3933 = load ptr, ptr %14, align 8, !tbaa !5
  %3934 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3933, i32 0, i32 3
  %3935 = load i8, ptr %3934, align 1, !tbaa !26
  %3936 = zext i8 %3935 to i32
  %3937 = and i32 %3936, 15
  %3938 = icmp eq i32 3, %3937
  br i1 %3938, label %3939, label %3940

3939:                                             ; preds = %3932
  br label %4062

3940:                                             ; preds = %3932
  %3941 = load ptr, ptr %14, align 8, !tbaa !5
  %3942 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3941, i32 0, i32 3
  %3943 = load i8, ptr %3942, align 1, !tbaa !26
  %3944 = zext i8 %3943 to i32
  %3945 = and i32 %3944, 15
  %3946 = icmp eq i32 4, %3945
  br i1 %3946, label %3947, label %3948

3947:                                             ; preds = %3940
  br label %4060

3948:                                             ; preds = %3940
  %3949 = load ptr, ptr %14, align 8, !tbaa !5
  %3950 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3949, i32 0, i32 3
  %3951 = load i8, ptr %3950, align 1, !tbaa !26
  %3952 = zext i8 %3951 to i32
  %3953 = and i32 %3952, 15
  %3954 = icmp eq i32 5, %3953
  br i1 %3954, label %3955, label %3956

3955:                                             ; preds = %3948
  br label %4058

3956:                                             ; preds = %3948
  %3957 = load ptr, ptr %14, align 8, !tbaa !5
  %3958 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3957, i32 0, i32 3
  %3959 = load i8, ptr %3958, align 1, !tbaa !26
  %3960 = zext i8 %3959 to i32
  %3961 = and i32 %3960, 15
  %3962 = icmp eq i32 6, %3961
  br i1 %3962, label %3963, label %3964

3963:                                             ; preds = %3956
  br label %4056

3964:                                             ; preds = %3956
  %3965 = load ptr, ptr %14, align 8, !tbaa !5
  %3966 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3965, i32 0, i32 3
  %3967 = load i8, ptr %3966, align 1, !tbaa !26
  %3968 = zext i8 %3967 to i32
  %3969 = and i32 %3968, 15
  %3970 = icmp eq i32 7, %3969
  br i1 %3970, label %3971, label %3972

3971:                                             ; preds = %3964
  br label %4054

3972:                                             ; preds = %3964
  %3973 = load ptr, ptr %14, align 8, !tbaa !5
  %3974 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3973, i32 0, i32 3
  %3975 = load i8, ptr %3974, align 1, !tbaa !26
  %3976 = zext i8 %3975 to i32
  %3977 = and i32 %3976, 15
  %3978 = icmp eq i32 8, %3977
  br i1 %3978, label %3979, label %3980

3979:                                             ; preds = %3972
  br label %4052

3980:                                             ; preds = %3972
  %3981 = load ptr, ptr %14, align 8, !tbaa !5
  %3982 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3981, i32 0, i32 3
  %3983 = load i8, ptr %3982, align 1, !tbaa !26
  %3984 = zext i8 %3983 to i32
  %3985 = and i32 %3984, 15
  %3986 = icmp eq i32 9, %3985
  br i1 %3986, label %3987, label %3988

3987:                                             ; preds = %3980
  br label %4050

3988:                                             ; preds = %3980
  %3989 = load ptr, ptr %14, align 8, !tbaa !5
  %3990 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3989, i32 0, i32 3
  %3991 = load i8, ptr %3990, align 1, !tbaa !26
  %3992 = zext i8 %3991 to i32
  %3993 = and i32 %3992, 15
  %3994 = icmp eq i32 10, %3993
  br i1 %3994, label %3995, label %3996

3995:                                             ; preds = %3988
  br label %4048

3996:                                             ; preds = %3988
  %3997 = load ptr, ptr %14, align 8, !tbaa !5
  %3998 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3997, i32 0, i32 3
  %3999 = load i8, ptr %3998, align 1, !tbaa !26
  %4000 = zext i8 %3999 to i32
  %4001 = and i32 %4000, 15
  %4002 = icmp eq i32 11, %4001
  br i1 %4002, label %4003, label %4004

4003:                                             ; preds = %3996
  br label %4046

4004:                                             ; preds = %3996
  %4005 = load ptr, ptr %14, align 8, !tbaa !5
  %4006 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4005, i32 0, i32 3
  %4007 = load i8, ptr %4006, align 1, !tbaa !26
  %4008 = zext i8 %4007 to i32
  %4009 = and i32 %4008, 15
  %4010 = icmp eq i32 12, %4009
  br i1 %4010, label %4011, label %4012

4011:                                             ; preds = %4004
  br label %4044

4012:                                             ; preds = %4004
  %4013 = load ptr, ptr %14, align 8, !tbaa !5
  %4014 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4013, i32 0, i32 3
  %4015 = load i8, ptr %4014, align 1, !tbaa !26
  %4016 = zext i8 %4015 to i32
  %4017 = and i32 %4016, 15
  %4018 = icmp eq i32 13, %4017
  br i1 %4018, label %4019, label %4020

4019:                                             ; preds = %4012
  br label %4042

4020:                                             ; preds = %4012
  %4021 = load ptr, ptr %14, align 8, !tbaa !5
  %4022 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4021, i32 0, i32 3
  %4023 = load i8, ptr %4022, align 1, !tbaa !26
  %4024 = zext i8 %4023 to i32
  %4025 = and i32 %4024, 15
  %4026 = icmp eq i32 14, %4025
  br i1 %4026, label %4027, label %4028

4027:                                             ; preds = %4020
  br label %4040

4028:                                             ; preds = %4020
  %4029 = load ptr, ptr %14, align 8, !tbaa !5
  %4030 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4029, i32 0, i32 3
  %4031 = load i8, ptr %4030, align 1, !tbaa !26
  %4032 = zext i8 %4031 to i32
  %4033 = and i32 %4032, 15
  %4034 = icmp eq i32 15, %4033
  br i1 %4034, label %4035, label %4036

4035:                                             ; preds = %4028
  br label %4038

4036:                                             ; preds = %4028
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 959, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

4037:                                             ; No predecessors!
  br label %4038

4038:                                             ; preds = %4037, %4035
  %4039 = phi i32 [ 15, %4035 ], [ 0, %4037 ]
  br label %4040

4040:                                             ; preds = %4038, %4027
  %4041 = phi i32 [ 14, %4027 ], [ %4039, %4038 ]
  br label %4042

4042:                                             ; preds = %4040, %4019
  %4043 = phi i32 [ 12, %4019 ], [ %4041, %4040 ]
  br label %4044

4044:                                             ; preds = %4042, %4011
  %4045 = phi i32 [ 12, %4011 ], [ %4043, %4042 ]
  br label %4046

4046:                                             ; preds = %4044, %4003
  %4047 = phi i32 [ 10, %4003 ], [ %4045, %4044 ]
  br label %4048

4048:                                             ; preds = %4046, %3995
  %4049 = phi i32 [ 10, %3995 ], [ %4047, %4046 ]
  br label %4050

4050:                                             ; preds = %4048, %3987
  %4051 = phi i32 [ 8, %3987 ], [ %4049, %4048 ]
  br label %4052

4052:                                             ; preds = %4050, %3979
  %4053 = phi i32 [ 8, %3979 ], [ %4051, %4050 ]
  br label %4054

4054:                                             ; preds = %4052, %3971
  %4055 = phi i32 [ 6, %3971 ], [ %4053, %4052 ]
  br label %4056

4056:                                             ; preds = %4054, %3963
  %4057 = phi i32 [ 6, %3963 ], [ %4055, %4054 ]
  br label %4058

4058:                                             ; preds = %4056, %3955
  %4059 = phi i32 [ 5, %3955 ], [ %4057, %4056 ]
  br label %4060

4060:                                             ; preds = %4058, %3947
  %4061 = phi i32 [ 4, %3947 ], [ %4059, %4058 ]
  br label %4062

4062:                                             ; preds = %4060, %3939
  %4063 = phi i32 [ 3, %3939 ], [ %4061, %4060 ]
  br label %4064

4064:                                             ; preds = %4062, %3931
  %4065 = phi i32 [ 2, %3931 ], [ %4063, %4062 ]
  br label %4066

4066:                                             ; preds = %4064, %3923
  %4067 = phi i32 [ 1, %3923 ], [ %4065, %4064 ]
  br label %4068

4068:                                             ; preds = %4066, %3915
  %4069 = phi i32 [ 0, %3915 ], [ %4067, %4066 ]
  br label %4076

4070:                                             ; preds = %3901
  %4071 = load ptr, ptr %14, align 8, !tbaa !5
  %4072 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4071, i32 0, i32 3
  %4073 = load i8, ptr %4072, align 1, !tbaa !26
  %4074 = zext i8 %4073 to i32
  %4075 = ashr i32 %4074, 4
  br label %4076

4076:                                             ; preds = %4070, %4068
  %4077 = phi i32 [ %4069, %4068 ], [ %4075, %4070 ]
  %4078 = icmp eq i32 7, %4077
  br i1 %4078, label %4079, label %4080

4079:                                             ; preds = %4076
  br label %5168

4080:                                             ; preds = %4076
  %4081 = load ptr, ptr %14, align 8, !tbaa !5
  %4082 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4081, i32 0, i32 3
  %4083 = load i8, ptr %4082, align 1, !tbaa !26
  %4084 = zext i8 %4083 to i32
  %4085 = ashr i32 %4084, 4
  %4086 = icmp eq i32 0, %4085
  br i1 %4086, label %4087, label %4249

4087:                                             ; preds = %4080
  %4088 = load ptr, ptr %14, align 8, !tbaa !5
  %4089 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4088, i32 0, i32 3
  %4090 = load i8, ptr %4089, align 1, !tbaa !26
  %4091 = zext i8 %4090 to i32
  %4092 = and i32 %4091, 15
  %4093 = icmp eq i32 0, %4092
  br i1 %4093, label %4094, label %4095

4094:                                             ; preds = %4087
  br label %4247

4095:                                             ; preds = %4087
  %4096 = load ptr, ptr %14, align 8, !tbaa !5
  %4097 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4096, i32 0, i32 3
  %4098 = load i8, ptr %4097, align 1, !tbaa !26
  %4099 = zext i8 %4098 to i32
  %4100 = and i32 %4099, 15
  %4101 = icmp eq i32 1, %4100
  br i1 %4101, label %4102, label %4103

4102:                                             ; preds = %4095
  br label %4245

4103:                                             ; preds = %4095
  %4104 = load ptr, ptr %14, align 8, !tbaa !5
  %4105 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4104, i32 0, i32 3
  %4106 = load i8, ptr %4105, align 1, !tbaa !26
  %4107 = zext i8 %4106 to i32
  %4108 = and i32 %4107, 15
  %4109 = icmp eq i32 2, %4108
  br i1 %4109, label %4110, label %4111

4110:                                             ; preds = %4103
  br label %4243

4111:                                             ; preds = %4103
  %4112 = load ptr, ptr %14, align 8, !tbaa !5
  %4113 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4112, i32 0, i32 3
  %4114 = load i8, ptr %4113, align 1, !tbaa !26
  %4115 = zext i8 %4114 to i32
  %4116 = and i32 %4115, 15
  %4117 = icmp eq i32 3, %4116
  br i1 %4117, label %4118, label %4119

4118:                                             ; preds = %4111
  br label %4241

4119:                                             ; preds = %4111
  %4120 = load ptr, ptr %14, align 8, !tbaa !5
  %4121 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4120, i32 0, i32 3
  %4122 = load i8, ptr %4121, align 1, !tbaa !26
  %4123 = zext i8 %4122 to i32
  %4124 = and i32 %4123, 15
  %4125 = icmp eq i32 4, %4124
  br i1 %4125, label %4126, label %4127

4126:                                             ; preds = %4119
  br label %4239

4127:                                             ; preds = %4119
  %4128 = load ptr, ptr %14, align 8, !tbaa !5
  %4129 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4128, i32 0, i32 3
  %4130 = load i8, ptr %4129, align 1, !tbaa !26
  %4131 = zext i8 %4130 to i32
  %4132 = and i32 %4131, 15
  %4133 = icmp eq i32 5, %4132
  br i1 %4133, label %4134, label %4135

4134:                                             ; preds = %4127
  br label %4237

4135:                                             ; preds = %4127
  %4136 = load ptr, ptr %14, align 8, !tbaa !5
  %4137 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4136, i32 0, i32 3
  %4138 = load i8, ptr %4137, align 1, !tbaa !26
  %4139 = zext i8 %4138 to i32
  %4140 = and i32 %4139, 15
  %4141 = icmp eq i32 6, %4140
  br i1 %4141, label %4142, label %4143

4142:                                             ; preds = %4135
  br label %4235

4143:                                             ; preds = %4135
  %4144 = load ptr, ptr %14, align 8, !tbaa !5
  %4145 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4144, i32 0, i32 3
  %4146 = load i8, ptr %4145, align 1, !tbaa !26
  %4147 = zext i8 %4146 to i32
  %4148 = and i32 %4147, 15
  %4149 = icmp eq i32 7, %4148
  br i1 %4149, label %4150, label %4151

4150:                                             ; preds = %4143
  br label %4233

4151:                                             ; preds = %4143
  %4152 = load ptr, ptr %14, align 8, !tbaa !5
  %4153 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4152, i32 0, i32 3
  %4154 = load i8, ptr %4153, align 1, !tbaa !26
  %4155 = zext i8 %4154 to i32
  %4156 = and i32 %4155, 15
  %4157 = icmp eq i32 8, %4156
  br i1 %4157, label %4158, label %4159

4158:                                             ; preds = %4151
  br label %4231

4159:                                             ; preds = %4151
  %4160 = load ptr, ptr %14, align 8, !tbaa !5
  %4161 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4160, i32 0, i32 3
  %4162 = load i8, ptr %4161, align 1, !tbaa !26
  %4163 = zext i8 %4162 to i32
  %4164 = and i32 %4163, 15
  %4165 = icmp eq i32 9, %4164
  br i1 %4165, label %4166, label %4167

4166:                                             ; preds = %4159
  br label %4229

4167:                                             ; preds = %4159
  %4168 = load ptr, ptr %14, align 8, !tbaa !5
  %4169 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4168, i32 0, i32 3
  %4170 = load i8, ptr %4169, align 1, !tbaa !26
  %4171 = zext i8 %4170 to i32
  %4172 = and i32 %4171, 15
  %4173 = icmp eq i32 10, %4172
  br i1 %4173, label %4174, label %4175

4174:                                             ; preds = %4167
  br label %4227

4175:                                             ; preds = %4167
  %4176 = load ptr, ptr %14, align 8, !tbaa !5
  %4177 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4176, i32 0, i32 3
  %4178 = load i8, ptr %4177, align 1, !tbaa !26
  %4179 = zext i8 %4178 to i32
  %4180 = and i32 %4179, 15
  %4181 = icmp eq i32 11, %4180
  br i1 %4181, label %4182, label %4183

4182:                                             ; preds = %4175
  br label %4225

4183:                                             ; preds = %4175
  %4184 = load ptr, ptr %14, align 8, !tbaa !5
  %4185 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4184, i32 0, i32 3
  %4186 = load i8, ptr %4185, align 1, !tbaa !26
  %4187 = zext i8 %4186 to i32
  %4188 = and i32 %4187, 15
  %4189 = icmp eq i32 12, %4188
  br i1 %4189, label %4190, label %4191

4190:                                             ; preds = %4183
  br label %4223

4191:                                             ; preds = %4183
  %4192 = load ptr, ptr %14, align 8, !tbaa !5
  %4193 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4192, i32 0, i32 3
  %4194 = load i8, ptr %4193, align 1, !tbaa !26
  %4195 = zext i8 %4194 to i32
  %4196 = and i32 %4195, 15
  %4197 = icmp eq i32 13, %4196
  br i1 %4197, label %4198, label %4199

4198:                                             ; preds = %4191
  br label %4221

4199:                                             ; preds = %4191
  %4200 = load ptr, ptr %14, align 8, !tbaa !5
  %4201 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4200, i32 0, i32 3
  %4202 = load i8, ptr %4201, align 1, !tbaa !26
  %4203 = zext i8 %4202 to i32
  %4204 = and i32 %4203, 15
  %4205 = icmp eq i32 14, %4204
  br i1 %4205, label %4206, label %4207

4206:                                             ; preds = %4199
  br label %4219

4207:                                             ; preds = %4199
  %4208 = load ptr, ptr %14, align 8, !tbaa !5
  %4209 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4208, i32 0, i32 3
  %4210 = load i8, ptr %4209, align 1, !tbaa !26
  %4211 = zext i8 %4210 to i32
  %4212 = and i32 %4211, 15
  %4213 = icmp eq i32 15, %4212
  br i1 %4213, label %4214, label %4215

4214:                                             ; preds = %4207
  br label %4217

4215:                                             ; preds = %4207
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 959, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

4216:                                             ; No predecessors!
  br label %4217

4217:                                             ; preds = %4216, %4214
  %4218 = phi i32 [ 15, %4214 ], [ 0, %4216 ]
  br label %4219

4219:                                             ; preds = %4217, %4206
  %4220 = phi i32 [ 14, %4206 ], [ %4218, %4217 ]
  br label %4221

4221:                                             ; preds = %4219, %4198
  %4222 = phi i32 [ 12, %4198 ], [ %4220, %4219 ]
  br label %4223

4223:                                             ; preds = %4221, %4190
  %4224 = phi i32 [ 12, %4190 ], [ %4222, %4221 ]
  br label %4225

4225:                                             ; preds = %4223, %4182
  %4226 = phi i32 [ 10, %4182 ], [ %4224, %4223 ]
  br label %4227

4227:                                             ; preds = %4225, %4174
  %4228 = phi i32 [ 10, %4174 ], [ %4226, %4225 ]
  br label %4229

4229:                                             ; preds = %4227, %4166
  %4230 = phi i32 [ 8, %4166 ], [ %4228, %4227 ]
  br label %4231

4231:                                             ; preds = %4229, %4158
  %4232 = phi i32 [ 8, %4158 ], [ %4230, %4229 ]
  br label %4233

4233:                                             ; preds = %4231, %4150
  %4234 = phi i32 [ 6, %4150 ], [ %4232, %4231 ]
  br label %4235

4235:                                             ; preds = %4233, %4142
  %4236 = phi i32 [ 6, %4142 ], [ %4234, %4233 ]
  br label %4237

4237:                                             ; preds = %4235, %4134
  %4238 = phi i32 [ 5, %4134 ], [ %4236, %4235 ]
  br label %4239

4239:                                             ; preds = %4237, %4126
  %4240 = phi i32 [ 4, %4126 ], [ %4238, %4237 ]
  br label %4241

4241:                                             ; preds = %4239, %4118
  %4242 = phi i32 [ 3, %4118 ], [ %4240, %4239 ]
  br label %4243

4243:                                             ; preds = %4241, %4110
  %4244 = phi i32 [ 2, %4110 ], [ %4242, %4241 ]
  br label %4245

4245:                                             ; preds = %4243, %4102
  %4246 = phi i32 [ 1, %4102 ], [ %4244, %4243 ]
  br label %4247

4247:                                             ; preds = %4245, %4094
  %4248 = phi i32 [ 0, %4094 ], [ %4246, %4245 ]
  br label %4255

4249:                                             ; preds = %4080
  %4250 = load ptr, ptr %14, align 8, !tbaa !5
  %4251 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4250, i32 0, i32 3
  %4252 = load i8, ptr %4251, align 1, !tbaa !26
  %4253 = zext i8 %4252 to i32
  %4254 = ashr i32 %4253, 4
  br label %4255

4255:                                             ; preds = %4249, %4247
  %4256 = phi i32 [ %4248, %4247 ], [ %4254, %4249 ]
  %4257 = icmp eq i32 8, %4256
  br i1 %4257, label %4258, label %4259

4258:                                             ; preds = %4255
  br label %5166

4259:                                             ; preds = %4255
  %4260 = load ptr, ptr %14, align 8, !tbaa !5
  %4261 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4260, i32 0, i32 3
  %4262 = load i8, ptr %4261, align 1, !tbaa !26
  %4263 = zext i8 %4262 to i32
  %4264 = ashr i32 %4263, 4
  %4265 = icmp eq i32 0, %4264
  br i1 %4265, label %4266, label %4428

4266:                                             ; preds = %4259
  %4267 = load ptr, ptr %14, align 8, !tbaa !5
  %4268 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4267, i32 0, i32 3
  %4269 = load i8, ptr %4268, align 1, !tbaa !26
  %4270 = zext i8 %4269 to i32
  %4271 = and i32 %4270, 15
  %4272 = icmp eq i32 0, %4271
  br i1 %4272, label %4273, label %4274

4273:                                             ; preds = %4266
  br label %4426

4274:                                             ; preds = %4266
  %4275 = load ptr, ptr %14, align 8, !tbaa !5
  %4276 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4275, i32 0, i32 3
  %4277 = load i8, ptr %4276, align 1, !tbaa !26
  %4278 = zext i8 %4277 to i32
  %4279 = and i32 %4278, 15
  %4280 = icmp eq i32 1, %4279
  br i1 %4280, label %4281, label %4282

4281:                                             ; preds = %4274
  br label %4424

4282:                                             ; preds = %4274
  %4283 = load ptr, ptr %14, align 8, !tbaa !5
  %4284 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4283, i32 0, i32 3
  %4285 = load i8, ptr %4284, align 1, !tbaa !26
  %4286 = zext i8 %4285 to i32
  %4287 = and i32 %4286, 15
  %4288 = icmp eq i32 2, %4287
  br i1 %4288, label %4289, label %4290

4289:                                             ; preds = %4282
  br label %4422

4290:                                             ; preds = %4282
  %4291 = load ptr, ptr %14, align 8, !tbaa !5
  %4292 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4291, i32 0, i32 3
  %4293 = load i8, ptr %4292, align 1, !tbaa !26
  %4294 = zext i8 %4293 to i32
  %4295 = and i32 %4294, 15
  %4296 = icmp eq i32 3, %4295
  br i1 %4296, label %4297, label %4298

4297:                                             ; preds = %4290
  br label %4420

4298:                                             ; preds = %4290
  %4299 = load ptr, ptr %14, align 8, !tbaa !5
  %4300 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4299, i32 0, i32 3
  %4301 = load i8, ptr %4300, align 1, !tbaa !26
  %4302 = zext i8 %4301 to i32
  %4303 = and i32 %4302, 15
  %4304 = icmp eq i32 4, %4303
  br i1 %4304, label %4305, label %4306

4305:                                             ; preds = %4298
  br label %4418

4306:                                             ; preds = %4298
  %4307 = load ptr, ptr %14, align 8, !tbaa !5
  %4308 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4307, i32 0, i32 3
  %4309 = load i8, ptr %4308, align 1, !tbaa !26
  %4310 = zext i8 %4309 to i32
  %4311 = and i32 %4310, 15
  %4312 = icmp eq i32 5, %4311
  br i1 %4312, label %4313, label %4314

4313:                                             ; preds = %4306
  br label %4416

4314:                                             ; preds = %4306
  %4315 = load ptr, ptr %14, align 8, !tbaa !5
  %4316 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4315, i32 0, i32 3
  %4317 = load i8, ptr %4316, align 1, !tbaa !26
  %4318 = zext i8 %4317 to i32
  %4319 = and i32 %4318, 15
  %4320 = icmp eq i32 6, %4319
  br i1 %4320, label %4321, label %4322

4321:                                             ; preds = %4314
  br label %4414

4322:                                             ; preds = %4314
  %4323 = load ptr, ptr %14, align 8, !tbaa !5
  %4324 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4323, i32 0, i32 3
  %4325 = load i8, ptr %4324, align 1, !tbaa !26
  %4326 = zext i8 %4325 to i32
  %4327 = and i32 %4326, 15
  %4328 = icmp eq i32 7, %4327
  br i1 %4328, label %4329, label %4330

4329:                                             ; preds = %4322
  br label %4412

4330:                                             ; preds = %4322
  %4331 = load ptr, ptr %14, align 8, !tbaa !5
  %4332 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4331, i32 0, i32 3
  %4333 = load i8, ptr %4332, align 1, !tbaa !26
  %4334 = zext i8 %4333 to i32
  %4335 = and i32 %4334, 15
  %4336 = icmp eq i32 8, %4335
  br i1 %4336, label %4337, label %4338

4337:                                             ; preds = %4330
  br label %4410

4338:                                             ; preds = %4330
  %4339 = load ptr, ptr %14, align 8, !tbaa !5
  %4340 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4339, i32 0, i32 3
  %4341 = load i8, ptr %4340, align 1, !tbaa !26
  %4342 = zext i8 %4341 to i32
  %4343 = and i32 %4342, 15
  %4344 = icmp eq i32 9, %4343
  br i1 %4344, label %4345, label %4346

4345:                                             ; preds = %4338
  br label %4408

4346:                                             ; preds = %4338
  %4347 = load ptr, ptr %14, align 8, !tbaa !5
  %4348 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4347, i32 0, i32 3
  %4349 = load i8, ptr %4348, align 1, !tbaa !26
  %4350 = zext i8 %4349 to i32
  %4351 = and i32 %4350, 15
  %4352 = icmp eq i32 10, %4351
  br i1 %4352, label %4353, label %4354

4353:                                             ; preds = %4346
  br label %4406

4354:                                             ; preds = %4346
  %4355 = load ptr, ptr %14, align 8, !tbaa !5
  %4356 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4355, i32 0, i32 3
  %4357 = load i8, ptr %4356, align 1, !tbaa !26
  %4358 = zext i8 %4357 to i32
  %4359 = and i32 %4358, 15
  %4360 = icmp eq i32 11, %4359
  br i1 %4360, label %4361, label %4362

4361:                                             ; preds = %4354
  br label %4404

4362:                                             ; preds = %4354
  %4363 = load ptr, ptr %14, align 8, !tbaa !5
  %4364 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4363, i32 0, i32 3
  %4365 = load i8, ptr %4364, align 1, !tbaa !26
  %4366 = zext i8 %4365 to i32
  %4367 = and i32 %4366, 15
  %4368 = icmp eq i32 12, %4367
  br i1 %4368, label %4369, label %4370

4369:                                             ; preds = %4362
  br label %4402

4370:                                             ; preds = %4362
  %4371 = load ptr, ptr %14, align 8, !tbaa !5
  %4372 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4371, i32 0, i32 3
  %4373 = load i8, ptr %4372, align 1, !tbaa !26
  %4374 = zext i8 %4373 to i32
  %4375 = and i32 %4374, 15
  %4376 = icmp eq i32 13, %4375
  br i1 %4376, label %4377, label %4378

4377:                                             ; preds = %4370
  br label %4400

4378:                                             ; preds = %4370
  %4379 = load ptr, ptr %14, align 8, !tbaa !5
  %4380 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4379, i32 0, i32 3
  %4381 = load i8, ptr %4380, align 1, !tbaa !26
  %4382 = zext i8 %4381 to i32
  %4383 = and i32 %4382, 15
  %4384 = icmp eq i32 14, %4383
  br i1 %4384, label %4385, label %4386

4385:                                             ; preds = %4378
  br label %4398

4386:                                             ; preds = %4378
  %4387 = load ptr, ptr %14, align 8, !tbaa !5
  %4388 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4387, i32 0, i32 3
  %4389 = load i8, ptr %4388, align 1, !tbaa !26
  %4390 = zext i8 %4389 to i32
  %4391 = and i32 %4390, 15
  %4392 = icmp eq i32 15, %4391
  br i1 %4392, label %4393, label %4394

4393:                                             ; preds = %4386
  br label %4396

4394:                                             ; preds = %4386
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 959, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

4395:                                             ; No predecessors!
  br label %4396

4396:                                             ; preds = %4395, %4393
  %4397 = phi i32 [ 15, %4393 ], [ 0, %4395 ]
  br label %4398

4398:                                             ; preds = %4396, %4385
  %4399 = phi i32 [ 14, %4385 ], [ %4397, %4396 ]
  br label %4400

4400:                                             ; preds = %4398, %4377
  %4401 = phi i32 [ 12, %4377 ], [ %4399, %4398 ]
  br label %4402

4402:                                             ; preds = %4400, %4369
  %4403 = phi i32 [ 12, %4369 ], [ %4401, %4400 ]
  br label %4404

4404:                                             ; preds = %4402, %4361
  %4405 = phi i32 [ 10, %4361 ], [ %4403, %4402 ]
  br label %4406

4406:                                             ; preds = %4404, %4353
  %4407 = phi i32 [ 10, %4353 ], [ %4405, %4404 ]
  br label %4408

4408:                                             ; preds = %4406, %4345
  %4409 = phi i32 [ 8, %4345 ], [ %4407, %4406 ]
  br label %4410

4410:                                             ; preds = %4408, %4337
  %4411 = phi i32 [ 8, %4337 ], [ %4409, %4408 ]
  br label %4412

4412:                                             ; preds = %4410, %4329
  %4413 = phi i32 [ 6, %4329 ], [ %4411, %4410 ]
  br label %4414

4414:                                             ; preds = %4412, %4321
  %4415 = phi i32 [ 6, %4321 ], [ %4413, %4412 ]
  br label %4416

4416:                                             ; preds = %4414, %4313
  %4417 = phi i32 [ 5, %4313 ], [ %4415, %4414 ]
  br label %4418

4418:                                             ; preds = %4416, %4305
  %4419 = phi i32 [ 4, %4305 ], [ %4417, %4416 ]
  br label %4420

4420:                                             ; preds = %4418, %4297
  %4421 = phi i32 [ 3, %4297 ], [ %4419, %4418 ]
  br label %4422

4422:                                             ; preds = %4420, %4289
  %4423 = phi i32 [ 2, %4289 ], [ %4421, %4420 ]
  br label %4424

4424:                                             ; preds = %4422, %4281
  %4425 = phi i32 [ 1, %4281 ], [ %4423, %4422 ]
  br label %4426

4426:                                             ; preds = %4424, %4273
  %4427 = phi i32 [ 0, %4273 ], [ %4425, %4424 ]
  br label %4434

4428:                                             ; preds = %4259
  %4429 = load ptr, ptr %14, align 8, !tbaa !5
  %4430 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4429, i32 0, i32 3
  %4431 = load i8, ptr %4430, align 1, !tbaa !26
  %4432 = zext i8 %4431 to i32
  %4433 = ashr i32 %4432, 4
  br label %4434

4434:                                             ; preds = %4428, %4426
  %4435 = phi i32 [ %4427, %4426 ], [ %4433, %4428 ]
  %4436 = icmp eq i32 9, %4435
  br i1 %4436, label %4437, label %4438

4437:                                             ; preds = %4434
  br label %5164

4438:                                             ; preds = %4434
  %4439 = load ptr, ptr %14, align 8, !tbaa !5
  %4440 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4439, i32 0, i32 3
  %4441 = load i8, ptr %4440, align 1, !tbaa !26
  %4442 = zext i8 %4441 to i32
  %4443 = ashr i32 %4442, 4
  %4444 = icmp eq i32 0, %4443
  br i1 %4444, label %4445, label %4607

4445:                                             ; preds = %4438
  %4446 = load ptr, ptr %14, align 8, !tbaa !5
  %4447 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4446, i32 0, i32 3
  %4448 = load i8, ptr %4447, align 1, !tbaa !26
  %4449 = zext i8 %4448 to i32
  %4450 = and i32 %4449, 15
  %4451 = icmp eq i32 0, %4450
  br i1 %4451, label %4452, label %4453

4452:                                             ; preds = %4445
  br label %4605

4453:                                             ; preds = %4445
  %4454 = load ptr, ptr %14, align 8, !tbaa !5
  %4455 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4454, i32 0, i32 3
  %4456 = load i8, ptr %4455, align 1, !tbaa !26
  %4457 = zext i8 %4456 to i32
  %4458 = and i32 %4457, 15
  %4459 = icmp eq i32 1, %4458
  br i1 %4459, label %4460, label %4461

4460:                                             ; preds = %4453
  br label %4603

4461:                                             ; preds = %4453
  %4462 = load ptr, ptr %14, align 8, !tbaa !5
  %4463 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4462, i32 0, i32 3
  %4464 = load i8, ptr %4463, align 1, !tbaa !26
  %4465 = zext i8 %4464 to i32
  %4466 = and i32 %4465, 15
  %4467 = icmp eq i32 2, %4466
  br i1 %4467, label %4468, label %4469

4468:                                             ; preds = %4461
  br label %4601

4469:                                             ; preds = %4461
  %4470 = load ptr, ptr %14, align 8, !tbaa !5
  %4471 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4470, i32 0, i32 3
  %4472 = load i8, ptr %4471, align 1, !tbaa !26
  %4473 = zext i8 %4472 to i32
  %4474 = and i32 %4473, 15
  %4475 = icmp eq i32 3, %4474
  br i1 %4475, label %4476, label %4477

4476:                                             ; preds = %4469
  br label %4599

4477:                                             ; preds = %4469
  %4478 = load ptr, ptr %14, align 8, !tbaa !5
  %4479 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4478, i32 0, i32 3
  %4480 = load i8, ptr %4479, align 1, !tbaa !26
  %4481 = zext i8 %4480 to i32
  %4482 = and i32 %4481, 15
  %4483 = icmp eq i32 4, %4482
  br i1 %4483, label %4484, label %4485

4484:                                             ; preds = %4477
  br label %4597

4485:                                             ; preds = %4477
  %4486 = load ptr, ptr %14, align 8, !tbaa !5
  %4487 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4486, i32 0, i32 3
  %4488 = load i8, ptr %4487, align 1, !tbaa !26
  %4489 = zext i8 %4488 to i32
  %4490 = and i32 %4489, 15
  %4491 = icmp eq i32 5, %4490
  br i1 %4491, label %4492, label %4493

4492:                                             ; preds = %4485
  br label %4595

4493:                                             ; preds = %4485
  %4494 = load ptr, ptr %14, align 8, !tbaa !5
  %4495 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4494, i32 0, i32 3
  %4496 = load i8, ptr %4495, align 1, !tbaa !26
  %4497 = zext i8 %4496 to i32
  %4498 = and i32 %4497, 15
  %4499 = icmp eq i32 6, %4498
  br i1 %4499, label %4500, label %4501

4500:                                             ; preds = %4493
  br label %4593

4501:                                             ; preds = %4493
  %4502 = load ptr, ptr %14, align 8, !tbaa !5
  %4503 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4502, i32 0, i32 3
  %4504 = load i8, ptr %4503, align 1, !tbaa !26
  %4505 = zext i8 %4504 to i32
  %4506 = and i32 %4505, 15
  %4507 = icmp eq i32 7, %4506
  br i1 %4507, label %4508, label %4509

4508:                                             ; preds = %4501
  br label %4591

4509:                                             ; preds = %4501
  %4510 = load ptr, ptr %14, align 8, !tbaa !5
  %4511 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4510, i32 0, i32 3
  %4512 = load i8, ptr %4511, align 1, !tbaa !26
  %4513 = zext i8 %4512 to i32
  %4514 = and i32 %4513, 15
  %4515 = icmp eq i32 8, %4514
  br i1 %4515, label %4516, label %4517

4516:                                             ; preds = %4509
  br label %4589

4517:                                             ; preds = %4509
  %4518 = load ptr, ptr %14, align 8, !tbaa !5
  %4519 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4518, i32 0, i32 3
  %4520 = load i8, ptr %4519, align 1, !tbaa !26
  %4521 = zext i8 %4520 to i32
  %4522 = and i32 %4521, 15
  %4523 = icmp eq i32 9, %4522
  br i1 %4523, label %4524, label %4525

4524:                                             ; preds = %4517
  br label %4587

4525:                                             ; preds = %4517
  %4526 = load ptr, ptr %14, align 8, !tbaa !5
  %4527 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4526, i32 0, i32 3
  %4528 = load i8, ptr %4527, align 1, !tbaa !26
  %4529 = zext i8 %4528 to i32
  %4530 = and i32 %4529, 15
  %4531 = icmp eq i32 10, %4530
  br i1 %4531, label %4532, label %4533

4532:                                             ; preds = %4525
  br label %4585

4533:                                             ; preds = %4525
  %4534 = load ptr, ptr %14, align 8, !tbaa !5
  %4535 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4534, i32 0, i32 3
  %4536 = load i8, ptr %4535, align 1, !tbaa !26
  %4537 = zext i8 %4536 to i32
  %4538 = and i32 %4537, 15
  %4539 = icmp eq i32 11, %4538
  br i1 %4539, label %4540, label %4541

4540:                                             ; preds = %4533
  br label %4583

4541:                                             ; preds = %4533
  %4542 = load ptr, ptr %14, align 8, !tbaa !5
  %4543 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4542, i32 0, i32 3
  %4544 = load i8, ptr %4543, align 1, !tbaa !26
  %4545 = zext i8 %4544 to i32
  %4546 = and i32 %4545, 15
  %4547 = icmp eq i32 12, %4546
  br i1 %4547, label %4548, label %4549

4548:                                             ; preds = %4541
  br label %4581

4549:                                             ; preds = %4541
  %4550 = load ptr, ptr %14, align 8, !tbaa !5
  %4551 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4550, i32 0, i32 3
  %4552 = load i8, ptr %4551, align 1, !tbaa !26
  %4553 = zext i8 %4552 to i32
  %4554 = and i32 %4553, 15
  %4555 = icmp eq i32 13, %4554
  br i1 %4555, label %4556, label %4557

4556:                                             ; preds = %4549
  br label %4579

4557:                                             ; preds = %4549
  %4558 = load ptr, ptr %14, align 8, !tbaa !5
  %4559 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4558, i32 0, i32 3
  %4560 = load i8, ptr %4559, align 1, !tbaa !26
  %4561 = zext i8 %4560 to i32
  %4562 = and i32 %4561, 15
  %4563 = icmp eq i32 14, %4562
  br i1 %4563, label %4564, label %4565

4564:                                             ; preds = %4557
  br label %4577

4565:                                             ; preds = %4557
  %4566 = load ptr, ptr %14, align 8, !tbaa !5
  %4567 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4566, i32 0, i32 3
  %4568 = load i8, ptr %4567, align 1, !tbaa !26
  %4569 = zext i8 %4568 to i32
  %4570 = and i32 %4569, 15
  %4571 = icmp eq i32 15, %4570
  br i1 %4571, label %4572, label %4573

4572:                                             ; preds = %4565
  br label %4575

4573:                                             ; preds = %4565
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 959, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

4574:                                             ; No predecessors!
  br label %4575

4575:                                             ; preds = %4574, %4572
  %4576 = phi i32 [ 15, %4572 ], [ 0, %4574 ]
  br label %4577

4577:                                             ; preds = %4575, %4564
  %4578 = phi i32 [ 14, %4564 ], [ %4576, %4575 ]
  br label %4579

4579:                                             ; preds = %4577, %4556
  %4580 = phi i32 [ 12, %4556 ], [ %4578, %4577 ]
  br label %4581

4581:                                             ; preds = %4579, %4548
  %4582 = phi i32 [ 12, %4548 ], [ %4580, %4579 ]
  br label %4583

4583:                                             ; preds = %4581, %4540
  %4584 = phi i32 [ 10, %4540 ], [ %4582, %4581 ]
  br label %4585

4585:                                             ; preds = %4583, %4532
  %4586 = phi i32 [ 10, %4532 ], [ %4584, %4583 ]
  br label %4587

4587:                                             ; preds = %4585, %4524
  %4588 = phi i32 [ 8, %4524 ], [ %4586, %4585 ]
  br label %4589

4589:                                             ; preds = %4587, %4516
  %4590 = phi i32 [ 8, %4516 ], [ %4588, %4587 ]
  br label %4591

4591:                                             ; preds = %4589, %4508
  %4592 = phi i32 [ 6, %4508 ], [ %4590, %4589 ]
  br label %4593

4593:                                             ; preds = %4591, %4500
  %4594 = phi i32 [ 6, %4500 ], [ %4592, %4591 ]
  br label %4595

4595:                                             ; preds = %4593, %4492
  %4596 = phi i32 [ 5, %4492 ], [ %4594, %4593 ]
  br label %4597

4597:                                             ; preds = %4595, %4484
  %4598 = phi i32 [ 4, %4484 ], [ %4596, %4595 ]
  br label %4599

4599:                                             ; preds = %4597, %4476
  %4600 = phi i32 [ 3, %4476 ], [ %4598, %4597 ]
  br label %4601

4601:                                             ; preds = %4599, %4468
  %4602 = phi i32 [ 2, %4468 ], [ %4600, %4599 ]
  br label %4603

4603:                                             ; preds = %4601, %4460
  %4604 = phi i32 [ 1, %4460 ], [ %4602, %4601 ]
  br label %4605

4605:                                             ; preds = %4603, %4452
  %4606 = phi i32 [ 0, %4452 ], [ %4604, %4603 ]
  br label %4613

4607:                                             ; preds = %4438
  %4608 = load ptr, ptr %14, align 8, !tbaa !5
  %4609 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4608, i32 0, i32 3
  %4610 = load i8, ptr %4609, align 1, !tbaa !26
  %4611 = zext i8 %4610 to i32
  %4612 = ashr i32 %4611, 4
  br label %4613

4613:                                             ; preds = %4607, %4605
  %4614 = phi i32 [ %4606, %4605 ], [ %4612, %4607 ]
  %4615 = icmp eq i32 10, %4614
  br i1 %4615, label %4616, label %4617

4616:                                             ; preds = %4613
  br label %5162

4617:                                             ; preds = %4613
  %4618 = load ptr, ptr %14, align 8, !tbaa !5
  %4619 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4618, i32 0, i32 3
  %4620 = load i8, ptr %4619, align 1, !tbaa !26
  %4621 = zext i8 %4620 to i32
  %4622 = ashr i32 %4621, 4
  %4623 = icmp eq i32 0, %4622
  br i1 %4623, label %4624, label %4786

4624:                                             ; preds = %4617
  %4625 = load ptr, ptr %14, align 8, !tbaa !5
  %4626 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4625, i32 0, i32 3
  %4627 = load i8, ptr %4626, align 1, !tbaa !26
  %4628 = zext i8 %4627 to i32
  %4629 = and i32 %4628, 15
  %4630 = icmp eq i32 0, %4629
  br i1 %4630, label %4631, label %4632

4631:                                             ; preds = %4624
  br label %4784

4632:                                             ; preds = %4624
  %4633 = load ptr, ptr %14, align 8, !tbaa !5
  %4634 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4633, i32 0, i32 3
  %4635 = load i8, ptr %4634, align 1, !tbaa !26
  %4636 = zext i8 %4635 to i32
  %4637 = and i32 %4636, 15
  %4638 = icmp eq i32 1, %4637
  br i1 %4638, label %4639, label %4640

4639:                                             ; preds = %4632
  br label %4782

4640:                                             ; preds = %4632
  %4641 = load ptr, ptr %14, align 8, !tbaa !5
  %4642 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4641, i32 0, i32 3
  %4643 = load i8, ptr %4642, align 1, !tbaa !26
  %4644 = zext i8 %4643 to i32
  %4645 = and i32 %4644, 15
  %4646 = icmp eq i32 2, %4645
  br i1 %4646, label %4647, label %4648

4647:                                             ; preds = %4640
  br label %4780

4648:                                             ; preds = %4640
  %4649 = load ptr, ptr %14, align 8, !tbaa !5
  %4650 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4649, i32 0, i32 3
  %4651 = load i8, ptr %4650, align 1, !tbaa !26
  %4652 = zext i8 %4651 to i32
  %4653 = and i32 %4652, 15
  %4654 = icmp eq i32 3, %4653
  br i1 %4654, label %4655, label %4656

4655:                                             ; preds = %4648
  br label %4778

4656:                                             ; preds = %4648
  %4657 = load ptr, ptr %14, align 8, !tbaa !5
  %4658 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4657, i32 0, i32 3
  %4659 = load i8, ptr %4658, align 1, !tbaa !26
  %4660 = zext i8 %4659 to i32
  %4661 = and i32 %4660, 15
  %4662 = icmp eq i32 4, %4661
  br i1 %4662, label %4663, label %4664

4663:                                             ; preds = %4656
  br label %4776

4664:                                             ; preds = %4656
  %4665 = load ptr, ptr %14, align 8, !tbaa !5
  %4666 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4665, i32 0, i32 3
  %4667 = load i8, ptr %4666, align 1, !tbaa !26
  %4668 = zext i8 %4667 to i32
  %4669 = and i32 %4668, 15
  %4670 = icmp eq i32 5, %4669
  br i1 %4670, label %4671, label %4672

4671:                                             ; preds = %4664
  br label %4774

4672:                                             ; preds = %4664
  %4673 = load ptr, ptr %14, align 8, !tbaa !5
  %4674 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4673, i32 0, i32 3
  %4675 = load i8, ptr %4674, align 1, !tbaa !26
  %4676 = zext i8 %4675 to i32
  %4677 = and i32 %4676, 15
  %4678 = icmp eq i32 6, %4677
  br i1 %4678, label %4679, label %4680

4679:                                             ; preds = %4672
  br label %4772

4680:                                             ; preds = %4672
  %4681 = load ptr, ptr %14, align 8, !tbaa !5
  %4682 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4681, i32 0, i32 3
  %4683 = load i8, ptr %4682, align 1, !tbaa !26
  %4684 = zext i8 %4683 to i32
  %4685 = and i32 %4684, 15
  %4686 = icmp eq i32 7, %4685
  br i1 %4686, label %4687, label %4688

4687:                                             ; preds = %4680
  br label %4770

4688:                                             ; preds = %4680
  %4689 = load ptr, ptr %14, align 8, !tbaa !5
  %4690 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4689, i32 0, i32 3
  %4691 = load i8, ptr %4690, align 1, !tbaa !26
  %4692 = zext i8 %4691 to i32
  %4693 = and i32 %4692, 15
  %4694 = icmp eq i32 8, %4693
  br i1 %4694, label %4695, label %4696

4695:                                             ; preds = %4688
  br label %4768

4696:                                             ; preds = %4688
  %4697 = load ptr, ptr %14, align 8, !tbaa !5
  %4698 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4697, i32 0, i32 3
  %4699 = load i8, ptr %4698, align 1, !tbaa !26
  %4700 = zext i8 %4699 to i32
  %4701 = and i32 %4700, 15
  %4702 = icmp eq i32 9, %4701
  br i1 %4702, label %4703, label %4704

4703:                                             ; preds = %4696
  br label %4766

4704:                                             ; preds = %4696
  %4705 = load ptr, ptr %14, align 8, !tbaa !5
  %4706 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4705, i32 0, i32 3
  %4707 = load i8, ptr %4706, align 1, !tbaa !26
  %4708 = zext i8 %4707 to i32
  %4709 = and i32 %4708, 15
  %4710 = icmp eq i32 10, %4709
  br i1 %4710, label %4711, label %4712

4711:                                             ; preds = %4704
  br label %4764

4712:                                             ; preds = %4704
  %4713 = load ptr, ptr %14, align 8, !tbaa !5
  %4714 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4713, i32 0, i32 3
  %4715 = load i8, ptr %4714, align 1, !tbaa !26
  %4716 = zext i8 %4715 to i32
  %4717 = and i32 %4716, 15
  %4718 = icmp eq i32 11, %4717
  br i1 %4718, label %4719, label %4720

4719:                                             ; preds = %4712
  br label %4762

4720:                                             ; preds = %4712
  %4721 = load ptr, ptr %14, align 8, !tbaa !5
  %4722 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4721, i32 0, i32 3
  %4723 = load i8, ptr %4722, align 1, !tbaa !26
  %4724 = zext i8 %4723 to i32
  %4725 = and i32 %4724, 15
  %4726 = icmp eq i32 12, %4725
  br i1 %4726, label %4727, label %4728

4727:                                             ; preds = %4720
  br label %4760

4728:                                             ; preds = %4720
  %4729 = load ptr, ptr %14, align 8, !tbaa !5
  %4730 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4729, i32 0, i32 3
  %4731 = load i8, ptr %4730, align 1, !tbaa !26
  %4732 = zext i8 %4731 to i32
  %4733 = and i32 %4732, 15
  %4734 = icmp eq i32 13, %4733
  br i1 %4734, label %4735, label %4736

4735:                                             ; preds = %4728
  br label %4758

4736:                                             ; preds = %4728
  %4737 = load ptr, ptr %14, align 8, !tbaa !5
  %4738 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4737, i32 0, i32 3
  %4739 = load i8, ptr %4738, align 1, !tbaa !26
  %4740 = zext i8 %4739 to i32
  %4741 = and i32 %4740, 15
  %4742 = icmp eq i32 14, %4741
  br i1 %4742, label %4743, label %4744

4743:                                             ; preds = %4736
  br label %4756

4744:                                             ; preds = %4736
  %4745 = load ptr, ptr %14, align 8, !tbaa !5
  %4746 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4745, i32 0, i32 3
  %4747 = load i8, ptr %4746, align 1, !tbaa !26
  %4748 = zext i8 %4747 to i32
  %4749 = and i32 %4748, 15
  %4750 = icmp eq i32 15, %4749
  br i1 %4750, label %4751, label %4752

4751:                                             ; preds = %4744
  br label %4754

4752:                                             ; preds = %4744
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 959, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

4753:                                             ; No predecessors!
  br label %4754

4754:                                             ; preds = %4753, %4751
  %4755 = phi i32 [ 15, %4751 ], [ 0, %4753 ]
  br label %4756

4756:                                             ; preds = %4754, %4743
  %4757 = phi i32 [ 14, %4743 ], [ %4755, %4754 ]
  br label %4758

4758:                                             ; preds = %4756, %4735
  %4759 = phi i32 [ 12, %4735 ], [ %4757, %4756 ]
  br label %4760

4760:                                             ; preds = %4758, %4727
  %4761 = phi i32 [ 12, %4727 ], [ %4759, %4758 ]
  br label %4762

4762:                                             ; preds = %4760, %4719
  %4763 = phi i32 [ 10, %4719 ], [ %4761, %4760 ]
  br label %4764

4764:                                             ; preds = %4762, %4711
  %4765 = phi i32 [ 10, %4711 ], [ %4763, %4762 ]
  br label %4766

4766:                                             ; preds = %4764, %4703
  %4767 = phi i32 [ 8, %4703 ], [ %4765, %4764 ]
  br label %4768

4768:                                             ; preds = %4766, %4695
  %4769 = phi i32 [ 8, %4695 ], [ %4767, %4766 ]
  br label %4770

4770:                                             ; preds = %4768, %4687
  %4771 = phi i32 [ 6, %4687 ], [ %4769, %4768 ]
  br label %4772

4772:                                             ; preds = %4770, %4679
  %4773 = phi i32 [ 6, %4679 ], [ %4771, %4770 ]
  br label %4774

4774:                                             ; preds = %4772, %4671
  %4775 = phi i32 [ 5, %4671 ], [ %4773, %4772 ]
  br label %4776

4776:                                             ; preds = %4774, %4663
  %4777 = phi i32 [ 4, %4663 ], [ %4775, %4774 ]
  br label %4778

4778:                                             ; preds = %4776, %4655
  %4779 = phi i32 [ 3, %4655 ], [ %4777, %4776 ]
  br label %4780

4780:                                             ; preds = %4778, %4647
  %4781 = phi i32 [ 2, %4647 ], [ %4779, %4778 ]
  br label %4782

4782:                                             ; preds = %4780, %4639
  %4783 = phi i32 [ 1, %4639 ], [ %4781, %4780 ]
  br label %4784

4784:                                             ; preds = %4782, %4631
  %4785 = phi i32 [ 0, %4631 ], [ %4783, %4782 ]
  br label %4792

4786:                                             ; preds = %4617
  %4787 = load ptr, ptr %14, align 8, !tbaa !5
  %4788 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4787, i32 0, i32 3
  %4789 = load i8, ptr %4788, align 1, !tbaa !26
  %4790 = zext i8 %4789 to i32
  %4791 = ashr i32 %4790, 4
  br label %4792

4792:                                             ; preds = %4786, %4784
  %4793 = phi i32 [ %4785, %4784 ], [ %4791, %4786 ]
  %4794 = icmp eq i32 11, %4793
  br i1 %4794, label %4795, label %4796

4795:                                             ; preds = %4792
  br label %5160

4796:                                             ; preds = %4792
  %4797 = load ptr, ptr %14, align 8, !tbaa !5
  %4798 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4797, i32 0, i32 3
  %4799 = load i8, ptr %4798, align 1, !tbaa !26
  %4800 = zext i8 %4799 to i32
  %4801 = ashr i32 %4800, 4
  %4802 = icmp eq i32 0, %4801
  br i1 %4802, label %4803, label %4965

4803:                                             ; preds = %4796
  %4804 = load ptr, ptr %14, align 8, !tbaa !5
  %4805 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4804, i32 0, i32 3
  %4806 = load i8, ptr %4805, align 1, !tbaa !26
  %4807 = zext i8 %4806 to i32
  %4808 = and i32 %4807, 15
  %4809 = icmp eq i32 0, %4808
  br i1 %4809, label %4810, label %4811

4810:                                             ; preds = %4803
  br label %4963

4811:                                             ; preds = %4803
  %4812 = load ptr, ptr %14, align 8, !tbaa !5
  %4813 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4812, i32 0, i32 3
  %4814 = load i8, ptr %4813, align 1, !tbaa !26
  %4815 = zext i8 %4814 to i32
  %4816 = and i32 %4815, 15
  %4817 = icmp eq i32 1, %4816
  br i1 %4817, label %4818, label %4819

4818:                                             ; preds = %4811
  br label %4961

4819:                                             ; preds = %4811
  %4820 = load ptr, ptr %14, align 8, !tbaa !5
  %4821 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4820, i32 0, i32 3
  %4822 = load i8, ptr %4821, align 1, !tbaa !26
  %4823 = zext i8 %4822 to i32
  %4824 = and i32 %4823, 15
  %4825 = icmp eq i32 2, %4824
  br i1 %4825, label %4826, label %4827

4826:                                             ; preds = %4819
  br label %4959

4827:                                             ; preds = %4819
  %4828 = load ptr, ptr %14, align 8, !tbaa !5
  %4829 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4828, i32 0, i32 3
  %4830 = load i8, ptr %4829, align 1, !tbaa !26
  %4831 = zext i8 %4830 to i32
  %4832 = and i32 %4831, 15
  %4833 = icmp eq i32 3, %4832
  br i1 %4833, label %4834, label %4835

4834:                                             ; preds = %4827
  br label %4957

4835:                                             ; preds = %4827
  %4836 = load ptr, ptr %14, align 8, !tbaa !5
  %4837 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4836, i32 0, i32 3
  %4838 = load i8, ptr %4837, align 1, !tbaa !26
  %4839 = zext i8 %4838 to i32
  %4840 = and i32 %4839, 15
  %4841 = icmp eq i32 4, %4840
  br i1 %4841, label %4842, label %4843

4842:                                             ; preds = %4835
  br label %4955

4843:                                             ; preds = %4835
  %4844 = load ptr, ptr %14, align 8, !tbaa !5
  %4845 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4844, i32 0, i32 3
  %4846 = load i8, ptr %4845, align 1, !tbaa !26
  %4847 = zext i8 %4846 to i32
  %4848 = and i32 %4847, 15
  %4849 = icmp eq i32 5, %4848
  br i1 %4849, label %4850, label %4851

4850:                                             ; preds = %4843
  br label %4953

4851:                                             ; preds = %4843
  %4852 = load ptr, ptr %14, align 8, !tbaa !5
  %4853 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4852, i32 0, i32 3
  %4854 = load i8, ptr %4853, align 1, !tbaa !26
  %4855 = zext i8 %4854 to i32
  %4856 = and i32 %4855, 15
  %4857 = icmp eq i32 6, %4856
  br i1 %4857, label %4858, label %4859

4858:                                             ; preds = %4851
  br label %4951

4859:                                             ; preds = %4851
  %4860 = load ptr, ptr %14, align 8, !tbaa !5
  %4861 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4860, i32 0, i32 3
  %4862 = load i8, ptr %4861, align 1, !tbaa !26
  %4863 = zext i8 %4862 to i32
  %4864 = and i32 %4863, 15
  %4865 = icmp eq i32 7, %4864
  br i1 %4865, label %4866, label %4867

4866:                                             ; preds = %4859
  br label %4949

4867:                                             ; preds = %4859
  %4868 = load ptr, ptr %14, align 8, !tbaa !5
  %4869 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4868, i32 0, i32 3
  %4870 = load i8, ptr %4869, align 1, !tbaa !26
  %4871 = zext i8 %4870 to i32
  %4872 = and i32 %4871, 15
  %4873 = icmp eq i32 8, %4872
  br i1 %4873, label %4874, label %4875

4874:                                             ; preds = %4867
  br label %4947

4875:                                             ; preds = %4867
  %4876 = load ptr, ptr %14, align 8, !tbaa !5
  %4877 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4876, i32 0, i32 3
  %4878 = load i8, ptr %4877, align 1, !tbaa !26
  %4879 = zext i8 %4878 to i32
  %4880 = and i32 %4879, 15
  %4881 = icmp eq i32 9, %4880
  br i1 %4881, label %4882, label %4883

4882:                                             ; preds = %4875
  br label %4945

4883:                                             ; preds = %4875
  %4884 = load ptr, ptr %14, align 8, !tbaa !5
  %4885 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4884, i32 0, i32 3
  %4886 = load i8, ptr %4885, align 1, !tbaa !26
  %4887 = zext i8 %4886 to i32
  %4888 = and i32 %4887, 15
  %4889 = icmp eq i32 10, %4888
  br i1 %4889, label %4890, label %4891

4890:                                             ; preds = %4883
  br label %4943

4891:                                             ; preds = %4883
  %4892 = load ptr, ptr %14, align 8, !tbaa !5
  %4893 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4892, i32 0, i32 3
  %4894 = load i8, ptr %4893, align 1, !tbaa !26
  %4895 = zext i8 %4894 to i32
  %4896 = and i32 %4895, 15
  %4897 = icmp eq i32 11, %4896
  br i1 %4897, label %4898, label %4899

4898:                                             ; preds = %4891
  br label %4941

4899:                                             ; preds = %4891
  %4900 = load ptr, ptr %14, align 8, !tbaa !5
  %4901 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4900, i32 0, i32 3
  %4902 = load i8, ptr %4901, align 1, !tbaa !26
  %4903 = zext i8 %4902 to i32
  %4904 = and i32 %4903, 15
  %4905 = icmp eq i32 12, %4904
  br i1 %4905, label %4906, label %4907

4906:                                             ; preds = %4899
  br label %4939

4907:                                             ; preds = %4899
  %4908 = load ptr, ptr %14, align 8, !tbaa !5
  %4909 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4908, i32 0, i32 3
  %4910 = load i8, ptr %4909, align 1, !tbaa !26
  %4911 = zext i8 %4910 to i32
  %4912 = and i32 %4911, 15
  %4913 = icmp eq i32 13, %4912
  br i1 %4913, label %4914, label %4915

4914:                                             ; preds = %4907
  br label %4937

4915:                                             ; preds = %4907
  %4916 = load ptr, ptr %14, align 8, !tbaa !5
  %4917 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4916, i32 0, i32 3
  %4918 = load i8, ptr %4917, align 1, !tbaa !26
  %4919 = zext i8 %4918 to i32
  %4920 = and i32 %4919, 15
  %4921 = icmp eq i32 14, %4920
  br i1 %4921, label %4922, label %4923

4922:                                             ; preds = %4915
  br label %4935

4923:                                             ; preds = %4915
  %4924 = load ptr, ptr %14, align 8, !tbaa !5
  %4925 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4924, i32 0, i32 3
  %4926 = load i8, ptr %4925, align 1, !tbaa !26
  %4927 = zext i8 %4926 to i32
  %4928 = and i32 %4927, 15
  %4929 = icmp eq i32 15, %4928
  br i1 %4929, label %4930, label %4931

4930:                                             ; preds = %4923
  br label %4933

4931:                                             ; preds = %4923
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 959, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

4932:                                             ; No predecessors!
  br label %4933

4933:                                             ; preds = %4932, %4930
  %4934 = phi i32 [ 15, %4930 ], [ 0, %4932 ]
  br label %4935

4935:                                             ; preds = %4933, %4922
  %4936 = phi i32 [ 14, %4922 ], [ %4934, %4933 ]
  br label %4937

4937:                                             ; preds = %4935, %4914
  %4938 = phi i32 [ 12, %4914 ], [ %4936, %4935 ]
  br label %4939

4939:                                             ; preds = %4937, %4906
  %4940 = phi i32 [ 12, %4906 ], [ %4938, %4937 ]
  br label %4941

4941:                                             ; preds = %4939, %4898
  %4942 = phi i32 [ 10, %4898 ], [ %4940, %4939 ]
  br label %4943

4943:                                             ; preds = %4941, %4890
  %4944 = phi i32 [ 10, %4890 ], [ %4942, %4941 ]
  br label %4945

4945:                                             ; preds = %4943, %4882
  %4946 = phi i32 [ 8, %4882 ], [ %4944, %4943 ]
  br label %4947

4947:                                             ; preds = %4945, %4874
  %4948 = phi i32 [ 8, %4874 ], [ %4946, %4945 ]
  br label %4949

4949:                                             ; preds = %4947, %4866
  %4950 = phi i32 [ 6, %4866 ], [ %4948, %4947 ]
  br label %4951

4951:                                             ; preds = %4949, %4858
  %4952 = phi i32 [ 6, %4858 ], [ %4950, %4949 ]
  br label %4953

4953:                                             ; preds = %4951, %4850
  %4954 = phi i32 [ 5, %4850 ], [ %4952, %4951 ]
  br label %4955

4955:                                             ; preds = %4953, %4842
  %4956 = phi i32 [ 4, %4842 ], [ %4954, %4953 ]
  br label %4957

4957:                                             ; preds = %4955, %4834
  %4958 = phi i32 [ 3, %4834 ], [ %4956, %4955 ]
  br label %4959

4959:                                             ; preds = %4957, %4826
  %4960 = phi i32 [ 2, %4826 ], [ %4958, %4957 ]
  br label %4961

4961:                                             ; preds = %4959, %4818
  %4962 = phi i32 [ 1, %4818 ], [ %4960, %4959 ]
  br label %4963

4963:                                             ; preds = %4961, %4810
  %4964 = phi i32 [ 0, %4810 ], [ %4962, %4961 ]
  br label %4971

4965:                                             ; preds = %4796
  %4966 = load ptr, ptr %14, align 8, !tbaa !5
  %4967 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4966, i32 0, i32 3
  %4968 = load i8, ptr %4967, align 1, !tbaa !26
  %4969 = zext i8 %4968 to i32
  %4970 = ashr i32 %4969, 4
  br label %4971

4971:                                             ; preds = %4965, %4963
  %4972 = phi i32 [ %4964, %4963 ], [ %4970, %4965 ]
  %4973 = icmp eq i32 12, %4972
  br i1 %4973, label %4974, label %4975

4974:                                             ; preds = %4971
  br label %5158

4975:                                             ; preds = %4971
  %4976 = load ptr, ptr %14, align 8, !tbaa !5
  %4977 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4976, i32 0, i32 3
  %4978 = load i8, ptr %4977, align 1, !tbaa !26
  %4979 = zext i8 %4978 to i32
  %4980 = ashr i32 %4979, 4
  %4981 = icmp eq i32 0, %4980
  br i1 %4981, label %4982, label %5144

4982:                                             ; preds = %4975
  %4983 = load ptr, ptr %14, align 8, !tbaa !5
  %4984 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4983, i32 0, i32 3
  %4985 = load i8, ptr %4984, align 1, !tbaa !26
  %4986 = zext i8 %4985 to i32
  %4987 = and i32 %4986, 15
  %4988 = icmp eq i32 0, %4987
  br i1 %4988, label %4989, label %4990

4989:                                             ; preds = %4982
  br label %5142

4990:                                             ; preds = %4982
  %4991 = load ptr, ptr %14, align 8, !tbaa !5
  %4992 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4991, i32 0, i32 3
  %4993 = load i8, ptr %4992, align 1, !tbaa !26
  %4994 = zext i8 %4993 to i32
  %4995 = and i32 %4994, 15
  %4996 = icmp eq i32 1, %4995
  br i1 %4996, label %4997, label %4998

4997:                                             ; preds = %4990
  br label %5140

4998:                                             ; preds = %4990
  %4999 = load ptr, ptr %14, align 8, !tbaa !5
  %5000 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4999, i32 0, i32 3
  %5001 = load i8, ptr %5000, align 1, !tbaa !26
  %5002 = zext i8 %5001 to i32
  %5003 = and i32 %5002, 15
  %5004 = icmp eq i32 2, %5003
  br i1 %5004, label %5005, label %5006

5005:                                             ; preds = %4998
  br label %5138

5006:                                             ; preds = %4998
  %5007 = load ptr, ptr %14, align 8, !tbaa !5
  %5008 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5007, i32 0, i32 3
  %5009 = load i8, ptr %5008, align 1, !tbaa !26
  %5010 = zext i8 %5009 to i32
  %5011 = and i32 %5010, 15
  %5012 = icmp eq i32 3, %5011
  br i1 %5012, label %5013, label %5014

5013:                                             ; preds = %5006
  br label %5136

5014:                                             ; preds = %5006
  %5015 = load ptr, ptr %14, align 8, !tbaa !5
  %5016 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5015, i32 0, i32 3
  %5017 = load i8, ptr %5016, align 1, !tbaa !26
  %5018 = zext i8 %5017 to i32
  %5019 = and i32 %5018, 15
  %5020 = icmp eq i32 4, %5019
  br i1 %5020, label %5021, label %5022

5021:                                             ; preds = %5014
  br label %5134

5022:                                             ; preds = %5014
  %5023 = load ptr, ptr %14, align 8, !tbaa !5
  %5024 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5023, i32 0, i32 3
  %5025 = load i8, ptr %5024, align 1, !tbaa !26
  %5026 = zext i8 %5025 to i32
  %5027 = and i32 %5026, 15
  %5028 = icmp eq i32 5, %5027
  br i1 %5028, label %5029, label %5030

5029:                                             ; preds = %5022
  br label %5132

5030:                                             ; preds = %5022
  %5031 = load ptr, ptr %14, align 8, !tbaa !5
  %5032 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5031, i32 0, i32 3
  %5033 = load i8, ptr %5032, align 1, !tbaa !26
  %5034 = zext i8 %5033 to i32
  %5035 = and i32 %5034, 15
  %5036 = icmp eq i32 6, %5035
  br i1 %5036, label %5037, label %5038

5037:                                             ; preds = %5030
  br label %5130

5038:                                             ; preds = %5030
  %5039 = load ptr, ptr %14, align 8, !tbaa !5
  %5040 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5039, i32 0, i32 3
  %5041 = load i8, ptr %5040, align 1, !tbaa !26
  %5042 = zext i8 %5041 to i32
  %5043 = and i32 %5042, 15
  %5044 = icmp eq i32 7, %5043
  br i1 %5044, label %5045, label %5046

5045:                                             ; preds = %5038
  br label %5128

5046:                                             ; preds = %5038
  %5047 = load ptr, ptr %14, align 8, !tbaa !5
  %5048 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5047, i32 0, i32 3
  %5049 = load i8, ptr %5048, align 1, !tbaa !26
  %5050 = zext i8 %5049 to i32
  %5051 = and i32 %5050, 15
  %5052 = icmp eq i32 8, %5051
  br i1 %5052, label %5053, label %5054

5053:                                             ; preds = %5046
  br label %5126

5054:                                             ; preds = %5046
  %5055 = load ptr, ptr %14, align 8, !tbaa !5
  %5056 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5055, i32 0, i32 3
  %5057 = load i8, ptr %5056, align 1, !tbaa !26
  %5058 = zext i8 %5057 to i32
  %5059 = and i32 %5058, 15
  %5060 = icmp eq i32 9, %5059
  br i1 %5060, label %5061, label %5062

5061:                                             ; preds = %5054
  br label %5124

5062:                                             ; preds = %5054
  %5063 = load ptr, ptr %14, align 8, !tbaa !5
  %5064 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5063, i32 0, i32 3
  %5065 = load i8, ptr %5064, align 1, !tbaa !26
  %5066 = zext i8 %5065 to i32
  %5067 = and i32 %5066, 15
  %5068 = icmp eq i32 10, %5067
  br i1 %5068, label %5069, label %5070

5069:                                             ; preds = %5062
  br label %5122

5070:                                             ; preds = %5062
  %5071 = load ptr, ptr %14, align 8, !tbaa !5
  %5072 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5071, i32 0, i32 3
  %5073 = load i8, ptr %5072, align 1, !tbaa !26
  %5074 = zext i8 %5073 to i32
  %5075 = and i32 %5074, 15
  %5076 = icmp eq i32 11, %5075
  br i1 %5076, label %5077, label %5078

5077:                                             ; preds = %5070
  br label %5120

5078:                                             ; preds = %5070
  %5079 = load ptr, ptr %14, align 8, !tbaa !5
  %5080 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5079, i32 0, i32 3
  %5081 = load i8, ptr %5080, align 1, !tbaa !26
  %5082 = zext i8 %5081 to i32
  %5083 = and i32 %5082, 15
  %5084 = icmp eq i32 12, %5083
  br i1 %5084, label %5085, label %5086

5085:                                             ; preds = %5078
  br label %5118

5086:                                             ; preds = %5078
  %5087 = load ptr, ptr %14, align 8, !tbaa !5
  %5088 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5087, i32 0, i32 3
  %5089 = load i8, ptr %5088, align 1, !tbaa !26
  %5090 = zext i8 %5089 to i32
  %5091 = and i32 %5090, 15
  %5092 = icmp eq i32 13, %5091
  br i1 %5092, label %5093, label %5094

5093:                                             ; preds = %5086
  br label %5116

5094:                                             ; preds = %5086
  %5095 = load ptr, ptr %14, align 8, !tbaa !5
  %5096 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5095, i32 0, i32 3
  %5097 = load i8, ptr %5096, align 1, !tbaa !26
  %5098 = zext i8 %5097 to i32
  %5099 = and i32 %5098, 15
  %5100 = icmp eq i32 14, %5099
  br i1 %5100, label %5101, label %5102

5101:                                             ; preds = %5094
  br label %5114

5102:                                             ; preds = %5094
  %5103 = load ptr, ptr %14, align 8, !tbaa !5
  %5104 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5103, i32 0, i32 3
  %5105 = load i8, ptr %5104, align 1, !tbaa !26
  %5106 = zext i8 %5105 to i32
  %5107 = and i32 %5106, 15
  %5108 = icmp eq i32 15, %5107
  br i1 %5108, label %5109, label %5110

5109:                                             ; preds = %5102
  br label %5112

5110:                                             ; preds = %5102
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 959, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

5111:                                             ; No predecessors!
  br label %5112

5112:                                             ; preds = %5111, %5109
  %5113 = phi i32 [ 15, %5109 ], [ 0, %5111 ]
  br label %5114

5114:                                             ; preds = %5112, %5101
  %5115 = phi i32 [ 14, %5101 ], [ %5113, %5112 ]
  br label %5116

5116:                                             ; preds = %5114, %5093
  %5117 = phi i32 [ 12, %5093 ], [ %5115, %5114 ]
  br label %5118

5118:                                             ; preds = %5116, %5085
  %5119 = phi i32 [ 12, %5085 ], [ %5117, %5116 ]
  br label %5120

5120:                                             ; preds = %5118, %5077
  %5121 = phi i32 [ 10, %5077 ], [ %5119, %5118 ]
  br label %5122

5122:                                             ; preds = %5120, %5069
  %5123 = phi i32 [ 10, %5069 ], [ %5121, %5120 ]
  br label %5124

5124:                                             ; preds = %5122, %5061
  %5125 = phi i32 [ 8, %5061 ], [ %5123, %5122 ]
  br label %5126

5126:                                             ; preds = %5124, %5053
  %5127 = phi i32 [ 8, %5053 ], [ %5125, %5124 ]
  br label %5128

5128:                                             ; preds = %5126, %5045
  %5129 = phi i32 [ 6, %5045 ], [ %5127, %5126 ]
  br label %5130

5130:                                             ; preds = %5128, %5037
  %5131 = phi i32 [ 6, %5037 ], [ %5129, %5128 ]
  br label %5132

5132:                                             ; preds = %5130, %5029
  %5133 = phi i32 [ 5, %5029 ], [ %5131, %5130 ]
  br label %5134

5134:                                             ; preds = %5132, %5021
  %5135 = phi i32 [ 4, %5021 ], [ %5133, %5132 ]
  br label %5136

5136:                                             ; preds = %5134, %5013
  %5137 = phi i32 [ 3, %5013 ], [ %5135, %5134 ]
  br label %5138

5138:                                             ; preds = %5136, %5005
  %5139 = phi i32 [ 2, %5005 ], [ %5137, %5136 ]
  br label %5140

5140:                                             ; preds = %5138, %4997
  %5141 = phi i32 [ 1, %4997 ], [ %5139, %5138 ]
  br label %5142

5142:                                             ; preds = %5140, %4989
  %5143 = phi i32 [ 0, %4989 ], [ %5141, %5140 ]
  br label %5150

5144:                                             ; preds = %4975
  %5145 = load ptr, ptr %14, align 8, !tbaa !5
  %5146 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5145, i32 0, i32 3
  %5147 = load i8, ptr %5146, align 1, !tbaa !26
  %5148 = zext i8 %5147 to i32
  %5149 = ashr i32 %5148, 4
  br label %5150

5150:                                             ; preds = %5144, %5142
  %5151 = phi i32 [ %5143, %5142 ], [ %5149, %5144 ]
  %5152 = icmp eq i32 13, %5151
  br i1 %5152, label %5153, label %5154

5153:                                             ; preds = %5150
  br label %5156

5154:                                             ; preds = %5150
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 959, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #5
  unreachable

5155:                                             ; No predecessors!
  br label %5156

5156:                                             ; preds = %5155, %5153
  %5157 = phi i32 [ 1, %5153 ], [ 0, %5155 ]
  br label %5158

5158:                                             ; preds = %5156, %4974
  %5159 = phi i32 [ 1, %4974 ], [ %5157, %5156 ]
  br label %5160

5160:                                             ; preds = %5158, %4795
  %5161 = phi i32 [ 2, %4795 ], [ %5159, %5158 ]
  br label %5162

5162:                                             ; preds = %5160, %4616
  %5163 = phi i32 [ 2, %4616 ], [ %5161, %5160 ]
  br label %5164

5164:                                             ; preds = %5162, %4437
  %5165 = phi i32 [ 4, %4437 ], [ %5163, %5162 ]
  br label %5166

5166:                                             ; preds = %5164, %4258
  %5167 = phi i32 [ 4, %4258 ], [ %5165, %5164 ]
  br label %5168

5168:                                             ; preds = %5166, %4079
  %5169 = phi i32 [ 8, %4079 ], [ %5167, %5166 ]
  br label %5170

5170:                                             ; preds = %5168, %3900
  %5171 = phi i32 [ 8, %3900 ], [ %5169, %5168 ]
  br label %5172

5172:                                             ; preds = %5170, %3721
  %5173 = phi i32 [ 1, %3721 ], [ %5171, %5170 ]
  br label %5174

5174:                                             ; preds = %5172, %3542
  %5175 = phi i32 [ 1, %3542 ], [ %5173, %5172 ]
  br label %5176

5176:                                             ; preds = %5174, %3363
  %5177 = phi i32 [ 2, %3363 ], [ %5175, %5174 ]
  br label %5178

5178:                                             ; preds = %5176, %3184
  %5179 = phi i32 [ 2, %3184 ], [ %5177, %5176 ]
  br label %5180

5180:                                             ; preds = %5178, %3005
  %5181 = phi i32 [ 4, %3005 ], [ %5179, %5178 ]
  br label %5182

5182:                                             ; preds = %5180, %2826
  %5183 = phi i32 [ 8, %2826 ], [ %5181, %5180 ]
  %5184 = mul i32 %2648, %5183
  %5185 = load i8, ptr %25, align 1, !tbaa !13
  %5186 = load i32, ptr %23, align 4, !tbaa !9
  %5187 = load i32, ptr %19, align 4, !tbaa !9
  %5188 = icmp eq i32 %5187, 1
  br i1 %5188, label %5189, label %5196

5189:                                             ; preds = %5182
  %5190 = load i32, ptr %22, align 4, !tbaa !9
  %5191 = load i32, ptr %17, align 4, !tbaa !9
  %5192 = sub i32 %5191, 1
  %5193 = icmp eq i32 %5190, %5192
  br i1 %5193, label %5194, label %5196

5194:                                             ; preds = %5189
  %5195 = load i32, ptr %20, align 4, !tbaa !9
  br label %5197

5196:                                             ; preds = %5189, %5182
  br label %5197

5197:                                             ; preds = %5196, %5194
  %5198 = phi i32 [ %5195, %5194 ], [ 0, %5196 ]
  call void @libxsmm_x86_instruction_vec_move(ptr noundef %2630, i32 noundef %2633, i32 noundef 671491379, i32 noundef %2636, i32 noundef %2639, i32 noundef 1, i32 noundef %5184, i8 noundef signext %5185, i32 noundef %5186, i32 noundef %5198, i32 noundef 0, i32 noundef 1)
  br label %5199

5199:                                             ; preds = %5197
  %5200 = load i32, ptr %22, align 4, !tbaa !9
  %5201 = add i32 %5200, 1
  store i32 %5201, ptr %22, align 4, !tbaa !9
  br label %48, !llvm.loop !28

5202:                                             ; preds = %48
  br label %5203

5203:                                             ; preds = %5202
  %5204 = load i32, ptr %21, align 4, !tbaa !9
  %5205 = add i32 %5204, 1
  store i32 %5205, ptr %21, align 4, !tbaa !9
  br label %43, !llvm.loop !30

5206:                                             ; preds = %43
  store i32 0, ptr %26, align 4
  br label %5207

5207:                                             ; preds = %5206, %41
  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
  %5208 = load i32, ptr %26, align 4
  switch i32 %5208, label %5210 [
    i32 0, label %5209
    i32 1, label %5209
  ]

5209:                                             ; preds = %5207, %5207
  ret void

5210:                                             ; preds = %5207
  unreachable
}

declare void @libxsmm_x86_instruction_vec_compute_2reg_imm8(ptr noundef, i32 noundef, i8 noundef signext, 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, !10, i64 20}
!21 = !{!"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, !22, i64 72, !23, i64 220}
!22 = !{!"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}
!23 = !{!"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}
!24 = !{!25, !10, i64 8}
!25 = !{!"libxsmm_meqn_descriptor", !10, i64 0, !10, i64 4, !10, i64 8, !7, i64 12, !10, i64 13}
!26 = !{!25, !7, i64 12}
!27 = !{!21, !10, i64 44}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = distinct !{!30, !29}


; 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_unpackstore_2d_reg_block = external hidden unnamed_addr constant [273 x i8], align 1
@switch.table.libxsmm_generator_mateqn_unpackstore_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

declare void @libxsmm_x86_instruction_vec_move(ptr noundef, i32 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

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_mateqn_unpackstore_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 ugt i32 %13, 1100
  %15 = select i1 %14, i8 122, i8 121
  %16 = getelementptr inbounds i8, ptr %2, i64 96
  %17 = load i32, ptr %16, align 8, !tbaa !11
  %.not = icmp eq i32 %17, 0
  %18 = icmp ne i32 %7, 0
  %or.cond = and i1 %.not, %18
  br i1 %or.cond, label %.preheader.lr.ph, label %.loopexit

.preheader.lr.ph:                                 ; preds = %10
  %.not1345 = icmp eq i32 %6, 0
  %19 = getelementptr inbounds i8, ptr %1, i64 20
  %20 = getelementptr inbounds i8, ptr %3, i64 8
  %21 = getelementptr inbounds i8, ptr %3, i64 12
  %22 = icmp eq i32 %8, 1
  %23 = add i32 %6, -1
  %24 = getelementptr inbounds i8, ptr %1, i64 44
  br i1 %.not1345, label %.loopexit, label %.preheader.us

.preheader.us:                                    ; preds = %.preheader.lr.ph, %._crit_edge.us
  %.01344.us = phi i32 [ %87, %._crit_edge.us ], [ 0, %.preheader.lr.ph ]
  %25 = mul i32 %.01344.us, %6
  %26 = add i32 %25, %11
  br label %27

27:                                               ; preds = %.preheader.us, %.thread1247.us
  %.05491343.us = phi i32 [ 0, %.preheader.us ], [ %86, %.thread1247.us ]
  %28 = add i32 %26, %.05491343.us
  %29 = load i32, ptr %12, align 4, !tbaa !5
  %30 = load i32, ptr %19, align 4, !tbaa !17
  %31 = mul i32 %.05491343.us, %4
  %32 = load i32, ptr %20, align 1, !tbaa !21
  %33 = mul i32 %32, %.01344.us
  %34 = add i32 %33, %31
  %35 = load i8, ptr %21, align 1, !tbaa !23
  %36 = icmp ult i8 %35, 16
  br i1 %36, label %51, label %37

37:                                               ; preds = %27
  %.mask.us = and i8 %35, -16
  %38 = icmp eq i8 %.mask.us, 16
  br i1 %38, label %.thread1092.us, label %39

39:                                               ; preds = %37
  %40 = and i8 %35, -32
  %or.cond.us = icmp eq i8 %40, 32
  br i1 %or.cond.us, label %.thread1092.us, label %41

41:                                               ; preds = %39
  %42 = and i8 %35, -32
  %or.cond1331.us = icmp eq i8 %42, 64
  br i1 %or.cond1331.us, label %.thread1092.us, label %43

43:                                               ; preds = %41
  %44 = and i8 %35, -32
  %or.cond1332.us = icmp eq i8 %44, 96
  br i1 %or.cond1332.us, label %.thread1092.us, label %45

45:                                               ; preds = %43
  %46 = and i8 %35, -32
  %or.cond1333.us = icmp eq i8 %46, -128
  br i1 %or.cond1333.us, label %.thread1092.us, label %47

47:                                               ; preds = %45
  %48 = and i8 %35, -32
  %or.cond1334.us = icmp eq i8 %48, -96
  br i1 %or.cond1334.us, label %.thread1092.us, label %49

49:                                               ; preds = %47
  %50 = and i8 %35, -32
  %or.cond1335.us = icmp eq i8 %50, -64
  br i1 %or.cond1335.us, label %.thread1092.us, label %.thread1150

51:                                               ; preds = %27
  %52 = icmp ult i8 %35, 14
  br i1 %52, label %switch.lookup, label %.thread1150

switch.lookup:                                    ; preds = %51
  %53 = zext nneg i8 %35 to i64
  %switch.gep = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_unpackstore_2d_reg_block.1, i64 0, i64 %53
  %switch.load = load i32, ptr %switch.gep, align 4
  br label %.thread1092.us

.thread1092.us:                                   ; preds = %switch.lookup, %49, %47, %45, %43, %41, %39, %37
  %54 = phi i32 [ 4, %37 ], [ 2, %39 ], [ 1, %41 ], [ 8, %43 ], [ 4, %45 ], [ 2, %47 ], [ 1, %49 ], [ %switch.load, %switch.lookup ]
  %55 = mul i32 %54, %34
  %56 = icmp eq i32 %.05491343.us, %23
  %57 = and i1 %22, %56
  %58 = select i1 %57, i32 %9, i32 0
  tail call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %29, i32 noundef 671491379, i32 noundef %30, i32 noundef 127, i32 noundef 0, i32 noundef %55, i8 noundef signext %15, i32 noundef %28, i32 noundef %58, i32 noundef 0, i32 noundef 1) #3
  tail call void @libxsmm_x86_instruction_vec_compute_2reg_imm8(ptr noundef nonnull %0, i32 noundef 609031794, i8 noundef signext %15, i32 noundef %28, i32 noundef %28, i32 noundef 16) #3
  %59 = load i32, ptr %12, align 4, !tbaa !5
  %60 = load i32, ptr %19, align 4, !tbaa !17
  %61 = load i32, ptr %24, align 4, !tbaa !24
  %62 = load i32, ptr %20, align 1, !tbaa !21
  %63 = mul i32 %62, %.01344.us
  %64 = add i32 %63, %31
  %65 = load i8, ptr %21, align 1, !tbaa !23
  %66 = icmp ult i8 %65, 16
  br i1 %66, label %81, label %67

67:                                               ; preds = %.thread1092.us
  %.mask1318.us = and i8 %65, -16
  %68 = icmp eq i8 %.mask1318.us, 16
  br i1 %68, label %.thread1247.us, label %69

69:                                               ; preds = %67
  %70 = and i8 %65, -32
  %or.cond1336.us = icmp eq i8 %70, 32
  br i1 %or.cond1336.us, label %.thread1247.us, label %71

71:                                               ; preds = %69
  %72 = and i8 %65, -32
  %or.cond1337.us = icmp eq i8 %72, 64
  br i1 %or.cond1337.us, label %.thread1247.us, label %73

73:                                               ; preds = %71
  %74 = and i8 %65, -32
  %or.cond1338.us = icmp eq i8 %74, 96
  br i1 %or.cond1338.us, label %.thread1247.us, label %75

75:                                               ; preds = %73
  %76 = and i8 %65, -32
  %or.cond1339.us = icmp eq i8 %76, -128
  br i1 %or.cond1339.us, label %.thread1247.us, label %77

77:                                               ; preds = %75
  %78 = and i8 %65, -32
  %or.cond1340.us = icmp eq i8 %78, -96
  br i1 %or.cond1340.us, label %.thread1247.us, label %79

79:                                               ; preds = %77
  %80 = and i8 %65, -32
  %or.cond1341.us = icmp eq i8 %80, -64
  br i1 %or.cond1341.us, label %.thread1247.us, label %.thread1305

81:                                               ; preds = %.thread1092.us
  %82 = icmp ult i8 %65, 14
  br i1 %82, label %switch.lookup1348, label %.thread1305

switch.lookup1348:                                ; preds = %81
  %83 = zext nneg i8 %65 to i64
  %switch.gep1349 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_unpackstore_2d_reg_block.1, i64 0, i64 %83
  %switch.load1350 = load i32, ptr %switch.gep1349, align 4
  br label %.thread1247.us

.thread1247.us:                                   ; preds = %switch.lookup1348, %79, %77, %75, %73, %71, %69, %67
  %84 = phi i32 [ 4, %67 ], [ 2, %69 ], [ 1, %71 ], [ 8, %73 ], [ 4, %75 ], [ 2, %77 ], [ 1, %79 ], [ %switch.load1350, %switch.lookup1348 ]
  %85 = mul i32 %84, %64
  tail call void @libxsmm_x86_instruction_vec_move(ptr noundef nonnull %0, i32 noundef %59, i32 noundef 671491379, i32 noundef %60, i32 noundef %61, i32 noundef 1, i32 noundef %85, i8 noundef signext %15, i32 noundef %28, i32 noundef %58, i32 noundef 0, i32 noundef 1) #3
  %86 = add nuw i32 %.05491343.us, 1
  %exitcond.not = icmp eq i32 %86, %6
  br i1 %exitcond.not, label %._crit_edge.us, label %27, !llvm.loop !25

._crit_edge.us:                                   ; preds = %.thread1247.us
  %87 = add nuw i32 %.01344.us, 1
  %exitcond1347.not = icmp eq i32 %87, %7
  br i1 %exitcond1347.not, label %.loopexit, label %.preheader.us, !llvm.loop !27

.thread1150:                                      ; preds = %51, %49
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 947, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #4
  unreachable

.thread1305:                                      ; preds = %81, %79
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 959, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block) #4
  unreachable

.loopexit:                                        ; preds = %._crit_edge.us, %.preheader.lr.ph, %10
  ret void
}

declare void @libxsmm_x86_instruction_vec_compute_2reg_imm8(ptr noundef, i32 noundef, i8 noundef signext, 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, !10, i64 20}
!18 = !{!"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, !19, i64 72, !20, i64 220}
!19 = !{!"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}
!20 = !{!"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}
!21 = !{!22, !10, i64 8}
!22 = !{!"libxsmm_meqn_descriptor", !10, i64 0, !10, i64 4, !10, i64 8, !8, i64 12, !10, i64 13}
!23 = !{!22, !8, i64 12}
!24 = !{!18, !10, i64 44}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = distinct !{!27, !26}


; Effective O3 passes: ConstantMergePass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass