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

; 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_meqn_descriptor = type <{ i32, i32, i32, i8, i32 }>
%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 }

@.str = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [291 x i8], align 1
@__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64 = external hidden unnamed_addr constant [281 x i8], align 1

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

declare void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i64 noundef) #1

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

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

declare i32 @libxsmm_generator_matequation_regblocks_get_start_of_register_block(ptr noundef, i32 noundef) #1

declare i32 @libxsmm_generator_aarch64_get_sve_type(i8 noundef zeroext) #1

declare void @libxsmm_generator_vloadstore_masked_vreg_aarch64(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef zeroext, i8 noundef zeroext) #1

declare void @libxsmm_aarch64_instruction_sve_compute(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef zeroext, i32 noundef, i32 noundef, i32 noundef) #1

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64(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) #3 {
  %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 i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i8, align 1
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = 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
  %33 = load ptr, ptr %13, align 8, !tbaa !5
  %34 = load i32, ptr %16, align 4, !tbaa !9
  %35 = call i32 @libxsmm_generator_matequation_regblocks_get_start_of_register_block(ptr noundef %33, i32 noundef %34)
  store i32 %35, ptr %24, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #4
  %36 = load ptr, ptr %14, align 8, !tbaa !5
  %37 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %36, i32 0, i32 2
  %38 = load i32, ptr %37, align 1, !tbaa !11
  %39 = load ptr, ptr %14, align 8, !tbaa !5
  %40 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %39, i32 0, i32 3
  %41 = load i8, ptr %40, align 1, !tbaa !13
  %42 = zext i8 %41 to i32
  %43 = ashr i32 %42, 4
  %44 = icmp eq i32 0, %43
  br i1 %44, label %45, label %207

45:                                               ; preds = %10
  %46 = load ptr, ptr %14, align 8, !tbaa !5
  %47 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %46, i32 0, i32 3
  %48 = load i8, ptr %47, align 1, !tbaa !13
  %49 = zext i8 %48 to i32
  %50 = and i32 %49, 15
  %51 = icmp eq i32 0, %50
  br i1 %51, label %52, label %53

52:                                               ; preds = %45
  br label %205

53:                                               ; preds = %45
  %54 = load ptr, ptr %14, align 8, !tbaa !5
  %55 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %54, i32 0, i32 3
  %56 = load i8, ptr %55, align 1, !tbaa !13
  %57 = zext i8 %56 to i32
  %58 = and i32 %57, 15
  %59 = icmp eq i32 1, %58
  br i1 %59, label %60, label %61

60:                                               ; preds = %53
  br label %203

61:                                               ; preds = %53
  %62 = load ptr, ptr %14, align 8, !tbaa !5
  %63 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %62, i32 0, i32 3
  %64 = load i8, ptr %63, align 1, !tbaa !13
  %65 = zext i8 %64 to i32
  %66 = and i32 %65, 15
  %67 = icmp eq i32 2, %66
  br i1 %67, label %68, label %69

68:                                               ; preds = %61
  br label %201

69:                                               ; preds = %61
  %70 = load ptr, ptr %14, align 8, !tbaa !5
  %71 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %70, i32 0, i32 3
  %72 = load i8, ptr %71, align 1, !tbaa !13
  %73 = zext i8 %72 to i32
  %74 = and i32 %73, 15
  %75 = icmp eq i32 3, %74
  br i1 %75, label %76, label %77

76:                                               ; preds = %69
  br label %199

77:                                               ; preds = %69
  %78 = load ptr, ptr %14, align 8, !tbaa !5
  %79 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %78, i32 0, i32 3
  %80 = load i8, ptr %79, align 1, !tbaa !13
  %81 = zext i8 %80 to i32
  %82 = and i32 %81, 15
  %83 = icmp eq i32 4, %82
  br i1 %83, label %84, label %85

84:                                               ; preds = %77
  br label %197

85:                                               ; preds = %77
  %86 = load ptr, ptr %14, align 8, !tbaa !5
  %87 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %86, i32 0, i32 3
  %88 = load i8, ptr %87, align 1, !tbaa !13
  %89 = zext i8 %88 to i32
  %90 = and i32 %89, 15
  %91 = icmp eq i32 5, %90
  br i1 %91, label %92, label %93

92:                                               ; preds = %85
  br label %195

93:                                               ; preds = %85
  %94 = load ptr, ptr %14, align 8, !tbaa !5
  %95 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %94, i32 0, i32 3
  %96 = load i8, ptr %95, align 1, !tbaa !13
  %97 = zext i8 %96 to i32
  %98 = and i32 %97, 15
  %99 = icmp eq i32 6, %98
  br i1 %99, label %100, label %101

100:                                              ; preds = %93
  br label %193

101:                                              ; preds = %93
  %102 = load ptr, ptr %14, align 8, !tbaa !5
  %103 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %102, i32 0, i32 3
  %104 = load i8, ptr %103, align 1, !tbaa !13
  %105 = zext i8 %104 to i32
  %106 = and i32 %105, 15
  %107 = icmp eq i32 7, %106
  br i1 %107, label %108, label %109

108:                                              ; preds = %101
  br label %191

109:                                              ; preds = %101
  %110 = load ptr, ptr %14, align 8, !tbaa !5
  %111 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %110, i32 0, i32 3
  %112 = load i8, ptr %111, align 1, !tbaa !13
  %113 = zext i8 %112 to i32
  %114 = and i32 %113, 15
  %115 = icmp eq i32 8, %114
  br i1 %115, label %116, label %117

116:                                              ; preds = %109
  br label %189

117:                                              ; preds = %109
  %118 = load ptr, ptr %14, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %118, i32 0, i32 3
  %120 = load i8, ptr %119, align 1, !tbaa !13
  %121 = zext i8 %120 to i32
  %122 = and i32 %121, 15
  %123 = icmp eq i32 9, %122
  br i1 %123, label %124, label %125

124:                                              ; preds = %117
  br label %187

125:                                              ; preds = %117
  %126 = load ptr, ptr %14, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %126, i32 0, i32 3
  %128 = load i8, ptr %127, align 1, !tbaa !13
  %129 = zext i8 %128 to i32
  %130 = and i32 %129, 15
  %131 = icmp eq i32 10, %130
  br i1 %131, label %132, label %133

132:                                              ; preds = %125
  br label %185

133:                                              ; preds = %125
  %134 = load ptr, ptr %14, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %134, i32 0, i32 3
  %136 = load i8, ptr %135, align 1, !tbaa !13
  %137 = zext i8 %136 to i32
  %138 = and i32 %137, 15
  %139 = icmp eq i32 11, %138
  br i1 %139, label %140, label %141

140:                                              ; preds = %133
  br label %183

141:                                              ; preds = %133
  %142 = load ptr, ptr %14, align 8, !tbaa !5
  %143 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %142, i32 0, i32 3
  %144 = load i8, ptr %143, align 1, !tbaa !13
  %145 = zext i8 %144 to i32
  %146 = and i32 %145, 15
  %147 = icmp eq i32 12, %146
  br i1 %147, label %148, label %149

148:                                              ; preds = %141
  br label %181

149:                                              ; preds = %141
  %150 = load ptr, ptr %14, align 8, !tbaa !5
  %151 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %150, i32 0, i32 3
  %152 = load i8, ptr %151, align 1, !tbaa !13
  %153 = zext i8 %152 to i32
  %154 = and i32 %153, 15
  %155 = icmp eq i32 13, %154
  br i1 %155, label %156, label %157

156:                                              ; preds = %149
  br label %179

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

164:                                              ; preds = %157
  br label %177

165:                                              ; preds = %157
  %166 = load ptr, ptr %14, align 8, !tbaa !5
  %167 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %166, i32 0, i32 3
  %168 = load i8, ptr %167, align 1, !tbaa !13
  %169 = zext i8 %168 to i32
  %170 = and i32 %169, 15
  %171 = icmp eq i32 15, %170
  br i1 %171, label %172, label %173

172:                                              ; preds = %165
  br label %175

173:                                              ; preds = %165
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 600, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

174:                                              ; No predecessors!
  br label %175

175:                                              ; preds = %174, %172
  %176 = phi i32 [ 15, %172 ], [ 0, %174 ]
  br label %177

177:                                              ; preds = %175, %164
  %178 = phi i32 [ 14, %164 ], [ %176, %175 ]
  br label %179

179:                                              ; preds = %177, %156
  %180 = phi i32 [ 12, %156 ], [ %178, %177 ]
  br label %181

181:                                              ; preds = %179, %148
  %182 = phi i32 [ 12, %148 ], [ %180, %179 ]
  br label %183

183:                                              ; preds = %181, %140
  %184 = phi i32 [ 10, %140 ], [ %182, %181 ]
  br label %185

185:                                              ; preds = %183, %132
  %186 = phi i32 [ 10, %132 ], [ %184, %183 ]
  br label %187

187:                                              ; preds = %185, %124
  %188 = phi i32 [ 8, %124 ], [ %186, %185 ]
  br label %189

189:                                              ; preds = %187, %116
  %190 = phi i32 [ 8, %116 ], [ %188, %187 ]
  br label %191

191:                                              ; preds = %189, %108
  %192 = phi i32 [ 6, %108 ], [ %190, %189 ]
  br label %193

193:                                              ; preds = %191, %100
  %194 = phi i32 [ 6, %100 ], [ %192, %191 ]
  br label %195

195:                                              ; preds = %193, %92
  %196 = phi i32 [ 5, %92 ], [ %194, %193 ]
  br label %197

197:                                              ; preds = %195, %84
  %198 = phi i32 [ 4, %84 ], [ %196, %195 ]
  br label %199

199:                                              ; preds = %197, %76
  %200 = phi i32 [ 3, %76 ], [ %198, %197 ]
  br label %201

201:                                              ; preds = %199, %68
  %202 = phi i32 [ 2, %68 ], [ %200, %199 ]
  br label %203

203:                                              ; preds = %201, %60
  %204 = phi i32 [ 1, %60 ], [ %202, %201 ]
  br label %205

205:                                              ; preds = %203, %52
  %206 = phi i32 [ 0, %52 ], [ %204, %203 ]
  br label %213

207:                                              ; preds = %10
  %208 = load ptr, ptr %14, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %208, i32 0, i32 3
  %210 = load i8, ptr %209, align 1, !tbaa !13
  %211 = zext i8 %210 to i32
  %212 = ashr i32 %211, 4
  br label %213

213:                                              ; preds = %207, %205
  %214 = phi i32 [ %206, %205 ], [ %212, %207 ]
  %215 = icmp eq i32 0, %214
  br i1 %215, label %216, label %217

216:                                              ; preds = %213
  br label %2572

217:                                              ; preds = %213
  %218 = load ptr, ptr %14, align 8, !tbaa !5
  %219 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %218, i32 0, i32 3
  %220 = load i8, ptr %219, align 1, !tbaa !13
  %221 = zext i8 %220 to i32
  %222 = ashr i32 %221, 4
  %223 = icmp eq i32 0, %222
  br i1 %223, label %224, label %386

224:                                              ; preds = %217
  %225 = load ptr, ptr %14, align 8, !tbaa !5
  %226 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %225, i32 0, i32 3
  %227 = load i8, ptr %226, align 1, !tbaa !13
  %228 = zext i8 %227 to i32
  %229 = and i32 %228, 15
  %230 = icmp eq i32 0, %229
  br i1 %230, label %231, label %232

231:                                              ; preds = %224
  br label %384

232:                                              ; preds = %224
  %233 = load ptr, ptr %14, align 8, !tbaa !5
  %234 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %233, i32 0, i32 3
  %235 = load i8, ptr %234, align 1, !tbaa !13
  %236 = zext i8 %235 to i32
  %237 = and i32 %236, 15
  %238 = icmp eq i32 1, %237
  br i1 %238, label %239, label %240

239:                                              ; preds = %232
  br label %382

240:                                              ; preds = %232
  %241 = load ptr, ptr %14, align 8, !tbaa !5
  %242 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %241, i32 0, i32 3
  %243 = load i8, ptr %242, align 1, !tbaa !13
  %244 = zext i8 %243 to i32
  %245 = and i32 %244, 15
  %246 = icmp eq i32 2, %245
  br i1 %246, label %247, label %248

247:                                              ; preds = %240
  br label %380

248:                                              ; preds = %240
  %249 = load ptr, ptr %14, align 8, !tbaa !5
  %250 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %249, i32 0, i32 3
  %251 = load i8, ptr %250, align 1, !tbaa !13
  %252 = zext i8 %251 to i32
  %253 = and i32 %252, 15
  %254 = icmp eq i32 3, %253
  br i1 %254, label %255, label %256

255:                                              ; preds = %248
  br label %378

256:                                              ; preds = %248
  %257 = load ptr, ptr %14, align 8, !tbaa !5
  %258 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %257, i32 0, i32 3
  %259 = load i8, ptr %258, align 1, !tbaa !13
  %260 = zext i8 %259 to i32
  %261 = and i32 %260, 15
  %262 = icmp eq i32 4, %261
  br i1 %262, label %263, label %264

263:                                              ; preds = %256
  br label %376

264:                                              ; preds = %256
  %265 = load ptr, ptr %14, align 8, !tbaa !5
  %266 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %265, i32 0, i32 3
  %267 = load i8, ptr %266, align 1, !tbaa !13
  %268 = zext i8 %267 to i32
  %269 = and i32 %268, 15
  %270 = icmp eq i32 5, %269
  br i1 %270, label %271, label %272

271:                                              ; preds = %264
  br label %374

272:                                              ; preds = %264
  %273 = load ptr, ptr %14, align 8, !tbaa !5
  %274 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %273, i32 0, i32 3
  %275 = load i8, ptr %274, align 1, !tbaa !13
  %276 = zext i8 %275 to i32
  %277 = and i32 %276, 15
  %278 = icmp eq i32 6, %277
  br i1 %278, label %279, label %280

279:                                              ; preds = %272
  br label %372

280:                                              ; preds = %272
  %281 = load ptr, ptr %14, align 8, !tbaa !5
  %282 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %281, i32 0, i32 3
  %283 = load i8, ptr %282, align 1, !tbaa !13
  %284 = zext i8 %283 to i32
  %285 = and i32 %284, 15
  %286 = icmp eq i32 7, %285
  br i1 %286, label %287, label %288

287:                                              ; preds = %280
  br label %370

288:                                              ; preds = %280
  %289 = load ptr, ptr %14, align 8, !tbaa !5
  %290 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %289, i32 0, i32 3
  %291 = load i8, ptr %290, align 1, !tbaa !13
  %292 = zext i8 %291 to i32
  %293 = and i32 %292, 15
  %294 = icmp eq i32 8, %293
  br i1 %294, label %295, label %296

295:                                              ; preds = %288
  br label %368

296:                                              ; preds = %288
  %297 = load ptr, ptr %14, align 8, !tbaa !5
  %298 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %297, i32 0, i32 3
  %299 = load i8, ptr %298, align 1, !tbaa !13
  %300 = zext i8 %299 to i32
  %301 = and i32 %300, 15
  %302 = icmp eq i32 9, %301
  br i1 %302, label %303, label %304

303:                                              ; preds = %296
  br label %366

304:                                              ; preds = %296
  %305 = load ptr, ptr %14, align 8, !tbaa !5
  %306 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %305, i32 0, i32 3
  %307 = load i8, ptr %306, align 1, !tbaa !13
  %308 = zext i8 %307 to i32
  %309 = and i32 %308, 15
  %310 = icmp eq i32 10, %309
  br i1 %310, label %311, label %312

311:                                              ; preds = %304
  br label %364

312:                                              ; preds = %304
  %313 = load ptr, ptr %14, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %313, i32 0, i32 3
  %315 = load i8, ptr %314, align 1, !tbaa !13
  %316 = zext i8 %315 to i32
  %317 = and i32 %316, 15
  %318 = icmp eq i32 11, %317
  br i1 %318, label %319, label %320

319:                                              ; preds = %312
  br label %362

320:                                              ; preds = %312
  %321 = load ptr, ptr %14, align 8, !tbaa !5
  %322 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %321, i32 0, i32 3
  %323 = load i8, ptr %322, align 1, !tbaa !13
  %324 = zext i8 %323 to i32
  %325 = and i32 %324, 15
  %326 = icmp eq i32 12, %325
  br i1 %326, label %327, label %328

327:                                              ; preds = %320
  br label %360

328:                                              ; preds = %320
  %329 = load ptr, ptr %14, align 8, !tbaa !5
  %330 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %329, i32 0, i32 3
  %331 = load i8, ptr %330, align 1, !tbaa !13
  %332 = zext i8 %331 to i32
  %333 = and i32 %332, 15
  %334 = icmp eq i32 13, %333
  br i1 %334, label %335, label %336

335:                                              ; preds = %328
  br label %358

336:                                              ; preds = %328
  %337 = load ptr, ptr %14, align 8, !tbaa !5
  %338 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %337, i32 0, i32 3
  %339 = load i8, ptr %338, align 1, !tbaa !13
  %340 = zext i8 %339 to i32
  %341 = and i32 %340, 15
  %342 = icmp eq i32 14, %341
  br i1 %342, label %343, label %344

343:                                              ; preds = %336
  br label %356

344:                                              ; preds = %336
  %345 = load ptr, ptr %14, align 8, !tbaa !5
  %346 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %345, i32 0, i32 3
  %347 = load i8, ptr %346, align 1, !tbaa !13
  %348 = zext i8 %347 to i32
  %349 = and i32 %348, 15
  %350 = icmp eq i32 15, %349
  br i1 %350, label %351, label %352

351:                                              ; preds = %344
  br label %354

352:                                              ; preds = %344
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 600, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

353:                                              ; No predecessors!
  br label %354

354:                                              ; preds = %353, %351
  %355 = phi i32 [ 15, %351 ], [ 0, %353 ]
  br label %356

356:                                              ; preds = %354, %343
  %357 = phi i32 [ 14, %343 ], [ %355, %354 ]
  br label %358

358:                                              ; preds = %356, %335
  %359 = phi i32 [ 12, %335 ], [ %357, %356 ]
  br label %360

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

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

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

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

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

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

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

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

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

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

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

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

384:                                              ; preds = %382, %231
  %385 = phi i32 [ 0, %231 ], [ %383, %382 ]
  br label %392

386:                                              ; preds = %217
  %387 = load ptr, ptr %14, align 8, !tbaa !5
  %388 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %387, i32 0, i32 3
  %389 = load i8, ptr %388, align 1, !tbaa !13
  %390 = zext i8 %389 to i32
  %391 = ashr i32 %390, 4
  br label %392

392:                                              ; preds = %386, %384
  %393 = phi i32 [ %385, %384 ], [ %391, %386 ]
  %394 = icmp eq i32 1, %393
  br i1 %394, label %395, label %396

395:                                              ; preds = %392
  br label %2570

396:                                              ; preds = %392
  %397 = load ptr, ptr %14, align 8, !tbaa !5
  %398 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %397, i32 0, i32 3
  %399 = load i8, ptr %398, align 1, !tbaa !13
  %400 = zext i8 %399 to i32
  %401 = ashr i32 %400, 4
  %402 = icmp eq i32 0, %401
  br i1 %402, label %403, label %565

403:                                              ; preds = %396
  %404 = load ptr, ptr %14, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %404, i32 0, i32 3
  %406 = load i8, ptr %405, align 1, !tbaa !13
  %407 = zext i8 %406 to i32
  %408 = and i32 %407, 15
  %409 = icmp eq i32 0, %408
  br i1 %409, label %410, label %411

410:                                              ; preds = %403
  br label %563

411:                                              ; preds = %403
  %412 = load ptr, ptr %14, align 8, !tbaa !5
  %413 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %412, i32 0, i32 3
  %414 = load i8, ptr %413, align 1, !tbaa !13
  %415 = zext i8 %414 to i32
  %416 = and i32 %415, 15
  %417 = icmp eq i32 1, %416
  br i1 %417, label %418, label %419

418:                                              ; preds = %411
  br label %561

419:                                              ; preds = %411
  %420 = load ptr, ptr %14, align 8, !tbaa !5
  %421 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %420, i32 0, i32 3
  %422 = load i8, ptr %421, align 1, !tbaa !13
  %423 = zext i8 %422 to i32
  %424 = and i32 %423, 15
  %425 = icmp eq i32 2, %424
  br i1 %425, label %426, label %427

426:                                              ; preds = %419
  br label %559

427:                                              ; preds = %419
  %428 = load ptr, ptr %14, align 8, !tbaa !5
  %429 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %428, i32 0, i32 3
  %430 = load i8, ptr %429, align 1, !tbaa !13
  %431 = zext i8 %430 to i32
  %432 = and i32 %431, 15
  %433 = icmp eq i32 3, %432
  br i1 %433, label %434, label %435

434:                                              ; preds = %427
  br label %557

435:                                              ; preds = %427
  %436 = load ptr, ptr %14, align 8, !tbaa !5
  %437 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %436, i32 0, i32 3
  %438 = load i8, ptr %437, align 1, !tbaa !13
  %439 = zext i8 %438 to i32
  %440 = and i32 %439, 15
  %441 = icmp eq i32 4, %440
  br i1 %441, label %442, label %443

442:                                              ; preds = %435
  br label %555

443:                                              ; preds = %435
  %444 = load ptr, ptr %14, align 8, !tbaa !5
  %445 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %444, i32 0, i32 3
  %446 = load i8, ptr %445, align 1, !tbaa !13
  %447 = zext i8 %446 to i32
  %448 = and i32 %447, 15
  %449 = icmp eq i32 5, %448
  br i1 %449, label %450, label %451

450:                                              ; preds = %443
  br label %553

451:                                              ; preds = %443
  %452 = load ptr, ptr %14, align 8, !tbaa !5
  %453 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %452, i32 0, i32 3
  %454 = load i8, ptr %453, align 1, !tbaa !13
  %455 = zext i8 %454 to i32
  %456 = and i32 %455, 15
  %457 = icmp eq i32 6, %456
  br i1 %457, label %458, label %459

458:                                              ; preds = %451
  br label %551

459:                                              ; preds = %451
  %460 = load ptr, ptr %14, align 8, !tbaa !5
  %461 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %460, i32 0, i32 3
  %462 = load i8, ptr %461, align 1, !tbaa !13
  %463 = zext i8 %462 to i32
  %464 = and i32 %463, 15
  %465 = icmp eq i32 7, %464
  br i1 %465, label %466, label %467

466:                                              ; preds = %459
  br label %549

467:                                              ; preds = %459
  %468 = load ptr, ptr %14, align 8, !tbaa !5
  %469 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %468, i32 0, i32 3
  %470 = load i8, ptr %469, align 1, !tbaa !13
  %471 = zext i8 %470 to i32
  %472 = and i32 %471, 15
  %473 = icmp eq i32 8, %472
  br i1 %473, label %474, label %475

474:                                              ; preds = %467
  br label %547

475:                                              ; preds = %467
  %476 = load ptr, ptr %14, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %476, i32 0, i32 3
  %478 = load i8, ptr %477, align 1, !tbaa !13
  %479 = zext i8 %478 to i32
  %480 = and i32 %479, 15
  %481 = icmp eq i32 9, %480
  br i1 %481, label %482, label %483

482:                                              ; preds = %475
  br label %545

483:                                              ; preds = %475
  %484 = load ptr, ptr %14, align 8, !tbaa !5
  %485 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %484, i32 0, i32 3
  %486 = load i8, ptr %485, align 1, !tbaa !13
  %487 = zext i8 %486 to i32
  %488 = and i32 %487, 15
  %489 = icmp eq i32 10, %488
  br i1 %489, label %490, label %491

490:                                              ; preds = %483
  br label %543

491:                                              ; preds = %483
  %492 = load ptr, ptr %14, align 8, !tbaa !5
  %493 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %492, i32 0, i32 3
  %494 = load i8, ptr %493, align 1, !tbaa !13
  %495 = zext i8 %494 to i32
  %496 = and i32 %495, 15
  %497 = icmp eq i32 11, %496
  br i1 %497, label %498, label %499

498:                                              ; preds = %491
  br label %541

499:                                              ; preds = %491
  %500 = load ptr, ptr %14, align 8, !tbaa !5
  %501 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %500, i32 0, i32 3
  %502 = load i8, ptr %501, align 1, !tbaa !13
  %503 = zext i8 %502 to i32
  %504 = and i32 %503, 15
  %505 = icmp eq i32 12, %504
  br i1 %505, label %506, label %507

506:                                              ; preds = %499
  br label %539

507:                                              ; preds = %499
  %508 = load ptr, ptr %14, align 8, !tbaa !5
  %509 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %508, i32 0, i32 3
  %510 = load i8, ptr %509, align 1, !tbaa !13
  %511 = zext i8 %510 to i32
  %512 = and i32 %511, 15
  %513 = icmp eq i32 13, %512
  br i1 %513, label %514, label %515

514:                                              ; preds = %507
  br label %537

515:                                              ; preds = %507
  %516 = load ptr, ptr %14, align 8, !tbaa !5
  %517 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %516, i32 0, i32 3
  %518 = load i8, ptr %517, align 1, !tbaa !13
  %519 = zext i8 %518 to i32
  %520 = and i32 %519, 15
  %521 = icmp eq i32 14, %520
  br i1 %521, label %522, label %523

522:                                              ; preds = %515
  br label %535

523:                                              ; preds = %515
  %524 = load ptr, ptr %14, align 8, !tbaa !5
  %525 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %524, i32 0, i32 3
  %526 = load i8, ptr %525, align 1, !tbaa !13
  %527 = zext i8 %526 to i32
  %528 = and i32 %527, 15
  %529 = icmp eq i32 15, %528
  br i1 %529, label %530, label %531

530:                                              ; preds = %523
  br label %533

531:                                              ; preds = %523
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 600, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

532:                                              ; No predecessors!
  br label %533

533:                                              ; preds = %532, %530
  %534 = phi i32 [ 15, %530 ], [ 0, %532 ]
  br label %535

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

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

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

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

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

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

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

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

551:                                              ; preds = %549, %458
  %552 = phi i32 [ 6, %458 ], [ %550, %549 ]
  br label %553

553:                                              ; preds = %551, %450
  %554 = phi i32 [ 5, %450 ], [ %552, %551 ]
  br label %555

555:                                              ; preds = %553, %442
  %556 = phi i32 [ 4, %442 ], [ %554, %553 ]
  br label %557

557:                                              ; preds = %555, %434
  %558 = phi i32 [ 3, %434 ], [ %556, %555 ]
  br label %559

559:                                              ; preds = %557, %426
  %560 = phi i32 [ 2, %426 ], [ %558, %557 ]
  br label %561

561:                                              ; preds = %559, %418
  %562 = phi i32 [ 1, %418 ], [ %560, %559 ]
  br label %563

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

565:                                              ; preds = %396
  %566 = load ptr, ptr %14, align 8, !tbaa !5
  %567 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %566, i32 0, i32 3
  %568 = load i8, ptr %567, align 1, !tbaa !13
  %569 = zext i8 %568 to i32
  %570 = ashr i32 %569, 4
  br label %571

571:                                              ; preds = %565, %563
  %572 = phi i32 [ %564, %563 ], [ %570, %565 ]
  %573 = icmp eq i32 2, %572
  br i1 %573, label %574, label %575

574:                                              ; preds = %571
  br label %2568

575:                                              ; preds = %571
  %576 = load ptr, ptr %14, align 8, !tbaa !5
  %577 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %576, i32 0, i32 3
  %578 = load i8, ptr %577, align 1, !tbaa !13
  %579 = zext i8 %578 to i32
  %580 = ashr i32 %579, 4
  %581 = icmp eq i32 0, %580
  br i1 %581, label %582, label %744

582:                                              ; preds = %575
  %583 = load ptr, ptr %14, align 8, !tbaa !5
  %584 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %583, i32 0, i32 3
  %585 = load i8, ptr %584, align 1, !tbaa !13
  %586 = zext i8 %585 to i32
  %587 = and i32 %586, 15
  %588 = icmp eq i32 0, %587
  br i1 %588, label %589, label %590

589:                                              ; preds = %582
  br label %742

590:                                              ; preds = %582
  %591 = load ptr, ptr %14, align 8, !tbaa !5
  %592 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %591, i32 0, i32 3
  %593 = load i8, ptr %592, align 1, !tbaa !13
  %594 = zext i8 %593 to i32
  %595 = and i32 %594, 15
  %596 = icmp eq i32 1, %595
  br i1 %596, label %597, label %598

597:                                              ; preds = %590
  br label %740

598:                                              ; preds = %590
  %599 = load ptr, ptr %14, align 8, !tbaa !5
  %600 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %599, i32 0, i32 3
  %601 = load i8, ptr %600, align 1, !tbaa !13
  %602 = zext i8 %601 to i32
  %603 = and i32 %602, 15
  %604 = icmp eq i32 2, %603
  br i1 %604, label %605, label %606

605:                                              ; preds = %598
  br label %738

606:                                              ; preds = %598
  %607 = load ptr, ptr %14, align 8, !tbaa !5
  %608 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %607, i32 0, i32 3
  %609 = load i8, ptr %608, align 1, !tbaa !13
  %610 = zext i8 %609 to i32
  %611 = and i32 %610, 15
  %612 = icmp eq i32 3, %611
  br i1 %612, label %613, label %614

613:                                              ; preds = %606
  br label %736

614:                                              ; preds = %606
  %615 = load ptr, ptr %14, align 8, !tbaa !5
  %616 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %615, i32 0, i32 3
  %617 = load i8, ptr %616, align 1, !tbaa !13
  %618 = zext i8 %617 to i32
  %619 = and i32 %618, 15
  %620 = icmp eq i32 4, %619
  br i1 %620, label %621, label %622

621:                                              ; preds = %614
  br label %734

622:                                              ; preds = %614
  %623 = load ptr, ptr %14, align 8, !tbaa !5
  %624 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %623, i32 0, i32 3
  %625 = load i8, ptr %624, align 1, !tbaa !13
  %626 = zext i8 %625 to i32
  %627 = and i32 %626, 15
  %628 = icmp eq i32 5, %627
  br i1 %628, label %629, label %630

629:                                              ; preds = %622
  br label %732

630:                                              ; preds = %622
  %631 = load ptr, ptr %14, align 8, !tbaa !5
  %632 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %631, i32 0, i32 3
  %633 = load i8, ptr %632, align 1, !tbaa !13
  %634 = zext i8 %633 to i32
  %635 = and i32 %634, 15
  %636 = icmp eq i32 6, %635
  br i1 %636, label %637, label %638

637:                                              ; preds = %630
  br label %730

638:                                              ; preds = %630
  %639 = load ptr, ptr %14, align 8, !tbaa !5
  %640 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %639, i32 0, i32 3
  %641 = load i8, ptr %640, align 1, !tbaa !13
  %642 = zext i8 %641 to i32
  %643 = and i32 %642, 15
  %644 = icmp eq i32 7, %643
  br i1 %644, label %645, label %646

645:                                              ; preds = %638
  br label %728

646:                                              ; preds = %638
  %647 = load ptr, ptr %14, align 8, !tbaa !5
  %648 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %647, i32 0, i32 3
  %649 = load i8, ptr %648, align 1, !tbaa !13
  %650 = zext i8 %649 to i32
  %651 = and i32 %650, 15
  %652 = icmp eq i32 8, %651
  br i1 %652, label %653, label %654

653:                                              ; preds = %646
  br label %726

654:                                              ; preds = %646
  %655 = load ptr, ptr %14, align 8, !tbaa !5
  %656 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %655, i32 0, i32 3
  %657 = load i8, ptr %656, align 1, !tbaa !13
  %658 = zext i8 %657 to i32
  %659 = and i32 %658, 15
  %660 = icmp eq i32 9, %659
  br i1 %660, label %661, label %662

661:                                              ; preds = %654
  br label %724

662:                                              ; preds = %654
  %663 = load ptr, ptr %14, align 8, !tbaa !5
  %664 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %663, i32 0, i32 3
  %665 = load i8, ptr %664, align 1, !tbaa !13
  %666 = zext i8 %665 to i32
  %667 = and i32 %666, 15
  %668 = icmp eq i32 10, %667
  br i1 %668, label %669, label %670

669:                                              ; preds = %662
  br label %722

670:                                              ; preds = %662
  %671 = load ptr, ptr %14, align 8, !tbaa !5
  %672 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %671, i32 0, i32 3
  %673 = load i8, ptr %672, align 1, !tbaa !13
  %674 = zext i8 %673 to i32
  %675 = and i32 %674, 15
  %676 = icmp eq i32 11, %675
  br i1 %676, label %677, label %678

677:                                              ; preds = %670
  br label %720

678:                                              ; preds = %670
  %679 = load ptr, ptr %14, align 8, !tbaa !5
  %680 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %679, i32 0, i32 3
  %681 = load i8, ptr %680, align 1, !tbaa !13
  %682 = zext i8 %681 to i32
  %683 = and i32 %682, 15
  %684 = icmp eq i32 12, %683
  br i1 %684, label %685, label %686

685:                                              ; preds = %678
  br label %718

686:                                              ; preds = %678
  %687 = load ptr, ptr %14, align 8, !tbaa !5
  %688 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %687, i32 0, i32 3
  %689 = load i8, ptr %688, align 1, !tbaa !13
  %690 = zext i8 %689 to i32
  %691 = and i32 %690, 15
  %692 = icmp eq i32 13, %691
  br i1 %692, label %693, label %694

693:                                              ; preds = %686
  br label %716

694:                                              ; preds = %686
  %695 = load ptr, ptr %14, align 8, !tbaa !5
  %696 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %695, i32 0, i32 3
  %697 = load i8, ptr %696, align 1, !tbaa !13
  %698 = zext i8 %697 to i32
  %699 = and i32 %698, 15
  %700 = icmp eq i32 14, %699
  br i1 %700, label %701, label %702

701:                                              ; preds = %694
  br label %714

702:                                              ; preds = %694
  %703 = load ptr, ptr %14, align 8, !tbaa !5
  %704 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %703, i32 0, i32 3
  %705 = load i8, ptr %704, align 1, !tbaa !13
  %706 = zext i8 %705 to i32
  %707 = and i32 %706, 15
  %708 = icmp eq i32 15, %707
  br i1 %708, label %709, label %710

709:                                              ; preds = %702
  br label %712

710:                                              ; preds = %702
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 600, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

711:                                              ; No predecessors!
  br label %712

712:                                              ; preds = %711, %709
  %713 = phi i32 [ 15, %709 ], [ 0, %711 ]
  br label %714

714:                                              ; preds = %712, %701
  %715 = phi i32 [ 14, %701 ], [ %713, %712 ]
  br label %716

716:                                              ; preds = %714, %693
  %717 = phi i32 [ 12, %693 ], [ %715, %714 ]
  br label %718

718:                                              ; preds = %716, %685
  %719 = phi i32 [ 12, %685 ], [ %717, %716 ]
  br label %720

720:                                              ; preds = %718, %677
  %721 = phi i32 [ 10, %677 ], [ %719, %718 ]
  br label %722

722:                                              ; preds = %720, %669
  %723 = phi i32 [ 10, %669 ], [ %721, %720 ]
  br label %724

724:                                              ; preds = %722, %661
  %725 = phi i32 [ 8, %661 ], [ %723, %722 ]
  br label %726

726:                                              ; preds = %724, %653
  %727 = phi i32 [ 8, %653 ], [ %725, %724 ]
  br label %728

728:                                              ; preds = %726, %645
  %729 = phi i32 [ 6, %645 ], [ %727, %726 ]
  br label %730

730:                                              ; preds = %728, %637
  %731 = phi i32 [ 6, %637 ], [ %729, %728 ]
  br label %732

732:                                              ; preds = %730, %629
  %733 = phi i32 [ 5, %629 ], [ %731, %730 ]
  br label %734

734:                                              ; preds = %732, %621
  %735 = phi i32 [ 4, %621 ], [ %733, %732 ]
  br label %736

736:                                              ; preds = %734, %613
  %737 = phi i32 [ 3, %613 ], [ %735, %734 ]
  br label %738

738:                                              ; preds = %736, %605
  %739 = phi i32 [ 2, %605 ], [ %737, %736 ]
  br label %740

740:                                              ; preds = %738, %597
  %741 = phi i32 [ 1, %597 ], [ %739, %738 ]
  br label %742

742:                                              ; preds = %740, %589
  %743 = phi i32 [ 0, %589 ], [ %741, %740 ]
  br label %750

744:                                              ; preds = %575
  %745 = load ptr, ptr %14, align 8, !tbaa !5
  %746 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %745, i32 0, i32 3
  %747 = load i8, ptr %746, align 1, !tbaa !13
  %748 = zext i8 %747 to i32
  %749 = ashr i32 %748, 4
  br label %750

750:                                              ; preds = %744, %742
  %751 = phi i32 [ %743, %742 ], [ %749, %744 ]
  %752 = icmp eq i32 3, %751
  br i1 %752, label %753, label %754

753:                                              ; preds = %750
  br label %2566

754:                                              ; preds = %750
  %755 = load ptr, ptr %14, align 8, !tbaa !5
  %756 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %755, i32 0, i32 3
  %757 = load i8, ptr %756, align 1, !tbaa !13
  %758 = zext i8 %757 to i32
  %759 = ashr i32 %758, 4
  %760 = icmp eq i32 0, %759
  br i1 %760, label %761, label %923

761:                                              ; preds = %754
  %762 = load ptr, ptr %14, align 8, !tbaa !5
  %763 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %762, i32 0, i32 3
  %764 = load i8, ptr %763, align 1, !tbaa !13
  %765 = zext i8 %764 to i32
  %766 = and i32 %765, 15
  %767 = icmp eq i32 0, %766
  br i1 %767, label %768, label %769

768:                                              ; preds = %761
  br label %921

769:                                              ; preds = %761
  %770 = load ptr, ptr %14, align 8, !tbaa !5
  %771 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %770, i32 0, i32 3
  %772 = load i8, ptr %771, align 1, !tbaa !13
  %773 = zext i8 %772 to i32
  %774 = and i32 %773, 15
  %775 = icmp eq i32 1, %774
  br i1 %775, label %776, label %777

776:                                              ; preds = %769
  br label %919

777:                                              ; preds = %769
  %778 = load ptr, ptr %14, align 8, !tbaa !5
  %779 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %778, i32 0, i32 3
  %780 = load i8, ptr %779, align 1, !tbaa !13
  %781 = zext i8 %780 to i32
  %782 = and i32 %781, 15
  %783 = icmp eq i32 2, %782
  br i1 %783, label %784, label %785

784:                                              ; preds = %777
  br label %917

785:                                              ; preds = %777
  %786 = load ptr, ptr %14, align 8, !tbaa !5
  %787 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %786, i32 0, i32 3
  %788 = load i8, ptr %787, align 1, !tbaa !13
  %789 = zext i8 %788 to i32
  %790 = and i32 %789, 15
  %791 = icmp eq i32 3, %790
  br i1 %791, label %792, label %793

792:                                              ; preds = %785
  br label %915

793:                                              ; preds = %785
  %794 = load ptr, ptr %14, align 8, !tbaa !5
  %795 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %794, i32 0, i32 3
  %796 = load i8, ptr %795, align 1, !tbaa !13
  %797 = zext i8 %796 to i32
  %798 = and i32 %797, 15
  %799 = icmp eq i32 4, %798
  br i1 %799, label %800, label %801

800:                                              ; preds = %793
  br label %913

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

808:                                              ; preds = %801
  br label %911

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

816:                                              ; preds = %809
  br label %909

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

824:                                              ; preds = %817
  br label %907

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

832:                                              ; preds = %825
  br label %905

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

840:                                              ; preds = %833
  br label %903

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

848:                                              ; preds = %841
  br label %901

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

856:                                              ; preds = %849
  br label %899

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

864:                                              ; preds = %857
  br label %897

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

872:                                              ; preds = %865
  br label %895

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

880:                                              ; preds = %873
  br label %893

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

888:                                              ; preds = %881
  br label %891

889:                                              ; preds = %881
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 600, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

890:                                              ; No predecessors!
  br label %891

891:                                              ; preds = %890, %888
  %892 = phi i32 [ 15, %888 ], [ 0, %890 ]
  br label %893

893:                                              ; preds = %891, %880
  %894 = phi i32 [ 14, %880 ], [ %892, %891 ]
  br label %895

895:                                              ; preds = %893, %872
  %896 = phi i32 [ 12, %872 ], [ %894, %893 ]
  br label %897

897:                                              ; preds = %895, %864
  %898 = phi i32 [ 12, %864 ], [ %896, %895 ]
  br label %899

899:                                              ; preds = %897, %856
  %900 = phi i32 [ 10, %856 ], [ %898, %897 ]
  br label %901

901:                                              ; preds = %899, %848
  %902 = phi i32 [ 10, %848 ], [ %900, %899 ]
  br label %903

903:                                              ; preds = %901, %840
  %904 = phi i32 [ 8, %840 ], [ %902, %901 ]
  br label %905

905:                                              ; preds = %903, %832
  %906 = phi i32 [ 8, %832 ], [ %904, %903 ]
  br label %907

907:                                              ; preds = %905, %824
  %908 = phi i32 [ 6, %824 ], [ %906, %905 ]
  br label %909

909:                                              ; preds = %907, %816
  %910 = phi i32 [ 6, %816 ], [ %908, %907 ]
  br label %911

911:                                              ; preds = %909, %808
  %912 = phi i32 [ 5, %808 ], [ %910, %909 ]
  br label %913

913:                                              ; preds = %911, %800
  %914 = phi i32 [ 4, %800 ], [ %912, %911 ]
  br label %915

915:                                              ; preds = %913, %792
  %916 = phi i32 [ 3, %792 ], [ %914, %913 ]
  br label %917

917:                                              ; preds = %915, %784
  %918 = phi i32 [ 2, %784 ], [ %916, %915 ]
  br label %919

919:                                              ; preds = %917, %776
  %920 = phi i32 [ 1, %776 ], [ %918, %917 ]
  br label %921

921:                                              ; preds = %919, %768
  %922 = phi i32 [ 0, %768 ], [ %920, %919 ]
  br label %929

923:                                              ; preds = %754
  %924 = load ptr, ptr %14, align 8, !tbaa !5
  %925 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %924, i32 0, i32 3
  %926 = load i8, ptr %925, align 1, !tbaa !13
  %927 = zext i8 %926 to i32
  %928 = ashr i32 %927, 4
  br label %929

929:                                              ; preds = %923, %921
  %930 = phi i32 [ %922, %921 ], [ %928, %923 ]
  %931 = icmp eq i32 4, %930
  br i1 %931, label %932, label %933

932:                                              ; preds = %929
  br label %2564

933:                                              ; preds = %929
  %934 = load ptr, ptr %14, align 8, !tbaa !5
  %935 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %934, i32 0, i32 3
  %936 = load i8, ptr %935, align 1, !tbaa !13
  %937 = zext i8 %936 to i32
  %938 = ashr i32 %937, 4
  %939 = icmp eq i32 0, %938
  br i1 %939, label %940, label %1102

940:                                              ; preds = %933
  %941 = load ptr, ptr %14, align 8, !tbaa !5
  %942 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %941, i32 0, i32 3
  %943 = load i8, ptr %942, align 1, !tbaa !13
  %944 = zext i8 %943 to i32
  %945 = and i32 %944, 15
  %946 = icmp eq i32 0, %945
  br i1 %946, label %947, label %948

947:                                              ; preds = %940
  br label %1100

948:                                              ; preds = %940
  %949 = load ptr, ptr %14, align 8, !tbaa !5
  %950 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %949, i32 0, i32 3
  %951 = load i8, ptr %950, align 1, !tbaa !13
  %952 = zext i8 %951 to i32
  %953 = and i32 %952, 15
  %954 = icmp eq i32 1, %953
  br i1 %954, label %955, label %956

955:                                              ; preds = %948
  br label %1098

956:                                              ; preds = %948
  %957 = load ptr, ptr %14, align 8, !tbaa !5
  %958 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %957, i32 0, i32 3
  %959 = load i8, ptr %958, align 1, !tbaa !13
  %960 = zext i8 %959 to i32
  %961 = and i32 %960, 15
  %962 = icmp eq i32 2, %961
  br i1 %962, label %963, label %964

963:                                              ; preds = %956
  br label %1096

964:                                              ; preds = %956
  %965 = load ptr, ptr %14, align 8, !tbaa !5
  %966 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %965, i32 0, i32 3
  %967 = load i8, ptr %966, align 1, !tbaa !13
  %968 = zext i8 %967 to i32
  %969 = and i32 %968, 15
  %970 = icmp eq i32 3, %969
  br i1 %970, label %971, label %972

971:                                              ; preds = %964
  br label %1094

972:                                              ; preds = %964
  %973 = load ptr, ptr %14, align 8, !tbaa !5
  %974 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %973, i32 0, i32 3
  %975 = load i8, ptr %974, align 1, !tbaa !13
  %976 = zext i8 %975 to i32
  %977 = and i32 %976, 15
  %978 = icmp eq i32 4, %977
  br i1 %978, label %979, label %980

979:                                              ; preds = %972
  br label %1092

980:                                              ; preds = %972
  %981 = load ptr, ptr %14, align 8, !tbaa !5
  %982 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %981, i32 0, i32 3
  %983 = load i8, ptr %982, align 1, !tbaa !13
  %984 = zext i8 %983 to i32
  %985 = and i32 %984, 15
  %986 = icmp eq i32 5, %985
  br i1 %986, label %987, label %988

987:                                              ; preds = %980
  br label %1090

988:                                              ; preds = %980
  %989 = load ptr, ptr %14, align 8, !tbaa !5
  %990 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %989, i32 0, i32 3
  %991 = load i8, ptr %990, align 1, !tbaa !13
  %992 = zext i8 %991 to i32
  %993 = and i32 %992, 15
  %994 = icmp eq i32 6, %993
  br i1 %994, label %995, label %996

995:                                              ; preds = %988
  br label %1088

996:                                              ; preds = %988
  %997 = load ptr, ptr %14, align 8, !tbaa !5
  %998 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %997, i32 0, i32 3
  %999 = load i8, ptr %998, align 1, !tbaa !13
  %1000 = zext i8 %999 to i32
  %1001 = and i32 %1000, 15
  %1002 = icmp eq i32 7, %1001
  br i1 %1002, label %1003, label %1004

1003:                                             ; preds = %996
  br label %1086

1004:                                             ; preds = %996
  %1005 = load ptr, ptr %14, align 8, !tbaa !5
  %1006 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1005, i32 0, i32 3
  %1007 = load i8, ptr %1006, align 1, !tbaa !13
  %1008 = zext i8 %1007 to i32
  %1009 = and i32 %1008, 15
  %1010 = icmp eq i32 8, %1009
  br i1 %1010, label %1011, label %1012

1011:                                             ; preds = %1004
  br label %1084

1012:                                             ; preds = %1004
  %1013 = load ptr, ptr %14, align 8, !tbaa !5
  %1014 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1013, i32 0, i32 3
  %1015 = load i8, ptr %1014, align 1, !tbaa !13
  %1016 = zext i8 %1015 to i32
  %1017 = and i32 %1016, 15
  %1018 = icmp eq i32 9, %1017
  br i1 %1018, label %1019, label %1020

1019:                                             ; preds = %1012
  br label %1082

1020:                                             ; preds = %1012
  %1021 = load ptr, ptr %14, align 8, !tbaa !5
  %1022 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1021, i32 0, i32 3
  %1023 = load i8, ptr %1022, align 1, !tbaa !13
  %1024 = zext i8 %1023 to i32
  %1025 = and i32 %1024, 15
  %1026 = icmp eq i32 10, %1025
  br i1 %1026, label %1027, label %1028

1027:                                             ; preds = %1020
  br label %1080

1028:                                             ; preds = %1020
  %1029 = load ptr, ptr %14, align 8, !tbaa !5
  %1030 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1029, i32 0, i32 3
  %1031 = load i8, ptr %1030, align 1, !tbaa !13
  %1032 = zext i8 %1031 to i32
  %1033 = and i32 %1032, 15
  %1034 = icmp eq i32 11, %1033
  br i1 %1034, label %1035, label %1036

1035:                                             ; preds = %1028
  br label %1078

1036:                                             ; preds = %1028
  %1037 = load ptr, ptr %14, align 8, !tbaa !5
  %1038 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1037, i32 0, i32 3
  %1039 = load i8, ptr %1038, align 1, !tbaa !13
  %1040 = zext i8 %1039 to i32
  %1041 = and i32 %1040, 15
  %1042 = icmp eq i32 12, %1041
  br i1 %1042, label %1043, label %1044

1043:                                             ; preds = %1036
  br label %1076

1044:                                             ; preds = %1036
  %1045 = load ptr, ptr %14, align 8, !tbaa !5
  %1046 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1045, i32 0, i32 3
  %1047 = load i8, ptr %1046, align 1, !tbaa !13
  %1048 = zext i8 %1047 to i32
  %1049 = and i32 %1048, 15
  %1050 = icmp eq i32 13, %1049
  br i1 %1050, label %1051, label %1052

1051:                                             ; preds = %1044
  br label %1074

1052:                                             ; preds = %1044
  %1053 = load ptr, ptr %14, align 8, !tbaa !5
  %1054 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1053, i32 0, i32 3
  %1055 = load i8, ptr %1054, align 1, !tbaa !13
  %1056 = zext i8 %1055 to i32
  %1057 = and i32 %1056, 15
  %1058 = icmp eq i32 14, %1057
  br i1 %1058, label %1059, label %1060

1059:                                             ; preds = %1052
  br label %1072

1060:                                             ; preds = %1052
  %1061 = load ptr, ptr %14, align 8, !tbaa !5
  %1062 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1061, i32 0, i32 3
  %1063 = load i8, ptr %1062, align 1, !tbaa !13
  %1064 = zext i8 %1063 to i32
  %1065 = and i32 %1064, 15
  %1066 = icmp eq i32 15, %1065
  br i1 %1066, label %1067, label %1068

1067:                                             ; preds = %1060
  br label %1070

1068:                                             ; preds = %1060
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 600, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

1069:                                             ; No predecessors!
  br label %1070

1070:                                             ; preds = %1069, %1067
  %1071 = phi i32 [ 15, %1067 ], [ 0, %1069 ]
  br label %1072

1072:                                             ; preds = %1070, %1059
  %1073 = phi i32 [ 14, %1059 ], [ %1071, %1070 ]
  br label %1074

1074:                                             ; preds = %1072, %1051
  %1075 = phi i32 [ 12, %1051 ], [ %1073, %1072 ]
  br label %1076

1076:                                             ; preds = %1074, %1043
  %1077 = phi i32 [ 12, %1043 ], [ %1075, %1074 ]
  br label %1078

1078:                                             ; preds = %1076, %1035
  %1079 = phi i32 [ 10, %1035 ], [ %1077, %1076 ]
  br label %1080

1080:                                             ; preds = %1078, %1027
  %1081 = phi i32 [ 10, %1027 ], [ %1079, %1078 ]
  br label %1082

1082:                                             ; preds = %1080, %1019
  %1083 = phi i32 [ 8, %1019 ], [ %1081, %1080 ]
  br label %1084

1084:                                             ; preds = %1082, %1011
  %1085 = phi i32 [ 8, %1011 ], [ %1083, %1082 ]
  br label %1086

1086:                                             ; preds = %1084, %1003
  %1087 = phi i32 [ 6, %1003 ], [ %1085, %1084 ]
  br label %1088

1088:                                             ; preds = %1086, %995
  %1089 = phi i32 [ 6, %995 ], [ %1087, %1086 ]
  br label %1090

1090:                                             ; preds = %1088, %987
  %1091 = phi i32 [ 5, %987 ], [ %1089, %1088 ]
  br label %1092

1092:                                             ; preds = %1090, %979
  %1093 = phi i32 [ 4, %979 ], [ %1091, %1090 ]
  br label %1094

1094:                                             ; preds = %1092, %971
  %1095 = phi i32 [ 3, %971 ], [ %1093, %1092 ]
  br label %1096

1096:                                             ; preds = %1094, %963
  %1097 = phi i32 [ 2, %963 ], [ %1095, %1094 ]
  br label %1098

1098:                                             ; preds = %1096, %955
  %1099 = phi i32 [ 1, %955 ], [ %1097, %1096 ]
  br label %1100

1100:                                             ; preds = %1098, %947
  %1101 = phi i32 [ 0, %947 ], [ %1099, %1098 ]
  br label %1108

1102:                                             ; preds = %933
  %1103 = load ptr, ptr %14, align 8, !tbaa !5
  %1104 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1103, i32 0, i32 3
  %1105 = load i8, ptr %1104, align 1, !tbaa !13
  %1106 = zext i8 %1105 to i32
  %1107 = ashr i32 %1106, 4
  br label %1108

1108:                                             ; preds = %1102, %1100
  %1109 = phi i32 [ %1101, %1100 ], [ %1107, %1102 ]
  %1110 = icmp eq i32 5, %1109
  br i1 %1110, label %1111, label %1112

1111:                                             ; preds = %1108
  br label %2562

1112:                                             ; preds = %1108
  %1113 = load ptr, ptr %14, align 8, !tbaa !5
  %1114 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1113, i32 0, i32 3
  %1115 = load i8, ptr %1114, align 1, !tbaa !13
  %1116 = zext i8 %1115 to i32
  %1117 = ashr i32 %1116, 4
  %1118 = icmp eq i32 0, %1117
  br i1 %1118, label %1119, label %1281

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

1126:                                             ; preds = %1119
  br label %1279

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

1134:                                             ; preds = %1127
  br label %1277

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

1142:                                             ; preds = %1135
  br label %1275

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

1150:                                             ; preds = %1143
  br label %1273

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

1158:                                             ; preds = %1151
  br label %1271

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

1166:                                             ; preds = %1159
  br label %1269

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

1174:                                             ; preds = %1167
  br label %1267

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

1182:                                             ; preds = %1175
  br label %1265

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

1190:                                             ; preds = %1183
  br label %1263

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

1198:                                             ; preds = %1191
  br label %1261

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

1206:                                             ; preds = %1199
  br label %1259

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

1214:                                             ; preds = %1207
  br label %1257

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

1222:                                             ; preds = %1215
  br label %1255

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

1230:                                             ; preds = %1223
  br label %1253

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

1238:                                             ; preds = %1231
  br label %1251

1239:                                             ; preds = %1231
  %1240 = load ptr, ptr %14, align 8, !tbaa !5
  %1241 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1240, i32 0, i32 3
  %1242 = load i8, ptr %1241, align 1, !tbaa !13
  %1243 = zext i8 %1242 to i32
  %1244 = and i32 %1243, 15
  %1245 = icmp eq i32 15, %1244
  br i1 %1245, label %1246, label %1247

1246:                                             ; preds = %1239
  br label %1249

1247:                                             ; preds = %1239
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 600, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

1248:                                             ; No predecessors!
  br label %1249

1249:                                             ; preds = %1248, %1246
  %1250 = phi i32 [ 15, %1246 ], [ 0, %1248 ]
  br label %1251

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

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

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

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

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

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

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

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

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

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

1271:                                             ; preds = %1269, %1158
  %1272 = phi i32 [ 4, %1158 ], [ %1270, %1269 ]
  br label %1273

1273:                                             ; preds = %1271, %1150
  %1274 = phi i32 [ 3, %1150 ], [ %1272, %1271 ]
  br label %1275

1275:                                             ; preds = %1273, %1142
  %1276 = phi i32 [ 2, %1142 ], [ %1274, %1273 ]
  br label %1277

1277:                                             ; preds = %1275, %1134
  %1278 = phi i32 [ 1, %1134 ], [ %1276, %1275 ]
  br label %1279

1279:                                             ; preds = %1277, %1126
  %1280 = phi i32 [ 0, %1126 ], [ %1278, %1277 ]
  br label %1287

1281:                                             ; preds = %1112
  %1282 = load ptr, ptr %14, align 8, !tbaa !5
  %1283 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1282, i32 0, i32 3
  %1284 = load i8, ptr %1283, align 1, !tbaa !13
  %1285 = zext i8 %1284 to i32
  %1286 = ashr i32 %1285, 4
  br label %1287

1287:                                             ; preds = %1281, %1279
  %1288 = phi i32 [ %1280, %1279 ], [ %1286, %1281 ]
  %1289 = icmp eq i32 6, %1288
  br i1 %1289, label %1290, label %1291

1290:                                             ; preds = %1287
  br label %2560

1291:                                             ; preds = %1287
  %1292 = load ptr, ptr %14, align 8, !tbaa !5
  %1293 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1292, i32 0, i32 3
  %1294 = load i8, ptr %1293, align 1, !tbaa !13
  %1295 = zext i8 %1294 to i32
  %1296 = ashr i32 %1295, 4
  %1297 = icmp eq i32 0, %1296
  br i1 %1297, label %1298, label %1460

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

1305:                                             ; preds = %1298
  br label %1458

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

1313:                                             ; preds = %1306
  br label %1456

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

1321:                                             ; preds = %1314
  br label %1454

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

1329:                                             ; preds = %1322
  br label %1452

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

1337:                                             ; preds = %1330
  br label %1450

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

1345:                                             ; preds = %1338
  br label %1448

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

1353:                                             ; preds = %1346
  br label %1446

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

1361:                                             ; preds = %1354
  br label %1444

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

1369:                                             ; preds = %1362
  br label %1442

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

1377:                                             ; preds = %1370
  br label %1440

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

1385:                                             ; preds = %1378
  br label %1438

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

1393:                                             ; preds = %1386
  br label %1436

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

1401:                                             ; preds = %1394
  br label %1434

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

1409:                                             ; preds = %1402
  br label %1432

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

1417:                                             ; preds = %1410
  br label %1430

1418:                                             ; preds = %1410
  %1419 = load ptr, ptr %14, align 8, !tbaa !5
  %1420 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1419, i32 0, i32 3
  %1421 = load i8, ptr %1420, align 1, !tbaa !13
  %1422 = zext i8 %1421 to i32
  %1423 = and i32 %1422, 15
  %1424 = icmp eq i32 15, %1423
  br i1 %1424, label %1425, label %1426

1425:                                             ; preds = %1418
  br label %1428

1426:                                             ; preds = %1418
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 600, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

1427:                                             ; No predecessors!
  br label %1428

1428:                                             ; preds = %1427, %1425
  %1429 = phi i32 [ 15, %1425 ], [ 0, %1427 ]
  br label %1430

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

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

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

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

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

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

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

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

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

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

1450:                                             ; preds = %1448, %1337
  %1451 = phi i32 [ 4, %1337 ], [ %1449, %1448 ]
  br label %1452

1452:                                             ; preds = %1450, %1329
  %1453 = phi i32 [ 3, %1329 ], [ %1451, %1450 ]
  br label %1454

1454:                                             ; preds = %1452, %1321
  %1455 = phi i32 [ 2, %1321 ], [ %1453, %1452 ]
  br label %1456

1456:                                             ; preds = %1454, %1313
  %1457 = phi i32 [ 1, %1313 ], [ %1455, %1454 ]
  br label %1458

1458:                                             ; preds = %1456, %1305
  %1459 = phi i32 [ 0, %1305 ], [ %1457, %1456 ]
  br label %1466

1460:                                             ; preds = %1291
  %1461 = load ptr, ptr %14, align 8, !tbaa !5
  %1462 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1461, i32 0, i32 3
  %1463 = load i8, ptr %1462, align 1, !tbaa !13
  %1464 = zext i8 %1463 to i32
  %1465 = ashr i32 %1464, 4
  br label %1466

1466:                                             ; preds = %1460, %1458
  %1467 = phi i32 [ %1459, %1458 ], [ %1465, %1460 ]
  %1468 = icmp eq i32 7, %1467
  br i1 %1468, label %1469, label %1470

1469:                                             ; preds = %1466
  br label %2558

1470:                                             ; preds = %1466
  %1471 = load ptr, ptr %14, align 8, !tbaa !5
  %1472 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1471, i32 0, i32 3
  %1473 = load i8, ptr %1472, align 1, !tbaa !13
  %1474 = zext i8 %1473 to i32
  %1475 = ashr i32 %1474, 4
  %1476 = icmp eq i32 0, %1475
  br i1 %1476, label %1477, label %1639

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

1484:                                             ; preds = %1477
  br label %1637

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

1492:                                             ; preds = %1485
  br label %1635

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

1500:                                             ; preds = %1493
  br label %1633

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

1508:                                             ; preds = %1501
  br label %1631

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

1516:                                             ; preds = %1509
  br label %1629

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

1524:                                             ; preds = %1517
  br label %1627

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

1532:                                             ; preds = %1525
  br label %1625

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

1540:                                             ; preds = %1533
  br label %1623

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

1548:                                             ; preds = %1541
  br label %1621

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

1556:                                             ; preds = %1549
  br label %1619

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

1564:                                             ; preds = %1557
  br label %1617

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

1572:                                             ; preds = %1565
  br label %1615

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

1580:                                             ; preds = %1573
  br label %1613

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

1588:                                             ; preds = %1581
  br label %1611

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

1596:                                             ; preds = %1589
  br label %1609

1597:                                             ; preds = %1589
  %1598 = load ptr, ptr %14, align 8, !tbaa !5
  %1599 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1598, i32 0, i32 3
  %1600 = load i8, ptr %1599, align 1, !tbaa !13
  %1601 = zext i8 %1600 to i32
  %1602 = and i32 %1601, 15
  %1603 = icmp eq i32 15, %1602
  br i1 %1603, label %1604, label %1605

1604:                                             ; preds = %1597
  br label %1607

1605:                                             ; preds = %1597
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 600, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

1606:                                             ; No predecessors!
  br label %1607

1607:                                             ; preds = %1606, %1604
  %1608 = phi i32 [ 15, %1604 ], [ 0, %1606 ]
  br label %1609

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

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

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

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

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

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

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

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

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

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

1629:                                             ; preds = %1627, %1516
  %1630 = phi i32 [ 4, %1516 ], [ %1628, %1627 ]
  br label %1631

1631:                                             ; preds = %1629, %1508
  %1632 = phi i32 [ 3, %1508 ], [ %1630, %1629 ]
  br label %1633

1633:                                             ; preds = %1631, %1500
  %1634 = phi i32 [ 2, %1500 ], [ %1632, %1631 ]
  br label %1635

1635:                                             ; preds = %1633, %1492
  %1636 = phi i32 [ 1, %1492 ], [ %1634, %1633 ]
  br label %1637

1637:                                             ; preds = %1635, %1484
  %1638 = phi i32 [ 0, %1484 ], [ %1636, %1635 ]
  br label %1645

1639:                                             ; preds = %1470
  %1640 = load ptr, ptr %14, align 8, !tbaa !5
  %1641 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1640, i32 0, i32 3
  %1642 = load i8, ptr %1641, align 1, !tbaa !13
  %1643 = zext i8 %1642 to i32
  %1644 = ashr i32 %1643, 4
  br label %1645

1645:                                             ; preds = %1639, %1637
  %1646 = phi i32 [ %1638, %1637 ], [ %1644, %1639 ]
  %1647 = icmp eq i32 8, %1646
  br i1 %1647, label %1648, label %1649

1648:                                             ; preds = %1645
  br label %2556

1649:                                             ; preds = %1645
  %1650 = load ptr, ptr %14, align 8, !tbaa !5
  %1651 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1650, i32 0, i32 3
  %1652 = load i8, ptr %1651, align 1, !tbaa !13
  %1653 = zext i8 %1652 to i32
  %1654 = ashr i32 %1653, 4
  %1655 = icmp eq i32 0, %1654
  br i1 %1655, label %1656, label %1818

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

1663:                                             ; preds = %1656
  br label %1816

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

1671:                                             ; preds = %1664
  br label %1814

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

1679:                                             ; preds = %1672
  br label %1812

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

1687:                                             ; preds = %1680
  br label %1810

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

1695:                                             ; preds = %1688
  br label %1808

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

1703:                                             ; preds = %1696
  br label %1806

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

1711:                                             ; preds = %1704
  br label %1804

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

1719:                                             ; preds = %1712
  br label %1802

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

1727:                                             ; preds = %1720
  br label %1800

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

1735:                                             ; preds = %1728
  br label %1798

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

1743:                                             ; preds = %1736
  br label %1796

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

1751:                                             ; preds = %1744
  br label %1794

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

1759:                                             ; preds = %1752
  br label %1792

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

1767:                                             ; preds = %1760
  br label %1790

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

1775:                                             ; preds = %1768
  br label %1788

1776:                                             ; preds = %1768
  %1777 = load ptr, ptr %14, align 8, !tbaa !5
  %1778 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1777, i32 0, i32 3
  %1779 = load i8, ptr %1778, align 1, !tbaa !13
  %1780 = zext i8 %1779 to i32
  %1781 = and i32 %1780, 15
  %1782 = icmp eq i32 15, %1781
  br i1 %1782, label %1783, label %1784

1783:                                             ; preds = %1776
  br label %1786

1784:                                             ; preds = %1776
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 600, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

1785:                                             ; No predecessors!
  br label %1786

1786:                                             ; preds = %1785, %1783
  %1787 = phi i32 [ 15, %1783 ], [ 0, %1785 ]
  br label %1788

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

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

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

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

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

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

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

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

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

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

1808:                                             ; preds = %1806, %1695
  %1809 = phi i32 [ 4, %1695 ], [ %1807, %1806 ]
  br label %1810

1810:                                             ; preds = %1808, %1687
  %1811 = phi i32 [ 3, %1687 ], [ %1809, %1808 ]
  br label %1812

1812:                                             ; preds = %1810, %1679
  %1813 = phi i32 [ 2, %1679 ], [ %1811, %1810 ]
  br label %1814

1814:                                             ; preds = %1812, %1671
  %1815 = phi i32 [ 1, %1671 ], [ %1813, %1812 ]
  br label %1816

1816:                                             ; preds = %1814, %1663
  %1817 = phi i32 [ 0, %1663 ], [ %1815, %1814 ]
  br label %1824

1818:                                             ; preds = %1649
  %1819 = load ptr, ptr %14, align 8, !tbaa !5
  %1820 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1819, i32 0, i32 3
  %1821 = load i8, ptr %1820, align 1, !tbaa !13
  %1822 = zext i8 %1821 to i32
  %1823 = ashr i32 %1822, 4
  br label %1824

1824:                                             ; preds = %1818, %1816
  %1825 = phi i32 [ %1817, %1816 ], [ %1823, %1818 ]
  %1826 = icmp eq i32 9, %1825
  br i1 %1826, label %1827, label %1828

1827:                                             ; preds = %1824
  br label %2554

1828:                                             ; preds = %1824
  %1829 = load ptr, ptr %14, align 8, !tbaa !5
  %1830 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1829, i32 0, i32 3
  %1831 = load i8, ptr %1830, align 1, !tbaa !13
  %1832 = zext i8 %1831 to i32
  %1833 = ashr i32 %1832, 4
  %1834 = icmp eq i32 0, %1833
  br i1 %1834, label %1835, label %1997

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

1842:                                             ; preds = %1835
  br label %1995

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

1850:                                             ; preds = %1843
  br label %1993

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

1858:                                             ; preds = %1851
  br label %1991

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

1866:                                             ; preds = %1859
  br label %1989

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

1874:                                             ; preds = %1867
  br label %1987

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

1882:                                             ; preds = %1875
  br label %1985

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

1890:                                             ; preds = %1883
  br label %1983

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

1898:                                             ; preds = %1891
  br label %1981

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

1906:                                             ; preds = %1899
  br label %1979

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

1914:                                             ; preds = %1907
  br label %1977

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

1922:                                             ; preds = %1915
  br label %1975

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

1930:                                             ; preds = %1923
  br label %1973

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

1938:                                             ; preds = %1931
  br label %1971

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

1946:                                             ; preds = %1939
  br label %1969

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

1954:                                             ; preds = %1947
  br label %1967

1955:                                             ; preds = %1947
  %1956 = load ptr, ptr %14, align 8, !tbaa !5
  %1957 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1956, i32 0, i32 3
  %1958 = load i8, ptr %1957, align 1, !tbaa !13
  %1959 = zext i8 %1958 to i32
  %1960 = and i32 %1959, 15
  %1961 = icmp eq i32 15, %1960
  br i1 %1961, label %1962, label %1963

1962:                                             ; preds = %1955
  br label %1965

1963:                                             ; preds = %1955
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 600, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

1964:                                             ; No predecessors!
  br label %1965

1965:                                             ; preds = %1964, %1962
  %1966 = phi i32 [ 15, %1962 ], [ 0, %1964 ]
  br label %1967

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

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

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

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

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

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

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

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

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

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

1987:                                             ; preds = %1985, %1874
  %1988 = phi i32 [ 4, %1874 ], [ %1986, %1985 ]
  br label %1989

1989:                                             ; preds = %1987, %1866
  %1990 = phi i32 [ 3, %1866 ], [ %1988, %1987 ]
  br label %1991

1991:                                             ; preds = %1989, %1858
  %1992 = phi i32 [ 2, %1858 ], [ %1990, %1989 ]
  br label %1993

1993:                                             ; preds = %1991, %1850
  %1994 = phi i32 [ 1, %1850 ], [ %1992, %1991 ]
  br label %1995

1995:                                             ; preds = %1993, %1842
  %1996 = phi i32 [ 0, %1842 ], [ %1994, %1993 ]
  br label %2003

1997:                                             ; preds = %1828
  %1998 = load ptr, ptr %14, align 8, !tbaa !5
  %1999 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1998, i32 0, i32 3
  %2000 = load i8, ptr %1999, align 1, !tbaa !13
  %2001 = zext i8 %2000 to i32
  %2002 = ashr i32 %2001, 4
  br label %2003

2003:                                             ; preds = %1997, %1995
  %2004 = phi i32 [ %1996, %1995 ], [ %2002, %1997 ]
  %2005 = icmp eq i32 10, %2004
  br i1 %2005, label %2006, label %2007

2006:                                             ; preds = %2003
  br label %2552

2007:                                             ; preds = %2003
  %2008 = load ptr, ptr %14, align 8, !tbaa !5
  %2009 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2008, i32 0, i32 3
  %2010 = load i8, ptr %2009, align 1, !tbaa !13
  %2011 = zext i8 %2010 to i32
  %2012 = ashr i32 %2011, 4
  %2013 = icmp eq i32 0, %2012
  br i1 %2013, label %2014, label %2176

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

2021:                                             ; preds = %2014
  br label %2174

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

2029:                                             ; preds = %2022
  br label %2172

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

2037:                                             ; preds = %2030
  br label %2170

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

2045:                                             ; preds = %2038
  br label %2168

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

2053:                                             ; preds = %2046
  br label %2166

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

2061:                                             ; preds = %2054
  br label %2164

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

2069:                                             ; preds = %2062
  br label %2162

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

2077:                                             ; preds = %2070
  br label %2160

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

2085:                                             ; preds = %2078
  br label %2158

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

2093:                                             ; preds = %2086
  br label %2156

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

2101:                                             ; preds = %2094
  br label %2154

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

2109:                                             ; preds = %2102
  br label %2152

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

2117:                                             ; preds = %2110
  br label %2150

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

2125:                                             ; preds = %2118
  br label %2148

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

2133:                                             ; preds = %2126
  br label %2146

2134:                                             ; preds = %2126
  %2135 = load ptr, ptr %14, align 8, !tbaa !5
  %2136 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2135, i32 0, i32 3
  %2137 = load i8, ptr %2136, align 1, !tbaa !13
  %2138 = zext i8 %2137 to i32
  %2139 = and i32 %2138, 15
  %2140 = icmp eq i32 15, %2139
  br i1 %2140, label %2141, label %2142

2141:                                             ; preds = %2134
  br label %2144

2142:                                             ; preds = %2134
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 600, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

2143:                                             ; No predecessors!
  br label %2144

2144:                                             ; preds = %2143, %2141
  %2145 = phi i32 [ 15, %2141 ], [ 0, %2143 ]
  br label %2146

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

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

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

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

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

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

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

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

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

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

2166:                                             ; preds = %2164, %2053
  %2167 = phi i32 [ 4, %2053 ], [ %2165, %2164 ]
  br label %2168

2168:                                             ; preds = %2166, %2045
  %2169 = phi i32 [ 3, %2045 ], [ %2167, %2166 ]
  br label %2170

2170:                                             ; preds = %2168, %2037
  %2171 = phi i32 [ 2, %2037 ], [ %2169, %2168 ]
  br label %2172

2172:                                             ; preds = %2170, %2029
  %2173 = phi i32 [ 1, %2029 ], [ %2171, %2170 ]
  br label %2174

2174:                                             ; preds = %2172, %2021
  %2175 = phi i32 [ 0, %2021 ], [ %2173, %2172 ]
  br label %2182

2176:                                             ; preds = %2007
  %2177 = load ptr, ptr %14, align 8, !tbaa !5
  %2178 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2177, i32 0, i32 3
  %2179 = load i8, ptr %2178, align 1, !tbaa !13
  %2180 = zext i8 %2179 to i32
  %2181 = ashr i32 %2180, 4
  br label %2182

2182:                                             ; preds = %2176, %2174
  %2183 = phi i32 [ %2175, %2174 ], [ %2181, %2176 ]
  %2184 = icmp eq i32 11, %2183
  br i1 %2184, label %2185, label %2186

2185:                                             ; preds = %2182
  br label %2550

2186:                                             ; preds = %2182
  %2187 = load ptr, ptr %14, align 8, !tbaa !5
  %2188 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2187, i32 0, i32 3
  %2189 = load i8, ptr %2188, align 1, !tbaa !13
  %2190 = zext i8 %2189 to i32
  %2191 = ashr i32 %2190, 4
  %2192 = icmp eq i32 0, %2191
  br i1 %2192, label %2193, label %2355

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

2200:                                             ; preds = %2193
  br label %2353

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

2208:                                             ; preds = %2201
  br label %2351

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

2216:                                             ; preds = %2209
  br label %2349

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

2224:                                             ; preds = %2217
  br label %2347

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

2232:                                             ; preds = %2225
  br label %2345

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

2240:                                             ; preds = %2233
  br label %2343

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

2248:                                             ; preds = %2241
  br label %2341

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

2256:                                             ; preds = %2249
  br label %2339

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

2264:                                             ; preds = %2257
  br label %2337

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

2272:                                             ; preds = %2265
  br label %2335

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

2280:                                             ; preds = %2273
  br label %2333

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

2288:                                             ; preds = %2281
  br label %2331

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

2296:                                             ; preds = %2289
  br label %2329

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

2304:                                             ; preds = %2297
  br label %2327

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

2312:                                             ; preds = %2305
  br label %2325

2313:                                             ; preds = %2305
  %2314 = load ptr, ptr %14, align 8, !tbaa !5
  %2315 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2314, i32 0, i32 3
  %2316 = load i8, ptr %2315, align 1, !tbaa !13
  %2317 = zext i8 %2316 to i32
  %2318 = and i32 %2317, 15
  %2319 = icmp eq i32 15, %2318
  br i1 %2319, label %2320, label %2321

2320:                                             ; preds = %2313
  br label %2323

2321:                                             ; preds = %2313
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 600, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

2322:                                             ; No predecessors!
  br label %2323

2323:                                             ; preds = %2322, %2320
  %2324 = phi i32 [ 15, %2320 ], [ 0, %2322 ]
  br label %2325

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

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

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

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

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

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

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

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

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

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

2345:                                             ; preds = %2343, %2232
  %2346 = phi i32 [ 4, %2232 ], [ %2344, %2343 ]
  br label %2347

2347:                                             ; preds = %2345, %2224
  %2348 = phi i32 [ 3, %2224 ], [ %2346, %2345 ]
  br label %2349

2349:                                             ; preds = %2347, %2216
  %2350 = phi i32 [ 2, %2216 ], [ %2348, %2347 ]
  br label %2351

2351:                                             ; preds = %2349, %2208
  %2352 = phi i32 [ 1, %2208 ], [ %2350, %2349 ]
  br label %2353

2353:                                             ; preds = %2351, %2200
  %2354 = phi i32 [ 0, %2200 ], [ %2352, %2351 ]
  br label %2361

2355:                                             ; preds = %2186
  %2356 = load ptr, ptr %14, align 8, !tbaa !5
  %2357 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2356, i32 0, i32 3
  %2358 = load i8, ptr %2357, align 1, !tbaa !13
  %2359 = zext i8 %2358 to i32
  %2360 = ashr i32 %2359, 4
  br label %2361

2361:                                             ; preds = %2355, %2353
  %2362 = phi i32 [ %2354, %2353 ], [ %2360, %2355 ]
  %2363 = icmp eq i32 12, %2362
  br i1 %2363, label %2364, label %2365

2364:                                             ; preds = %2361
  br label %2548

2365:                                             ; preds = %2361
  %2366 = load ptr, ptr %14, align 8, !tbaa !5
  %2367 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2366, i32 0, i32 3
  %2368 = load i8, ptr %2367, align 1, !tbaa !13
  %2369 = zext i8 %2368 to i32
  %2370 = ashr i32 %2369, 4
  %2371 = icmp eq i32 0, %2370
  br i1 %2371, label %2372, label %2534

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

2379:                                             ; preds = %2372
  br label %2532

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

2387:                                             ; preds = %2380
  br label %2530

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

2395:                                             ; preds = %2388
  br label %2528

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

2403:                                             ; preds = %2396
  br label %2526

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

2411:                                             ; preds = %2404
  br label %2524

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

2419:                                             ; preds = %2412
  br label %2522

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

2427:                                             ; preds = %2420
  br label %2520

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

2435:                                             ; preds = %2428
  br label %2518

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

2443:                                             ; preds = %2436
  br label %2516

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

2451:                                             ; preds = %2444
  br label %2514

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

2459:                                             ; preds = %2452
  br label %2512

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

2467:                                             ; preds = %2460
  br label %2510

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

2475:                                             ; preds = %2468
  br label %2508

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

2483:                                             ; preds = %2476
  br label %2506

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

2491:                                             ; preds = %2484
  br label %2504

2492:                                             ; preds = %2484
  %2493 = load ptr, ptr %14, align 8, !tbaa !5
  %2494 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2493, i32 0, i32 3
  %2495 = load i8, ptr %2494, align 1, !tbaa !13
  %2496 = zext i8 %2495 to i32
  %2497 = and i32 %2496, 15
  %2498 = icmp eq i32 15, %2497
  br i1 %2498, label %2499, label %2500

2499:                                             ; preds = %2492
  br label %2502

2500:                                             ; preds = %2492
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 600, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

2501:                                             ; No predecessors!
  br label %2502

2502:                                             ; preds = %2501, %2499
  %2503 = phi i32 [ 15, %2499 ], [ 0, %2501 ]
  br label %2504

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

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

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

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

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

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

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

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

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

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

2524:                                             ; preds = %2522, %2411
  %2525 = phi i32 [ 4, %2411 ], [ %2523, %2522 ]
  br label %2526

2526:                                             ; preds = %2524, %2403
  %2527 = phi i32 [ 3, %2403 ], [ %2525, %2524 ]
  br label %2528

2528:                                             ; preds = %2526, %2395
  %2529 = phi i32 [ 2, %2395 ], [ %2527, %2526 ]
  br label %2530

2530:                                             ; preds = %2528, %2387
  %2531 = phi i32 [ 1, %2387 ], [ %2529, %2528 ]
  br label %2532

2532:                                             ; preds = %2530, %2379
  %2533 = phi i32 [ 0, %2379 ], [ %2531, %2530 ]
  br label %2540

2534:                                             ; preds = %2365
  %2535 = load ptr, ptr %14, align 8, !tbaa !5
  %2536 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2535, i32 0, i32 3
  %2537 = load i8, ptr %2536, align 1, !tbaa !13
  %2538 = zext i8 %2537 to i32
  %2539 = ashr i32 %2538, 4
  br label %2540

2540:                                             ; preds = %2534, %2532
  %2541 = phi i32 [ %2533, %2532 ], [ %2539, %2534 ]
  %2542 = icmp eq i32 13, %2541
  br i1 %2542, label %2543, label %2544

2543:                                             ; preds = %2540
  br label %2546

2544:                                             ; preds = %2540
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 600, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

2545:                                             ; No predecessors!
  br label %2546

2546:                                             ; preds = %2545, %2543
  %2547 = phi i32 [ 1, %2543 ], [ 0, %2545 ]
  br label %2548

2548:                                             ; preds = %2546, %2364
  %2549 = phi i32 [ 1, %2364 ], [ %2547, %2546 ]
  br label %2550

2550:                                             ; preds = %2548, %2185
  %2551 = phi i32 [ 2, %2185 ], [ %2549, %2548 ]
  br label %2552

2552:                                             ; preds = %2550, %2006
  %2553 = phi i32 [ 2, %2006 ], [ %2551, %2550 ]
  br label %2554

2554:                                             ; preds = %2552, %1827
  %2555 = phi i32 [ 4, %1827 ], [ %2553, %2552 ]
  br label %2556

2556:                                             ; preds = %2554, %1648
  %2557 = phi i32 [ 4, %1648 ], [ %2555, %2554 ]
  br label %2558

2558:                                             ; preds = %2556, %1469
  %2559 = phi i32 [ 8, %1469 ], [ %2557, %2556 ]
  br label %2560

2560:                                             ; preds = %2558, %1290
  %2561 = phi i32 [ 8, %1290 ], [ %2559, %2558 ]
  br label %2562

2562:                                             ; preds = %2560, %1111
  %2563 = phi i32 [ 1, %1111 ], [ %2561, %2560 ]
  br label %2564

2564:                                             ; preds = %2562, %932
  %2565 = phi i32 [ 1, %932 ], [ %2563, %2562 ]
  br label %2566

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

2568:                                             ; preds = %2566, %574
  %2569 = phi i32 [ 2, %574 ], [ %2567, %2566 ]
  br label %2570

2570:                                             ; preds = %2568, %395
  %2571 = phi i32 [ 4, %395 ], [ %2569, %2568 ]
  br label %2572

2572:                                             ; preds = %2570, %216
  %2573 = phi i32 [ 8, %216 ], [ %2571, %2570 ]
  %2574 = mul i32 %38, %2573
  store i32 %2574, ptr %25, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #4
  %2575 = load i32, ptr %19, align 4, !tbaa !9
  %2576 = icmp eq i32 %2575, 0
  br i1 %2576, label %2577, label %5117

2577:                                             ; preds = %2572
  %2578 = load ptr, ptr %14, align 8, !tbaa !5
  %2579 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2578, i32 0, i32 3
  %2580 = load i8, ptr %2579, align 1, !tbaa !13
  %2581 = zext i8 %2580 to i32
  %2582 = ashr i32 %2581, 4
  %2583 = icmp eq i32 0, %2582
  br i1 %2583, label %2584, label %2746

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

2591:                                             ; preds = %2584
  br label %2744

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

2599:                                             ; preds = %2592
  br label %2742

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

2607:                                             ; preds = %2600
  br label %2740

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

2615:                                             ; preds = %2608
  br label %2738

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

2623:                                             ; preds = %2616
  br label %2736

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

2631:                                             ; preds = %2624
  br label %2734

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

2639:                                             ; preds = %2632
  br label %2732

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

2647:                                             ; preds = %2640
  br label %2730

2648:                                             ; preds = %2640
  %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 !13
  %2652 = zext i8 %2651 to i32
  %2653 = and i32 %2652, 15
  %2654 = icmp eq i32 8, %2653
  br i1 %2654, label %2655, label %2656

2655:                                             ; preds = %2648
  br label %2728

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

2663:                                             ; preds = %2656
  br label %2726

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

2671:                                             ; preds = %2664
  br label %2724

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

2679:                                             ; preds = %2672
  br label %2722

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

2687:                                             ; preds = %2680
  br label %2720

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

2695:                                             ; preds = %2688
  br label %2718

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

2703:                                             ; preds = %2696
  br label %2716

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

2711:                                             ; preds = %2704
  br label %2714

2712:                                             ; preds = %2704
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

2713:                                             ; No predecessors!
  br label %2714

2714:                                             ; preds = %2713, %2711
  %2715 = phi i32 [ 15, %2711 ], [ 0, %2713 ]
  br label %2716

2716:                                             ; preds = %2714, %2703
  %2717 = phi i32 [ 14, %2703 ], [ %2715, %2714 ]
  br label %2718

2718:                                             ; preds = %2716, %2695
  %2719 = phi i32 [ 12, %2695 ], [ %2717, %2716 ]
  br label %2720

2720:                                             ; preds = %2718, %2687
  %2721 = phi i32 [ 12, %2687 ], [ %2719, %2718 ]
  br label %2722

2722:                                             ; preds = %2720, %2679
  %2723 = phi i32 [ 10, %2679 ], [ %2721, %2720 ]
  br label %2724

2724:                                             ; preds = %2722, %2671
  %2725 = phi i32 [ 10, %2671 ], [ %2723, %2722 ]
  br label %2726

2726:                                             ; preds = %2724, %2663
  %2727 = phi i32 [ 8, %2663 ], [ %2725, %2724 ]
  br label %2728

2728:                                             ; preds = %2726, %2655
  %2729 = phi i32 [ 8, %2655 ], [ %2727, %2726 ]
  br label %2730

2730:                                             ; preds = %2728, %2647
  %2731 = phi i32 [ 6, %2647 ], [ %2729, %2728 ]
  br label %2732

2732:                                             ; preds = %2730, %2639
  %2733 = phi i32 [ 6, %2639 ], [ %2731, %2730 ]
  br label %2734

2734:                                             ; preds = %2732, %2631
  %2735 = phi i32 [ 5, %2631 ], [ %2733, %2732 ]
  br label %2736

2736:                                             ; preds = %2734, %2623
  %2737 = phi i32 [ 4, %2623 ], [ %2735, %2734 ]
  br label %2738

2738:                                             ; preds = %2736, %2615
  %2739 = phi i32 [ 3, %2615 ], [ %2737, %2736 ]
  br label %2740

2740:                                             ; preds = %2738, %2607
  %2741 = phi i32 [ 2, %2607 ], [ %2739, %2738 ]
  br label %2742

2742:                                             ; preds = %2740, %2599
  %2743 = phi i32 [ 1, %2599 ], [ %2741, %2740 ]
  br label %2744

2744:                                             ; preds = %2742, %2591
  %2745 = phi i32 [ 0, %2591 ], [ %2743, %2742 ]
  br label %2752

2746:                                             ; preds = %2577
  %2747 = load ptr, ptr %14, align 8, !tbaa !5
  %2748 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2747, i32 0, i32 3
  %2749 = load i8, ptr %2748, align 1, !tbaa !13
  %2750 = zext i8 %2749 to i32
  %2751 = ashr i32 %2750, 4
  br label %2752

2752:                                             ; preds = %2746, %2744
  %2753 = phi i32 [ %2745, %2744 ], [ %2751, %2746 ]
  %2754 = icmp eq i32 0, %2753
  br i1 %2754, label %2755, label %2756

2755:                                             ; preds = %2752
  br label %5111

2756:                                             ; preds = %2752
  %2757 = load ptr, ptr %14, align 8, !tbaa !5
  %2758 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2757, i32 0, i32 3
  %2759 = load i8, ptr %2758, align 1, !tbaa !13
  %2760 = zext i8 %2759 to i32
  %2761 = ashr i32 %2760, 4
  %2762 = icmp eq i32 0, %2761
  br i1 %2762, label %2763, label %2925

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

2770:                                             ; preds = %2763
  br label %2923

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

2778:                                             ; preds = %2771
  br label %2921

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

2786:                                             ; preds = %2779
  br label %2919

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

2794:                                             ; preds = %2787
  br label %2917

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

2802:                                             ; preds = %2795
  br label %2915

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

2810:                                             ; preds = %2803
  br label %2913

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

2818:                                             ; preds = %2811
  br label %2911

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

2826:                                             ; preds = %2819
  br label %2909

2827:                                             ; preds = %2819
  %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 !13
  %2831 = zext i8 %2830 to i32
  %2832 = and i32 %2831, 15
  %2833 = icmp eq i32 8, %2832
  br i1 %2833, label %2834, label %2835

2834:                                             ; preds = %2827
  br label %2907

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

2842:                                             ; preds = %2835
  br label %2905

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

2850:                                             ; preds = %2843
  br label %2903

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

2858:                                             ; preds = %2851
  br label %2901

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

2866:                                             ; preds = %2859
  br label %2899

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

2874:                                             ; preds = %2867
  br label %2897

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

2882:                                             ; preds = %2875
  br label %2895

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

2890:                                             ; preds = %2883
  br label %2893

2891:                                             ; preds = %2883
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

2892:                                             ; No predecessors!
  br label %2893

2893:                                             ; preds = %2892, %2890
  %2894 = phi i32 [ 15, %2890 ], [ 0, %2892 ]
  br label %2895

2895:                                             ; preds = %2893, %2882
  %2896 = phi i32 [ 14, %2882 ], [ %2894, %2893 ]
  br label %2897

2897:                                             ; preds = %2895, %2874
  %2898 = phi i32 [ 12, %2874 ], [ %2896, %2895 ]
  br label %2899

2899:                                             ; preds = %2897, %2866
  %2900 = phi i32 [ 12, %2866 ], [ %2898, %2897 ]
  br label %2901

2901:                                             ; preds = %2899, %2858
  %2902 = phi i32 [ 10, %2858 ], [ %2900, %2899 ]
  br label %2903

2903:                                             ; preds = %2901, %2850
  %2904 = phi i32 [ 10, %2850 ], [ %2902, %2901 ]
  br label %2905

2905:                                             ; preds = %2903, %2842
  %2906 = phi i32 [ 8, %2842 ], [ %2904, %2903 ]
  br label %2907

2907:                                             ; preds = %2905, %2834
  %2908 = phi i32 [ 8, %2834 ], [ %2906, %2905 ]
  br label %2909

2909:                                             ; preds = %2907, %2826
  %2910 = phi i32 [ 6, %2826 ], [ %2908, %2907 ]
  br label %2911

2911:                                             ; preds = %2909, %2818
  %2912 = phi i32 [ 6, %2818 ], [ %2910, %2909 ]
  br label %2913

2913:                                             ; preds = %2911, %2810
  %2914 = phi i32 [ 5, %2810 ], [ %2912, %2911 ]
  br label %2915

2915:                                             ; preds = %2913, %2802
  %2916 = phi i32 [ 4, %2802 ], [ %2914, %2913 ]
  br label %2917

2917:                                             ; preds = %2915, %2794
  %2918 = phi i32 [ 3, %2794 ], [ %2916, %2915 ]
  br label %2919

2919:                                             ; preds = %2917, %2786
  %2920 = phi i32 [ 2, %2786 ], [ %2918, %2917 ]
  br label %2921

2921:                                             ; preds = %2919, %2778
  %2922 = phi i32 [ 1, %2778 ], [ %2920, %2919 ]
  br label %2923

2923:                                             ; preds = %2921, %2770
  %2924 = phi i32 [ 0, %2770 ], [ %2922, %2921 ]
  br label %2931

2925:                                             ; preds = %2756
  %2926 = load ptr, ptr %14, align 8, !tbaa !5
  %2927 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2926, i32 0, i32 3
  %2928 = load i8, ptr %2927, align 1, !tbaa !13
  %2929 = zext i8 %2928 to i32
  %2930 = ashr i32 %2929, 4
  br label %2931

2931:                                             ; preds = %2925, %2923
  %2932 = phi i32 [ %2924, %2923 ], [ %2930, %2925 ]
  %2933 = icmp eq i32 1, %2932
  br i1 %2933, label %2934, label %2935

2934:                                             ; preds = %2931
  br label %5109

2935:                                             ; preds = %2931
  %2936 = load ptr, ptr %14, align 8, !tbaa !5
  %2937 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2936, i32 0, i32 3
  %2938 = load i8, ptr %2937, align 1, !tbaa !13
  %2939 = zext i8 %2938 to i32
  %2940 = ashr i32 %2939, 4
  %2941 = icmp eq i32 0, %2940
  br i1 %2941, label %2942, label %3104

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

2949:                                             ; preds = %2942
  br label %3102

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

2957:                                             ; preds = %2950
  br label %3100

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

2965:                                             ; preds = %2958
  br label %3098

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

2973:                                             ; preds = %2966
  br label %3096

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

2981:                                             ; preds = %2974
  br label %3094

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

2989:                                             ; preds = %2982
  br label %3092

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

2997:                                             ; preds = %2990
  br label %3090

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

3005:                                             ; preds = %2998
  br label %3088

3006:                                             ; preds = %2998
  %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 !13
  %3010 = zext i8 %3009 to i32
  %3011 = and i32 %3010, 15
  %3012 = icmp eq i32 8, %3011
  br i1 %3012, label %3013, label %3014

3013:                                             ; preds = %3006
  br label %3086

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

3021:                                             ; preds = %3014
  br label %3084

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

3029:                                             ; preds = %3022
  br label %3082

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

3037:                                             ; preds = %3030
  br label %3080

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

3045:                                             ; preds = %3038
  br label %3078

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

3053:                                             ; preds = %3046
  br label %3076

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

3061:                                             ; preds = %3054
  br label %3074

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

3069:                                             ; preds = %3062
  br label %3072

3070:                                             ; preds = %3062
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

3071:                                             ; No predecessors!
  br label %3072

3072:                                             ; preds = %3071, %3069
  %3073 = phi i32 [ 15, %3069 ], [ 0, %3071 ]
  br label %3074

3074:                                             ; preds = %3072, %3061
  %3075 = phi i32 [ 14, %3061 ], [ %3073, %3072 ]
  br label %3076

3076:                                             ; preds = %3074, %3053
  %3077 = phi i32 [ 12, %3053 ], [ %3075, %3074 ]
  br label %3078

3078:                                             ; preds = %3076, %3045
  %3079 = phi i32 [ 12, %3045 ], [ %3077, %3076 ]
  br label %3080

3080:                                             ; preds = %3078, %3037
  %3081 = phi i32 [ 10, %3037 ], [ %3079, %3078 ]
  br label %3082

3082:                                             ; preds = %3080, %3029
  %3083 = phi i32 [ 10, %3029 ], [ %3081, %3080 ]
  br label %3084

3084:                                             ; preds = %3082, %3021
  %3085 = phi i32 [ 8, %3021 ], [ %3083, %3082 ]
  br label %3086

3086:                                             ; preds = %3084, %3013
  %3087 = phi i32 [ 8, %3013 ], [ %3085, %3084 ]
  br label %3088

3088:                                             ; preds = %3086, %3005
  %3089 = phi i32 [ 6, %3005 ], [ %3087, %3086 ]
  br label %3090

3090:                                             ; preds = %3088, %2997
  %3091 = phi i32 [ 6, %2997 ], [ %3089, %3088 ]
  br label %3092

3092:                                             ; preds = %3090, %2989
  %3093 = phi i32 [ 5, %2989 ], [ %3091, %3090 ]
  br label %3094

3094:                                             ; preds = %3092, %2981
  %3095 = phi i32 [ 4, %2981 ], [ %3093, %3092 ]
  br label %3096

3096:                                             ; preds = %3094, %2973
  %3097 = phi i32 [ 3, %2973 ], [ %3095, %3094 ]
  br label %3098

3098:                                             ; preds = %3096, %2965
  %3099 = phi i32 [ 2, %2965 ], [ %3097, %3096 ]
  br label %3100

3100:                                             ; preds = %3098, %2957
  %3101 = phi i32 [ 1, %2957 ], [ %3099, %3098 ]
  br label %3102

3102:                                             ; preds = %3100, %2949
  %3103 = phi i32 [ 0, %2949 ], [ %3101, %3100 ]
  br label %3110

3104:                                             ; preds = %2935
  %3105 = load ptr, ptr %14, align 8, !tbaa !5
  %3106 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3105, i32 0, i32 3
  %3107 = load i8, ptr %3106, align 1, !tbaa !13
  %3108 = zext i8 %3107 to i32
  %3109 = ashr i32 %3108, 4
  br label %3110

3110:                                             ; preds = %3104, %3102
  %3111 = phi i32 [ %3103, %3102 ], [ %3109, %3104 ]
  %3112 = icmp eq i32 2, %3111
  br i1 %3112, label %3113, label %3114

3113:                                             ; preds = %3110
  br label %5107

3114:                                             ; preds = %3110
  %3115 = load ptr, ptr %14, align 8, !tbaa !5
  %3116 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3115, i32 0, i32 3
  %3117 = load i8, ptr %3116, align 1, !tbaa !13
  %3118 = zext i8 %3117 to i32
  %3119 = ashr i32 %3118, 4
  %3120 = icmp eq i32 0, %3119
  br i1 %3120, label %3121, label %3283

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

3128:                                             ; preds = %3121
  br label %3281

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

3136:                                             ; preds = %3129
  br label %3279

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

3144:                                             ; preds = %3137
  br label %3277

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

3152:                                             ; preds = %3145
  br label %3275

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

3160:                                             ; preds = %3153
  br label %3273

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

3168:                                             ; preds = %3161
  br label %3271

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

3176:                                             ; preds = %3169
  br label %3269

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

3184:                                             ; preds = %3177
  br label %3267

3185:                                             ; preds = %3177
  %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 !13
  %3189 = zext i8 %3188 to i32
  %3190 = and i32 %3189, 15
  %3191 = icmp eq i32 8, %3190
  br i1 %3191, label %3192, label %3193

3192:                                             ; preds = %3185
  br label %3265

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

3200:                                             ; preds = %3193
  br label %3263

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

3208:                                             ; preds = %3201
  br label %3261

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

3216:                                             ; preds = %3209
  br label %3259

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

3224:                                             ; preds = %3217
  br label %3257

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

3232:                                             ; preds = %3225
  br label %3255

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

3240:                                             ; preds = %3233
  br label %3253

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

3248:                                             ; preds = %3241
  br label %3251

3249:                                             ; preds = %3241
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

3250:                                             ; No predecessors!
  br label %3251

3251:                                             ; preds = %3250, %3248
  %3252 = phi i32 [ 15, %3248 ], [ 0, %3250 ]
  br label %3253

3253:                                             ; preds = %3251, %3240
  %3254 = phi i32 [ 14, %3240 ], [ %3252, %3251 ]
  br label %3255

3255:                                             ; preds = %3253, %3232
  %3256 = phi i32 [ 12, %3232 ], [ %3254, %3253 ]
  br label %3257

3257:                                             ; preds = %3255, %3224
  %3258 = phi i32 [ 12, %3224 ], [ %3256, %3255 ]
  br label %3259

3259:                                             ; preds = %3257, %3216
  %3260 = phi i32 [ 10, %3216 ], [ %3258, %3257 ]
  br label %3261

3261:                                             ; preds = %3259, %3208
  %3262 = phi i32 [ 10, %3208 ], [ %3260, %3259 ]
  br label %3263

3263:                                             ; preds = %3261, %3200
  %3264 = phi i32 [ 8, %3200 ], [ %3262, %3261 ]
  br label %3265

3265:                                             ; preds = %3263, %3192
  %3266 = phi i32 [ 8, %3192 ], [ %3264, %3263 ]
  br label %3267

3267:                                             ; preds = %3265, %3184
  %3268 = phi i32 [ 6, %3184 ], [ %3266, %3265 ]
  br label %3269

3269:                                             ; preds = %3267, %3176
  %3270 = phi i32 [ 6, %3176 ], [ %3268, %3267 ]
  br label %3271

3271:                                             ; preds = %3269, %3168
  %3272 = phi i32 [ 5, %3168 ], [ %3270, %3269 ]
  br label %3273

3273:                                             ; preds = %3271, %3160
  %3274 = phi i32 [ 4, %3160 ], [ %3272, %3271 ]
  br label %3275

3275:                                             ; preds = %3273, %3152
  %3276 = phi i32 [ 3, %3152 ], [ %3274, %3273 ]
  br label %3277

3277:                                             ; preds = %3275, %3144
  %3278 = phi i32 [ 2, %3144 ], [ %3276, %3275 ]
  br label %3279

3279:                                             ; preds = %3277, %3136
  %3280 = phi i32 [ 1, %3136 ], [ %3278, %3277 ]
  br label %3281

3281:                                             ; preds = %3279, %3128
  %3282 = phi i32 [ 0, %3128 ], [ %3280, %3279 ]
  br label %3289

3283:                                             ; preds = %3114
  %3284 = load ptr, ptr %14, align 8, !tbaa !5
  %3285 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3284, i32 0, i32 3
  %3286 = load i8, ptr %3285, align 1, !tbaa !13
  %3287 = zext i8 %3286 to i32
  %3288 = ashr i32 %3287, 4
  br label %3289

3289:                                             ; preds = %3283, %3281
  %3290 = phi i32 [ %3282, %3281 ], [ %3288, %3283 ]
  %3291 = icmp eq i32 3, %3290
  br i1 %3291, label %3292, label %3293

3292:                                             ; preds = %3289
  br label %5105

3293:                                             ; preds = %3289
  %3294 = load ptr, ptr %14, align 8, !tbaa !5
  %3295 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3294, i32 0, i32 3
  %3296 = load i8, ptr %3295, align 1, !tbaa !13
  %3297 = zext i8 %3296 to i32
  %3298 = ashr i32 %3297, 4
  %3299 = icmp eq i32 0, %3298
  br i1 %3299, label %3300, label %3462

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

3307:                                             ; preds = %3300
  br label %3460

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

3315:                                             ; preds = %3308
  br label %3458

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

3323:                                             ; preds = %3316
  br label %3456

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

3331:                                             ; preds = %3324
  br label %3454

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

3339:                                             ; preds = %3332
  br label %3452

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

3347:                                             ; preds = %3340
  br label %3450

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

3355:                                             ; preds = %3348
  br label %3448

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

3363:                                             ; preds = %3356
  br label %3446

3364:                                             ; preds = %3356
  %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 !13
  %3368 = zext i8 %3367 to i32
  %3369 = and i32 %3368, 15
  %3370 = icmp eq i32 8, %3369
  br i1 %3370, label %3371, label %3372

3371:                                             ; preds = %3364
  br label %3444

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

3379:                                             ; preds = %3372
  br label %3442

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

3387:                                             ; preds = %3380
  br label %3440

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

3395:                                             ; preds = %3388
  br label %3438

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

3403:                                             ; preds = %3396
  br label %3436

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

3411:                                             ; preds = %3404
  br label %3434

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

3419:                                             ; preds = %3412
  br label %3432

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

3427:                                             ; preds = %3420
  br label %3430

3428:                                             ; preds = %3420
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

3429:                                             ; No predecessors!
  br label %3430

3430:                                             ; preds = %3429, %3427
  %3431 = phi i32 [ 15, %3427 ], [ 0, %3429 ]
  br label %3432

3432:                                             ; preds = %3430, %3419
  %3433 = phi i32 [ 14, %3419 ], [ %3431, %3430 ]
  br label %3434

3434:                                             ; preds = %3432, %3411
  %3435 = phi i32 [ 12, %3411 ], [ %3433, %3432 ]
  br label %3436

3436:                                             ; preds = %3434, %3403
  %3437 = phi i32 [ 12, %3403 ], [ %3435, %3434 ]
  br label %3438

3438:                                             ; preds = %3436, %3395
  %3439 = phi i32 [ 10, %3395 ], [ %3437, %3436 ]
  br label %3440

3440:                                             ; preds = %3438, %3387
  %3441 = phi i32 [ 10, %3387 ], [ %3439, %3438 ]
  br label %3442

3442:                                             ; preds = %3440, %3379
  %3443 = phi i32 [ 8, %3379 ], [ %3441, %3440 ]
  br label %3444

3444:                                             ; preds = %3442, %3371
  %3445 = phi i32 [ 8, %3371 ], [ %3443, %3442 ]
  br label %3446

3446:                                             ; preds = %3444, %3363
  %3447 = phi i32 [ 6, %3363 ], [ %3445, %3444 ]
  br label %3448

3448:                                             ; preds = %3446, %3355
  %3449 = phi i32 [ 6, %3355 ], [ %3447, %3446 ]
  br label %3450

3450:                                             ; preds = %3448, %3347
  %3451 = phi i32 [ 5, %3347 ], [ %3449, %3448 ]
  br label %3452

3452:                                             ; preds = %3450, %3339
  %3453 = phi i32 [ 4, %3339 ], [ %3451, %3450 ]
  br label %3454

3454:                                             ; preds = %3452, %3331
  %3455 = phi i32 [ 3, %3331 ], [ %3453, %3452 ]
  br label %3456

3456:                                             ; preds = %3454, %3323
  %3457 = phi i32 [ 2, %3323 ], [ %3455, %3454 ]
  br label %3458

3458:                                             ; preds = %3456, %3315
  %3459 = phi i32 [ 1, %3315 ], [ %3457, %3456 ]
  br label %3460

3460:                                             ; preds = %3458, %3307
  %3461 = phi i32 [ 0, %3307 ], [ %3459, %3458 ]
  br label %3468

3462:                                             ; preds = %3293
  %3463 = load ptr, ptr %14, align 8, !tbaa !5
  %3464 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3463, i32 0, i32 3
  %3465 = load i8, ptr %3464, align 1, !tbaa !13
  %3466 = zext i8 %3465 to i32
  %3467 = ashr i32 %3466, 4
  br label %3468

3468:                                             ; preds = %3462, %3460
  %3469 = phi i32 [ %3461, %3460 ], [ %3467, %3462 ]
  %3470 = icmp eq i32 4, %3469
  br i1 %3470, label %3471, label %3472

3471:                                             ; preds = %3468
  br label %5103

3472:                                             ; preds = %3468
  %3473 = load ptr, ptr %14, align 8, !tbaa !5
  %3474 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3473, i32 0, i32 3
  %3475 = load i8, ptr %3474, align 1, !tbaa !13
  %3476 = zext i8 %3475 to i32
  %3477 = ashr i32 %3476, 4
  %3478 = icmp eq i32 0, %3477
  br i1 %3478, label %3479, label %3641

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

3486:                                             ; preds = %3479
  br label %3639

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

3494:                                             ; preds = %3487
  br label %3637

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

3502:                                             ; preds = %3495
  br label %3635

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

3510:                                             ; preds = %3503
  br label %3633

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

3518:                                             ; preds = %3511
  br label %3631

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

3526:                                             ; preds = %3519
  br label %3629

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

3534:                                             ; preds = %3527
  br label %3627

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

3542:                                             ; preds = %3535
  br label %3625

3543:                                             ; preds = %3535
  %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 !13
  %3547 = zext i8 %3546 to i32
  %3548 = and i32 %3547, 15
  %3549 = icmp eq i32 8, %3548
  br i1 %3549, label %3550, label %3551

3550:                                             ; preds = %3543
  br label %3623

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

3558:                                             ; preds = %3551
  br label %3621

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

3566:                                             ; preds = %3559
  br label %3619

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

3574:                                             ; preds = %3567
  br label %3617

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

3582:                                             ; preds = %3575
  br label %3615

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

3590:                                             ; preds = %3583
  br label %3613

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

3598:                                             ; preds = %3591
  br label %3611

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

3606:                                             ; preds = %3599
  br label %3609

3607:                                             ; preds = %3599
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

3608:                                             ; No predecessors!
  br label %3609

3609:                                             ; preds = %3608, %3606
  %3610 = phi i32 [ 15, %3606 ], [ 0, %3608 ]
  br label %3611

3611:                                             ; preds = %3609, %3598
  %3612 = phi i32 [ 14, %3598 ], [ %3610, %3609 ]
  br label %3613

3613:                                             ; preds = %3611, %3590
  %3614 = phi i32 [ 12, %3590 ], [ %3612, %3611 ]
  br label %3615

3615:                                             ; preds = %3613, %3582
  %3616 = phi i32 [ 12, %3582 ], [ %3614, %3613 ]
  br label %3617

3617:                                             ; preds = %3615, %3574
  %3618 = phi i32 [ 10, %3574 ], [ %3616, %3615 ]
  br label %3619

3619:                                             ; preds = %3617, %3566
  %3620 = phi i32 [ 10, %3566 ], [ %3618, %3617 ]
  br label %3621

3621:                                             ; preds = %3619, %3558
  %3622 = phi i32 [ 8, %3558 ], [ %3620, %3619 ]
  br label %3623

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

3625:                                             ; preds = %3623, %3542
  %3626 = phi i32 [ 6, %3542 ], [ %3624, %3623 ]
  br label %3627

3627:                                             ; preds = %3625, %3534
  %3628 = phi i32 [ 6, %3534 ], [ %3626, %3625 ]
  br label %3629

3629:                                             ; preds = %3627, %3526
  %3630 = phi i32 [ 5, %3526 ], [ %3628, %3627 ]
  br label %3631

3631:                                             ; preds = %3629, %3518
  %3632 = phi i32 [ 4, %3518 ], [ %3630, %3629 ]
  br label %3633

3633:                                             ; preds = %3631, %3510
  %3634 = phi i32 [ 3, %3510 ], [ %3632, %3631 ]
  br label %3635

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

3637:                                             ; preds = %3635, %3494
  %3638 = phi i32 [ 1, %3494 ], [ %3636, %3635 ]
  br label %3639

3639:                                             ; preds = %3637, %3486
  %3640 = phi i32 [ 0, %3486 ], [ %3638, %3637 ]
  br label %3647

3641:                                             ; preds = %3472
  %3642 = load ptr, ptr %14, align 8, !tbaa !5
  %3643 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3642, i32 0, i32 3
  %3644 = load i8, ptr %3643, align 1, !tbaa !13
  %3645 = zext i8 %3644 to i32
  %3646 = ashr i32 %3645, 4
  br label %3647

3647:                                             ; preds = %3641, %3639
  %3648 = phi i32 [ %3640, %3639 ], [ %3646, %3641 ]
  %3649 = icmp eq i32 5, %3648
  br i1 %3649, label %3650, label %3651

3650:                                             ; preds = %3647
  br label %5101

3651:                                             ; preds = %3647
  %3652 = load ptr, ptr %14, align 8, !tbaa !5
  %3653 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3652, i32 0, i32 3
  %3654 = load i8, ptr %3653, align 1, !tbaa !13
  %3655 = zext i8 %3654 to i32
  %3656 = ashr i32 %3655, 4
  %3657 = icmp eq i32 0, %3656
  br i1 %3657, label %3658, label %3820

3658:                                             ; preds = %3651
  %3659 = load ptr, ptr %14, align 8, !tbaa !5
  %3660 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3659, i32 0, i32 3
  %3661 = load i8, ptr %3660, align 1, !tbaa !13
  %3662 = zext i8 %3661 to i32
  %3663 = and i32 %3662, 15
  %3664 = icmp eq i32 0, %3663
  br i1 %3664, label %3665, label %3666

3665:                                             ; preds = %3658
  br label %3818

3666:                                             ; preds = %3658
  %3667 = load ptr, ptr %14, align 8, !tbaa !5
  %3668 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3667, i32 0, i32 3
  %3669 = load i8, ptr %3668, align 1, !tbaa !13
  %3670 = zext i8 %3669 to i32
  %3671 = and i32 %3670, 15
  %3672 = icmp eq i32 1, %3671
  br i1 %3672, label %3673, label %3674

3673:                                             ; preds = %3666
  br label %3816

3674:                                             ; preds = %3666
  %3675 = load ptr, ptr %14, align 8, !tbaa !5
  %3676 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3675, i32 0, i32 3
  %3677 = load i8, ptr %3676, align 1, !tbaa !13
  %3678 = zext i8 %3677 to i32
  %3679 = and i32 %3678, 15
  %3680 = icmp eq i32 2, %3679
  br i1 %3680, label %3681, label %3682

3681:                                             ; preds = %3674
  br label %3814

3682:                                             ; preds = %3674
  %3683 = load ptr, ptr %14, align 8, !tbaa !5
  %3684 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3683, i32 0, i32 3
  %3685 = load i8, ptr %3684, align 1, !tbaa !13
  %3686 = zext i8 %3685 to i32
  %3687 = and i32 %3686, 15
  %3688 = icmp eq i32 3, %3687
  br i1 %3688, label %3689, label %3690

3689:                                             ; preds = %3682
  br label %3812

3690:                                             ; preds = %3682
  %3691 = load ptr, ptr %14, align 8, !tbaa !5
  %3692 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3691, i32 0, i32 3
  %3693 = load i8, ptr %3692, align 1, !tbaa !13
  %3694 = zext i8 %3693 to i32
  %3695 = and i32 %3694, 15
  %3696 = icmp eq i32 4, %3695
  br i1 %3696, label %3697, label %3698

3697:                                             ; preds = %3690
  br label %3810

3698:                                             ; preds = %3690
  %3699 = load ptr, ptr %14, align 8, !tbaa !5
  %3700 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3699, i32 0, i32 3
  %3701 = load i8, ptr %3700, align 1, !tbaa !13
  %3702 = zext i8 %3701 to i32
  %3703 = and i32 %3702, 15
  %3704 = icmp eq i32 5, %3703
  br i1 %3704, label %3705, label %3706

3705:                                             ; preds = %3698
  br label %3808

3706:                                             ; preds = %3698
  %3707 = load ptr, ptr %14, align 8, !tbaa !5
  %3708 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3707, i32 0, i32 3
  %3709 = load i8, ptr %3708, align 1, !tbaa !13
  %3710 = zext i8 %3709 to i32
  %3711 = and i32 %3710, 15
  %3712 = icmp eq i32 6, %3711
  br i1 %3712, label %3713, label %3714

3713:                                             ; preds = %3706
  br label %3806

3714:                                             ; preds = %3706
  %3715 = load ptr, ptr %14, align 8, !tbaa !5
  %3716 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3715, i32 0, i32 3
  %3717 = load i8, ptr %3716, align 1, !tbaa !13
  %3718 = zext i8 %3717 to i32
  %3719 = and i32 %3718, 15
  %3720 = icmp eq i32 7, %3719
  br i1 %3720, label %3721, label %3722

3721:                                             ; preds = %3714
  br label %3804

3722:                                             ; preds = %3714
  %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 !13
  %3726 = zext i8 %3725 to i32
  %3727 = and i32 %3726, 15
  %3728 = icmp eq i32 8, %3727
  br i1 %3728, label %3729, label %3730

3729:                                             ; preds = %3722
  br label %3802

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

3737:                                             ; preds = %3730
  br label %3800

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

3745:                                             ; preds = %3738
  br label %3798

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

3753:                                             ; preds = %3746
  br label %3796

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

3761:                                             ; preds = %3754
  br label %3794

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

3769:                                             ; preds = %3762
  br label %3792

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

3777:                                             ; preds = %3770
  br label %3790

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

3785:                                             ; preds = %3778
  br label %3788

3786:                                             ; preds = %3778
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

3787:                                             ; No predecessors!
  br label %3788

3788:                                             ; preds = %3787, %3785
  %3789 = phi i32 [ 15, %3785 ], [ 0, %3787 ]
  br label %3790

3790:                                             ; preds = %3788, %3777
  %3791 = phi i32 [ 14, %3777 ], [ %3789, %3788 ]
  br label %3792

3792:                                             ; preds = %3790, %3769
  %3793 = phi i32 [ 12, %3769 ], [ %3791, %3790 ]
  br label %3794

3794:                                             ; preds = %3792, %3761
  %3795 = phi i32 [ 12, %3761 ], [ %3793, %3792 ]
  br label %3796

3796:                                             ; preds = %3794, %3753
  %3797 = phi i32 [ 10, %3753 ], [ %3795, %3794 ]
  br label %3798

3798:                                             ; preds = %3796, %3745
  %3799 = phi i32 [ 10, %3745 ], [ %3797, %3796 ]
  br label %3800

3800:                                             ; preds = %3798, %3737
  %3801 = phi i32 [ 8, %3737 ], [ %3799, %3798 ]
  br label %3802

3802:                                             ; preds = %3800, %3729
  %3803 = phi i32 [ 8, %3729 ], [ %3801, %3800 ]
  br label %3804

3804:                                             ; preds = %3802, %3721
  %3805 = phi i32 [ 6, %3721 ], [ %3803, %3802 ]
  br label %3806

3806:                                             ; preds = %3804, %3713
  %3807 = phi i32 [ 6, %3713 ], [ %3805, %3804 ]
  br label %3808

3808:                                             ; preds = %3806, %3705
  %3809 = phi i32 [ 5, %3705 ], [ %3807, %3806 ]
  br label %3810

3810:                                             ; preds = %3808, %3697
  %3811 = phi i32 [ 4, %3697 ], [ %3809, %3808 ]
  br label %3812

3812:                                             ; preds = %3810, %3689
  %3813 = phi i32 [ 3, %3689 ], [ %3811, %3810 ]
  br label %3814

3814:                                             ; preds = %3812, %3681
  %3815 = phi i32 [ 2, %3681 ], [ %3813, %3812 ]
  br label %3816

3816:                                             ; preds = %3814, %3673
  %3817 = phi i32 [ 1, %3673 ], [ %3815, %3814 ]
  br label %3818

3818:                                             ; preds = %3816, %3665
  %3819 = phi i32 [ 0, %3665 ], [ %3817, %3816 ]
  br label %3826

3820:                                             ; preds = %3651
  %3821 = load ptr, ptr %14, align 8, !tbaa !5
  %3822 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3821, i32 0, i32 3
  %3823 = load i8, ptr %3822, align 1, !tbaa !13
  %3824 = zext i8 %3823 to i32
  %3825 = ashr i32 %3824, 4
  br label %3826

3826:                                             ; preds = %3820, %3818
  %3827 = phi i32 [ %3819, %3818 ], [ %3825, %3820 ]
  %3828 = icmp eq i32 6, %3827
  br i1 %3828, label %3829, label %3830

3829:                                             ; preds = %3826
  br label %5099

3830:                                             ; preds = %3826
  %3831 = load ptr, ptr %14, align 8, !tbaa !5
  %3832 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3831, i32 0, i32 3
  %3833 = load i8, ptr %3832, align 1, !tbaa !13
  %3834 = zext i8 %3833 to i32
  %3835 = ashr i32 %3834, 4
  %3836 = icmp eq i32 0, %3835
  br i1 %3836, label %3837, label %3999

3837:                                             ; preds = %3830
  %3838 = load ptr, ptr %14, align 8, !tbaa !5
  %3839 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3838, i32 0, i32 3
  %3840 = load i8, ptr %3839, align 1, !tbaa !13
  %3841 = zext i8 %3840 to i32
  %3842 = and i32 %3841, 15
  %3843 = icmp eq i32 0, %3842
  br i1 %3843, label %3844, label %3845

3844:                                             ; preds = %3837
  br label %3997

3845:                                             ; preds = %3837
  %3846 = load ptr, ptr %14, align 8, !tbaa !5
  %3847 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3846, i32 0, i32 3
  %3848 = load i8, ptr %3847, align 1, !tbaa !13
  %3849 = zext i8 %3848 to i32
  %3850 = and i32 %3849, 15
  %3851 = icmp eq i32 1, %3850
  br i1 %3851, label %3852, label %3853

3852:                                             ; preds = %3845
  br label %3995

3853:                                             ; preds = %3845
  %3854 = load ptr, ptr %14, align 8, !tbaa !5
  %3855 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3854, i32 0, i32 3
  %3856 = load i8, ptr %3855, align 1, !tbaa !13
  %3857 = zext i8 %3856 to i32
  %3858 = and i32 %3857, 15
  %3859 = icmp eq i32 2, %3858
  br i1 %3859, label %3860, label %3861

3860:                                             ; preds = %3853
  br label %3993

3861:                                             ; preds = %3853
  %3862 = load ptr, ptr %14, align 8, !tbaa !5
  %3863 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3862, i32 0, i32 3
  %3864 = load i8, ptr %3863, align 1, !tbaa !13
  %3865 = zext i8 %3864 to i32
  %3866 = and i32 %3865, 15
  %3867 = icmp eq i32 3, %3866
  br i1 %3867, label %3868, label %3869

3868:                                             ; preds = %3861
  br label %3991

3869:                                             ; preds = %3861
  %3870 = load ptr, ptr %14, align 8, !tbaa !5
  %3871 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3870, i32 0, i32 3
  %3872 = load i8, ptr %3871, align 1, !tbaa !13
  %3873 = zext i8 %3872 to i32
  %3874 = and i32 %3873, 15
  %3875 = icmp eq i32 4, %3874
  br i1 %3875, label %3876, label %3877

3876:                                             ; preds = %3869
  br label %3989

3877:                                             ; preds = %3869
  %3878 = load ptr, ptr %14, align 8, !tbaa !5
  %3879 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3878, i32 0, i32 3
  %3880 = load i8, ptr %3879, align 1, !tbaa !13
  %3881 = zext i8 %3880 to i32
  %3882 = and i32 %3881, 15
  %3883 = icmp eq i32 5, %3882
  br i1 %3883, label %3884, label %3885

3884:                                             ; preds = %3877
  br label %3987

3885:                                             ; preds = %3877
  %3886 = load ptr, ptr %14, align 8, !tbaa !5
  %3887 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3886, i32 0, i32 3
  %3888 = load i8, ptr %3887, align 1, !tbaa !13
  %3889 = zext i8 %3888 to i32
  %3890 = and i32 %3889, 15
  %3891 = icmp eq i32 6, %3890
  br i1 %3891, label %3892, label %3893

3892:                                             ; preds = %3885
  br label %3985

3893:                                             ; preds = %3885
  %3894 = load ptr, ptr %14, align 8, !tbaa !5
  %3895 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3894, i32 0, i32 3
  %3896 = load i8, ptr %3895, align 1, !tbaa !13
  %3897 = zext i8 %3896 to i32
  %3898 = and i32 %3897, 15
  %3899 = icmp eq i32 7, %3898
  br i1 %3899, label %3900, label %3901

3900:                                             ; preds = %3893
  br label %3983

3901:                                             ; preds = %3893
  %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 !13
  %3905 = zext i8 %3904 to i32
  %3906 = and i32 %3905, 15
  %3907 = icmp eq i32 8, %3906
  br i1 %3907, label %3908, label %3909

3908:                                             ; preds = %3901
  br label %3981

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

3916:                                             ; preds = %3909
  br label %3979

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

3924:                                             ; preds = %3917
  br label %3977

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

3932:                                             ; preds = %3925
  br label %3975

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

3940:                                             ; preds = %3933
  br label %3973

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

3948:                                             ; preds = %3941
  br label %3971

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

3956:                                             ; preds = %3949
  br label %3969

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

3964:                                             ; preds = %3957
  br label %3967

3965:                                             ; preds = %3957
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

3966:                                             ; No predecessors!
  br label %3967

3967:                                             ; preds = %3966, %3964
  %3968 = phi i32 [ 15, %3964 ], [ 0, %3966 ]
  br label %3969

3969:                                             ; preds = %3967, %3956
  %3970 = phi i32 [ 14, %3956 ], [ %3968, %3967 ]
  br label %3971

3971:                                             ; preds = %3969, %3948
  %3972 = phi i32 [ 12, %3948 ], [ %3970, %3969 ]
  br label %3973

3973:                                             ; preds = %3971, %3940
  %3974 = phi i32 [ 12, %3940 ], [ %3972, %3971 ]
  br label %3975

3975:                                             ; preds = %3973, %3932
  %3976 = phi i32 [ 10, %3932 ], [ %3974, %3973 ]
  br label %3977

3977:                                             ; preds = %3975, %3924
  %3978 = phi i32 [ 10, %3924 ], [ %3976, %3975 ]
  br label %3979

3979:                                             ; preds = %3977, %3916
  %3980 = phi i32 [ 8, %3916 ], [ %3978, %3977 ]
  br label %3981

3981:                                             ; preds = %3979, %3908
  %3982 = phi i32 [ 8, %3908 ], [ %3980, %3979 ]
  br label %3983

3983:                                             ; preds = %3981, %3900
  %3984 = phi i32 [ 6, %3900 ], [ %3982, %3981 ]
  br label %3985

3985:                                             ; preds = %3983, %3892
  %3986 = phi i32 [ 6, %3892 ], [ %3984, %3983 ]
  br label %3987

3987:                                             ; preds = %3985, %3884
  %3988 = phi i32 [ 5, %3884 ], [ %3986, %3985 ]
  br label %3989

3989:                                             ; preds = %3987, %3876
  %3990 = phi i32 [ 4, %3876 ], [ %3988, %3987 ]
  br label %3991

3991:                                             ; preds = %3989, %3868
  %3992 = phi i32 [ 3, %3868 ], [ %3990, %3989 ]
  br label %3993

3993:                                             ; preds = %3991, %3860
  %3994 = phi i32 [ 2, %3860 ], [ %3992, %3991 ]
  br label %3995

3995:                                             ; preds = %3993, %3852
  %3996 = phi i32 [ 1, %3852 ], [ %3994, %3993 ]
  br label %3997

3997:                                             ; preds = %3995, %3844
  %3998 = phi i32 [ 0, %3844 ], [ %3996, %3995 ]
  br label %4005

3999:                                             ; preds = %3830
  %4000 = load ptr, ptr %14, align 8, !tbaa !5
  %4001 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4000, i32 0, i32 3
  %4002 = load i8, ptr %4001, align 1, !tbaa !13
  %4003 = zext i8 %4002 to i32
  %4004 = ashr i32 %4003, 4
  br label %4005

4005:                                             ; preds = %3999, %3997
  %4006 = phi i32 [ %3998, %3997 ], [ %4004, %3999 ]
  %4007 = icmp eq i32 7, %4006
  br i1 %4007, label %4008, label %4009

4008:                                             ; preds = %4005
  br label %5097

4009:                                             ; preds = %4005
  %4010 = load ptr, ptr %14, align 8, !tbaa !5
  %4011 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4010, i32 0, i32 3
  %4012 = load i8, ptr %4011, align 1, !tbaa !13
  %4013 = zext i8 %4012 to i32
  %4014 = ashr i32 %4013, 4
  %4015 = icmp eq i32 0, %4014
  br i1 %4015, label %4016, label %4178

4016:                                             ; preds = %4009
  %4017 = load ptr, ptr %14, align 8, !tbaa !5
  %4018 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4017, i32 0, i32 3
  %4019 = load i8, ptr %4018, align 1, !tbaa !13
  %4020 = zext i8 %4019 to i32
  %4021 = and i32 %4020, 15
  %4022 = icmp eq i32 0, %4021
  br i1 %4022, label %4023, label %4024

4023:                                             ; preds = %4016
  br label %4176

4024:                                             ; preds = %4016
  %4025 = load ptr, ptr %14, align 8, !tbaa !5
  %4026 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4025, i32 0, i32 3
  %4027 = load i8, ptr %4026, align 1, !tbaa !13
  %4028 = zext i8 %4027 to i32
  %4029 = and i32 %4028, 15
  %4030 = icmp eq i32 1, %4029
  br i1 %4030, label %4031, label %4032

4031:                                             ; preds = %4024
  br label %4174

4032:                                             ; preds = %4024
  %4033 = load ptr, ptr %14, align 8, !tbaa !5
  %4034 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4033, i32 0, i32 3
  %4035 = load i8, ptr %4034, align 1, !tbaa !13
  %4036 = zext i8 %4035 to i32
  %4037 = and i32 %4036, 15
  %4038 = icmp eq i32 2, %4037
  br i1 %4038, label %4039, label %4040

4039:                                             ; preds = %4032
  br label %4172

4040:                                             ; preds = %4032
  %4041 = load ptr, ptr %14, align 8, !tbaa !5
  %4042 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4041, i32 0, i32 3
  %4043 = load i8, ptr %4042, align 1, !tbaa !13
  %4044 = zext i8 %4043 to i32
  %4045 = and i32 %4044, 15
  %4046 = icmp eq i32 3, %4045
  br i1 %4046, label %4047, label %4048

4047:                                             ; preds = %4040
  br label %4170

4048:                                             ; preds = %4040
  %4049 = load ptr, ptr %14, align 8, !tbaa !5
  %4050 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4049, i32 0, i32 3
  %4051 = load i8, ptr %4050, align 1, !tbaa !13
  %4052 = zext i8 %4051 to i32
  %4053 = and i32 %4052, 15
  %4054 = icmp eq i32 4, %4053
  br i1 %4054, label %4055, label %4056

4055:                                             ; preds = %4048
  br label %4168

4056:                                             ; preds = %4048
  %4057 = load ptr, ptr %14, align 8, !tbaa !5
  %4058 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4057, i32 0, i32 3
  %4059 = load i8, ptr %4058, align 1, !tbaa !13
  %4060 = zext i8 %4059 to i32
  %4061 = and i32 %4060, 15
  %4062 = icmp eq i32 5, %4061
  br i1 %4062, label %4063, label %4064

4063:                                             ; preds = %4056
  br label %4166

4064:                                             ; preds = %4056
  %4065 = load ptr, ptr %14, align 8, !tbaa !5
  %4066 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4065, i32 0, i32 3
  %4067 = load i8, ptr %4066, align 1, !tbaa !13
  %4068 = zext i8 %4067 to i32
  %4069 = and i32 %4068, 15
  %4070 = icmp eq i32 6, %4069
  br i1 %4070, label %4071, label %4072

4071:                                             ; preds = %4064
  br label %4164

4072:                                             ; preds = %4064
  %4073 = load ptr, ptr %14, align 8, !tbaa !5
  %4074 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4073, i32 0, i32 3
  %4075 = load i8, ptr %4074, align 1, !tbaa !13
  %4076 = zext i8 %4075 to i32
  %4077 = and i32 %4076, 15
  %4078 = icmp eq i32 7, %4077
  br i1 %4078, label %4079, label %4080

4079:                                             ; preds = %4072
  br label %4162

4080:                                             ; preds = %4072
  %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 !13
  %4084 = zext i8 %4083 to i32
  %4085 = and i32 %4084, 15
  %4086 = icmp eq i32 8, %4085
  br i1 %4086, label %4087, label %4088

4087:                                             ; preds = %4080
  br label %4160

4088:                                             ; preds = %4080
  %4089 = load ptr, ptr %14, align 8, !tbaa !5
  %4090 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4089, i32 0, i32 3
  %4091 = load i8, ptr %4090, align 1, !tbaa !13
  %4092 = zext i8 %4091 to i32
  %4093 = and i32 %4092, 15
  %4094 = icmp eq i32 9, %4093
  br i1 %4094, label %4095, label %4096

4095:                                             ; preds = %4088
  br label %4158

4096:                                             ; preds = %4088
  %4097 = load ptr, ptr %14, align 8, !tbaa !5
  %4098 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4097, i32 0, i32 3
  %4099 = load i8, ptr %4098, align 1, !tbaa !13
  %4100 = zext i8 %4099 to i32
  %4101 = and i32 %4100, 15
  %4102 = icmp eq i32 10, %4101
  br i1 %4102, label %4103, label %4104

4103:                                             ; preds = %4096
  br label %4156

4104:                                             ; preds = %4096
  %4105 = load ptr, ptr %14, align 8, !tbaa !5
  %4106 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4105, i32 0, i32 3
  %4107 = load i8, ptr %4106, align 1, !tbaa !13
  %4108 = zext i8 %4107 to i32
  %4109 = and i32 %4108, 15
  %4110 = icmp eq i32 11, %4109
  br i1 %4110, label %4111, label %4112

4111:                                             ; preds = %4104
  br label %4154

4112:                                             ; preds = %4104
  %4113 = load ptr, ptr %14, align 8, !tbaa !5
  %4114 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4113, i32 0, i32 3
  %4115 = load i8, ptr %4114, align 1, !tbaa !13
  %4116 = zext i8 %4115 to i32
  %4117 = and i32 %4116, 15
  %4118 = icmp eq i32 12, %4117
  br i1 %4118, label %4119, label %4120

4119:                                             ; preds = %4112
  br label %4152

4120:                                             ; preds = %4112
  %4121 = load ptr, ptr %14, align 8, !tbaa !5
  %4122 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4121, i32 0, i32 3
  %4123 = load i8, ptr %4122, align 1, !tbaa !13
  %4124 = zext i8 %4123 to i32
  %4125 = and i32 %4124, 15
  %4126 = icmp eq i32 13, %4125
  br i1 %4126, label %4127, label %4128

4127:                                             ; preds = %4120
  br label %4150

4128:                                             ; preds = %4120
  %4129 = load ptr, ptr %14, align 8, !tbaa !5
  %4130 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4129, i32 0, i32 3
  %4131 = load i8, ptr %4130, align 1, !tbaa !13
  %4132 = zext i8 %4131 to i32
  %4133 = and i32 %4132, 15
  %4134 = icmp eq i32 14, %4133
  br i1 %4134, label %4135, label %4136

4135:                                             ; preds = %4128
  br label %4148

4136:                                             ; preds = %4128
  %4137 = load ptr, ptr %14, align 8, !tbaa !5
  %4138 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4137, i32 0, i32 3
  %4139 = load i8, ptr %4138, align 1, !tbaa !13
  %4140 = zext i8 %4139 to i32
  %4141 = and i32 %4140, 15
  %4142 = icmp eq i32 15, %4141
  br i1 %4142, label %4143, label %4144

4143:                                             ; preds = %4136
  br label %4146

4144:                                             ; preds = %4136
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

4145:                                             ; No predecessors!
  br label %4146

4146:                                             ; preds = %4145, %4143
  %4147 = phi i32 [ 15, %4143 ], [ 0, %4145 ]
  br label %4148

4148:                                             ; preds = %4146, %4135
  %4149 = phi i32 [ 14, %4135 ], [ %4147, %4146 ]
  br label %4150

4150:                                             ; preds = %4148, %4127
  %4151 = phi i32 [ 12, %4127 ], [ %4149, %4148 ]
  br label %4152

4152:                                             ; preds = %4150, %4119
  %4153 = phi i32 [ 12, %4119 ], [ %4151, %4150 ]
  br label %4154

4154:                                             ; preds = %4152, %4111
  %4155 = phi i32 [ 10, %4111 ], [ %4153, %4152 ]
  br label %4156

4156:                                             ; preds = %4154, %4103
  %4157 = phi i32 [ 10, %4103 ], [ %4155, %4154 ]
  br label %4158

4158:                                             ; preds = %4156, %4095
  %4159 = phi i32 [ 8, %4095 ], [ %4157, %4156 ]
  br label %4160

4160:                                             ; preds = %4158, %4087
  %4161 = phi i32 [ 8, %4087 ], [ %4159, %4158 ]
  br label %4162

4162:                                             ; preds = %4160, %4079
  %4163 = phi i32 [ 6, %4079 ], [ %4161, %4160 ]
  br label %4164

4164:                                             ; preds = %4162, %4071
  %4165 = phi i32 [ 6, %4071 ], [ %4163, %4162 ]
  br label %4166

4166:                                             ; preds = %4164, %4063
  %4167 = phi i32 [ 5, %4063 ], [ %4165, %4164 ]
  br label %4168

4168:                                             ; preds = %4166, %4055
  %4169 = phi i32 [ 4, %4055 ], [ %4167, %4166 ]
  br label %4170

4170:                                             ; preds = %4168, %4047
  %4171 = phi i32 [ 3, %4047 ], [ %4169, %4168 ]
  br label %4172

4172:                                             ; preds = %4170, %4039
  %4173 = phi i32 [ 2, %4039 ], [ %4171, %4170 ]
  br label %4174

4174:                                             ; preds = %4172, %4031
  %4175 = phi i32 [ 1, %4031 ], [ %4173, %4172 ]
  br label %4176

4176:                                             ; preds = %4174, %4023
  %4177 = phi i32 [ 0, %4023 ], [ %4175, %4174 ]
  br label %4184

4178:                                             ; preds = %4009
  %4179 = load ptr, ptr %14, align 8, !tbaa !5
  %4180 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4179, i32 0, i32 3
  %4181 = load i8, ptr %4180, align 1, !tbaa !13
  %4182 = zext i8 %4181 to i32
  %4183 = ashr i32 %4182, 4
  br label %4184

4184:                                             ; preds = %4178, %4176
  %4185 = phi i32 [ %4177, %4176 ], [ %4183, %4178 ]
  %4186 = icmp eq i32 8, %4185
  br i1 %4186, label %4187, label %4188

4187:                                             ; preds = %4184
  br label %5095

4188:                                             ; preds = %4184
  %4189 = load ptr, ptr %14, align 8, !tbaa !5
  %4190 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4189, i32 0, i32 3
  %4191 = load i8, ptr %4190, align 1, !tbaa !13
  %4192 = zext i8 %4191 to i32
  %4193 = ashr i32 %4192, 4
  %4194 = icmp eq i32 0, %4193
  br i1 %4194, label %4195, label %4357

4195:                                             ; preds = %4188
  %4196 = load ptr, ptr %14, align 8, !tbaa !5
  %4197 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4196, i32 0, i32 3
  %4198 = load i8, ptr %4197, align 1, !tbaa !13
  %4199 = zext i8 %4198 to i32
  %4200 = and i32 %4199, 15
  %4201 = icmp eq i32 0, %4200
  br i1 %4201, label %4202, label %4203

4202:                                             ; preds = %4195
  br label %4355

4203:                                             ; preds = %4195
  %4204 = load ptr, ptr %14, align 8, !tbaa !5
  %4205 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4204, i32 0, i32 3
  %4206 = load i8, ptr %4205, align 1, !tbaa !13
  %4207 = zext i8 %4206 to i32
  %4208 = and i32 %4207, 15
  %4209 = icmp eq i32 1, %4208
  br i1 %4209, label %4210, label %4211

4210:                                             ; preds = %4203
  br label %4353

4211:                                             ; preds = %4203
  %4212 = load ptr, ptr %14, align 8, !tbaa !5
  %4213 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4212, i32 0, i32 3
  %4214 = load i8, ptr %4213, align 1, !tbaa !13
  %4215 = zext i8 %4214 to i32
  %4216 = and i32 %4215, 15
  %4217 = icmp eq i32 2, %4216
  br i1 %4217, label %4218, label %4219

4218:                                             ; preds = %4211
  br label %4351

4219:                                             ; preds = %4211
  %4220 = load ptr, ptr %14, align 8, !tbaa !5
  %4221 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4220, i32 0, i32 3
  %4222 = load i8, ptr %4221, align 1, !tbaa !13
  %4223 = zext i8 %4222 to i32
  %4224 = and i32 %4223, 15
  %4225 = icmp eq i32 3, %4224
  br i1 %4225, label %4226, label %4227

4226:                                             ; preds = %4219
  br label %4349

4227:                                             ; preds = %4219
  %4228 = load ptr, ptr %14, align 8, !tbaa !5
  %4229 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4228, i32 0, i32 3
  %4230 = load i8, ptr %4229, align 1, !tbaa !13
  %4231 = zext i8 %4230 to i32
  %4232 = and i32 %4231, 15
  %4233 = icmp eq i32 4, %4232
  br i1 %4233, label %4234, label %4235

4234:                                             ; preds = %4227
  br label %4347

4235:                                             ; preds = %4227
  %4236 = load ptr, ptr %14, align 8, !tbaa !5
  %4237 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4236, i32 0, i32 3
  %4238 = load i8, ptr %4237, align 1, !tbaa !13
  %4239 = zext i8 %4238 to i32
  %4240 = and i32 %4239, 15
  %4241 = icmp eq i32 5, %4240
  br i1 %4241, label %4242, label %4243

4242:                                             ; preds = %4235
  br label %4345

4243:                                             ; preds = %4235
  %4244 = load ptr, ptr %14, align 8, !tbaa !5
  %4245 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4244, i32 0, i32 3
  %4246 = load i8, ptr %4245, align 1, !tbaa !13
  %4247 = zext i8 %4246 to i32
  %4248 = and i32 %4247, 15
  %4249 = icmp eq i32 6, %4248
  br i1 %4249, label %4250, label %4251

4250:                                             ; preds = %4243
  br label %4343

4251:                                             ; preds = %4243
  %4252 = load ptr, ptr %14, align 8, !tbaa !5
  %4253 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4252, i32 0, i32 3
  %4254 = load i8, ptr %4253, align 1, !tbaa !13
  %4255 = zext i8 %4254 to i32
  %4256 = and i32 %4255, 15
  %4257 = icmp eq i32 7, %4256
  br i1 %4257, label %4258, label %4259

4258:                                             ; preds = %4251
  br label %4341

4259:                                             ; preds = %4251
  %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 !13
  %4263 = zext i8 %4262 to i32
  %4264 = and i32 %4263, 15
  %4265 = icmp eq i32 8, %4264
  br i1 %4265, label %4266, label %4267

4266:                                             ; preds = %4259
  br label %4339

4267:                                             ; preds = %4259
  %4268 = load ptr, ptr %14, align 8, !tbaa !5
  %4269 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4268, i32 0, i32 3
  %4270 = load i8, ptr %4269, align 1, !tbaa !13
  %4271 = zext i8 %4270 to i32
  %4272 = and i32 %4271, 15
  %4273 = icmp eq i32 9, %4272
  br i1 %4273, label %4274, label %4275

4274:                                             ; preds = %4267
  br label %4337

4275:                                             ; preds = %4267
  %4276 = load ptr, ptr %14, align 8, !tbaa !5
  %4277 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4276, i32 0, i32 3
  %4278 = load i8, ptr %4277, align 1, !tbaa !13
  %4279 = zext i8 %4278 to i32
  %4280 = and i32 %4279, 15
  %4281 = icmp eq i32 10, %4280
  br i1 %4281, label %4282, label %4283

4282:                                             ; preds = %4275
  br label %4335

4283:                                             ; preds = %4275
  %4284 = load ptr, ptr %14, align 8, !tbaa !5
  %4285 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4284, i32 0, i32 3
  %4286 = load i8, ptr %4285, align 1, !tbaa !13
  %4287 = zext i8 %4286 to i32
  %4288 = and i32 %4287, 15
  %4289 = icmp eq i32 11, %4288
  br i1 %4289, label %4290, label %4291

4290:                                             ; preds = %4283
  br label %4333

4291:                                             ; preds = %4283
  %4292 = load ptr, ptr %14, align 8, !tbaa !5
  %4293 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4292, i32 0, i32 3
  %4294 = load i8, ptr %4293, align 1, !tbaa !13
  %4295 = zext i8 %4294 to i32
  %4296 = and i32 %4295, 15
  %4297 = icmp eq i32 12, %4296
  br i1 %4297, label %4298, label %4299

4298:                                             ; preds = %4291
  br label %4331

4299:                                             ; preds = %4291
  %4300 = load ptr, ptr %14, align 8, !tbaa !5
  %4301 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4300, i32 0, i32 3
  %4302 = load i8, ptr %4301, align 1, !tbaa !13
  %4303 = zext i8 %4302 to i32
  %4304 = and i32 %4303, 15
  %4305 = icmp eq i32 13, %4304
  br i1 %4305, label %4306, label %4307

4306:                                             ; preds = %4299
  br label %4329

4307:                                             ; preds = %4299
  %4308 = load ptr, ptr %14, align 8, !tbaa !5
  %4309 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4308, i32 0, i32 3
  %4310 = load i8, ptr %4309, align 1, !tbaa !13
  %4311 = zext i8 %4310 to i32
  %4312 = and i32 %4311, 15
  %4313 = icmp eq i32 14, %4312
  br i1 %4313, label %4314, label %4315

4314:                                             ; preds = %4307
  br label %4327

4315:                                             ; preds = %4307
  %4316 = load ptr, ptr %14, align 8, !tbaa !5
  %4317 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4316, i32 0, i32 3
  %4318 = load i8, ptr %4317, align 1, !tbaa !13
  %4319 = zext i8 %4318 to i32
  %4320 = and i32 %4319, 15
  %4321 = icmp eq i32 15, %4320
  br i1 %4321, label %4322, label %4323

4322:                                             ; preds = %4315
  br label %4325

4323:                                             ; preds = %4315
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

4324:                                             ; No predecessors!
  br label %4325

4325:                                             ; preds = %4324, %4322
  %4326 = phi i32 [ 15, %4322 ], [ 0, %4324 ]
  br label %4327

4327:                                             ; preds = %4325, %4314
  %4328 = phi i32 [ 14, %4314 ], [ %4326, %4325 ]
  br label %4329

4329:                                             ; preds = %4327, %4306
  %4330 = phi i32 [ 12, %4306 ], [ %4328, %4327 ]
  br label %4331

4331:                                             ; preds = %4329, %4298
  %4332 = phi i32 [ 12, %4298 ], [ %4330, %4329 ]
  br label %4333

4333:                                             ; preds = %4331, %4290
  %4334 = phi i32 [ 10, %4290 ], [ %4332, %4331 ]
  br label %4335

4335:                                             ; preds = %4333, %4282
  %4336 = phi i32 [ 10, %4282 ], [ %4334, %4333 ]
  br label %4337

4337:                                             ; preds = %4335, %4274
  %4338 = phi i32 [ 8, %4274 ], [ %4336, %4335 ]
  br label %4339

4339:                                             ; preds = %4337, %4266
  %4340 = phi i32 [ 8, %4266 ], [ %4338, %4337 ]
  br label %4341

4341:                                             ; preds = %4339, %4258
  %4342 = phi i32 [ 6, %4258 ], [ %4340, %4339 ]
  br label %4343

4343:                                             ; preds = %4341, %4250
  %4344 = phi i32 [ 6, %4250 ], [ %4342, %4341 ]
  br label %4345

4345:                                             ; preds = %4343, %4242
  %4346 = phi i32 [ 5, %4242 ], [ %4344, %4343 ]
  br label %4347

4347:                                             ; preds = %4345, %4234
  %4348 = phi i32 [ 4, %4234 ], [ %4346, %4345 ]
  br label %4349

4349:                                             ; preds = %4347, %4226
  %4350 = phi i32 [ 3, %4226 ], [ %4348, %4347 ]
  br label %4351

4351:                                             ; preds = %4349, %4218
  %4352 = phi i32 [ 2, %4218 ], [ %4350, %4349 ]
  br label %4353

4353:                                             ; preds = %4351, %4210
  %4354 = phi i32 [ 1, %4210 ], [ %4352, %4351 ]
  br label %4355

4355:                                             ; preds = %4353, %4202
  %4356 = phi i32 [ 0, %4202 ], [ %4354, %4353 ]
  br label %4363

4357:                                             ; preds = %4188
  %4358 = load ptr, ptr %14, align 8, !tbaa !5
  %4359 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4358, i32 0, i32 3
  %4360 = load i8, ptr %4359, align 1, !tbaa !13
  %4361 = zext i8 %4360 to i32
  %4362 = ashr i32 %4361, 4
  br label %4363

4363:                                             ; preds = %4357, %4355
  %4364 = phi i32 [ %4356, %4355 ], [ %4362, %4357 ]
  %4365 = icmp eq i32 9, %4364
  br i1 %4365, label %4366, label %4367

4366:                                             ; preds = %4363
  br label %5093

4367:                                             ; preds = %4363
  %4368 = load ptr, ptr %14, align 8, !tbaa !5
  %4369 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4368, i32 0, i32 3
  %4370 = load i8, ptr %4369, align 1, !tbaa !13
  %4371 = zext i8 %4370 to i32
  %4372 = ashr i32 %4371, 4
  %4373 = icmp eq i32 0, %4372
  br i1 %4373, label %4374, label %4536

4374:                                             ; preds = %4367
  %4375 = load ptr, ptr %14, align 8, !tbaa !5
  %4376 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4375, i32 0, i32 3
  %4377 = load i8, ptr %4376, align 1, !tbaa !13
  %4378 = zext i8 %4377 to i32
  %4379 = and i32 %4378, 15
  %4380 = icmp eq i32 0, %4379
  br i1 %4380, label %4381, label %4382

4381:                                             ; preds = %4374
  br label %4534

4382:                                             ; preds = %4374
  %4383 = load ptr, ptr %14, align 8, !tbaa !5
  %4384 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4383, i32 0, i32 3
  %4385 = load i8, ptr %4384, align 1, !tbaa !13
  %4386 = zext i8 %4385 to i32
  %4387 = and i32 %4386, 15
  %4388 = icmp eq i32 1, %4387
  br i1 %4388, label %4389, label %4390

4389:                                             ; preds = %4382
  br label %4532

4390:                                             ; preds = %4382
  %4391 = load ptr, ptr %14, align 8, !tbaa !5
  %4392 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4391, i32 0, i32 3
  %4393 = load i8, ptr %4392, align 1, !tbaa !13
  %4394 = zext i8 %4393 to i32
  %4395 = and i32 %4394, 15
  %4396 = icmp eq i32 2, %4395
  br i1 %4396, label %4397, label %4398

4397:                                             ; preds = %4390
  br label %4530

4398:                                             ; preds = %4390
  %4399 = load ptr, ptr %14, align 8, !tbaa !5
  %4400 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4399, i32 0, i32 3
  %4401 = load i8, ptr %4400, align 1, !tbaa !13
  %4402 = zext i8 %4401 to i32
  %4403 = and i32 %4402, 15
  %4404 = icmp eq i32 3, %4403
  br i1 %4404, label %4405, label %4406

4405:                                             ; preds = %4398
  br label %4528

4406:                                             ; preds = %4398
  %4407 = load ptr, ptr %14, align 8, !tbaa !5
  %4408 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4407, i32 0, i32 3
  %4409 = load i8, ptr %4408, align 1, !tbaa !13
  %4410 = zext i8 %4409 to i32
  %4411 = and i32 %4410, 15
  %4412 = icmp eq i32 4, %4411
  br i1 %4412, label %4413, label %4414

4413:                                             ; preds = %4406
  br label %4526

4414:                                             ; preds = %4406
  %4415 = load ptr, ptr %14, align 8, !tbaa !5
  %4416 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4415, i32 0, i32 3
  %4417 = load i8, ptr %4416, align 1, !tbaa !13
  %4418 = zext i8 %4417 to i32
  %4419 = and i32 %4418, 15
  %4420 = icmp eq i32 5, %4419
  br i1 %4420, label %4421, label %4422

4421:                                             ; preds = %4414
  br label %4524

4422:                                             ; preds = %4414
  %4423 = load ptr, ptr %14, align 8, !tbaa !5
  %4424 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4423, i32 0, i32 3
  %4425 = load i8, ptr %4424, align 1, !tbaa !13
  %4426 = zext i8 %4425 to i32
  %4427 = and i32 %4426, 15
  %4428 = icmp eq i32 6, %4427
  br i1 %4428, label %4429, label %4430

4429:                                             ; preds = %4422
  br label %4522

4430:                                             ; preds = %4422
  %4431 = load ptr, ptr %14, align 8, !tbaa !5
  %4432 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4431, i32 0, i32 3
  %4433 = load i8, ptr %4432, align 1, !tbaa !13
  %4434 = zext i8 %4433 to i32
  %4435 = and i32 %4434, 15
  %4436 = icmp eq i32 7, %4435
  br i1 %4436, label %4437, label %4438

4437:                                             ; preds = %4430
  br label %4520

4438:                                             ; preds = %4430
  %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 !13
  %4442 = zext i8 %4441 to i32
  %4443 = and i32 %4442, 15
  %4444 = icmp eq i32 8, %4443
  br i1 %4444, label %4445, label %4446

4445:                                             ; preds = %4438
  br label %4518

4446:                                             ; preds = %4438
  %4447 = load ptr, ptr %14, align 8, !tbaa !5
  %4448 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4447, i32 0, i32 3
  %4449 = load i8, ptr %4448, align 1, !tbaa !13
  %4450 = zext i8 %4449 to i32
  %4451 = and i32 %4450, 15
  %4452 = icmp eq i32 9, %4451
  br i1 %4452, label %4453, label %4454

4453:                                             ; preds = %4446
  br label %4516

4454:                                             ; preds = %4446
  %4455 = load ptr, ptr %14, align 8, !tbaa !5
  %4456 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4455, i32 0, i32 3
  %4457 = load i8, ptr %4456, align 1, !tbaa !13
  %4458 = zext i8 %4457 to i32
  %4459 = and i32 %4458, 15
  %4460 = icmp eq i32 10, %4459
  br i1 %4460, label %4461, label %4462

4461:                                             ; preds = %4454
  br label %4514

4462:                                             ; preds = %4454
  %4463 = load ptr, ptr %14, align 8, !tbaa !5
  %4464 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4463, i32 0, i32 3
  %4465 = load i8, ptr %4464, align 1, !tbaa !13
  %4466 = zext i8 %4465 to i32
  %4467 = and i32 %4466, 15
  %4468 = icmp eq i32 11, %4467
  br i1 %4468, label %4469, label %4470

4469:                                             ; preds = %4462
  br label %4512

4470:                                             ; preds = %4462
  %4471 = load ptr, ptr %14, align 8, !tbaa !5
  %4472 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4471, i32 0, i32 3
  %4473 = load i8, ptr %4472, align 1, !tbaa !13
  %4474 = zext i8 %4473 to i32
  %4475 = and i32 %4474, 15
  %4476 = icmp eq i32 12, %4475
  br i1 %4476, label %4477, label %4478

4477:                                             ; preds = %4470
  br label %4510

4478:                                             ; preds = %4470
  %4479 = load ptr, ptr %14, align 8, !tbaa !5
  %4480 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4479, i32 0, i32 3
  %4481 = load i8, ptr %4480, align 1, !tbaa !13
  %4482 = zext i8 %4481 to i32
  %4483 = and i32 %4482, 15
  %4484 = icmp eq i32 13, %4483
  br i1 %4484, label %4485, label %4486

4485:                                             ; preds = %4478
  br label %4508

4486:                                             ; preds = %4478
  %4487 = load ptr, ptr %14, align 8, !tbaa !5
  %4488 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4487, i32 0, i32 3
  %4489 = load i8, ptr %4488, align 1, !tbaa !13
  %4490 = zext i8 %4489 to i32
  %4491 = and i32 %4490, 15
  %4492 = icmp eq i32 14, %4491
  br i1 %4492, label %4493, label %4494

4493:                                             ; preds = %4486
  br label %4506

4494:                                             ; preds = %4486
  %4495 = load ptr, ptr %14, align 8, !tbaa !5
  %4496 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4495, i32 0, i32 3
  %4497 = load i8, ptr %4496, align 1, !tbaa !13
  %4498 = zext i8 %4497 to i32
  %4499 = and i32 %4498, 15
  %4500 = icmp eq i32 15, %4499
  br i1 %4500, label %4501, label %4502

4501:                                             ; preds = %4494
  br label %4504

4502:                                             ; preds = %4494
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

4503:                                             ; No predecessors!
  br label %4504

4504:                                             ; preds = %4503, %4501
  %4505 = phi i32 [ 15, %4501 ], [ 0, %4503 ]
  br label %4506

4506:                                             ; preds = %4504, %4493
  %4507 = phi i32 [ 14, %4493 ], [ %4505, %4504 ]
  br label %4508

4508:                                             ; preds = %4506, %4485
  %4509 = phi i32 [ 12, %4485 ], [ %4507, %4506 ]
  br label %4510

4510:                                             ; preds = %4508, %4477
  %4511 = phi i32 [ 12, %4477 ], [ %4509, %4508 ]
  br label %4512

4512:                                             ; preds = %4510, %4469
  %4513 = phi i32 [ 10, %4469 ], [ %4511, %4510 ]
  br label %4514

4514:                                             ; preds = %4512, %4461
  %4515 = phi i32 [ 10, %4461 ], [ %4513, %4512 ]
  br label %4516

4516:                                             ; preds = %4514, %4453
  %4517 = phi i32 [ 8, %4453 ], [ %4515, %4514 ]
  br label %4518

4518:                                             ; preds = %4516, %4445
  %4519 = phi i32 [ 8, %4445 ], [ %4517, %4516 ]
  br label %4520

4520:                                             ; preds = %4518, %4437
  %4521 = phi i32 [ 6, %4437 ], [ %4519, %4518 ]
  br label %4522

4522:                                             ; preds = %4520, %4429
  %4523 = phi i32 [ 6, %4429 ], [ %4521, %4520 ]
  br label %4524

4524:                                             ; preds = %4522, %4421
  %4525 = phi i32 [ 5, %4421 ], [ %4523, %4522 ]
  br label %4526

4526:                                             ; preds = %4524, %4413
  %4527 = phi i32 [ 4, %4413 ], [ %4525, %4524 ]
  br label %4528

4528:                                             ; preds = %4526, %4405
  %4529 = phi i32 [ 3, %4405 ], [ %4527, %4526 ]
  br label %4530

4530:                                             ; preds = %4528, %4397
  %4531 = phi i32 [ 2, %4397 ], [ %4529, %4528 ]
  br label %4532

4532:                                             ; preds = %4530, %4389
  %4533 = phi i32 [ 1, %4389 ], [ %4531, %4530 ]
  br label %4534

4534:                                             ; preds = %4532, %4381
  %4535 = phi i32 [ 0, %4381 ], [ %4533, %4532 ]
  br label %4542

4536:                                             ; preds = %4367
  %4537 = load ptr, ptr %14, align 8, !tbaa !5
  %4538 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4537, i32 0, i32 3
  %4539 = load i8, ptr %4538, align 1, !tbaa !13
  %4540 = zext i8 %4539 to i32
  %4541 = ashr i32 %4540, 4
  br label %4542

4542:                                             ; preds = %4536, %4534
  %4543 = phi i32 [ %4535, %4534 ], [ %4541, %4536 ]
  %4544 = icmp eq i32 10, %4543
  br i1 %4544, label %4545, label %4546

4545:                                             ; preds = %4542
  br label %5091

4546:                                             ; preds = %4542
  %4547 = load ptr, ptr %14, align 8, !tbaa !5
  %4548 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4547, i32 0, i32 3
  %4549 = load i8, ptr %4548, align 1, !tbaa !13
  %4550 = zext i8 %4549 to i32
  %4551 = ashr i32 %4550, 4
  %4552 = icmp eq i32 0, %4551
  br i1 %4552, label %4553, label %4715

4553:                                             ; preds = %4546
  %4554 = load ptr, ptr %14, align 8, !tbaa !5
  %4555 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4554, i32 0, i32 3
  %4556 = load i8, ptr %4555, align 1, !tbaa !13
  %4557 = zext i8 %4556 to i32
  %4558 = and i32 %4557, 15
  %4559 = icmp eq i32 0, %4558
  br i1 %4559, label %4560, label %4561

4560:                                             ; preds = %4553
  br label %4713

4561:                                             ; preds = %4553
  %4562 = load ptr, ptr %14, align 8, !tbaa !5
  %4563 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4562, i32 0, i32 3
  %4564 = load i8, ptr %4563, align 1, !tbaa !13
  %4565 = zext i8 %4564 to i32
  %4566 = and i32 %4565, 15
  %4567 = icmp eq i32 1, %4566
  br i1 %4567, label %4568, label %4569

4568:                                             ; preds = %4561
  br label %4711

4569:                                             ; preds = %4561
  %4570 = load ptr, ptr %14, align 8, !tbaa !5
  %4571 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4570, i32 0, i32 3
  %4572 = load i8, ptr %4571, align 1, !tbaa !13
  %4573 = zext i8 %4572 to i32
  %4574 = and i32 %4573, 15
  %4575 = icmp eq i32 2, %4574
  br i1 %4575, label %4576, label %4577

4576:                                             ; preds = %4569
  br label %4709

4577:                                             ; preds = %4569
  %4578 = load ptr, ptr %14, align 8, !tbaa !5
  %4579 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4578, i32 0, i32 3
  %4580 = load i8, ptr %4579, align 1, !tbaa !13
  %4581 = zext i8 %4580 to i32
  %4582 = and i32 %4581, 15
  %4583 = icmp eq i32 3, %4582
  br i1 %4583, label %4584, label %4585

4584:                                             ; preds = %4577
  br label %4707

4585:                                             ; preds = %4577
  %4586 = load ptr, ptr %14, align 8, !tbaa !5
  %4587 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4586, i32 0, i32 3
  %4588 = load i8, ptr %4587, align 1, !tbaa !13
  %4589 = zext i8 %4588 to i32
  %4590 = and i32 %4589, 15
  %4591 = icmp eq i32 4, %4590
  br i1 %4591, label %4592, label %4593

4592:                                             ; preds = %4585
  br label %4705

4593:                                             ; preds = %4585
  %4594 = load ptr, ptr %14, align 8, !tbaa !5
  %4595 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4594, i32 0, i32 3
  %4596 = load i8, ptr %4595, align 1, !tbaa !13
  %4597 = zext i8 %4596 to i32
  %4598 = and i32 %4597, 15
  %4599 = icmp eq i32 5, %4598
  br i1 %4599, label %4600, label %4601

4600:                                             ; preds = %4593
  br label %4703

4601:                                             ; preds = %4593
  %4602 = load ptr, ptr %14, align 8, !tbaa !5
  %4603 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4602, i32 0, i32 3
  %4604 = load i8, ptr %4603, align 1, !tbaa !13
  %4605 = zext i8 %4604 to i32
  %4606 = and i32 %4605, 15
  %4607 = icmp eq i32 6, %4606
  br i1 %4607, label %4608, label %4609

4608:                                             ; preds = %4601
  br label %4701

4609:                                             ; preds = %4601
  %4610 = load ptr, ptr %14, align 8, !tbaa !5
  %4611 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4610, i32 0, i32 3
  %4612 = load i8, ptr %4611, align 1, !tbaa !13
  %4613 = zext i8 %4612 to i32
  %4614 = and i32 %4613, 15
  %4615 = icmp eq i32 7, %4614
  br i1 %4615, label %4616, label %4617

4616:                                             ; preds = %4609
  br label %4699

4617:                                             ; preds = %4609
  %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 !13
  %4621 = zext i8 %4620 to i32
  %4622 = and i32 %4621, 15
  %4623 = icmp eq i32 8, %4622
  br i1 %4623, label %4624, label %4625

4624:                                             ; preds = %4617
  br label %4697

4625:                                             ; preds = %4617
  %4626 = load ptr, ptr %14, align 8, !tbaa !5
  %4627 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4626, i32 0, i32 3
  %4628 = load i8, ptr %4627, align 1, !tbaa !13
  %4629 = zext i8 %4628 to i32
  %4630 = and i32 %4629, 15
  %4631 = icmp eq i32 9, %4630
  br i1 %4631, label %4632, label %4633

4632:                                             ; preds = %4625
  br label %4695

4633:                                             ; preds = %4625
  %4634 = load ptr, ptr %14, align 8, !tbaa !5
  %4635 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4634, i32 0, i32 3
  %4636 = load i8, ptr %4635, align 1, !tbaa !13
  %4637 = zext i8 %4636 to i32
  %4638 = and i32 %4637, 15
  %4639 = icmp eq i32 10, %4638
  br i1 %4639, label %4640, label %4641

4640:                                             ; preds = %4633
  br label %4693

4641:                                             ; preds = %4633
  %4642 = load ptr, ptr %14, align 8, !tbaa !5
  %4643 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4642, i32 0, i32 3
  %4644 = load i8, ptr %4643, align 1, !tbaa !13
  %4645 = zext i8 %4644 to i32
  %4646 = and i32 %4645, 15
  %4647 = icmp eq i32 11, %4646
  br i1 %4647, label %4648, label %4649

4648:                                             ; preds = %4641
  br label %4691

4649:                                             ; preds = %4641
  %4650 = load ptr, ptr %14, align 8, !tbaa !5
  %4651 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4650, i32 0, i32 3
  %4652 = load i8, ptr %4651, align 1, !tbaa !13
  %4653 = zext i8 %4652 to i32
  %4654 = and i32 %4653, 15
  %4655 = icmp eq i32 12, %4654
  br i1 %4655, label %4656, label %4657

4656:                                             ; preds = %4649
  br label %4689

4657:                                             ; preds = %4649
  %4658 = load ptr, ptr %14, align 8, !tbaa !5
  %4659 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4658, i32 0, i32 3
  %4660 = load i8, ptr %4659, align 1, !tbaa !13
  %4661 = zext i8 %4660 to i32
  %4662 = and i32 %4661, 15
  %4663 = icmp eq i32 13, %4662
  br i1 %4663, label %4664, label %4665

4664:                                             ; preds = %4657
  br label %4687

4665:                                             ; preds = %4657
  %4666 = load ptr, ptr %14, align 8, !tbaa !5
  %4667 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4666, i32 0, i32 3
  %4668 = load i8, ptr %4667, align 1, !tbaa !13
  %4669 = zext i8 %4668 to i32
  %4670 = and i32 %4669, 15
  %4671 = icmp eq i32 14, %4670
  br i1 %4671, label %4672, label %4673

4672:                                             ; preds = %4665
  br label %4685

4673:                                             ; preds = %4665
  %4674 = load ptr, ptr %14, align 8, !tbaa !5
  %4675 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4674, i32 0, i32 3
  %4676 = load i8, ptr %4675, align 1, !tbaa !13
  %4677 = zext i8 %4676 to i32
  %4678 = and i32 %4677, 15
  %4679 = icmp eq i32 15, %4678
  br i1 %4679, label %4680, label %4681

4680:                                             ; preds = %4673
  br label %4683

4681:                                             ; preds = %4673
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

4682:                                             ; No predecessors!
  br label %4683

4683:                                             ; preds = %4682, %4680
  %4684 = phi i32 [ 15, %4680 ], [ 0, %4682 ]
  br label %4685

4685:                                             ; preds = %4683, %4672
  %4686 = phi i32 [ 14, %4672 ], [ %4684, %4683 ]
  br label %4687

4687:                                             ; preds = %4685, %4664
  %4688 = phi i32 [ 12, %4664 ], [ %4686, %4685 ]
  br label %4689

4689:                                             ; preds = %4687, %4656
  %4690 = phi i32 [ 12, %4656 ], [ %4688, %4687 ]
  br label %4691

4691:                                             ; preds = %4689, %4648
  %4692 = phi i32 [ 10, %4648 ], [ %4690, %4689 ]
  br label %4693

4693:                                             ; preds = %4691, %4640
  %4694 = phi i32 [ 10, %4640 ], [ %4692, %4691 ]
  br label %4695

4695:                                             ; preds = %4693, %4632
  %4696 = phi i32 [ 8, %4632 ], [ %4694, %4693 ]
  br label %4697

4697:                                             ; preds = %4695, %4624
  %4698 = phi i32 [ 8, %4624 ], [ %4696, %4695 ]
  br label %4699

4699:                                             ; preds = %4697, %4616
  %4700 = phi i32 [ 6, %4616 ], [ %4698, %4697 ]
  br label %4701

4701:                                             ; preds = %4699, %4608
  %4702 = phi i32 [ 6, %4608 ], [ %4700, %4699 ]
  br label %4703

4703:                                             ; preds = %4701, %4600
  %4704 = phi i32 [ 5, %4600 ], [ %4702, %4701 ]
  br label %4705

4705:                                             ; preds = %4703, %4592
  %4706 = phi i32 [ 4, %4592 ], [ %4704, %4703 ]
  br label %4707

4707:                                             ; preds = %4705, %4584
  %4708 = phi i32 [ 3, %4584 ], [ %4706, %4705 ]
  br label %4709

4709:                                             ; preds = %4707, %4576
  %4710 = phi i32 [ 2, %4576 ], [ %4708, %4707 ]
  br label %4711

4711:                                             ; preds = %4709, %4568
  %4712 = phi i32 [ 1, %4568 ], [ %4710, %4709 ]
  br label %4713

4713:                                             ; preds = %4711, %4560
  %4714 = phi i32 [ 0, %4560 ], [ %4712, %4711 ]
  br label %4721

4715:                                             ; preds = %4546
  %4716 = load ptr, ptr %14, align 8, !tbaa !5
  %4717 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4716, i32 0, i32 3
  %4718 = load i8, ptr %4717, align 1, !tbaa !13
  %4719 = zext i8 %4718 to i32
  %4720 = ashr i32 %4719, 4
  br label %4721

4721:                                             ; preds = %4715, %4713
  %4722 = phi i32 [ %4714, %4713 ], [ %4720, %4715 ]
  %4723 = icmp eq i32 11, %4722
  br i1 %4723, label %4724, label %4725

4724:                                             ; preds = %4721
  br label %5089

4725:                                             ; preds = %4721
  %4726 = load ptr, ptr %14, align 8, !tbaa !5
  %4727 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4726, i32 0, i32 3
  %4728 = load i8, ptr %4727, align 1, !tbaa !13
  %4729 = zext i8 %4728 to i32
  %4730 = ashr i32 %4729, 4
  %4731 = icmp eq i32 0, %4730
  br i1 %4731, label %4732, label %4894

4732:                                             ; preds = %4725
  %4733 = load ptr, ptr %14, align 8, !tbaa !5
  %4734 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4733, i32 0, i32 3
  %4735 = load i8, ptr %4734, align 1, !tbaa !13
  %4736 = zext i8 %4735 to i32
  %4737 = and i32 %4736, 15
  %4738 = icmp eq i32 0, %4737
  br i1 %4738, label %4739, label %4740

4739:                                             ; preds = %4732
  br label %4892

4740:                                             ; preds = %4732
  %4741 = load ptr, ptr %14, align 8, !tbaa !5
  %4742 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4741, i32 0, i32 3
  %4743 = load i8, ptr %4742, align 1, !tbaa !13
  %4744 = zext i8 %4743 to i32
  %4745 = and i32 %4744, 15
  %4746 = icmp eq i32 1, %4745
  br i1 %4746, label %4747, label %4748

4747:                                             ; preds = %4740
  br label %4890

4748:                                             ; preds = %4740
  %4749 = load ptr, ptr %14, align 8, !tbaa !5
  %4750 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4749, i32 0, i32 3
  %4751 = load i8, ptr %4750, align 1, !tbaa !13
  %4752 = zext i8 %4751 to i32
  %4753 = and i32 %4752, 15
  %4754 = icmp eq i32 2, %4753
  br i1 %4754, label %4755, label %4756

4755:                                             ; preds = %4748
  br label %4888

4756:                                             ; preds = %4748
  %4757 = load ptr, ptr %14, align 8, !tbaa !5
  %4758 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4757, i32 0, i32 3
  %4759 = load i8, ptr %4758, align 1, !tbaa !13
  %4760 = zext i8 %4759 to i32
  %4761 = and i32 %4760, 15
  %4762 = icmp eq i32 3, %4761
  br i1 %4762, label %4763, label %4764

4763:                                             ; preds = %4756
  br label %4886

4764:                                             ; preds = %4756
  %4765 = load ptr, ptr %14, align 8, !tbaa !5
  %4766 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4765, i32 0, i32 3
  %4767 = load i8, ptr %4766, align 1, !tbaa !13
  %4768 = zext i8 %4767 to i32
  %4769 = and i32 %4768, 15
  %4770 = icmp eq i32 4, %4769
  br i1 %4770, label %4771, label %4772

4771:                                             ; preds = %4764
  br label %4884

4772:                                             ; preds = %4764
  %4773 = load ptr, ptr %14, align 8, !tbaa !5
  %4774 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4773, i32 0, i32 3
  %4775 = load i8, ptr %4774, align 1, !tbaa !13
  %4776 = zext i8 %4775 to i32
  %4777 = and i32 %4776, 15
  %4778 = icmp eq i32 5, %4777
  br i1 %4778, label %4779, label %4780

4779:                                             ; preds = %4772
  br label %4882

4780:                                             ; preds = %4772
  %4781 = load ptr, ptr %14, align 8, !tbaa !5
  %4782 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4781, i32 0, i32 3
  %4783 = load i8, ptr %4782, align 1, !tbaa !13
  %4784 = zext i8 %4783 to i32
  %4785 = and i32 %4784, 15
  %4786 = icmp eq i32 6, %4785
  br i1 %4786, label %4787, label %4788

4787:                                             ; preds = %4780
  br label %4880

4788:                                             ; preds = %4780
  %4789 = load ptr, ptr %14, align 8, !tbaa !5
  %4790 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4789, i32 0, i32 3
  %4791 = load i8, ptr %4790, align 1, !tbaa !13
  %4792 = zext i8 %4791 to i32
  %4793 = and i32 %4792, 15
  %4794 = icmp eq i32 7, %4793
  br i1 %4794, label %4795, label %4796

4795:                                             ; preds = %4788
  br label %4878

4796:                                             ; preds = %4788
  %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 !13
  %4800 = zext i8 %4799 to i32
  %4801 = and i32 %4800, 15
  %4802 = icmp eq i32 8, %4801
  br i1 %4802, label %4803, label %4804

4803:                                             ; preds = %4796
  br label %4876

4804:                                             ; preds = %4796
  %4805 = load ptr, ptr %14, align 8, !tbaa !5
  %4806 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4805, i32 0, i32 3
  %4807 = load i8, ptr %4806, align 1, !tbaa !13
  %4808 = zext i8 %4807 to i32
  %4809 = and i32 %4808, 15
  %4810 = icmp eq i32 9, %4809
  br i1 %4810, label %4811, label %4812

4811:                                             ; preds = %4804
  br label %4874

4812:                                             ; preds = %4804
  %4813 = load ptr, ptr %14, align 8, !tbaa !5
  %4814 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4813, i32 0, i32 3
  %4815 = load i8, ptr %4814, align 1, !tbaa !13
  %4816 = zext i8 %4815 to i32
  %4817 = and i32 %4816, 15
  %4818 = icmp eq i32 10, %4817
  br i1 %4818, label %4819, label %4820

4819:                                             ; preds = %4812
  br label %4872

4820:                                             ; preds = %4812
  %4821 = load ptr, ptr %14, align 8, !tbaa !5
  %4822 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4821, i32 0, i32 3
  %4823 = load i8, ptr %4822, align 1, !tbaa !13
  %4824 = zext i8 %4823 to i32
  %4825 = and i32 %4824, 15
  %4826 = icmp eq i32 11, %4825
  br i1 %4826, label %4827, label %4828

4827:                                             ; preds = %4820
  br label %4870

4828:                                             ; preds = %4820
  %4829 = load ptr, ptr %14, align 8, !tbaa !5
  %4830 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4829, i32 0, i32 3
  %4831 = load i8, ptr %4830, align 1, !tbaa !13
  %4832 = zext i8 %4831 to i32
  %4833 = and i32 %4832, 15
  %4834 = icmp eq i32 12, %4833
  br i1 %4834, label %4835, label %4836

4835:                                             ; preds = %4828
  br label %4868

4836:                                             ; preds = %4828
  %4837 = load ptr, ptr %14, align 8, !tbaa !5
  %4838 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4837, i32 0, i32 3
  %4839 = load i8, ptr %4838, align 1, !tbaa !13
  %4840 = zext i8 %4839 to i32
  %4841 = and i32 %4840, 15
  %4842 = icmp eq i32 13, %4841
  br i1 %4842, label %4843, label %4844

4843:                                             ; preds = %4836
  br label %4866

4844:                                             ; preds = %4836
  %4845 = load ptr, ptr %14, align 8, !tbaa !5
  %4846 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4845, i32 0, i32 3
  %4847 = load i8, ptr %4846, align 1, !tbaa !13
  %4848 = zext i8 %4847 to i32
  %4849 = and i32 %4848, 15
  %4850 = icmp eq i32 14, %4849
  br i1 %4850, label %4851, label %4852

4851:                                             ; preds = %4844
  br label %4864

4852:                                             ; preds = %4844
  %4853 = load ptr, ptr %14, align 8, !tbaa !5
  %4854 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4853, i32 0, i32 3
  %4855 = load i8, ptr %4854, align 1, !tbaa !13
  %4856 = zext i8 %4855 to i32
  %4857 = and i32 %4856, 15
  %4858 = icmp eq i32 15, %4857
  br i1 %4858, label %4859, label %4860

4859:                                             ; preds = %4852
  br label %4862

4860:                                             ; preds = %4852
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

4861:                                             ; No predecessors!
  br label %4862

4862:                                             ; preds = %4861, %4859
  %4863 = phi i32 [ 15, %4859 ], [ 0, %4861 ]
  br label %4864

4864:                                             ; preds = %4862, %4851
  %4865 = phi i32 [ 14, %4851 ], [ %4863, %4862 ]
  br label %4866

4866:                                             ; preds = %4864, %4843
  %4867 = phi i32 [ 12, %4843 ], [ %4865, %4864 ]
  br label %4868

4868:                                             ; preds = %4866, %4835
  %4869 = phi i32 [ 12, %4835 ], [ %4867, %4866 ]
  br label %4870

4870:                                             ; preds = %4868, %4827
  %4871 = phi i32 [ 10, %4827 ], [ %4869, %4868 ]
  br label %4872

4872:                                             ; preds = %4870, %4819
  %4873 = phi i32 [ 10, %4819 ], [ %4871, %4870 ]
  br label %4874

4874:                                             ; preds = %4872, %4811
  %4875 = phi i32 [ 8, %4811 ], [ %4873, %4872 ]
  br label %4876

4876:                                             ; preds = %4874, %4803
  %4877 = phi i32 [ 8, %4803 ], [ %4875, %4874 ]
  br label %4878

4878:                                             ; preds = %4876, %4795
  %4879 = phi i32 [ 6, %4795 ], [ %4877, %4876 ]
  br label %4880

4880:                                             ; preds = %4878, %4787
  %4881 = phi i32 [ 6, %4787 ], [ %4879, %4878 ]
  br label %4882

4882:                                             ; preds = %4880, %4779
  %4883 = phi i32 [ 5, %4779 ], [ %4881, %4880 ]
  br label %4884

4884:                                             ; preds = %4882, %4771
  %4885 = phi i32 [ 4, %4771 ], [ %4883, %4882 ]
  br label %4886

4886:                                             ; preds = %4884, %4763
  %4887 = phi i32 [ 3, %4763 ], [ %4885, %4884 ]
  br label %4888

4888:                                             ; preds = %4886, %4755
  %4889 = phi i32 [ 2, %4755 ], [ %4887, %4886 ]
  br label %4890

4890:                                             ; preds = %4888, %4747
  %4891 = phi i32 [ 1, %4747 ], [ %4889, %4888 ]
  br label %4892

4892:                                             ; preds = %4890, %4739
  %4893 = phi i32 [ 0, %4739 ], [ %4891, %4890 ]
  br label %4900

4894:                                             ; preds = %4725
  %4895 = load ptr, ptr %14, align 8, !tbaa !5
  %4896 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4895, i32 0, i32 3
  %4897 = load i8, ptr %4896, align 1, !tbaa !13
  %4898 = zext i8 %4897 to i32
  %4899 = ashr i32 %4898, 4
  br label %4900

4900:                                             ; preds = %4894, %4892
  %4901 = phi i32 [ %4893, %4892 ], [ %4899, %4894 ]
  %4902 = icmp eq i32 12, %4901
  br i1 %4902, label %4903, label %4904

4903:                                             ; preds = %4900
  br label %5087

4904:                                             ; preds = %4900
  %4905 = load ptr, ptr %14, align 8, !tbaa !5
  %4906 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4905, i32 0, i32 3
  %4907 = load i8, ptr %4906, align 1, !tbaa !13
  %4908 = zext i8 %4907 to i32
  %4909 = ashr i32 %4908, 4
  %4910 = icmp eq i32 0, %4909
  br i1 %4910, label %4911, label %5073

4911:                                             ; preds = %4904
  %4912 = load ptr, ptr %14, align 8, !tbaa !5
  %4913 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4912, i32 0, i32 3
  %4914 = load i8, ptr %4913, align 1, !tbaa !13
  %4915 = zext i8 %4914 to i32
  %4916 = and i32 %4915, 15
  %4917 = icmp eq i32 0, %4916
  br i1 %4917, label %4918, label %4919

4918:                                             ; preds = %4911
  br label %5071

4919:                                             ; preds = %4911
  %4920 = load ptr, ptr %14, align 8, !tbaa !5
  %4921 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4920, i32 0, i32 3
  %4922 = load i8, ptr %4921, align 1, !tbaa !13
  %4923 = zext i8 %4922 to i32
  %4924 = and i32 %4923, 15
  %4925 = icmp eq i32 1, %4924
  br i1 %4925, label %4926, label %4927

4926:                                             ; preds = %4919
  br label %5069

4927:                                             ; preds = %4919
  %4928 = load ptr, ptr %14, align 8, !tbaa !5
  %4929 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4928, i32 0, i32 3
  %4930 = load i8, ptr %4929, align 1, !tbaa !13
  %4931 = zext i8 %4930 to i32
  %4932 = and i32 %4931, 15
  %4933 = icmp eq i32 2, %4932
  br i1 %4933, label %4934, label %4935

4934:                                             ; preds = %4927
  br label %5067

4935:                                             ; preds = %4927
  %4936 = load ptr, ptr %14, align 8, !tbaa !5
  %4937 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4936, i32 0, i32 3
  %4938 = load i8, ptr %4937, align 1, !tbaa !13
  %4939 = zext i8 %4938 to i32
  %4940 = and i32 %4939, 15
  %4941 = icmp eq i32 3, %4940
  br i1 %4941, label %4942, label %4943

4942:                                             ; preds = %4935
  br label %5065

4943:                                             ; preds = %4935
  %4944 = load ptr, ptr %14, align 8, !tbaa !5
  %4945 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4944, i32 0, i32 3
  %4946 = load i8, ptr %4945, align 1, !tbaa !13
  %4947 = zext i8 %4946 to i32
  %4948 = and i32 %4947, 15
  %4949 = icmp eq i32 4, %4948
  br i1 %4949, label %4950, label %4951

4950:                                             ; preds = %4943
  br label %5063

4951:                                             ; preds = %4943
  %4952 = load ptr, ptr %14, align 8, !tbaa !5
  %4953 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4952, i32 0, i32 3
  %4954 = load i8, ptr %4953, align 1, !tbaa !13
  %4955 = zext i8 %4954 to i32
  %4956 = and i32 %4955, 15
  %4957 = icmp eq i32 5, %4956
  br i1 %4957, label %4958, label %4959

4958:                                             ; preds = %4951
  br label %5061

4959:                                             ; preds = %4951
  %4960 = load ptr, ptr %14, align 8, !tbaa !5
  %4961 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4960, i32 0, i32 3
  %4962 = load i8, ptr %4961, align 1, !tbaa !13
  %4963 = zext i8 %4962 to i32
  %4964 = and i32 %4963, 15
  %4965 = icmp eq i32 6, %4964
  br i1 %4965, label %4966, label %4967

4966:                                             ; preds = %4959
  br label %5059

4967:                                             ; preds = %4959
  %4968 = load ptr, ptr %14, align 8, !tbaa !5
  %4969 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4968, i32 0, i32 3
  %4970 = load i8, ptr %4969, align 1, !tbaa !13
  %4971 = zext i8 %4970 to i32
  %4972 = and i32 %4971, 15
  %4973 = icmp eq i32 7, %4972
  br i1 %4973, label %4974, label %4975

4974:                                             ; preds = %4967
  br label %5057

4975:                                             ; preds = %4967
  %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 !13
  %4979 = zext i8 %4978 to i32
  %4980 = and i32 %4979, 15
  %4981 = icmp eq i32 8, %4980
  br i1 %4981, label %4982, label %4983

4982:                                             ; preds = %4975
  br label %5055

4983:                                             ; preds = %4975
  %4984 = load ptr, ptr %14, align 8, !tbaa !5
  %4985 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4984, i32 0, i32 3
  %4986 = load i8, ptr %4985, align 1, !tbaa !13
  %4987 = zext i8 %4986 to i32
  %4988 = and i32 %4987, 15
  %4989 = icmp eq i32 9, %4988
  br i1 %4989, label %4990, label %4991

4990:                                             ; preds = %4983
  br label %5053

4991:                                             ; preds = %4983
  %4992 = load ptr, ptr %14, align 8, !tbaa !5
  %4993 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4992, i32 0, i32 3
  %4994 = load i8, ptr %4993, align 1, !tbaa !13
  %4995 = zext i8 %4994 to i32
  %4996 = and i32 %4995, 15
  %4997 = icmp eq i32 10, %4996
  br i1 %4997, label %4998, label %4999

4998:                                             ; preds = %4991
  br label %5051

4999:                                             ; preds = %4991
  %5000 = load ptr, ptr %14, align 8, !tbaa !5
  %5001 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5000, i32 0, i32 3
  %5002 = load i8, ptr %5001, align 1, !tbaa !13
  %5003 = zext i8 %5002 to i32
  %5004 = and i32 %5003, 15
  %5005 = icmp eq i32 11, %5004
  br i1 %5005, label %5006, label %5007

5006:                                             ; preds = %4999
  br label %5049

5007:                                             ; preds = %4999
  %5008 = load ptr, ptr %14, align 8, !tbaa !5
  %5009 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5008, i32 0, i32 3
  %5010 = load i8, ptr %5009, align 1, !tbaa !13
  %5011 = zext i8 %5010 to i32
  %5012 = and i32 %5011, 15
  %5013 = icmp eq i32 12, %5012
  br i1 %5013, label %5014, label %5015

5014:                                             ; preds = %5007
  br label %5047

5015:                                             ; preds = %5007
  %5016 = load ptr, ptr %14, align 8, !tbaa !5
  %5017 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5016, i32 0, i32 3
  %5018 = load i8, ptr %5017, align 1, !tbaa !13
  %5019 = zext i8 %5018 to i32
  %5020 = and i32 %5019, 15
  %5021 = icmp eq i32 13, %5020
  br i1 %5021, label %5022, label %5023

5022:                                             ; preds = %5015
  br label %5045

5023:                                             ; preds = %5015
  %5024 = load ptr, ptr %14, align 8, !tbaa !5
  %5025 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5024, i32 0, i32 3
  %5026 = load i8, ptr %5025, align 1, !tbaa !13
  %5027 = zext i8 %5026 to i32
  %5028 = and i32 %5027, 15
  %5029 = icmp eq i32 14, %5028
  br i1 %5029, label %5030, label %5031

5030:                                             ; preds = %5023
  br label %5043

5031:                                             ; preds = %5023
  %5032 = load ptr, ptr %14, align 8, !tbaa !5
  %5033 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5032, i32 0, i32 3
  %5034 = load i8, ptr %5033, align 1, !tbaa !13
  %5035 = zext i8 %5034 to i32
  %5036 = and i32 %5035, 15
  %5037 = icmp eq i32 15, %5036
  br i1 %5037, label %5038, label %5039

5038:                                             ; preds = %5031
  br label %5041

5039:                                             ; preds = %5031
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

5040:                                             ; No predecessors!
  br label %5041

5041:                                             ; preds = %5040, %5038
  %5042 = phi i32 [ 15, %5038 ], [ 0, %5040 ]
  br label %5043

5043:                                             ; preds = %5041, %5030
  %5044 = phi i32 [ 14, %5030 ], [ %5042, %5041 ]
  br label %5045

5045:                                             ; preds = %5043, %5022
  %5046 = phi i32 [ 12, %5022 ], [ %5044, %5043 ]
  br label %5047

5047:                                             ; preds = %5045, %5014
  %5048 = phi i32 [ 12, %5014 ], [ %5046, %5045 ]
  br label %5049

5049:                                             ; preds = %5047, %5006
  %5050 = phi i32 [ 10, %5006 ], [ %5048, %5047 ]
  br label %5051

5051:                                             ; preds = %5049, %4998
  %5052 = phi i32 [ 10, %4998 ], [ %5050, %5049 ]
  br label %5053

5053:                                             ; preds = %5051, %4990
  %5054 = phi i32 [ 8, %4990 ], [ %5052, %5051 ]
  br label %5055

5055:                                             ; preds = %5053, %4982
  %5056 = phi i32 [ 8, %4982 ], [ %5054, %5053 ]
  br label %5057

5057:                                             ; preds = %5055, %4974
  %5058 = phi i32 [ 6, %4974 ], [ %5056, %5055 ]
  br label %5059

5059:                                             ; preds = %5057, %4966
  %5060 = phi i32 [ 6, %4966 ], [ %5058, %5057 ]
  br label %5061

5061:                                             ; preds = %5059, %4958
  %5062 = phi i32 [ 5, %4958 ], [ %5060, %5059 ]
  br label %5063

5063:                                             ; preds = %5061, %4950
  %5064 = phi i32 [ 4, %4950 ], [ %5062, %5061 ]
  br label %5065

5065:                                             ; preds = %5063, %4942
  %5066 = phi i32 [ 3, %4942 ], [ %5064, %5063 ]
  br label %5067

5067:                                             ; preds = %5065, %4934
  %5068 = phi i32 [ 2, %4934 ], [ %5066, %5065 ]
  br label %5069

5069:                                             ; preds = %5067, %4926
  %5070 = phi i32 [ 1, %4926 ], [ %5068, %5067 ]
  br label %5071

5071:                                             ; preds = %5069, %4918
  %5072 = phi i32 [ 0, %4918 ], [ %5070, %5069 ]
  br label %5079

5073:                                             ; preds = %4904
  %5074 = load ptr, ptr %14, align 8, !tbaa !5
  %5075 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5074, i32 0, i32 3
  %5076 = load i8, ptr %5075, align 1, !tbaa !13
  %5077 = zext i8 %5076 to i32
  %5078 = ashr i32 %5077, 4
  br label %5079

5079:                                             ; preds = %5073, %5071
  %5080 = phi i32 [ %5072, %5071 ], [ %5078, %5073 ]
  %5081 = icmp eq i32 13, %5080
  br i1 %5081, label %5082, label %5083

5082:                                             ; preds = %5079
  br label %5085

5083:                                             ; preds = %5079
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

5084:                                             ; No predecessors!
  br label %5085

5085:                                             ; preds = %5084, %5082
  %5086 = phi i32 [ 1, %5082 ], [ 0, %5084 ]
  br label %5087

5087:                                             ; preds = %5085, %4903
  %5088 = phi i32 [ 1, %4903 ], [ %5086, %5085 ]
  br label %5089

5089:                                             ; preds = %5087, %4724
  %5090 = phi i32 [ 2, %4724 ], [ %5088, %5087 ]
  br label %5091

5091:                                             ; preds = %5089, %4545
  %5092 = phi i32 [ 2, %4545 ], [ %5090, %5089 ]
  br label %5093

5093:                                             ; preds = %5091, %4366
  %5094 = phi i32 [ 4, %4366 ], [ %5092, %5091 ]
  br label %5095

5095:                                             ; preds = %5093, %4187
  %5096 = phi i32 [ 4, %4187 ], [ %5094, %5093 ]
  br label %5097

5097:                                             ; preds = %5095, %4008
  %5098 = phi i32 [ 8, %4008 ], [ %5096, %5095 ]
  br label %5099

5099:                                             ; preds = %5097, %3829
  %5100 = phi i32 [ 8, %3829 ], [ %5098, %5097 ]
  br label %5101

5101:                                             ; preds = %5099, %3650
  %5102 = phi i32 [ 1, %3650 ], [ %5100, %5099 ]
  br label %5103

5103:                                             ; preds = %5101, %3471
  %5104 = phi i32 [ 1, %3471 ], [ %5102, %5101 ]
  br label %5105

5105:                                             ; preds = %5103, %3292
  %5106 = phi i32 [ 2, %3292 ], [ %5104, %5103 ]
  br label %5107

5107:                                             ; preds = %5105, %3113
  %5108 = phi i32 [ 2, %3113 ], [ %5106, %5105 ]
  br label %5109

5109:                                             ; preds = %5107, %2934
  %5110 = phi i32 [ 4, %2934 ], [ %5108, %5107 ]
  br label %5111

5111:                                             ; preds = %5109, %2755
  %5112 = phi i32 [ 8, %2755 ], [ %5110, %5109 ]
  %5113 = load i32, ptr %15, align 4, !tbaa !9
  %5114 = mul i32 %5112, %5113
  %5115 = load i32, ptr %17, align 4, !tbaa !9
  %5116 = mul i32 %5114, %5115
  br label %7660

5117:                                             ; preds = %2572
  %5118 = load ptr, ptr %14, align 8, !tbaa !5
  %5119 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5118, i32 0, i32 3
  %5120 = load i8, ptr %5119, align 1, !tbaa !13
  %5121 = zext i8 %5120 to i32
  %5122 = ashr i32 %5121, 4
  %5123 = icmp eq i32 0, %5122
  br i1 %5123, label %5124, label %5286

5124:                                             ; preds = %5117
  %5125 = load ptr, ptr %14, align 8, !tbaa !5
  %5126 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5125, i32 0, i32 3
  %5127 = load i8, ptr %5126, align 1, !tbaa !13
  %5128 = zext i8 %5127 to i32
  %5129 = and i32 %5128, 15
  %5130 = icmp eq i32 0, %5129
  br i1 %5130, label %5131, label %5132

5131:                                             ; preds = %5124
  br label %5284

5132:                                             ; preds = %5124
  %5133 = load ptr, ptr %14, align 8, !tbaa !5
  %5134 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5133, i32 0, i32 3
  %5135 = load i8, ptr %5134, align 1, !tbaa !13
  %5136 = zext i8 %5135 to i32
  %5137 = and i32 %5136, 15
  %5138 = icmp eq i32 1, %5137
  br i1 %5138, label %5139, label %5140

5139:                                             ; preds = %5132
  br label %5282

5140:                                             ; preds = %5132
  %5141 = load ptr, ptr %14, align 8, !tbaa !5
  %5142 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5141, i32 0, i32 3
  %5143 = load i8, ptr %5142, align 1, !tbaa !13
  %5144 = zext i8 %5143 to i32
  %5145 = and i32 %5144, 15
  %5146 = icmp eq i32 2, %5145
  br i1 %5146, label %5147, label %5148

5147:                                             ; preds = %5140
  br label %5280

5148:                                             ; preds = %5140
  %5149 = load ptr, ptr %14, align 8, !tbaa !5
  %5150 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5149, i32 0, i32 3
  %5151 = load i8, ptr %5150, align 1, !tbaa !13
  %5152 = zext i8 %5151 to i32
  %5153 = and i32 %5152, 15
  %5154 = icmp eq i32 3, %5153
  br i1 %5154, label %5155, label %5156

5155:                                             ; preds = %5148
  br label %5278

5156:                                             ; preds = %5148
  %5157 = load ptr, ptr %14, align 8, !tbaa !5
  %5158 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5157, i32 0, i32 3
  %5159 = load i8, ptr %5158, align 1, !tbaa !13
  %5160 = zext i8 %5159 to i32
  %5161 = and i32 %5160, 15
  %5162 = icmp eq i32 4, %5161
  br i1 %5162, label %5163, label %5164

5163:                                             ; preds = %5156
  br label %5276

5164:                                             ; preds = %5156
  %5165 = load ptr, ptr %14, align 8, !tbaa !5
  %5166 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5165, i32 0, i32 3
  %5167 = load i8, ptr %5166, align 1, !tbaa !13
  %5168 = zext i8 %5167 to i32
  %5169 = and i32 %5168, 15
  %5170 = icmp eq i32 5, %5169
  br i1 %5170, label %5171, label %5172

5171:                                             ; preds = %5164
  br label %5274

5172:                                             ; preds = %5164
  %5173 = load ptr, ptr %14, align 8, !tbaa !5
  %5174 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5173, i32 0, i32 3
  %5175 = load i8, ptr %5174, align 1, !tbaa !13
  %5176 = zext i8 %5175 to i32
  %5177 = and i32 %5176, 15
  %5178 = icmp eq i32 6, %5177
  br i1 %5178, label %5179, label %5180

5179:                                             ; preds = %5172
  br label %5272

5180:                                             ; preds = %5172
  %5181 = load ptr, ptr %14, align 8, !tbaa !5
  %5182 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5181, i32 0, i32 3
  %5183 = load i8, ptr %5182, align 1, !tbaa !13
  %5184 = zext i8 %5183 to i32
  %5185 = and i32 %5184, 15
  %5186 = icmp eq i32 7, %5185
  br i1 %5186, label %5187, label %5188

5187:                                             ; preds = %5180
  br label %5270

5188:                                             ; preds = %5180
  %5189 = load ptr, ptr %14, align 8, !tbaa !5
  %5190 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5189, i32 0, i32 3
  %5191 = load i8, ptr %5190, align 1, !tbaa !13
  %5192 = zext i8 %5191 to i32
  %5193 = and i32 %5192, 15
  %5194 = icmp eq i32 8, %5193
  br i1 %5194, label %5195, label %5196

5195:                                             ; preds = %5188
  br label %5268

5196:                                             ; preds = %5188
  %5197 = load ptr, ptr %14, align 8, !tbaa !5
  %5198 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5197, i32 0, i32 3
  %5199 = load i8, ptr %5198, align 1, !tbaa !13
  %5200 = zext i8 %5199 to i32
  %5201 = and i32 %5200, 15
  %5202 = icmp eq i32 9, %5201
  br i1 %5202, label %5203, label %5204

5203:                                             ; preds = %5196
  br label %5266

5204:                                             ; preds = %5196
  %5205 = load ptr, ptr %14, align 8, !tbaa !5
  %5206 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5205, i32 0, i32 3
  %5207 = load i8, ptr %5206, align 1, !tbaa !13
  %5208 = zext i8 %5207 to i32
  %5209 = and i32 %5208, 15
  %5210 = icmp eq i32 10, %5209
  br i1 %5210, label %5211, label %5212

5211:                                             ; preds = %5204
  br label %5264

5212:                                             ; preds = %5204
  %5213 = load ptr, ptr %14, align 8, !tbaa !5
  %5214 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5213, i32 0, i32 3
  %5215 = load i8, ptr %5214, align 1, !tbaa !13
  %5216 = zext i8 %5215 to i32
  %5217 = and i32 %5216, 15
  %5218 = icmp eq i32 11, %5217
  br i1 %5218, label %5219, label %5220

5219:                                             ; preds = %5212
  br label %5262

5220:                                             ; preds = %5212
  %5221 = load ptr, ptr %14, align 8, !tbaa !5
  %5222 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5221, i32 0, i32 3
  %5223 = load i8, ptr %5222, align 1, !tbaa !13
  %5224 = zext i8 %5223 to i32
  %5225 = and i32 %5224, 15
  %5226 = icmp eq i32 12, %5225
  br i1 %5226, label %5227, label %5228

5227:                                             ; preds = %5220
  br label %5260

5228:                                             ; preds = %5220
  %5229 = load ptr, ptr %14, align 8, !tbaa !5
  %5230 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5229, i32 0, i32 3
  %5231 = load i8, ptr %5230, align 1, !tbaa !13
  %5232 = zext i8 %5231 to i32
  %5233 = and i32 %5232, 15
  %5234 = icmp eq i32 13, %5233
  br i1 %5234, label %5235, label %5236

5235:                                             ; preds = %5228
  br label %5258

5236:                                             ; preds = %5228
  %5237 = load ptr, ptr %14, align 8, !tbaa !5
  %5238 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5237, i32 0, i32 3
  %5239 = load i8, ptr %5238, align 1, !tbaa !13
  %5240 = zext i8 %5239 to i32
  %5241 = and i32 %5240, 15
  %5242 = icmp eq i32 14, %5241
  br i1 %5242, label %5243, label %5244

5243:                                             ; preds = %5236
  br label %5256

5244:                                             ; preds = %5236
  %5245 = load ptr, ptr %14, align 8, !tbaa !5
  %5246 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5245, i32 0, i32 3
  %5247 = load i8, ptr %5246, align 1, !tbaa !13
  %5248 = zext i8 %5247 to i32
  %5249 = and i32 %5248, 15
  %5250 = icmp eq i32 15, %5249
  br i1 %5250, label %5251, label %5252

5251:                                             ; preds = %5244
  br label %5254

5252:                                             ; preds = %5244
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

5253:                                             ; No predecessors!
  br label %5254

5254:                                             ; preds = %5253, %5251
  %5255 = phi i32 [ 15, %5251 ], [ 0, %5253 ]
  br label %5256

5256:                                             ; preds = %5254, %5243
  %5257 = phi i32 [ 14, %5243 ], [ %5255, %5254 ]
  br label %5258

5258:                                             ; preds = %5256, %5235
  %5259 = phi i32 [ 12, %5235 ], [ %5257, %5256 ]
  br label %5260

5260:                                             ; preds = %5258, %5227
  %5261 = phi i32 [ 12, %5227 ], [ %5259, %5258 ]
  br label %5262

5262:                                             ; preds = %5260, %5219
  %5263 = phi i32 [ 10, %5219 ], [ %5261, %5260 ]
  br label %5264

5264:                                             ; preds = %5262, %5211
  %5265 = phi i32 [ 10, %5211 ], [ %5263, %5262 ]
  br label %5266

5266:                                             ; preds = %5264, %5203
  %5267 = phi i32 [ 8, %5203 ], [ %5265, %5264 ]
  br label %5268

5268:                                             ; preds = %5266, %5195
  %5269 = phi i32 [ 8, %5195 ], [ %5267, %5266 ]
  br label %5270

5270:                                             ; preds = %5268, %5187
  %5271 = phi i32 [ 6, %5187 ], [ %5269, %5268 ]
  br label %5272

5272:                                             ; preds = %5270, %5179
  %5273 = phi i32 [ 6, %5179 ], [ %5271, %5270 ]
  br label %5274

5274:                                             ; preds = %5272, %5171
  %5275 = phi i32 [ 5, %5171 ], [ %5273, %5272 ]
  br label %5276

5276:                                             ; preds = %5274, %5163
  %5277 = phi i32 [ 4, %5163 ], [ %5275, %5274 ]
  br label %5278

5278:                                             ; preds = %5276, %5155
  %5279 = phi i32 [ 3, %5155 ], [ %5277, %5276 ]
  br label %5280

5280:                                             ; preds = %5278, %5147
  %5281 = phi i32 [ 2, %5147 ], [ %5279, %5278 ]
  br label %5282

5282:                                             ; preds = %5280, %5139
  %5283 = phi i32 [ 1, %5139 ], [ %5281, %5280 ]
  br label %5284

5284:                                             ; preds = %5282, %5131
  %5285 = phi i32 [ 0, %5131 ], [ %5283, %5282 ]
  br label %5292

5286:                                             ; preds = %5117
  %5287 = load ptr, ptr %14, align 8, !tbaa !5
  %5288 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5287, i32 0, i32 3
  %5289 = load i8, ptr %5288, align 1, !tbaa !13
  %5290 = zext i8 %5289 to i32
  %5291 = ashr i32 %5290, 4
  br label %5292

5292:                                             ; preds = %5286, %5284
  %5293 = phi i32 [ %5285, %5284 ], [ %5291, %5286 ]
  %5294 = icmp eq i32 0, %5293
  br i1 %5294, label %5295, label %5296

5295:                                             ; preds = %5292
  br label %7651

5296:                                             ; preds = %5292
  %5297 = load ptr, ptr %14, align 8, !tbaa !5
  %5298 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5297, i32 0, i32 3
  %5299 = load i8, ptr %5298, align 1, !tbaa !13
  %5300 = zext i8 %5299 to i32
  %5301 = ashr i32 %5300, 4
  %5302 = icmp eq i32 0, %5301
  br i1 %5302, label %5303, label %5465

5303:                                             ; preds = %5296
  %5304 = load ptr, ptr %14, align 8, !tbaa !5
  %5305 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5304, i32 0, i32 3
  %5306 = load i8, ptr %5305, align 1, !tbaa !13
  %5307 = zext i8 %5306 to i32
  %5308 = and i32 %5307, 15
  %5309 = icmp eq i32 0, %5308
  br i1 %5309, label %5310, label %5311

5310:                                             ; preds = %5303
  br label %5463

5311:                                             ; preds = %5303
  %5312 = load ptr, ptr %14, align 8, !tbaa !5
  %5313 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5312, i32 0, i32 3
  %5314 = load i8, ptr %5313, align 1, !tbaa !13
  %5315 = zext i8 %5314 to i32
  %5316 = and i32 %5315, 15
  %5317 = icmp eq i32 1, %5316
  br i1 %5317, label %5318, label %5319

5318:                                             ; preds = %5311
  br label %5461

5319:                                             ; preds = %5311
  %5320 = load ptr, ptr %14, align 8, !tbaa !5
  %5321 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5320, i32 0, i32 3
  %5322 = load i8, ptr %5321, align 1, !tbaa !13
  %5323 = zext i8 %5322 to i32
  %5324 = and i32 %5323, 15
  %5325 = icmp eq i32 2, %5324
  br i1 %5325, label %5326, label %5327

5326:                                             ; preds = %5319
  br label %5459

5327:                                             ; preds = %5319
  %5328 = load ptr, ptr %14, align 8, !tbaa !5
  %5329 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5328, i32 0, i32 3
  %5330 = load i8, ptr %5329, align 1, !tbaa !13
  %5331 = zext i8 %5330 to i32
  %5332 = and i32 %5331, 15
  %5333 = icmp eq i32 3, %5332
  br i1 %5333, label %5334, label %5335

5334:                                             ; preds = %5327
  br label %5457

5335:                                             ; preds = %5327
  %5336 = load ptr, ptr %14, align 8, !tbaa !5
  %5337 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5336, i32 0, i32 3
  %5338 = load i8, ptr %5337, align 1, !tbaa !13
  %5339 = zext i8 %5338 to i32
  %5340 = and i32 %5339, 15
  %5341 = icmp eq i32 4, %5340
  br i1 %5341, label %5342, label %5343

5342:                                             ; preds = %5335
  br label %5455

5343:                                             ; preds = %5335
  %5344 = load ptr, ptr %14, align 8, !tbaa !5
  %5345 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5344, i32 0, i32 3
  %5346 = load i8, ptr %5345, align 1, !tbaa !13
  %5347 = zext i8 %5346 to i32
  %5348 = and i32 %5347, 15
  %5349 = icmp eq i32 5, %5348
  br i1 %5349, label %5350, label %5351

5350:                                             ; preds = %5343
  br label %5453

5351:                                             ; preds = %5343
  %5352 = load ptr, ptr %14, align 8, !tbaa !5
  %5353 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5352, i32 0, i32 3
  %5354 = load i8, ptr %5353, align 1, !tbaa !13
  %5355 = zext i8 %5354 to i32
  %5356 = and i32 %5355, 15
  %5357 = icmp eq i32 6, %5356
  br i1 %5357, label %5358, label %5359

5358:                                             ; preds = %5351
  br label %5451

5359:                                             ; preds = %5351
  %5360 = load ptr, ptr %14, align 8, !tbaa !5
  %5361 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5360, i32 0, i32 3
  %5362 = load i8, ptr %5361, align 1, !tbaa !13
  %5363 = zext i8 %5362 to i32
  %5364 = and i32 %5363, 15
  %5365 = icmp eq i32 7, %5364
  br i1 %5365, label %5366, label %5367

5366:                                             ; preds = %5359
  br label %5449

5367:                                             ; preds = %5359
  %5368 = load ptr, ptr %14, align 8, !tbaa !5
  %5369 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5368, i32 0, i32 3
  %5370 = load i8, ptr %5369, align 1, !tbaa !13
  %5371 = zext i8 %5370 to i32
  %5372 = and i32 %5371, 15
  %5373 = icmp eq i32 8, %5372
  br i1 %5373, label %5374, label %5375

5374:                                             ; preds = %5367
  br label %5447

5375:                                             ; preds = %5367
  %5376 = load ptr, ptr %14, align 8, !tbaa !5
  %5377 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5376, i32 0, i32 3
  %5378 = load i8, ptr %5377, align 1, !tbaa !13
  %5379 = zext i8 %5378 to i32
  %5380 = and i32 %5379, 15
  %5381 = icmp eq i32 9, %5380
  br i1 %5381, label %5382, label %5383

5382:                                             ; preds = %5375
  br label %5445

5383:                                             ; preds = %5375
  %5384 = load ptr, ptr %14, align 8, !tbaa !5
  %5385 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5384, i32 0, i32 3
  %5386 = load i8, ptr %5385, align 1, !tbaa !13
  %5387 = zext i8 %5386 to i32
  %5388 = and i32 %5387, 15
  %5389 = icmp eq i32 10, %5388
  br i1 %5389, label %5390, label %5391

5390:                                             ; preds = %5383
  br label %5443

5391:                                             ; preds = %5383
  %5392 = load ptr, ptr %14, align 8, !tbaa !5
  %5393 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5392, i32 0, i32 3
  %5394 = load i8, ptr %5393, align 1, !tbaa !13
  %5395 = zext i8 %5394 to i32
  %5396 = and i32 %5395, 15
  %5397 = icmp eq i32 11, %5396
  br i1 %5397, label %5398, label %5399

5398:                                             ; preds = %5391
  br label %5441

5399:                                             ; preds = %5391
  %5400 = load ptr, ptr %14, align 8, !tbaa !5
  %5401 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5400, i32 0, i32 3
  %5402 = load i8, ptr %5401, align 1, !tbaa !13
  %5403 = zext i8 %5402 to i32
  %5404 = and i32 %5403, 15
  %5405 = icmp eq i32 12, %5404
  br i1 %5405, label %5406, label %5407

5406:                                             ; preds = %5399
  br label %5439

5407:                                             ; preds = %5399
  %5408 = load ptr, ptr %14, align 8, !tbaa !5
  %5409 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5408, i32 0, i32 3
  %5410 = load i8, ptr %5409, align 1, !tbaa !13
  %5411 = zext i8 %5410 to i32
  %5412 = and i32 %5411, 15
  %5413 = icmp eq i32 13, %5412
  br i1 %5413, label %5414, label %5415

5414:                                             ; preds = %5407
  br label %5437

5415:                                             ; preds = %5407
  %5416 = load ptr, ptr %14, align 8, !tbaa !5
  %5417 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5416, i32 0, i32 3
  %5418 = load i8, ptr %5417, align 1, !tbaa !13
  %5419 = zext i8 %5418 to i32
  %5420 = and i32 %5419, 15
  %5421 = icmp eq i32 14, %5420
  br i1 %5421, label %5422, label %5423

5422:                                             ; preds = %5415
  br label %5435

5423:                                             ; preds = %5415
  %5424 = load ptr, ptr %14, align 8, !tbaa !5
  %5425 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5424, i32 0, i32 3
  %5426 = load i8, ptr %5425, align 1, !tbaa !13
  %5427 = zext i8 %5426 to i32
  %5428 = and i32 %5427, 15
  %5429 = icmp eq i32 15, %5428
  br i1 %5429, label %5430, label %5431

5430:                                             ; preds = %5423
  br label %5433

5431:                                             ; preds = %5423
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

5432:                                             ; No predecessors!
  br label %5433

5433:                                             ; preds = %5432, %5430
  %5434 = phi i32 [ 15, %5430 ], [ 0, %5432 ]
  br label %5435

5435:                                             ; preds = %5433, %5422
  %5436 = phi i32 [ 14, %5422 ], [ %5434, %5433 ]
  br label %5437

5437:                                             ; preds = %5435, %5414
  %5438 = phi i32 [ 12, %5414 ], [ %5436, %5435 ]
  br label %5439

5439:                                             ; preds = %5437, %5406
  %5440 = phi i32 [ 12, %5406 ], [ %5438, %5437 ]
  br label %5441

5441:                                             ; preds = %5439, %5398
  %5442 = phi i32 [ 10, %5398 ], [ %5440, %5439 ]
  br label %5443

5443:                                             ; preds = %5441, %5390
  %5444 = phi i32 [ 10, %5390 ], [ %5442, %5441 ]
  br label %5445

5445:                                             ; preds = %5443, %5382
  %5446 = phi i32 [ 8, %5382 ], [ %5444, %5443 ]
  br label %5447

5447:                                             ; preds = %5445, %5374
  %5448 = phi i32 [ 8, %5374 ], [ %5446, %5445 ]
  br label %5449

5449:                                             ; preds = %5447, %5366
  %5450 = phi i32 [ 6, %5366 ], [ %5448, %5447 ]
  br label %5451

5451:                                             ; preds = %5449, %5358
  %5452 = phi i32 [ 6, %5358 ], [ %5450, %5449 ]
  br label %5453

5453:                                             ; preds = %5451, %5350
  %5454 = phi i32 [ 5, %5350 ], [ %5452, %5451 ]
  br label %5455

5455:                                             ; preds = %5453, %5342
  %5456 = phi i32 [ 4, %5342 ], [ %5454, %5453 ]
  br label %5457

5457:                                             ; preds = %5455, %5334
  %5458 = phi i32 [ 3, %5334 ], [ %5456, %5455 ]
  br label %5459

5459:                                             ; preds = %5457, %5326
  %5460 = phi i32 [ 2, %5326 ], [ %5458, %5457 ]
  br label %5461

5461:                                             ; preds = %5459, %5318
  %5462 = phi i32 [ 1, %5318 ], [ %5460, %5459 ]
  br label %5463

5463:                                             ; preds = %5461, %5310
  %5464 = phi i32 [ 0, %5310 ], [ %5462, %5461 ]
  br label %5471

5465:                                             ; preds = %5296
  %5466 = load ptr, ptr %14, align 8, !tbaa !5
  %5467 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5466, i32 0, i32 3
  %5468 = load i8, ptr %5467, align 1, !tbaa !13
  %5469 = zext i8 %5468 to i32
  %5470 = ashr i32 %5469, 4
  br label %5471

5471:                                             ; preds = %5465, %5463
  %5472 = phi i32 [ %5464, %5463 ], [ %5470, %5465 ]
  %5473 = icmp eq i32 1, %5472
  br i1 %5473, label %5474, label %5475

5474:                                             ; preds = %5471
  br label %7649

5475:                                             ; preds = %5471
  %5476 = load ptr, ptr %14, align 8, !tbaa !5
  %5477 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5476, i32 0, i32 3
  %5478 = load i8, ptr %5477, align 1, !tbaa !13
  %5479 = zext i8 %5478 to i32
  %5480 = ashr i32 %5479, 4
  %5481 = icmp eq i32 0, %5480
  br i1 %5481, label %5482, label %5644

5482:                                             ; preds = %5475
  %5483 = load ptr, ptr %14, align 8, !tbaa !5
  %5484 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5483, i32 0, i32 3
  %5485 = load i8, ptr %5484, align 1, !tbaa !13
  %5486 = zext i8 %5485 to i32
  %5487 = and i32 %5486, 15
  %5488 = icmp eq i32 0, %5487
  br i1 %5488, label %5489, label %5490

5489:                                             ; preds = %5482
  br label %5642

5490:                                             ; preds = %5482
  %5491 = load ptr, ptr %14, align 8, !tbaa !5
  %5492 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5491, i32 0, i32 3
  %5493 = load i8, ptr %5492, align 1, !tbaa !13
  %5494 = zext i8 %5493 to i32
  %5495 = and i32 %5494, 15
  %5496 = icmp eq i32 1, %5495
  br i1 %5496, label %5497, label %5498

5497:                                             ; preds = %5490
  br label %5640

5498:                                             ; preds = %5490
  %5499 = load ptr, ptr %14, align 8, !tbaa !5
  %5500 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5499, i32 0, i32 3
  %5501 = load i8, ptr %5500, align 1, !tbaa !13
  %5502 = zext i8 %5501 to i32
  %5503 = and i32 %5502, 15
  %5504 = icmp eq i32 2, %5503
  br i1 %5504, label %5505, label %5506

5505:                                             ; preds = %5498
  br label %5638

5506:                                             ; preds = %5498
  %5507 = load ptr, ptr %14, align 8, !tbaa !5
  %5508 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5507, i32 0, i32 3
  %5509 = load i8, ptr %5508, align 1, !tbaa !13
  %5510 = zext i8 %5509 to i32
  %5511 = and i32 %5510, 15
  %5512 = icmp eq i32 3, %5511
  br i1 %5512, label %5513, label %5514

5513:                                             ; preds = %5506
  br label %5636

5514:                                             ; preds = %5506
  %5515 = load ptr, ptr %14, align 8, !tbaa !5
  %5516 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5515, i32 0, i32 3
  %5517 = load i8, ptr %5516, align 1, !tbaa !13
  %5518 = zext i8 %5517 to i32
  %5519 = and i32 %5518, 15
  %5520 = icmp eq i32 4, %5519
  br i1 %5520, label %5521, label %5522

5521:                                             ; preds = %5514
  br label %5634

5522:                                             ; preds = %5514
  %5523 = load ptr, ptr %14, align 8, !tbaa !5
  %5524 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5523, i32 0, i32 3
  %5525 = load i8, ptr %5524, align 1, !tbaa !13
  %5526 = zext i8 %5525 to i32
  %5527 = and i32 %5526, 15
  %5528 = icmp eq i32 5, %5527
  br i1 %5528, label %5529, label %5530

5529:                                             ; preds = %5522
  br label %5632

5530:                                             ; preds = %5522
  %5531 = load ptr, ptr %14, align 8, !tbaa !5
  %5532 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5531, i32 0, i32 3
  %5533 = load i8, ptr %5532, align 1, !tbaa !13
  %5534 = zext i8 %5533 to i32
  %5535 = and i32 %5534, 15
  %5536 = icmp eq i32 6, %5535
  br i1 %5536, label %5537, label %5538

5537:                                             ; preds = %5530
  br label %5630

5538:                                             ; preds = %5530
  %5539 = load ptr, ptr %14, align 8, !tbaa !5
  %5540 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5539, i32 0, i32 3
  %5541 = load i8, ptr %5540, align 1, !tbaa !13
  %5542 = zext i8 %5541 to i32
  %5543 = and i32 %5542, 15
  %5544 = icmp eq i32 7, %5543
  br i1 %5544, label %5545, label %5546

5545:                                             ; preds = %5538
  br label %5628

5546:                                             ; preds = %5538
  %5547 = load ptr, ptr %14, align 8, !tbaa !5
  %5548 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5547, i32 0, i32 3
  %5549 = load i8, ptr %5548, align 1, !tbaa !13
  %5550 = zext i8 %5549 to i32
  %5551 = and i32 %5550, 15
  %5552 = icmp eq i32 8, %5551
  br i1 %5552, label %5553, label %5554

5553:                                             ; preds = %5546
  br label %5626

5554:                                             ; preds = %5546
  %5555 = load ptr, ptr %14, align 8, !tbaa !5
  %5556 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5555, i32 0, i32 3
  %5557 = load i8, ptr %5556, align 1, !tbaa !13
  %5558 = zext i8 %5557 to i32
  %5559 = and i32 %5558, 15
  %5560 = icmp eq i32 9, %5559
  br i1 %5560, label %5561, label %5562

5561:                                             ; preds = %5554
  br label %5624

5562:                                             ; preds = %5554
  %5563 = load ptr, ptr %14, align 8, !tbaa !5
  %5564 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5563, i32 0, i32 3
  %5565 = load i8, ptr %5564, align 1, !tbaa !13
  %5566 = zext i8 %5565 to i32
  %5567 = and i32 %5566, 15
  %5568 = icmp eq i32 10, %5567
  br i1 %5568, label %5569, label %5570

5569:                                             ; preds = %5562
  br label %5622

5570:                                             ; preds = %5562
  %5571 = load ptr, ptr %14, align 8, !tbaa !5
  %5572 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5571, i32 0, i32 3
  %5573 = load i8, ptr %5572, align 1, !tbaa !13
  %5574 = zext i8 %5573 to i32
  %5575 = and i32 %5574, 15
  %5576 = icmp eq i32 11, %5575
  br i1 %5576, label %5577, label %5578

5577:                                             ; preds = %5570
  br label %5620

5578:                                             ; preds = %5570
  %5579 = load ptr, ptr %14, align 8, !tbaa !5
  %5580 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5579, i32 0, i32 3
  %5581 = load i8, ptr %5580, align 1, !tbaa !13
  %5582 = zext i8 %5581 to i32
  %5583 = and i32 %5582, 15
  %5584 = icmp eq i32 12, %5583
  br i1 %5584, label %5585, label %5586

5585:                                             ; preds = %5578
  br label %5618

5586:                                             ; preds = %5578
  %5587 = load ptr, ptr %14, align 8, !tbaa !5
  %5588 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5587, i32 0, i32 3
  %5589 = load i8, ptr %5588, align 1, !tbaa !13
  %5590 = zext i8 %5589 to i32
  %5591 = and i32 %5590, 15
  %5592 = icmp eq i32 13, %5591
  br i1 %5592, label %5593, label %5594

5593:                                             ; preds = %5586
  br label %5616

5594:                                             ; preds = %5586
  %5595 = load ptr, ptr %14, align 8, !tbaa !5
  %5596 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5595, i32 0, i32 3
  %5597 = load i8, ptr %5596, align 1, !tbaa !13
  %5598 = zext i8 %5597 to i32
  %5599 = and i32 %5598, 15
  %5600 = icmp eq i32 14, %5599
  br i1 %5600, label %5601, label %5602

5601:                                             ; preds = %5594
  br label %5614

5602:                                             ; preds = %5594
  %5603 = load ptr, ptr %14, align 8, !tbaa !5
  %5604 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5603, i32 0, i32 3
  %5605 = load i8, ptr %5604, align 1, !tbaa !13
  %5606 = zext i8 %5605 to i32
  %5607 = and i32 %5606, 15
  %5608 = icmp eq i32 15, %5607
  br i1 %5608, label %5609, label %5610

5609:                                             ; preds = %5602
  br label %5612

5610:                                             ; preds = %5602
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

5611:                                             ; No predecessors!
  br label %5612

5612:                                             ; preds = %5611, %5609
  %5613 = phi i32 [ 15, %5609 ], [ 0, %5611 ]
  br label %5614

5614:                                             ; preds = %5612, %5601
  %5615 = phi i32 [ 14, %5601 ], [ %5613, %5612 ]
  br label %5616

5616:                                             ; preds = %5614, %5593
  %5617 = phi i32 [ 12, %5593 ], [ %5615, %5614 ]
  br label %5618

5618:                                             ; preds = %5616, %5585
  %5619 = phi i32 [ 12, %5585 ], [ %5617, %5616 ]
  br label %5620

5620:                                             ; preds = %5618, %5577
  %5621 = phi i32 [ 10, %5577 ], [ %5619, %5618 ]
  br label %5622

5622:                                             ; preds = %5620, %5569
  %5623 = phi i32 [ 10, %5569 ], [ %5621, %5620 ]
  br label %5624

5624:                                             ; preds = %5622, %5561
  %5625 = phi i32 [ 8, %5561 ], [ %5623, %5622 ]
  br label %5626

5626:                                             ; preds = %5624, %5553
  %5627 = phi i32 [ 8, %5553 ], [ %5625, %5624 ]
  br label %5628

5628:                                             ; preds = %5626, %5545
  %5629 = phi i32 [ 6, %5545 ], [ %5627, %5626 ]
  br label %5630

5630:                                             ; preds = %5628, %5537
  %5631 = phi i32 [ 6, %5537 ], [ %5629, %5628 ]
  br label %5632

5632:                                             ; preds = %5630, %5529
  %5633 = phi i32 [ 5, %5529 ], [ %5631, %5630 ]
  br label %5634

5634:                                             ; preds = %5632, %5521
  %5635 = phi i32 [ 4, %5521 ], [ %5633, %5632 ]
  br label %5636

5636:                                             ; preds = %5634, %5513
  %5637 = phi i32 [ 3, %5513 ], [ %5635, %5634 ]
  br label %5638

5638:                                             ; preds = %5636, %5505
  %5639 = phi i32 [ 2, %5505 ], [ %5637, %5636 ]
  br label %5640

5640:                                             ; preds = %5638, %5497
  %5641 = phi i32 [ 1, %5497 ], [ %5639, %5638 ]
  br label %5642

5642:                                             ; preds = %5640, %5489
  %5643 = phi i32 [ 0, %5489 ], [ %5641, %5640 ]
  br label %5650

5644:                                             ; preds = %5475
  %5645 = load ptr, ptr %14, align 8, !tbaa !5
  %5646 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5645, i32 0, i32 3
  %5647 = load i8, ptr %5646, align 1, !tbaa !13
  %5648 = zext i8 %5647 to i32
  %5649 = ashr i32 %5648, 4
  br label %5650

5650:                                             ; preds = %5644, %5642
  %5651 = phi i32 [ %5643, %5642 ], [ %5649, %5644 ]
  %5652 = icmp eq i32 2, %5651
  br i1 %5652, label %5653, label %5654

5653:                                             ; preds = %5650
  br label %7647

5654:                                             ; preds = %5650
  %5655 = load ptr, ptr %14, align 8, !tbaa !5
  %5656 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5655, i32 0, i32 3
  %5657 = load i8, ptr %5656, align 1, !tbaa !13
  %5658 = zext i8 %5657 to i32
  %5659 = ashr i32 %5658, 4
  %5660 = icmp eq i32 0, %5659
  br i1 %5660, label %5661, label %5823

5661:                                             ; preds = %5654
  %5662 = load ptr, ptr %14, align 8, !tbaa !5
  %5663 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5662, i32 0, i32 3
  %5664 = load i8, ptr %5663, align 1, !tbaa !13
  %5665 = zext i8 %5664 to i32
  %5666 = and i32 %5665, 15
  %5667 = icmp eq i32 0, %5666
  br i1 %5667, label %5668, label %5669

5668:                                             ; preds = %5661
  br label %5821

5669:                                             ; preds = %5661
  %5670 = load ptr, ptr %14, align 8, !tbaa !5
  %5671 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5670, i32 0, i32 3
  %5672 = load i8, ptr %5671, align 1, !tbaa !13
  %5673 = zext i8 %5672 to i32
  %5674 = and i32 %5673, 15
  %5675 = icmp eq i32 1, %5674
  br i1 %5675, label %5676, label %5677

5676:                                             ; preds = %5669
  br label %5819

5677:                                             ; preds = %5669
  %5678 = load ptr, ptr %14, align 8, !tbaa !5
  %5679 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5678, i32 0, i32 3
  %5680 = load i8, ptr %5679, align 1, !tbaa !13
  %5681 = zext i8 %5680 to i32
  %5682 = and i32 %5681, 15
  %5683 = icmp eq i32 2, %5682
  br i1 %5683, label %5684, label %5685

5684:                                             ; preds = %5677
  br label %5817

5685:                                             ; preds = %5677
  %5686 = load ptr, ptr %14, align 8, !tbaa !5
  %5687 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5686, i32 0, i32 3
  %5688 = load i8, ptr %5687, align 1, !tbaa !13
  %5689 = zext i8 %5688 to i32
  %5690 = and i32 %5689, 15
  %5691 = icmp eq i32 3, %5690
  br i1 %5691, label %5692, label %5693

5692:                                             ; preds = %5685
  br label %5815

5693:                                             ; preds = %5685
  %5694 = load ptr, ptr %14, align 8, !tbaa !5
  %5695 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5694, i32 0, i32 3
  %5696 = load i8, ptr %5695, align 1, !tbaa !13
  %5697 = zext i8 %5696 to i32
  %5698 = and i32 %5697, 15
  %5699 = icmp eq i32 4, %5698
  br i1 %5699, label %5700, label %5701

5700:                                             ; preds = %5693
  br label %5813

5701:                                             ; preds = %5693
  %5702 = load ptr, ptr %14, align 8, !tbaa !5
  %5703 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5702, i32 0, i32 3
  %5704 = load i8, ptr %5703, align 1, !tbaa !13
  %5705 = zext i8 %5704 to i32
  %5706 = and i32 %5705, 15
  %5707 = icmp eq i32 5, %5706
  br i1 %5707, label %5708, label %5709

5708:                                             ; preds = %5701
  br label %5811

5709:                                             ; preds = %5701
  %5710 = load ptr, ptr %14, align 8, !tbaa !5
  %5711 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5710, i32 0, i32 3
  %5712 = load i8, ptr %5711, align 1, !tbaa !13
  %5713 = zext i8 %5712 to i32
  %5714 = and i32 %5713, 15
  %5715 = icmp eq i32 6, %5714
  br i1 %5715, label %5716, label %5717

5716:                                             ; preds = %5709
  br label %5809

5717:                                             ; preds = %5709
  %5718 = load ptr, ptr %14, align 8, !tbaa !5
  %5719 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5718, i32 0, i32 3
  %5720 = load i8, ptr %5719, align 1, !tbaa !13
  %5721 = zext i8 %5720 to i32
  %5722 = and i32 %5721, 15
  %5723 = icmp eq i32 7, %5722
  br i1 %5723, label %5724, label %5725

5724:                                             ; preds = %5717
  br label %5807

5725:                                             ; preds = %5717
  %5726 = load ptr, ptr %14, align 8, !tbaa !5
  %5727 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5726, i32 0, i32 3
  %5728 = load i8, ptr %5727, align 1, !tbaa !13
  %5729 = zext i8 %5728 to i32
  %5730 = and i32 %5729, 15
  %5731 = icmp eq i32 8, %5730
  br i1 %5731, label %5732, label %5733

5732:                                             ; preds = %5725
  br label %5805

5733:                                             ; preds = %5725
  %5734 = load ptr, ptr %14, align 8, !tbaa !5
  %5735 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5734, i32 0, i32 3
  %5736 = load i8, ptr %5735, align 1, !tbaa !13
  %5737 = zext i8 %5736 to i32
  %5738 = and i32 %5737, 15
  %5739 = icmp eq i32 9, %5738
  br i1 %5739, label %5740, label %5741

5740:                                             ; preds = %5733
  br label %5803

5741:                                             ; preds = %5733
  %5742 = load ptr, ptr %14, align 8, !tbaa !5
  %5743 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5742, i32 0, i32 3
  %5744 = load i8, ptr %5743, align 1, !tbaa !13
  %5745 = zext i8 %5744 to i32
  %5746 = and i32 %5745, 15
  %5747 = icmp eq i32 10, %5746
  br i1 %5747, label %5748, label %5749

5748:                                             ; preds = %5741
  br label %5801

5749:                                             ; preds = %5741
  %5750 = load ptr, ptr %14, align 8, !tbaa !5
  %5751 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5750, i32 0, i32 3
  %5752 = load i8, ptr %5751, align 1, !tbaa !13
  %5753 = zext i8 %5752 to i32
  %5754 = and i32 %5753, 15
  %5755 = icmp eq i32 11, %5754
  br i1 %5755, label %5756, label %5757

5756:                                             ; preds = %5749
  br label %5799

5757:                                             ; preds = %5749
  %5758 = load ptr, ptr %14, align 8, !tbaa !5
  %5759 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5758, i32 0, i32 3
  %5760 = load i8, ptr %5759, align 1, !tbaa !13
  %5761 = zext i8 %5760 to i32
  %5762 = and i32 %5761, 15
  %5763 = icmp eq i32 12, %5762
  br i1 %5763, label %5764, label %5765

5764:                                             ; preds = %5757
  br label %5797

5765:                                             ; preds = %5757
  %5766 = load ptr, ptr %14, align 8, !tbaa !5
  %5767 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5766, i32 0, i32 3
  %5768 = load i8, ptr %5767, align 1, !tbaa !13
  %5769 = zext i8 %5768 to i32
  %5770 = and i32 %5769, 15
  %5771 = icmp eq i32 13, %5770
  br i1 %5771, label %5772, label %5773

5772:                                             ; preds = %5765
  br label %5795

5773:                                             ; preds = %5765
  %5774 = load ptr, ptr %14, align 8, !tbaa !5
  %5775 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5774, i32 0, i32 3
  %5776 = load i8, ptr %5775, align 1, !tbaa !13
  %5777 = zext i8 %5776 to i32
  %5778 = and i32 %5777, 15
  %5779 = icmp eq i32 14, %5778
  br i1 %5779, label %5780, label %5781

5780:                                             ; preds = %5773
  br label %5793

5781:                                             ; preds = %5773
  %5782 = load ptr, ptr %14, align 8, !tbaa !5
  %5783 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5782, i32 0, i32 3
  %5784 = load i8, ptr %5783, align 1, !tbaa !13
  %5785 = zext i8 %5784 to i32
  %5786 = and i32 %5785, 15
  %5787 = icmp eq i32 15, %5786
  br i1 %5787, label %5788, label %5789

5788:                                             ; preds = %5781
  br label %5791

5789:                                             ; preds = %5781
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

5790:                                             ; No predecessors!
  br label %5791

5791:                                             ; preds = %5790, %5788
  %5792 = phi i32 [ 15, %5788 ], [ 0, %5790 ]
  br label %5793

5793:                                             ; preds = %5791, %5780
  %5794 = phi i32 [ 14, %5780 ], [ %5792, %5791 ]
  br label %5795

5795:                                             ; preds = %5793, %5772
  %5796 = phi i32 [ 12, %5772 ], [ %5794, %5793 ]
  br label %5797

5797:                                             ; preds = %5795, %5764
  %5798 = phi i32 [ 12, %5764 ], [ %5796, %5795 ]
  br label %5799

5799:                                             ; preds = %5797, %5756
  %5800 = phi i32 [ 10, %5756 ], [ %5798, %5797 ]
  br label %5801

5801:                                             ; preds = %5799, %5748
  %5802 = phi i32 [ 10, %5748 ], [ %5800, %5799 ]
  br label %5803

5803:                                             ; preds = %5801, %5740
  %5804 = phi i32 [ 8, %5740 ], [ %5802, %5801 ]
  br label %5805

5805:                                             ; preds = %5803, %5732
  %5806 = phi i32 [ 8, %5732 ], [ %5804, %5803 ]
  br label %5807

5807:                                             ; preds = %5805, %5724
  %5808 = phi i32 [ 6, %5724 ], [ %5806, %5805 ]
  br label %5809

5809:                                             ; preds = %5807, %5716
  %5810 = phi i32 [ 6, %5716 ], [ %5808, %5807 ]
  br label %5811

5811:                                             ; preds = %5809, %5708
  %5812 = phi i32 [ 5, %5708 ], [ %5810, %5809 ]
  br label %5813

5813:                                             ; preds = %5811, %5700
  %5814 = phi i32 [ 4, %5700 ], [ %5812, %5811 ]
  br label %5815

5815:                                             ; preds = %5813, %5692
  %5816 = phi i32 [ 3, %5692 ], [ %5814, %5813 ]
  br label %5817

5817:                                             ; preds = %5815, %5684
  %5818 = phi i32 [ 2, %5684 ], [ %5816, %5815 ]
  br label %5819

5819:                                             ; preds = %5817, %5676
  %5820 = phi i32 [ 1, %5676 ], [ %5818, %5817 ]
  br label %5821

5821:                                             ; preds = %5819, %5668
  %5822 = phi i32 [ 0, %5668 ], [ %5820, %5819 ]
  br label %5829

5823:                                             ; preds = %5654
  %5824 = load ptr, ptr %14, align 8, !tbaa !5
  %5825 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5824, i32 0, i32 3
  %5826 = load i8, ptr %5825, align 1, !tbaa !13
  %5827 = zext i8 %5826 to i32
  %5828 = ashr i32 %5827, 4
  br label %5829

5829:                                             ; preds = %5823, %5821
  %5830 = phi i32 [ %5822, %5821 ], [ %5828, %5823 ]
  %5831 = icmp eq i32 3, %5830
  br i1 %5831, label %5832, label %5833

5832:                                             ; preds = %5829
  br label %7645

5833:                                             ; preds = %5829
  %5834 = load ptr, ptr %14, align 8, !tbaa !5
  %5835 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5834, i32 0, i32 3
  %5836 = load i8, ptr %5835, align 1, !tbaa !13
  %5837 = zext i8 %5836 to i32
  %5838 = ashr i32 %5837, 4
  %5839 = icmp eq i32 0, %5838
  br i1 %5839, label %5840, label %6002

5840:                                             ; preds = %5833
  %5841 = load ptr, ptr %14, align 8, !tbaa !5
  %5842 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5841, i32 0, i32 3
  %5843 = load i8, ptr %5842, align 1, !tbaa !13
  %5844 = zext i8 %5843 to i32
  %5845 = and i32 %5844, 15
  %5846 = icmp eq i32 0, %5845
  br i1 %5846, label %5847, label %5848

5847:                                             ; preds = %5840
  br label %6000

5848:                                             ; preds = %5840
  %5849 = load ptr, ptr %14, align 8, !tbaa !5
  %5850 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5849, i32 0, i32 3
  %5851 = load i8, ptr %5850, align 1, !tbaa !13
  %5852 = zext i8 %5851 to i32
  %5853 = and i32 %5852, 15
  %5854 = icmp eq i32 1, %5853
  br i1 %5854, label %5855, label %5856

5855:                                             ; preds = %5848
  br label %5998

5856:                                             ; preds = %5848
  %5857 = load ptr, ptr %14, align 8, !tbaa !5
  %5858 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5857, i32 0, i32 3
  %5859 = load i8, ptr %5858, align 1, !tbaa !13
  %5860 = zext i8 %5859 to i32
  %5861 = and i32 %5860, 15
  %5862 = icmp eq i32 2, %5861
  br i1 %5862, label %5863, label %5864

5863:                                             ; preds = %5856
  br label %5996

5864:                                             ; preds = %5856
  %5865 = load ptr, ptr %14, align 8, !tbaa !5
  %5866 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5865, i32 0, i32 3
  %5867 = load i8, ptr %5866, align 1, !tbaa !13
  %5868 = zext i8 %5867 to i32
  %5869 = and i32 %5868, 15
  %5870 = icmp eq i32 3, %5869
  br i1 %5870, label %5871, label %5872

5871:                                             ; preds = %5864
  br label %5994

5872:                                             ; preds = %5864
  %5873 = load ptr, ptr %14, align 8, !tbaa !5
  %5874 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5873, i32 0, i32 3
  %5875 = load i8, ptr %5874, align 1, !tbaa !13
  %5876 = zext i8 %5875 to i32
  %5877 = and i32 %5876, 15
  %5878 = icmp eq i32 4, %5877
  br i1 %5878, label %5879, label %5880

5879:                                             ; preds = %5872
  br label %5992

5880:                                             ; preds = %5872
  %5881 = load ptr, ptr %14, align 8, !tbaa !5
  %5882 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5881, i32 0, i32 3
  %5883 = load i8, ptr %5882, align 1, !tbaa !13
  %5884 = zext i8 %5883 to i32
  %5885 = and i32 %5884, 15
  %5886 = icmp eq i32 5, %5885
  br i1 %5886, label %5887, label %5888

5887:                                             ; preds = %5880
  br label %5990

5888:                                             ; preds = %5880
  %5889 = load ptr, ptr %14, align 8, !tbaa !5
  %5890 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5889, i32 0, i32 3
  %5891 = load i8, ptr %5890, align 1, !tbaa !13
  %5892 = zext i8 %5891 to i32
  %5893 = and i32 %5892, 15
  %5894 = icmp eq i32 6, %5893
  br i1 %5894, label %5895, label %5896

5895:                                             ; preds = %5888
  br label %5988

5896:                                             ; preds = %5888
  %5897 = load ptr, ptr %14, align 8, !tbaa !5
  %5898 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5897, i32 0, i32 3
  %5899 = load i8, ptr %5898, align 1, !tbaa !13
  %5900 = zext i8 %5899 to i32
  %5901 = and i32 %5900, 15
  %5902 = icmp eq i32 7, %5901
  br i1 %5902, label %5903, label %5904

5903:                                             ; preds = %5896
  br label %5986

5904:                                             ; preds = %5896
  %5905 = load ptr, ptr %14, align 8, !tbaa !5
  %5906 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5905, i32 0, i32 3
  %5907 = load i8, ptr %5906, align 1, !tbaa !13
  %5908 = zext i8 %5907 to i32
  %5909 = and i32 %5908, 15
  %5910 = icmp eq i32 8, %5909
  br i1 %5910, label %5911, label %5912

5911:                                             ; preds = %5904
  br label %5984

5912:                                             ; preds = %5904
  %5913 = load ptr, ptr %14, align 8, !tbaa !5
  %5914 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5913, i32 0, i32 3
  %5915 = load i8, ptr %5914, align 1, !tbaa !13
  %5916 = zext i8 %5915 to i32
  %5917 = and i32 %5916, 15
  %5918 = icmp eq i32 9, %5917
  br i1 %5918, label %5919, label %5920

5919:                                             ; preds = %5912
  br label %5982

5920:                                             ; preds = %5912
  %5921 = load ptr, ptr %14, align 8, !tbaa !5
  %5922 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5921, i32 0, i32 3
  %5923 = load i8, ptr %5922, align 1, !tbaa !13
  %5924 = zext i8 %5923 to i32
  %5925 = and i32 %5924, 15
  %5926 = icmp eq i32 10, %5925
  br i1 %5926, label %5927, label %5928

5927:                                             ; preds = %5920
  br label %5980

5928:                                             ; preds = %5920
  %5929 = load ptr, ptr %14, align 8, !tbaa !5
  %5930 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5929, i32 0, i32 3
  %5931 = load i8, ptr %5930, align 1, !tbaa !13
  %5932 = zext i8 %5931 to i32
  %5933 = and i32 %5932, 15
  %5934 = icmp eq i32 11, %5933
  br i1 %5934, label %5935, label %5936

5935:                                             ; preds = %5928
  br label %5978

5936:                                             ; preds = %5928
  %5937 = load ptr, ptr %14, align 8, !tbaa !5
  %5938 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5937, i32 0, i32 3
  %5939 = load i8, ptr %5938, align 1, !tbaa !13
  %5940 = zext i8 %5939 to i32
  %5941 = and i32 %5940, 15
  %5942 = icmp eq i32 12, %5941
  br i1 %5942, label %5943, label %5944

5943:                                             ; preds = %5936
  br label %5976

5944:                                             ; preds = %5936
  %5945 = load ptr, ptr %14, align 8, !tbaa !5
  %5946 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5945, i32 0, i32 3
  %5947 = load i8, ptr %5946, align 1, !tbaa !13
  %5948 = zext i8 %5947 to i32
  %5949 = and i32 %5948, 15
  %5950 = icmp eq i32 13, %5949
  br i1 %5950, label %5951, label %5952

5951:                                             ; preds = %5944
  br label %5974

5952:                                             ; preds = %5944
  %5953 = load ptr, ptr %14, align 8, !tbaa !5
  %5954 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5953, i32 0, i32 3
  %5955 = load i8, ptr %5954, align 1, !tbaa !13
  %5956 = zext i8 %5955 to i32
  %5957 = and i32 %5956, 15
  %5958 = icmp eq i32 14, %5957
  br i1 %5958, label %5959, label %5960

5959:                                             ; preds = %5952
  br label %5972

5960:                                             ; preds = %5952
  %5961 = load ptr, ptr %14, align 8, !tbaa !5
  %5962 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5961, i32 0, i32 3
  %5963 = load i8, ptr %5962, align 1, !tbaa !13
  %5964 = zext i8 %5963 to i32
  %5965 = and i32 %5964, 15
  %5966 = icmp eq i32 15, %5965
  br i1 %5966, label %5967, label %5968

5967:                                             ; preds = %5960
  br label %5970

5968:                                             ; preds = %5960
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

5969:                                             ; No predecessors!
  br label %5970

5970:                                             ; preds = %5969, %5967
  %5971 = phi i32 [ 15, %5967 ], [ 0, %5969 ]
  br label %5972

5972:                                             ; preds = %5970, %5959
  %5973 = phi i32 [ 14, %5959 ], [ %5971, %5970 ]
  br label %5974

5974:                                             ; preds = %5972, %5951
  %5975 = phi i32 [ 12, %5951 ], [ %5973, %5972 ]
  br label %5976

5976:                                             ; preds = %5974, %5943
  %5977 = phi i32 [ 12, %5943 ], [ %5975, %5974 ]
  br label %5978

5978:                                             ; preds = %5976, %5935
  %5979 = phi i32 [ 10, %5935 ], [ %5977, %5976 ]
  br label %5980

5980:                                             ; preds = %5978, %5927
  %5981 = phi i32 [ 10, %5927 ], [ %5979, %5978 ]
  br label %5982

5982:                                             ; preds = %5980, %5919
  %5983 = phi i32 [ 8, %5919 ], [ %5981, %5980 ]
  br label %5984

5984:                                             ; preds = %5982, %5911
  %5985 = phi i32 [ 8, %5911 ], [ %5983, %5982 ]
  br label %5986

5986:                                             ; preds = %5984, %5903
  %5987 = phi i32 [ 6, %5903 ], [ %5985, %5984 ]
  br label %5988

5988:                                             ; preds = %5986, %5895
  %5989 = phi i32 [ 6, %5895 ], [ %5987, %5986 ]
  br label %5990

5990:                                             ; preds = %5988, %5887
  %5991 = phi i32 [ 5, %5887 ], [ %5989, %5988 ]
  br label %5992

5992:                                             ; preds = %5990, %5879
  %5993 = phi i32 [ 4, %5879 ], [ %5991, %5990 ]
  br label %5994

5994:                                             ; preds = %5992, %5871
  %5995 = phi i32 [ 3, %5871 ], [ %5993, %5992 ]
  br label %5996

5996:                                             ; preds = %5994, %5863
  %5997 = phi i32 [ 2, %5863 ], [ %5995, %5994 ]
  br label %5998

5998:                                             ; preds = %5996, %5855
  %5999 = phi i32 [ 1, %5855 ], [ %5997, %5996 ]
  br label %6000

6000:                                             ; preds = %5998, %5847
  %6001 = phi i32 [ 0, %5847 ], [ %5999, %5998 ]
  br label %6008

6002:                                             ; preds = %5833
  %6003 = load ptr, ptr %14, align 8, !tbaa !5
  %6004 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6003, i32 0, i32 3
  %6005 = load i8, ptr %6004, align 1, !tbaa !13
  %6006 = zext i8 %6005 to i32
  %6007 = ashr i32 %6006, 4
  br label %6008

6008:                                             ; preds = %6002, %6000
  %6009 = phi i32 [ %6001, %6000 ], [ %6007, %6002 ]
  %6010 = icmp eq i32 4, %6009
  br i1 %6010, label %6011, label %6012

6011:                                             ; preds = %6008
  br label %7643

6012:                                             ; preds = %6008
  %6013 = load ptr, ptr %14, align 8, !tbaa !5
  %6014 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6013, i32 0, i32 3
  %6015 = load i8, ptr %6014, align 1, !tbaa !13
  %6016 = zext i8 %6015 to i32
  %6017 = ashr i32 %6016, 4
  %6018 = icmp eq i32 0, %6017
  br i1 %6018, label %6019, label %6181

6019:                                             ; preds = %6012
  %6020 = load ptr, ptr %14, align 8, !tbaa !5
  %6021 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6020, i32 0, i32 3
  %6022 = load i8, ptr %6021, align 1, !tbaa !13
  %6023 = zext i8 %6022 to i32
  %6024 = and i32 %6023, 15
  %6025 = icmp eq i32 0, %6024
  br i1 %6025, label %6026, label %6027

6026:                                             ; preds = %6019
  br label %6179

6027:                                             ; preds = %6019
  %6028 = load ptr, ptr %14, align 8, !tbaa !5
  %6029 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6028, i32 0, i32 3
  %6030 = load i8, ptr %6029, align 1, !tbaa !13
  %6031 = zext i8 %6030 to i32
  %6032 = and i32 %6031, 15
  %6033 = icmp eq i32 1, %6032
  br i1 %6033, label %6034, label %6035

6034:                                             ; preds = %6027
  br label %6177

6035:                                             ; preds = %6027
  %6036 = load ptr, ptr %14, align 8, !tbaa !5
  %6037 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6036, i32 0, i32 3
  %6038 = load i8, ptr %6037, align 1, !tbaa !13
  %6039 = zext i8 %6038 to i32
  %6040 = and i32 %6039, 15
  %6041 = icmp eq i32 2, %6040
  br i1 %6041, label %6042, label %6043

6042:                                             ; preds = %6035
  br label %6175

6043:                                             ; preds = %6035
  %6044 = load ptr, ptr %14, align 8, !tbaa !5
  %6045 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6044, i32 0, i32 3
  %6046 = load i8, ptr %6045, align 1, !tbaa !13
  %6047 = zext i8 %6046 to i32
  %6048 = and i32 %6047, 15
  %6049 = icmp eq i32 3, %6048
  br i1 %6049, label %6050, label %6051

6050:                                             ; preds = %6043
  br label %6173

6051:                                             ; preds = %6043
  %6052 = load ptr, ptr %14, align 8, !tbaa !5
  %6053 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6052, i32 0, i32 3
  %6054 = load i8, ptr %6053, align 1, !tbaa !13
  %6055 = zext i8 %6054 to i32
  %6056 = and i32 %6055, 15
  %6057 = icmp eq i32 4, %6056
  br i1 %6057, label %6058, label %6059

6058:                                             ; preds = %6051
  br label %6171

6059:                                             ; preds = %6051
  %6060 = load ptr, ptr %14, align 8, !tbaa !5
  %6061 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6060, i32 0, i32 3
  %6062 = load i8, ptr %6061, align 1, !tbaa !13
  %6063 = zext i8 %6062 to i32
  %6064 = and i32 %6063, 15
  %6065 = icmp eq i32 5, %6064
  br i1 %6065, label %6066, label %6067

6066:                                             ; preds = %6059
  br label %6169

6067:                                             ; preds = %6059
  %6068 = load ptr, ptr %14, align 8, !tbaa !5
  %6069 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6068, i32 0, i32 3
  %6070 = load i8, ptr %6069, align 1, !tbaa !13
  %6071 = zext i8 %6070 to i32
  %6072 = and i32 %6071, 15
  %6073 = icmp eq i32 6, %6072
  br i1 %6073, label %6074, label %6075

6074:                                             ; preds = %6067
  br label %6167

6075:                                             ; preds = %6067
  %6076 = load ptr, ptr %14, align 8, !tbaa !5
  %6077 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6076, i32 0, i32 3
  %6078 = load i8, ptr %6077, align 1, !tbaa !13
  %6079 = zext i8 %6078 to i32
  %6080 = and i32 %6079, 15
  %6081 = icmp eq i32 7, %6080
  br i1 %6081, label %6082, label %6083

6082:                                             ; preds = %6075
  br label %6165

6083:                                             ; preds = %6075
  %6084 = load ptr, ptr %14, align 8, !tbaa !5
  %6085 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6084, i32 0, i32 3
  %6086 = load i8, ptr %6085, align 1, !tbaa !13
  %6087 = zext i8 %6086 to i32
  %6088 = and i32 %6087, 15
  %6089 = icmp eq i32 8, %6088
  br i1 %6089, label %6090, label %6091

6090:                                             ; preds = %6083
  br label %6163

6091:                                             ; preds = %6083
  %6092 = load ptr, ptr %14, align 8, !tbaa !5
  %6093 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6092, i32 0, i32 3
  %6094 = load i8, ptr %6093, align 1, !tbaa !13
  %6095 = zext i8 %6094 to i32
  %6096 = and i32 %6095, 15
  %6097 = icmp eq i32 9, %6096
  br i1 %6097, label %6098, label %6099

6098:                                             ; preds = %6091
  br label %6161

6099:                                             ; preds = %6091
  %6100 = load ptr, ptr %14, align 8, !tbaa !5
  %6101 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6100, i32 0, i32 3
  %6102 = load i8, ptr %6101, align 1, !tbaa !13
  %6103 = zext i8 %6102 to i32
  %6104 = and i32 %6103, 15
  %6105 = icmp eq i32 10, %6104
  br i1 %6105, label %6106, label %6107

6106:                                             ; preds = %6099
  br label %6159

6107:                                             ; preds = %6099
  %6108 = load ptr, ptr %14, align 8, !tbaa !5
  %6109 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6108, i32 0, i32 3
  %6110 = load i8, ptr %6109, align 1, !tbaa !13
  %6111 = zext i8 %6110 to i32
  %6112 = and i32 %6111, 15
  %6113 = icmp eq i32 11, %6112
  br i1 %6113, label %6114, label %6115

6114:                                             ; preds = %6107
  br label %6157

6115:                                             ; preds = %6107
  %6116 = load ptr, ptr %14, align 8, !tbaa !5
  %6117 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6116, i32 0, i32 3
  %6118 = load i8, ptr %6117, align 1, !tbaa !13
  %6119 = zext i8 %6118 to i32
  %6120 = and i32 %6119, 15
  %6121 = icmp eq i32 12, %6120
  br i1 %6121, label %6122, label %6123

6122:                                             ; preds = %6115
  br label %6155

6123:                                             ; preds = %6115
  %6124 = load ptr, ptr %14, align 8, !tbaa !5
  %6125 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6124, i32 0, i32 3
  %6126 = load i8, ptr %6125, align 1, !tbaa !13
  %6127 = zext i8 %6126 to i32
  %6128 = and i32 %6127, 15
  %6129 = icmp eq i32 13, %6128
  br i1 %6129, label %6130, label %6131

6130:                                             ; preds = %6123
  br label %6153

6131:                                             ; preds = %6123
  %6132 = load ptr, ptr %14, align 8, !tbaa !5
  %6133 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6132, i32 0, i32 3
  %6134 = load i8, ptr %6133, align 1, !tbaa !13
  %6135 = zext i8 %6134 to i32
  %6136 = and i32 %6135, 15
  %6137 = icmp eq i32 14, %6136
  br i1 %6137, label %6138, label %6139

6138:                                             ; preds = %6131
  br label %6151

6139:                                             ; preds = %6131
  %6140 = load ptr, ptr %14, align 8, !tbaa !5
  %6141 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6140, i32 0, i32 3
  %6142 = load i8, ptr %6141, align 1, !tbaa !13
  %6143 = zext i8 %6142 to i32
  %6144 = and i32 %6143, 15
  %6145 = icmp eq i32 15, %6144
  br i1 %6145, label %6146, label %6147

6146:                                             ; preds = %6139
  br label %6149

6147:                                             ; preds = %6139
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

6148:                                             ; No predecessors!
  br label %6149

6149:                                             ; preds = %6148, %6146
  %6150 = phi i32 [ 15, %6146 ], [ 0, %6148 ]
  br label %6151

6151:                                             ; preds = %6149, %6138
  %6152 = phi i32 [ 14, %6138 ], [ %6150, %6149 ]
  br label %6153

6153:                                             ; preds = %6151, %6130
  %6154 = phi i32 [ 12, %6130 ], [ %6152, %6151 ]
  br label %6155

6155:                                             ; preds = %6153, %6122
  %6156 = phi i32 [ 12, %6122 ], [ %6154, %6153 ]
  br label %6157

6157:                                             ; preds = %6155, %6114
  %6158 = phi i32 [ 10, %6114 ], [ %6156, %6155 ]
  br label %6159

6159:                                             ; preds = %6157, %6106
  %6160 = phi i32 [ 10, %6106 ], [ %6158, %6157 ]
  br label %6161

6161:                                             ; preds = %6159, %6098
  %6162 = phi i32 [ 8, %6098 ], [ %6160, %6159 ]
  br label %6163

6163:                                             ; preds = %6161, %6090
  %6164 = phi i32 [ 8, %6090 ], [ %6162, %6161 ]
  br label %6165

6165:                                             ; preds = %6163, %6082
  %6166 = phi i32 [ 6, %6082 ], [ %6164, %6163 ]
  br label %6167

6167:                                             ; preds = %6165, %6074
  %6168 = phi i32 [ 6, %6074 ], [ %6166, %6165 ]
  br label %6169

6169:                                             ; preds = %6167, %6066
  %6170 = phi i32 [ 5, %6066 ], [ %6168, %6167 ]
  br label %6171

6171:                                             ; preds = %6169, %6058
  %6172 = phi i32 [ 4, %6058 ], [ %6170, %6169 ]
  br label %6173

6173:                                             ; preds = %6171, %6050
  %6174 = phi i32 [ 3, %6050 ], [ %6172, %6171 ]
  br label %6175

6175:                                             ; preds = %6173, %6042
  %6176 = phi i32 [ 2, %6042 ], [ %6174, %6173 ]
  br label %6177

6177:                                             ; preds = %6175, %6034
  %6178 = phi i32 [ 1, %6034 ], [ %6176, %6175 ]
  br label %6179

6179:                                             ; preds = %6177, %6026
  %6180 = phi i32 [ 0, %6026 ], [ %6178, %6177 ]
  br label %6187

6181:                                             ; preds = %6012
  %6182 = load ptr, ptr %14, align 8, !tbaa !5
  %6183 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6182, i32 0, i32 3
  %6184 = load i8, ptr %6183, align 1, !tbaa !13
  %6185 = zext i8 %6184 to i32
  %6186 = ashr i32 %6185, 4
  br label %6187

6187:                                             ; preds = %6181, %6179
  %6188 = phi i32 [ %6180, %6179 ], [ %6186, %6181 ]
  %6189 = icmp eq i32 5, %6188
  br i1 %6189, label %6190, label %6191

6190:                                             ; preds = %6187
  br label %7641

6191:                                             ; preds = %6187
  %6192 = load ptr, ptr %14, align 8, !tbaa !5
  %6193 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6192, i32 0, i32 3
  %6194 = load i8, ptr %6193, align 1, !tbaa !13
  %6195 = zext i8 %6194 to i32
  %6196 = ashr i32 %6195, 4
  %6197 = icmp eq i32 0, %6196
  br i1 %6197, label %6198, label %6360

6198:                                             ; preds = %6191
  %6199 = load ptr, ptr %14, align 8, !tbaa !5
  %6200 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6199, i32 0, i32 3
  %6201 = load i8, ptr %6200, align 1, !tbaa !13
  %6202 = zext i8 %6201 to i32
  %6203 = and i32 %6202, 15
  %6204 = icmp eq i32 0, %6203
  br i1 %6204, label %6205, label %6206

6205:                                             ; preds = %6198
  br label %6358

6206:                                             ; preds = %6198
  %6207 = load ptr, ptr %14, align 8, !tbaa !5
  %6208 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6207, i32 0, i32 3
  %6209 = load i8, ptr %6208, align 1, !tbaa !13
  %6210 = zext i8 %6209 to i32
  %6211 = and i32 %6210, 15
  %6212 = icmp eq i32 1, %6211
  br i1 %6212, label %6213, label %6214

6213:                                             ; preds = %6206
  br label %6356

6214:                                             ; preds = %6206
  %6215 = load ptr, ptr %14, align 8, !tbaa !5
  %6216 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6215, i32 0, i32 3
  %6217 = load i8, ptr %6216, align 1, !tbaa !13
  %6218 = zext i8 %6217 to i32
  %6219 = and i32 %6218, 15
  %6220 = icmp eq i32 2, %6219
  br i1 %6220, label %6221, label %6222

6221:                                             ; preds = %6214
  br label %6354

6222:                                             ; preds = %6214
  %6223 = load ptr, ptr %14, align 8, !tbaa !5
  %6224 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6223, i32 0, i32 3
  %6225 = load i8, ptr %6224, align 1, !tbaa !13
  %6226 = zext i8 %6225 to i32
  %6227 = and i32 %6226, 15
  %6228 = icmp eq i32 3, %6227
  br i1 %6228, label %6229, label %6230

6229:                                             ; preds = %6222
  br label %6352

6230:                                             ; preds = %6222
  %6231 = load ptr, ptr %14, align 8, !tbaa !5
  %6232 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6231, i32 0, i32 3
  %6233 = load i8, ptr %6232, align 1, !tbaa !13
  %6234 = zext i8 %6233 to i32
  %6235 = and i32 %6234, 15
  %6236 = icmp eq i32 4, %6235
  br i1 %6236, label %6237, label %6238

6237:                                             ; preds = %6230
  br label %6350

6238:                                             ; preds = %6230
  %6239 = load ptr, ptr %14, align 8, !tbaa !5
  %6240 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6239, i32 0, i32 3
  %6241 = load i8, ptr %6240, align 1, !tbaa !13
  %6242 = zext i8 %6241 to i32
  %6243 = and i32 %6242, 15
  %6244 = icmp eq i32 5, %6243
  br i1 %6244, label %6245, label %6246

6245:                                             ; preds = %6238
  br label %6348

6246:                                             ; preds = %6238
  %6247 = load ptr, ptr %14, align 8, !tbaa !5
  %6248 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6247, i32 0, i32 3
  %6249 = load i8, ptr %6248, align 1, !tbaa !13
  %6250 = zext i8 %6249 to i32
  %6251 = and i32 %6250, 15
  %6252 = icmp eq i32 6, %6251
  br i1 %6252, label %6253, label %6254

6253:                                             ; preds = %6246
  br label %6346

6254:                                             ; preds = %6246
  %6255 = load ptr, ptr %14, align 8, !tbaa !5
  %6256 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6255, i32 0, i32 3
  %6257 = load i8, ptr %6256, align 1, !tbaa !13
  %6258 = zext i8 %6257 to i32
  %6259 = and i32 %6258, 15
  %6260 = icmp eq i32 7, %6259
  br i1 %6260, label %6261, label %6262

6261:                                             ; preds = %6254
  br label %6344

6262:                                             ; preds = %6254
  %6263 = load ptr, ptr %14, align 8, !tbaa !5
  %6264 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6263, i32 0, i32 3
  %6265 = load i8, ptr %6264, align 1, !tbaa !13
  %6266 = zext i8 %6265 to i32
  %6267 = and i32 %6266, 15
  %6268 = icmp eq i32 8, %6267
  br i1 %6268, label %6269, label %6270

6269:                                             ; preds = %6262
  br label %6342

6270:                                             ; preds = %6262
  %6271 = load ptr, ptr %14, align 8, !tbaa !5
  %6272 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6271, i32 0, i32 3
  %6273 = load i8, ptr %6272, align 1, !tbaa !13
  %6274 = zext i8 %6273 to i32
  %6275 = and i32 %6274, 15
  %6276 = icmp eq i32 9, %6275
  br i1 %6276, label %6277, label %6278

6277:                                             ; preds = %6270
  br label %6340

6278:                                             ; preds = %6270
  %6279 = load ptr, ptr %14, align 8, !tbaa !5
  %6280 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6279, i32 0, i32 3
  %6281 = load i8, ptr %6280, align 1, !tbaa !13
  %6282 = zext i8 %6281 to i32
  %6283 = and i32 %6282, 15
  %6284 = icmp eq i32 10, %6283
  br i1 %6284, label %6285, label %6286

6285:                                             ; preds = %6278
  br label %6338

6286:                                             ; preds = %6278
  %6287 = load ptr, ptr %14, align 8, !tbaa !5
  %6288 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6287, i32 0, i32 3
  %6289 = load i8, ptr %6288, align 1, !tbaa !13
  %6290 = zext i8 %6289 to i32
  %6291 = and i32 %6290, 15
  %6292 = icmp eq i32 11, %6291
  br i1 %6292, label %6293, label %6294

6293:                                             ; preds = %6286
  br label %6336

6294:                                             ; preds = %6286
  %6295 = load ptr, ptr %14, align 8, !tbaa !5
  %6296 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6295, i32 0, i32 3
  %6297 = load i8, ptr %6296, align 1, !tbaa !13
  %6298 = zext i8 %6297 to i32
  %6299 = and i32 %6298, 15
  %6300 = icmp eq i32 12, %6299
  br i1 %6300, label %6301, label %6302

6301:                                             ; preds = %6294
  br label %6334

6302:                                             ; preds = %6294
  %6303 = load ptr, ptr %14, align 8, !tbaa !5
  %6304 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6303, i32 0, i32 3
  %6305 = load i8, ptr %6304, align 1, !tbaa !13
  %6306 = zext i8 %6305 to i32
  %6307 = and i32 %6306, 15
  %6308 = icmp eq i32 13, %6307
  br i1 %6308, label %6309, label %6310

6309:                                             ; preds = %6302
  br label %6332

6310:                                             ; preds = %6302
  %6311 = load ptr, ptr %14, align 8, !tbaa !5
  %6312 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6311, i32 0, i32 3
  %6313 = load i8, ptr %6312, align 1, !tbaa !13
  %6314 = zext i8 %6313 to i32
  %6315 = and i32 %6314, 15
  %6316 = icmp eq i32 14, %6315
  br i1 %6316, label %6317, label %6318

6317:                                             ; preds = %6310
  br label %6330

6318:                                             ; preds = %6310
  %6319 = load ptr, ptr %14, align 8, !tbaa !5
  %6320 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6319, i32 0, i32 3
  %6321 = load i8, ptr %6320, align 1, !tbaa !13
  %6322 = zext i8 %6321 to i32
  %6323 = and i32 %6322, 15
  %6324 = icmp eq i32 15, %6323
  br i1 %6324, label %6325, label %6326

6325:                                             ; preds = %6318
  br label %6328

6326:                                             ; preds = %6318
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

6327:                                             ; No predecessors!
  br label %6328

6328:                                             ; preds = %6327, %6325
  %6329 = phi i32 [ 15, %6325 ], [ 0, %6327 ]
  br label %6330

6330:                                             ; preds = %6328, %6317
  %6331 = phi i32 [ 14, %6317 ], [ %6329, %6328 ]
  br label %6332

6332:                                             ; preds = %6330, %6309
  %6333 = phi i32 [ 12, %6309 ], [ %6331, %6330 ]
  br label %6334

6334:                                             ; preds = %6332, %6301
  %6335 = phi i32 [ 12, %6301 ], [ %6333, %6332 ]
  br label %6336

6336:                                             ; preds = %6334, %6293
  %6337 = phi i32 [ 10, %6293 ], [ %6335, %6334 ]
  br label %6338

6338:                                             ; preds = %6336, %6285
  %6339 = phi i32 [ 10, %6285 ], [ %6337, %6336 ]
  br label %6340

6340:                                             ; preds = %6338, %6277
  %6341 = phi i32 [ 8, %6277 ], [ %6339, %6338 ]
  br label %6342

6342:                                             ; preds = %6340, %6269
  %6343 = phi i32 [ 8, %6269 ], [ %6341, %6340 ]
  br label %6344

6344:                                             ; preds = %6342, %6261
  %6345 = phi i32 [ 6, %6261 ], [ %6343, %6342 ]
  br label %6346

6346:                                             ; preds = %6344, %6253
  %6347 = phi i32 [ 6, %6253 ], [ %6345, %6344 ]
  br label %6348

6348:                                             ; preds = %6346, %6245
  %6349 = phi i32 [ 5, %6245 ], [ %6347, %6346 ]
  br label %6350

6350:                                             ; preds = %6348, %6237
  %6351 = phi i32 [ 4, %6237 ], [ %6349, %6348 ]
  br label %6352

6352:                                             ; preds = %6350, %6229
  %6353 = phi i32 [ 3, %6229 ], [ %6351, %6350 ]
  br label %6354

6354:                                             ; preds = %6352, %6221
  %6355 = phi i32 [ 2, %6221 ], [ %6353, %6352 ]
  br label %6356

6356:                                             ; preds = %6354, %6213
  %6357 = phi i32 [ 1, %6213 ], [ %6355, %6354 ]
  br label %6358

6358:                                             ; preds = %6356, %6205
  %6359 = phi i32 [ 0, %6205 ], [ %6357, %6356 ]
  br label %6366

6360:                                             ; preds = %6191
  %6361 = load ptr, ptr %14, align 8, !tbaa !5
  %6362 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6361, i32 0, i32 3
  %6363 = load i8, ptr %6362, align 1, !tbaa !13
  %6364 = zext i8 %6363 to i32
  %6365 = ashr i32 %6364, 4
  br label %6366

6366:                                             ; preds = %6360, %6358
  %6367 = phi i32 [ %6359, %6358 ], [ %6365, %6360 ]
  %6368 = icmp eq i32 6, %6367
  br i1 %6368, label %6369, label %6370

6369:                                             ; preds = %6366
  br label %7639

6370:                                             ; preds = %6366
  %6371 = load ptr, ptr %14, align 8, !tbaa !5
  %6372 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6371, i32 0, i32 3
  %6373 = load i8, ptr %6372, align 1, !tbaa !13
  %6374 = zext i8 %6373 to i32
  %6375 = ashr i32 %6374, 4
  %6376 = icmp eq i32 0, %6375
  br i1 %6376, label %6377, label %6539

6377:                                             ; preds = %6370
  %6378 = load ptr, ptr %14, align 8, !tbaa !5
  %6379 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6378, i32 0, i32 3
  %6380 = load i8, ptr %6379, align 1, !tbaa !13
  %6381 = zext i8 %6380 to i32
  %6382 = and i32 %6381, 15
  %6383 = icmp eq i32 0, %6382
  br i1 %6383, label %6384, label %6385

6384:                                             ; preds = %6377
  br label %6537

6385:                                             ; preds = %6377
  %6386 = load ptr, ptr %14, align 8, !tbaa !5
  %6387 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6386, i32 0, i32 3
  %6388 = load i8, ptr %6387, align 1, !tbaa !13
  %6389 = zext i8 %6388 to i32
  %6390 = and i32 %6389, 15
  %6391 = icmp eq i32 1, %6390
  br i1 %6391, label %6392, label %6393

6392:                                             ; preds = %6385
  br label %6535

6393:                                             ; preds = %6385
  %6394 = load ptr, ptr %14, align 8, !tbaa !5
  %6395 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6394, i32 0, i32 3
  %6396 = load i8, ptr %6395, align 1, !tbaa !13
  %6397 = zext i8 %6396 to i32
  %6398 = and i32 %6397, 15
  %6399 = icmp eq i32 2, %6398
  br i1 %6399, label %6400, label %6401

6400:                                             ; preds = %6393
  br label %6533

6401:                                             ; preds = %6393
  %6402 = load ptr, ptr %14, align 8, !tbaa !5
  %6403 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6402, i32 0, i32 3
  %6404 = load i8, ptr %6403, align 1, !tbaa !13
  %6405 = zext i8 %6404 to i32
  %6406 = and i32 %6405, 15
  %6407 = icmp eq i32 3, %6406
  br i1 %6407, label %6408, label %6409

6408:                                             ; preds = %6401
  br label %6531

6409:                                             ; preds = %6401
  %6410 = load ptr, ptr %14, align 8, !tbaa !5
  %6411 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6410, i32 0, i32 3
  %6412 = load i8, ptr %6411, align 1, !tbaa !13
  %6413 = zext i8 %6412 to i32
  %6414 = and i32 %6413, 15
  %6415 = icmp eq i32 4, %6414
  br i1 %6415, label %6416, label %6417

6416:                                             ; preds = %6409
  br label %6529

6417:                                             ; preds = %6409
  %6418 = load ptr, ptr %14, align 8, !tbaa !5
  %6419 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6418, i32 0, i32 3
  %6420 = load i8, ptr %6419, align 1, !tbaa !13
  %6421 = zext i8 %6420 to i32
  %6422 = and i32 %6421, 15
  %6423 = icmp eq i32 5, %6422
  br i1 %6423, label %6424, label %6425

6424:                                             ; preds = %6417
  br label %6527

6425:                                             ; preds = %6417
  %6426 = load ptr, ptr %14, align 8, !tbaa !5
  %6427 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6426, i32 0, i32 3
  %6428 = load i8, ptr %6427, align 1, !tbaa !13
  %6429 = zext i8 %6428 to i32
  %6430 = and i32 %6429, 15
  %6431 = icmp eq i32 6, %6430
  br i1 %6431, label %6432, label %6433

6432:                                             ; preds = %6425
  br label %6525

6433:                                             ; preds = %6425
  %6434 = load ptr, ptr %14, align 8, !tbaa !5
  %6435 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6434, i32 0, i32 3
  %6436 = load i8, ptr %6435, align 1, !tbaa !13
  %6437 = zext i8 %6436 to i32
  %6438 = and i32 %6437, 15
  %6439 = icmp eq i32 7, %6438
  br i1 %6439, label %6440, label %6441

6440:                                             ; preds = %6433
  br label %6523

6441:                                             ; preds = %6433
  %6442 = load ptr, ptr %14, align 8, !tbaa !5
  %6443 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6442, i32 0, i32 3
  %6444 = load i8, ptr %6443, align 1, !tbaa !13
  %6445 = zext i8 %6444 to i32
  %6446 = and i32 %6445, 15
  %6447 = icmp eq i32 8, %6446
  br i1 %6447, label %6448, label %6449

6448:                                             ; preds = %6441
  br label %6521

6449:                                             ; preds = %6441
  %6450 = load ptr, ptr %14, align 8, !tbaa !5
  %6451 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6450, i32 0, i32 3
  %6452 = load i8, ptr %6451, align 1, !tbaa !13
  %6453 = zext i8 %6452 to i32
  %6454 = and i32 %6453, 15
  %6455 = icmp eq i32 9, %6454
  br i1 %6455, label %6456, label %6457

6456:                                             ; preds = %6449
  br label %6519

6457:                                             ; preds = %6449
  %6458 = load ptr, ptr %14, align 8, !tbaa !5
  %6459 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6458, i32 0, i32 3
  %6460 = load i8, ptr %6459, align 1, !tbaa !13
  %6461 = zext i8 %6460 to i32
  %6462 = and i32 %6461, 15
  %6463 = icmp eq i32 10, %6462
  br i1 %6463, label %6464, label %6465

6464:                                             ; preds = %6457
  br label %6517

6465:                                             ; preds = %6457
  %6466 = load ptr, ptr %14, align 8, !tbaa !5
  %6467 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6466, i32 0, i32 3
  %6468 = load i8, ptr %6467, align 1, !tbaa !13
  %6469 = zext i8 %6468 to i32
  %6470 = and i32 %6469, 15
  %6471 = icmp eq i32 11, %6470
  br i1 %6471, label %6472, label %6473

6472:                                             ; preds = %6465
  br label %6515

6473:                                             ; preds = %6465
  %6474 = load ptr, ptr %14, align 8, !tbaa !5
  %6475 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6474, i32 0, i32 3
  %6476 = load i8, ptr %6475, align 1, !tbaa !13
  %6477 = zext i8 %6476 to i32
  %6478 = and i32 %6477, 15
  %6479 = icmp eq i32 12, %6478
  br i1 %6479, label %6480, label %6481

6480:                                             ; preds = %6473
  br label %6513

6481:                                             ; preds = %6473
  %6482 = load ptr, ptr %14, align 8, !tbaa !5
  %6483 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6482, i32 0, i32 3
  %6484 = load i8, ptr %6483, align 1, !tbaa !13
  %6485 = zext i8 %6484 to i32
  %6486 = and i32 %6485, 15
  %6487 = icmp eq i32 13, %6486
  br i1 %6487, label %6488, label %6489

6488:                                             ; preds = %6481
  br label %6511

6489:                                             ; preds = %6481
  %6490 = load ptr, ptr %14, align 8, !tbaa !5
  %6491 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6490, i32 0, i32 3
  %6492 = load i8, ptr %6491, align 1, !tbaa !13
  %6493 = zext i8 %6492 to i32
  %6494 = and i32 %6493, 15
  %6495 = icmp eq i32 14, %6494
  br i1 %6495, label %6496, label %6497

6496:                                             ; preds = %6489
  br label %6509

6497:                                             ; preds = %6489
  %6498 = load ptr, ptr %14, align 8, !tbaa !5
  %6499 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6498, i32 0, i32 3
  %6500 = load i8, ptr %6499, align 1, !tbaa !13
  %6501 = zext i8 %6500 to i32
  %6502 = and i32 %6501, 15
  %6503 = icmp eq i32 15, %6502
  br i1 %6503, label %6504, label %6505

6504:                                             ; preds = %6497
  br label %6507

6505:                                             ; preds = %6497
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

6506:                                             ; No predecessors!
  br label %6507

6507:                                             ; preds = %6506, %6504
  %6508 = phi i32 [ 15, %6504 ], [ 0, %6506 ]
  br label %6509

6509:                                             ; preds = %6507, %6496
  %6510 = phi i32 [ 14, %6496 ], [ %6508, %6507 ]
  br label %6511

6511:                                             ; preds = %6509, %6488
  %6512 = phi i32 [ 12, %6488 ], [ %6510, %6509 ]
  br label %6513

6513:                                             ; preds = %6511, %6480
  %6514 = phi i32 [ 12, %6480 ], [ %6512, %6511 ]
  br label %6515

6515:                                             ; preds = %6513, %6472
  %6516 = phi i32 [ 10, %6472 ], [ %6514, %6513 ]
  br label %6517

6517:                                             ; preds = %6515, %6464
  %6518 = phi i32 [ 10, %6464 ], [ %6516, %6515 ]
  br label %6519

6519:                                             ; preds = %6517, %6456
  %6520 = phi i32 [ 8, %6456 ], [ %6518, %6517 ]
  br label %6521

6521:                                             ; preds = %6519, %6448
  %6522 = phi i32 [ 8, %6448 ], [ %6520, %6519 ]
  br label %6523

6523:                                             ; preds = %6521, %6440
  %6524 = phi i32 [ 6, %6440 ], [ %6522, %6521 ]
  br label %6525

6525:                                             ; preds = %6523, %6432
  %6526 = phi i32 [ 6, %6432 ], [ %6524, %6523 ]
  br label %6527

6527:                                             ; preds = %6525, %6424
  %6528 = phi i32 [ 5, %6424 ], [ %6526, %6525 ]
  br label %6529

6529:                                             ; preds = %6527, %6416
  %6530 = phi i32 [ 4, %6416 ], [ %6528, %6527 ]
  br label %6531

6531:                                             ; preds = %6529, %6408
  %6532 = phi i32 [ 3, %6408 ], [ %6530, %6529 ]
  br label %6533

6533:                                             ; preds = %6531, %6400
  %6534 = phi i32 [ 2, %6400 ], [ %6532, %6531 ]
  br label %6535

6535:                                             ; preds = %6533, %6392
  %6536 = phi i32 [ 1, %6392 ], [ %6534, %6533 ]
  br label %6537

6537:                                             ; preds = %6535, %6384
  %6538 = phi i32 [ 0, %6384 ], [ %6536, %6535 ]
  br label %6545

6539:                                             ; preds = %6370
  %6540 = load ptr, ptr %14, align 8, !tbaa !5
  %6541 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6540, i32 0, i32 3
  %6542 = load i8, ptr %6541, align 1, !tbaa !13
  %6543 = zext i8 %6542 to i32
  %6544 = ashr i32 %6543, 4
  br label %6545

6545:                                             ; preds = %6539, %6537
  %6546 = phi i32 [ %6538, %6537 ], [ %6544, %6539 ]
  %6547 = icmp eq i32 7, %6546
  br i1 %6547, label %6548, label %6549

6548:                                             ; preds = %6545
  br label %7637

6549:                                             ; preds = %6545
  %6550 = load ptr, ptr %14, align 8, !tbaa !5
  %6551 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6550, i32 0, i32 3
  %6552 = load i8, ptr %6551, align 1, !tbaa !13
  %6553 = zext i8 %6552 to i32
  %6554 = ashr i32 %6553, 4
  %6555 = icmp eq i32 0, %6554
  br i1 %6555, label %6556, label %6718

6556:                                             ; preds = %6549
  %6557 = load ptr, ptr %14, align 8, !tbaa !5
  %6558 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6557, i32 0, i32 3
  %6559 = load i8, ptr %6558, align 1, !tbaa !13
  %6560 = zext i8 %6559 to i32
  %6561 = and i32 %6560, 15
  %6562 = icmp eq i32 0, %6561
  br i1 %6562, label %6563, label %6564

6563:                                             ; preds = %6556
  br label %6716

6564:                                             ; preds = %6556
  %6565 = load ptr, ptr %14, align 8, !tbaa !5
  %6566 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6565, i32 0, i32 3
  %6567 = load i8, ptr %6566, align 1, !tbaa !13
  %6568 = zext i8 %6567 to i32
  %6569 = and i32 %6568, 15
  %6570 = icmp eq i32 1, %6569
  br i1 %6570, label %6571, label %6572

6571:                                             ; preds = %6564
  br label %6714

6572:                                             ; preds = %6564
  %6573 = load ptr, ptr %14, align 8, !tbaa !5
  %6574 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6573, i32 0, i32 3
  %6575 = load i8, ptr %6574, align 1, !tbaa !13
  %6576 = zext i8 %6575 to i32
  %6577 = and i32 %6576, 15
  %6578 = icmp eq i32 2, %6577
  br i1 %6578, label %6579, label %6580

6579:                                             ; preds = %6572
  br label %6712

6580:                                             ; preds = %6572
  %6581 = load ptr, ptr %14, align 8, !tbaa !5
  %6582 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6581, i32 0, i32 3
  %6583 = load i8, ptr %6582, align 1, !tbaa !13
  %6584 = zext i8 %6583 to i32
  %6585 = and i32 %6584, 15
  %6586 = icmp eq i32 3, %6585
  br i1 %6586, label %6587, label %6588

6587:                                             ; preds = %6580
  br label %6710

6588:                                             ; preds = %6580
  %6589 = load ptr, ptr %14, align 8, !tbaa !5
  %6590 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6589, i32 0, i32 3
  %6591 = load i8, ptr %6590, align 1, !tbaa !13
  %6592 = zext i8 %6591 to i32
  %6593 = and i32 %6592, 15
  %6594 = icmp eq i32 4, %6593
  br i1 %6594, label %6595, label %6596

6595:                                             ; preds = %6588
  br label %6708

6596:                                             ; preds = %6588
  %6597 = load ptr, ptr %14, align 8, !tbaa !5
  %6598 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6597, i32 0, i32 3
  %6599 = load i8, ptr %6598, align 1, !tbaa !13
  %6600 = zext i8 %6599 to i32
  %6601 = and i32 %6600, 15
  %6602 = icmp eq i32 5, %6601
  br i1 %6602, label %6603, label %6604

6603:                                             ; preds = %6596
  br label %6706

6604:                                             ; preds = %6596
  %6605 = load ptr, ptr %14, align 8, !tbaa !5
  %6606 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6605, i32 0, i32 3
  %6607 = load i8, ptr %6606, align 1, !tbaa !13
  %6608 = zext i8 %6607 to i32
  %6609 = and i32 %6608, 15
  %6610 = icmp eq i32 6, %6609
  br i1 %6610, label %6611, label %6612

6611:                                             ; preds = %6604
  br label %6704

6612:                                             ; preds = %6604
  %6613 = load ptr, ptr %14, align 8, !tbaa !5
  %6614 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6613, i32 0, i32 3
  %6615 = load i8, ptr %6614, align 1, !tbaa !13
  %6616 = zext i8 %6615 to i32
  %6617 = and i32 %6616, 15
  %6618 = icmp eq i32 7, %6617
  br i1 %6618, label %6619, label %6620

6619:                                             ; preds = %6612
  br label %6702

6620:                                             ; preds = %6612
  %6621 = load ptr, ptr %14, align 8, !tbaa !5
  %6622 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6621, i32 0, i32 3
  %6623 = load i8, ptr %6622, align 1, !tbaa !13
  %6624 = zext i8 %6623 to i32
  %6625 = and i32 %6624, 15
  %6626 = icmp eq i32 8, %6625
  br i1 %6626, label %6627, label %6628

6627:                                             ; preds = %6620
  br label %6700

6628:                                             ; preds = %6620
  %6629 = load ptr, ptr %14, align 8, !tbaa !5
  %6630 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6629, i32 0, i32 3
  %6631 = load i8, ptr %6630, align 1, !tbaa !13
  %6632 = zext i8 %6631 to i32
  %6633 = and i32 %6632, 15
  %6634 = icmp eq i32 9, %6633
  br i1 %6634, label %6635, label %6636

6635:                                             ; preds = %6628
  br label %6698

6636:                                             ; preds = %6628
  %6637 = load ptr, ptr %14, align 8, !tbaa !5
  %6638 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6637, i32 0, i32 3
  %6639 = load i8, ptr %6638, align 1, !tbaa !13
  %6640 = zext i8 %6639 to i32
  %6641 = and i32 %6640, 15
  %6642 = icmp eq i32 10, %6641
  br i1 %6642, label %6643, label %6644

6643:                                             ; preds = %6636
  br label %6696

6644:                                             ; preds = %6636
  %6645 = load ptr, ptr %14, align 8, !tbaa !5
  %6646 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6645, i32 0, i32 3
  %6647 = load i8, ptr %6646, align 1, !tbaa !13
  %6648 = zext i8 %6647 to i32
  %6649 = and i32 %6648, 15
  %6650 = icmp eq i32 11, %6649
  br i1 %6650, label %6651, label %6652

6651:                                             ; preds = %6644
  br label %6694

6652:                                             ; preds = %6644
  %6653 = load ptr, ptr %14, align 8, !tbaa !5
  %6654 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6653, i32 0, i32 3
  %6655 = load i8, ptr %6654, align 1, !tbaa !13
  %6656 = zext i8 %6655 to i32
  %6657 = and i32 %6656, 15
  %6658 = icmp eq i32 12, %6657
  br i1 %6658, label %6659, label %6660

6659:                                             ; preds = %6652
  br label %6692

6660:                                             ; preds = %6652
  %6661 = load ptr, ptr %14, align 8, !tbaa !5
  %6662 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6661, i32 0, i32 3
  %6663 = load i8, ptr %6662, align 1, !tbaa !13
  %6664 = zext i8 %6663 to i32
  %6665 = and i32 %6664, 15
  %6666 = icmp eq i32 13, %6665
  br i1 %6666, label %6667, label %6668

6667:                                             ; preds = %6660
  br label %6690

6668:                                             ; preds = %6660
  %6669 = load ptr, ptr %14, align 8, !tbaa !5
  %6670 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6669, i32 0, i32 3
  %6671 = load i8, ptr %6670, align 1, !tbaa !13
  %6672 = zext i8 %6671 to i32
  %6673 = and i32 %6672, 15
  %6674 = icmp eq i32 14, %6673
  br i1 %6674, label %6675, label %6676

6675:                                             ; preds = %6668
  br label %6688

6676:                                             ; preds = %6668
  %6677 = load ptr, ptr %14, align 8, !tbaa !5
  %6678 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6677, i32 0, i32 3
  %6679 = load i8, ptr %6678, align 1, !tbaa !13
  %6680 = zext i8 %6679 to i32
  %6681 = and i32 %6680, 15
  %6682 = icmp eq i32 15, %6681
  br i1 %6682, label %6683, label %6684

6683:                                             ; preds = %6676
  br label %6686

6684:                                             ; preds = %6676
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

6685:                                             ; No predecessors!
  br label %6686

6686:                                             ; preds = %6685, %6683
  %6687 = phi i32 [ 15, %6683 ], [ 0, %6685 ]
  br label %6688

6688:                                             ; preds = %6686, %6675
  %6689 = phi i32 [ 14, %6675 ], [ %6687, %6686 ]
  br label %6690

6690:                                             ; preds = %6688, %6667
  %6691 = phi i32 [ 12, %6667 ], [ %6689, %6688 ]
  br label %6692

6692:                                             ; preds = %6690, %6659
  %6693 = phi i32 [ 12, %6659 ], [ %6691, %6690 ]
  br label %6694

6694:                                             ; preds = %6692, %6651
  %6695 = phi i32 [ 10, %6651 ], [ %6693, %6692 ]
  br label %6696

6696:                                             ; preds = %6694, %6643
  %6697 = phi i32 [ 10, %6643 ], [ %6695, %6694 ]
  br label %6698

6698:                                             ; preds = %6696, %6635
  %6699 = phi i32 [ 8, %6635 ], [ %6697, %6696 ]
  br label %6700

6700:                                             ; preds = %6698, %6627
  %6701 = phi i32 [ 8, %6627 ], [ %6699, %6698 ]
  br label %6702

6702:                                             ; preds = %6700, %6619
  %6703 = phi i32 [ 6, %6619 ], [ %6701, %6700 ]
  br label %6704

6704:                                             ; preds = %6702, %6611
  %6705 = phi i32 [ 6, %6611 ], [ %6703, %6702 ]
  br label %6706

6706:                                             ; preds = %6704, %6603
  %6707 = phi i32 [ 5, %6603 ], [ %6705, %6704 ]
  br label %6708

6708:                                             ; preds = %6706, %6595
  %6709 = phi i32 [ 4, %6595 ], [ %6707, %6706 ]
  br label %6710

6710:                                             ; preds = %6708, %6587
  %6711 = phi i32 [ 3, %6587 ], [ %6709, %6708 ]
  br label %6712

6712:                                             ; preds = %6710, %6579
  %6713 = phi i32 [ 2, %6579 ], [ %6711, %6710 ]
  br label %6714

6714:                                             ; preds = %6712, %6571
  %6715 = phi i32 [ 1, %6571 ], [ %6713, %6712 ]
  br label %6716

6716:                                             ; preds = %6714, %6563
  %6717 = phi i32 [ 0, %6563 ], [ %6715, %6714 ]
  br label %6724

6718:                                             ; preds = %6549
  %6719 = load ptr, ptr %14, align 8, !tbaa !5
  %6720 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6719, i32 0, i32 3
  %6721 = load i8, ptr %6720, align 1, !tbaa !13
  %6722 = zext i8 %6721 to i32
  %6723 = ashr i32 %6722, 4
  br label %6724

6724:                                             ; preds = %6718, %6716
  %6725 = phi i32 [ %6717, %6716 ], [ %6723, %6718 ]
  %6726 = icmp eq i32 8, %6725
  br i1 %6726, label %6727, label %6728

6727:                                             ; preds = %6724
  br label %7635

6728:                                             ; preds = %6724
  %6729 = load ptr, ptr %14, align 8, !tbaa !5
  %6730 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6729, i32 0, i32 3
  %6731 = load i8, ptr %6730, align 1, !tbaa !13
  %6732 = zext i8 %6731 to i32
  %6733 = ashr i32 %6732, 4
  %6734 = icmp eq i32 0, %6733
  br i1 %6734, label %6735, label %6897

6735:                                             ; preds = %6728
  %6736 = load ptr, ptr %14, align 8, !tbaa !5
  %6737 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6736, i32 0, i32 3
  %6738 = load i8, ptr %6737, align 1, !tbaa !13
  %6739 = zext i8 %6738 to i32
  %6740 = and i32 %6739, 15
  %6741 = icmp eq i32 0, %6740
  br i1 %6741, label %6742, label %6743

6742:                                             ; preds = %6735
  br label %6895

6743:                                             ; preds = %6735
  %6744 = load ptr, ptr %14, align 8, !tbaa !5
  %6745 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6744, i32 0, i32 3
  %6746 = load i8, ptr %6745, align 1, !tbaa !13
  %6747 = zext i8 %6746 to i32
  %6748 = and i32 %6747, 15
  %6749 = icmp eq i32 1, %6748
  br i1 %6749, label %6750, label %6751

6750:                                             ; preds = %6743
  br label %6893

6751:                                             ; preds = %6743
  %6752 = load ptr, ptr %14, align 8, !tbaa !5
  %6753 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6752, i32 0, i32 3
  %6754 = load i8, ptr %6753, align 1, !tbaa !13
  %6755 = zext i8 %6754 to i32
  %6756 = and i32 %6755, 15
  %6757 = icmp eq i32 2, %6756
  br i1 %6757, label %6758, label %6759

6758:                                             ; preds = %6751
  br label %6891

6759:                                             ; preds = %6751
  %6760 = load ptr, ptr %14, align 8, !tbaa !5
  %6761 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6760, i32 0, i32 3
  %6762 = load i8, ptr %6761, align 1, !tbaa !13
  %6763 = zext i8 %6762 to i32
  %6764 = and i32 %6763, 15
  %6765 = icmp eq i32 3, %6764
  br i1 %6765, label %6766, label %6767

6766:                                             ; preds = %6759
  br label %6889

6767:                                             ; preds = %6759
  %6768 = load ptr, ptr %14, align 8, !tbaa !5
  %6769 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6768, i32 0, i32 3
  %6770 = load i8, ptr %6769, align 1, !tbaa !13
  %6771 = zext i8 %6770 to i32
  %6772 = and i32 %6771, 15
  %6773 = icmp eq i32 4, %6772
  br i1 %6773, label %6774, label %6775

6774:                                             ; preds = %6767
  br label %6887

6775:                                             ; preds = %6767
  %6776 = load ptr, ptr %14, align 8, !tbaa !5
  %6777 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6776, i32 0, i32 3
  %6778 = load i8, ptr %6777, align 1, !tbaa !13
  %6779 = zext i8 %6778 to i32
  %6780 = and i32 %6779, 15
  %6781 = icmp eq i32 5, %6780
  br i1 %6781, label %6782, label %6783

6782:                                             ; preds = %6775
  br label %6885

6783:                                             ; preds = %6775
  %6784 = load ptr, ptr %14, align 8, !tbaa !5
  %6785 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6784, i32 0, i32 3
  %6786 = load i8, ptr %6785, align 1, !tbaa !13
  %6787 = zext i8 %6786 to i32
  %6788 = and i32 %6787, 15
  %6789 = icmp eq i32 6, %6788
  br i1 %6789, label %6790, label %6791

6790:                                             ; preds = %6783
  br label %6883

6791:                                             ; preds = %6783
  %6792 = load ptr, ptr %14, align 8, !tbaa !5
  %6793 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6792, i32 0, i32 3
  %6794 = load i8, ptr %6793, align 1, !tbaa !13
  %6795 = zext i8 %6794 to i32
  %6796 = and i32 %6795, 15
  %6797 = icmp eq i32 7, %6796
  br i1 %6797, label %6798, label %6799

6798:                                             ; preds = %6791
  br label %6881

6799:                                             ; preds = %6791
  %6800 = load ptr, ptr %14, align 8, !tbaa !5
  %6801 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6800, i32 0, i32 3
  %6802 = load i8, ptr %6801, align 1, !tbaa !13
  %6803 = zext i8 %6802 to i32
  %6804 = and i32 %6803, 15
  %6805 = icmp eq i32 8, %6804
  br i1 %6805, label %6806, label %6807

6806:                                             ; preds = %6799
  br label %6879

6807:                                             ; preds = %6799
  %6808 = load ptr, ptr %14, align 8, !tbaa !5
  %6809 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6808, i32 0, i32 3
  %6810 = load i8, ptr %6809, align 1, !tbaa !13
  %6811 = zext i8 %6810 to i32
  %6812 = and i32 %6811, 15
  %6813 = icmp eq i32 9, %6812
  br i1 %6813, label %6814, label %6815

6814:                                             ; preds = %6807
  br label %6877

6815:                                             ; preds = %6807
  %6816 = load ptr, ptr %14, align 8, !tbaa !5
  %6817 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6816, i32 0, i32 3
  %6818 = load i8, ptr %6817, align 1, !tbaa !13
  %6819 = zext i8 %6818 to i32
  %6820 = and i32 %6819, 15
  %6821 = icmp eq i32 10, %6820
  br i1 %6821, label %6822, label %6823

6822:                                             ; preds = %6815
  br label %6875

6823:                                             ; preds = %6815
  %6824 = load ptr, ptr %14, align 8, !tbaa !5
  %6825 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6824, i32 0, i32 3
  %6826 = load i8, ptr %6825, align 1, !tbaa !13
  %6827 = zext i8 %6826 to i32
  %6828 = and i32 %6827, 15
  %6829 = icmp eq i32 11, %6828
  br i1 %6829, label %6830, label %6831

6830:                                             ; preds = %6823
  br label %6873

6831:                                             ; preds = %6823
  %6832 = load ptr, ptr %14, align 8, !tbaa !5
  %6833 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6832, i32 0, i32 3
  %6834 = load i8, ptr %6833, align 1, !tbaa !13
  %6835 = zext i8 %6834 to i32
  %6836 = and i32 %6835, 15
  %6837 = icmp eq i32 12, %6836
  br i1 %6837, label %6838, label %6839

6838:                                             ; preds = %6831
  br label %6871

6839:                                             ; preds = %6831
  %6840 = load ptr, ptr %14, align 8, !tbaa !5
  %6841 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6840, i32 0, i32 3
  %6842 = load i8, ptr %6841, align 1, !tbaa !13
  %6843 = zext i8 %6842 to i32
  %6844 = and i32 %6843, 15
  %6845 = icmp eq i32 13, %6844
  br i1 %6845, label %6846, label %6847

6846:                                             ; preds = %6839
  br label %6869

6847:                                             ; preds = %6839
  %6848 = load ptr, ptr %14, align 8, !tbaa !5
  %6849 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6848, i32 0, i32 3
  %6850 = load i8, ptr %6849, align 1, !tbaa !13
  %6851 = zext i8 %6850 to i32
  %6852 = and i32 %6851, 15
  %6853 = icmp eq i32 14, %6852
  br i1 %6853, label %6854, label %6855

6854:                                             ; preds = %6847
  br label %6867

6855:                                             ; preds = %6847
  %6856 = load ptr, ptr %14, align 8, !tbaa !5
  %6857 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6856, i32 0, i32 3
  %6858 = load i8, ptr %6857, align 1, !tbaa !13
  %6859 = zext i8 %6858 to i32
  %6860 = and i32 %6859, 15
  %6861 = icmp eq i32 15, %6860
  br i1 %6861, label %6862, label %6863

6862:                                             ; preds = %6855
  br label %6865

6863:                                             ; preds = %6855
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

6864:                                             ; No predecessors!
  br label %6865

6865:                                             ; preds = %6864, %6862
  %6866 = phi i32 [ 15, %6862 ], [ 0, %6864 ]
  br label %6867

6867:                                             ; preds = %6865, %6854
  %6868 = phi i32 [ 14, %6854 ], [ %6866, %6865 ]
  br label %6869

6869:                                             ; preds = %6867, %6846
  %6870 = phi i32 [ 12, %6846 ], [ %6868, %6867 ]
  br label %6871

6871:                                             ; preds = %6869, %6838
  %6872 = phi i32 [ 12, %6838 ], [ %6870, %6869 ]
  br label %6873

6873:                                             ; preds = %6871, %6830
  %6874 = phi i32 [ 10, %6830 ], [ %6872, %6871 ]
  br label %6875

6875:                                             ; preds = %6873, %6822
  %6876 = phi i32 [ 10, %6822 ], [ %6874, %6873 ]
  br label %6877

6877:                                             ; preds = %6875, %6814
  %6878 = phi i32 [ 8, %6814 ], [ %6876, %6875 ]
  br label %6879

6879:                                             ; preds = %6877, %6806
  %6880 = phi i32 [ 8, %6806 ], [ %6878, %6877 ]
  br label %6881

6881:                                             ; preds = %6879, %6798
  %6882 = phi i32 [ 6, %6798 ], [ %6880, %6879 ]
  br label %6883

6883:                                             ; preds = %6881, %6790
  %6884 = phi i32 [ 6, %6790 ], [ %6882, %6881 ]
  br label %6885

6885:                                             ; preds = %6883, %6782
  %6886 = phi i32 [ 5, %6782 ], [ %6884, %6883 ]
  br label %6887

6887:                                             ; preds = %6885, %6774
  %6888 = phi i32 [ 4, %6774 ], [ %6886, %6885 ]
  br label %6889

6889:                                             ; preds = %6887, %6766
  %6890 = phi i32 [ 3, %6766 ], [ %6888, %6887 ]
  br label %6891

6891:                                             ; preds = %6889, %6758
  %6892 = phi i32 [ 2, %6758 ], [ %6890, %6889 ]
  br label %6893

6893:                                             ; preds = %6891, %6750
  %6894 = phi i32 [ 1, %6750 ], [ %6892, %6891 ]
  br label %6895

6895:                                             ; preds = %6893, %6742
  %6896 = phi i32 [ 0, %6742 ], [ %6894, %6893 ]
  br label %6903

6897:                                             ; preds = %6728
  %6898 = load ptr, ptr %14, align 8, !tbaa !5
  %6899 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6898, i32 0, i32 3
  %6900 = load i8, ptr %6899, align 1, !tbaa !13
  %6901 = zext i8 %6900 to i32
  %6902 = ashr i32 %6901, 4
  br label %6903

6903:                                             ; preds = %6897, %6895
  %6904 = phi i32 [ %6896, %6895 ], [ %6902, %6897 ]
  %6905 = icmp eq i32 9, %6904
  br i1 %6905, label %6906, label %6907

6906:                                             ; preds = %6903
  br label %7633

6907:                                             ; preds = %6903
  %6908 = load ptr, ptr %14, align 8, !tbaa !5
  %6909 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6908, i32 0, i32 3
  %6910 = load i8, ptr %6909, align 1, !tbaa !13
  %6911 = zext i8 %6910 to i32
  %6912 = ashr i32 %6911, 4
  %6913 = icmp eq i32 0, %6912
  br i1 %6913, label %6914, label %7076

6914:                                             ; preds = %6907
  %6915 = load ptr, ptr %14, align 8, !tbaa !5
  %6916 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6915, i32 0, i32 3
  %6917 = load i8, ptr %6916, align 1, !tbaa !13
  %6918 = zext i8 %6917 to i32
  %6919 = and i32 %6918, 15
  %6920 = icmp eq i32 0, %6919
  br i1 %6920, label %6921, label %6922

6921:                                             ; preds = %6914
  br label %7074

6922:                                             ; preds = %6914
  %6923 = load ptr, ptr %14, align 8, !tbaa !5
  %6924 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6923, i32 0, i32 3
  %6925 = load i8, ptr %6924, align 1, !tbaa !13
  %6926 = zext i8 %6925 to i32
  %6927 = and i32 %6926, 15
  %6928 = icmp eq i32 1, %6927
  br i1 %6928, label %6929, label %6930

6929:                                             ; preds = %6922
  br label %7072

6930:                                             ; preds = %6922
  %6931 = load ptr, ptr %14, align 8, !tbaa !5
  %6932 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6931, i32 0, i32 3
  %6933 = load i8, ptr %6932, align 1, !tbaa !13
  %6934 = zext i8 %6933 to i32
  %6935 = and i32 %6934, 15
  %6936 = icmp eq i32 2, %6935
  br i1 %6936, label %6937, label %6938

6937:                                             ; preds = %6930
  br label %7070

6938:                                             ; preds = %6930
  %6939 = load ptr, ptr %14, align 8, !tbaa !5
  %6940 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6939, i32 0, i32 3
  %6941 = load i8, ptr %6940, align 1, !tbaa !13
  %6942 = zext i8 %6941 to i32
  %6943 = and i32 %6942, 15
  %6944 = icmp eq i32 3, %6943
  br i1 %6944, label %6945, label %6946

6945:                                             ; preds = %6938
  br label %7068

6946:                                             ; preds = %6938
  %6947 = load ptr, ptr %14, align 8, !tbaa !5
  %6948 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6947, i32 0, i32 3
  %6949 = load i8, ptr %6948, align 1, !tbaa !13
  %6950 = zext i8 %6949 to i32
  %6951 = and i32 %6950, 15
  %6952 = icmp eq i32 4, %6951
  br i1 %6952, label %6953, label %6954

6953:                                             ; preds = %6946
  br label %7066

6954:                                             ; preds = %6946
  %6955 = load ptr, ptr %14, align 8, !tbaa !5
  %6956 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6955, i32 0, i32 3
  %6957 = load i8, ptr %6956, align 1, !tbaa !13
  %6958 = zext i8 %6957 to i32
  %6959 = and i32 %6958, 15
  %6960 = icmp eq i32 5, %6959
  br i1 %6960, label %6961, label %6962

6961:                                             ; preds = %6954
  br label %7064

6962:                                             ; preds = %6954
  %6963 = load ptr, ptr %14, align 8, !tbaa !5
  %6964 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6963, i32 0, i32 3
  %6965 = load i8, ptr %6964, align 1, !tbaa !13
  %6966 = zext i8 %6965 to i32
  %6967 = and i32 %6966, 15
  %6968 = icmp eq i32 6, %6967
  br i1 %6968, label %6969, label %6970

6969:                                             ; preds = %6962
  br label %7062

6970:                                             ; preds = %6962
  %6971 = load ptr, ptr %14, align 8, !tbaa !5
  %6972 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6971, i32 0, i32 3
  %6973 = load i8, ptr %6972, align 1, !tbaa !13
  %6974 = zext i8 %6973 to i32
  %6975 = and i32 %6974, 15
  %6976 = icmp eq i32 7, %6975
  br i1 %6976, label %6977, label %6978

6977:                                             ; preds = %6970
  br label %7060

6978:                                             ; preds = %6970
  %6979 = load ptr, ptr %14, align 8, !tbaa !5
  %6980 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6979, i32 0, i32 3
  %6981 = load i8, ptr %6980, align 1, !tbaa !13
  %6982 = zext i8 %6981 to i32
  %6983 = and i32 %6982, 15
  %6984 = icmp eq i32 8, %6983
  br i1 %6984, label %6985, label %6986

6985:                                             ; preds = %6978
  br label %7058

6986:                                             ; preds = %6978
  %6987 = load ptr, ptr %14, align 8, !tbaa !5
  %6988 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6987, i32 0, i32 3
  %6989 = load i8, ptr %6988, align 1, !tbaa !13
  %6990 = zext i8 %6989 to i32
  %6991 = and i32 %6990, 15
  %6992 = icmp eq i32 9, %6991
  br i1 %6992, label %6993, label %6994

6993:                                             ; preds = %6986
  br label %7056

6994:                                             ; preds = %6986
  %6995 = load ptr, ptr %14, align 8, !tbaa !5
  %6996 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6995, i32 0, i32 3
  %6997 = load i8, ptr %6996, align 1, !tbaa !13
  %6998 = zext i8 %6997 to i32
  %6999 = and i32 %6998, 15
  %7000 = icmp eq i32 10, %6999
  br i1 %7000, label %7001, label %7002

7001:                                             ; preds = %6994
  br label %7054

7002:                                             ; preds = %6994
  %7003 = load ptr, ptr %14, align 8, !tbaa !5
  %7004 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7003, i32 0, i32 3
  %7005 = load i8, ptr %7004, align 1, !tbaa !13
  %7006 = zext i8 %7005 to i32
  %7007 = and i32 %7006, 15
  %7008 = icmp eq i32 11, %7007
  br i1 %7008, label %7009, label %7010

7009:                                             ; preds = %7002
  br label %7052

7010:                                             ; preds = %7002
  %7011 = load ptr, ptr %14, align 8, !tbaa !5
  %7012 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7011, i32 0, i32 3
  %7013 = load i8, ptr %7012, align 1, !tbaa !13
  %7014 = zext i8 %7013 to i32
  %7015 = and i32 %7014, 15
  %7016 = icmp eq i32 12, %7015
  br i1 %7016, label %7017, label %7018

7017:                                             ; preds = %7010
  br label %7050

7018:                                             ; preds = %7010
  %7019 = load ptr, ptr %14, align 8, !tbaa !5
  %7020 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7019, i32 0, i32 3
  %7021 = load i8, ptr %7020, align 1, !tbaa !13
  %7022 = zext i8 %7021 to i32
  %7023 = and i32 %7022, 15
  %7024 = icmp eq i32 13, %7023
  br i1 %7024, label %7025, label %7026

7025:                                             ; preds = %7018
  br label %7048

7026:                                             ; preds = %7018
  %7027 = load ptr, ptr %14, align 8, !tbaa !5
  %7028 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7027, i32 0, i32 3
  %7029 = load i8, ptr %7028, align 1, !tbaa !13
  %7030 = zext i8 %7029 to i32
  %7031 = and i32 %7030, 15
  %7032 = icmp eq i32 14, %7031
  br i1 %7032, label %7033, label %7034

7033:                                             ; preds = %7026
  br label %7046

7034:                                             ; preds = %7026
  %7035 = load ptr, ptr %14, align 8, !tbaa !5
  %7036 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7035, i32 0, i32 3
  %7037 = load i8, ptr %7036, align 1, !tbaa !13
  %7038 = zext i8 %7037 to i32
  %7039 = and i32 %7038, 15
  %7040 = icmp eq i32 15, %7039
  br i1 %7040, label %7041, label %7042

7041:                                             ; preds = %7034
  br label %7044

7042:                                             ; preds = %7034
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

7043:                                             ; No predecessors!
  br label %7044

7044:                                             ; preds = %7043, %7041
  %7045 = phi i32 [ 15, %7041 ], [ 0, %7043 ]
  br label %7046

7046:                                             ; preds = %7044, %7033
  %7047 = phi i32 [ 14, %7033 ], [ %7045, %7044 ]
  br label %7048

7048:                                             ; preds = %7046, %7025
  %7049 = phi i32 [ 12, %7025 ], [ %7047, %7046 ]
  br label %7050

7050:                                             ; preds = %7048, %7017
  %7051 = phi i32 [ 12, %7017 ], [ %7049, %7048 ]
  br label %7052

7052:                                             ; preds = %7050, %7009
  %7053 = phi i32 [ 10, %7009 ], [ %7051, %7050 ]
  br label %7054

7054:                                             ; preds = %7052, %7001
  %7055 = phi i32 [ 10, %7001 ], [ %7053, %7052 ]
  br label %7056

7056:                                             ; preds = %7054, %6993
  %7057 = phi i32 [ 8, %6993 ], [ %7055, %7054 ]
  br label %7058

7058:                                             ; preds = %7056, %6985
  %7059 = phi i32 [ 8, %6985 ], [ %7057, %7056 ]
  br label %7060

7060:                                             ; preds = %7058, %6977
  %7061 = phi i32 [ 6, %6977 ], [ %7059, %7058 ]
  br label %7062

7062:                                             ; preds = %7060, %6969
  %7063 = phi i32 [ 6, %6969 ], [ %7061, %7060 ]
  br label %7064

7064:                                             ; preds = %7062, %6961
  %7065 = phi i32 [ 5, %6961 ], [ %7063, %7062 ]
  br label %7066

7066:                                             ; preds = %7064, %6953
  %7067 = phi i32 [ 4, %6953 ], [ %7065, %7064 ]
  br label %7068

7068:                                             ; preds = %7066, %6945
  %7069 = phi i32 [ 3, %6945 ], [ %7067, %7066 ]
  br label %7070

7070:                                             ; preds = %7068, %6937
  %7071 = phi i32 [ 2, %6937 ], [ %7069, %7068 ]
  br label %7072

7072:                                             ; preds = %7070, %6929
  %7073 = phi i32 [ 1, %6929 ], [ %7071, %7070 ]
  br label %7074

7074:                                             ; preds = %7072, %6921
  %7075 = phi i32 [ 0, %6921 ], [ %7073, %7072 ]
  br label %7082

7076:                                             ; preds = %6907
  %7077 = load ptr, ptr %14, align 8, !tbaa !5
  %7078 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7077, i32 0, i32 3
  %7079 = load i8, ptr %7078, align 1, !tbaa !13
  %7080 = zext i8 %7079 to i32
  %7081 = ashr i32 %7080, 4
  br label %7082

7082:                                             ; preds = %7076, %7074
  %7083 = phi i32 [ %7075, %7074 ], [ %7081, %7076 ]
  %7084 = icmp eq i32 10, %7083
  br i1 %7084, label %7085, label %7086

7085:                                             ; preds = %7082
  br label %7631

7086:                                             ; preds = %7082
  %7087 = load ptr, ptr %14, align 8, !tbaa !5
  %7088 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7087, i32 0, i32 3
  %7089 = load i8, ptr %7088, align 1, !tbaa !13
  %7090 = zext i8 %7089 to i32
  %7091 = ashr i32 %7090, 4
  %7092 = icmp eq i32 0, %7091
  br i1 %7092, label %7093, label %7255

7093:                                             ; preds = %7086
  %7094 = load ptr, ptr %14, align 8, !tbaa !5
  %7095 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7094, i32 0, i32 3
  %7096 = load i8, ptr %7095, align 1, !tbaa !13
  %7097 = zext i8 %7096 to i32
  %7098 = and i32 %7097, 15
  %7099 = icmp eq i32 0, %7098
  br i1 %7099, label %7100, label %7101

7100:                                             ; preds = %7093
  br label %7253

7101:                                             ; preds = %7093
  %7102 = load ptr, ptr %14, align 8, !tbaa !5
  %7103 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7102, i32 0, i32 3
  %7104 = load i8, ptr %7103, align 1, !tbaa !13
  %7105 = zext i8 %7104 to i32
  %7106 = and i32 %7105, 15
  %7107 = icmp eq i32 1, %7106
  br i1 %7107, label %7108, label %7109

7108:                                             ; preds = %7101
  br label %7251

7109:                                             ; preds = %7101
  %7110 = load ptr, ptr %14, align 8, !tbaa !5
  %7111 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7110, i32 0, i32 3
  %7112 = load i8, ptr %7111, align 1, !tbaa !13
  %7113 = zext i8 %7112 to i32
  %7114 = and i32 %7113, 15
  %7115 = icmp eq i32 2, %7114
  br i1 %7115, label %7116, label %7117

7116:                                             ; preds = %7109
  br label %7249

7117:                                             ; preds = %7109
  %7118 = load ptr, ptr %14, align 8, !tbaa !5
  %7119 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7118, i32 0, i32 3
  %7120 = load i8, ptr %7119, align 1, !tbaa !13
  %7121 = zext i8 %7120 to i32
  %7122 = and i32 %7121, 15
  %7123 = icmp eq i32 3, %7122
  br i1 %7123, label %7124, label %7125

7124:                                             ; preds = %7117
  br label %7247

7125:                                             ; preds = %7117
  %7126 = load ptr, ptr %14, align 8, !tbaa !5
  %7127 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7126, i32 0, i32 3
  %7128 = load i8, ptr %7127, align 1, !tbaa !13
  %7129 = zext i8 %7128 to i32
  %7130 = and i32 %7129, 15
  %7131 = icmp eq i32 4, %7130
  br i1 %7131, label %7132, label %7133

7132:                                             ; preds = %7125
  br label %7245

7133:                                             ; preds = %7125
  %7134 = load ptr, ptr %14, align 8, !tbaa !5
  %7135 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7134, i32 0, i32 3
  %7136 = load i8, ptr %7135, align 1, !tbaa !13
  %7137 = zext i8 %7136 to i32
  %7138 = and i32 %7137, 15
  %7139 = icmp eq i32 5, %7138
  br i1 %7139, label %7140, label %7141

7140:                                             ; preds = %7133
  br label %7243

7141:                                             ; preds = %7133
  %7142 = load ptr, ptr %14, align 8, !tbaa !5
  %7143 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7142, i32 0, i32 3
  %7144 = load i8, ptr %7143, align 1, !tbaa !13
  %7145 = zext i8 %7144 to i32
  %7146 = and i32 %7145, 15
  %7147 = icmp eq i32 6, %7146
  br i1 %7147, label %7148, label %7149

7148:                                             ; preds = %7141
  br label %7241

7149:                                             ; preds = %7141
  %7150 = load ptr, ptr %14, align 8, !tbaa !5
  %7151 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7150, i32 0, i32 3
  %7152 = load i8, ptr %7151, align 1, !tbaa !13
  %7153 = zext i8 %7152 to i32
  %7154 = and i32 %7153, 15
  %7155 = icmp eq i32 7, %7154
  br i1 %7155, label %7156, label %7157

7156:                                             ; preds = %7149
  br label %7239

7157:                                             ; preds = %7149
  %7158 = load ptr, ptr %14, align 8, !tbaa !5
  %7159 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7158, i32 0, i32 3
  %7160 = load i8, ptr %7159, align 1, !tbaa !13
  %7161 = zext i8 %7160 to i32
  %7162 = and i32 %7161, 15
  %7163 = icmp eq i32 8, %7162
  br i1 %7163, label %7164, label %7165

7164:                                             ; preds = %7157
  br label %7237

7165:                                             ; preds = %7157
  %7166 = load ptr, ptr %14, align 8, !tbaa !5
  %7167 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7166, i32 0, i32 3
  %7168 = load i8, ptr %7167, align 1, !tbaa !13
  %7169 = zext i8 %7168 to i32
  %7170 = and i32 %7169, 15
  %7171 = icmp eq i32 9, %7170
  br i1 %7171, label %7172, label %7173

7172:                                             ; preds = %7165
  br label %7235

7173:                                             ; preds = %7165
  %7174 = load ptr, ptr %14, align 8, !tbaa !5
  %7175 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7174, i32 0, i32 3
  %7176 = load i8, ptr %7175, align 1, !tbaa !13
  %7177 = zext i8 %7176 to i32
  %7178 = and i32 %7177, 15
  %7179 = icmp eq i32 10, %7178
  br i1 %7179, label %7180, label %7181

7180:                                             ; preds = %7173
  br label %7233

7181:                                             ; preds = %7173
  %7182 = load ptr, ptr %14, align 8, !tbaa !5
  %7183 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7182, i32 0, i32 3
  %7184 = load i8, ptr %7183, align 1, !tbaa !13
  %7185 = zext i8 %7184 to i32
  %7186 = and i32 %7185, 15
  %7187 = icmp eq i32 11, %7186
  br i1 %7187, label %7188, label %7189

7188:                                             ; preds = %7181
  br label %7231

7189:                                             ; preds = %7181
  %7190 = load ptr, ptr %14, align 8, !tbaa !5
  %7191 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7190, i32 0, i32 3
  %7192 = load i8, ptr %7191, align 1, !tbaa !13
  %7193 = zext i8 %7192 to i32
  %7194 = and i32 %7193, 15
  %7195 = icmp eq i32 12, %7194
  br i1 %7195, label %7196, label %7197

7196:                                             ; preds = %7189
  br label %7229

7197:                                             ; preds = %7189
  %7198 = load ptr, ptr %14, align 8, !tbaa !5
  %7199 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7198, i32 0, i32 3
  %7200 = load i8, ptr %7199, align 1, !tbaa !13
  %7201 = zext i8 %7200 to i32
  %7202 = and i32 %7201, 15
  %7203 = icmp eq i32 13, %7202
  br i1 %7203, label %7204, label %7205

7204:                                             ; preds = %7197
  br label %7227

7205:                                             ; preds = %7197
  %7206 = load ptr, ptr %14, align 8, !tbaa !5
  %7207 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7206, i32 0, i32 3
  %7208 = load i8, ptr %7207, align 1, !tbaa !13
  %7209 = zext i8 %7208 to i32
  %7210 = and i32 %7209, 15
  %7211 = icmp eq i32 14, %7210
  br i1 %7211, label %7212, label %7213

7212:                                             ; preds = %7205
  br label %7225

7213:                                             ; preds = %7205
  %7214 = load ptr, ptr %14, align 8, !tbaa !5
  %7215 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7214, i32 0, i32 3
  %7216 = load i8, ptr %7215, align 1, !tbaa !13
  %7217 = zext i8 %7216 to i32
  %7218 = and i32 %7217, 15
  %7219 = icmp eq i32 15, %7218
  br i1 %7219, label %7220, label %7221

7220:                                             ; preds = %7213
  br label %7223

7221:                                             ; preds = %7213
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

7222:                                             ; No predecessors!
  br label %7223

7223:                                             ; preds = %7222, %7220
  %7224 = phi i32 [ 15, %7220 ], [ 0, %7222 ]
  br label %7225

7225:                                             ; preds = %7223, %7212
  %7226 = phi i32 [ 14, %7212 ], [ %7224, %7223 ]
  br label %7227

7227:                                             ; preds = %7225, %7204
  %7228 = phi i32 [ 12, %7204 ], [ %7226, %7225 ]
  br label %7229

7229:                                             ; preds = %7227, %7196
  %7230 = phi i32 [ 12, %7196 ], [ %7228, %7227 ]
  br label %7231

7231:                                             ; preds = %7229, %7188
  %7232 = phi i32 [ 10, %7188 ], [ %7230, %7229 ]
  br label %7233

7233:                                             ; preds = %7231, %7180
  %7234 = phi i32 [ 10, %7180 ], [ %7232, %7231 ]
  br label %7235

7235:                                             ; preds = %7233, %7172
  %7236 = phi i32 [ 8, %7172 ], [ %7234, %7233 ]
  br label %7237

7237:                                             ; preds = %7235, %7164
  %7238 = phi i32 [ 8, %7164 ], [ %7236, %7235 ]
  br label %7239

7239:                                             ; preds = %7237, %7156
  %7240 = phi i32 [ 6, %7156 ], [ %7238, %7237 ]
  br label %7241

7241:                                             ; preds = %7239, %7148
  %7242 = phi i32 [ 6, %7148 ], [ %7240, %7239 ]
  br label %7243

7243:                                             ; preds = %7241, %7140
  %7244 = phi i32 [ 5, %7140 ], [ %7242, %7241 ]
  br label %7245

7245:                                             ; preds = %7243, %7132
  %7246 = phi i32 [ 4, %7132 ], [ %7244, %7243 ]
  br label %7247

7247:                                             ; preds = %7245, %7124
  %7248 = phi i32 [ 3, %7124 ], [ %7246, %7245 ]
  br label %7249

7249:                                             ; preds = %7247, %7116
  %7250 = phi i32 [ 2, %7116 ], [ %7248, %7247 ]
  br label %7251

7251:                                             ; preds = %7249, %7108
  %7252 = phi i32 [ 1, %7108 ], [ %7250, %7249 ]
  br label %7253

7253:                                             ; preds = %7251, %7100
  %7254 = phi i32 [ 0, %7100 ], [ %7252, %7251 ]
  br label %7261

7255:                                             ; preds = %7086
  %7256 = load ptr, ptr %14, align 8, !tbaa !5
  %7257 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7256, i32 0, i32 3
  %7258 = load i8, ptr %7257, align 1, !tbaa !13
  %7259 = zext i8 %7258 to i32
  %7260 = ashr i32 %7259, 4
  br label %7261

7261:                                             ; preds = %7255, %7253
  %7262 = phi i32 [ %7254, %7253 ], [ %7260, %7255 ]
  %7263 = icmp eq i32 11, %7262
  br i1 %7263, label %7264, label %7265

7264:                                             ; preds = %7261
  br label %7629

7265:                                             ; preds = %7261
  %7266 = load ptr, ptr %14, align 8, !tbaa !5
  %7267 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7266, i32 0, i32 3
  %7268 = load i8, ptr %7267, align 1, !tbaa !13
  %7269 = zext i8 %7268 to i32
  %7270 = ashr i32 %7269, 4
  %7271 = icmp eq i32 0, %7270
  br i1 %7271, label %7272, label %7434

7272:                                             ; preds = %7265
  %7273 = load ptr, ptr %14, align 8, !tbaa !5
  %7274 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7273, i32 0, i32 3
  %7275 = load i8, ptr %7274, align 1, !tbaa !13
  %7276 = zext i8 %7275 to i32
  %7277 = and i32 %7276, 15
  %7278 = icmp eq i32 0, %7277
  br i1 %7278, label %7279, label %7280

7279:                                             ; preds = %7272
  br label %7432

7280:                                             ; preds = %7272
  %7281 = load ptr, ptr %14, align 8, !tbaa !5
  %7282 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7281, i32 0, i32 3
  %7283 = load i8, ptr %7282, align 1, !tbaa !13
  %7284 = zext i8 %7283 to i32
  %7285 = and i32 %7284, 15
  %7286 = icmp eq i32 1, %7285
  br i1 %7286, label %7287, label %7288

7287:                                             ; preds = %7280
  br label %7430

7288:                                             ; preds = %7280
  %7289 = load ptr, ptr %14, align 8, !tbaa !5
  %7290 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7289, i32 0, i32 3
  %7291 = load i8, ptr %7290, align 1, !tbaa !13
  %7292 = zext i8 %7291 to i32
  %7293 = and i32 %7292, 15
  %7294 = icmp eq i32 2, %7293
  br i1 %7294, label %7295, label %7296

7295:                                             ; preds = %7288
  br label %7428

7296:                                             ; preds = %7288
  %7297 = load ptr, ptr %14, align 8, !tbaa !5
  %7298 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7297, i32 0, i32 3
  %7299 = load i8, ptr %7298, align 1, !tbaa !13
  %7300 = zext i8 %7299 to i32
  %7301 = and i32 %7300, 15
  %7302 = icmp eq i32 3, %7301
  br i1 %7302, label %7303, label %7304

7303:                                             ; preds = %7296
  br label %7426

7304:                                             ; preds = %7296
  %7305 = load ptr, ptr %14, align 8, !tbaa !5
  %7306 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7305, i32 0, i32 3
  %7307 = load i8, ptr %7306, align 1, !tbaa !13
  %7308 = zext i8 %7307 to i32
  %7309 = and i32 %7308, 15
  %7310 = icmp eq i32 4, %7309
  br i1 %7310, label %7311, label %7312

7311:                                             ; preds = %7304
  br label %7424

7312:                                             ; preds = %7304
  %7313 = load ptr, ptr %14, align 8, !tbaa !5
  %7314 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7313, i32 0, i32 3
  %7315 = load i8, ptr %7314, align 1, !tbaa !13
  %7316 = zext i8 %7315 to i32
  %7317 = and i32 %7316, 15
  %7318 = icmp eq i32 5, %7317
  br i1 %7318, label %7319, label %7320

7319:                                             ; preds = %7312
  br label %7422

7320:                                             ; preds = %7312
  %7321 = load ptr, ptr %14, align 8, !tbaa !5
  %7322 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7321, i32 0, i32 3
  %7323 = load i8, ptr %7322, align 1, !tbaa !13
  %7324 = zext i8 %7323 to i32
  %7325 = and i32 %7324, 15
  %7326 = icmp eq i32 6, %7325
  br i1 %7326, label %7327, label %7328

7327:                                             ; preds = %7320
  br label %7420

7328:                                             ; preds = %7320
  %7329 = load ptr, ptr %14, align 8, !tbaa !5
  %7330 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7329, i32 0, i32 3
  %7331 = load i8, ptr %7330, align 1, !tbaa !13
  %7332 = zext i8 %7331 to i32
  %7333 = and i32 %7332, 15
  %7334 = icmp eq i32 7, %7333
  br i1 %7334, label %7335, label %7336

7335:                                             ; preds = %7328
  br label %7418

7336:                                             ; preds = %7328
  %7337 = load ptr, ptr %14, align 8, !tbaa !5
  %7338 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7337, i32 0, i32 3
  %7339 = load i8, ptr %7338, align 1, !tbaa !13
  %7340 = zext i8 %7339 to i32
  %7341 = and i32 %7340, 15
  %7342 = icmp eq i32 8, %7341
  br i1 %7342, label %7343, label %7344

7343:                                             ; preds = %7336
  br label %7416

7344:                                             ; preds = %7336
  %7345 = load ptr, ptr %14, align 8, !tbaa !5
  %7346 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7345, i32 0, i32 3
  %7347 = load i8, ptr %7346, align 1, !tbaa !13
  %7348 = zext i8 %7347 to i32
  %7349 = and i32 %7348, 15
  %7350 = icmp eq i32 9, %7349
  br i1 %7350, label %7351, label %7352

7351:                                             ; preds = %7344
  br label %7414

7352:                                             ; preds = %7344
  %7353 = load ptr, ptr %14, align 8, !tbaa !5
  %7354 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7353, i32 0, i32 3
  %7355 = load i8, ptr %7354, align 1, !tbaa !13
  %7356 = zext i8 %7355 to i32
  %7357 = and i32 %7356, 15
  %7358 = icmp eq i32 10, %7357
  br i1 %7358, label %7359, label %7360

7359:                                             ; preds = %7352
  br label %7412

7360:                                             ; preds = %7352
  %7361 = load ptr, ptr %14, align 8, !tbaa !5
  %7362 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7361, i32 0, i32 3
  %7363 = load i8, ptr %7362, align 1, !tbaa !13
  %7364 = zext i8 %7363 to i32
  %7365 = and i32 %7364, 15
  %7366 = icmp eq i32 11, %7365
  br i1 %7366, label %7367, label %7368

7367:                                             ; preds = %7360
  br label %7410

7368:                                             ; preds = %7360
  %7369 = load ptr, ptr %14, align 8, !tbaa !5
  %7370 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7369, i32 0, i32 3
  %7371 = load i8, ptr %7370, align 1, !tbaa !13
  %7372 = zext i8 %7371 to i32
  %7373 = and i32 %7372, 15
  %7374 = icmp eq i32 12, %7373
  br i1 %7374, label %7375, label %7376

7375:                                             ; preds = %7368
  br label %7408

7376:                                             ; preds = %7368
  %7377 = load ptr, ptr %14, align 8, !tbaa !5
  %7378 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7377, i32 0, i32 3
  %7379 = load i8, ptr %7378, align 1, !tbaa !13
  %7380 = zext i8 %7379 to i32
  %7381 = and i32 %7380, 15
  %7382 = icmp eq i32 13, %7381
  br i1 %7382, label %7383, label %7384

7383:                                             ; preds = %7376
  br label %7406

7384:                                             ; preds = %7376
  %7385 = load ptr, ptr %14, align 8, !tbaa !5
  %7386 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7385, i32 0, i32 3
  %7387 = load i8, ptr %7386, align 1, !tbaa !13
  %7388 = zext i8 %7387 to i32
  %7389 = and i32 %7388, 15
  %7390 = icmp eq i32 14, %7389
  br i1 %7390, label %7391, label %7392

7391:                                             ; preds = %7384
  br label %7404

7392:                                             ; preds = %7384
  %7393 = load ptr, ptr %14, align 8, !tbaa !5
  %7394 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7393, i32 0, i32 3
  %7395 = load i8, ptr %7394, align 1, !tbaa !13
  %7396 = zext i8 %7395 to i32
  %7397 = and i32 %7396, 15
  %7398 = icmp eq i32 15, %7397
  br i1 %7398, label %7399, label %7400

7399:                                             ; preds = %7392
  br label %7402

7400:                                             ; preds = %7392
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

7401:                                             ; No predecessors!
  br label %7402

7402:                                             ; preds = %7401, %7399
  %7403 = phi i32 [ 15, %7399 ], [ 0, %7401 ]
  br label %7404

7404:                                             ; preds = %7402, %7391
  %7405 = phi i32 [ 14, %7391 ], [ %7403, %7402 ]
  br label %7406

7406:                                             ; preds = %7404, %7383
  %7407 = phi i32 [ 12, %7383 ], [ %7405, %7404 ]
  br label %7408

7408:                                             ; preds = %7406, %7375
  %7409 = phi i32 [ 12, %7375 ], [ %7407, %7406 ]
  br label %7410

7410:                                             ; preds = %7408, %7367
  %7411 = phi i32 [ 10, %7367 ], [ %7409, %7408 ]
  br label %7412

7412:                                             ; preds = %7410, %7359
  %7413 = phi i32 [ 10, %7359 ], [ %7411, %7410 ]
  br label %7414

7414:                                             ; preds = %7412, %7351
  %7415 = phi i32 [ 8, %7351 ], [ %7413, %7412 ]
  br label %7416

7416:                                             ; preds = %7414, %7343
  %7417 = phi i32 [ 8, %7343 ], [ %7415, %7414 ]
  br label %7418

7418:                                             ; preds = %7416, %7335
  %7419 = phi i32 [ 6, %7335 ], [ %7417, %7416 ]
  br label %7420

7420:                                             ; preds = %7418, %7327
  %7421 = phi i32 [ 6, %7327 ], [ %7419, %7418 ]
  br label %7422

7422:                                             ; preds = %7420, %7319
  %7423 = phi i32 [ 5, %7319 ], [ %7421, %7420 ]
  br label %7424

7424:                                             ; preds = %7422, %7311
  %7425 = phi i32 [ 4, %7311 ], [ %7423, %7422 ]
  br label %7426

7426:                                             ; preds = %7424, %7303
  %7427 = phi i32 [ 3, %7303 ], [ %7425, %7424 ]
  br label %7428

7428:                                             ; preds = %7426, %7295
  %7429 = phi i32 [ 2, %7295 ], [ %7427, %7426 ]
  br label %7430

7430:                                             ; preds = %7428, %7287
  %7431 = phi i32 [ 1, %7287 ], [ %7429, %7428 ]
  br label %7432

7432:                                             ; preds = %7430, %7279
  %7433 = phi i32 [ 0, %7279 ], [ %7431, %7430 ]
  br label %7440

7434:                                             ; preds = %7265
  %7435 = load ptr, ptr %14, align 8, !tbaa !5
  %7436 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7435, i32 0, i32 3
  %7437 = load i8, ptr %7436, align 1, !tbaa !13
  %7438 = zext i8 %7437 to i32
  %7439 = ashr i32 %7438, 4
  br label %7440

7440:                                             ; preds = %7434, %7432
  %7441 = phi i32 [ %7433, %7432 ], [ %7439, %7434 ]
  %7442 = icmp eq i32 12, %7441
  br i1 %7442, label %7443, label %7444

7443:                                             ; preds = %7440
  br label %7627

7444:                                             ; preds = %7440
  %7445 = load ptr, ptr %14, align 8, !tbaa !5
  %7446 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7445, i32 0, i32 3
  %7447 = load i8, ptr %7446, align 1, !tbaa !13
  %7448 = zext i8 %7447 to i32
  %7449 = ashr i32 %7448, 4
  %7450 = icmp eq i32 0, %7449
  br i1 %7450, label %7451, label %7613

7451:                                             ; preds = %7444
  %7452 = load ptr, ptr %14, align 8, !tbaa !5
  %7453 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7452, i32 0, i32 3
  %7454 = load i8, ptr %7453, align 1, !tbaa !13
  %7455 = zext i8 %7454 to i32
  %7456 = and i32 %7455, 15
  %7457 = icmp eq i32 0, %7456
  br i1 %7457, label %7458, label %7459

7458:                                             ; preds = %7451
  br label %7611

7459:                                             ; preds = %7451
  %7460 = load ptr, ptr %14, align 8, !tbaa !5
  %7461 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7460, i32 0, i32 3
  %7462 = load i8, ptr %7461, align 1, !tbaa !13
  %7463 = zext i8 %7462 to i32
  %7464 = and i32 %7463, 15
  %7465 = icmp eq i32 1, %7464
  br i1 %7465, label %7466, label %7467

7466:                                             ; preds = %7459
  br label %7609

7467:                                             ; preds = %7459
  %7468 = load ptr, ptr %14, align 8, !tbaa !5
  %7469 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7468, i32 0, i32 3
  %7470 = load i8, ptr %7469, align 1, !tbaa !13
  %7471 = zext i8 %7470 to i32
  %7472 = and i32 %7471, 15
  %7473 = icmp eq i32 2, %7472
  br i1 %7473, label %7474, label %7475

7474:                                             ; preds = %7467
  br label %7607

7475:                                             ; preds = %7467
  %7476 = load ptr, ptr %14, align 8, !tbaa !5
  %7477 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7476, i32 0, i32 3
  %7478 = load i8, ptr %7477, align 1, !tbaa !13
  %7479 = zext i8 %7478 to i32
  %7480 = and i32 %7479, 15
  %7481 = icmp eq i32 3, %7480
  br i1 %7481, label %7482, label %7483

7482:                                             ; preds = %7475
  br label %7605

7483:                                             ; preds = %7475
  %7484 = load ptr, ptr %14, align 8, !tbaa !5
  %7485 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7484, i32 0, i32 3
  %7486 = load i8, ptr %7485, align 1, !tbaa !13
  %7487 = zext i8 %7486 to i32
  %7488 = and i32 %7487, 15
  %7489 = icmp eq i32 4, %7488
  br i1 %7489, label %7490, label %7491

7490:                                             ; preds = %7483
  br label %7603

7491:                                             ; preds = %7483
  %7492 = load ptr, ptr %14, align 8, !tbaa !5
  %7493 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7492, i32 0, i32 3
  %7494 = load i8, ptr %7493, align 1, !tbaa !13
  %7495 = zext i8 %7494 to i32
  %7496 = and i32 %7495, 15
  %7497 = icmp eq i32 5, %7496
  br i1 %7497, label %7498, label %7499

7498:                                             ; preds = %7491
  br label %7601

7499:                                             ; preds = %7491
  %7500 = load ptr, ptr %14, align 8, !tbaa !5
  %7501 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7500, i32 0, i32 3
  %7502 = load i8, ptr %7501, align 1, !tbaa !13
  %7503 = zext i8 %7502 to i32
  %7504 = and i32 %7503, 15
  %7505 = icmp eq i32 6, %7504
  br i1 %7505, label %7506, label %7507

7506:                                             ; preds = %7499
  br label %7599

7507:                                             ; preds = %7499
  %7508 = load ptr, ptr %14, align 8, !tbaa !5
  %7509 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7508, i32 0, i32 3
  %7510 = load i8, ptr %7509, align 1, !tbaa !13
  %7511 = zext i8 %7510 to i32
  %7512 = and i32 %7511, 15
  %7513 = icmp eq i32 7, %7512
  br i1 %7513, label %7514, label %7515

7514:                                             ; preds = %7507
  br label %7597

7515:                                             ; preds = %7507
  %7516 = load ptr, ptr %14, align 8, !tbaa !5
  %7517 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7516, i32 0, i32 3
  %7518 = load i8, ptr %7517, align 1, !tbaa !13
  %7519 = zext i8 %7518 to i32
  %7520 = and i32 %7519, 15
  %7521 = icmp eq i32 8, %7520
  br i1 %7521, label %7522, label %7523

7522:                                             ; preds = %7515
  br label %7595

7523:                                             ; preds = %7515
  %7524 = load ptr, ptr %14, align 8, !tbaa !5
  %7525 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7524, i32 0, i32 3
  %7526 = load i8, ptr %7525, align 1, !tbaa !13
  %7527 = zext i8 %7526 to i32
  %7528 = and i32 %7527, 15
  %7529 = icmp eq i32 9, %7528
  br i1 %7529, label %7530, label %7531

7530:                                             ; preds = %7523
  br label %7593

7531:                                             ; preds = %7523
  %7532 = load ptr, ptr %14, align 8, !tbaa !5
  %7533 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7532, i32 0, i32 3
  %7534 = load i8, ptr %7533, align 1, !tbaa !13
  %7535 = zext i8 %7534 to i32
  %7536 = and i32 %7535, 15
  %7537 = icmp eq i32 10, %7536
  br i1 %7537, label %7538, label %7539

7538:                                             ; preds = %7531
  br label %7591

7539:                                             ; preds = %7531
  %7540 = load ptr, ptr %14, align 8, !tbaa !5
  %7541 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7540, i32 0, i32 3
  %7542 = load i8, ptr %7541, align 1, !tbaa !13
  %7543 = zext i8 %7542 to i32
  %7544 = and i32 %7543, 15
  %7545 = icmp eq i32 11, %7544
  br i1 %7545, label %7546, label %7547

7546:                                             ; preds = %7539
  br label %7589

7547:                                             ; preds = %7539
  %7548 = load ptr, ptr %14, align 8, !tbaa !5
  %7549 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7548, i32 0, i32 3
  %7550 = load i8, ptr %7549, align 1, !tbaa !13
  %7551 = zext i8 %7550 to i32
  %7552 = and i32 %7551, 15
  %7553 = icmp eq i32 12, %7552
  br i1 %7553, label %7554, label %7555

7554:                                             ; preds = %7547
  br label %7587

7555:                                             ; preds = %7547
  %7556 = load ptr, ptr %14, align 8, !tbaa !5
  %7557 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7556, i32 0, i32 3
  %7558 = load i8, ptr %7557, align 1, !tbaa !13
  %7559 = zext i8 %7558 to i32
  %7560 = and i32 %7559, 15
  %7561 = icmp eq i32 13, %7560
  br i1 %7561, label %7562, label %7563

7562:                                             ; preds = %7555
  br label %7585

7563:                                             ; preds = %7555
  %7564 = load ptr, ptr %14, align 8, !tbaa !5
  %7565 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7564, i32 0, i32 3
  %7566 = load i8, ptr %7565, align 1, !tbaa !13
  %7567 = zext i8 %7566 to i32
  %7568 = and i32 %7567, 15
  %7569 = icmp eq i32 14, %7568
  br i1 %7569, label %7570, label %7571

7570:                                             ; preds = %7563
  br label %7583

7571:                                             ; preds = %7563
  %7572 = load ptr, ptr %14, align 8, !tbaa !5
  %7573 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7572, i32 0, i32 3
  %7574 = load i8, ptr %7573, align 1, !tbaa !13
  %7575 = zext i8 %7574 to i32
  %7576 = and i32 %7575, 15
  %7577 = icmp eq i32 15, %7576
  br i1 %7577, label %7578, label %7579

7578:                                             ; preds = %7571
  br label %7581

7579:                                             ; preds = %7571
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

7580:                                             ; No predecessors!
  br label %7581

7581:                                             ; preds = %7580, %7578
  %7582 = phi i32 [ 15, %7578 ], [ 0, %7580 ]
  br label %7583

7583:                                             ; preds = %7581, %7570
  %7584 = phi i32 [ 14, %7570 ], [ %7582, %7581 ]
  br label %7585

7585:                                             ; preds = %7583, %7562
  %7586 = phi i32 [ 12, %7562 ], [ %7584, %7583 ]
  br label %7587

7587:                                             ; preds = %7585, %7554
  %7588 = phi i32 [ 12, %7554 ], [ %7586, %7585 ]
  br label %7589

7589:                                             ; preds = %7587, %7546
  %7590 = phi i32 [ 10, %7546 ], [ %7588, %7587 ]
  br label %7591

7591:                                             ; preds = %7589, %7538
  %7592 = phi i32 [ 10, %7538 ], [ %7590, %7589 ]
  br label %7593

7593:                                             ; preds = %7591, %7530
  %7594 = phi i32 [ 8, %7530 ], [ %7592, %7591 ]
  br label %7595

7595:                                             ; preds = %7593, %7522
  %7596 = phi i32 [ 8, %7522 ], [ %7594, %7593 ]
  br label %7597

7597:                                             ; preds = %7595, %7514
  %7598 = phi i32 [ 6, %7514 ], [ %7596, %7595 ]
  br label %7599

7599:                                             ; preds = %7597, %7506
  %7600 = phi i32 [ 6, %7506 ], [ %7598, %7597 ]
  br label %7601

7601:                                             ; preds = %7599, %7498
  %7602 = phi i32 [ 5, %7498 ], [ %7600, %7599 ]
  br label %7603

7603:                                             ; preds = %7601, %7490
  %7604 = phi i32 [ 4, %7490 ], [ %7602, %7601 ]
  br label %7605

7605:                                             ; preds = %7603, %7482
  %7606 = phi i32 [ 3, %7482 ], [ %7604, %7603 ]
  br label %7607

7607:                                             ; preds = %7605, %7474
  %7608 = phi i32 [ 2, %7474 ], [ %7606, %7605 ]
  br label %7609

7609:                                             ; preds = %7607, %7466
  %7610 = phi i32 [ 1, %7466 ], [ %7608, %7607 ]
  br label %7611

7611:                                             ; preds = %7609, %7458
  %7612 = phi i32 [ 0, %7458 ], [ %7610, %7609 ]
  br label %7619

7613:                                             ; preds = %7444
  %7614 = load ptr, ptr %14, align 8, !tbaa !5
  %7615 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7614, i32 0, i32 3
  %7616 = load i8, ptr %7615, align 1, !tbaa !13
  %7617 = zext i8 %7616 to i32
  %7618 = ashr i32 %7617, 4
  br label %7619

7619:                                             ; preds = %7613, %7611
  %7620 = phi i32 [ %7612, %7611 ], [ %7618, %7613 ]
  %7621 = icmp eq i32 13, %7620
  br i1 %7621, label %7622, label %7623

7622:                                             ; preds = %7619
  br label %7625

7623:                                             ; preds = %7619
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 601, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

7624:                                             ; No predecessors!
  br label %7625

7625:                                             ; preds = %7624, %7622
  %7626 = phi i32 [ 1, %7622 ], [ 0, %7624 ]
  br label %7627

7627:                                             ; preds = %7625, %7443
  %7628 = phi i32 [ 1, %7443 ], [ %7626, %7625 ]
  br label %7629

7629:                                             ; preds = %7627, %7264
  %7630 = phi i32 [ 2, %7264 ], [ %7628, %7627 ]
  br label %7631

7631:                                             ; preds = %7629, %7085
  %7632 = phi i32 [ 2, %7085 ], [ %7630, %7629 ]
  br label %7633

7633:                                             ; preds = %7631, %6906
  %7634 = phi i32 [ 4, %6906 ], [ %7632, %7631 ]
  br label %7635

7635:                                             ; preds = %7633, %6727
  %7636 = phi i32 [ 4, %6727 ], [ %7634, %7633 ]
  br label %7637

7637:                                             ; preds = %7635, %6548
  %7638 = phi i32 [ 8, %6548 ], [ %7636, %7635 ]
  br label %7639

7639:                                             ; preds = %7637, %6369
  %7640 = phi i32 [ 8, %6369 ], [ %7638, %7637 ]
  br label %7641

7641:                                             ; preds = %7639, %6190
  %7642 = phi i32 [ 1, %6190 ], [ %7640, %7639 ]
  br label %7643

7643:                                             ; preds = %7641, %6011
  %7644 = phi i32 [ 1, %6011 ], [ %7642, %7641 ]
  br label %7645

7645:                                             ; preds = %7643, %5832
  %7646 = phi i32 [ 2, %5832 ], [ %7644, %7643 ]
  br label %7647

7647:                                             ; preds = %7645, %5653
  %7648 = phi i32 [ 2, %5653 ], [ %7646, %7645 ]
  br label %7649

7649:                                             ; preds = %7647, %5474
  %7650 = phi i32 [ 4, %5474 ], [ %7648, %7647 ]
  br label %7651

7651:                                             ; preds = %7649, %5295
  %7652 = phi i32 [ 8, %5295 ], [ %7650, %7649 ]
  %7653 = load i32, ptr %15, align 4, !tbaa !9
  %7654 = load i32, ptr %17, align 4, !tbaa !9
  %7655 = sub i32 %7654, 1
  %7656 = mul i32 %7653, %7655
  %7657 = load i32, ptr %19, align 4, !tbaa !9
  %7658 = add i32 %7656, %7657
  %7659 = mul i32 %7652, %7658
  br label %7660

7660:                                             ; preds = %7651, %5111
  %7661 = phi i32 [ %5116, %5111 ], [ %7659, %7651 ]
  store i32 %7661, ptr %26, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #4
  %7662 = load ptr, ptr %11, align 8, !tbaa !5
  %7663 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %7662, i32 0, i32 6
  %7664 = load i32, ptr %7663, align 4, !tbaa !14
  %7665 = icmp uge i32 %7664, 2201
  br i1 %7665, label %7666, label %7671

7666:                                             ; preds = %7660
  %7667 = load ptr, ptr %11, align 8, !tbaa !5
  %7668 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %7667, i32 0, i32 6
  %7669 = load i32, ptr %7668, align 4, !tbaa !14
  %7670 = icmp ule i32 %7669, 2999
  br label %7671

7671:                                             ; preds = %7666, %7660
  %7672 = phi i1 [ false, %7660 ], [ %7670, %7666 ]
  %7673 = zext i1 %7672 to i32
  %7674 = trunc i32 %7673 to i8
  store i8 %7674, ptr %27, align 1, !tbaa !16
  %7675 = load i32, ptr %20, align 4, !tbaa !9
  %7676 = load ptr, ptr %13, align 8, !tbaa !5
  %7677 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %7676, i32 0, i32 24
  %7678 = load i32, ptr %7677, align 8, !tbaa !17
  %7679 = icmp ugt i32 %7678, 0
  br i1 %7679, label %7680, label %7681

7680:                                             ; preds = %7671
  store i32 1, ptr %28, align 4
  br label %13848

7681:                                             ; preds = %7671
  store i32 0, ptr %21, align 4, !tbaa !9
  br label %7682

7682:                                             ; preds = %10736, %7681
  %7683 = load i32, ptr %21, align 4, !tbaa !9
  %7684 = load i32, ptr %18, align 4, !tbaa !9
  %7685 = icmp ult i32 %7683, %7684
  br i1 %7685, label %7686, label %10739

7686:                                             ; preds = %7682
  store i32 0, ptr %22, align 4, !tbaa !9
  br label %7687

7687:                                             ; preds = %10712, %7686
  %7688 = load i32, ptr %22, align 4, !tbaa !9
  %7689 = load i32, ptr %17, align 4, !tbaa !9
  %7690 = icmp ult i32 %7688, %7689
  br i1 %7690, label %7691, label %10715

7691:                                             ; preds = %7687
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #4
  %7692 = load ptr, ptr %14, align 8, !tbaa !5
  %7693 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7692, i32 0, i32 3
  %7694 = load i8, ptr %7693, align 1, !tbaa !13
  %7695 = zext i8 %7694 to i32
  %7696 = ashr i32 %7695, 4
  %7697 = icmp eq i32 0, %7696
  br i1 %7697, label %7698, label %7860

7698:                                             ; preds = %7691
  %7699 = load ptr, ptr %14, align 8, !tbaa !5
  %7700 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7699, i32 0, i32 3
  %7701 = load i8, ptr %7700, align 1, !tbaa !13
  %7702 = zext i8 %7701 to i32
  %7703 = and i32 %7702, 15
  %7704 = icmp eq i32 0, %7703
  br i1 %7704, label %7705, label %7706

7705:                                             ; preds = %7698
  br label %7858

7706:                                             ; preds = %7698
  %7707 = load ptr, ptr %14, align 8, !tbaa !5
  %7708 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7707, i32 0, i32 3
  %7709 = load i8, ptr %7708, align 1, !tbaa !13
  %7710 = zext i8 %7709 to i32
  %7711 = and i32 %7710, 15
  %7712 = icmp eq i32 1, %7711
  br i1 %7712, label %7713, label %7714

7713:                                             ; preds = %7706
  br label %7856

7714:                                             ; preds = %7706
  %7715 = load ptr, ptr %14, align 8, !tbaa !5
  %7716 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7715, i32 0, i32 3
  %7717 = load i8, ptr %7716, align 1, !tbaa !13
  %7718 = zext i8 %7717 to i32
  %7719 = and i32 %7718, 15
  %7720 = icmp eq i32 2, %7719
  br i1 %7720, label %7721, label %7722

7721:                                             ; preds = %7714
  br label %7854

7722:                                             ; preds = %7714
  %7723 = load ptr, ptr %14, align 8, !tbaa !5
  %7724 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7723, i32 0, i32 3
  %7725 = load i8, ptr %7724, align 1, !tbaa !13
  %7726 = zext i8 %7725 to i32
  %7727 = and i32 %7726, 15
  %7728 = icmp eq i32 3, %7727
  br i1 %7728, label %7729, label %7730

7729:                                             ; preds = %7722
  br label %7852

7730:                                             ; preds = %7722
  %7731 = load ptr, ptr %14, align 8, !tbaa !5
  %7732 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7731, i32 0, i32 3
  %7733 = load i8, ptr %7732, align 1, !tbaa !13
  %7734 = zext i8 %7733 to i32
  %7735 = and i32 %7734, 15
  %7736 = icmp eq i32 4, %7735
  br i1 %7736, label %7737, label %7738

7737:                                             ; preds = %7730
  br label %7850

7738:                                             ; preds = %7730
  %7739 = load ptr, ptr %14, align 8, !tbaa !5
  %7740 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7739, i32 0, i32 3
  %7741 = load i8, ptr %7740, align 1, !tbaa !13
  %7742 = zext i8 %7741 to i32
  %7743 = and i32 %7742, 15
  %7744 = icmp eq i32 5, %7743
  br i1 %7744, label %7745, label %7746

7745:                                             ; preds = %7738
  br label %7848

7746:                                             ; preds = %7738
  %7747 = load ptr, ptr %14, align 8, !tbaa !5
  %7748 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7747, i32 0, i32 3
  %7749 = load i8, ptr %7748, align 1, !tbaa !13
  %7750 = zext i8 %7749 to i32
  %7751 = and i32 %7750, 15
  %7752 = icmp eq i32 6, %7751
  br i1 %7752, label %7753, label %7754

7753:                                             ; preds = %7746
  br label %7846

7754:                                             ; preds = %7746
  %7755 = load ptr, ptr %14, align 8, !tbaa !5
  %7756 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7755, i32 0, i32 3
  %7757 = load i8, ptr %7756, align 1, !tbaa !13
  %7758 = zext i8 %7757 to i32
  %7759 = and i32 %7758, 15
  %7760 = icmp eq i32 7, %7759
  br i1 %7760, label %7761, label %7762

7761:                                             ; preds = %7754
  br label %7844

7762:                                             ; preds = %7754
  %7763 = load ptr, ptr %14, align 8, !tbaa !5
  %7764 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7763, i32 0, i32 3
  %7765 = load i8, ptr %7764, align 1, !tbaa !13
  %7766 = zext i8 %7765 to i32
  %7767 = and i32 %7766, 15
  %7768 = icmp eq i32 8, %7767
  br i1 %7768, label %7769, label %7770

7769:                                             ; preds = %7762
  br label %7842

7770:                                             ; preds = %7762
  %7771 = load ptr, ptr %14, align 8, !tbaa !5
  %7772 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7771, i32 0, i32 3
  %7773 = load i8, ptr %7772, align 1, !tbaa !13
  %7774 = zext i8 %7773 to i32
  %7775 = and i32 %7774, 15
  %7776 = icmp eq i32 9, %7775
  br i1 %7776, label %7777, label %7778

7777:                                             ; preds = %7770
  br label %7840

7778:                                             ; preds = %7770
  %7779 = load ptr, ptr %14, align 8, !tbaa !5
  %7780 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7779, i32 0, i32 3
  %7781 = load i8, ptr %7780, align 1, !tbaa !13
  %7782 = zext i8 %7781 to i32
  %7783 = and i32 %7782, 15
  %7784 = icmp eq i32 10, %7783
  br i1 %7784, label %7785, label %7786

7785:                                             ; preds = %7778
  br label %7838

7786:                                             ; preds = %7778
  %7787 = load ptr, ptr %14, align 8, !tbaa !5
  %7788 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7787, i32 0, i32 3
  %7789 = load i8, ptr %7788, align 1, !tbaa !13
  %7790 = zext i8 %7789 to i32
  %7791 = and i32 %7790, 15
  %7792 = icmp eq i32 11, %7791
  br i1 %7792, label %7793, label %7794

7793:                                             ; preds = %7786
  br label %7836

7794:                                             ; preds = %7786
  %7795 = load ptr, ptr %14, align 8, !tbaa !5
  %7796 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7795, i32 0, i32 3
  %7797 = load i8, ptr %7796, align 1, !tbaa !13
  %7798 = zext i8 %7797 to i32
  %7799 = and i32 %7798, 15
  %7800 = icmp eq i32 12, %7799
  br i1 %7800, label %7801, label %7802

7801:                                             ; preds = %7794
  br label %7834

7802:                                             ; preds = %7794
  %7803 = load ptr, ptr %14, align 8, !tbaa !5
  %7804 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7803, i32 0, i32 3
  %7805 = load i8, ptr %7804, align 1, !tbaa !13
  %7806 = zext i8 %7805 to i32
  %7807 = and i32 %7806, 15
  %7808 = icmp eq i32 13, %7807
  br i1 %7808, label %7809, label %7810

7809:                                             ; preds = %7802
  br label %7832

7810:                                             ; preds = %7802
  %7811 = load ptr, ptr %14, align 8, !tbaa !5
  %7812 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7811, i32 0, i32 3
  %7813 = load i8, ptr %7812, align 1, !tbaa !13
  %7814 = zext i8 %7813 to i32
  %7815 = and i32 %7814, 15
  %7816 = icmp eq i32 14, %7815
  br i1 %7816, label %7817, label %7818

7817:                                             ; preds = %7810
  br label %7830

7818:                                             ; preds = %7810
  %7819 = load ptr, ptr %14, align 8, !tbaa !5
  %7820 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7819, i32 0, i32 3
  %7821 = load i8, ptr %7820, align 1, !tbaa !13
  %7822 = zext i8 %7821 to i32
  %7823 = and i32 %7822, 15
  %7824 = icmp eq i32 15, %7823
  br i1 %7824, label %7825, label %7826

7825:                                             ; preds = %7818
  br label %7828

7826:                                             ; preds = %7818
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 609, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

7827:                                             ; No predecessors!
  br label %7828

7828:                                             ; preds = %7827, %7825
  %7829 = phi i32 [ 15, %7825 ], [ 0, %7827 ]
  br label %7830

7830:                                             ; preds = %7828, %7817
  %7831 = phi i32 [ 14, %7817 ], [ %7829, %7828 ]
  br label %7832

7832:                                             ; preds = %7830, %7809
  %7833 = phi i32 [ 12, %7809 ], [ %7831, %7830 ]
  br label %7834

7834:                                             ; preds = %7832, %7801
  %7835 = phi i32 [ 12, %7801 ], [ %7833, %7832 ]
  br label %7836

7836:                                             ; preds = %7834, %7793
  %7837 = phi i32 [ 10, %7793 ], [ %7835, %7834 ]
  br label %7838

7838:                                             ; preds = %7836, %7785
  %7839 = phi i32 [ 10, %7785 ], [ %7837, %7836 ]
  br label %7840

7840:                                             ; preds = %7838, %7777
  %7841 = phi i32 [ 8, %7777 ], [ %7839, %7838 ]
  br label %7842

7842:                                             ; preds = %7840, %7769
  %7843 = phi i32 [ 8, %7769 ], [ %7841, %7840 ]
  br label %7844

7844:                                             ; preds = %7842, %7761
  %7845 = phi i32 [ 6, %7761 ], [ %7843, %7842 ]
  br label %7846

7846:                                             ; preds = %7844, %7753
  %7847 = phi i32 [ 6, %7753 ], [ %7845, %7844 ]
  br label %7848

7848:                                             ; preds = %7846, %7745
  %7849 = phi i32 [ 5, %7745 ], [ %7847, %7846 ]
  br label %7850

7850:                                             ; preds = %7848, %7737
  %7851 = phi i32 [ 4, %7737 ], [ %7849, %7848 ]
  br label %7852

7852:                                             ; preds = %7850, %7729
  %7853 = phi i32 [ 3, %7729 ], [ %7851, %7850 ]
  br label %7854

7854:                                             ; preds = %7852, %7721
  %7855 = phi i32 [ 2, %7721 ], [ %7853, %7852 ]
  br label %7856

7856:                                             ; preds = %7854, %7713
  %7857 = phi i32 [ 1, %7713 ], [ %7855, %7854 ]
  br label %7858

7858:                                             ; preds = %7856, %7705
  %7859 = phi i32 [ 0, %7705 ], [ %7857, %7856 ]
  br label %7866

7860:                                             ; preds = %7691
  %7861 = load ptr, ptr %14, align 8, !tbaa !5
  %7862 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7861, i32 0, i32 3
  %7863 = load i8, ptr %7862, align 1, !tbaa !13
  %7864 = zext i8 %7863 to i32
  %7865 = ashr i32 %7864, 4
  br label %7866

7866:                                             ; preds = %7860, %7858
  %7867 = phi i32 [ %7859, %7858 ], [ %7865, %7860 ]
  %7868 = icmp eq i32 1, %7867
  br i1 %7868, label %7869, label %7879

7869:                                             ; preds = %7866
  %7870 = load i32, ptr %22, align 4, !tbaa !9
  %7871 = load i32, ptr %17, align 4, !tbaa !9
  %7872 = sub i32 %7871, 1
  %7873 = icmp eq i32 %7870, %7872
  br i1 %7873, label %7874, label %7876

7874:                                             ; preds = %7869
  %7875 = load i32, ptr %19, align 4, !tbaa !9
  br label %7877

7876:                                             ; preds = %7869
  br label %7877

7877:                                             ; preds = %7876, %7874
  %7878 = phi i32 [ %7875, %7874 ], [ 0, %7876 ]
  br label %7897

7879:                                             ; preds = %7866
  %7880 = load i32, ptr %22, align 4, !tbaa !9
  %7881 = load i32, ptr %17, align 4, !tbaa !9
  %7882 = sub i32 %7881, 1
  %7883 = icmp eq i32 %7880, %7882
  br i1 %7883, label %7884, label %7893

7884:                                             ; preds = %7879
  %7885 = load i32, ptr %19, align 4, !tbaa !9
  %7886 = icmp ugt i32 %7885, 0
  br i1 %7886, label %7887, label %7889

7887:                                             ; preds = %7884
  %7888 = load i32, ptr %19, align 4, !tbaa !9
  br label %7891

7889:                                             ; preds = %7884
  %7890 = load i32, ptr %15, align 4, !tbaa !9
  br label %7891

7891:                                             ; preds = %7889, %7887
  %7892 = phi i32 [ %7888, %7887 ], [ %7890, %7889 ]
  br label %7895

7893:                                             ; preds = %7879
  %7894 = load i32, ptr %15, align 4, !tbaa !9
  br label %7895

7895:                                             ; preds = %7893, %7891
  %7896 = phi i32 [ %7892, %7891 ], [ %7894, %7893 ]
  br label %7897

7897:                                             ; preds = %7895, %7877
  %7898 = phi i32 [ %7878, %7877 ], [ %7896, %7895 ]
  store i32 %7898, ptr %29, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #4
  %7899 = load ptr, ptr %14, align 8, !tbaa !5
  %7900 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7899, i32 0, i32 3
  %7901 = load i8, ptr %7900, align 1, !tbaa !13
  %7902 = zext i8 %7901 to i32
  %7903 = ashr i32 %7902, 4
  %7904 = icmp eq i32 0, %7903
  br i1 %7904, label %7905, label %8067

7905:                                             ; preds = %7897
  %7906 = load ptr, ptr %14, align 8, !tbaa !5
  %7907 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7906, i32 0, i32 3
  %7908 = load i8, ptr %7907, align 1, !tbaa !13
  %7909 = zext i8 %7908 to i32
  %7910 = and i32 %7909, 15
  %7911 = icmp eq i32 0, %7910
  br i1 %7911, label %7912, label %7913

7912:                                             ; preds = %7905
  br label %8065

7913:                                             ; preds = %7905
  %7914 = load ptr, ptr %14, align 8, !tbaa !5
  %7915 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7914, i32 0, i32 3
  %7916 = load i8, ptr %7915, align 1, !tbaa !13
  %7917 = zext i8 %7916 to i32
  %7918 = and i32 %7917, 15
  %7919 = icmp eq i32 1, %7918
  br i1 %7919, label %7920, label %7921

7920:                                             ; preds = %7913
  br label %8063

7921:                                             ; preds = %7913
  %7922 = load ptr, ptr %14, align 8, !tbaa !5
  %7923 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7922, i32 0, i32 3
  %7924 = load i8, ptr %7923, align 1, !tbaa !13
  %7925 = zext i8 %7924 to i32
  %7926 = and i32 %7925, 15
  %7927 = icmp eq i32 2, %7926
  br i1 %7927, label %7928, label %7929

7928:                                             ; preds = %7921
  br label %8061

7929:                                             ; preds = %7921
  %7930 = load ptr, ptr %14, align 8, !tbaa !5
  %7931 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7930, i32 0, i32 3
  %7932 = load i8, ptr %7931, align 1, !tbaa !13
  %7933 = zext i8 %7932 to i32
  %7934 = and i32 %7933, 15
  %7935 = icmp eq i32 3, %7934
  br i1 %7935, label %7936, label %7937

7936:                                             ; preds = %7929
  br label %8059

7937:                                             ; preds = %7929
  %7938 = load ptr, ptr %14, align 8, !tbaa !5
  %7939 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7938, i32 0, i32 3
  %7940 = load i8, ptr %7939, align 1, !tbaa !13
  %7941 = zext i8 %7940 to i32
  %7942 = and i32 %7941, 15
  %7943 = icmp eq i32 4, %7942
  br i1 %7943, label %7944, label %7945

7944:                                             ; preds = %7937
  br label %8057

7945:                                             ; preds = %7937
  %7946 = load ptr, ptr %14, align 8, !tbaa !5
  %7947 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7946, i32 0, i32 3
  %7948 = load i8, ptr %7947, align 1, !tbaa !13
  %7949 = zext i8 %7948 to i32
  %7950 = and i32 %7949, 15
  %7951 = icmp eq i32 5, %7950
  br i1 %7951, label %7952, label %7953

7952:                                             ; preds = %7945
  br label %8055

7953:                                             ; preds = %7945
  %7954 = load ptr, ptr %14, align 8, !tbaa !5
  %7955 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7954, i32 0, i32 3
  %7956 = load i8, ptr %7955, align 1, !tbaa !13
  %7957 = zext i8 %7956 to i32
  %7958 = and i32 %7957, 15
  %7959 = icmp eq i32 6, %7958
  br i1 %7959, label %7960, label %7961

7960:                                             ; preds = %7953
  br label %8053

7961:                                             ; preds = %7953
  %7962 = load ptr, ptr %14, align 8, !tbaa !5
  %7963 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7962, i32 0, i32 3
  %7964 = load i8, ptr %7963, align 1, !tbaa !13
  %7965 = zext i8 %7964 to i32
  %7966 = and i32 %7965, 15
  %7967 = icmp eq i32 7, %7966
  br i1 %7967, label %7968, label %7969

7968:                                             ; preds = %7961
  br label %8051

7969:                                             ; preds = %7961
  %7970 = load ptr, ptr %14, align 8, !tbaa !5
  %7971 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7970, i32 0, i32 3
  %7972 = load i8, ptr %7971, align 1, !tbaa !13
  %7973 = zext i8 %7972 to i32
  %7974 = and i32 %7973, 15
  %7975 = icmp eq i32 8, %7974
  br i1 %7975, label %7976, label %7977

7976:                                             ; preds = %7969
  br label %8049

7977:                                             ; preds = %7969
  %7978 = load ptr, ptr %14, align 8, !tbaa !5
  %7979 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7978, i32 0, i32 3
  %7980 = load i8, ptr %7979, align 1, !tbaa !13
  %7981 = zext i8 %7980 to i32
  %7982 = and i32 %7981, 15
  %7983 = icmp eq i32 9, %7982
  br i1 %7983, label %7984, label %7985

7984:                                             ; preds = %7977
  br label %8047

7985:                                             ; preds = %7977
  %7986 = load ptr, ptr %14, align 8, !tbaa !5
  %7987 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7986, i32 0, i32 3
  %7988 = load i8, ptr %7987, align 1, !tbaa !13
  %7989 = zext i8 %7988 to i32
  %7990 = and i32 %7989, 15
  %7991 = icmp eq i32 10, %7990
  br i1 %7991, label %7992, label %7993

7992:                                             ; preds = %7985
  br label %8045

7993:                                             ; preds = %7985
  %7994 = load ptr, ptr %14, align 8, !tbaa !5
  %7995 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7994, i32 0, i32 3
  %7996 = load i8, ptr %7995, align 1, !tbaa !13
  %7997 = zext i8 %7996 to i32
  %7998 = and i32 %7997, 15
  %7999 = icmp eq i32 11, %7998
  br i1 %7999, label %8000, label %8001

8000:                                             ; preds = %7993
  br label %8043

8001:                                             ; preds = %7993
  %8002 = load ptr, ptr %14, align 8, !tbaa !5
  %8003 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8002, i32 0, i32 3
  %8004 = load i8, ptr %8003, align 1, !tbaa !13
  %8005 = zext i8 %8004 to i32
  %8006 = and i32 %8005, 15
  %8007 = icmp eq i32 12, %8006
  br i1 %8007, label %8008, label %8009

8008:                                             ; preds = %8001
  br label %8041

8009:                                             ; preds = %8001
  %8010 = load ptr, ptr %14, align 8, !tbaa !5
  %8011 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8010, i32 0, i32 3
  %8012 = load i8, ptr %8011, align 1, !tbaa !13
  %8013 = zext i8 %8012 to i32
  %8014 = and i32 %8013, 15
  %8015 = icmp eq i32 13, %8014
  br i1 %8015, label %8016, label %8017

8016:                                             ; preds = %8009
  br label %8039

8017:                                             ; preds = %8009
  %8018 = load ptr, ptr %14, align 8, !tbaa !5
  %8019 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8018, i32 0, i32 3
  %8020 = load i8, ptr %8019, align 1, !tbaa !13
  %8021 = zext i8 %8020 to i32
  %8022 = and i32 %8021, 15
  %8023 = icmp eq i32 14, %8022
  br i1 %8023, label %8024, label %8025

8024:                                             ; preds = %8017
  br label %8037

8025:                                             ; preds = %8017
  %8026 = load ptr, ptr %14, align 8, !tbaa !5
  %8027 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8026, i32 0, i32 3
  %8028 = load i8, ptr %8027, align 1, !tbaa !13
  %8029 = zext i8 %8028 to i32
  %8030 = and i32 %8029, 15
  %8031 = icmp eq i32 15, %8030
  br i1 %8031, label %8032, label %8033

8032:                                             ; preds = %8025
  br label %8035

8033:                                             ; preds = %8025
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 611, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

8034:                                             ; No predecessors!
  br label %8035

8035:                                             ; preds = %8034, %8032
  %8036 = phi i32 [ 15, %8032 ], [ 0, %8034 ]
  br label %8037

8037:                                             ; preds = %8035, %8024
  %8038 = phi i32 [ 14, %8024 ], [ %8036, %8035 ]
  br label %8039

8039:                                             ; preds = %8037, %8016
  %8040 = phi i32 [ 12, %8016 ], [ %8038, %8037 ]
  br label %8041

8041:                                             ; preds = %8039, %8008
  %8042 = phi i32 [ 12, %8008 ], [ %8040, %8039 ]
  br label %8043

8043:                                             ; preds = %8041, %8000
  %8044 = phi i32 [ 10, %8000 ], [ %8042, %8041 ]
  br label %8045

8045:                                             ; preds = %8043, %7992
  %8046 = phi i32 [ 10, %7992 ], [ %8044, %8043 ]
  br label %8047

8047:                                             ; preds = %8045, %7984
  %8048 = phi i32 [ 8, %7984 ], [ %8046, %8045 ]
  br label %8049

8049:                                             ; preds = %8047, %7976
  %8050 = phi i32 [ 8, %7976 ], [ %8048, %8047 ]
  br label %8051

8051:                                             ; preds = %8049, %7968
  %8052 = phi i32 [ 6, %7968 ], [ %8050, %8049 ]
  br label %8053

8053:                                             ; preds = %8051, %7960
  %8054 = phi i32 [ 6, %7960 ], [ %8052, %8051 ]
  br label %8055

8055:                                             ; preds = %8053, %7952
  %8056 = phi i32 [ 5, %7952 ], [ %8054, %8053 ]
  br label %8057

8057:                                             ; preds = %8055, %7944
  %8058 = phi i32 [ 4, %7944 ], [ %8056, %8055 ]
  br label %8059

8059:                                             ; preds = %8057, %7936
  %8060 = phi i32 [ 3, %7936 ], [ %8058, %8057 ]
  br label %8061

8061:                                             ; preds = %8059, %7928
  %8062 = phi i32 [ 2, %7928 ], [ %8060, %8059 ]
  br label %8063

8063:                                             ; preds = %8061, %7920
  %8064 = phi i32 [ 1, %7920 ], [ %8062, %8061 ]
  br label %8065

8065:                                             ; preds = %8063, %7912
  %8066 = phi i32 [ 0, %7912 ], [ %8064, %8063 ]
  br label %8073

8067:                                             ; preds = %7897
  %8068 = load ptr, ptr %14, align 8, !tbaa !5
  %8069 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8068, i32 0, i32 3
  %8070 = load i8, ptr %8069, align 1, !tbaa !13
  %8071 = zext i8 %8070 to i32
  %8072 = ashr i32 %8071, 4
  br label %8073

8073:                                             ; preds = %8067, %8065
  %8074 = phi i32 [ %8066, %8065 ], [ %8072, %8067 ]
  %8075 = icmp eq i32 1, %8074
  br i1 %8075, label %8076, label %8094

8076:                                             ; preds = %8073
  %8077 = load i32, ptr %22, align 4, !tbaa !9
  %8078 = load i32, ptr %17, align 4, !tbaa !9
  %8079 = sub i32 %8078, 1
  %8080 = icmp eq i32 %8077, %8079
  br i1 %8080, label %8081, label %8091

8081:                                             ; preds = %8076
  %8082 = load i32, ptr %19, align 4, !tbaa !9
  %8083 = icmp ugt i32 %8082, 0
  br i1 %8083, label %8084, label %8088

8084:                                             ; preds = %8081
  %8085 = load ptr, ptr %13, align 8, !tbaa !5
  %8086 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %8085, i32 0, i32 21
  %8087 = load i32, ptr %8086, align 4, !tbaa !23
  br label %8089

8088:                                             ; preds = %8081
  br label %8089

8089:                                             ; preds = %8088, %8084
  %8090 = phi i32 [ %8087, %8084 ], [ 0, %8088 ]
  br label %8092

8091:                                             ; preds = %8076
  br label %8092

8092:                                             ; preds = %8091, %8089
  %8093 = phi i32 [ %8090, %8089 ], [ 0, %8091 ]
  br label %8118

8094:                                             ; preds = %8073
  %8095 = load i32, ptr %22, align 4, !tbaa !9
  %8096 = load i32, ptr %17, align 4, !tbaa !9
  %8097 = sub i32 %8096, 1
  %8098 = icmp eq i32 %8095, %8097
  br i1 %8098, label %8099, label %8112

8099:                                             ; preds = %8094
  %8100 = load i32, ptr %19, align 4, !tbaa !9
  %8101 = icmp ugt i32 %8100, 0
  br i1 %8101, label %8102, label %8106

8102:                                             ; preds = %8099
  %8103 = load ptr, ptr %13, align 8, !tbaa !5
  %8104 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %8103, i32 0, i32 22
  %8105 = load i32, ptr %8104, align 8, !tbaa !24
  br label %8110

8106:                                             ; preds = %8099
  %8107 = load ptr, ptr %13, align 8, !tbaa !5
  %8108 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %8107, i32 0, i32 23
  %8109 = load i32, ptr %8108, align 4, !tbaa !25
  br label %8110

8110:                                             ; preds = %8106, %8102
  %8111 = phi i32 [ %8105, %8102 ], [ %8109, %8106 ]
  br label %8116

8112:                                             ; preds = %8094
  %8113 = load ptr, ptr %13, align 8, !tbaa !5
  %8114 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %8113, i32 0, i32 23
  %8115 = load i32, ptr %8114, align 4, !tbaa !25
  br label %8116

8116:                                             ; preds = %8112, %8110
  %8117 = phi i32 [ %8111, %8110 ], [ %8115, %8112 ]
  br label %8118

8118:                                             ; preds = %8116, %8092
  %8119 = phi i32 [ %8093, %8092 ], [ %8117, %8116 ]
  store i32 %8119, ptr %30, align 4, !tbaa !9
  %8120 = load i32, ptr %24, align 4, !tbaa !9
  %8121 = load i32, ptr %21, align 4, !tbaa !9
  %8122 = load i32, ptr %17, align 4, !tbaa !9
  %8123 = mul i32 %8121, %8122
  %8124 = add i32 %8120, %8123
  %8125 = load i32, ptr %22, align 4, !tbaa !9
  %8126 = add i32 %8124, %8125
  store i32 %8126, ptr %23, align 4, !tbaa !9
  %8127 = load ptr, ptr %11, align 8, !tbaa !5
  %8128 = load i32, ptr %23, align 4, !tbaa !9
  %8129 = load i32, ptr %23, align 4, !tbaa !9
  %8130 = load ptr, ptr %13, align 8, !tbaa !5
  %8131 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %8130, i32 0, i32 37
  %8132 = load i32, ptr %8131, align 4, !tbaa !26
  %8133 = call i32 @libxsmm_generator_aarch64_get_sve_type(i8 noundef zeroext 2)
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %8127, i32 noundef 86009859, i32 noundef %8128, i32 noundef %8129, i8 noundef zeroext 0, i32 noundef %8132, i32 noundef 0, i32 noundef %8133)
  %8134 = load ptr, ptr %11, align 8, !tbaa !5
  %8135 = load ptr, ptr %12, align 8, !tbaa !5
  %8136 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %8135, i32 0, i32 5
  %8137 = load i32, ptr %8136, align 4, !tbaa !27
  %8138 = load ptr, ptr %12, align 8, !tbaa !5
  %8139 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %8138, i32 0, i32 16
  %8140 = load i32, ptr %8139, align 4, !tbaa !31
  %8141 = load ptr, ptr %13, align 8, !tbaa !5
  %8142 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %8141, i32 0, i32 37
  %8143 = load i32, ptr %8142, align 4, !tbaa !26
  %8144 = load ptr, ptr %14, align 8, !tbaa !5
  %8145 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8144, i32 0, i32 3
  %8146 = load i8, ptr %8145, align 1, !tbaa !13
  %8147 = zext i8 %8146 to i32
  %8148 = ashr i32 %8147, 4
  %8149 = icmp eq i32 0, %8148
  br i1 %8149, label %8150, label %8312

8150:                                             ; preds = %8118
  %8151 = load ptr, ptr %14, align 8, !tbaa !5
  %8152 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8151, i32 0, i32 3
  %8153 = load i8, ptr %8152, align 1, !tbaa !13
  %8154 = zext i8 %8153 to i32
  %8155 = and i32 %8154, 15
  %8156 = icmp eq i32 0, %8155
  br i1 %8156, label %8157, label %8158

8157:                                             ; preds = %8150
  br label %8310

8158:                                             ; preds = %8150
  %8159 = load ptr, ptr %14, align 8, !tbaa !5
  %8160 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8159, i32 0, i32 3
  %8161 = load i8, ptr %8160, align 1, !tbaa !13
  %8162 = zext i8 %8161 to i32
  %8163 = and i32 %8162, 15
  %8164 = icmp eq i32 1, %8163
  br i1 %8164, label %8165, label %8166

8165:                                             ; preds = %8158
  br label %8308

8166:                                             ; preds = %8158
  %8167 = load ptr, ptr %14, align 8, !tbaa !5
  %8168 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8167, i32 0, i32 3
  %8169 = load i8, ptr %8168, align 1, !tbaa !13
  %8170 = zext i8 %8169 to i32
  %8171 = and i32 %8170, 15
  %8172 = icmp eq i32 2, %8171
  br i1 %8172, label %8173, label %8174

8173:                                             ; preds = %8166
  br label %8306

8174:                                             ; preds = %8166
  %8175 = load ptr, ptr %14, align 8, !tbaa !5
  %8176 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8175, i32 0, i32 3
  %8177 = load i8, ptr %8176, align 1, !tbaa !13
  %8178 = zext i8 %8177 to i32
  %8179 = and i32 %8178, 15
  %8180 = icmp eq i32 3, %8179
  br i1 %8180, label %8181, label %8182

8181:                                             ; preds = %8174
  br label %8304

8182:                                             ; preds = %8174
  %8183 = load ptr, ptr %14, align 8, !tbaa !5
  %8184 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8183, i32 0, i32 3
  %8185 = load i8, ptr %8184, align 1, !tbaa !13
  %8186 = zext i8 %8185 to i32
  %8187 = and i32 %8186, 15
  %8188 = icmp eq i32 4, %8187
  br i1 %8188, label %8189, label %8190

8189:                                             ; preds = %8182
  br label %8302

8190:                                             ; preds = %8182
  %8191 = load ptr, ptr %14, align 8, !tbaa !5
  %8192 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8191, i32 0, i32 3
  %8193 = load i8, ptr %8192, align 1, !tbaa !13
  %8194 = zext i8 %8193 to i32
  %8195 = and i32 %8194, 15
  %8196 = icmp eq i32 5, %8195
  br i1 %8196, label %8197, label %8198

8197:                                             ; preds = %8190
  br label %8300

8198:                                             ; preds = %8190
  %8199 = load ptr, ptr %14, align 8, !tbaa !5
  %8200 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8199, i32 0, i32 3
  %8201 = load i8, ptr %8200, align 1, !tbaa !13
  %8202 = zext i8 %8201 to i32
  %8203 = and i32 %8202, 15
  %8204 = icmp eq i32 6, %8203
  br i1 %8204, label %8205, label %8206

8205:                                             ; preds = %8198
  br label %8298

8206:                                             ; preds = %8198
  %8207 = load ptr, ptr %14, align 8, !tbaa !5
  %8208 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8207, i32 0, i32 3
  %8209 = load i8, ptr %8208, align 1, !tbaa !13
  %8210 = zext i8 %8209 to i32
  %8211 = and i32 %8210, 15
  %8212 = icmp eq i32 7, %8211
  br i1 %8212, label %8213, label %8214

8213:                                             ; preds = %8206
  br label %8296

8214:                                             ; preds = %8206
  %8215 = load ptr, ptr %14, align 8, !tbaa !5
  %8216 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8215, i32 0, i32 3
  %8217 = load i8, ptr %8216, align 1, !tbaa !13
  %8218 = zext i8 %8217 to i32
  %8219 = and i32 %8218, 15
  %8220 = icmp eq i32 8, %8219
  br i1 %8220, label %8221, label %8222

8221:                                             ; preds = %8214
  br label %8294

8222:                                             ; preds = %8214
  %8223 = load ptr, ptr %14, align 8, !tbaa !5
  %8224 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8223, i32 0, i32 3
  %8225 = load i8, ptr %8224, align 1, !tbaa !13
  %8226 = zext i8 %8225 to i32
  %8227 = and i32 %8226, 15
  %8228 = icmp eq i32 9, %8227
  br i1 %8228, label %8229, label %8230

8229:                                             ; preds = %8222
  br label %8292

8230:                                             ; preds = %8222
  %8231 = load ptr, ptr %14, align 8, !tbaa !5
  %8232 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8231, i32 0, i32 3
  %8233 = load i8, ptr %8232, align 1, !tbaa !13
  %8234 = zext i8 %8233 to i32
  %8235 = and i32 %8234, 15
  %8236 = icmp eq i32 10, %8235
  br i1 %8236, label %8237, label %8238

8237:                                             ; preds = %8230
  br label %8290

8238:                                             ; preds = %8230
  %8239 = load ptr, ptr %14, align 8, !tbaa !5
  %8240 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8239, i32 0, i32 3
  %8241 = load i8, ptr %8240, align 1, !tbaa !13
  %8242 = zext i8 %8241 to i32
  %8243 = and i32 %8242, 15
  %8244 = icmp eq i32 11, %8243
  br i1 %8244, label %8245, label %8246

8245:                                             ; preds = %8238
  br label %8288

8246:                                             ; preds = %8238
  %8247 = load ptr, ptr %14, align 8, !tbaa !5
  %8248 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8247, i32 0, i32 3
  %8249 = load i8, ptr %8248, align 1, !tbaa !13
  %8250 = zext i8 %8249 to i32
  %8251 = and i32 %8250, 15
  %8252 = icmp eq i32 12, %8251
  br i1 %8252, label %8253, label %8254

8253:                                             ; preds = %8246
  br label %8286

8254:                                             ; preds = %8246
  %8255 = load ptr, ptr %14, align 8, !tbaa !5
  %8256 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8255, i32 0, i32 3
  %8257 = load i8, ptr %8256, align 1, !tbaa !13
  %8258 = zext i8 %8257 to i32
  %8259 = and i32 %8258, 15
  %8260 = icmp eq i32 13, %8259
  br i1 %8260, label %8261, label %8262

8261:                                             ; preds = %8254
  br label %8284

8262:                                             ; preds = %8254
  %8263 = load ptr, ptr %14, align 8, !tbaa !5
  %8264 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8263, i32 0, i32 3
  %8265 = load i8, ptr %8264, align 1, !tbaa !13
  %8266 = zext i8 %8265 to i32
  %8267 = and i32 %8266, 15
  %8268 = icmp eq i32 14, %8267
  br i1 %8268, label %8269, label %8270

8269:                                             ; preds = %8262
  br label %8282

8270:                                             ; preds = %8262
  %8271 = load ptr, ptr %14, align 8, !tbaa !5
  %8272 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8271, i32 0, i32 3
  %8273 = load i8, ptr %8272, align 1, !tbaa !13
  %8274 = zext i8 %8273 to i32
  %8275 = and i32 %8274, 15
  %8276 = icmp eq i32 15, %8275
  br i1 %8276, label %8277, label %8278

8277:                                             ; preds = %8270
  br label %8280

8278:                                             ; preds = %8270
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 616, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

8279:                                             ; No predecessors!
  br label %8280

8280:                                             ; preds = %8279, %8277
  %8281 = phi i32 [ 15, %8277 ], [ 0, %8279 ]
  br label %8282

8282:                                             ; preds = %8280, %8269
  %8283 = phi i32 [ 14, %8269 ], [ %8281, %8280 ]
  br label %8284

8284:                                             ; preds = %8282, %8261
  %8285 = phi i32 [ 12, %8261 ], [ %8283, %8282 ]
  br label %8286

8286:                                             ; preds = %8284, %8253
  %8287 = phi i32 [ 12, %8253 ], [ %8285, %8284 ]
  br label %8288

8288:                                             ; preds = %8286, %8245
  %8289 = phi i32 [ 10, %8245 ], [ %8287, %8286 ]
  br label %8290

8290:                                             ; preds = %8288, %8237
  %8291 = phi i32 [ 10, %8237 ], [ %8289, %8288 ]
  br label %8292

8292:                                             ; preds = %8290, %8229
  %8293 = phi i32 [ 8, %8229 ], [ %8291, %8290 ]
  br label %8294

8294:                                             ; preds = %8292, %8221
  %8295 = phi i32 [ 8, %8221 ], [ %8293, %8292 ]
  br label %8296

8296:                                             ; preds = %8294, %8213
  %8297 = phi i32 [ 6, %8213 ], [ %8295, %8294 ]
  br label %8298

8298:                                             ; preds = %8296, %8205
  %8299 = phi i32 [ 6, %8205 ], [ %8297, %8296 ]
  br label %8300

8300:                                             ; preds = %8298, %8197
  %8301 = phi i32 [ 5, %8197 ], [ %8299, %8298 ]
  br label %8302

8302:                                             ; preds = %8300, %8189
  %8303 = phi i32 [ 4, %8189 ], [ %8301, %8300 ]
  br label %8304

8304:                                             ; preds = %8302, %8181
  %8305 = phi i32 [ 3, %8181 ], [ %8303, %8302 ]
  br label %8306

8306:                                             ; preds = %8304, %8173
  %8307 = phi i32 [ 2, %8173 ], [ %8305, %8304 ]
  br label %8308

8308:                                             ; preds = %8306, %8165
  %8309 = phi i32 [ 1, %8165 ], [ %8307, %8306 ]
  br label %8310

8310:                                             ; preds = %8308, %8157
  %8311 = phi i32 [ 0, %8157 ], [ %8309, %8308 ]
  br label %8318

8312:                                             ; preds = %8118
  %8313 = load ptr, ptr %14, align 8, !tbaa !5
  %8314 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8313, i32 0, i32 3
  %8315 = load i8, ptr %8314, align 1, !tbaa !13
  %8316 = zext i8 %8315 to i32
  %8317 = ashr i32 %8316, 4
  br label %8318

8318:                                             ; preds = %8312, %8310
  %8319 = phi i32 [ %8311, %8310 ], [ %8317, %8312 ]
  %8320 = icmp eq i32 0, %8319
  br i1 %8320, label %8321, label %8322

8321:                                             ; preds = %8318
  br label %10677

8322:                                             ; preds = %8318
  %8323 = load ptr, ptr %14, align 8, !tbaa !5
  %8324 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8323, i32 0, i32 3
  %8325 = load i8, ptr %8324, align 1, !tbaa !13
  %8326 = zext i8 %8325 to i32
  %8327 = ashr i32 %8326, 4
  %8328 = icmp eq i32 0, %8327
  br i1 %8328, label %8329, label %8491

8329:                                             ; preds = %8322
  %8330 = load ptr, ptr %14, align 8, !tbaa !5
  %8331 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8330, i32 0, i32 3
  %8332 = load i8, ptr %8331, align 1, !tbaa !13
  %8333 = zext i8 %8332 to i32
  %8334 = and i32 %8333, 15
  %8335 = icmp eq i32 0, %8334
  br i1 %8335, label %8336, label %8337

8336:                                             ; preds = %8329
  br label %8489

8337:                                             ; preds = %8329
  %8338 = load ptr, ptr %14, align 8, !tbaa !5
  %8339 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8338, i32 0, i32 3
  %8340 = load i8, ptr %8339, align 1, !tbaa !13
  %8341 = zext i8 %8340 to i32
  %8342 = and i32 %8341, 15
  %8343 = icmp eq i32 1, %8342
  br i1 %8343, label %8344, label %8345

8344:                                             ; preds = %8337
  br label %8487

8345:                                             ; preds = %8337
  %8346 = load ptr, ptr %14, align 8, !tbaa !5
  %8347 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8346, i32 0, i32 3
  %8348 = load i8, ptr %8347, align 1, !tbaa !13
  %8349 = zext i8 %8348 to i32
  %8350 = and i32 %8349, 15
  %8351 = icmp eq i32 2, %8350
  br i1 %8351, label %8352, label %8353

8352:                                             ; preds = %8345
  br label %8485

8353:                                             ; preds = %8345
  %8354 = load ptr, ptr %14, align 8, !tbaa !5
  %8355 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8354, i32 0, i32 3
  %8356 = load i8, ptr %8355, align 1, !tbaa !13
  %8357 = zext i8 %8356 to i32
  %8358 = and i32 %8357, 15
  %8359 = icmp eq i32 3, %8358
  br i1 %8359, label %8360, label %8361

8360:                                             ; preds = %8353
  br label %8483

8361:                                             ; preds = %8353
  %8362 = load ptr, ptr %14, align 8, !tbaa !5
  %8363 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8362, i32 0, i32 3
  %8364 = load i8, ptr %8363, align 1, !tbaa !13
  %8365 = zext i8 %8364 to i32
  %8366 = and i32 %8365, 15
  %8367 = icmp eq i32 4, %8366
  br i1 %8367, label %8368, label %8369

8368:                                             ; preds = %8361
  br label %8481

8369:                                             ; preds = %8361
  %8370 = load ptr, ptr %14, align 8, !tbaa !5
  %8371 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8370, i32 0, i32 3
  %8372 = load i8, ptr %8371, align 1, !tbaa !13
  %8373 = zext i8 %8372 to i32
  %8374 = and i32 %8373, 15
  %8375 = icmp eq i32 5, %8374
  br i1 %8375, label %8376, label %8377

8376:                                             ; preds = %8369
  br label %8479

8377:                                             ; preds = %8369
  %8378 = load ptr, ptr %14, align 8, !tbaa !5
  %8379 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8378, i32 0, i32 3
  %8380 = load i8, ptr %8379, align 1, !tbaa !13
  %8381 = zext i8 %8380 to i32
  %8382 = and i32 %8381, 15
  %8383 = icmp eq i32 6, %8382
  br i1 %8383, label %8384, label %8385

8384:                                             ; preds = %8377
  br label %8477

8385:                                             ; preds = %8377
  %8386 = load ptr, ptr %14, align 8, !tbaa !5
  %8387 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8386, i32 0, i32 3
  %8388 = load i8, ptr %8387, align 1, !tbaa !13
  %8389 = zext i8 %8388 to i32
  %8390 = and i32 %8389, 15
  %8391 = icmp eq i32 7, %8390
  br i1 %8391, label %8392, label %8393

8392:                                             ; preds = %8385
  br label %8475

8393:                                             ; preds = %8385
  %8394 = load ptr, ptr %14, align 8, !tbaa !5
  %8395 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8394, i32 0, i32 3
  %8396 = load i8, ptr %8395, align 1, !tbaa !13
  %8397 = zext i8 %8396 to i32
  %8398 = and i32 %8397, 15
  %8399 = icmp eq i32 8, %8398
  br i1 %8399, label %8400, label %8401

8400:                                             ; preds = %8393
  br label %8473

8401:                                             ; preds = %8393
  %8402 = load ptr, ptr %14, align 8, !tbaa !5
  %8403 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8402, i32 0, i32 3
  %8404 = load i8, ptr %8403, align 1, !tbaa !13
  %8405 = zext i8 %8404 to i32
  %8406 = and i32 %8405, 15
  %8407 = icmp eq i32 9, %8406
  br i1 %8407, label %8408, label %8409

8408:                                             ; preds = %8401
  br label %8471

8409:                                             ; preds = %8401
  %8410 = load ptr, ptr %14, align 8, !tbaa !5
  %8411 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8410, i32 0, i32 3
  %8412 = load i8, ptr %8411, align 1, !tbaa !13
  %8413 = zext i8 %8412 to i32
  %8414 = and i32 %8413, 15
  %8415 = icmp eq i32 10, %8414
  br i1 %8415, label %8416, label %8417

8416:                                             ; preds = %8409
  br label %8469

8417:                                             ; preds = %8409
  %8418 = load ptr, ptr %14, align 8, !tbaa !5
  %8419 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8418, i32 0, i32 3
  %8420 = load i8, ptr %8419, align 1, !tbaa !13
  %8421 = zext i8 %8420 to i32
  %8422 = and i32 %8421, 15
  %8423 = icmp eq i32 11, %8422
  br i1 %8423, label %8424, label %8425

8424:                                             ; preds = %8417
  br label %8467

8425:                                             ; preds = %8417
  %8426 = load ptr, ptr %14, align 8, !tbaa !5
  %8427 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8426, i32 0, i32 3
  %8428 = load i8, ptr %8427, align 1, !tbaa !13
  %8429 = zext i8 %8428 to i32
  %8430 = and i32 %8429, 15
  %8431 = icmp eq i32 12, %8430
  br i1 %8431, label %8432, label %8433

8432:                                             ; preds = %8425
  br label %8465

8433:                                             ; preds = %8425
  %8434 = load ptr, ptr %14, align 8, !tbaa !5
  %8435 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8434, i32 0, i32 3
  %8436 = load i8, ptr %8435, align 1, !tbaa !13
  %8437 = zext i8 %8436 to i32
  %8438 = and i32 %8437, 15
  %8439 = icmp eq i32 13, %8438
  br i1 %8439, label %8440, label %8441

8440:                                             ; preds = %8433
  br label %8463

8441:                                             ; preds = %8433
  %8442 = load ptr, ptr %14, align 8, !tbaa !5
  %8443 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8442, i32 0, i32 3
  %8444 = load i8, ptr %8443, align 1, !tbaa !13
  %8445 = zext i8 %8444 to i32
  %8446 = and i32 %8445, 15
  %8447 = icmp eq i32 14, %8446
  br i1 %8447, label %8448, label %8449

8448:                                             ; preds = %8441
  br label %8461

8449:                                             ; preds = %8441
  %8450 = load ptr, ptr %14, align 8, !tbaa !5
  %8451 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8450, i32 0, i32 3
  %8452 = load i8, ptr %8451, align 1, !tbaa !13
  %8453 = zext i8 %8452 to i32
  %8454 = and i32 %8453, 15
  %8455 = icmp eq i32 15, %8454
  br i1 %8455, label %8456, label %8457

8456:                                             ; preds = %8449
  br label %8459

8457:                                             ; preds = %8449
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 616, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

8458:                                             ; No predecessors!
  br label %8459

8459:                                             ; preds = %8458, %8456
  %8460 = phi i32 [ 15, %8456 ], [ 0, %8458 ]
  br label %8461

8461:                                             ; preds = %8459, %8448
  %8462 = phi i32 [ 14, %8448 ], [ %8460, %8459 ]
  br label %8463

8463:                                             ; preds = %8461, %8440
  %8464 = phi i32 [ 12, %8440 ], [ %8462, %8461 ]
  br label %8465

8465:                                             ; preds = %8463, %8432
  %8466 = phi i32 [ 12, %8432 ], [ %8464, %8463 ]
  br label %8467

8467:                                             ; preds = %8465, %8424
  %8468 = phi i32 [ 10, %8424 ], [ %8466, %8465 ]
  br label %8469

8469:                                             ; preds = %8467, %8416
  %8470 = phi i32 [ 10, %8416 ], [ %8468, %8467 ]
  br label %8471

8471:                                             ; preds = %8469, %8408
  %8472 = phi i32 [ 8, %8408 ], [ %8470, %8469 ]
  br label %8473

8473:                                             ; preds = %8471, %8400
  %8474 = phi i32 [ 8, %8400 ], [ %8472, %8471 ]
  br label %8475

8475:                                             ; preds = %8473, %8392
  %8476 = phi i32 [ 6, %8392 ], [ %8474, %8473 ]
  br label %8477

8477:                                             ; preds = %8475, %8384
  %8478 = phi i32 [ 6, %8384 ], [ %8476, %8475 ]
  br label %8479

8479:                                             ; preds = %8477, %8376
  %8480 = phi i32 [ 5, %8376 ], [ %8478, %8477 ]
  br label %8481

8481:                                             ; preds = %8479, %8368
  %8482 = phi i32 [ 4, %8368 ], [ %8480, %8479 ]
  br label %8483

8483:                                             ; preds = %8481, %8360
  %8484 = phi i32 [ 3, %8360 ], [ %8482, %8481 ]
  br label %8485

8485:                                             ; preds = %8483, %8352
  %8486 = phi i32 [ 2, %8352 ], [ %8484, %8483 ]
  br label %8487

8487:                                             ; preds = %8485, %8344
  %8488 = phi i32 [ 1, %8344 ], [ %8486, %8485 ]
  br label %8489

8489:                                             ; preds = %8487, %8336
  %8490 = phi i32 [ 0, %8336 ], [ %8488, %8487 ]
  br label %8497

8491:                                             ; preds = %8322
  %8492 = load ptr, ptr %14, align 8, !tbaa !5
  %8493 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8492, i32 0, i32 3
  %8494 = load i8, ptr %8493, align 1, !tbaa !13
  %8495 = zext i8 %8494 to i32
  %8496 = ashr i32 %8495, 4
  br label %8497

8497:                                             ; preds = %8491, %8489
  %8498 = phi i32 [ %8490, %8489 ], [ %8496, %8491 ]
  %8499 = icmp eq i32 1, %8498
  br i1 %8499, label %8500, label %8501

8500:                                             ; preds = %8497
  br label %10675

8501:                                             ; preds = %8497
  %8502 = load ptr, ptr %14, align 8, !tbaa !5
  %8503 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8502, i32 0, i32 3
  %8504 = load i8, ptr %8503, align 1, !tbaa !13
  %8505 = zext i8 %8504 to i32
  %8506 = ashr i32 %8505, 4
  %8507 = icmp eq i32 0, %8506
  br i1 %8507, label %8508, label %8670

8508:                                             ; preds = %8501
  %8509 = load ptr, ptr %14, align 8, !tbaa !5
  %8510 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8509, i32 0, i32 3
  %8511 = load i8, ptr %8510, align 1, !tbaa !13
  %8512 = zext i8 %8511 to i32
  %8513 = and i32 %8512, 15
  %8514 = icmp eq i32 0, %8513
  br i1 %8514, label %8515, label %8516

8515:                                             ; preds = %8508
  br label %8668

8516:                                             ; preds = %8508
  %8517 = load ptr, ptr %14, align 8, !tbaa !5
  %8518 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8517, i32 0, i32 3
  %8519 = load i8, ptr %8518, align 1, !tbaa !13
  %8520 = zext i8 %8519 to i32
  %8521 = and i32 %8520, 15
  %8522 = icmp eq i32 1, %8521
  br i1 %8522, label %8523, label %8524

8523:                                             ; preds = %8516
  br label %8666

8524:                                             ; preds = %8516
  %8525 = load ptr, ptr %14, align 8, !tbaa !5
  %8526 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8525, i32 0, i32 3
  %8527 = load i8, ptr %8526, align 1, !tbaa !13
  %8528 = zext i8 %8527 to i32
  %8529 = and i32 %8528, 15
  %8530 = icmp eq i32 2, %8529
  br i1 %8530, label %8531, label %8532

8531:                                             ; preds = %8524
  br label %8664

8532:                                             ; preds = %8524
  %8533 = load ptr, ptr %14, align 8, !tbaa !5
  %8534 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8533, i32 0, i32 3
  %8535 = load i8, ptr %8534, align 1, !tbaa !13
  %8536 = zext i8 %8535 to i32
  %8537 = and i32 %8536, 15
  %8538 = icmp eq i32 3, %8537
  br i1 %8538, label %8539, label %8540

8539:                                             ; preds = %8532
  br label %8662

8540:                                             ; preds = %8532
  %8541 = load ptr, ptr %14, align 8, !tbaa !5
  %8542 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8541, i32 0, i32 3
  %8543 = load i8, ptr %8542, align 1, !tbaa !13
  %8544 = zext i8 %8543 to i32
  %8545 = and i32 %8544, 15
  %8546 = icmp eq i32 4, %8545
  br i1 %8546, label %8547, label %8548

8547:                                             ; preds = %8540
  br label %8660

8548:                                             ; preds = %8540
  %8549 = load ptr, ptr %14, align 8, !tbaa !5
  %8550 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8549, i32 0, i32 3
  %8551 = load i8, ptr %8550, align 1, !tbaa !13
  %8552 = zext i8 %8551 to i32
  %8553 = and i32 %8552, 15
  %8554 = icmp eq i32 5, %8553
  br i1 %8554, label %8555, label %8556

8555:                                             ; preds = %8548
  br label %8658

8556:                                             ; preds = %8548
  %8557 = load ptr, ptr %14, align 8, !tbaa !5
  %8558 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8557, i32 0, i32 3
  %8559 = load i8, ptr %8558, align 1, !tbaa !13
  %8560 = zext i8 %8559 to i32
  %8561 = and i32 %8560, 15
  %8562 = icmp eq i32 6, %8561
  br i1 %8562, label %8563, label %8564

8563:                                             ; preds = %8556
  br label %8656

8564:                                             ; preds = %8556
  %8565 = load ptr, ptr %14, align 8, !tbaa !5
  %8566 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8565, i32 0, i32 3
  %8567 = load i8, ptr %8566, align 1, !tbaa !13
  %8568 = zext i8 %8567 to i32
  %8569 = and i32 %8568, 15
  %8570 = icmp eq i32 7, %8569
  br i1 %8570, label %8571, label %8572

8571:                                             ; preds = %8564
  br label %8654

8572:                                             ; preds = %8564
  %8573 = load ptr, ptr %14, align 8, !tbaa !5
  %8574 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8573, i32 0, i32 3
  %8575 = load i8, ptr %8574, align 1, !tbaa !13
  %8576 = zext i8 %8575 to i32
  %8577 = and i32 %8576, 15
  %8578 = icmp eq i32 8, %8577
  br i1 %8578, label %8579, label %8580

8579:                                             ; preds = %8572
  br label %8652

8580:                                             ; preds = %8572
  %8581 = load ptr, ptr %14, align 8, !tbaa !5
  %8582 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8581, i32 0, i32 3
  %8583 = load i8, ptr %8582, align 1, !tbaa !13
  %8584 = zext i8 %8583 to i32
  %8585 = and i32 %8584, 15
  %8586 = icmp eq i32 9, %8585
  br i1 %8586, label %8587, label %8588

8587:                                             ; preds = %8580
  br label %8650

8588:                                             ; preds = %8580
  %8589 = load ptr, ptr %14, align 8, !tbaa !5
  %8590 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8589, i32 0, i32 3
  %8591 = load i8, ptr %8590, align 1, !tbaa !13
  %8592 = zext i8 %8591 to i32
  %8593 = and i32 %8592, 15
  %8594 = icmp eq i32 10, %8593
  br i1 %8594, label %8595, label %8596

8595:                                             ; preds = %8588
  br label %8648

8596:                                             ; preds = %8588
  %8597 = load ptr, ptr %14, align 8, !tbaa !5
  %8598 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8597, i32 0, i32 3
  %8599 = load i8, ptr %8598, align 1, !tbaa !13
  %8600 = zext i8 %8599 to i32
  %8601 = and i32 %8600, 15
  %8602 = icmp eq i32 11, %8601
  br i1 %8602, label %8603, label %8604

8603:                                             ; preds = %8596
  br label %8646

8604:                                             ; preds = %8596
  %8605 = load ptr, ptr %14, align 8, !tbaa !5
  %8606 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8605, i32 0, i32 3
  %8607 = load i8, ptr %8606, align 1, !tbaa !13
  %8608 = zext i8 %8607 to i32
  %8609 = and i32 %8608, 15
  %8610 = icmp eq i32 12, %8609
  br i1 %8610, label %8611, label %8612

8611:                                             ; preds = %8604
  br label %8644

8612:                                             ; preds = %8604
  %8613 = load ptr, ptr %14, align 8, !tbaa !5
  %8614 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8613, i32 0, i32 3
  %8615 = load i8, ptr %8614, align 1, !tbaa !13
  %8616 = zext i8 %8615 to i32
  %8617 = and i32 %8616, 15
  %8618 = icmp eq i32 13, %8617
  br i1 %8618, label %8619, label %8620

8619:                                             ; preds = %8612
  br label %8642

8620:                                             ; preds = %8612
  %8621 = load ptr, ptr %14, align 8, !tbaa !5
  %8622 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8621, i32 0, i32 3
  %8623 = load i8, ptr %8622, align 1, !tbaa !13
  %8624 = zext i8 %8623 to i32
  %8625 = and i32 %8624, 15
  %8626 = icmp eq i32 14, %8625
  br i1 %8626, label %8627, label %8628

8627:                                             ; preds = %8620
  br label %8640

8628:                                             ; preds = %8620
  %8629 = load ptr, ptr %14, align 8, !tbaa !5
  %8630 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8629, i32 0, i32 3
  %8631 = load i8, ptr %8630, align 1, !tbaa !13
  %8632 = zext i8 %8631 to i32
  %8633 = and i32 %8632, 15
  %8634 = icmp eq i32 15, %8633
  br i1 %8634, label %8635, label %8636

8635:                                             ; preds = %8628
  br label %8638

8636:                                             ; preds = %8628
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 616, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

8637:                                             ; No predecessors!
  br label %8638

8638:                                             ; preds = %8637, %8635
  %8639 = phi i32 [ 15, %8635 ], [ 0, %8637 ]
  br label %8640

8640:                                             ; preds = %8638, %8627
  %8641 = phi i32 [ 14, %8627 ], [ %8639, %8638 ]
  br label %8642

8642:                                             ; preds = %8640, %8619
  %8643 = phi i32 [ 12, %8619 ], [ %8641, %8640 ]
  br label %8644

8644:                                             ; preds = %8642, %8611
  %8645 = phi i32 [ 12, %8611 ], [ %8643, %8642 ]
  br label %8646

8646:                                             ; preds = %8644, %8603
  %8647 = phi i32 [ 10, %8603 ], [ %8645, %8644 ]
  br label %8648

8648:                                             ; preds = %8646, %8595
  %8649 = phi i32 [ 10, %8595 ], [ %8647, %8646 ]
  br label %8650

8650:                                             ; preds = %8648, %8587
  %8651 = phi i32 [ 8, %8587 ], [ %8649, %8648 ]
  br label %8652

8652:                                             ; preds = %8650, %8579
  %8653 = phi i32 [ 8, %8579 ], [ %8651, %8650 ]
  br label %8654

8654:                                             ; preds = %8652, %8571
  %8655 = phi i32 [ 6, %8571 ], [ %8653, %8652 ]
  br label %8656

8656:                                             ; preds = %8654, %8563
  %8657 = phi i32 [ 6, %8563 ], [ %8655, %8654 ]
  br label %8658

8658:                                             ; preds = %8656, %8555
  %8659 = phi i32 [ 5, %8555 ], [ %8657, %8656 ]
  br label %8660

8660:                                             ; preds = %8658, %8547
  %8661 = phi i32 [ 4, %8547 ], [ %8659, %8658 ]
  br label %8662

8662:                                             ; preds = %8660, %8539
  %8663 = phi i32 [ 3, %8539 ], [ %8661, %8660 ]
  br label %8664

8664:                                             ; preds = %8662, %8531
  %8665 = phi i32 [ 2, %8531 ], [ %8663, %8662 ]
  br label %8666

8666:                                             ; preds = %8664, %8523
  %8667 = phi i32 [ 1, %8523 ], [ %8665, %8664 ]
  br label %8668

8668:                                             ; preds = %8666, %8515
  %8669 = phi i32 [ 0, %8515 ], [ %8667, %8666 ]
  br label %8676

8670:                                             ; preds = %8501
  %8671 = load ptr, ptr %14, align 8, !tbaa !5
  %8672 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8671, i32 0, i32 3
  %8673 = load i8, ptr %8672, align 1, !tbaa !13
  %8674 = zext i8 %8673 to i32
  %8675 = ashr i32 %8674, 4
  br label %8676

8676:                                             ; preds = %8670, %8668
  %8677 = phi i32 [ %8669, %8668 ], [ %8675, %8670 ]
  %8678 = icmp eq i32 2, %8677
  br i1 %8678, label %8679, label %8680

8679:                                             ; preds = %8676
  br label %10673

8680:                                             ; preds = %8676
  %8681 = load ptr, ptr %14, align 8, !tbaa !5
  %8682 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8681, i32 0, i32 3
  %8683 = load i8, ptr %8682, align 1, !tbaa !13
  %8684 = zext i8 %8683 to i32
  %8685 = ashr i32 %8684, 4
  %8686 = icmp eq i32 0, %8685
  br i1 %8686, label %8687, label %8849

8687:                                             ; preds = %8680
  %8688 = load ptr, ptr %14, align 8, !tbaa !5
  %8689 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8688, i32 0, i32 3
  %8690 = load i8, ptr %8689, align 1, !tbaa !13
  %8691 = zext i8 %8690 to i32
  %8692 = and i32 %8691, 15
  %8693 = icmp eq i32 0, %8692
  br i1 %8693, label %8694, label %8695

8694:                                             ; preds = %8687
  br label %8847

8695:                                             ; preds = %8687
  %8696 = load ptr, ptr %14, align 8, !tbaa !5
  %8697 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8696, i32 0, i32 3
  %8698 = load i8, ptr %8697, align 1, !tbaa !13
  %8699 = zext i8 %8698 to i32
  %8700 = and i32 %8699, 15
  %8701 = icmp eq i32 1, %8700
  br i1 %8701, label %8702, label %8703

8702:                                             ; preds = %8695
  br label %8845

8703:                                             ; preds = %8695
  %8704 = load ptr, ptr %14, align 8, !tbaa !5
  %8705 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8704, i32 0, i32 3
  %8706 = load i8, ptr %8705, align 1, !tbaa !13
  %8707 = zext i8 %8706 to i32
  %8708 = and i32 %8707, 15
  %8709 = icmp eq i32 2, %8708
  br i1 %8709, label %8710, label %8711

8710:                                             ; preds = %8703
  br label %8843

8711:                                             ; preds = %8703
  %8712 = load ptr, ptr %14, align 8, !tbaa !5
  %8713 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8712, i32 0, i32 3
  %8714 = load i8, ptr %8713, align 1, !tbaa !13
  %8715 = zext i8 %8714 to i32
  %8716 = and i32 %8715, 15
  %8717 = icmp eq i32 3, %8716
  br i1 %8717, label %8718, label %8719

8718:                                             ; preds = %8711
  br label %8841

8719:                                             ; preds = %8711
  %8720 = load ptr, ptr %14, align 8, !tbaa !5
  %8721 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8720, i32 0, i32 3
  %8722 = load i8, ptr %8721, align 1, !tbaa !13
  %8723 = zext i8 %8722 to i32
  %8724 = and i32 %8723, 15
  %8725 = icmp eq i32 4, %8724
  br i1 %8725, label %8726, label %8727

8726:                                             ; preds = %8719
  br label %8839

8727:                                             ; preds = %8719
  %8728 = load ptr, ptr %14, align 8, !tbaa !5
  %8729 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8728, i32 0, i32 3
  %8730 = load i8, ptr %8729, align 1, !tbaa !13
  %8731 = zext i8 %8730 to i32
  %8732 = and i32 %8731, 15
  %8733 = icmp eq i32 5, %8732
  br i1 %8733, label %8734, label %8735

8734:                                             ; preds = %8727
  br label %8837

8735:                                             ; preds = %8727
  %8736 = load ptr, ptr %14, align 8, !tbaa !5
  %8737 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8736, i32 0, i32 3
  %8738 = load i8, ptr %8737, align 1, !tbaa !13
  %8739 = zext i8 %8738 to i32
  %8740 = and i32 %8739, 15
  %8741 = icmp eq i32 6, %8740
  br i1 %8741, label %8742, label %8743

8742:                                             ; preds = %8735
  br label %8835

8743:                                             ; preds = %8735
  %8744 = load ptr, ptr %14, align 8, !tbaa !5
  %8745 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8744, i32 0, i32 3
  %8746 = load i8, ptr %8745, align 1, !tbaa !13
  %8747 = zext i8 %8746 to i32
  %8748 = and i32 %8747, 15
  %8749 = icmp eq i32 7, %8748
  br i1 %8749, label %8750, label %8751

8750:                                             ; preds = %8743
  br label %8833

8751:                                             ; preds = %8743
  %8752 = load ptr, ptr %14, align 8, !tbaa !5
  %8753 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8752, i32 0, i32 3
  %8754 = load i8, ptr %8753, align 1, !tbaa !13
  %8755 = zext i8 %8754 to i32
  %8756 = and i32 %8755, 15
  %8757 = icmp eq i32 8, %8756
  br i1 %8757, label %8758, label %8759

8758:                                             ; preds = %8751
  br label %8831

8759:                                             ; preds = %8751
  %8760 = load ptr, ptr %14, align 8, !tbaa !5
  %8761 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8760, i32 0, i32 3
  %8762 = load i8, ptr %8761, align 1, !tbaa !13
  %8763 = zext i8 %8762 to i32
  %8764 = and i32 %8763, 15
  %8765 = icmp eq i32 9, %8764
  br i1 %8765, label %8766, label %8767

8766:                                             ; preds = %8759
  br label %8829

8767:                                             ; preds = %8759
  %8768 = load ptr, ptr %14, align 8, !tbaa !5
  %8769 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8768, i32 0, i32 3
  %8770 = load i8, ptr %8769, align 1, !tbaa !13
  %8771 = zext i8 %8770 to i32
  %8772 = and i32 %8771, 15
  %8773 = icmp eq i32 10, %8772
  br i1 %8773, label %8774, label %8775

8774:                                             ; preds = %8767
  br label %8827

8775:                                             ; preds = %8767
  %8776 = load ptr, ptr %14, align 8, !tbaa !5
  %8777 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8776, i32 0, i32 3
  %8778 = load i8, ptr %8777, align 1, !tbaa !13
  %8779 = zext i8 %8778 to i32
  %8780 = and i32 %8779, 15
  %8781 = icmp eq i32 11, %8780
  br i1 %8781, label %8782, label %8783

8782:                                             ; preds = %8775
  br label %8825

8783:                                             ; preds = %8775
  %8784 = load ptr, ptr %14, align 8, !tbaa !5
  %8785 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8784, i32 0, i32 3
  %8786 = load i8, ptr %8785, align 1, !tbaa !13
  %8787 = zext i8 %8786 to i32
  %8788 = and i32 %8787, 15
  %8789 = icmp eq i32 12, %8788
  br i1 %8789, label %8790, label %8791

8790:                                             ; preds = %8783
  br label %8823

8791:                                             ; preds = %8783
  %8792 = load ptr, ptr %14, align 8, !tbaa !5
  %8793 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8792, i32 0, i32 3
  %8794 = load i8, ptr %8793, align 1, !tbaa !13
  %8795 = zext i8 %8794 to i32
  %8796 = and i32 %8795, 15
  %8797 = icmp eq i32 13, %8796
  br i1 %8797, label %8798, label %8799

8798:                                             ; preds = %8791
  br label %8821

8799:                                             ; preds = %8791
  %8800 = load ptr, ptr %14, align 8, !tbaa !5
  %8801 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8800, i32 0, i32 3
  %8802 = load i8, ptr %8801, align 1, !tbaa !13
  %8803 = zext i8 %8802 to i32
  %8804 = and i32 %8803, 15
  %8805 = icmp eq i32 14, %8804
  br i1 %8805, label %8806, label %8807

8806:                                             ; preds = %8799
  br label %8819

8807:                                             ; preds = %8799
  %8808 = load ptr, ptr %14, align 8, !tbaa !5
  %8809 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8808, i32 0, i32 3
  %8810 = load i8, ptr %8809, align 1, !tbaa !13
  %8811 = zext i8 %8810 to i32
  %8812 = and i32 %8811, 15
  %8813 = icmp eq i32 15, %8812
  br i1 %8813, label %8814, label %8815

8814:                                             ; preds = %8807
  br label %8817

8815:                                             ; preds = %8807
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 616, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

8816:                                             ; No predecessors!
  br label %8817

8817:                                             ; preds = %8816, %8814
  %8818 = phi i32 [ 15, %8814 ], [ 0, %8816 ]
  br label %8819

8819:                                             ; preds = %8817, %8806
  %8820 = phi i32 [ 14, %8806 ], [ %8818, %8817 ]
  br label %8821

8821:                                             ; preds = %8819, %8798
  %8822 = phi i32 [ 12, %8798 ], [ %8820, %8819 ]
  br label %8823

8823:                                             ; preds = %8821, %8790
  %8824 = phi i32 [ 12, %8790 ], [ %8822, %8821 ]
  br label %8825

8825:                                             ; preds = %8823, %8782
  %8826 = phi i32 [ 10, %8782 ], [ %8824, %8823 ]
  br label %8827

8827:                                             ; preds = %8825, %8774
  %8828 = phi i32 [ 10, %8774 ], [ %8826, %8825 ]
  br label %8829

8829:                                             ; preds = %8827, %8766
  %8830 = phi i32 [ 8, %8766 ], [ %8828, %8827 ]
  br label %8831

8831:                                             ; preds = %8829, %8758
  %8832 = phi i32 [ 8, %8758 ], [ %8830, %8829 ]
  br label %8833

8833:                                             ; preds = %8831, %8750
  %8834 = phi i32 [ 6, %8750 ], [ %8832, %8831 ]
  br label %8835

8835:                                             ; preds = %8833, %8742
  %8836 = phi i32 [ 6, %8742 ], [ %8834, %8833 ]
  br label %8837

8837:                                             ; preds = %8835, %8734
  %8838 = phi i32 [ 5, %8734 ], [ %8836, %8835 ]
  br label %8839

8839:                                             ; preds = %8837, %8726
  %8840 = phi i32 [ 4, %8726 ], [ %8838, %8837 ]
  br label %8841

8841:                                             ; preds = %8839, %8718
  %8842 = phi i32 [ 3, %8718 ], [ %8840, %8839 ]
  br label %8843

8843:                                             ; preds = %8841, %8710
  %8844 = phi i32 [ 2, %8710 ], [ %8842, %8841 ]
  br label %8845

8845:                                             ; preds = %8843, %8702
  %8846 = phi i32 [ 1, %8702 ], [ %8844, %8843 ]
  br label %8847

8847:                                             ; preds = %8845, %8694
  %8848 = phi i32 [ 0, %8694 ], [ %8846, %8845 ]
  br label %8855

8849:                                             ; preds = %8680
  %8850 = load ptr, ptr %14, align 8, !tbaa !5
  %8851 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8850, i32 0, i32 3
  %8852 = load i8, ptr %8851, align 1, !tbaa !13
  %8853 = zext i8 %8852 to i32
  %8854 = ashr i32 %8853, 4
  br label %8855

8855:                                             ; preds = %8849, %8847
  %8856 = phi i32 [ %8848, %8847 ], [ %8854, %8849 ]
  %8857 = icmp eq i32 3, %8856
  br i1 %8857, label %8858, label %8859

8858:                                             ; preds = %8855
  br label %10671

8859:                                             ; preds = %8855
  %8860 = load ptr, ptr %14, align 8, !tbaa !5
  %8861 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8860, i32 0, i32 3
  %8862 = load i8, ptr %8861, align 1, !tbaa !13
  %8863 = zext i8 %8862 to i32
  %8864 = ashr i32 %8863, 4
  %8865 = icmp eq i32 0, %8864
  br i1 %8865, label %8866, label %9028

8866:                                             ; preds = %8859
  %8867 = load ptr, ptr %14, align 8, !tbaa !5
  %8868 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8867, i32 0, i32 3
  %8869 = load i8, ptr %8868, align 1, !tbaa !13
  %8870 = zext i8 %8869 to i32
  %8871 = and i32 %8870, 15
  %8872 = icmp eq i32 0, %8871
  br i1 %8872, label %8873, label %8874

8873:                                             ; preds = %8866
  br label %9026

8874:                                             ; preds = %8866
  %8875 = load ptr, ptr %14, align 8, !tbaa !5
  %8876 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8875, i32 0, i32 3
  %8877 = load i8, ptr %8876, align 1, !tbaa !13
  %8878 = zext i8 %8877 to i32
  %8879 = and i32 %8878, 15
  %8880 = icmp eq i32 1, %8879
  br i1 %8880, label %8881, label %8882

8881:                                             ; preds = %8874
  br label %9024

8882:                                             ; preds = %8874
  %8883 = load ptr, ptr %14, align 8, !tbaa !5
  %8884 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8883, i32 0, i32 3
  %8885 = load i8, ptr %8884, align 1, !tbaa !13
  %8886 = zext i8 %8885 to i32
  %8887 = and i32 %8886, 15
  %8888 = icmp eq i32 2, %8887
  br i1 %8888, label %8889, label %8890

8889:                                             ; preds = %8882
  br label %9022

8890:                                             ; preds = %8882
  %8891 = load ptr, ptr %14, align 8, !tbaa !5
  %8892 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8891, i32 0, i32 3
  %8893 = load i8, ptr %8892, align 1, !tbaa !13
  %8894 = zext i8 %8893 to i32
  %8895 = and i32 %8894, 15
  %8896 = icmp eq i32 3, %8895
  br i1 %8896, label %8897, label %8898

8897:                                             ; preds = %8890
  br label %9020

8898:                                             ; preds = %8890
  %8899 = load ptr, ptr %14, align 8, !tbaa !5
  %8900 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8899, i32 0, i32 3
  %8901 = load i8, ptr %8900, align 1, !tbaa !13
  %8902 = zext i8 %8901 to i32
  %8903 = and i32 %8902, 15
  %8904 = icmp eq i32 4, %8903
  br i1 %8904, label %8905, label %8906

8905:                                             ; preds = %8898
  br label %9018

8906:                                             ; preds = %8898
  %8907 = load ptr, ptr %14, align 8, !tbaa !5
  %8908 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8907, i32 0, i32 3
  %8909 = load i8, ptr %8908, align 1, !tbaa !13
  %8910 = zext i8 %8909 to i32
  %8911 = and i32 %8910, 15
  %8912 = icmp eq i32 5, %8911
  br i1 %8912, label %8913, label %8914

8913:                                             ; preds = %8906
  br label %9016

8914:                                             ; preds = %8906
  %8915 = load ptr, ptr %14, align 8, !tbaa !5
  %8916 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8915, i32 0, i32 3
  %8917 = load i8, ptr %8916, align 1, !tbaa !13
  %8918 = zext i8 %8917 to i32
  %8919 = and i32 %8918, 15
  %8920 = icmp eq i32 6, %8919
  br i1 %8920, label %8921, label %8922

8921:                                             ; preds = %8914
  br label %9014

8922:                                             ; preds = %8914
  %8923 = load ptr, ptr %14, align 8, !tbaa !5
  %8924 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8923, i32 0, i32 3
  %8925 = load i8, ptr %8924, align 1, !tbaa !13
  %8926 = zext i8 %8925 to i32
  %8927 = and i32 %8926, 15
  %8928 = icmp eq i32 7, %8927
  br i1 %8928, label %8929, label %8930

8929:                                             ; preds = %8922
  br label %9012

8930:                                             ; preds = %8922
  %8931 = load ptr, ptr %14, align 8, !tbaa !5
  %8932 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8931, i32 0, i32 3
  %8933 = load i8, ptr %8932, align 1, !tbaa !13
  %8934 = zext i8 %8933 to i32
  %8935 = and i32 %8934, 15
  %8936 = icmp eq i32 8, %8935
  br i1 %8936, label %8937, label %8938

8937:                                             ; preds = %8930
  br label %9010

8938:                                             ; preds = %8930
  %8939 = load ptr, ptr %14, align 8, !tbaa !5
  %8940 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8939, i32 0, i32 3
  %8941 = load i8, ptr %8940, align 1, !tbaa !13
  %8942 = zext i8 %8941 to i32
  %8943 = and i32 %8942, 15
  %8944 = icmp eq i32 9, %8943
  br i1 %8944, label %8945, label %8946

8945:                                             ; preds = %8938
  br label %9008

8946:                                             ; preds = %8938
  %8947 = load ptr, ptr %14, align 8, !tbaa !5
  %8948 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8947, i32 0, i32 3
  %8949 = load i8, ptr %8948, align 1, !tbaa !13
  %8950 = zext i8 %8949 to i32
  %8951 = and i32 %8950, 15
  %8952 = icmp eq i32 10, %8951
  br i1 %8952, label %8953, label %8954

8953:                                             ; preds = %8946
  br label %9006

8954:                                             ; preds = %8946
  %8955 = load ptr, ptr %14, align 8, !tbaa !5
  %8956 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8955, i32 0, i32 3
  %8957 = load i8, ptr %8956, align 1, !tbaa !13
  %8958 = zext i8 %8957 to i32
  %8959 = and i32 %8958, 15
  %8960 = icmp eq i32 11, %8959
  br i1 %8960, label %8961, label %8962

8961:                                             ; preds = %8954
  br label %9004

8962:                                             ; preds = %8954
  %8963 = load ptr, ptr %14, align 8, !tbaa !5
  %8964 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8963, i32 0, i32 3
  %8965 = load i8, ptr %8964, align 1, !tbaa !13
  %8966 = zext i8 %8965 to i32
  %8967 = and i32 %8966, 15
  %8968 = icmp eq i32 12, %8967
  br i1 %8968, label %8969, label %8970

8969:                                             ; preds = %8962
  br label %9002

8970:                                             ; preds = %8962
  %8971 = load ptr, ptr %14, align 8, !tbaa !5
  %8972 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8971, i32 0, i32 3
  %8973 = load i8, ptr %8972, align 1, !tbaa !13
  %8974 = zext i8 %8973 to i32
  %8975 = and i32 %8974, 15
  %8976 = icmp eq i32 13, %8975
  br i1 %8976, label %8977, label %8978

8977:                                             ; preds = %8970
  br label %9000

8978:                                             ; preds = %8970
  %8979 = load ptr, ptr %14, align 8, !tbaa !5
  %8980 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8979, i32 0, i32 3
  %8981 = load i8, ptr %8980, align 1, !tbaa !13
  %8982 = zext i8 %8981 to i32
  %8983 = and i32 %8982, 15
  %8984 = icmp eq i32 14, %8983
  br i1 %8984, label %8985, label %8986

8985:                                             ; preds = %8978
  br label %8998

8986:                                             ; preds = %8978
  %8987 = load ptr, ptr %14, align 8, !tbaa !5
  %8988 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8987, i32 0, i32 3
  %8989 = load i8, ptr %8988, align 1, !tbaa !13
  %8990 = zext i8 %8989 to i32
  %8991 = and i32 %8990, 15
  %8992 = icmp eq i32 15, %8991
  br i1 %8992, label %8993, label %8994

8993:                                             ; preds = %8986
  br label %8996

8994:                                             ; preds = %8986
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 616, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

8995:                                             ; No predecessors!
  br label %8996

8996:                                             ; preds = %8995, %8993
  %8997 = phi i32 [ 15, %8993 ], [ 0, %8995 ]
  br label %8998

8998:                                             ; preds = %8996, %8985
  %8999 = phi i32 [ 14, %8985 ], [ %8997, %8996 ]
  br label %9000

9000:                                             ; preds = %8998, %8977
  %9001 = phi i32 [ 12, %8977 ], [ %8999, %8998 ]
  br label %9002

9002:                                             ; preds = %9000, %8969
  %9003 = phi i32 [ 12, %8969 ], [ %9001, %9000 ]
  br label %9004

9004:                                             ; preds = %9002, %8961
  %9005 = phi i32 [ 10, %8961 ], [ %9003, %9002 ]
  br label %9006

9006:                                             ; preds = %9004, %8953
  %9007 = phi i32 [ 10, %8953 ], [ %9005, %9004 ]
  br label %9008

9008:                                             ; preds = %9006, %8945
  %9009 = phi i32 [ 8, %8945 ], [ %9007, %9006 ]
  br label %9010

9010:                                             ; preds = %9008, %8937
  %9011 = phi i32 [ 8, %8937 ], [ %9009, %9008 ]
  br label %9012

9012:                                             ; preds = %9010, %8929
  %9013 = phi i32 [ 6, %8929 ], [ %9011, %9010 ]
  br label %9014

9014:                                             ; preds = %9012, %8921
  %9015 = phi i32 [ 6, %8921 ], [ %9013, %9012 ]
  br label %9016

9016:                                             ; preds = %9014, %8913
  %9017 = phi i32 [ 5, %8913 ], [ %9015, %9014 ]
  br label %9018

9018:                                             ; preds = %9016, %8905
  %9019 = phi i32 [ 4, %8905 ], [ %9017, %9016 ]
  br label %9020

9020:                                             ; preds = %9018, %8897
  %9021 = phi i32 [ 3, %8897 ], [ %9019, %9018 ]
  br label %9022

9022:                                             ; preds = %9020, %8889
  %9023 = phi i32 [ 2, %8889 ], [ %9021, %9020 ]
  br label %9024

9024:                                             ; preds = %9022, %8881
  %9025 = phi i32 [ 1, %8881 ], [ %9023, %9022 ]
  br label %9026

9026:                                             ; preds = %9024, %8873
  %9027 = phi i32 [ 0, %8873 ], [ %9025, %9024 ]
  br label %9034

9028:                                             ; preds = %8859
  %9029 = load ptr, ptr %14, align 8, !tbaa !5
  %9030 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9029, i32 0, i32 3
  %9031 = load i8, ptr %9030, align 1, !tbaa !13
  %9032 = zext i8 %9031 to i32
  %9033 = ashr i32 %9032, 4
  br label %9034

9034:                                             ; preds = %9028, %9026
  %9035 = phi i32 [ %9027, %9026 ], [ %9033, %9028 ]
  %9036 = icmp eq i32 4, %9035
  br i1 %9036, label %9037, label %9038

9037:                                             ; preds = %9034
  br label %10669

9038:                                             ; preds = %9034
  %9039 = load ptr, ptr %14, align 8, !tbaa !5
  %9040 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9039, i32 0, i32 3
  %9041 = load i8, ptr %9040, align 1, !tbaa !13
  %9042 = zext i8 %9041 to i32
  %9043 = ashr i32 %9042, 4
  %9044 = icmp eq i32 0, %9043
  br i1 %9044, label %9045, label %9207

9045:                                             ; preds = %9038
  %9046 = load ptr, ptr %14, align 8, !tbaa !5
  %9047 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9046, i32 0, i32 3
  %9048 = load i8, ptr %9047, align 1, !tbaa !13
  %9049 = zext i8 %9048 to i32
  %9050 = and i32 %9049, 15
  %9051 = icmp eq i32 0, %9050
  br i1 %9051, label %9052, label %9053

9052:                                             ; preds = %9045
  br label %9205

9053:                                             ; preds = %9045
  %9054 = load ptr, ptr %14, align 8, !tbaa !5
  %9055 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9054, i32 0, i32 3
  %9056 = load i8, ptr %9055, align 1, !tbaa !13
  %9057 = zext i8 %9056 to i32
  %9058 = and i32 %9057, 15
  %9059 = icmp eq i32 1, %9058
  br i1 %9059, label %9060, label %9061

9060:                                             ; preds = %9053
  br label %9203

9061:                                             ; preds = %9053
  %9062 = load ptr, ptr %14, align 8, !tbaa !5
  %9063 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9062, i32 0, i32 3
  %9064 = load i8, ptr %9063, align 1, !tbaa !13
  %9065 = zext i8 %9064 to i32
  %9066 = and i32 %9065, 15
  %9067 = icmp eq i32 2, %9066
  br i1 %9067, label %9068, label %9069

9068:                                             ; preds = %9061
  br label %9201

9069:                                             ; preds = %9061
  %9070 = load ptr, ptr %14, align 8, !tbaa !5
  %9071 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9070, i32 0, i32 3
  %9072 = load i8, ptr %9071, align 1, !tbaa !13
  %9073 = zext i8 %9072 to i32
  %9074 = and i32 %9073, 15
  %9075 = icmp eq i32 3, %9074
  br i1 %9075, label %9076, label %9077

9076:                                             ; preds = %9069
  br label %9199

9077:                                             ; preds = %9069
  %9078 = load ptr, ptr %14, align 8, !tbaa !5
  %9079 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9078, i32 0, i32 3
  %9080 = load i8, ptr %9079, align 1, !tbaa !13
  %9081 = zext i8 %9080 to i32
  %9082 = and i32 %9081, 15
  %9083 = icmp eq i32 4, %9082
  br i1 %9083, label %9084, label %9085

9084:                                             ; preds = %9077
  br label %9197

9085:                                             ; preds = %9077
  %9086 = load ptr, ptr %14, align 8, !tbaa !5
  %9087 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9086, i32 0, i32 3
  %9088 = load i8, ptr %9087, align 1, !tbaa !13
  %9089 = zext i8 %9088 to i32
  %9090 = and i32 %9089, 15
  %9091 = icmp eq i32 5, %9090
  br i1 %9091, label %9092, label %9093

9092:                                             ; preds = %9085
  br label %9195

9093:                                             ; preds = %9085
  %9094 = load ptr, ptr %14, align 8, !tbaa !5
  %9095 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9094, i32 0, i32 3
  %9096 = load i8, ptr %9095, align 1, !tbaa !13
  %9097 = zext i8 %9096 to i32
  %9098 = and i32 %9097, 15
  %9099 = icmp eq i32 6, %9098
  br i1 %9099, label %9100, label %9101

9100:                                             ; preds = %9093
  br label %9193

9101:                                             ; preds = %9093
  %9102 = load ptr, ptr %14, align 8, !tbaa !5
  %9103 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9102, i32 0, i32 3
  %9104 = load i8, ptr %9103, align 1, !tbaa !13
  %9105 = zext i8 %9104 to i32
  %9106 = and i32 %9105, 15
  %9107 = icmp eq i32 7, %9106
  br i1 %9107, label %9108, label %9109

9108:                                             ; preds = %9101
  br label %9191

9109:                                             ; preds = %9101
  %9110 = load ptr, ptr %14, align 8, !tbaa !5
  %9111 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9110, i32 0, i32 3
  %9112 = load i8, ptr %9111, align 1, !tbaa !13
  %9113 = zext i8 %9112 to i32
  %9114 = and i32 %9113, 15
  %9115 = icmp eq i32 8, %9114
  br i1 %9115, label %9116, label %9117

9116:                                             ; preds = %9109
  br label %9189

9117:                                             ; preds = %9109
  %9118 = load ptr, ptr %14, align 8, !tbaa !5
  %9119 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9118, i32 0, i32 3
  %9120 = load i8, ptr %9119, align 1, !tbaa !13
  %9121 = zext i8 %9120 to i32
  %9122 = and i32 %9121, 15
  %9123 = icmp eq i32 9, %9122
  br i1 %9123, label %9124, label %9125

9124:                                             ; preds = %9117
  br label %9187

9125:                                             ; preds = %9117
  %9126 = load ptr, ptr %14, align 8, !tbaa !5
  %9127 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9126, i32 0, i32 3
  %9128 = load i8, ptr %9127, align 1, !tbaa !13
  %9129 = zext i8 %9128 to i32
  %9130 = and i32 %9129, 15
  %9131 = icmp eq i32 10, %9130
  br i1 %9131, label %9132, label %9133

9132:                                             ; preds = %9125
  br label %9185

9133:                                             ; preds = %9125
  %9134 = load ptr, ptr %14, align 8, !tbaa !5
  %9135 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9134, i32 0, i32 3
  %9136 = load i8, ptr %9135, align 1, !tbaa !13
  %9137 = zext i8 %9136 to i32
  %9138 = and i32 %9137, 15
  %9139 = icmp eq i32 11, %9138
  br i1 %9139, label %9140, label %9141

9140:                                             ; preds = %9133
  br label %9183

9141:                                             ; preds = %9133
  %9142 = load ptr, ptr %14, align 8, !tbaa !5
  %9143 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9142, i32 0, i32 3
  %9144 = load i8, ptr %9143, align 1, !tbaa !13
  %9145 = zext i8 %9144 to i32
  %9146 = and i32 %9145, 15
  %9147 = icmp eq i32 12, %9146
  br i1 %9147, label %9148, label %9149

9148:                                             ; preds = %9141
  br label %9181

9149:                                             ; preds = %9141
  %9150 = load ptr, ptr %14, align 8, !tbaa !5
  %9151 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9150, i32 0, i32 3
  %9152 = load i8, ptr %9151, align 1, !tbaa !13
  %9153 = zext i8 %9152 to i32
  %9154 = and i32 %9153, 15
  %9155 = icmp eq i32 13, %9154
  br i1 %9155, label %9156, label %9157

9156:                                             ; preds = %9149
  br label %9179

9157:                                             ; preds = %9149
  %9158 = load ptr, ptr %14, align 8, !tbaa !5
  %9159 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9158, i32 0, i32 3
  %9160 = load i8, ptr %9159, align 1, !tbaa !13
  %9161 = zext i8 %9160 to i32
  %9162 = and i32 %9161, 15
  %9163 = icmp eq i32 14, %9162
  br i1 %9163, label %9164, label %9165

9164:                                             ; preds = %9157
  br label %9177

9165:                                             ; preds = %9157
  %9166 = load ptr, ptr %14, align 8, !tbaa !5
  %9167 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9166, i32 0, i32 3
  %9168 = load i8, ptr %9167, align 1, !tbaa !13
  %9169 = zext i8 %9168 to i32
  %9170 = and i32 %9169, 15
  %9171 = icmp eq i32 15, %9170
  br i1 %9171, label %9172, label %9173

9172:                                             ; preds = %9165
  br label %9175

9173:                                             ; preds = %9165
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 616, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

9174:                                             ; No predecessors!
  br label %9175

9175:                                             ; preds = %9174, %9172
  %9176 = phi i32 [ 15, %9172 ], [ 0, %9174 ]
  br label %9177

9177:                                             ; preds = %9175, %9164
  %9178 = phi i32 [ 14, %9164 ], [ %9176, %9175 ]
  br label %9179

9179:                                             ; preds = %9177, %9156
  %9180 = phi i32 [ 12, %9156 ], [ %9178, %9177 ]
  br label %9181

9181:                                             ; preds = %9179, %9148
  %9182 = phi i32 [ 12, %9148 ], [ %9180, %9179 ]
  br label %9183

9183:                                             ; preds = %9181, %9140
  %9184 = phi i32 [ 10, %9140 ], [ %9182, %9181 ]
  br label %9185

9185:                                             ; preds = %9183, %9132
  %9186 = phi i32 [ 10, %9132 ], [ %9184, %9183 ]
  br label %9187

9187:                                             ; preds = %9185, %9124
  %9188 = phi i32 [ 8, %9124 ], [ %9186, %9185 ]
  br label %9189

9189:                                             ; preds = %9187, %9116
  %9190 = phi i32 [ 8, %9116 ], [ %9188, %9187 ]
  br label %9191

9191:                                             ; preds = %9189, %9108
  %9192 = phi i32 [ 6, %9108 ], [ %9190, %9189 ]
  br label %9193

9193:                                             ; preds = %9191, %9100
  %9194 = phi i32 [ 6, %9100 ], [ %9192, %9191 ]
  br label %9195

9195:                                             ; preds = %9193, %9092
  %9196 = phi i32 [ 5, %9092 ], [ %9194, %9193 ]
  br label %9197

9197:                                             ; preds = %9195, %9084
  %9198 = phi i32 [ 4, %9084 ], [ %9196, %9195 ]
  br label %9199

9199:                                             ; preds = %9197, %9076
  %9200 = phi i32 [ 3, %9076 ], [ %9198, %9197 ]
  br label %9201

9201:                                             ; preds = %9199, %9068
  %9202 = phi i32 [ 2, %9068 ], [ %9200, %9199 ]
  br label %9203

9203:                                             ; preds = %9201, %9060
  %9204 = phi i32 [ 1, %9060 ], [ %9202, %9201 ]
  br label %9205

9205:                                             ; preds = %9203, %9052
  %9206 = phi i32 [ 0, %9052 ], [ %9204, %9203 ]
  br label %9213

9207:                                             ; preds = %9038
  %9208 = load ptr, ptr %14, align 8, !tbaa !5
  %9209 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9208, i32 0, i32 3
  %9210 = load i8, ptr %9209, align 1, !tbaa !13
  %9211 = zext i8 %9210 to i32
  %9212 = ashr i32 %9211, 4
  br label %9213

9213:                                             ; preds = %9207, %9205
  %9214 = phi i32 [ %9206, %9205 ], [ %9212, %9207 ]
  %9215 = icmp eq i32 5, %9214
  br i1 %9215, label %9216, label %9217

9216:                                             ; preds = %9213
  br label %10667

9217:                                             ; preds = %9213
  %9218 = load ptr, ptr %14, align 8, !tbaa !5
  %9219 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9218, i32 0, i32 3
  %9220 = load i8, ptr %9219, align 1, !tbaa !13
  %9221 = zext i8 %9220 to i32
  %9222 = ashr i32 %9221, 4
  %9223 = icmp eq i32 0, %9222
  br i1 %9223, label %9224, label %9386

9224:                                             ; preds = %9217
  %9225 = load ptr, ptr %14, align 8, !tbaa !5
  %9226 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9225, i32 0, i32 3
  %9227 = load i8, ptr %9226, align 1, !tbaa !13
  %9228 = zext i8 %9227 to i32
  %9229 = and i32 %9228, 15
  %9230 = icmp eq i32 0, %9229
  br i1 %9230, label %9231, label %9232

9231:                                             ; preds = %9224
  br label %9384

9232:                                             ; preds = %9224
  %9233 = load ptr, ptr %14, align 8, !tbaa !5
  %9234 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9233, i32 0, i32 3
  %9235 = load i8, ptr %9234, align 1, !tbaa !13
  %9236 = zext i8 %9235 to i32
  %9237 = and i32 %9236, 15
  %9238 = icmp eq i32 1, %9237
  br i1 %9238, label %9239, label %9240

9239:                                             ; preds = %9232
  br label %9382

9240:                                             ; preds = %9232
  %9241 = load ptr, ptr %14, align 8, !tbaa !5
  %9242 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9241, i32 0, i32 3
  %9243 = load i8, ptr %9242, align 1, !tbaa !13
  %9244 = zext i8 %9243 to i32
  %9245 = and i32 %9244, 15
  %9246 = icmp eq i32 2, %9245
  br i1 %9246, label %9247, label %9248

9247:                                             ; preds = %9240
  br label %9380

9248:                                             ; preds = %9240
  %9249 = load ptr, ptr %14, align 8, !tbaa !5
  %9250 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9249, i32 0, i32 3
  %9251 = load i8, ptr %9250, align 1, !tbaa !13
  %9252 = zext i8 %9251 to i32
  %9253 = and i32 %9252, 15
  %9254 = icmp eq i32 3, %9253
  br i1 %9254, label %9255, label %9256

9255:                                             ; preds = %9248
  br label %9378

9256:                                             ; preds = %9248
  %9257 = load ptr, ptr %14, align 8, !tbaa !5
  %9258 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9257, i32 0, i32 3
  %9259 = load i8, ptr %9258, align 1, !tbaa !13
  %9260 = zext i8 %9259 to i32
  %9261 = and i32 %9260, 15
  %9262 = icmp eq i32 4, %9261
  br i1 %9262, label %9263, label %9264

9263:                                             ; preds = %9256
  br label %9376

9264:                                             ; preds = %9256
  %9265 = load ptr, ptr %14, align 8, !tbaa !5
  %9266 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9265, i32 0, i32 3
  %9267 = load i8, ptr %9266, align 1, !tbaa !13
  %9268 = zext i8 %9267 to i32
  %9269 = and i32 %9268, 15
  %9270 = icmp eq i32 5, %9269
  br i1 %9270, label %9271, label %9272

9271:                                             ; preds = %9264
  br label %9374

9272:                                             ; preds = %9264
  %9273 = load ptr, ptr %14, align 8, !tbaa !5
  %9274 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9273, i32 0, i32 3
  %9275 = load i8, ptr %9274, align 1, !tbaa !13
  %9276 = zext i8 %9275 to i32
  %9277 = and i32 %9276, 15
  %9278 = icmp eq i32 6, %9277
  br i1 %9278, label %9279, label %9280

9279:                                             ; preds = %9272
  br label %9372

9280:                                             ; preds = %9272
  %9281 = load ptr, ptr %14, align 8, !tbaa !5
  %9282 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9281, i32 0, i32 3
  %9283 = load i8, ptr %9282, align 1, !tbaa !13
  %9284 = zext i8 %9283 to i32
  %9285 = and i32 %9284, 15
  %9286 = icmp eq i32 7, %9285
  br i1 %9286, label %9287, label %9288

9287:                                             ; preds = %9280
  br label %9370

9288:                                             ; preds = %9280
  %9289 = load ptr, ptr %14, align 8, !tbaa !5
  %9290 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9289, i32 0, i32 3
  %9291 = load i8, ptr %9290, align 1, !tbaa !13
  %9292 = zext i8 %9291 to i32
  %9293 = and i32 %9292, 15
  %9294 = icmp eq i32 8, %9293
  br i1 %9294, label %9295, label %9296

9295:                                             ; preds = %9288
  br label %9368

9296:                                             ; preds = %9288
  %9297 = load ptr, ptr %14, align 8, !tbaa !5
  %9298 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9297, i32 0, i32 3
  %9299 = load i8, ptr %9298, align 1, !tbaa !13
  %9300 = zext i8 %9299 to i32
  %9301 = and i32 %9300, 15
  %9302 = icmp eq i32 9, %9301
  br i1 %9302, label %9303, label %9304

9303:                                             ; preds = %9296
  br label %9366

9304:                                             ; preds = %9296
  %9305 = load ptr, ptr %14, align 8, !tbaa !5
  %9306 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9305, i32 0, i32 3
  %9307 = load i8, ptr %9306, align 1, !tbaa !13
  %9308 = zext i8 %9307 to i32
  %9309 = and i32 %9308, 15
  %9310 = icmp eq i32 10, %9309
  br i1 %9310, label %9311, label %9312

9311:                                             ; preds = %9304
  br label %9364

9312:                                             ; preds = %9304
  %9313 = load ptr, ptr %14, align 8, !tbaa !5
  %9314 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9313, i32 0, i32 3
  %9315 = load i8, ptr %9314, align 1, !tbaa !13
  %9316 = zext i8 %9315 to i32
  %9317 = and i32 %9316, 15
  %9318 = icmp eq i32 11, %9317
  br i1 %9318, label %9319, label %9320

9319:                                             ; preds = %9312
  br label %9362

9320:                                             ; preds = %9312
  %9321 = load ptr, ptr %14, align 8, !tbaa !5
  %9322 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9321, i32 0, i32 3
  %9323 = load i8, ptr %9322, align 1, !tbaa !13
  %9324 = zext i8 %9323 to i32
  %9325 = and i32 %9324, 15
  %9326 = icmp eq i32 12, %9325
  br i1 %9326, label %9327, label %9328

9327:                                             ; preds = %9320
  br label %9360

9328:                                             ; preds = %9320
  %9329 = load ptr, ptr %14, align 8, !tbaa !5
  %9330 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9329, i32 0, i32 3
  %9331 = load i8, ptr %9330, align 1, !tbaa !13
  %9332 = zext i8 %9331 to i32
  %9333 = and i32 %9332, 15
  %9334 = icmp eq i32 13, %9333
  br i1 %9334, label %9335, label %9336

9335:                                             ; preds = %9328
  br label %9358

9336:                                             ; preds = %9328
  %9337 = load ptr, ptr %14, align 8, !tbaa !5
  %9338 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9337, i32 0, i32 3
  %9339 = load i8, ptr %9338, align 1, !tbaa !13
  %9340 = zext i8 %9339 to i32
  %9341 = and i32 %9340, 15
  %9342 = icmp eq i32 14, %9341
  br i1 %9342, label %9343, label %9344

9343:                                             ; preds = %9336
  br label %9356

9344:                                             ; preds = %9336
  %9345 = load ptr, ptr %14, align 8, !tbaa !5
  %9346 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9345, i32 0, i32 3
  %9347 = load i8, ptr %9346, align 1, !tbaa !13
  %9348 = zext i8 %9347 to i32
  %9349 = and i32 %9348, 15
  %9350 = icmp eq i32 15, %9349
  br i1 %9350, label %9351, label %9352

9351:                                             ; preds = %9344
  br label %9354

9352:                                             ; preds = %9344
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 616, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

9353:                                             ; No predecessors!
  br label %9354

9354:                                             ; preds = %9353, %9351
  %9355 = phi i32 [ 15, %9351 ], [ 0, %9353 ]
  br label %9356

9356:                                             ; preds = %9354, %9343
  %9357 = phi i32 [ 14, %9343 ], [ %9355, %9354 ]
  br label %9358

9358:                                             ; preds = %9356, %9335
  %9359 = phi i32 [ 12, %9335 ], [ %9357, %9356 ]
  br label %9360

9360:                                             ; preds = %9358, %9327
  %9361 = phi i32 [ 12, %9327 ], [ %9359, %9358 ]
  br label %9362

9362:                                             ; preds = %9360, %9319
  %9363 = phi i32 [ 10, %9319 ], [ %9361, %9360 ]
  br label %9364

9364:                                             ; preds = %9362, %9311
  %9365 = phi i32 [ 10, %9311 ], [ %9363, %9362 ]
  br label %9366

9366:                                             ; preds = %9364, %9303
  %9367 = phi i32 [ 8, %9303 ], [ %9365, %9364 ]
  br label %9368

9368:                                             ; preds = %9366, %9295
  %9369 = phi i32 [ 8, %9295 ], [ %9367, %9366 ]
  br label %9370

9370:                                             ; preds = %9368, %9287
  %9371 = phi i32 [ 6, %9287 ], [ %9369, %9368 ]
  br label %9372

9372:                                             ; preds = %9370, %9279
  %9373 = phi i32 [ 6, %9279 ], [ %9371, %9370 ]
  br label %9374

9374:                                             ; preds = %9372, %9271
  %9375 = phi i32 [ 5, %9271 ], [ %9373, %9372 ]
  br label %9376

9376:                                             ; preds = %9374, %9263
  %9377 = phi i32 [ 4, %9263 ], [ %9375, %9374 ]
  br label %9378

9378:                                             ; preds = %9376, %9255
  %9379 = phi i32 [ 3, %9255 ], [ %9377, %9376 ]
  br label %9380

9380:                                             ; preds = %9378, %9247
  %9381 = phi i32 [ 2, %9247 ], [ %9379, %9378 ]
  br label %9382

9382:                                             ; preds = %9380, %9239
  %9383 = phi i32 [ 1, %9239 ], [ %9381, %9380 ]
  br label %9384

9384:                                             ; preds = %9382, %9231
  %9385 = phi i32 [ 0, %9231 ], [ %9383, %9382 ]
  br label %9392

9386:                                             ; preds = %9217
  %9387 = load ptr, ptr %14, align 8, !tbaa !5
  %9388 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9387, i32 0, i32 3
  %9389 = load i8, ptr %9388, align 1, !tbaa !13
  %9390 = zext i8 %9389 to i32
  %9391 = ashr i32 %9390, 4
  br label %9392

9392:                                             ; preds = %9386, %9384
  %9393 = phi i32 [ %9385, %9384 ], [ %9391, %9386 ]
  %9394 = icmp eq i32 6, %9393
  br i1 %9394, label %9395, label %9396

9395:                                             ; preds = %9392
  br label %10665

9396:                                             ; preds = %9392
  %9397 = load ptr, ptr %14, align 8, !tbaa !5
  %9398 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9397, i32 0, i32 3
  %9399 = load i8, ptr %9398, align 1, !tbaa !13
  %9400 = zext i8 %9399 to i32
  %9401 = ashr i32 %9400, 4
  %9402 = icmp eq i32 0, %9401
  br i1 %9402, label %9403, label %9565

9403:                                             ; preds = %9396
  %9404 = load ptr, ptr %14, align 8, !tbaa !5
  %9405 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9404, i32 0, i32 3
  %9406 = load i8, ptr %9405, align 1, !tbaa !13
  %9407 = zext i8 %9406 to i32
  %9408 = and i32 %9407, 15
  %9409 = icmp eq i32 0, %9408
  br i1 %9409, label %9410, label %9411

9410:                                             ; preds = %9403
  br label %9563

9411:                                             ; preds = %9403
  %9412 = load ptr, ptr %14, align 8, !tbaa !5
  %9413 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9412, i32 0, i32 3
  %9414 = load i8, ptr %9413, align 1, !tbaa !13
  %9415 = zext i8 %9414 to i32
  %9416 = and i32 %9415, 15
  %9417 = icmp eq i32 1, %9416
  br i1 %9417, label %9418, label %9419

9418:                                             ; preds = %9411
  br label %9561

9419:                                             ; preds = %9411
  %9420 = load ptr, ptr %14, align 8, !tbaa !5
  %9421 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9420, i32 0, i32 3
  %9422 = load i8, ptr %9421, align 1, !tbaa !13
  %9423 = zext i8 %9422 to i32
  %9424 = and i32 %9423, 15
  %9425 = icmp eq i32 2, %9424
  br i1 %9425, label %9426, label %9427

9426:                                             ; preds = %9419
  br label %9559

9427:                                             ; preds = %9419
  %9428 = load ptr, ptr %14, align 8, !tbaa !5
  %9429 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9428, i32 0, i32 3
  %9430 = load i8, ptr %9429, align 1, !tbaa !13
  %9431 = zext i8 %9430 to i32
  %9432 = and i32 %9431, 15
  %9433 = icmp eq i32 3, %9432
  br i1 %9433, label %9434, label %9435

9434:                                             ; preds = %9427
  br label %9557

9435:                                             ; preds = %9427
  %9436 = load ptr, ptr %14, align 8, !tbaa !5
  %9437 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9436, i32 0, i32 3
  %9438 = load i8, ptr %9437, align 1, !tbaa !13
  %9439 = zext i8 %9438 to i32
  %9440 = and i32 %9439, 15
  %9441 = icmp eq i32 4, %9440
  br i1 %9441, label %9442, label %9443

9442:                                             ; preds = %9435
  br label %9555

9443:                                             ; preds = %9435
  %9444 = load ptr, ptr %14, align 8, !tbaa !5
  %9445 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9444, i32 0, i32 3
  %9446 = load i8, ptr %9445, align 1, !tbaa !13
  %9447 = zext i8 %9446 to i32
  %9448 = and i32 %9447, 15
  %9449 = icmp eq i32 5, %9448
  br i1 %9449, label %9450, label %9451

9450:                                             ; preds = %9443
  br label %9553

9451:                                             ; preds = %9443
  %9452 = load ptr, ptr %14, align 8, !tbaa !5
  %9453 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9452, i32 0, i32 3
  %9454 = load i8, ptr %9453, align 1, !tbaa !13
  %9455 = zext i8 %9454 to i32
  %9456 = and i32 %9455, 15
  %9457 = icmp eq i32 6, %9456
  br i1 %9457, label %9458, label %9459

9458:                                             ; preds = %9451
  br label %9551

9459:                                             ; preds = %9451
  %9460 = load ptr, ptr %14, align 8, !tbaa !5
  %9461 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9460, i32 0, i32 3
  %9462 = load i8, ptr %9461, align 1, !tbaa !13
  %9463 = zext i8 %9462 to i32
  %9464 = and i32 %9463, 15
  %9465 = icmp eq i32 7, %9464
  br i1 %9465, label %9466, label %9467

9466:                                             ; preds = %9459
  br label %9549

9467:                                             ; preds = %9459
  %9468 = load ptr, ptr %14, align 8, !tbaa !5
  %9469 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9468, i32 0, i32 3
  %9470 = load i8, ptr %9469, align 1, !tbaa !13
  %9471 = zext i8 %9470 to i32
  %9472 = and i32 %9471, 15
  %9473 = icmp eq i32 8, %9472
  br i1 %9473, label %9474, label %9475

9474:                                             ; preds = %9467
  br label %9547

9475:                                             ; preds = %9467
  %9476 = load ptr, ptr %14, align 8, !tbaa !5
  %9477 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9476, i32 0, i32 3
  %9478 = load i8, ptr %9477, align 1, !tbaa !13
  %9479 = zext i8 %9478 to i32
  %9480 = and i32 %9479, 15
  %9481 = icmp eq i32 9, %9480
  br i1 %9481, label %9482, label %9483

9482:                                             ; preds = %9475
  br label %9545

9483:                                             ; preds = %9475
  %9484 = load ptr, ptr %14, align 8, !tbaa !5
  %9485 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9484, i32 0, i32 3
  %9486 = load i8, ptr %9485, align 1, !tbaa !13
  %9487 = zext i8 %9486 to i32
  %9488 = and i32 %9487, 15
  %9489 = icmp eq i32 10, %9488
  br i1 %9489, label %9490, label %9491

9490:                                             ; preds = %9483
  br label %9543

9491:                                             ; preds = %9483
  %9492 = load ptr, ptr %14, align 8, !tbaa !5
  %9493 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9492, i32 0, i32 3
  %9494 = load i8, ptr %9493, align 1, !tbaa !13
  %9495 = zext i8 %9494 to i32
  %9496 = and i32 %9495, 15
  %9497 = icmp eq i32 11, %9496
  br i1 %9497, label %9498, label %9499

9498:                                             ; preds = %9491
  br label %9541

9499:                                             ; preds = %9491
  %9500 = load ptr, ptr %14, align 8, !tbaa !5
  %9501 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9500, i32 0, i32 3
  %9502 = load i8, ptr %9501, align 1, !tbaa !13
  %9503 = zext i8 %9502 to i32
  %9504 = and i32 %9503, 15
  %9505 = icmp eq i32 12, %9504
  br i1 %9505, label %9506, label %9507

9506:                                             ; preds = %9499
  br label %9539

9507:                                             ; preds = %9499
  %9508 = load ptr, ptr %14, align 8, !tbaa !5
  %9509 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9508, i32 0, i32 3
  %9510 = load i8, ptr %9509, align 1, !tbaa !13
  %9511 = zext i8 %9510 to i32
  %9512 = and i32 %9511, 15
  %9513 = icmp eq i32 13, %9512
  br i1 %9513, label %9514, label %9515

9514:                                             ; preds = %9507
  br label %9537

9515:                                             ; preds = %9507
  %9516 = load ptr, ptr %14, align 8, !tbaa !5
  %9517 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9516, i32 0, i32 3
  %9518 = load i8, ptr %9517, align 1, !tbaa !13
  %9519 = zext i8 %9518 to i32
  %9520 = and i32 %9519, 15
  %9521 = icmp eq i32 14, %9520
  br i1 %9521, label %9522, label %9523

9522:                                             ; preds = %9515
  br label %9535

9523:                                             ; preds = %9515
  %9524 = load ptr, ptr %14, align 8, !tbaa !5
  %9525 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9524, i32 0, i32 3
  %9526 = load i8, ptr %9525, align 1, !tbaa !13
  %9527 = zext i8 %9526 to i32
  %9528 = and i32 %9527, 15
  %9529 = icmp eq i32 15, %9528
  br i1 %9529, label %9530, label %9531

9530:                                             ; preds = %9523
  br label %9533

9531:                                             ; preds = %9523
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 616, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

9532:                                             ; No predecessors!
  br label %9533

9533:                                             ; preds = %9532, %9530
  %9534 = phi i32 [ 15, %9530 ], [ 0, %9532 ]
  br label %9535

9535:                                             ; preds = %9533, %9522
  %9536 = phi i32 [ 14, %9522 ], [ %9534, %9533 ]
  br label %9537

9537:                                             ; preds = %9535, %9514
  %9538 = phi i32 [ 12, %9514 ], [ %9536, %9535 ]
  br label %9539

9539:                                             ; preds = %9537, %9506
  %9540 = phi i32 [ 12, %9506 ], [ %9538, %9537 ]
  br label %9541

9541:                                             ; preds = %9539, %9498
  %9542 = phi i32 [ 10, %9498 ], [ %9540, %9539 ]
  br label %9543

9543:                                             ; preds = %9541, %9490
  %9544 = phi i32 [ 10, %9490 ], [ %9542, %9541 ]
  br label %9545

9545:                                             ; preds = %9543, %9482
  %9546 = phi i32 [ 8, %9482 ], [ %9544, %9543 ]
  br label %9547

9547:                                             ; preds = %9545, %9474
  %9548 = phi i32 [ 8, %9474 ], [ %9546, %9545 ]
  br label %9549

9549:                                             ; preds = %9547, %9466
  %9550 = phi i32 [ 6, %9466 ], [ %9548, %9547 ]
  br label %9551

9551:                                             ; preds = %9549, %9458
  %9552 = phi i32 [ 6, %9458 ], [ %9550, %9549 ]
  br label %9553

9553:                                             ; preds = %9551, %9450
  %9554 = phi i32 [ 5, %9450 ], [ %9552, %9551 ]
  br label %9555

9555:                                             ; preds = %9553, %9442
  %9556 = phi i32 [ 4, %9442 ], [ %9554, %9553 ]
  br label %9557

9557:                                             ; preds = %9555, %9434
  %9558 = phi i32 [ 3, %9434 ], [ %9556, %9555 ]
  br label %9559

9559:                                             ; preds = %9557, %9426
  %9560 = phi i32 [ 2, %9426 ], [ %9558, %9557 ]
  br label %9561

9561:                                             ; preds = %9559, %9418
  %9562 = phi i32 [ 1, %9418 ], [ %9560, %9559 ]
  br label %9563

9563:                                             ; preds = %9561, %9410
  %9564 = phi i32 [ 0, %9410 ], [ %9562, %9561 ]
  br label %9571

9565:                                             ; preds = %9396
  %9566 = load ptr, ptr %14, align 8, !tbaa !5
  %9567 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9566, i32 0, i32 3
  %9568 = load i8, ptr %9567, align 1, !tbaa !13
  %9569 = zext i8 %9568 to i32
  %9570 = ashr i32 %9569, 4
  br label %9571

9571:                                             ; preds = %9565, %9563
  %9572 = phi i32 [ %9564, %9563 ], [ %9570, %9565 ]
  %9573 = icmp eq i32 7, %9572
  br i1 %9573, label %9574, label %9575

9574:                                             ; preds = %9571
  br label %10663

9575:                                             ; preds = %9571
  %9576 = load ptr, ptr %14, align 8, !tbaa !5
  %9577 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9576, i32 0, i32 3
  %9578 = load i8, ptr %9577, align 1, !tbaa !13
  %9579 = zext i8 %9578 to i32
  %9580 = ashr i32 %9579, 4
  %9581 = icmp eq i32 0, %9580
  br i1 %9581, label %9582, label %9744

9582:                                             ; preds = %9575
  %9583 = load ptr, ptr %14, align 8, !tbaa !5
  %9584 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9583, i32 0, i32 3
  %9585 = load i8, ptr %9584, align 1, !tbaa !13
  %9586 = zext i8 %9585 to i32
  %9587 = and i32 %9586, 15
  %9588 = icmp eq i32 0, %9587
  br i1 %9588, label %9589, label %9590

9589:                                             ; preds = %9582
  br label %9742

9590:                                             ; preds = %9582
  %9591 = load ptr, ptr %14, align 8, !tbaa !5
  %9592 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9591, i32 0, i32 3
  %9593 = load i8, ptr %9592, align 1, !tbaa !13
  %9594 = zext i8 %9593 to i32
  %9595 = and i32 %9594, 15
  %9596 = icmp eq i32 1, %9595
  br i1 %9596, label %9597, label %9598

9597:                                             ; preds = %9590
  br label %9740

9598:                                             ; preds = %9590
  %9599 = load ptr, ptr %14, align 8, !tbaa !5
  %9600 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9599, i32 0, i32 3
  %9601 = load i8, ptr %9600, align 1, !tbaa !13
  %9602 = zext i8 %9601 to i32
  %9603 = and i32 %9602, 15
  %9604 = icmp eq i32 2, %9603
  br i1 %9604, label %9605, label %9606

9605:                                             ; preds = %9598
  br label %9738

9606:                                             ; preds = %9598
  %9607 = load ptr, ptr %14, align 8, !tbaa !5
  %9608 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9607, i32 0, i32 3
  %9609 = load i8, ptr %9608, align 1, !tbaa !13
  %9610 = zext i8 %9609 to i32
  %9611 = and i32 %9610, 15
  %9612 = icmp eq i32 3, %9611
  br i1 %9612, label %9613, label %9614

9613:                                             ; preds = %9606
  br label %9736

9614:                                             ; preds = %9606
  %9615 = load ptr, ptr %14, align 8, !tbaa !5
  %9616 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9615, i32 0, i32 3
  %9617 = load i8, ptr %9616, align 1, !tbaa !13
  %9618 = zext i8 %9617 to i32
  %9619 = and i32 %9618, 15
  %9620 = icmp eq i32 4, %9619
  br i1 %9620, label %9621, label %9622

9621:                                             ; preds = %9614
  br label %9734

9622:                                             ; preds = %9614
  %9623 = load ptr, ptr %14, align 8, !tbaa !5
  %9624 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9623, i32 0, i32 3
  %9625 = load i8, ptr %9624, align 1, !tbaa !13
  %9626 = zext i8 %9625 to i32
  %9627 = and i32 %9626, 15
  %9628 = icmp eq i32 5, %9627
  br i1 %9628, label %9629, label %9630

9629:                                             ; preds = %9622
  br label %9732

9630:                                             ; preds = %9622
  %9631 = load ptr, ptr %14, align 8, !tbaa !5
  %9632 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9631, i32 0, i32 3
  %9633 = load i8, ptr %9632, align 1, !tbaa !13
  %9634 = zext i8 %9633 to i32
  %9635 = and i32 %9634, 15
  %9636 = icmp eq i32 6, %9635
  br i1 %9636, label %9637, label %9638

9637:                                             ; preds = %9630
  br label %9730

9638:                                             ; preds = %9630
  %9639 = load ptr, ptr %14, align 8, !tbaa !5
  %9640 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9639, i32 0, i32 3
  %9641 = load i8, ptr %9640, align 1, !tbaa !13
  %9642 = zext i8 %9641 to i32
  %9643 = and i32 %9642, 15
  %9644 = icmp eq i32 7, %9643
  br i1 %9644, label %9645, label %9646

9645:                                             ; preds = %9638
  br label %9728

9646:                                             ; preds = %9638
  %9647 = load ptr, ptr %14, align 8, !tbaa !5
  %9648 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9647, i32 0, i32 3
  %9649 = load i8, ptr %9648, align 1, !tbaa !13
  %9650 = zext i8 %9649 to i32
  %9651 = and i32 %9650, 15
  %9652 = icmp eq i32 8, %9651
  br i1 %9652, label %9653, label %9654

9653:                                             ; preds = %9646
  br label %9726

9654:                                             ; preds = %9646
  %9655 = load ptr, ptr %14, align 8, !tbaa !5
  %9656 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9655, i32 0, i32 3
  %9657 = load i8, ptr %9656, align 1, !tbaa !13
  %9658 = zext i8 %9657 to i32
  %9659 = and i32 %9658, 15
  %9660 = icmp eq i32 9, %9659
  br i1 %9660, label %9661, label %9662

9661:                                             ; preds = %9654
  br label %9724

9662:                                             ; preds = %9654
  %9663 = load ptr, ptr %14, align 8, !tbaa !5
  %9664 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9663, i32 0, i32 3
  %9665 = load i8, ptr %9664, align 1, !tbaa !13
  %9666 = zext i8 %9665 to i32
  %9667 = and i32 %9666, 15
  %9668 = icmp eq i32 10, %9667
  br i1 %9668, label %9669, label %9670

9669:                                             ; preds = %9662
  br label %9722

9670:                                             ; preds = %9662
  %9671 = load ptr, ptr %14, align 8, !tbaa !5
  %9672 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9671, i32 0, i32 3
  %9673 = load i8, ptr %9672, align 1, !tbaa !13
  %9674 = zext i8 %9673 to i32
  %9675 = and i32 %9674, 15
  %9676 = icmp eq i32 11, %9675
  br i1 %9676, label %9677, label %9678

9677:                                             ; preds = %9670
  br label %9720

9678:                                             ; preds = %9670
  %9679 = load ptr, ptr %14, align 8, !tbaa !5
  %9680 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9679, i32 0, i32 3
  %9681 = load i8, ptr %9680, align 1, !tbaa !13
  %9682 = zext i8 %9681 to i32
  %9683 = and i32 %9682, 15
  %9684 = icmp eq i32 12, %9683
  br i1 %9684, label %9685, label %9686

9685:                                             ; preds = %9678
  br label %9718

9686:                                             ; preds = %9678
  %9687 = load ptr, ptr %14, align 8, !tbaa !5
  %9688 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9687, i32 0, i32 3
  %9689 = load i8, ptr %9688, align 1, !tbaa !13
  %9690 = zext i8 %9689 to i32
  %9691 = and i32 %9690, 15
  %9692 = icmp eq i32 13, %9691
  br i1 %9692, label %9693, label %9694

9693:                                             ; preds = %9686
  br label %9716

9694:                                             ; preds = %9686
  %9695 = load ptr, ptr %14, align 8, !tbaa !5
  %9696 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9695, i32 0, i32 3
  %9697 = load i8, ptr %9696, align 1, !tbaa !13
  %9698 = zext i8 %9697 to i32
  %9699 = and i32 %9698, 15
  %9700 = icmp eq i32 14, %9699
  br i1 %9700, label %9701, label %9702

9701:                                             ; preds = %9694
  br label %9714

9702:                                             ; preds = %9694
  %9703 = load ptr, ptr %14, align 8, !tbaa !5
  %9704 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9703, i32 0, i32 3
  %9705 = load i8, ptr %9704, align 1, !tbaa !13
  %9706 = zext i8 %9705 to i32
  %9707 = and i32 %9706, 15
  %9708 = icmp eq i32 15, %9707
  br i1 %9708, label %9709, label %9710

9709:                                             ; preds = %9702
  br label %9712

9710:                                             ; preds = %9702
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 616, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

9711:                                             ; No predecessors!
  br label %9712

9712:                                             ; preds = %9711, %9709
  %9713 = phi i32 [ 15, %9709 ], [ 0, %9711 ]
  br label %9714

9714:                                             ; preds = %9712, %9701
  %9715 = phi i32 [ 14, %9701 ], [ %9713, %9712 ]
  br label %9716

9716:                                             ; preds = %9714, %9693
  %9717 = phi i32 [ 12, %9693 ], [ %9715, %9714 ]
  br label %9718

9718:                                             ; preds = %9716, %9685
  %9719 = phi i32 [ 12, %9685 ], [ %9717, %9716 ]
  br label %9720

9720:                                             ; preds = %9718, %9677
  %9721 = phi i32 [ 10, %9677 ], [ %9719, %9718 ]
  br label %9722

9722:                                             ; preds = %9720, %9669
  %9723 = phi i32 [ 10, %9669 ], [ %9721, %9720 ]
  br label %9724

9724:                                             ; preds = %9722, %9661
  %9725 = phi i32 [ 8, %9661 ], [ %9723, %9722 ]
  br label %9726

9726:                                             ; preds = %9724, %9653
  %9727 = phi i32 [ 8, %9653 ], [ %9725, %9724 ]
  br label %9728

9728:                                             ; preds = %9726, %9645
  %9729 = phi i32 [ 6, %9645 ], [ %9727, %9726 ]
  br label %9730

9730:                                             ; preds = %9728, %9637
  %9731 = phi i32 [ 6, %9637 ], [ %9729, %9728 ]
  br label %9732

9732:                                             ; preds = %9730, %9629
  %9733 = phi i32 [ 5, %9629 ], [ %9731, %9730 ]
  br label %9734

9734:                                             ; preds = %9732, %9621
  %9735 = phi i32 [ 4, %9621 ], [ %9733, %9732 ]
  br label %9736

9736:                                             ; preds = %9734, %9613
  %9737 = phi i32 [ 3, %9613 ], [ %9735, %9734 ]
  br label %9738

9738:                                             ; preds = %9736, %9605
  %9739 = phi i32 [ 2, %9605 ], [ %9737, %9736 ]
  br label %9740

9740:                                             ; preds = %9738, %9597
  %9741 = phi i32 [ 1, %9597 ], [ %9739, %9738 ]
  br label %9742

9742:                                             ; preds = %9740, %9589
  %9743 = phi i32 [ 0, %9589 ], [ %9741, %9740 ]
  br label %9750

9744:                                             ; preds = %9575
  %9745 = load ptr, ptr %14, align 8, !tbaa !5
  %9746 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9745, i32 0, i32 3
  %9747 = load i8, ptr %9746, align 1, !tbaa !13
  %9748 = zext i8 %9747 to i32
  %9749 = ashr i32 %9748, 4
  br label %9750

9750:                                             ; preds = %9744, %9742
  %9751 = phi i32 [ %9743, %9742 ], [ %9749, %9744 ]
  %9752 = icmp eq i32 8, %9751
  br i1 %9752, label %9753, label %9754

9753:                                             ; preds = %9750
  br label %10661

9754:                                             ; preds = %9750
  %9755 = load ptr, ptr %14, align 8, !tbaa !5
  %9756 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9755, i32 0, i32 3
  %9757 = load i8, ptr %9756, align 1, !tbaa !13
  %9758 = zext i8 %9757 to i32
  %9759 = ashr i32 %9758, 4
  %9760 = icmp eq i32 0, %9759
  br i1 %9760, label %9761, label %9923

9761:                                             ; preds = %9754
  %9762 = load ptr, ptr %14, align 8, !tbaa !5
  %9763 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9762, i32 0, i32 3
  %9764 = load i8, ptr %9763, align 1, !tbaa !13
  %9765 = zext i8 %9764 to i32
  %9766 = and i32 %9765, 15
  %9767 = icmp eq i32 0, %9766
  br i1 %9767, label %9768, label %9769

9768:                                             ; preds = %9761
  br label %9921

9769:                                             ; preds = %9761
  %9770 = load ptr, ptr %14, align 8, !tbaa !5
  %9771 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9770, i32 0, i32 3
  %9772 = load i8, ptr %9771, align 1, !tbaa !13
  %9773 = zext i8 %9772 to i32
  %9774 = and i32 %9773, 15
  %9775 = icmp eq i32 1, %9774
  br i1 %9775, label %9776, label %9777

9776:                                             ; preds = %9769
  br label %9919

9777:                                             ; preds = %9769
  %9778 = load ptr, ptr %14, align 8, !tbaa !5
  %9779 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9778, i32 0, i32 3
  %9780 = load i8, ptr %9779, align 1, !tbaa !13
  %9781 = zext i8 %9780 to i32
  %9782 = and i32 %9781, 15
  %9783 = icmp eq i32 2, %9782
  br i1 %9783, label %9784, label %9785

9784:                                             ; preds = %9777
  br label %9917

9785:                                             ; preds = %9777
  %9786 = load ptr, ptr %14, align 8, !tbaa !5
  %9787 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9786, i32 0, i32 3
  %9788 = load i8, ptr %9787, align 1, !tbaa !13
  %9789 = zext i8 %9788 to i32
  %9790 = and i32 %9789, 15
  %9791 = icmp eq i32 3, %9790
  br i1 %9791, label %9792, label %9793

9792:                                             ; preds = %9785
  br label %9915

9793:                                             ; preds = %9785
  %9794 = load ptr, ptr %14, align 8, !tbaa !5
  %9795 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9794, i32 0, i32 3
  %9796 = load i8, ptr %9795, align 1, !tbaa !13
  %9797 = zext i8 %9796 to i32
  %9798 = and i32 %9797, 15
  %9799 = icmp eq i32 4, %9798
  br i1 %9799, label %9800, label %9801

9800:                                             ; preds = %9793
  br label %9913

9801:                                             ; preds = %9793
  %9802 = load ptr, ptr %14, align 8, !tbaa !5
  %9803 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9802, i32 0, i32 3
  %9804 = load i8, ptr %9803, align 1, !tbaa !13
  %9805 = zext i8 %9804 to i32
  %9806 = and i32 %9805, 15
  %9807 = icmp eq i32 5, %9806
  br i1 %9807, label %9808, label %9809

9808:                                             ; preds = %9801
  br label %9911

9809:                                             ; preds = %9801
  %9810 = load ptr, ptr %14, align 8, !tbaa !5
  %9811 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9810, i32 0, i32 3
  %9812 = load i8, ptr %9811, align 1, !tbaa !13
  %9813 = zext i8 %9812 to i32
  %9814 = and i32 %9813, 15
  %9815 = icmp eq i32 6, %9814
  br i1 %9815, label %9816, label %9817

9816:                                             ; preds = %9809
  br label %9909

9817:                                             ; preds = %9809
  %9818 = load ptr, ptr %14, align 8, !tbaa !5
  %9819 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9818, i32 0, i32 3
  %9820 = load i8, ptr %9819, align 1, !tbaa !13
  %9821 = zext i8 %9820 to i32
  %9822 = and i32 %9821, 15
  %9823 = icmp eq i32 7, %9822
  br i1 %9823, label %9824, label %9825

9824:                                             ; preds = %9817
  br label %9907

9825:                                             ; preds = %9817
  %9826 = load ptr, ptr %14, align 8, !tbaa !5
  %9827 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9826, i32 0, i32 3
  %9828 = load i8, ptr %9827, align 1, !tbaa !13
  %9829 = zext i8 %9828 to i32
  %9830 = and i32 %9829, 15
  %9831 = icmp eq i32 8, %9830
  br i1 %9831, label %9832, label %9833

9832:                                             ; preds = %9825
  br label %9905

9833:                                             ; preds = %9825
  %9834 = load ptr, ptr %14, align 8, !tbaa !5
  %9835 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9834, i32 0, i32 3
  %9836 = load i8, ptr %9835, align 1, !tbaa !13
  %9837 = zext i8 %9836 to i32
  %9838 = and i32 %9837, 15
  %9839 = icmp eq i32 9, %9838
  br i1 %9839, label %9840, label %9841

9840:                                             ; preds = %9833
  br label %9903

9841:                                             ; preds = %9833
  %9842 = load ptr, ptr %14, align 8, !tbaa !5
  %9843 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9842, i32 0, i32 3
  %9844 = load i8, ptr %9843, align 1, !tbaa !13
  %9845 = zext i8 %9844 to i32
  %9846 = and i32 %9845, 15
  %9847 = icmp eq i32 10, %9846
  br i1 %9847, label %9848, label %9849

9848:                                             ; preds = %9841
  br label %9901

9849:                                             ; preds = %9841
  %9850 = load ptr, ptr %14, align 8, !tbaa !5
  %9851 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9850, i32 0, i32 3
  %9852 = load i8, ptr %9851, align 1, !tbaa !13
  %9853 = zext i8 %9852 to i32
  %9854 = and i32 %9853, 15
  %9855 = icmp eq i32 11, %9854
  br i1 %9855, label %9856, label %9857

9856:                                             ; preds = %9849
  br label %9899

9857:                                             ; preds = %9849
  %9858 = load ptr, ptr %14, align 8, !tbaa !5
  %9859 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9858, i32 0, i32 3
  %9860 = load i8, ptr %9859, align 1, !tbaa !13
  %9861 = zext i8 %9860 to i32
  %9862 = and i32 %9861, 15
  %9863 = icmp eq i32 12, %9862
  br i1 %9863, label %9864, label %9865

9864:                                             ; preds = %9857
  br label %9897

9865:                                             ; preds = %9857
  %9866 = load ptr, ptr %14, align 8, !tbaa !5
  %9867 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9866, i32 0, i32 3
  %9868 = load i8, ptr %9867, align 1, !tbaa !13
  %9869 = zext i8 %9868 to i32
  %9870 = and i32 %9869, 15
  %9871 = icmp eq i32 13, %9870
  br i1 %9871, label %9872, label %9873

9872:                                             ; preds = %9865
  br label %9895

9873:                                             ; preds = %9865
  %9874 = load ptr, ptr %14, align 8, !tbaa !5
  %9875 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9874, i32 0, i32 3
  %9876 = load i8, ptr %9875, align 1, !tbaa !13
  %9877 = zext i8 %9876 to i32
  %9878 = and i32 %9877, 15
  %9879 = icmp eq i32 14, %9878
  br i1 %9879, label %9880, label %9881

9880:                                             ; preds = %9873
  br label %9893

9881:                                             ; preds = %9873
  %9882 = load ptr, ptr %14, align 8, !tbaa !5
  %9883 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9882, i32 0, i32 3
  %9884 = load i8, ptr %9883, align 1, !tbaa !13
  %9885 = zext i8 %9884 to i32
  %9886 = and i32 %9885, 15
  %9887 = icmp eq i32 15, %9886
  br i1 %9887, label %9888, label %9889

9888:                                             ; preds = %9881
  br label %9891

9889:                                             ; preds = %9881
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 616, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

9890:                                             ; No predecessors!
  br label %9891

9891:                                             ; preds = %9890, %9888
  %9892 = phi i32 [ 15, %9888 ], [ 0, %9890 ]
  br label %9893

9893:                                             ; preds = %9891, %9880
  %9894 = phi i32 [ 14, %9880 ], [ %9892, %9891 ]
  br label %9895

9895:                                             ; preds = %9893, %9872
  %9896 = phi i32 [ 12, %9872 ], [ %9894, %9893 ]
  br label %9897

9897:                                             ; preds = %9895, %9864
  %9898 = phi i32 [ 12, %9864 ], [ %9896, %9895 ]
  br label %9899

9899:                                             ; preds = %9897, %9856
  %9900 = phi i32 [ 10, %9856 ], [ %9898, %9897 ]
  br label %9901

9901:                                             ; preds = %9899, %9848
  %9902 = phi i32 [ 10, %9848 ], [ %9900, %9899 ]
  br label %9903

9903:                                             ; preds = %9901, %9840
  %9904 = phi i32 [ 8, %9840 ], [ %9902, %9901 ]
  br label %9905

9905:                                             ; preds = %9903, %9832
  %9906 = phi i32 [ 8, %9832 ], [ %9904, %9903 ]
  br label %9907

9907:                                             ; preds = %9905, %9824
  %9908 = phi i32 [ 6, %9824 ], [ %9906, %9905 ]
  br label %9909

9909:                                             ; preds = %9907, %9816
  %9910 = phi i32 [ 6, %9816 ], [ %9908, %9907 ]
  br label %9911

9911:                                             ; preds = %9909, %9808
  %9912 = phi i32 [ 5, %9808 ], [ %9910, %9909 ]
  br label %9913

9913:                                             ; preds = %9911, %9800
  %9914 = phi i32 [ 4, %9800 ], [ %9912, %9911 ]
  br label %9915

9915:                                             ; preds = %9913, %9792
  %9916 = phi i32 [ 3, %9792 ], [ %9914, %9913 ]
  br label %9917

9917:                                             ; preds = %9915, %9784
  %9918 = phi i32 [ 2, %9784 ], [ %9916, %9915 ]
  br label %9919

9919:                                             ; preds = %9917, %9776
  %9920 = phi i32 [ 1, %9776 ], [ %9918, %9917 ]
  br label %9921

9921:                                             ; preds = %9919, %9768
  %9922 = phi i32 [ 0, %9768 ], [ %9920, %9919 ]
  br label %9929

9923:                                             ; preds = %9754
  %9924 = load ptr, ptr %14, align 8, !tbaa !5
  %9925 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9924, i32 0, i32 3
  %9926 = load i8, ptr %9925, align 1, !tbaa !13
  %9927 = zext i8 %9926 to i32
  %9928 = ashr i32 %9927, 4
  br label %9929

9929:                                             ; preds = %9923, %9921
  %9930 = phi i32 [ %9922, %9921 ], [ %9928, %9923 ]
  %9931 = icmp eq i32 9, %9930
  br i1 %9931, label %9932, label %9933

9932:                                             ; preds = %9929
  br label %10659

9933:                                             ; preds = %9929
  %9934 = load ptr, ptr %14, align 8, !tbaa !5
  %9935 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9934, i32 0, i32 3
  %9936 = load i8, ptr %9935, align 1, !tbaa !13
  %9937 = zext i8 %9936 to i32
  %9938 = ashr i32 %9937, 4
  %9939 = icmp eq i32 0, %9938
  br i1 %9939, label %9940, label %10102

9940:                                             ; preds = %9933
  %9941 = load ptr, ptr %14, align 8, !tbaa !5
  %9942 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9941, i32 0, i32 3
  %9943 = load i8, ptr %9942, align 1, !tbaa !13
  %9944 = zext i8 %9943 to i32
  %9945 = and i32 %9944, 15
  %9946 = icmp eq i32 0, %9945
  br i1 %9946, label %9947, label %9948

9947:                                             ; preds = %9940
  br label %10100

9948:                                             ; preds = %9940
  %9949 = load ptr, ptr %14, align 8, !tbaa !5
  %9950 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9949, i32 0, i32 3
  %9951 = load i8, ptr %9950, align 1, !tbaa !13
  %9952 = zext i8 %9951 to i32
  %9953 = and i32 %9952, 15
  %9954 = icmp eq i32 1, %9953
  br i1 %9954, label %9955, label %9956

9955:                                             ; preds = %9948
  br label %10098

9956:                                             ; preds = %9948
  %9957 = load ptr, ptr %14, align 8, !tbaa !5
  %9958 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9957, i32 0, i32 3
  %9959 = load i8, ptr %9958, align 1, !tbaa !13
  %9960 = zext i8 %9959 to i32
  %9961 = and i32 %9960, 15
  %9962 = icmp eq i32 2, %9961
  br i1 %9962, label %9963, label %9964

9963:                                             ; preds = %9956
  br label %10096

9964:                                             ; preds = %9956
  %9965 = load ptr, ptr %14, align 8, !tbaa !5
  %9966 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9965, i32 0, i32 3
  %9967 = load i8, ptr %9966, align 1, !tbaa !13
  %9968 = zext i8 %9967 to i32
  %9969 = and i32 %9968, 15
  %9970 = icmp eq i32 3, %9969
  br i1 %9970, label %9971, label %9972

9971:                                             ; preds = %9964
  br label %10094

9972:                                             ; preds = %9964
  %9973 = load ptr, ptr %14, align 8, !tbaa !5
  %9974 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9973, i32 0, i32 3
  %9975 = load i8, ptr %9974, align 1, !tbaa !13
  %9976 = zext i8 %9975 to i32
  %9977 = and i32 %9976, 15
  %9978 = icmp eq i32 4, %9977
  br i1 %9978, label %9979, label %9980

9979:                                             ; preds = %9972
  br label %10092

9980:                                             ; preds = %9972
  %9981 = load ptr, ptr %14, align 8, !tbaa !5
  %9982 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9981, i32 0, i32 3
  %9983 = load i8, ptr %9982, align 1, !tbaa !13
  %9984 = zext i8 %9983 to i32
  %9985 = and i32 %9984, 15
  %9986 = icmp eq i32 5, %9985
  br i1 %9986, label %9987, label %9988

9987:                                             ; preds = %9980
  br label %10090

9988:                                             ; preds = %9980
  %9989 = load ptr, ptr %14, align 8, !tbaa !5
  %9990 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9989, i32 0, i32 3
  %9991 = load i8, ptr %9990, align 1, !tbaa !13
  %9992 = zext i8 %9991 to i32
  %9993 = and i32 %9992, 15
  %9994 = icmp eq i32 6, %9993
  br i1 %9994, label %9995, label %9996

9995:                                             ; preds = %9988
  br label %10088

9996:                                             ; preds = %9988
  %9997 = load ptr, ptr %14, align 8, !tbaa !5
  %9998 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9997, i32 0, i32 3
  %9999 = load i8, ptr %9998, align 1, !tbaa !13
  %10000 = zext i8 %9999 to i32
  %10001 = and i32 %10000, 15
  %10002 = icmp eq i32 7, %10001
  br i1 %10002, label %10003, label %10004

10003:                                            ; preds = %9996
  br label %10086

10004:                                            ; preds = %9996
  %10005 = load ptr, ptr %14, align 8, !tbaa !5
  %10006 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10005, i32 0, i32 3
  %10007 = load i8, ptr %10006, align 1, !tbaa !13
  %10008 = zext i8 %10007 to i32
  %10009 = and i32 %10008, 15
  %10010 = icmp eq i32 8, %10009
  br i1 %10010, label %10011, label %10012

10011:                                            ; preds = %10004
  br label %10084

10012:                                            ; preds = %10004
  %10013 = load ptr, ptr %14, align 8, !tbaa !5
  %10014 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10013, i32 0, i32 3
  %10015 = load i8, ptr %10014, align 1, !tbaa !13
  %10016 = zext i8 %10015 to i32
  %10017 = and i32 %10016, 15
  %10018 = icmp eq i32 9, %10017
  br i1 %10018, label %10019, label %10020

10019:                                            ; preds = %10012
  br label %10082

10020:                                            ; preds = %10012
  %10021 = load ptr, ptr %14, align 8, !tbaa !5
  %10022 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10021, i32 0, i32 3
  %10023 = load i8, ptr %10022, align 1, !tbaa !13
  %10024 = zext i8 %10023 to i32
  %10025 = and i32 %10024, 15
  %10026 = icmp eq i32 10, %10025
  br i1 %10026, label %10027, label %10028

10027:                                            ; preds = %10020
  br label %10080

10028:                                            ; preds = %10020
  %10029 = load ptr, ptr %14, align 8, !tbaa !5
  %10030 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10029, i32 0, i32 3
  %10031 = load i8, ptr %10030, align 1, !tbaa !13
  %10032 = zext i8 %10031 to i32
  %10033 = and i32 %10032, 15
  %10034 = icmp eq i32 11, %10033
  br i1 %10034, label %10035, label %10036

10035:                                            ; preds = %10028
  br label %10078

10036:                                            ; preds = %10028
  %10037 = load ptr, ptr %14, align 8, !tbaa !5
  %10038 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10037, i32 0, i32 3
  %10039 = load i8, ptr %10038, align 1, !tbaa !13
  %10040 = zext i8 %10039 to i32
  %10041 = and i32 %10040, 15
  %10042 = icmp eq i32 12, %10041
  br i1 %10042, label %10043, label %10044

10043:                                            ; preds = %10036
  br label %10076

10044:                                            ; preds = %10036
  %10045 = load ptr, ptr %14, align 8, !tbaa !5
  %10046 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10045, i32 0, i32 3
  %10047 = load i8, ptr %10046, align 1, !tbaa !13
  %10048 = zext i8 %10047 to i32
  %10049 = and i32 %10048, 15
  %10050 = icmp eq i32 13, %10049
  br i1 %10050, label %10051, label %10052

10051:                                            ; preds = %10044
  br label %10074

10052:                                            ; preds = %10044
  %10053 = load ptr, ptr %14, align 8, !tbaa !5
  %10054 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10053, i32 0, i32 3
  %10055 = load i8, ptr %10054, align 1, !tbaa !13
  %10056 = zext i8 %10055 to i32
  %10057 = and i32 %10056, 15
  %10058 = icmp eq i32 14, %10057
  br i1 %10058, label %10059, label %10060

10059:                                            ; preds = %10052
  br label %10072

10060:                                            ; preds = %10052
  %10061 = load ptr, ptr %14, align 8, !tbaa !5
  %10062 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10061, i32 0, i32 3
  %10063 = load i8, ptr %10062, align 1, !tbaa !13
  %10064 = zext i8 %10063 to i32
  %10065 = and i32 %10064, 15
  %10066 = icmp eq i32 15, %10065
  br i1 %10066, label %10067, label %10068

10067:                                            ; preds = %10060
  br label %10070

10068:                                            ; preds = %10060
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 616, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

10069:                                            ; No predecessors!
  br label %10070

10070:                                            ; preds = %10069, %10067
  %10071 = phi i32 [ 15, %10067 ], [ 0, %10069 ]
  br label %10072

10072:                                            ; preds = %10070, %10059
  %10073 = phi i32 [ 14, %10059 ], [ %10071, %10070 ]
  br label %10074

10074:                                            ; preds = %10072, %10051
  %10075 = phi i32 [ 12, %10051 ], [ %10073, %10072 ]
  br label %10076

10076:                                            ; preds = %10074, %10043
  %10077 = phi i32 [ 12, %10043 ], [ %10075, %10074 ]
  br label %10078

10078:                                            ; preds = %10076, %10035
  %10079 = phi i32 [ 10, %10035 ], [ %10077, %10076 ]
  br label %10080

10080:                                            ; preds = %10078, %10027
  %10081 = phi i32 [ 10, %10027 ], [ %10079, %10078 ]
  br label %10082

10082:                                            ; preds = %10080, %10019
  %10083 = phi i32 [ 8, %10019 ], [ %10081, %10080 ]
  br label %10084

10084:                                            ; preds = %10082, %10011
  %10085 = phi i32 [ 8, %10011 ], [ %10083, %10082 ]
  br label %10086

10086:                                            ; preds = %10084, %10003
  %10087 = phi i32 [ 6, %10003 ], [ %10085, %10084 ]
  br label %10088

10088:                                            ; preds = %10086, %9995
  %10089 = phi i32 [ 6, %9995 ], [ %10087, %10086 ]
  br label %10090

10090:                                            ; preds = %10088, %9987
  %10091 = phi i32 [ 5, %9987 ], [ %10089, %10088 ]
  br label %10092

10092:                                            ; preds = %10090, %9979
  %10093 = phi i32 [ 4, %9979 ], [ %10091, %10090 ]
  br label %10094

10094:                                            ; preds = %10092, %9971
  %10095 = phi i32 [ 3, %9971 ], [ %10093, %10092 ]
  br label %10096

10096:                                            ; preds = %10094, %9963
  %10097 = phi i32 [ 2, %9963 ], [ %10095, %10094 ]
  br label %10098

10098:                                            ; preds = %10096, %9955
  %10099 = phi i32 [ 1, %9955 ], [ %10097, %10096 ]
  br label %10100

10100:                                            ; preds = %10098, %9947
  %10101 = phi i32 [ 0, %9947 ], [ %10099, %10098 ]
  br label %10108

10102:                                            ; preds = %9933
  %10103 = load ptr, ptr %14, align 8, !tbaa !5
  %10104 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10103, i32 0, i32 3
  %10105 = load i8, ptr %10104, align 1, !tbaa !13
  %10106 = zext i8 %10105 to i32
  %10107 = ashr i32 %10106, 4
  br label %10108

10108:                                            ; preds = %10102, %10100
  %10109 = phi i32 [ %10101, %10100 ], [ %10107, %10102 ]
  %10110 = icmp eq i32 10, %10109
  br i1 %10110, label %10111, label %10112

10111:                                            ; preds = %10108
  br label %10657

10112:                                            ; preds = %10108
  %10113 = load ptr, ptr %14, align 8, !tbaa !5
  %10114 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10113, i32 0, i32 3
  %10115 = load i8, ptr %10114, align 1, !tbaa !13
  %10116 = zext i8 %10115 to i32
  %10117 = ashr i32 %10116, 4
  %10118 = icmp eq i32 0, %10117
  br i1 %10118, label %10119, label %10281

10119:                                            ; preds = %10112
  %10120 = load ptr, ptr %14, align 8, !tbaa !5
  %10121 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10120, i32 0, i32 3
  %10122 = load i8, ptr %10121, align 1, !tbaa !13
  %10123 = zext i8 %10122 to i32
  %10124 = and i32 %10123, 15
  %10125 = icmp eq i32 0, %10124
  br i1 %10125, label %10126, label %10127

10126:                                            ; preds = %10119
  br label %10279

10127:                                            ; preds = %10119
  %10128 = load ptr, ptr %14, align 8, !tbaa !5
  %10129 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10128, i32 0, i32 3
  %10130 = load i8, ptr %10129, align 1, !tbaa !13
  %10131 = zext i8 %10130 to i32
  %10132 = and i32 %10131, 15
  %10133 = icmp eq i32 1, %10132
  br i1 %10133, label %10134, label %10135

10134:                                            ; preds = %10127
  br label %10277

10135:                                            ; preds = %10127
  %10136 = load ptr, ptr %14, align 8, !tbaa !5
  %10137 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10136, i32 0, i32 3
  %10138 = load i8, ptr %10137, align 1, !tbaa !13
  %10139 = zext i8 %10138 to i32
  %10140 = and i32 %10139, 15
  %10141 = icmp eq i32 2, %10140
  br i1 %10141, label %10142, label %10143

10142:                                            ; preds = %10135
  br label %10275

10143:                                            ; preds = %10135
  %10144 = load ptr, ptr %14, align 8, !tbaa !5
  %10145 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10144, i32 0, i32 3
  %10146 = load i8, ptr %10145, align 1, !tbaa !13
  %10147 = zext i8 %10146 to i32
  %10148 = and i32 %10147, 15
  %10149 = icmp eq i32 3, %10148
  br i1 %10149, label %10150, label %10151

10150:                                            ; preds = %10143
  br label %10273

10151:                                            ; preds = %10143
  %10152 = load ptr, ptr %14, align 8, !tbaa !5
  %10153 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10152, i32 0, i32 3
  %10154 = load i8, ptr %10153, align 1, !tbaa !13
  %10155 = zext i8 %10154 to i32
  %10156 = and i32 %10155, 15
  %10157 = icmp eq i32 4, %10156
  br i1 %10157, label %10158, label %10159

10158:                                            ; preds = %10151
  br label %10271

10159:                                            ; preds = %10151
  %10160 = load ptr, ptr %14, align 8, !tbaa !5
  %10161 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10160, i32 0, i32 3
  %10162 = load i8, ptr %10161, align 1, !tbaa !13
  %10163 = zext i8 %10162 to i32
  %10164 = and i32 %10163, 15
  %10165 = icmp eq i32 5, %10164
  br i1 %10165, label %10166, label %10167

10166:                                            ; preds = %10159
  br label %10269

10167:                                            ; preds = %10159
  %10168 = load ptr, ptr %14, align 8, !tbaa !5
  %10169 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10168, i32 0, i32 3
  %10170 = load i8, ptr %10169, align 1, !tbaa !13
  %10171 = zext i8 %10170 to i32
  %10172 = and i32 %10171, 15
  %10173 = icmp eq i32 6, %10172
  br i1 %10173, label %10174, label %10175

10174:                                            ; preds = %10167
  br label %10267

10175:                                            ; preds = %10167
  %10176 = load ptr, ptr %14, align 8, !tbaa !5
  %10177 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10176, i32 0, i32 3
  %10178 = load i8, ptr %10177, align 1, !tbaa !13
  %10179 = zext i8 %10178 to i32
  %10180 = and i32 %10179, 15
  %10181 = icmp eq i32 7, %10180
  br i1 %10181, label %10182, label %10183

10182:                                            ; preds = %10175
  br label %10265

10183:                                            ; preds = %10175
  %10184 = load ptr, ptr %14, align 8, !tbaa !5
  %10185 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10184, i32 0, i32 3
  %10186 = load i8, ptr %10185, align 1, !tbaa !13
  %10187 = zext i8 %10186 to i32
  %10188 = and i32 %10187, 15
  %10189 = icmp eq i32 8, %10188
  br i1 %10189, label %10190, label %10191

10190:                                            ; preds = %10183
  br label %10263

10191:                                            ; preds = %10183
  %10192 = load ptr, ptr %14, align 8, !tbaa !5
  %10193 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10192, i32 0, i32 3
  %10194 = load i8, ptr %10193, align 1, !tbaa !13
  %10195 = zext i8 %10194 to i32
  %10196 = and i32 %10195, 15
  %10197 = icmp eq i32 9, %10196
  br i1 %10197, label %10198, label %10199

10198:                                            ; preds = %10191
  br label %10261

10199:                                            ; preds = %10191
  %10200 = load ptr, ptr %14, align 8, !tbaa !5
  %10201 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10200, i32 0, i32 3
  %10202 = load i8, ptr %10201, align 1, !tbaa !13
  %10203 = zext i8 %10202 to i32
  %10204 = and i32 %10203, 15
  %10205 = icmp eq i32 10, %10204
  br i1 %10205, label %10206, label %10207

10206:                                            ; preds = %10199
  br label %10259

10207:                                            ; preds = %10199
  %10208 = load ptr, ptr %14, align 8, !tbaa !5
  %10209 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10208, i32 0, i32 3
  %10210 = load i8, ptr %10209, align 1, !tbaa !13
  %10211 = zext i8 %10210 to i32
  %10212 = and i32 %10211, 15
  %10213 = icmp eq i32 11, %10212
  br i1 %10213, label %10214, label %10215

10214:                                            ; preds = %10207
  br label %10257

10215:                                            ; preds = %10207
  %10216 = load ptr, ptr %14, align 8, !tbaa !5
  %10217 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10216, i32 0, i32 3
  %10218 = load i8, ptr %10217, align 1, !tbaa !13
  %10219 = zext i8 %10218 to i32
  %10220 = and i32 %10219, 15
  %10221 = icmp eq i32 12, %10220
  br i1 %10221, label %10222, label %10223

10222:                                            ; preds = %10215
  br label %10255

10223:                                            ; preds = %10215
  %10224 = load ptr, ptr %14, align 8, !tbaa !5
  %10225 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10224, i32 0, i32 3
  %10226 = load i8, ptr %10225, align 1, !tbaa !13
  %10227 = zext i8 %10226 to i32
  %10228 = and i32 %10227, 15
  %10229 = icmp eq i32 13, %10228
  br i1 %10229, label %10230, label %10231

10230:                                            ; preds = %10223
  br label %10253

10231:                                            ; preds = %10223
  %10232 = load ptr, ptr %14, align 8, !tbaa !5
  %10233 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10232, i32 0, i32 3
  %10234 = load i8, ptr %10233, align 1, !tbaa !13
  %10235 = zext i8 %10234 to i32
  %10236 = and i32 %10235, 15
  %10237 = icmp eq i32 14, %10236
  br i1 %10237, label %10238, label %10239

10238:                                            ; preds = %10231
  br label %10251

10239:                                            ; preds = %10231
  %10240 = load ptr, ptr %14, align 8, !tbaa !5
  %10241 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10240, i32 0, i32 3
  %10242 = load i8, ptr %10241, align 1, !tbaa !13
  %10243 = zext i8 %10242 to i32
  %10244 = and i32 %10243, 15
  %10245 = icmp eq i32 15, %10244
  br i1 %10245, label %10246, label %10247

10246:                                            ; preds = %10239
  br label %10249

10247:                                            ; preds = %10239
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 616, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

10248:                                            ; No predecessors!
  br label %10249

10249:                                            ; preds = %10248, %10246
  %10250 = phi i32 [ 15, %10246 ], [ 0, %10248 ]
  br label %10251

10251:                                            ; preds = %10249, %10238
  %10252 = phi i32 [ 14, %10238 ], [ %10250, %10249 ]
  br label %10253

10253:                                            ; preds = %10251, %10230
  %10254 = phi i32 [ 12, %10230 ], [ %10252, %10251 ]
  br label %10255

10255:                                            ; preds = %10253, %10222
  %10256 = phi i32 [ 12, %10222 ], [ %10254, %10253 ]
  br label %10257

10257:                                            ; preds = %10255, %10214
  %10258 = phi i32 [ 10, %10214 ], [ %10256, %10255 ]
  br label %10259

10259:                                            ; preds = %10257, %10206
  %10260 = phi i32 [ 10, %10206 ], [ %10258, %10257 ]
  br label %10261

10261:                                            ; preds = %10259, %10198
  %10262 = phi i32 [ 8, %10198 ], [ %10260, %10259 ]
  br label %10263

10263:                                            ; preds = %10261, %10190
  %10264 = phi i32 [ 8, %10190 ], [ %10262, %10261 ]
  br label %10265

10265:                                            ; preds = %10263, %10182
  %10266 = phi i32 [ 6, %10182 ], [ %10264, %10263 ]
  br label %10267

10267:                                            ; preds = %10265, %10174
  %10268 = phi i32 [ 6, %10174 ], [ %10266, %10265 ]
  br label %10269

10269:                                            ; preds = %10267, %10166
  %10270 = phi i32 [ 5, %10166 ], [ %10268, %10267 ]
  br label %10271

10271:                                            ; preds = %10269, %10158
  %10272 = phi i32 [ 4, %10158 ], [ %10270, %10269 ]
  br label %10273

10273:                                            ; preds = %10271, %10150
  %10274 = phi i32 [ 3, %10150 ], [ %10272, %10271 ]
  br label %10275

10275:                                            ; preds = %10273, %10142
  %10276 = phi i32 [ 2, %10142 ], [ %10274, %10273 ]
  br label %10277

10277:                                            ; preds = %10275, %10134
  %10278 = phi i32 [ 1, %10134 ], [ %10276, %10275 ]
  br label %10279

10279:                                            ; preds = %10277, %10126
  %10280 = phi i32 [ 0, %10126 ], [ %10278, %10277 ]
  br label %10287

10281:                                            ; preds = %10112
  %10282 = load ptr, ptr %14, align 8, !tbaa !5
  %10283 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10282, i32 0, i32 3
  %10284 = load i8, ptr %10283, align 1, !tbaa !13
  %10285 = zext i8 %10284 to i32
  %10286 = ashr i32 %10285, 4
  br label %10287

10287:                                            ; preds = %10281, %10279
  %10288 = phi i32 [ %10280, %10279 ], [ %10286, %10281 ]
  %10289 = icmp eq i32 11, %10288
  br i1 %10289, label %10290, label %10291

10290:                                            ; preds = %10287
  br label %10655

10291:                                            ; preds = %10287
  %10292 = load ptr, ptr %14, align 8, !tbaa !5
  %10293 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10292, i32 0, i32 3
  %10294 = load i8, ptr %10293, align 1, !tbaa !13
  %10295 = zext i8 %10294 to i32
  %10296 = ashr i32 %10295, 4
  %10297 = icmp eq i32 0, %10296
  br i1 %10297, label %10298, label %10460

10298:                                            ; preds = %10291
  %10299 = load ptr, ptr %14, align 8, !tbaa !5
  %10300 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10299, i32 0, i32 3
  %10301 = load i8, ptr %10300, align 1, !tbaa !13
  %10302 = zext i8 %10301 to i32
  %10303 = and i32 %10302, 15
  %10304 = icmp eq i32 0, %10303
  br i1 %10304, label %10305, label %10306

10305:                                            ; preds = %10298
  br label %10458

10306:                                            ; preds = %10298
  %10307 = load ptr, ptr %14, align 8, !tbaa !5
  %10308 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10307, i32 0, i32 3
  %10309 = load i8, ptr %10308, align 1, !tbaa !13
  %10310 = zext i8 %10309 to i32
  %10311 = and i32 %10310, 15
  %10312 = icmp eq i32 1, %10311
  br i1 %10312, label %10313, label %10314

10313:                                            ; preds = %10306
  br label %10456

10314:                                            ; preds = %10306
  %10315 = load ptr, ptr %14, align 8, !tbaa !5
  %10316 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10315, i32 0, i32 3
  %10317 = load i8, ptr %10316, align 1, !tbaa !13
  %10318 = zext i8 %10317 to i32
  %10319 = and i32 %10318, 15
  %10320 = icmp eq i32 2, %10319
  br i1 %10320, label %10321, label %10322

10321:                                            ; preds = %10314
  br label %10454

10322:                                            ; preds = %10314
  %10323 = load ptr, ptr %14, align 8, !tbaa !5
  %10324 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10323, i32 0, i32 3
  %10325 = load i8, ptr %10324, align 1, !tbaa !13
  %10326 = zext i8 %10325 to i32
  %10327 = and i32 %10326, 15
  %10328 = icmp eq i32 3, %10327
  br i1 %10328, label %10329, label %10330

10329:                                            ; preds = %10322
  br label %10452

10330:                                            ; preds = %10322
  %10331 = load ptr, ptr %14, align 8, !tbaa !5
  %10332 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10331, i32 0, i32 3
  %10333 = load i8, ptr %10332, align 1, !tbaa !13
  %10334 = zext i8 %10333 to i32
  %10335 = and i32 %10334, 15
  %10336 = icmp eq i32 4, %10335
  br i1 %10336, label %10337, label %10338

10337:                                            ; preds = %10330
  br label %10450

10338:                                            ; preds = %10330
  %10339 = load ptr, ptr %14, align 8, !tbaa !5
  %10340 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10339, i32 0, i32 3
  %10341 = load i8, ptr %10340, align 1, !tbaa !13
  %10342 = zext i8 %10341 to i32
  %10343 = and i32 %10342, 15
  %10344 = icmp eq i32 5, %10343
  br i1 %10344, label %10345, label %10346

10345:                                            ; preds = %10338
  br label %10448

10346:                                            ; preds = %10338
  %10347 = load ptr, ptr %14, align 8, !tbaa !5
  %10348 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10347, i32 0, i32 3
  %10349 = load i8, ptr %10348, align 1, !tbaa !13
  %10350 = zext i8 %10349 to i32
  %10351 = and i32 %10350, 15
  %10352 = icmp eq i32 6, %10351
  br i1 %10352, label %10353, label %10354

10353:                                            ; preds = %10346
  br label %10446

10354:                                            ; preds = %10346
  %10355 = load ptr, ptr %14, align 8, !tbaa !5
  %10356 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10355, i32 0, i32 3
  %10357 = load i8, ptr %10356, align 1, !tbaa !13
  %10358 = zext i8 %10357 to i32
  %10359 = and i32 %10358, 15
  %10360 = icmp eq i32 7, %10359
  br i1 %10360, label %10361, label %10362

10361:                                            ; preds = %10354
  br label %10444

10362:                                            ; preds = %10354
  %10363 = load ptr, ptr %14, align 8, !tbaa !5
  %10364 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10363, i32 0, i32 3
  %10365 = load i8, ptr %10364, align 1, !tbaa !13
  %10366 = zext i8 %10365 to i32
  %10367 = and i32 %10366, 15
  %10368 = icmp eq i32 8, %10367
  br i1 %10368, label %10369, label %10370

10369:                                            ; preds = %10362
  br label %10442

10370:                                            ; preds = %10362
  %10371 = load ptr, ptr %14, align 8, !tbaa !5
  %10372 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10371, i32 0, i32 3
  %10373 = load i8, ptr %10372, align 1, !tbaa !13
  %10374 = zext i8 %10373 to i32
  %10375 = and i32 %10374, 15
  %10376 = icmp eq i32 9, %10375
  br i1 %10376, label %10377, label %10378

10377:                                            ; preds = %10370
  br label %10440

10378:                                            ; preds = %10370
  %10379 = load ptr, ptr %14, align 8, !tbaa !5
  %10380 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10379, i32 0, i32 3
  %10381 = load i8, ptr %10380, align 1, !tbaa !13
  %10382 = zext i8 %10381 to i32
  %10383 = and i32 %10382, 15
  %10384 = icmp eq i32 10, %10383
  br i1 %10384, label %10385, label %10386

10385:                                            ; preds = %10378
  br label %10438

10386:                                            ; preds = %10378
  %10387 = load ptr, ptr %14, align 8, !tbaa !5
  %10388 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10387, i32 0, i32 3
  %10389 = load i8, ptr %10388, align 1, !tbaa !13
  %10390 = zext i8 %10389 to i32
  %10391 = and i32 %10390, 15
  %10392 = icmp eq i32 11, %10391
  br i1 %10392, label %10393, label %10394

10393:                                            ; preds = %10386
  br label %10436

10394:                                            ; preds = %10386
  %10395 = load ptr, ptr %14, align 8, !tbaa !5
  %10396 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10395, i32 0, i32 3
  %10397 = load i8, ptr %10396, align 1, !tbaa !13
  %10398 = zext i8 %10397 to i32
  %10399 = and i32 %10398, 15
  %10400 = icmp eq i32 12, %10399
  br i1 %10400, label %10401, label %10402

10401:                                            ; preds = %10394
  br label %10434

10402:                                            ; preds = %10394
  %10403 = load ptr, ptr %14, align 8, !tbaa !5
  %10404 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10403, i32 0, i32 3
  %10405 = load i8, ptr %10404, align 1, !tbaa !13
  %10406 = zext i8 %10405 to i32
  %10407 = and i32 %10406, 15
  %10408 = icmp eq i32 13, %10407
  br i1 %10408, label %10409, label %10410

10409:                                            ; preds = %10402
  br label %10432

10410:                                            ; preds = %10402
  %10411 = load ptr, ptr %14, align 8, !tbaa !5
  %10412 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10411, i32 0, i32 3
  %10413 = load i8, ptr %10412, align 1, !tbaa !13
  %10414 = zext i8 %10413 to i32
  %10415 = and i32 %10414, 15
  %10416 = icmp eq i32 14, %10415
  br i1 %10416, label %10417, label %10418

10417:                                            ; preds = %10410
  br label %10430

10418:                                            ; preds = %10410
  %10419 = load ptr, ptr %14, align 8, !tbaa !5
  %10420 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10419, i32 0, i32 3
  %10421 = load i8, ptr %10420, align 1, !tbaa !13
  %10422 = zext i8 %10421 to i32
  %10423 = and i32 %10422, 15
  %10424 = icmp eq i32 15, %10423
  br i1 %10424, label %10425, label %10426

10425:                                            ; preds = %10418
  br label %10428

10426:                                            ; preds = %10418
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 616, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

10427:                                            ; No predecessors!
  br label %10428

10428:                                            ; preds = %10427, %10425
  %10429 = phi i32 [ 15, %10425 ], [ 0, %10427 ]
  br label %10430

10430:                                            ; preds = %10428, %10417
  %10431 = phi i32 [ 14, %10417 ], [ %10429, %10428 ]
  br label %10432

10432:                                            ; preds = %10430, %10409
  %10433 = phi i32 [ 12, %10409 ], [ %10431, %10430 ]
  br label %10434

10434:                                            ; preds = %10432, %10401
  %10435 = phi i32 [ 12, %10401 ], [ %10433, %10432 ]
  br label %10436

10436:                                            ; preds = %10434, %10393
  %10437 = phi i32 [ 10, %10393 ], [ %10435, %10434 ]
  br label %10438

10438:                                            ; preds = %10436, %10385
  %10439 = phi i32 [ 10, %10385 ], [ %10437, %10436 ]
  br label %10440

10440:                                            ; preds = %10438, %10377
  %10441 = phi i32 [ 8, %10377 ], [ %10439, %10438 ]
  br label %10442

10442:                                            ; preds = %10440, %10369
  %10443 = phi i32 [ 8, %10369 ], [ %10441, %10440 ]
  br label %10444

10444:                                            ; preds = %10442, %10361
  %10445 = phi i32 [ 6, %10361 ], [ %10443, %10442 ]
  br label %10446

10446:                                            ; preds = %10444, %10353
  %10447 = phi i32 [ 6, %10353 ], [ %10445, %10444 ]
  br label %10448

10448:                                            ; preds = %10446, %10345
  %10449 = phi i32 [ 5, %10345 ], [ %10447, %10446 ]
  br label %10450

10450:                                            ; preds = %10448, %10337
  %10451 = phi i32 [ 4, %10337 ], [ %10449, %10448 ]
  br label %10452

10452:                                            ; preds = %10450, %10329
  %10453 = phi i32 [ 3, %10329 ], [ %10451, %10450 ]
  br label %10454

10454:                                            ; preds = %10452, %10321
  %10455 = phi i32 [ 2, %10321 ], [ %10453, %10452 ]
  br label %10456

10456:                                            ; preds = %10454, %10313
  %10457 = phi i32 [ 1, %10313 ], [ %10455, %10454 ]
  br label %10458

10458:                                            ; preds = %10456, %10305
  %10459 = phi i32 [ 0, %10305 ], [ %10457, %10456 ]
  br label %10466

10460:                                            ; preds = %10291
  %10461 = load ptr, ptr %14, align 8, !tbaa !5
  %10462 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10461, i32 0, i32 3
  %10463 = load i8, ptr %10462, align 1, !tbaa !13
  %10464 = zext i8 %10463 to i32
  %10465 = ashr i32 %10464, 4
  br label %10466

10466:                                            ; preds = %10460, %10458
  %10467 = phi i32 [ %10459, %10458 ], [ %10465, %10460 ]
  %10468 = icmp eq i32 12, %10467
  br i1 %10468, label %10469, label %10470

10469:                                            ; preds = %10466
  br label %10653

10470:                                            ; preds = %10466
  %10471 = load ptr, ptr %14, align 8, !tbaa !5
  %10472 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10471, i32 0, i32 3
  %10473 = load i8, ptr %10472, align 1, !tbaa !13
  %10474 = zext i8 %10473 to i32
  %10475 = ashr i32 %10474, 4
  %10476 = icmp eq i32 0, %10475
  br i1 %10476, label %10477, label %10639

10477:                                            ; preds = %10470
  %10478 = load ptr, ptr %14, align 8, !tbaa !5
  %10479 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10478, i32 0, i32 3
  %10480 = load i8, ptr %10479, align 1, !tbaa !13
  %10481 = zext i8 %10480 to i32
  %10482 = and i32 %10481, 15
  %10483 = icmp eq i32 0, %10482
  br i1 %10483, label %10484, label %10485

10484:                                            ; preds = %10477
  br label %10637

10485:                                            ; preds = %10477
  %10486 = load ptr, ptr %14, align 8, !tbaa !5
  %10487 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10486, i32 0, i32 3
  %10488 = load i8, ptr %10487, align 1, !tbaa !13
  %10489 = zext i8 %10488 to i32
  %10490 = and i32 %10489, 15
  %10491 = icmp eq i32 1, %10490
  br i1 %10491, label %10492, label %10493

10492:                                            ; preds = %10485
  br label %10635

10493:                                            ; preds = %10485
  %10494 = load ptr, ptr %14, align 8, !tbaa !5
  %10495 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10494, i32 0, i32 3
  %10496 = load i8, ptr %10495, align 1, !tbaa !13
  %10497 = zext i8 %10496 to i32
  %10498 = and i32 %10497, 15
  %10499 = icmp eq i32 2, %10498
  br i1 %10499, label %10500, label %10501

10500:                                            ; preds = %10493
  br label %10633

10501:                                            ; preds = %10493
  %10502 = load ptr, ptr %14, align 8, !tbaa !5
  %10503 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10502, i32 0, i32 3
  %10504 = load i8, ptr %10503, align 1, !tbaa !13
  %10505 = zext i8 %10504 to i32
  %10506 = and i32 %10505, 15
  %10507 = icmp eq i32 3, %10506
  br i1 %10507, label %10508, label %10509

10508:                                            ; preds = %10501
  br label %10631

10509:                                            ; preds = %10501
  %10510 = load ptr, ptr %14, align 8, !tbaa !5
  %10511 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10510, i32 0, i32 3
  %10512 = load i8, ptr %10511, align 1, !tbaa !13
  %10513 = zext i8 %10512 to i32
  %10514 = and i32 %10513, 15
  %10515 = icmp eq i32 4, %10514
  br i1 %10515, label %10516, label %10517

10516:                                            ; preds = %10509
  br label %10629

10517:                                            ; preds = %10509
  %10518 = load ptr, ptr %14, align 8, !tbaa !5
  %10519 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10518, i32 0, i32 3
  %10520 = load i8, ptr %10519, align 1, !tbaa !13
  %10521 = zext i8 %10520 to i32
  %10522 = and i32 %10521, 15
  %10523 = icmp eq i32 5, %10522
  br i1 %10523, label %10524, label %10525

10524:                                            ; preds = %10517
  br label %10627

10525:                                            ; preds = %10517
  %10526 = load ptr, ptr %14, align 8, !tbaa !5
  %10527 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10526, i32 0, i32 3
  %10528 = load i8, ptr %10527, align 1, !tbaa !13
  %10529 = zext i8 %10528 to i32
  %10530 = and i32 %10529, 15
  %10531 = icmp eq i32 6, %10530
  br i1 %10531, label %10532, label %10533

10532:                                            ; preds = %10525
  br label %10625

10533:                                            ; preds = %10525
  %10534 = load ptr, ptr %14, align 8, !tbaa !5
  %10535 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10534, i32 0, i32 3
  %10536 = load i8, ptr %10535, align 1, !tbaa !13
  %10537 = zext i8 %10536 to i32
  %10538 = and i32 %10537, 15
  %10539 = icmp eq i32 7, %10538
  br i1 %10539, label %10540, label %10541

10540:                                            ; preds = %10533
  br label %10623

10541:                                            ; preds = %10533
  %10542 = load ptr, ptr %14, align 8, !tbaa !5
  %10543 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10542, i32 0, i32 3
  %10544 = load i8, ptr %10543, align 1, !tbaa !13
  %10545 = zext i8 %10544 to i32
  %10546 = and i32 %10545, 15
  %10547 = icmp eq i32 8, %10546
  br i1 %10547, label %10548, label %10549

10548:                                            ; preds = %10541
  br label %10621

10549:                                            ; preds = %10541
  %10550 = load ptr, ptr %14, align 8, !tbaa !5
  %10551 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10550, i32 0, i32 3
  %10552 = load i8, ptr %10551, align 1, !tbaa !13
  %10553 = zext i8 %10552 to i32
  %10554 = and i32 %10553, 15
  %10555 = icmp eq i32 9, %10554
  br i1 %10555, label %10556, label %10557

10556:                                            ; preds = %10549
  br label %10619

10557:                                            ; preds = %10549
  %10558 = load ptr, ptr %14, align 8, !tbaa !5
  %10559 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10558, i32 0, i32 3
  %10560 = load i8, ptr %10559, align 1, !tbaa !13
  %10561 = zext i8 %10560 to i32
  %10562 = and i32 %10561, 15
  %10563 = icmp eq i32 10, %10562
  br i1 %10563, label %10564, label %10565

10564:                                            ; preds = %10557
  br label %10617

10565:                                            ; preds = %10557
  %10566 = load ptr, ptr %14, align 8, !tbaa !5
  %10567 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10566, i32 0, i32 3
  %10568 = load i8, ptr %10567, align 1, !tbaa !13
  %10569 = zext i8 %10568 to i32
  %10570 = and i32 %10569, 15
  %10571 = icmp eq i32 11, %10570
  br i1 %10571, label %10572, label %10573

10572:                                            ; preds = %10565
  br label %10615

10573:                                            ; preds = %10565
  %10574 = load ptr, ptr %14, align 8, !tbaa !5
  %10575 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10574, i32 0, i32 3
  %10576 = load i8, ptr %10575, align 1, !tbaa !13
  %10577 = zext i8 %10576 to i32
  %10578 = and i32 %10577, 15
  %10579 = icmp eq i32 12, %10578
  br i1 %10579, label %10580, label %10581

10580:                                            ; preds = %10573
  br label %10613

10581:                                            ; preds = %10573
  %10582 = load ptr, ptr %14, align 8, !tbaa !5
  %10583 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10582, i32 0, i32 3
  %10584 = load i8, ptr %10583, align 1, !tbaa !13
  %10585 = zext i8 %10584 to i32
  %10586 = and i32 %10585, 15
  %10587 = icmp eq i32 13, %10586
  br i1 %10587, label %10588, label %10589

10588:                                            ; preds = %10581
  br label %10611

10589:                                            ; preds = %10581
  %10590 = load ptr, ptr %14, align 8, !tbaa !5
  %10591 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10590, i32 0, i32 3
  %10592 = load i8, ptr %10591, align 1, !tbaa !13
  %10593 = zext i8 %10592 to i32
  %10594 = and i32 %10593, 15
  %10595 = icmp eq i32 14, %10594
  br i1 %10595, label %10596, label %10597

10596:                                            ; preds = %10589
  br label %10609

10597:                                            ; preds = %10589
  %10598 = load ptr, ptr %14, align 8, !tbaa !5
  %10599 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10598, i32 0, i32 3
  %10600 = load i8, ptr %10599, align 1, !tbaa !13
  %10601 = zext i8 %10600 to i32
  %10602 = and i32 %10601, 15
  %10603 = icmp eq i32 15, %10602
  br i1 %10603, label %10604, label %10605

10604:                                            ; preds = %10597
  br label %10607

10605:                                            ; preds = %10597
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 616, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

10606:                                            ; No predecessors!
  br label %10607

10607:                                            ; preds = %10606, %10604
  %10608 = phi i32 [ 15, %10604 ], [ 0, %10606 ]
  br label %10609

10609:                                            ; preds = %10607, %10596
  %10610 = phi i32 [ 14, %10596 ], [ %10608, %10607 ]
  br label %10611

10611:                                            ; preds = %10609, %10588
  %10612 = phi i32 [ 12, %10588 ], [ %10610, %10609 ]
  br label %10613

10613:                                            ; preds = %10611, %10580
  %10614 = phi i32 [ 12, %10580 ], [ %10612, %10611 ]
  br label %10615

10615:                                            ; preds = %10613, %10572
  %10616 = phi i32 [ 10, %10572 ], [ %10614, %10613 ]
  br label %10617

10617:                                            ; preds = %10615, %10564
  %10618 = phi i32 [ 10, %10564 ], [ %10616, %10615 ]
  br label %10619

10619:                                            ; preds = %10617, %10556
  %10620 = phi i32 [ 8, %10556 ], [ %10618, %10617 ]
  br label %10621

10621:                                            ; preds = %10619, %10548
  %10622 = phi i32 [ 8, %10548 ], [ %10620, %10619 ]
  br label %10623

10623:                                            ; preds = %10621, %10540
  %10624 = phi i32 [ 6, %10540 ], [ %10622, %10621 ]
  br label %10625

10625:                                            ; preds = %10623, %10532
  %10626 = phi i32 [ 6, %10532 ], [ %10624, %10623 ]
  br label %10627

10627:                                            ; preds = %10625, %10524
  %10628 = phi i32 [ 5, %10524 ], [ %10626, %10625 ]
  br label %10629

10629:                                            ; preds = %10627, %10516
  %10630 = phi i32 [ 4, %10516 ], [ %10628, %10627 ]
  br label %10631

10631:                                            ; preds = %10629, %10508
  %10632 = phi i32 [ 3, %10508 ], [ %10630, %10629 ]
  br label %10633

10633:                                            ; preds = %10631, %10500
  %10634 = phi i32 [ 2, %10500 ], [ %10632, %10631 ]
  br label %10635

10635:                                            ; preds = %10633, %10492
  %10636 = phi i32 [ 1, %10492 ], [ %10634, %10633 ]
  br label %10637

10637:                                            ; preds = %10635, %10484
  %10638 = phi i32 [ 0, %10484 ], [ %10636, %10635 ]
  br label %10645

10639:                                            ; preds = %10470
  %10640 = load ptr, ptr %14, align 8, !tbaa !5
  %10641 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10640, i32 0, i32 3
  %10642 = load i8, ptr %10641, align 1, !tbaa !13
  %10643 = zext i8 %10642 to i32
  %10644 = ashr i32 %10643, 4
  br label %10645

10645:                                            ; preds = %10639, %10637
  %10646 = phi i32 [ %10638, %10637 ], [ %10644, %10639 ]
  %10647 = icmp eq i32 13, %10646
  br i1 %10647, label %10648, label %10649

10648:                                            ; preds = %10645
  br label %10651

10649:                                            ; preds = %10645
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 616, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

10650:                                            ; No predecessors!
  br label %10651

10651:                                            ; preds = %10650, %10648
  %10652 = phi i32 [ 1, %10648 ], [ 0, %10650 ]
  br label %10653

10653:                                            ; preds = %10651, %10469
  %10654 = phi i32 [ 1, %10469 ], [ %10652, %10651 ]
  br label %10655

10655:                                            ; preds = %10653, %10290
  %10656 = phi i32 [ 2, %10290 ], [ %10654, %10653 ]
  br label %10657

10657:                                            ; preds = %10655, %10111
  %10658 = phi i32 [ 2, %10111 ], [ %10656, %10655 ]
  br label %10659

10659:                                            ; preds = %10657, %9932
  %10660 = phi i32 [ 4, %9932 ], [ %10658, %10657 ]
  br label %10661

10661:                                            ; preds = %10659, %9753
  %10662 = phi i32 [ 4, %9753 ], [ %10660, %10659 ]
  br label %10663

10663:                                            ; preds = %10661, %9574
  %10664 = phi i32 [ 8, %9574 ], [ %10662, %10661 ]
  br label %10665

10665:                                            ; preds = %10663, %9395
  %10666 = phi i32 [ 8, %9395 ], [ %10664, %10663 ]
  br label %10667

10667:                                            ; preds = %10665, %9216
  %10668 = phi i32 [ 1, %9216 ], [ %10666, %10665 ]
  br label %10669

10669:                                            ; preds = %10667, %9037
  %10670 = phi i32 [ 1, %9037 ], [ %10668, %10667 ]
  br label %10671

10671:                                            ; preds = %10669, %8858
  %10672 = phi i32 [ 2, %8858 ], [ %10670, %10669 ]
  br label %10673

10673:                                            ; preds = %10671, %8679
  %10674 = phi i32 [ 2, %8679 ], [ %10672, %10671 ]
  br label %10675

10675:                                            ; preds = %10673, %8500
  %10676 = phi i32 [ 4, %8500 ], [ %10674, %10673 ]
  br label %10677

10677:                                            ; preds = %10675, %8321
  %10678 = phi i32 [ 8, %8321 ], [ %10676, %10675 ]
  %10679 = load i32, ptr %29, align 4, !tbaa !9
  %10680 = load i32, ptr %30, align 4, !tbaa !9
  %10681 = trunc i32 %10680 to i8
  %10682 = zext i8 %10681 to i32
  %10683 = icmp eq i32 0, %10682
  br i1 %10683, label %10689, label %10684

10684:                                            ; preds = %10677
  %10685 = load i32, ptr %30, align 4, !tbaa !9
  %10686 = trunc i32 %10685 to i8
  %10687 = zext i8 %10686 to i32
  %10688 = icmp slt i32 0, %10687
  br i1 %10688, label %10689, label %10707

10689:                                            ; preds = %10684, %10677
  %10690 = load i32, ptr %30, align 4, !tbaa !9
  %10691 = zext i32 %10690 to i64
  %10692 = mul i64 1, %10691
  %10693 = icmp ult i64 %10692, 255
  br i1 %10693, label %10694, label %10698

10694:                                            ; preds = %10689
  %10695 = load i32, ptr %30, align 4, !tbaa !9
  %10696 = zext i32 %10695 to i64
  %10697 = mul i64 1, %10696
  br label %10699

10698:                                            ; preds = %10689
  br label %10699

10699:                                            ; preds = %10698, %10694
  %10700 = phi i64 [ %10697, %10694 ], [ 255, %10698 ]
  %10701 = icmp ule i64 %10700, 255
  br i1 %10701, label %10702, label %10707

10702:                                            ; preds = %10699
  %10703 = load i32, ptr %30, align 4, !tbaa !9
  %10704 = uitofp i32 %10703 to double
  %10705 = fcmp ole double 0.000000e+00, %10704
  br i1 %10705, label %10706, label %10707

10706:                                            ; preds = %10702
  br label %10708

10707:                                            ; preds = %10702, %10699, %10684
  call void @__assert_fail(ptr noundef @.str.5, ptr noundef @.str.1, i32 noundef 616, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

10708:                                            ; preds = %10706
  %10709 = load i32, ptr %30, align 4, !tbaa !9
  %10710 = trunc i32 %10709 to i8
  %10711 = load i8, ptr %27, align 1, !tbaa !16
  call void @libxsmm_generator_vloadstore_masked_vreg_aarch64(ptr noundef %8134, i32 noundef %8137, i32 noundef %8140, i32 noundef %8143, i32 noundef %10678, i32 noundef %10679, i32 noundef 1, i32 noundef 1, i8 noundef zeroext %10710, i8 noundef zeroext %10711)
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #4
  br label %10712

10712:                                            ; preds = %10708
  %10713 = load i32, ptr %22, align 4, !tbaa !9
  %10714 = add i32 %10713, 1
  store i32 %10714, ptr %22, align 4, !tbaa !9
  br label %7687, !llvm.loop !32

10715:                                            ; preds = %7687
  %10716 = load i32, ptr %25, align 4, !tbaa !9
  %10717 = load i32, ptr %26, align 4, !tbaa !9
  %10718 = icmp ne i32 %10716, %10717
  br i1 %10718, label %10719, label %10735

10719:                                            ; preds = %10715
  %10720 = load ptr, ptr %11, align 8, !tbaa !5
  %10721 = load ptr, ptr %12, align 8, !tbaa !5
  %10722 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %10721, i32 0, i32 5
  %10723 = load i32, ptr %10722, align 4, !tbaa !27
  %10724 = load ptr, ptr %12, align 8, !tbaa !5
  %10725 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %10724, i32 0, i32 15
  %10726 = load i32, ptr %10725, align 4, !tbaa !34
  %10727 = load ptr, ptr %12, align 8, !tbaa !5
  %10728 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %10727, i32 0, i32 5
  %10729 = load i32, ptr %10728, align 4, !tbaa !27
  %10730 = load i32, ptr %25, align 4, !tbaa !9
  %10731 = zext i32 %10730 to i64
  %10732 = load i32, ptr %26, align 4, !tbaa !9
  %10733 = zext i32 %10732 to i64
  %10734 = sub nsw i64 %10731, %10733
  call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %10720, i32 noundef 4096, i32 noundef %10723, i32 noundef %10726, i32 noundef %10729, i64 noundef %10734)
  br label %10735

10735:                                            ; preds = %10719, %10715
  br label %10736

10736:                                            ; preds = %10735
  %10737 = load i32, ptr %21, align 4, !tbaa !9
  %10738 = add i32 %10737, 1
  store i32 %10738, ptr %21, align 4, !tbaa !9
  br label %7682, !llvm.loop !35

10739:                                            ; preds = %7682
  %10740 = load ptr, ptr %11, align 8, !tbaa !5
  %10741 = load ptr, ptr %12, align 8, !tbaa !5
  %10742 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %10741, i32 0, i32 5
  %10743 = load i32, ptr %10742, align 4, !tbaa !27
  %10744 = load ptr, ptr %12, align 8, !tbaa !5
  %10745 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %10744, i32 0, i32 15
  %10746 = load i32, ptr %10745, align 4, !tbaa !34
  %10747 = load ptr, ptr %12, align 8, !tbaa !5
  %10748 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %10747, i32 0, i32 5
  %10749 = load i32, ptr %10748, align 4, !tbaa !27
  %10750 = load i32, ptr %25, align 4, !tbaa !9
  %10751 = zext i32 %10750 to i64
  %10752 = load i32, ptr %18, align 4, !tbaa !9
  %10753 = zext i32 %10752 to i64
  %10754 = mul nsw i64 %10751, %10753
  call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %10740, i32 noundef 4097, i32 noundef %10743, i32 noundef %10746, i32 noundef %10749, i64 noundef %10754)
  %10755 = load ptr, ptr %11, align 8, !tbaa !5
  %10756 = load ptr, ptr %12, align 8, !tbaa !5
  %10757 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %10756, i32 0, i32 5
  %10758 = load i32, ptr %10757, align 4, !tbaa !27
  %10759 = load ptr, ptr %12, align 8, !tbaa !5
  %10760 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %10759, i32 0, i32 11
  %10761 = load i32, ptr %10760, align 4, !tbaa !36
  %10762 = load ptr, ptr %12, align 8, !tbaa !5
  %10763 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %10762, i32 0, i32 5
  %10764 = load i32, ptr %10763, align 4, !tbaa !27
  call void @libxsmm_aarch64_instruction_alu_compute_shifted_reg(ptr noundef %10755, i32 noundef 184549383, i32 noundef %10758, i32 noundef %10761, i32 noundef %10764, i32 noundef 0, i32 noundef 0)
  store i32 0, ptr %21, align 4, !tbaa !9
  br label %10765

10765:                                            ; preds = %13819, %10739
  %10766 = load i32, ptr %21, align 4, !tbaa !9
  %10767 = load i32, ptr %18, align 4, !tbaa !9
  %10768 = icmp ult i32 %10766, %10767
  br i1 %10768, label %10769, label %13822

10769:                                            ; preds = %10765
  store i32 0, ptr %22, align 4, !tbaa !9
  br label %10770

10770:                                            ; preds = %13795, %10769
  %10771 = load i32, ptr %22, align 4, !tbaa !9
  %10772 = load i32, ptr %17, align 4, !tbaa !9
  %10773 = icmp ult i32 %10771, %10772
  br i1 %10773, label %10774, label %13798

10774:                                            ; preds = %10770
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #4
  %10775 = load ptr, ptr %14, align 8, !tbaa !5
  %10776 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10775, i32 0, i32 3
  %10777 = load i8, ptr %10776, align 1, !tbaa !13
  %10778 = zext i8 %10777 to i32
  %10779 = ashr i32 %10778, 4
  %10780 = icmp eq i32 0, %10779
  br i1 %10780, label %10781, label %10943

10781:                                            ; preds = %10774
  %10782 = load ptr, ptr %14, align 8, !tbaa !5
  %10783 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10782, i32 0, i32 3
  %10784 = load i8, ptr %10783, align 1, !tbaa !13
  %10785 = zext i8 %10784 to i32
  %10786 = and i32 %10785, 15
  %10787 = icmp eq i32 0, %10786
  br i1 %10787, label %10788, label %10789

10788:                                            ; preds = %10781
  br label %10941

10789:                                            ; preds = %10781
  %10790 = load ptr, ptr %14, align 8, !tbaa !5
  %10791 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10790, i32 0, i32 3
  %10792 = load i8, ptr %10791, align 1, !tbaa !13
  %10793 = zext i8 %10792 to i32
  %10794 = and i32 %10793, 15
  %10795 = icmp eq i32 1, %10794
  br i1 %10795, label %10796, label %10797

10796:                                            ; preds = %10789
  br label %10939

10797:                                            ; preds = %10789
  %10798 = load ptr, ptr %14, align 8, !tbaa !5
  %10799 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10798, i32 0, i32 3
  %10800 = load i8, ptr %10799, align 1, !tbaa !13
  %10801 = zext i8 %10800 to i32
  %10802 = and i32 %10801, 15
  %10803 = icmp eq i32 2, %10802
  br i1 %10803, label %10804, label %10805

10804:                                            ; preds = %10797
  br label %10937

10805:                                            ; preds = %10797
  %10806 = load ptr, ptr %14, align 8, !tbaa !5
  %10807 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10806, i32 0, i32 3
  %10808 = load i8, ptr %10807, align 1, !tbaa !13
  %10809 = zext i8 %10808 to i32
  %10810 = and i32 %10809, 15
  %10811 = icmp eq i32 3, %10810
  br i1 %10811, label %10812, label %10813

10812:                                            ; preds = %10805
  br label %10935

10813:                                            ; preds = %10805
  %10814 = load ptr, ptr %14, align 8, !tbaa !5
  %10815 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10814, i32 0, i32 3
  %10816 = load i8, ptr %10815, align 1, !tbaa !13
  %10817 = zext i8 %10816 to i32
  %10818 = and i32 %10817, 15
  %10819 = icmp eq i32 4, %10818
  br i1 %10819, label %10820, label %10821

10820:                                            ; preds = %10813
  br label %10933

10821:                                            ; preds = %10813
  %10822 = load ptr, ptr %14, align 8, !tbaa !5
  %10823 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10822, i32 0, i32 3
  %10824 = load i8, ptr %10823, align 1, !tbaa !13
  %10825 = zext i8 %10824 to i32
  %10826 = and i32 %10825, 15
  %10827 = icmp eq i32 5, %10826
  br i1 %10827, label %10828, label %10829

10828:                                            ; preds = %10821
  br label %10931

10829:                                            ; preds = %10821
  %10830 = load ptr, ptr %14, align 8, !tbaa !5
  %10831 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10830, i32 0, i32 3
  %10832 = load i8, ptr %10831, align 1, !tbaa !13
  %10833 = zext i8 %10832 to i32
  %10834 = and i32 %10833, 15
  %10835 = icmp eq i32 6, %10834
  br i1 %10835, label %10836, label %10837

10836:                                            ; preds = %10829
  br label %10929

10837:                                            ; preds = %10829
  %10838 = load ptr, ptr %14, align 8, !tbaa !5
  %10839 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10838, i32 0, i32 3
  %10840 = load i8, ptr %10839, align 1, !tbaa !13
  %10841 = zext i8 %10840 to i32
  %10842 = and i32 %10841, 15
  %10843 = icmp eq i32 7, %10842
  br i1 %10843, label %10844, label %10845

10844:                                            ; preds = %10837
  br label %10927

10845:                                            ; preds = %10837
  %10846 = load ptr, ptr %14, align 8, !tbaa !5
  %10847 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10846, i32 0, i32 3
  %10848 = load i8, ptr %10847, align 1, !tbaa !13
  %10849 = zext i8 %10848 to i32
  %10850 = and i32 %10849, 15
  %10851 = icmp eq i32 8, %10850
  br i1 %10851, label %10852, label %10853

10852:                                            ; preds = %10845
  br label %10925

10853:                                            ; preds = %10845
  %10854 = load ptr, ptr %14, align 8, !tbaa !5
  %10855 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10854, i32 0, i32 3
  %10856 = load i8, ptr %10855, align 1, !tbaa !13
  %10857 = zext i8 %10856 to i32
  %10858 = and i32 %10857, 15
  %10859 = icmp eq i32 9, %10858
  br i1 %10859, label %10860, label %10861

10860:                                            ; preds = %10853
  br label %10923

10861:                                            ; preds = %10853
  %10862 = load ptr, ptr %14, align 8, !tbaa !5
  %10863 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10862, i32 0, i32 3
  %10864 = load i8, ptr %10863, align 1, !tbaa !13
  %10865 = zext i8 %10864 to i32
  %10866 = and i32 %10865, 15
  %10867 = icmp eq i32 10, %10866
  br i1 %10867, label %10868, label %10869

10868:                                            ; preds = %10861
  br label %10921

10869:                                            ; preds = %10861
  %10870 = load ptr, ptr %14, align 8, !tbaa !5
  %10871 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10870, i32 0, i32 3
  %10872 = load i8, ptr %10871, align 1, !tbaa !13
  %10873 = zext i8 %10872 to i32
  %10874 = and i32 %10873, 15
  %10875 = icmp eq i32 11, %10874
  br i1 %10875, label %10876, label %10877

10876:                                            ; preds = %10869
  br label %10919

10877:                                            ; preds = %10869
  %10878 = load ptr, ptr %14, align 8, !tbaa !5
  %10879 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10878, i32 0, i32 3
  %10880 = load i8, ptr %10879, align 1, !tbaa !13
  %10881 = zext i8 %10880 to i32
  %10882 = and i32 %10881, 15
  %10883 = icmp eq i32 12, %10882
  br i1 %10883, label %10884, label %10885

10884:                                            ; preds = %10877
  br label %10917

10885:                                            ; preds = %10877
  %10886 = load ptr, ptr %14, align 8, !tbaa !5
  %10887 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10886, i32 0, i32 3
  %10888 = load i8, ptr %10887, align 1, !tbaa !13
  %10889 = zext i8 %10888 to i32
  %10890 = and i32 %10889, 15
  %10891 = icmp eq i32 13, %10890
  br i1 %10891, label %10892, label %10893

10892:                                            ; preds = %10885
  br label %10915

10893:                                            ; preds = %10885
  %10894 = load ptr, ptr %14, align 8, !tbaa !5
  %10895 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10894, i32 0, i32 3
  %10896 = load i8, ptr %10895, align 1, !tbaa !13
  %10897 = zext i8 %10896 to i32
  %10898 = and i32 %10897, 15
  %10899 = icmp eq i32 14, %10898
  br i1 %10899, label %10900, label %10901

10900:                                            ; preds = %10893
  br label %10913

10901:                                            ; preds = %10893
  %10902 = load ptr, ptr %14, align 8, !tbaa !5
  %10903 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10902, i32 0, i32 3
  %10904 = load i8, ptr %10903, align 1, !tbaa !13
  %10905 = zext i8 %10904 to i32
  %10906 = and i32 %10905, 15
  %10907 = icmp eq i32 15, %10906
  br i1 %10907, label %10908, label %10909

10908:                                            ; preds = %10901
  br label %10911

10909:                                            ; preds = %10901
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 633, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

10910:                                            ; No predecessors!
  br label %10911

10911:                                            ; preds = %10910, %10908
  %10912 = phi i32 [ 15, %10908 ], [ 0, %10910 ]
  br label %10913

10913:                                            ; preds = %10911, %10900
  %10914 = phi i32 [ 14, %10900 ], [ %10912, %10911 ]
  br label %10915

10915:                                            ; preds = %10913, %10892
  %10916 = phi i32 [ 12, %10892 ], [ %10914, %10913 ]
  br label %10917

10917:                                            ; preds = %10915, %10884
  %10918 = phi i32 [ 12, %10884 ], [ %10916, %10915 ]
  br label %10919

10919:                                            ; preds = %10917, %10876
  %10920 = phi i32 [ 10, %10876 ], [ %10918, %10917 ]
  br label %10921

10921:                                            ; preds = %10919, %10868
  %10922 = phi i32 [ 10, %10868 ], [ %10920, %10919 ]
  br label %10923

10923:                                            ; preds = %10921, %10860
  %10924 = phi i32 [ 8, %10860 ], [ %10922, %10921 ]
  br label %10925

10925:                                            ; preds = %10923, %10852
  %10926 = phi i32 [ 8, %10852 ], [ %10924, %10923 ]
  br label %10927

10927:                                            ; preds = %10925, %10844
  %10928 = phi i32 [ 6, %10844 ], [ %10926, %10925 ]
  br label %10929

10929:                                            ; preds = %10927, %10836
  %10930 = phi i32 [ 6, %10836 ], [ %10928, %10927 ]
  br label %10931

10931:                                            ; preds = %10929, %10828
  %10932 = phi i32 [ 5, %10828 ], [ %10930, %10929 ]
  br label %10933

10933:                                            ; preds = %10931, %10820
  %10934 = phi i32 [ 4, %10820 ], [ %10932, %10931 ]
  br label %10935

10935:                                            ; preds = %10933, %10812
  %10936 = phi i32 [ 3, %10812 ], [ %10934, %10933 ]
  br label %10937

10937:                                            ; preds = %10935, %10804
  %10938 = phi i32 [ 2, %10804 ], [ %10936, %10935 ]
  br label %10939

10939:                                            ; preds = %10937, %10796
  %10940 = phi i32 [ 1, %10796 ], [ %10938, %10937 ]
  br label %10941

10941:                                            ; preds = %10939, %10788
  %10942 = phi i32 [ 0, %10788 ], [ %10940, %10939 ]
  br label %10949

10943:                                            ; preds = %10774
  %10944 = load ptr, ptr %14, align 8, !tbaa !5
  %10945 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10944, i32 0, i32 3
  %10946 = load i8, ptr %10945, align 1, !tbaa !13
  %10947 = zext i8 %10946 to i32
  %10948 = ashr i32 %10947, 4
  br label %10949

10949:                                            ; preds = %10943, %10941
  %10950 = phi i32 [ %10942, %10941 ], [ %10948, %10943 ]
  %10951 = icmp eq i32 1, %10950
  br i1 %10951, label %10952, label %10962

10952:                                            ; preds = %10949
  %10953 = load i32, ptr %22, align 4, !tbaa !9
  %10954 = load i32, ptr %17, align 4, !tbaa !9
  %10955 = sub i32 %10954, 1
  %10956 = icmp eq i32 %10953, %10955
  br i1 %10956, label %10957, label %10959

10957:                                            ; preds = %10952
  %10958 = load i32, ptr %19, align 4, !tbaa !9
  br label %10960

10959:                                            ; preds = %10952
  br label %10960

10960:                                            ; preds = %10959, %10957
  %10961 = phi i32 [ %10958, %10957 ], [ 0, %10959 ]
  br label %10980

10962:                                            ; preds = %10949
  %10963 = load i32, ptr %22, align 4, !tbaa !9
  %10964 = load i32, ptr %17, align 4, !tbaa !9
  %10965 = sub i32 %10964, 1
  %10966 = icmp eq i32 %10963, %10965
  br i1 %10966, label %10967, label %10976

10967:                                            ; preds = %10962
  %10968 = load i32, ptr %19, align 4, !tbaa !9
  %10969 = icmp ugt i32 %10968, 0
  br i1 %10969, label %10970, label %10972

10970:                                            ; preds = %10967
  %10971 = load i32, ptr %19, align 4, !tbaa !9
  br label %10974

10972:                                            ; preds = %10967
  %10973 = load i32, ptr %15, align 4, !tbaa !9
  br label %10974

10974:                                            ; preds = %10972, %10970
  %10975 = phi i32 [ %10971, %10970 ], [ %10973, %10972 ]
  br label %10978

10976:                                            ; preds = %10962
  %10977 = load i32, ptr %15, align 4, !tbaa !9
  br label %10978

10978:                                            ; preds = %10976, %10974
  %10979 = phi i32 [ %10975, %10974 ], [ %10977, %10976 ]
  br label %10980

10980:                                            ; preds = %10978, %10960
  %10981 = phi i32 [ %10961, %10960 ], [ %10979, %10978 ]
  store i32 %10981, ptr %31, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #4
  %10982 = load ptr, ptr %14, align 8, !tbaa !5
  %10983 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10982, i32 0, i32 3
  %10984 = load i8, ptr %10983, align 1, !tbaa !13
  %10985 = zext i8 %10984 to i32
  %10986 = ashr i32 %10985, 4
  %10987 = icmp eq i32 0, %10986
  br i1 %10987, label %10988, label %11150

10988:                                            ; preds = %10980
  %10989 = load ptr, ptr %14, align 8, !tbaa !5
  %10990 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10989, i32 0, i32 3
  %10991 = load i8, ptr %10990, align 1, !tbaa !13
  %10992 = zext i8 %10991 to i32
  %10993 = and i32 %10992, 15
  %10994 = icmp eq i32 0, %10993
  br i1 %10994, label %10995, label %10996

10995:                                            ; preds = %10988
  br label %11148

10996:                                            ; preds = %10988
  %10997 = load ptr, ptr %14, align 8, !tbaa !5
  %10998 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10997, i32 0, i32 3
  %10999 = load i8, ptr %10998, align 1, !tbaa !13
  %11000 = zext i8 %10999 to i32
  %11001 = and i32 %11000, 15
  %11002 = icmp eq i32 1, %11001
  br i1 %11002, label %11003, label %11004

11003:                                            ; preds = %10996
  br label %11146

11004:                                            ; preds = %10996
  %11005 = load ptr, ptr %14, align 8, !tbaa !5
  %11006 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11005, i32 0, i32 3
  %11007 = load i8, ptr %11006, align 1, !tbaa !13
  %11008 = zext i8 %11007 to i32
  %11009 = and i32 %11008, 15
  %11010 = icmp eq i32 2, %11009
  br i1 %11010, label %11011, label %11012

11011:                                            ; preds = %11004
  br label %11144

11012:                                            ; preds = %11004
  %11013 = load ptr, ptr %14, align 8, !tbaa !5
  %11014 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11013, i32 0, i32 3
  %11015 = load i8, ptr %11014, align 1, !tbaa !13
  %11016 = zext i8 %11015 to i32
  %11017 = and i32 %11016, 15
  %11018 = icmp eq i32 3, %11017
  br i1 %11018, label %11019, label %11020

11019:                                            ; preds = %11012
  br label %11142

11020:                                            ; preds = %11012
  %11021 = load ptr, ptr %14, align 8, !tbaa !5
  %11022 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11021, i32 0, i32 3
  %11023 = load i8, ptr %11022, align 1, !tbaa !13
  %11024 = zext i8 %11023 to i32
  %11025 = and i32 %11024, 15
  %11026 = icmp eq i32 4, %11025
  br i1 %11026, label %11027, label %11028

11027:                                            ; preds = %11020
  br label %11140

11028:                                            ; preds = %11020
  %11029 = load ptr, ptr %14, align 8, !tbaa !5
  %11030 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11029, i32 0, i32 3
  %11031 = load i8, ptr %11030, align 1, !tbaa !13
  %11032 = zext i8 %11031 to i32
  %11033 = and i32 %11032, 15
  %11034 = icmp eq i32 5, %11033
  br i1 %11034, label %11035, label %11036

11035:                                            ; preds = %11028
  br label %11138

11036:                                            ; preds = %11028
  %11037 = load ptr, ptr %14, align 8, !tbaa !5
  %11038 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11037, i32 0, i32 3
  %11039 = load i8, ptr %11038, align 1, !tbaa !13
  %11040 = zext i8 %11039 to i32
  %11041 = and i32 %11040, 15
  %11042 = icmp eq i32 6, %11041
  br i1 %11042, label %11043, label %11044

11043:                                            ; preds = %11036
  br label %11136

11044:                                            ; preds = %11036
  %11045 = load ptr, ptr %14, align 8, !tbaa !5
  %11046 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11045, i32 0, i32 3
  %11047 = load i8, ptr %11046, align 1, !tbaa !13
  %11048 = zext i8 %11047 to i32
  %11049 = and i32 %11048, 15
  %11050 = icmp eq i32 7, %11049
  br i1 %11050, label %11051, label %11052

11051:                                            ; preds = %11044
  br label %11134

11052:                                            ; preds = %11044
  %11053 = load ptr, ptr %14, align 8, !tbaa !5
  %11054 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11053, i32 0, i32 3
  %11055 = load i8, ptr %11054, align 1, !tbaa !13
  %11056 = zext i8 %11055 to i32
  %11057 = and i32 %11056, 15
  %11058 = icmp eq i32 8, %11057
  br i1 %11058, label %11059, label %11060

11059:                                            ; preds = %11052
  br label %11132

11060:                                            ; preds = %11052
  %11061 = load ptr, ptr %14, align 8, !tbaa !5
  %11062 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11061, i32 0, i32 3
  %11063 = load i8, ptr %11062, align 1, !tbaa !13
  %11064 = zext i8 %11063 to i32
  %11065 = and i32 %11064, 15
  %11066 = icmp eq i32 9, %11065
  br i1 %11066, label %11067, label %11068

11067:                                            ; preds = %11060
  br label %11130

11068:                                            ; preds = %11060
  %11069 = load ptr, ptr %14, align 8, !tbaa !5
  %11070 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11069, i32 0, i32 3
  %11071 = load i8, ptr %11070, align 1, !tbaa !13
  %11072 = zext i8 %11071 to i32
  %11073 = and i32 %11072, 15
  %11074 = icmp eq i32 10, %11073
  br i1 %11074, label %11075, label %11076

11075:                                            ; preds = %11068
  br label %11128

11076:                                            ; preds = %11068
  %11077 = load ptr, ptr %14, align 8, !tbaa !5
  %11078 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11077, i32 0, i32 3
  %11079 = load i8, ptr %11078, align 1, !tbaa !13
  %11080 = zext i8 %11079 to i32
  %11081 = and i32 %11080, 15
  %11082 = icmp eq i32 11, %11081
  br i1 %11082, label %11083, label %11084

11083:                                            ; preds = %11076
  br label %11126

11084:                                            ; preds = %11076
  %11085 = load ptr, ptr %14, align 8, !tbaa !5
  %11086 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11085, i32 0, i32 3
  %11087 = load i8, ptr %11086, align 1, !tbaa !13
  %11088 = zext i8 %11087 to i32
  %11089 = and i32 %11088, 15
  %11090 = icmp eq i32 12, %11089
  br i1 %11090, label %11091, label %11092

11091:                                            ; preds = %11084
  br label %11124

11092:                                            ; preds = %11084
  %11093 = load ptr, ptr %14, align 8, !tbaa !5
  %11094 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11093, i32 0, i32 3
  %11095 = load i8, ptr %11094, align 1, !tbaa !13
  %11096 = zext i8 %11095 to i32
  %11097 = and i32 %11096, 15
  %11098 = icmp eq i32 13, %11097
  br i1 %11098, label %11099, label %11100

11099:                                            ; preds = %11092
  br label %11122

11100:                                            ; preds = %11092
  %11101 = load ptr, ptr %14, align 8, !tbaa !5
  %11102 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11101, i32 0, i32 3
  %11103 = load i8, ptr %11102, align 1, !tbaa !13
  %11104 = zext i8 %11103 to i32
  %11105 = and i32 %11104, 15
  %11106 = icmp eq i32 14, %11105
  br i1 %11106, label %11107, label %11108

11107:                                            ; preds = %11100
  br label %11120

11108:                                            ; preds = %11100
  %11109 = load ptr, ptr %14, align 8, !tbaa !5
  %11110 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11109, i32 0, i32 3
  %11111 = load i8, ptr %11110, align 1, !tbaa !13
  %11112 = zext i8 %11111 to i32
  %11113 = and i32 %11112, 15
  %11114 = icmp eq i32 15, %11113
  br i1 %11114, label %11115, label %11116

11115:                                            ; preds = %11108
  br label %11118

11116:                                            ; preds = %11108
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 635, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

11117:                                            ; No predecessors!
  br label %11118

11118:                                            ; preds = %11117, %11115
  %11119 = phi i32 [ 15, %11115 ], [ 0, %11117 ]
  br label %11120

11120:                                            ; preds = %11118, %11107
  %11121 = phi i32 [ 14, %11107 ], [ %11119, %11118 ]
  br label %11122

11122:                                            ; preds = %11120, %11099
  %11123 = phi i32 [ 12, %11099 ], [ %11121, %11120 ]
  br label %11124

11124:                                            ; preds = %11122, %11091
  %11125 = phi i32 [ 12, %11091 ], [ %11123, %11122 ]
  br label %11126

11126:                                            ; preds = %11124, %11083
  %11127 = phi i32 [ 10, %11083 ], [ %11125, %11124 ]
  br label %11128

11128:                                            ; preds = %11126, %11075
  %11129 = phi i32 [ 10, %11075 ], [ %11127, %11126 ]
  br label %11130

11130:                                            ; preds = %11128, %11067
  %11131 = phi i32 [ 8, %11067 ], [ %11129, %11128 ]
  br label %11132

11132:                                            ; preds = %11130, %11059
  %11133 = phi i32 [ 8, %11059 ], [ %11131, %11130 ]
  br label %11134

11134:                                            ; preds = %11132, %11051
  %11135 = phi i32 [ 6, %11051 ], [ %11133, %11132 ]
  br label %11136

11136:                                            ; preds = %11134, %11043
  %11137 = phi i32 [ 6, %11043 ], [ %11135, %11134 ]
  br label %11138

11138:                                            ; preds = %11136, %11035
  %11139 = phi i32 [ 5, %11035 ], [ %11137, %11136 ]
  br label %11140

11140:                                            ; preds = %11138, %11027
  %11141 = phi i32 [ 4, %11027 ], [ %11139, %11138 ]
  br label %11142

11142:                                            ; preds = %11140, %11019
  %11143 = phi i32 [ 3, %11019 ], [ %11141, %11140 ]
  br label %11144

11144:                                            ; preds = %11142, %11011
  %11145 = phi i32 [ 2, %11011 ], [ %11143, %11142 ]
  br label %11146

11146:                                            ; preds = %11144, %11003
  %11147 = phi i32 [ 1, %11003 ], [ %11145, %11144 ]
  br label %11148

11148:                                            ; preds = %11146, %10995
  %11149 = phi i32 [ 0, %10995 ], [ %11147, %11146 ]
  br label %11156

11150:                                            ; preds = %10980
  %11151 = load ptr, ptr %14, align 8, !tbaa !5
  %11152 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11151, i32 0, i32 3
  %11153 = load i8, ptr %11152, align 1, !tbaa !13
  %11154 = zext i8 %11153 to i32
  %11155 = ashr i32 %11154, 4
  br label %11156

11156:                                            ; preds = %11150, %11148
  %11157 = phi i32 [ %11149, %11148 ], [ %11155, %11150 ]
  %11158 = icmp eq i32 1, %11157
  br i1 %11158, label %11159, label %11177

11159:                                            ; preds = %11156
  %11160 = load i32, ptr %22, align 4, !tbaa !9
  %11161 = load i32, ptr %17, align 4, !tbaa !9
  %11162 = sub i32 %11161, 1
  %11163 = icmp eq i32 %11160, %11162
  br i1 %11163, label %11164, label %11174

11164:                                            ; preds = %11159
  %11165 = load i32, ptr %19, align 4, !tbaa !9
  %11166 = icmp ugt i32 %11165, 0
  br i1 %11166, label %11167, label %11171

11167:                                            ; preds = %11164
  %11168 = load ptr, ptr %13, align 8, !tbaa !5
  %11169 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %11168, i32 0, i32 21
  %11170 = load i32, ptr %11169, align 4, !tbaa !23
  br label %11172

11171:                                            ; preds = %11164
  br label %11172

11172:                                            ; preds = %11171, %11167
  %11173 = phi i32 [ %11170, %11167 ], [ 0, %11171 ]
  br label %11175

11174:                                            ; preds = %11159
  br label %11175

11175:                                            ; preds = %11174, %11172
  %11176 = phi i32 [ %11173, %11172 ], [ 0, %11174 ]
  br label %11201

11177:                                            ; preds = %11156
  %11178 = load i32, ptr %22, align 4, !tbaa !9
  %11179 = load i32, ptr %17, align 4, !tbaa !9
  %11180 = sub i32 %11179, 1
  %11181 = icmp eq i32 %11178, %11180
  br i1 %11181, label %11182, label %11195

11182:                                            ; preds = %11177
  %11183 = load i32, ptr %19, align 4, !tbaa !9
  %11184 = icmp ugt i32 %11183, 0
  br i1 %11184, label %11185, label %11189

11185:                                            ; preds = %11182
  %11186 = load ptr, ptr %13, align 8, !tbaa !5
  %11187 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %11186, i32 0, i32 22
  %11188 = load i32, ptr %11187, align 8, !tbaa !24
  br label %11193

11189:                                            ; preds = %11182
  %11190 = load ptr, ptr %13, align 8, !tbaa !5
  %11191 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %11190, i32 0, i32 23
  %11192 = load i32, ptr %11191, align 4, !tbaa !25
  br label %11193

11193:                                            ; preds = %11189, %11185
  %11194 = phi i32 [ %11188, %11185 ], [ %11192, %11189 ]
  br label %11199

11195:                                            ; preds = %11177
  %11196 = load ptr, ptr %13, align 8, !tbaa !5
  %11197 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %11196, i32 0, i32 23
  %11198 = load i32, ptr %11197, align 4, !tbaa !25
  br label %11199

11199:                                            ; preds = %11195, %11193
  %11200 = phi i32 [ %11194, %11193 ], [ %11198, %11195 ]
  br label %11201

11201:                                            ; preds = %11199, %11175
  %11202 = phi i32 [ %11176, %11175 ], [ %11200, %11199 ]
  store i32 %11202, ptr %32, align 4, !tbaa !9
  %11203 = load i32, ptr %24, align 4, !tbaa !9
  %11204 = load i32, ptr %21, align 4, !tbaa !9
  %11205 = load i32, ptr %17, align 4, !tbaa !9
  %11206 = mul i32 %11204, %11205
  %11207 = add i32 %11203, %11206
  %11208 = load i32, ptr %22, align 4, !tbaa !9
  %11209 = add i32 %11207, %11208
  store i32 %11209, ptr %23, align 4, !tbaa !9
  %11210 = load ptr, ptr %11, align 8, !tbaa !5
  %11211 = load i32, ptr %23, align 4, !tbaa !9
  %11212 = load i32, ptr %23, align 4, !tbaa !9
  %11213 = load ptr, ptr %13, align 8, !tbaa !5
  %11214 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %11213, i32 0, i32 37
  %11215 = load i32, ptr %11214, align 4, !tbaa !26
  %11216 = call i32 @libxsmm_generator_aarch64_get_sve_type(i8 noundef zeroext 2)
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %11210, i32 noundef 86010883, i32 noundef %11211, i32 noundef %11212, i8 noundef zeroext 0, i32 noundef %11215, i32 noundef 0, i32 noundef %11216)
  %11217 = load ptr, ptr %11, align 8, !tbaa !5
  %11218 = load ptr, ptr %12, align 8, !tbaa !5
  %11219 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %11218, i32 0, i32 5
  %11220 = load i32, ptr %11219, align 4, !tbaa !27
  %11221 = load ptr, ptr %12, align 8, !tbaa !5
  %11222 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %11221, i32 0, i32 16
  %11223 = load i32, ptr %11222, align 4, !tbaa !31
  %11224 = load ptr, ptr %13, align 8, !tbaa !5
  %11225 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %11224, i32 0, i32 37
  %11226 = load i32, ptr %11225, align 4, !tbaa !26
  %11227 = load ptr, ptr %14, align 8, !tbaa !5
  %11228 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11227, i32 0, i32 3
  %11229 = load i8, ptr %11228, align 1, !tbaa !13
  %11230 = zext i8 %11229 to i32
  %11231 = ashr i32 %11230, 4
  %11232 = icmp eq i32 0, %11231
  br i1 %11232, label %11233, label %11395

11233:                                            ; preds = %11201
  %11234 = load ptr, ptr %14, align 8, !tbaa !5
  %11235 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11234, i32 0, i32 3
  %11236 = load i8, ptr %11235, align 1, !tbaa !13
  %11237 = zext i8 %11236 to i32
  %11238 = and i32 %11237, 15
  %11239 = icmp eq i32 0, %11238
  br i1 %11239, label %11240, label %11241

11240:                                            ; preds = %11233
  br label %11393

11241:                                            ; preds = %11233
  %11242 = load ptr, ptr %14, align 8, !tbaa !5
  %11243 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11242, i32 0, i32 3
  %11244 = load i8, ptr %11243, align 1, !tbaa !13
  %11245 = zext i8 %11244 to i32
  %11246 = and i32 %11245, 15
  %11247 = icmp eq i32 1, %11246
  br i1 %11247, label %11248, label %11249

11248:                                            ; preds = %11241
  br label %11391

11249:                                            ; preds = %11241
  %11250 = load ptr, ptr %14, align 8, !tbaa !5
  %11251 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11250, i32 0, i32 3
  %11252 = load i8, ptr %11251, align 1, !tbaa !13
  %11253 = zext i8 %11252 to i32
  %11254 = and i32 %11253, 15
  %11255 = icmp eq i32 2, %11254
  br i1 %11255, label %11256, label %11257

11256:                                            ; preds = %11249
  br label %11389

11257:                                            ; preds = %11249
  %11258 = load ptr, ptr %14, align 8, !tbaa !5
  %11259 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11258, i32 0, i32 3
  %11260 = load i8, ptr %11259, align 1, !tbaa !13
  %11261 = zext i8 %11260 to i32
  %11262 = and i32 %11261, 15
  %11263 = icmp eq i32 3, %11262
  br i1 %11263, label %11264, label %11265

11264:                                            ; preds = %11257
  br label %11387

11265:                                            ; preds = %11257
  %11266 = load ptr, ptr %14, align 8, !tbaa !5
  %11267 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11266, i32 0, i32 3
  %11268 = load i8, ptr %11267, align 1, !tbaa !13
  %11269 = zext i8 %11268 to i32
  %11270 = and i32 %11269, 15
  %11271 = icmp eq i32 4, %11270
  br i1 %11271, label %11272, label %11273

11272:                                            ; preds = %11265
  br label %11385

11273:                                            ; preds = %11265
  %11274 = load ptr, ptr %14, align 8, !tbaa !5
  %11275 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11274, i32 0, i32 3
  %11276 = load i8, ptr %11275, align 1, !tbaa !13
  %11277 = zext i8 %11276 to i32
  %11278 = and i32 %11277, 15
  %11279 = icmp eq i32 5, %11278
  br i1 %11279, label %11280, label %11281

11280:                                            ; preds = %11273
  br label %11383

11281:                                            ; preds = %11273
  %11282 = load ptr, ptr %14, align 8, !tbaa !5
  %11283 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11282, i32 0, i32 3
  %11284 = load i8, ptr %11283, align 1, !tbaa !13
  %11285 = zext i8 %11284 to i32
  %11286 = and i32 %11285, 15
  %11287 = icmp eq i32 6, %11286
  br i1 %11287, label %11288, label %11289

11288:                                            ; preds = %11281
  br label %11381

11289:                                            ; preds = %11281
  %11290 = load ptr, ptr %14, align 8, !tbaa !5
  %11291 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11290, i32 0, i32 3
  %11292 = load i8, ptr %11291, align 1, !tbaa !13
  %11293 = zext i8 %11292 to i32
  %11294 = and i32 %11293, 15
  %11295 = icmp eq i32 7, %11294
  br i1 %11295, label %11296, label %11297

11296:                                            ; preds = %11289
  br label %11379

11297:                                            ; preds = %11289
  %11298 = load ptr, ptr %14, align 8, !tbaa !5
  %11299 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11298, i32 0, i32 3
  %11300 = load i8, ptr %11299, align 1, !tbaa !13
  %11301 = zext i8 %11300 to i32
  %11302 = and i32 %11301, 15
  %11303 = icmp eq i32 8, %11302
  br i1 %11303, label %11304, label %11305

11304:                                            ; preds = %11297
  br label %11377

11305:                                            ; preds = %11297
  %11306 = load ptr, ptr %14, align 8, !tbaa !5
  %11307 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11306, i32 0, i32 3
  %11308 = load i8, ptr %11307, align 1, !tbaa !13
  %11309 = zext i8 %11308 to i32
  %11310 = and i32 %11309, 15
  %11311 = icmp eq i32 9, %11310
  br i1 %11311, label %11312, label %11313

11312:                                            ; preds = %11305
  br label %11375

11313:                                            ; preds = %11305
  %11314 = load ptr, ptr %14, align 8, !tbaa !5
  %11315 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11314, i32 0, i32 3
  %11316 = load i8, ptr %11315, align 1, !tbaa !13
  %11317 = zext i8 %11316 to i32
  %11318 = and i32 %11317, 15
  %11319 = icmp eq i32 10, %11318
  br i1 %11319, label %11320, label %11321

11320:                                            ; preds = %11313
  br label %11373

11321:                                            ; preds = %11313
  %11322 = load ptr, ptr %14, align 8, !tbaa !5
  %11323 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11322, i32 0, i32 3
  %11324 = load i8, ptr %11323, align 1, !tbaa !13
  %11325 = zext i8 %11324 to i32
  %11326 = and i32 %11325, 15
  %11327 = icmp eq i32 11, %11326
  br i1 %11327, label %11328, label %11329

11328:                                            ; preds = %11321
  br label %11371

11329:                                            ; preds = %11321
  %11330 = load ptr, ptr %14, align 8, !tbaa !5
  %11331 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11330, i32 0, i32 3
  %11332 = load i8, ptr %11331, align 1, !tbaa !13
  %11333 = zext i8 %11332 to i32
  %11334 = and i32 %11333, 15
  %11335 = icmp eq i32 12, %11334
  br i1 %11335, label %11336, label %11337

11336:                                            ; preds = %11329
  br label %11369

11337:                                            ; preds = %11329
  %11338 = load ptr, ptr %14, align 8, !tbaa !5
  %11339 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11338, i32 0, i32 3
  %11340 = load i8, ptr %11339, align 1, !tbaa !13
  %11341 = zext i8 %11340 to i32
  %11342 = and i32 %11341, 15
  %11343 = icmp eq i32 13, %11342
  br i1 %11343, label %11344, label %11345

11344:                                            ; preds = %11337
  br label %11367

11345:                                            ; preds = %11337
  %11346 = load ptr, ptr %14, align 8, !tbaa !5
  %11347 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11346, i32 0, i32 3
  %11348 = load i8, ptr %11347, align 1, !tbaa !13
  %11349 = zext i8 %11348 to i32
  %11350 = and i32 %11349, 15
  %11351 = icmp eq i32 14, %11350
  br i1 %11351, label %11352, label %11353

11352:                                            ; preds = %11345
  br label %11365

11353:                                            ; preds = %11345
  %11354 = load ptr, ptr %14, align 8, !tbaa !5
  %11355 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11354, i32 0, i32 3
  %11356 = load i8, ptr %11355, align 1, !tbaa !13
  %11357 = zext i8 %11356 to i32
  %11358 = and i32 %11357, 15
  %11359 = icmp eq i32 15, %11358
  br i1 %11359, label %11360, label %11361

11360:                                            ; preds = %11353
  br label %11363

11361:                                            ; preds = %11353
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 640, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

11362:                                            ; No predecessors!
  br label %11363

11363:                                            ; preds = %11362, %11360
  %11364 = phi i32 [ 15, %11360 ], [ 0, %11362 ]
  br label %11365

11365:                                            ; preds = %11363, %11352
  %11366 = phi i32 [ 14, %11352 ], [ %11364, %11363 ]
  br label %11367

11367:                                            ; preds = %11365, %11344
  %11368 = phi i32 [ 12, %11344 ], [ %11366, %11365 ]
  br label %11369

11369:                                            ; preds = %11367, %11336
  %11370 = phi i32 [ 12, %11336 ], [ %11368, %11367 ]
  br label %11371

11371:                                            ; preds = %11369, %11328
  %11372 = phi i32 [ 10, %11328 ], [ %11370, %11369 ]
  br label %11373

11373:                                            ; preds = %11371, %11320
  %11374 = phi i32 [ 10, %11320 ], [ %11372, %11371 ]
  br label %11375

11375:                                            ; preds = %11373, %11312
  %11376 = phi i32 [ 8, %11312 ], [ %11374, %11373 ]
  br label %11377

11377:                                            ; preds = %11375, %11304
  %11378 = phi i32 [ 8, %11304 ], [ %11376, %11375 ]
  br label %11379

11379:                                            ; preds = %11377, %11296
  %11380 = phi i32 [ 6, %11296 ], [ %11378, %11377 ]
  br label %11381

11381:                                            ; preds = %11379, %11288
  %11382 = phi i32 [ 6, %11288 ], [ %11380, %11379 ]
  br label %11383

11383:                                            ; preds = %11381, %11280
  %11384 = phi i32 [ 5, %11280 ], [ %11382, %11381 ]
  br label %11385

11385:                                            ; preds = %11383, %11272
  %11386 = phi i32 [ 4, %11272 ], [ %11384, %11383 ]
  br label %11387

11387:                                            ; preds = %11385, %11264
  %11388 = phi i32 [ 3, %11264 ], [ %11386, %11385 ]
  br label %11389

11389:                                            ; preds = %11387, %11256
  %11390 = phi i32 [ 2, %11256 ], [ %11388, %11387 ]
  br label %11391

11391:                                            ; preds = %11389, %11248
  %11392 = phi i32 [ 1, %11248 ], [ %11390, %11389 ]
  br label %11393

11393:                                            ; preds = %11391, %11240
  %11394 = phi i32 [ 0, %11240 ], [ %11392, %11391 ]
  br label %11401

11395:                                            ; preds = %11201
  %11396 = load ptr, ptr %14, align 8, !tbaa !5
  %11397 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11396, i32 0, i32 3
  %11398 = load i8, ptr %11397, align 1, !tbaa !13
  %11399 = zext i8 %11398 to i32
  %11400 = ashr i32 %11399, 4
  br label %11401

11401:                                            ; preds = %11395, %11393
  %11402 = phi i32 [ %11394, %11393 ], [ %11400, %11395 ]
  %11403 = icmp eq i32 0, %11402
  br i1 %11403, label %11404, label %11405

11404:                                            ; preds = %11401
  br label %13760

11405:                                            ; preds = %11401
  %11406 = load ptr, ptr %14, align 8, !tbaa !5
  %11407 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11406, i32 0, i32 3
  %11408 = load i8, ptr %11407, align 1, !tbaa !13
  %11409 = zext i8 %11408 to i32
  %11410 = ashr i32 %11409, 4
  %11411 = icmp eq i32 0, %11410
  br i1 %11411, label %11412, label %11574

11412:                                            ; preds = %11405
  %11413 = load ptr, ptr %14, align 8, !tbaa !5
  %11414 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11413, i32 0, i32 3
  %11415 = load i8, ptr %11414, align 1, !tbaa !13
  %11416 = zext i8 %11415 to i32
  %11417 = and i32 %11416, 15
  %11418 = icmp eq i32 0, %11417
  br i1 %11418, label %11419, label %11420

11419:                                            ; preds = %11412
  br label %11572

11420:                                            ; preds = %11412
  %11421 = load ptr, ptr %14, align 8, !tbaa !5
  %11422 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11421, i32 0, i32 3
  %11423 = load i8, ptr %11422, align 1, !tbaa !13
  %11424 = zext i8 %11423 to i32
  %11425 = and i32 %11424, 15
  %11426 = icmp eq i32 1, %11425
  br i1 %11426, label %11427, label %11428

11427:                                            ; preds = %11420
  br label %11570

11428:                                            ; preds = %11420
  %11429 = load ptr, ptr %14, align 8, !tbaa !5
  %11430 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11429, i32 0, i32 3
  %11431 = load i8, ptr %11430, align 1, !tbaa !13
  %11432 = zext i8 %11431 to i32
  %11433 = and i32 %11432, 15
  %11434 = icmp eq i32 2, %11433
  br i1 %11434, label %11435, label %11436

11435:                                            ; preds = %11428
  br label %11568

11436:                                            ; preds = %11428
  %11437 = load ptr, ptr %14, align 8, !tbaa !5
  %11438 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11437, i32 0, i32 3
  %11439 = load i8, ptr %11438, align 1, !tbaa !13
  %11440 = zext i8 %11439 to i32
  %11441 = and i32 %11440, 15
  %11442 = icmp eq i32 3, %11441
  br i1 %11442, label %11443, label %11444

11443:                                            ; preds = %11436
  br label %11566

11444:                                            ; preds = %11436
  %11445 = load ptr, ptr %14, align 8, !tbaa !5
  %11446 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11445, i32 0, i32 3
  %11447 = load i8, ptr %11446, align 1, !tbaa !13
  %11448 = zext i8 %11447 to i32
  %11449 = and i32 %11448, 15
  %11450 = icmp eq i32 4, %11449
  br i1 %11450, label %11451, label %11452

11451:                                            ; preds = %11444
  br label %11564

11452:                                            ; preds = %11444
  %11453 = load ptr, ptr %14, align 8, !tbaa !5
  %11454 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11453, i32 0, i32 3
  %11455 = load i8, ptr %11454, align 1, !tbaa !13
  %11456 = zext i8 %11455 to i32
  %11457 = and i32 %11456, 15
  %11458 = icmp eq i32 5, %11457
  br i1 %11458, label %11459, label %11460

11459:                                            ; preds = %11452
  br label %11562

11460:                                            ; preds = %11452
  %11461 = load ptr, ptr %14, align 8, !tbaa !5
  %11462 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11461, i32 0, i32 3
  %11463 = load i8, ptr %11462, align 1, !tbaa !13
  %11464 = zext i8 %11463 to i32
  %11465 = and i32 %11464, 15
  %11466 = icmp eq i32 6, %11465
  br i1 %11466, label %11467, label %11468

11467:                                            ; preds = %11460
  br label %11560

11468:                                            ; preds = %11460
  %11469 = load ptr, ptr %14, align 8, !tbaa !5
  %11470 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11469, i32 0, i32 3
  %11471 = load i8, ptr %11470, align 1, !tbaa !13
  %11472 = zext i8 %11471 to i32
  %11473 = and i32 %11472, 15
  %11474 = icmp eq i32 7, %11473
  br i1 %11474, label %11475, label %11476

11475:                                            ; preds = %11468
  br label %11558

11476:                                            ; preds = %11468
  %11477 = load ptr, ptr %14, align 8, !tbaa !5
  %11478 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11477, i32 0, i32 3
  %11479 = load i8, ptr %11478, align 1, !tbaa !13
  %11480 = zext i8 %11479 to i32
  %11481 = and i32 %11480, 15
  %11482 = icmp eq i32 8, %11481
  br i1 %11482, label %11483, label %11484

11483:                                            ; preds = %11476
  br label %11556

11484:                                            ; preds = %11476
  %11485 = load ptr, ptr %14, align 8, !tbaa !5
  %11486 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11485, i32 0, i32 3
  %11487 = load i8, ptr %11486, align 1, !tbaa !13
  %11488 = zext i8 %11487 to i32
  %11489 = and i32 %11488, 15
  %11490 = icmp eq i32 9, %11489
  br i1 %11490, label %11491, label %11492

11491:                                            ; preds = %11484
  br label %11554

11492:                                            ; preds = %11484
  %11493 = load ptr, ptr %14, align 8, !tbaa !5
  %11494 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11493, i32 0, i32 3
  %11495 = load i8, ptr %11494, align 1, !tbaa !13
  %11496 = zext i8 %11495 to i32
  %11497 = and i32 %11496, 15
  %11498 = icmp eq i32 10, %11497
  br i1 %11498, label %11499, label %11500

11499:                                            ; preds = %11492
  br label %11552

11500:                                            ; preds = %11492
  %11501 = load ptr, ptr %14, align 8, !tbaa !5
  %11502 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11501, i32 0, i32 3
  %11503 = load i8, ptr %11502, align 1, !tbaa !13
  %11504 = zext i8 %11503 to i32
  %11505 = and i32 %11504, 15
  %11506 = icmp eq i32 11, %11505
  br i1 %11506, label %11507, label %11508

11507:                                            ; preds = %11500
  br label %11550

11508:                                            ; preds = %11500
  %11509 = load ptr, ptr %14, align 8, !tbaa !5
  %11510 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11509, i32 0, i32 3
  %11511 = load i8, ptr %11510, align 1, !tbaa !13
  %11512 = zext i8 %11511 to i32
  %11513 = and i32 %11512, 15
  %11514 = icmp eq i32 12, %11513
  br i1 %11514, label %11515, label %11516

11515:                                            ; preds = %11508
  br label %11548

11516:                                            ; preds = %11508
  %11517 = load ptr, ptr %14, align 8, !tbaa !5
  %11518 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11517, i32 0, i32 3
  %11519 = load i8, ptr %11518, align 1, !tbaa !13
  %11520 = zext i8 %11519 to i32
  %11521 = and i32 %11520, 15
  %11522 = icmp eq i32 13, %11521
  br i1 %11522, label %11523, label %11524

11523:                                            ; preds = %11516
  br label %11546

11524:                                            ; preds = %11516
  %11525 = load ptr, ptr %14, align 8, !tbaa !5
  %11526 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11525, i32 0, i32 3
  %11527 = load i8, ptr %11526, align 1, !tbaa !13
  %11528 = zext i8 %11527 to i32
  %11529 = and i32 %11528, 15
  %11530 = icmp eq i32 14, %11529
  br i1 %11530, label %11531, label %11532

11531:                                            ; preds = %11524
  br label %11544

11532:                                            ; preds = %11524
  %11533 = load ptr, ptr %14, align 8, !tbaa !5
  %11534 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11533, i32 0, i32 3
  %11535 = load i8, ptr %11534, align 1, !tbaa !13
  %11536 = zext i8 %11535 to i32
  %11537 = and i32 %11536, 15
  %11538 = icmp eq i32 15, %11537
  br i1 %11538, label %11539, label %11540

11539:                                            ; preds = %11532
  br label %11542

11540:                                            ; preds = %11532
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 640, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

11541:                                            ; No predecessors!
  br label %11542

11542:                                            ; preds = %11541, %11539
  %11543 = phi i32 [ 15, %11539 ], [ 0, %11541 ]
  br label %11544

11544:                                            ; preds = %11542, %11531
  %11545 = phi i32 [ 14, %11531 ], [ %11543, %11542 ]
  br label %11546

11546:                                            ; preds = %11544, %11523
  %11547 = phi i32 [ 12, %11523 ], [ %11545, %11544 ]
  br label %11548

11548:                                            ; preds = %11546, %11515
  %11549 = phi i32 [ 12, %11515 ], [ %11547, %11546 ]
  br label %11550

11550:                                            ; preds = %11548, %11507
  %11551 = phi i32 [ 10, %11507 ], [ %11549, %11548 ]
  br label %11552

11552:                                            ; preds = %11550, %11499
  %11553 = phi i32 [ 10, %11499 ], [ %11551, %11550 ]
  br label %11554

11554:                                            ; preds = %11552, %11491
  %11555 = phi i32 [ 8, %11491 ], [ %11553, %11552 ]
  br label %11556

11556:                                            ; preds = %11554, %11483
  %11557 = phi i32 [ 8, %11483 ], [ %11555, %11554 ]
  br label %11558

11558:                                            ; preds = %11556, %11475
  %11559 = phi i32 [ 6, %11475 ], [ %11557, %11556 ]
  br label %11560

11560:                                            ; preds = %11558, %11467
  %11561 = phi i32 [ 6, %11467 ], [ %11559, %11558 ]
  br label %11562

11562:                                            ; preds = %11560, %11459
  %11563 = phi i32 [ 5, %11459 ], [ %11561, %11560 ]
  br label %11564

11564:                                            ; preds = %11562, %11451
  %11565 = phi i32 [ 4, %11451 ], [ %11563, %11562 ]
  br label %11566

11566:                                            ; preds = %11564, %11443
  %11567 = phi i32 [ 3, %11443 ], [ %11565, %11564 ]
  br label %11568

11568:                                            ; preds = %11566, %11435
  %11569 = phi i32 [ 2, %11435 ], [ %11567, %11566 ]
  br label %11570

11570:                                            ; preds = %11568, %11427
  %11571 = phi i32 [ 1, %11427 ], [ %11569, %11568 ]
  br label %11572

11572:                                            ; preds = %11570, %11419
  %11573 = phi i32 [ 0, %11419 ], [ %11571, %11570 ]
  br label %11580

11574:                                            ; preds = %11405
  %11575 = load ptr, ptr %14, align 8, !tbaa !5
  %11576 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11575, i32 0, i32 3
  %11577 = load i8, ptr %11576, align 1, !tbaa !13
  %11578 = zext i8 %11577 to i32
  %11579 = ashr i32 %11578, 4
  br label %11580

11580:                                            ; preds = %11574, %11572
  %11581 = phi i32 [ %11573, %11572 ], [ %11579, %11574 ]
  %11582 = icmp eq i32 1, %11581
  br i1 %11582, label %11583, label %11584

11583:                                            ; preds = %11580
  br label %13758

11584:                                            ; preds = %11580
  %11585 = load ptr, ptr %14, align 8, !tbaa !5
  %11586 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11585, i32 0, i32 3
  %11587 = load i8, ptr %11586, align 1, !tbaa !13
  %11588 = zext i8 %11587 to i32
  %11589 = ashr i32 %11588, 4
  %11590 = icmp eq i32 0, %11589
  br i1 %11590, label %11591, label %11753

11591:                                            ; preds = %11584
  %11592 = load ptr, ptr %14, align 8, !tbaa !5
  %11593 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11592, i32 0, i32 3
  %11594 = load i8, ptr %11593, align 1, !tbaa !13
  %11595 = zext i8 %11594 to i32
  %11596 = and i32 %11595, 15
  %11597 = icmp eq i32 0, %11596
  br i1 %11597, label %11598, label %11599

11598:                                            ; preds = %11591
  br label %11751

11599:                                            ; preds = %11591
  %11600 = load ptr, ptr %14, align 8, !tbaa !5
  %11601 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11600, i32 0, i32 3
  %11602 = load i8, ptr %11601, align 1, !tbaa !13
  %11603 = zext i8 %11602 to i32
  %11604 = and i32 %11603, 15
  %11605 = icmp eq i32 1, %11604
  br i1 %11605, label %11606, label %11607

11606:                                            ; preds = %11599
  br label %11749

11607:                                            ; preds = %11599
  %11608 = load ptr, ptr %14, align 8, !tbaa !5
  %11609 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11608, i32 0, i32 3
  %11610 = load i8, ptr %11609, align 1, !tbaa !13
  %11611 = zext i8 %11610 to i32
  %11612 = and i32 %11611, 15
  %11613 = icmp eq i32 2, %11612
  br i1 %11613, label %11614, label %11615

11614:                                            ; preds = %11607
  br label %11747

11615:                                            ; preds = %11607
  %11616 = load ptr, ptr %14, align 8, !tbaa !5
  %11617 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11616, i32 0, i32 3
  %11618 = load i8, ptr %11617, align 1, !tbaa !13
  %11619 = zext i8 %11618 to i32
  %11620 = and i32 %11619, 15
  %11621 = icmp eq i32 3, %11620
  br i1 %11621, label %11622, label %11623

11622:                                            ; preds = %11615
  br label %11745

11623:                                            ; preds = %11615
  %11624 = load ptr, ptr %14, align 8, !tbaa !5
  %11625 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11624, i32 0, i32 3
  %11626 = load i8, ptr %11625, align 1, !tbaa !13
  %11627 = zext i8 %11626 to i32
  %11628 = and i32 %11627, 15
  %11629 = icmp eq i32 4, %11628
  br i1 %11629, label %11630, label %11631

11630:                                            ; preds = %11623
  br label %11743

11631:                                            ; preds = %11623
  %11632 = load ptr, ptr %14, align 8, !tbaa !5
  %11633 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11632, i32 0, i32 3
  %11634 = load i8, ptr %11633, align 1, !tbaa !13
  %11635 = zext i8 %11634 to i32
  %11636 = and i32 %11635, 15
  %11637 = icmp eq i32 5, %11636
  br i1 %11637, label %11638, label %11639

11638:                                            ; preds = %11631
  br label %11741

11639:                                            ; preds = %11631
  %11640 = load ptr, ptr %14, align 8, !tbaa !5
  %11641 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11640, i32 0, i32 3
  %11642 = load i8, ptr %11641, align 1, !tbaa !13
  %11643 = zext i8 %11642 to i32
  %11644 = and i32 %11643, 15
  %11645 = icmp eq i32 6, %11644
  br i1 %11645, label %11646, label %11647

11646:                                            ; preds = %11639
  br label %11739

11647:                                            ; preds = %11639
  %11648 = load ptr, ptr %14, align 8, !tbaa !5
  %11649 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11648, i32 0, i32 3
  %11650 = load i8, ptr %11649, align 1, !tbaa !13
  %11651 = zext i8 %11650 to i32
  %11652 = and i32 %11651, 15
  %11653 = icmp eq i32 7, %11652
  br i1 %11653, label %11654, label %11655

11654:                                            ; preds = %11647
  br label %11737

11655:                                            ; preds = %11647
  %11656 = load ptr, ptr %14, align 8, !tbaa !5
  %11657 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11656, i32 0, i32 3
  %11658 = load i8, ptr %11657, align 1, !tbaa !13
  %11659 = zext i8 %11658 to i32
  %11660 = and i32 %11659, 15
  %11661 = icmp eq i32 8, %11660
  br i1 %11661, label %11662, label %11663

11662:                                            ; preds = %11655
  br label %11735

11663:                                            ; preds = %11655
  %11664 = load ptr, ptr %14, align 8, !tbaa !5
  %11665 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11664, i32 0, i32 3
  %11666 = load i8, ptr %11665, align 1, !tbaa !13
  %11667 = zext i8 %11666 to i32
  %11668 = and i32 %11667, 15
  %11669 = icmp eq i32 9, %11668
  br i1 %11669, label %11670, label %11671

11670:                                            ; preds = %11663
  br label %11733

11671:                                            ; preds = %11663
  %11672 = load ptr, ptr %14, align 8, !tbaa !5
  %11673 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11672, i32 0, i32 3
  %11674 = load i8, ptr %11673, align 1, !tbaa !13
  %11675 = zext i8 %11674 to i32
  %11676 = and i32 %11675, 15
  %11677 = icmp eq i32 10, %11676
  br i1 %11677, label %11678, label %11679

11678:                                            ; preds = %11671
  br label %11731

11679:                                            ; preds = %11671
  %11680 = load ptr, ptr %14, align 8, !tbaa !5
  %11681 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11680, i32 0, i32 3
  %11682 = load i8, ptr %11681, align 1, !tbaa !13
  %11683 = zext i8 %11682 to i32
  %11684 = and i32 %11683, 15
  %11685 = icmp eq i32 11, %11684
  br i1 %11685, label %11686, label %11687

11686:                                            ; preds = %11679
  br label %11729

11687:                                            ; preds = %11679
  %11688 = load ptr, ptr %14, align 8, !tbaa !5
  %11689 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11688, i32 0, i32 3
  %11690 = load i8, ptr %11689, align 1, !tbaa !13
  %11691 = zext i8 %11690 to i32
  %11692 = and i32 %11691, 15
  %11693 = icmp eq i32 12, %11692
  br i1 %11693, label %11694, label %11695

11694:                                            ; preds = %11687
  br label %11727

11695:                                            ; preds = %11687
  %11696 = load ptr, ptr %14, align 8, !tbaa !5
  %11697 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11696, i32 0, i32 3
  %11698 = load i8, ptr %11697, align 1, !tbaa !13
  %11699 = zext i8 %11698 to i32
  %11700 = and i32 %11699, 15
  %11701 = icmp eq i32 13, %11700
  br i1 %11701, label %11702, label %11703

11702:                                            ; preds = %11695
  br label %11725

11703:                                            ; preds = %11695
  %11704 = load ptr, ptr %14, align 8, !tbaa !5
  %11705 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11704, i32 0, i32 3
  %11706 = load i8, ptr %11705, align 1, !tbaa !13
  %11707 = zext i8 %11706 to i32
  %11708 = and i32 %11707, 15
  %11709 = icmp eq i32 14, %11708
  br i1 %11709, label %11710, label %11711

11710:                                            ; preds = %11703
  br label %11723

11711:                                            ; preds = %11703
  %11712 = load ptr, ptr %14, align 8, !tbaa !5
  %11713 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11712, i32 0, i32 3
  %11714 = load i8, ptr %11713, align 1, !tbaa !13
  %11715 = zext i8 %11714 to i32
  %11716 = and i32 %11715, 15
  %11717 = icmp eq i32 15, %11716
  br i1 %11717, label %11718, label %11719

11718:                                            ; preds = %11711
  br label %11721

11719:                                            ; preds = %11711
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 640, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

11720:                                            ; No predecessors!
  br label %11721

11721:                                            ; preds = %11720, %11718
  %11722 = phi i32 [ 15, %11718 ], [ 0, %11720 ]
  br label %11723

11723:                                            ; preds = %11721, %11710
  %11724 = phi i32 [ 14, %11710 ], [ %11722, %11721 ]
  br label %11725

11725:                                            ; preds = %11723, %11702
  %11726 = phi i32 [ 12, %11702 ], [ %11724, %11723 ]
  br label %11727

11727:                                            ; preds = %11725, %11694
  %11728 = phi i32 [ 12, %11694 ], [ %11726, %11725 ]
  br label %11729

11729:                                            ; preds = %11727, %11686
  %11730 = phi i32 [ 10, %11686 ], [ %11728, %11727 ]
  br label %11731

11731:                                            ; preds = %11729, %11678
  %11732 = phi i32 [ 10, %11678 ], [ %11730, %11729 ]
  br label %11733

11733:                                            ; preds = %11731, %11670
  %11734 = phi i32 [ 8, %11670 ], [ %11732, %11731 ]
  br label %11735

11735:                                            ; preds = %11733, %11662
  %11736 = phi i32 [ 8, %11662 ], [ %11734, %11733 ]
  br label %11737

11737:                                            ; preds = %11735, %11654
  %11738 = phi i32 [ 6, %11654 ], [ %11736, %11735 ]
  br label %11739

11739:                                            ; preds = %11737, %11646
  %11740 = phi i32 [ 6, %11646 ], [ %11738, %11737 ]
  br label %11741

11741:                                            ; preds = %11739, %11638
  %11742 = phi i32 [ 5, %11638 ], [ %11740, %11739 ]
  br label %11743

11743:                                            ; preds = %11741, %11630
  %11744 = phi i32 [ 4, %11630 ], [ %11742, %11741 ]
  br label %11745

11745:                                            ; preds = %11743, %11622
  %11746 = phi i32 [ 3, %11622 ], [ %11744, %11743 ]
  br label %11747

11747:                                            ; preds = %11745, %11614
  %11748 = phi i32 [ 2, %11614 ], [ %11746, %11745 ]
  br label %11749

11749:                                            ; preds = %11747, %11606
  %11750 = phi i32 [ 1, %11606 ], [ %11748, %11747 ]
  br label %11751

11751:                                            ; preds = %11749, %11598
  %11752 = phi i32 [ 0, %11598 ], [ %11750, %11749 ]
  br label %11759

11753:                                            ; preds = %11584
  %11754 = load ptr, ptr %14, align 8, !tbaa !5
  %11755 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11754, i32 0, i32 3
  %11756 = load i8, ptr %11755, align 1, !tbaa !13
  %11757 = zext i8 %11756 to i32
  %11758 = ashr i32 %11757, 4
  br label %11759

11759:                                            ; preds = %11753, %11751
  %11760 = phi i32 [ %11752, %11751 ], [ %11758, %11753 ]
  %11761 = icmp eq i32 2, %11760
  br i1 %11761, label %11762, label %11763

11762:                                            ; preds = %11759
  br label %13756

11763:                                            ; preds = %11759
  %11764 = load ptr, ptr %14, align 8, !tbaa !5
  %11765 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11764, i32 0, i32 3
  %11766 = load i8, ptr %11765, align 1, !tbaa !13
  %11767 = zext i8 %11766 to i32
  %11768 = ashr i32 %11767, 4
  %11769 = icmp eq i32 0, %11768
  br i1 %11769, label %11770, label %11932

11770:                                            ; preds = %11763
  %11771 = load ptr, ptr %14, align 8, !tbaa !5
  %11772 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11771, i32 0, i32 3
  %11773 = load i8, ptr %11772, align 1, !tbaa !13
  %11774 = zext i8 %11773 to i32
  %11775 = and i32 %11774, 15
  %11776 = icmp eq i32 0, %11775
  br i1 %11776, label %11777, label %11778

11777:                                            ; preds = %11770
  br label %11930

11778:                                            ; preds = %11770
  %11779 = load ptr, ptr %14, align 8, !tbaa !5
  %11780 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11779, i32 0, i32 3
  %11781 = load i8, ptr %11780, align 1, !tbaa !13
  %11782 = zext i8 %11781 to i32
  %11783 = and i32 %11782, 15
  %11784 = icmp eq i32 1, %11783
  br i1 %11784, label %11785, label %11786

11785:                                            ; preds = %11778
  br label %11928

11786:                                            ; preds = %11778
  %11787 = load ptr, ptr %14, align 8, !tbaa !5
  %11788 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11787, i32 0, i32 3
  %11789 = load i8, ptr %11788, align 1, !tbaa !13
  %11790 = zext i8 %11789 to i32
  %11791 = and i32 %11790, 15
  %11792 = icmp eq i32 2, %11791
  br i1 %11792, label %11793, label %11794

11793:                                            ; preds = %11786
  br label %11926

11794:                                            ; preds = %11786
  %11795 = load ptr, ptr %14, align 8, !tbaa !5
  %11796 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11795, i32 0, i32 3
  %11797 = load i8, ptr %11796, align 1, !tbaa !13
  %11798 = zext i8 %11797 to i32
  %11799 = and i32 %11798, 15
  %11800 = icmp eq i32 3, %11799
  br i1 %11800, label %11801, label %11802

11801:                                            ; preds = %11794
  br label %11924

11802:                                            ; preds = %11794
  %11803 = load ptr, ptr %14, align 8, !tbaa !5
  %11804 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11803, i32 0, i32 3
  %11805 = load i8, ptr %11804, align 1, !tbaa !13
  %11806 = zext i8 %11805 to i32
  %11807 = and i32 %11806, 15
  %11808 = icmp eq i32 4, %11807
  br i1 %11808, label %11809, label %11810

11809:                                            ; preds = %11802
  br label %11922

11810:                                            ; preds = %11802
  %11811 = load ptr, ptr %14, align 8, !tbaa !5
  %11812 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11811, i32 0, i32 3
  %11813 = load i8, ptr %11812, align 1, !tbaa !13
  %11814 = zext i8 %11813 to i32
  %11815 = and i32 %11814, 15
  %11816 = icmp eq i32 5, %11815
  br i1 %11816, label %11817, label %11818

11817:                                            ; preds = %11810
  br label %11920

11818:                                            ; preds = %11810
  %11819 = load ptr, ptr %14, align 8, !tbaa !5
  %11820 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11819, i32 0, i32 3
  %11821 = load i8, ptr %11820, align 1, !tbaa !13
  %11822 = zext i8 %11821 to i32
  %11823 = and i32 %11822, 15
  %11824 = icmp eq i32 6, %11823
  br i1 %11824, label %11825, label %11826

11825:                                            ; preds = %11818
  br label %11918

11826:                                            ; preds = %11818
  %11827 = load ptr, ptr %14, align 8, !tbaa !5
  %11828 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11827, i32 0, i32 3
  %11829 = load i8, ptr %11828, align 1, !tbaa !13
  %11830 = zext i8 %11829 to i32
  %11831 = and i32 %11830, 15
  %11832 = icmp eq i32 7, %11831
  br i1 %11832, label %11833, label %11834

11833:                                            ; preds = %11826
  br label %11916

11834:                                            ; preds = %11826
  %11835 = load ptr, ptr %14, align 8, !tbaa !5
  %11836 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11835, i32 0, i32 3
  %11837 = load i8, ptr %11836, align 1, !tbaa !13
  %11838 = zext i8 %11837 to i32
  %11839 = and i32 %11838, 15
  %11840 = icmp eq i32 8, %11839
  br i1 %11840, label %11841, label %11842

11841:                                            ; preds = %11834
  br label %11914

11842:                                            ; preds = %11834
  %11843 = load ptr, ptr %14, align 8, !tbaa !5
  %11844 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11843, i32 0, i32 3
  %11845 = load i8, ptr %11844, align 1, !tbaa !13
  %11846 = zext i8 %11845 to i32
  %11847 = and i32 %11846, 15
  %11848 = icmp eq i32 9, %11847
  br i1 %11848, label %11849, label %11850

11849:                                            ; preds = %11842
  br label %11912

11850:                                            ; preds = %11842
  %11851 = load ptr, ptr %14, align 8, !tbaa !5
  %11852 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11851, i32 0, i32 3
  %11853 = load i8, ptr %11852, align 1, !tbaa !13
  %11854 = zext i8 %11853 to i32
  %11855 = and i32 %11854, 15
  %11856 = icmp eq i32 10, %11855
  br i1 %11856, label %11857, label %11858

11857:                                            ; preds = %11850
  br label %11910

11858:                                            ; preds = %11850
  %11859 = load ptr, ptr %14, align 8, !tbaa !5
  %11860 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11859, i32 0, i32 3
  %11861 = load i8, ptr %11860, align 1, !tbaa !13
  %11862 = zext i8 %11861 to i32
  %11863 = and i32 %11862, 15
  %11864 = icmp eq i32 11, %11863
  br i1 %11864, label %11865, label %11866

11865:                                            ; preds = %11858
  br label %11908

11866:                                            ; preds = %11858
  %11867 = load ptr, ptr %14, align 8, !tbaa !5
  %11868 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11867, i32 0, i32 3
  %11869 = load i8, ptr %11868, align 1, !tbaa !13
  %11870 = zext i8 %11869 to i32
  %11871 = and i32 %11870, 15
  %11872 = icmp eq i32 12, %11871
  br i1 %11872, label %11873, label %11874

11873:                                            ; preds = %11866
  br label %11906

11874:                                            ; preds = %11866
  %11875 = load ptr, ptr %14, align 8, !tbaa !5
  %11876 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11875, i32 0, i32 3
  %11877 = load i8, ptr %11876, align 1, !tbaa !13
  %11878 = zext i8 %11877 to i32
  %11879 = and i32 %11878, 15
  %11880 = icmp eq i32 13, %11879
  br i1 %11880, label %11881, label %11882

11881:                                            ; preds = %11874
  br label %11904

11882:                                            ; preds = %11874
  %11883 = load ptr, ptr %14, align 8, !tbaa !5
  %11884 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11883, i32 0, i32 3
  %11885 = load i8, ptr %11884, align 1, !tbaa !13
  %11886 = zext i8 %11885 to i32
  %11887 = and i32 %11886, 15
  %11888 = icmp eq i32 14, %11887
  br i1 %11888, label %11889, label %11890

11889:                                            ; preds = %11882
  br label %11902

11890:                                            ; preds = %11882
  %11891 = load ptr, ptr %14, align 8, !tbaa !5
  %11892 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11891, i32 0, i32 3
  %11893 = load i8, ptr %11892, align 1, !tbaa !13
  %11894 = zext i8 %11893 to i32
  %11895 = and i32 %11894, 15
  %11896 = icmp eq i32 15, %11895
  br i1 %11896, label %11897, label %11898

11897:                                            ; preds = %11890
  br label %11900

11898:                                            ; preds = %11890
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 640, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

11899:                                            ; No predecessors!
  br label %11900

11900:                                            ; preds = %11899, %11897
  %11901 = phi i32 [ 15, %11897 ], [ 0, %11899 ]
  br label %11902

11902:                                            ; preds = %11900, %11889
  %11903 = phi i32 [ 14, %11889 ], [ %11901, %11900 ]
  br label %11904

11904:                                            ; preds = %11902, %11881
  %11905 = phi i32 [ 12, %11881 ], [ %11903, %11902 ]
  br label %11906

11906:                                            ; preds = %11904, %11873
  %11907 = phi i32 [ 12, %11873 ], [ %11905, %11904 ]
  br label %11908

11908:                                            ; preds = %11906, %11865
  %11909 = phi i32 [ 10, %11865 ], [ %11907, %11906 ]
  br label %11910

11910:                                            ; preds = %11908, %11857
  %11911 = phi i32 [ 10, %11857 ], [ %11909, %11908 ]
  br label %11912

11912:                                            ; preds = %11910, %11849
  %11913 = phi i32 [ 8, %11849 ], [ %11911, %11910 ]
  br label %11914

11914:                                            ; preds = %11912, %11841
  %11915 = phi i32 [ 8, %11841 ], [ %11913, %11912 ]
  br label %11916

11916:                                            ; preds = %11914, %11833
  %11917 = phi i32 [ 6, %11833 ], [ %11915, %11914 ]
  br label %11918

11918:                                            ; preds = %11916, %11825
  %11919 = phi i32 [ 6, %11825 ], [ %11917, %11916 ]
  br label %11920

11920:                                            ; preds = %11918, %11817
  %11921 = phi i32 [ 5, %11817 ], [ %11919, %11918 ]
  br label %11922

11922:                                            ; preds = %11920, %11809
  %11923 = phi i32 [ 4, %11809 ], [ %11921, %11920 ]
  br label %11924

11924:                                            ; preds = %11922, %11801
  %11925 = phi i32 [ 3, %11801 ], [ %11923, %11922 ]
  br label %11926

11926:                                            ; preds = %11924, %11793
  %11927 = phi i32 [ 2, %11793 ], [ %11925, %11924 ]
  br label %11928

11928:                                            ; preds = %11926, %11785
  %11929 = phi i32 [ 1, %11785 ], [ %11927, %11926 ]
  br label %11930

11930:                                            ; preds = %11928, %11777
  %11931 = phi i32 [ 0, %11777 ], [ %11929, %11928 ]
  br label %11938

11932:                                            ; preds = %11763
  %11933 = load ptr, ptr %14, align 8, !tbaa !5
  %11934 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11933, i32 0, i32 3
  %11935 = load i8, ptr %11934, align 1, !tbaa !13
  %11936 = zext i8 %11935 to i32
  %11937 = ashr i32 %11936, 4
  br label %11938

11938:                                            ; preds = %11932, %11930
  %11939 = phi i32 [ %11931, %11930 ], [ %11937, %11932 ]
  %11940 = icmp eq i32 3, %11939
  br i1 %11940, label %11941, label %11942

11941:                                            ; preds = %11938
  br label %13754

11942:                                            ; preds = %11938
  %11943 = load ptr, ptr %14, align 8, !tbaa !5
  %11944 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11943, i32 0, i32 3
  %11945 = load i8, ptr %11944, align 1, !tbaa !13
  %11946 = zext i8 %11945 to i32
  %11947 = ashr i32 %11946, 4
  %11948 = icmp eq i32 0, %11947
  br i1 %11948, label %11949, label %12111

11949:                                            ; preds = %11942
  %11950 = load ptr, ptr %14, align 8, !tbaa !5
  %11951 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11950, i32 0, i32 3
  %11952 = load i8, ptr %11951, align 1, !tbaa !13
  %11953 = zext i8 %11952 to i32
  %11954 = and i32 %11953, 15
  %11955 = icmp eq i32 0, %11954
  br i1 %11955, label %11956, label %11957

11956:                                            ; preds = %11949
  br label %12109

11957:                                            ; preds = %11949
  %11958 = load ptr, ptr %14, align 8, !tbaa !5
  %11959 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11958, i32 0, i32 3
  %11960 = load i8, ptr %11959, align 1, !tbaa !13
  %11961 = zext i8 %11960 to i32
  %11962 = and i32 %11961, 15
  %11963 = icmp eq i32 1, %11962
  br i1 %11963, label %11964, label %11965

11964:                                            ; preds = %11957
  br label %12107

11965:                                            ; preds = %11957
  %11966 = load ptr, ptr %14, align 8, !tbaa !5
  %11967 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11966, i32 0, i32 3
  %11968 = load i8, ptr %11967, align 1, !tbaa !13
  %11969 = zext i8 %11968 to i32
  %11970 = and i32 %11969, 15
  %11971 = icmp eq i32 2, %11970
  br i1 %11971, label %11972, label %11973

11972:                                            ; preds = %11965
  br label %12105

11973:                                            ; preds = %11965
  %11974 = load ptr, ptr %14, align 8, !tbaa !5
  %11975 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11974, i32 0, i32 3
  %11976 = load i8, ptr %11975, align 1, !tbaa !13
  %11977 = zext i8 %11976 to i32
  %11978 = and i32 %11977, 15
  %11979 = icmp eq i32 3, %11978
  br i1 %11979, label %11980, label %11981

11980:                                            ; preds = %11973
  br label %12103

11981:                                            ; preds = %11973
  %11982 = load ptr, ptr %14, align 8, !tbaa !5
  %11983 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11982, i32 0, i32 3
  %11984 = load i8, ptr %11983, align 1, !tbaa !13
  %11985 = zext i8 %11984 to i32
  %11986 = and i32 %11985, 15
  %11987 = icmp eq i32 4, %11986
  br i1 %11987, label %11988, label %11989

11988:                                            ; preds = %11981
  br label %12101

11989:                                            ; preds = %11981
  %11990 = load ptr, ptr %14, align 8, !tbaa !5
  %11991 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11990, i32 0, i32 3
  %11992 = load i8, ptr %11991, align 1, !tbaa !13
  %11993 = zext i8 %11992 to i32
  %11994 = and i32 %11993, 15
  %11995 = icmp eq i32 5, %11994
  br i1 %11995, label %11996, label %11997

11996:                                            ; preds = %11989
  br label %12099

11997:                                            ; preds = %11989
  %11998 = load ptr, ptr %14, align 8, !tbaa !5
  %11999 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %11998, i32 0, i32 3
  %12000 = load i8, ptr %11999, align 1, !tbaa !13
  %12001 = zext i8 %12000 to i32
  %12002 = and i32 %12001, 15
  %12003 = icmp eq i32 6, %12002
  br i1 %12003, label %12004, label %12005

12004:                                            ; preds = %11997
  br label %12097

12005:                                            ; preds = %11997
  %12006 = load ptr, ptr %14, align 8, !tbaa !5
  %12007 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12006, i32 0, i32 3
  %12008 = load i8, ptr %12007, align 1, !tbaa !13
  %12009 = zext i8 %12008 to i32
  %12010 = and i32 %12009, 15
  %12011 = icmp eq i32 7, %12010
  br i1 %12011, label %12012, label %12013

12012:                                            ; preds = %12005
  br label %12095

12013:                                            ; preds = %12005
  %12014 = load ptr, ptr %14, align 8, !tbaa !5
  %12015 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12014, i32 0, i32 3
  %12016 = load i8, ptr %12015, align 1, !tbaa !13
  %12017 = zext i8 %12016 to i32
  %12018 = and i32 %12017, 15
  %12019 = icmp eq i32 8, %12018
  br i1 %12019, label %12020, label %12021

12020:                                            ; preds = %12013
  br label %12093

12021:                                            ; preds = %12013
  %12022 = load ptr, ptr %14, align 8, !tbaa !5
  %12023 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12022, i32 0, i32 3
  %12024 = load i8, ptr %12023, align 1, !tbaa !13
  %12025 = zext i8 %12024 to i32
  %12026 = and i32 %12025, 15
  %12027 = icmp eq i32 9, %12026
  br i1 %12027, label %12028, label %12029

12028:                                            ; preds = %12021
  br label %12091

12029:                                            ; preds = %12021
  %12030 = load ptr, ptr %14, align 8, !tbaa !5
  %12031 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12030, i32 0, i32 3
  %12032 = load i8, ptr %12031, align 1, !tbaa !13
  %12033 = zext i8 %12032 to i32
  %12034 = and i32 %12033, 15
  %12035 = icmp eq i32 10, %12034
  br i1 %12035, label %12036, label %12037

12036:                                            ; preds = %12029
  br label %12089

12037:                                            ; preds = %12029
  %12038 = load ptr, ptr %14, align 8, !tbaa !5
  %12039 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12038, i32 0, i32 3
  %12040 = load i8, ptr %12039, align 1, !tbaa !13
  %12041 = zext i8 %12040 to i32
  %12042 = and i32 %12041, 15
  %12043 = icmp eq i32 11, %12042
  br i1 %12043, label %12044, label %12045

12044:                                            ; preds = %12037
  br label %12087

12045:                                            ; preds = %12037
  %12046 = load ptr, ptr %14, align 8, !tbaa !5
  %12047 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12046, i32 0, i32 3
  %12048 = load i8, ptr %12047, align 1, !tbaa !13
  %12049 = zext i8 %12048 to i32
  %12050 = and i32 %12049, 15
  %12051 = icmp eq i32 12, %12050
  br i1 %12051, label %12052, label %12053

12052:                                            ; preds = %12045
  br label %12085

12053:                                            ; preds = %12045
  %12054 = load ptr, ptr %14, align 8, !tbaa !5
  %12055 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12054, i32 0, i32 3
  %12056 = load i8, ptr %12055, align 1, !tbaa !13
  %12057 = zext i8 %12056 to i32
  %12058 = and i32 %12057, 15
  %12059 = icmp eq i32 13, %12058
  br i1 %12059, label %12060, label %12061

12060:                                            ; preds = %12053
  br label %12083

12061:                                            ; preds = %12053
  %12062 = load ptr, ptr %14, align 8, !tbaa !5
  %12063 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12062, i32 0, i32 3
  %12064 = load i8, ptr %12063, align 1, !tbaa !13
  %12065 = zext i8 %12064 to i32
  %12066 = and i32 %12065, 15
  %12067 = icmp eq i32 14, %12066
  br i1 %12067, label %12068, label %12069

12068:                                            ; preds = %12061
  br label %12081

12069:                                            ; preds = %12061
  %12070 = load ptr, ptr %14, align 8, !tbaa !5
  %12071 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12070, i32 0, i32 3
  %12072 = load i8, ptr %12071, align 1, !tbaa !13
  %12073 = zext i8 %12072 to i32
  %12074 = and i32 %12073, 15
  %12075 = icmp eq i32 15, %12074
  br i1 %12075, label %12076, label %12077

12076:                                            ; preds = %12069
  br label %12079

12077:                                            ; preds = %12069
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 640, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

12078:                                            ; No predecessors!
  br label %12079

12079:                                            ; preds = %12078, %12076
  %12080 = phi i32 [ 15, %12076 ], [ 0, %12078 ]
  br label %12081

12081:                                            ; preds = %12079, %12068
  %12082 = phi i32 [ 14, %12068 ], [ %12080, %12079 ]
  br label %12083

12083:                                            ; preds = %12081, %12060
  %12084 = phi i32 [ 12, %12060 ], [ %12082, %12081 ]
  br label %12085

12085:                                            ; preds = %12083, %12052
  %12086 = phi i32 [ 12, %12052 ], [ %12084, %12083 ]
  br label %12087

12087:                                            ; preds = %12085, %12044
  %12088 = phi i32 [ 10, %12044 ], [ %12086, %12085 ]
  br label %12089

12089:                                            ; preds = %12087, %12036
  %12090 = phi i32 [ 10, %12036 ], [ %12088, %12087 ]
  br label %12091

12091:                                            ; preds = %12089, %12028
  %12092 = phi i32 [ 8, %12028 ], [ %12090, %12089 ]
  br label %12093

12093:                                            ; preds = %12091, %12020
  %12094 = phi i32 [ 8, %12020 ], [ %12092, %12091 ]
  br label %12095

12095:                                            ; preds = %12093, %12012
  %12096 = phi i32 [ 6, %12012 ], [ %12094, %12093 ]
  br label %12097

12097:                                            ; preds = %12095, %12004
  %12098 = phi i32 [ 6, %12004 ], [ %12096, %12095 ]
  br label %12099

12099:                                            ; preds = %12097, %11996
  %12100 = phi i32 [ 5, %11996 ], [ %12098, %12097 ]
  br label %12101

12101:                                            ; preds = %12099, %11988
  %12102 = phi i32 [ 4, %11988 ], [ %12100, %12099 ]
  br label %12103

12103:                                            ; preds = %12101, %11980
  %12104 = phi i32 [ 3, %11980 ], [ %12102, %12101 ]
  br label %12105

12105:                                            ; preds = %12103, %11972
  %12106 = phi i32 [ 2, %11972 ], [ %12104, %12103 ]
  br label %12107

12107:                                            ; preds = %12105, %11964
  %12108 = phi i32 [ 1, %11964 ], [ %12106, %12105 ]
  br label %12109

12109:                                            ; preds = %12107, %11956
  %12110 = phi i32 [ 0, %11956 ], [ %12108, %12107 ]
  br label %12117

12111:                                            ; preds = %11942
  %12112 = load ptr, ptr %14, align 8, !tbaa !5
  %12113 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12112, i32 0, i32 3
  %12114 = load i8, ptr %12113, align 1, !tbaa !13
  %12115 = zext i8 %12114 to i32
  %12116 = ashr i32 %12115, 4
  br label %12117

12117:                                            ; preds = %12111, %12109
  %12118 = phi i32 [ %12110, %12109 ], [ %12116, %12111 ]
  %12119 = icmp eq i32 4, %12118
  br i1 %12119, label %12120, label %12121

12120:                                            ; preds = %12117
  br label %13752

12121:                                            ; preds = %12117
  %12122 = load ptr, ptr %14, align 8, !tbaa !5
  %12123 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12122, i32 0, i32 3
  %12124 = load i8, ptr %12123, align 1, !tbaa !13
  %12125 = zext i8 %12124 to i32
  %12126 = ashr i32 %12125, 4
  %12127 = icmp eq i32 0, %12126
  br i1 %12127, label %12128, label %12290

12128:                                            ; preds = %12121
  %12129 = load ptr, ptr %14, align 8, !tbaa !5
  %12130 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12129, i32 0, i32 3
  %12131 = load i8, ptr %12130, align 1, !tbaa !13
  %12132 = zext i8 %12131 to i32
  %12133 = and i32 %12132, 15
  %12134 = icmp eq i32 0, %12133
  br i1 %12134, label %12135, label %12136

12135:                                            ; preds = %12128
  br label %12288

12136:                                            ; preds = %12128
  %12137 = load ptr, ptr %14, align 8, !tbaa !5
  %12138 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12137, i32 0, i32 3
  %12139 = load i8, ptr %12138, align 1, !tbaa !13
  %12140 = zext i8 %12139 to i32
  %12141 = and i32 %12140, 15
  %12142 = icmp eq i32 1, %12141
  br i1 %12142, label %12143, label %12144

12143:                                            ; preds = %12136
  br label %12286

12144:                                            ; preds = %12136
  %12145 = load ptr, ptr %14, align 8, !tbaa !5
  %12146 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12145, i32 0, i32 3
  %12147 = load i8, ptr %12146, align 1, !tbaa !13
  %12148 = zext i8 %12147 to i32
  %12149 = and i32 %12148, 15
  %12150 = icmp eq i32 2, %12149
  br i1 %12150, label %12151, label %12152

12151:                                            ; preds = %12144
  br label %12284

12152:                                            ; preds = %12144
  %12153 = load ptr, ptr %14, align 8, !tbaa !5
  %12154 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12153, i32 0, i32 3
  %12155 = load i8, ptr %12154, align 1, !tbaa !13
  %12156 = zext i8 %12155 to i32
  %12157 = and i32 %12156, 15
  %12158 = icmp eq i32 3, %12157
  br i1 %12158, label %12159, label %12160

12159:                                            ; preds = %12152
  br label %12282

12160:                                            ; preds = %12152
  %12161 = load ptr, ptr %14, align 8, !tbaa !5
  %12162 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12161, i32 0, i32 3
  %12163 = load i8, ptr %12162, align 1, !tbaa !13
  %12164 = zext i8 %12163 to i32
  %12165 = and i32 %12164, 15
  %12166 = icmp eq i32 4, %12165
  br i1 %12166, label %12167, label %12168

12167:                                            ; preds = %12160
  br label %12280

12168:                                            ; preds = %12160
  %12169 = load ptr, ptr %14, align 8, !tbaa !5
  %12170 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12169, i32 0, i32 3
  %12171 = load i8, ptr %12170, align 1, !tbaa !13
  %12172 = zext i8 %12171 to i32
  %12173 = and i32 %12172, 15
  %12174 = icmp eq i32 5, %12173
  br i1 %12174, label %12175, label %12176

12175:                                            ; preds = %12168
  br label %12278

12176:                                            ; preds = %12168
  %12177 = load ptr, ptr %14, align 8, !tbaa !5
  %12178 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12177, i32 0, i32 3
  %12179 = load i8, ptr %12178, align 1, !tbaa !13
  %12180 = zext i8 %12179 to i32
  %12181 = and i32 %12180, 15
  %12182 = icmp eq i32 6, %12181
  br i1 %12182, label %12183, label %12184

12183:                                            ; preds = %12176
  br label %12276

12184:                                            ; preds = %12176
  %12185 = load ptr, ptr %14, align 8, !tbaa !5
  %12186 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12185, i32 0, i32 3
  %12187 = load i8, ptr %12186, align 1, !tbaa !13
  %12188 = zext i8 %12187 to i32
  %12189 = and i32 %12188, 15
  %12190 = icmp eq i32 7, %12189
  br i1 %12190, label %12191, label %12192

12191:                                            ; preds = %12184
  br label %12274

12192:                                            ; preds = %12184
  %12193 = load ptr, ptr %14, align 8, !tbaa !5
  %12194 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12193, i32 0, i32 3
  %12195 = load i8, ptr %12194, align 1, !tbaa !13
  %12196 = zext i8 %12195 to i32
  %12197 = and i32 %12196, 15
  %12198 = icmp eq i32 8, %12197
  br i1 %12198, label %12199, label %12200

12199:                                            ; preds = %12192
  br label %12272

12200:                                            ; preds = %12192
  %12201 = load ptr, ptr %14, align 8, !tbaa !5
  %12202 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12201, i32 0, i32 3
  %12203 = load i8, ptr %12202, align 1, !tbaa !13
  %12204 = zext i8 %12203 to i32
  %12205 = and i32 %12204, 15
  %12206 = icmp eq i32 9, %12205
  br i1 %12206, label %12207, label %12208

12207:                                            ; preds = %12200
  br label %12270

12208:                                            ; preds = %12200
  %12209 = load ptr, ptr %14, align 8, !tbaa !5
  %12210 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12209, i32 0, i32 3
  %12211 = load i8, ptr %12210, align 1, !tbaa !13
  %12212 = zext i8 %12211 to i32
  %12213 = and i32 %12212, 15
  %12214 = icmp eq i32 10, %12213
  br i1 %12214, label %12215, label %12216

12215:                                            ; preds = %12208
  br label %12268

12216:                                            ; preds = %12208
  %12217 = load ptr, ptr %14, align 8, !tbaa !5
  %12218 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12217, i32 0, i32 3
  %12219 = load i8, ptr %12218, align 1, !tbaa !13
  %12220 = zext i8 %12219 to i32
  %12221 = and i32 %12220, 15
  %12222 = icmp eq i32 11, %12221
  br i1 %12222, label %12223, label %12224

12223:                                            ; preds = %12216
  br label %12266

12224:                                            ; preds = %12216
  %12225 = load ptr, ptr %14, align 8, !tbaa !5
  %12226 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12225, i32 0, i32 3
  %12227 = load i8, ptr %12226, align 1, !tbaa !13
  %12228 = zext i8 %12227 to i32
  %12229 = and i32 %12228, 15
  %12230 = icmp eq i32 12, %12229
  br i1 %12230, label %12231, label %12232

12231:                                            ; preds = %12224
  br label %12264

12232:                                            ; preds = %12224
  %12233 = load ptr, ptr %14, align 8, !tbaa !5
  %12234 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12233, i32 0, i32 3
  %12235 = load i8, ptr %12234, align 1, !tbaa !13
  %12236 = zext i8 %12235 to i32
  %12237 = and i32 %12236, 15
  %12238 = icmp eq i32 13, %12237
  br i1 %12238, label %12239, label %12240

12239:                                            ; preds = %12232
  br label %12262

12240:                                            ; preds = %12232
  %12241 = load ptr, ptr %14, align 8, !tbaa !5
  %12242 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12241, i32 0, i32 3
  %12243 = load i8, ptr %12242, align 1, !tbaa !13
  %12244 = zext i8 %12243 to i32
  %12245 = and i32 %12244, 15
  %12246 = icmp eq i32 14, %12245
  br i1 %12246, label %12247, label %12248

12247:                                            ; preds = %12240
  br label %12260

12248:                                            ; preds = %12240
  %12249 = load ptr, ptr %14, align 8, !tbaa !5
  %12250 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12249, i32 0, i32 3
  %12251 = load i8, ptr %12250, align 1, !tbaa !13
  %12252 = zext i8 %12251 to i32
  %12253 = and i32 %12252, 15
  %12254 = icmp eq i32 15, %12253
  br i1 %12254, label %12255, label %12256

12255:                                            ; preds = %12248
  br label %12258

12256:                                            ; preds = %12248
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 640, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

12257:                                            ; No predecessors!
  br label %12258

12258:                                            ; preds = %12257, %12255
  %12259 = phi i32 [ 15, %12255 ], [ 0, %12257 ]
  br label %12260

12260:                                            ; preds = %12258, %12247
  %12261 = phi i32 [ 14, %12247 ], [ %12259, %12258 ]
  br label %12262

12262:                                            ; preds = %12260, %12239
  %12263 = phi i32 [ 12, %12239 ], [ %12261, %12260 ]
  br label %12264

12264:                                            ; preds = %12262, %12231
  %12265 = phi i32 [ 12, %12231 ], [ %12263, %12262 ]
  br label %12266

12266:                                            ; preds = %12264, %12223
  %12267 = phi i32 [ 10, %12223 ], [ %12265, %12264 ]
  br label %12268

12268:                                            ; preds = %12266, %12215
  %12269 = phi i32 [ 10, %12215 ], [ %12267, %12266 ]
  br label %12270

12270:                                            ; preds = %12268, %12207
  %12271 = phi i32 [ 8, %12207 ], [ %12269, %12268 ]
  br label %12272

12272:                                            ; preds = %12270, %12199
  %12273 = phi i32 [ 8, %12199 ], [ %12271, %12270 ]
  br label %12274

12274:                                            ; preds = %12272, %12191
  %12275 = phi i32 [ 6, %12191 ], [ %12273, %12272 ]
  br label %12276

12276:                                            ; preds = %12274, %12183
  %12277 = phi i32 [ 6, %12183 ], [ %12275, %12274 ]
  br label %12278

12278:                                            ; preds = %12276, %12175
  %12279 = phi i32 [ 5, %12175 ], [ %12277, %12276 ]
  br label %12280

12280:                                            ; preds = %12278, %12167
  %12281 = phi i32 [ 4, %12167 ], [ %12279, %12278 ]
  br label %12282

12282:                                            ; preds = %12280, %12159
  %12283 = phi i32 [ 3, %12159 ], [ %12281, %12280 ]
  br label %12284

12284:                                            ; preds = %12282, %12151
  %12285 = phi i32 [ 2, %12151 ], [ %12283, %12282 ]
  br label %12286

12286:                                            ; preds = %12284, %12143
  %12287 = phi i32 [ 1, %12143 ], [ %12285, %12284 ]
  br label %12288

12288:                                            ; preds = %12286, %12135
  %12289 = phi i32 [ 0, %12135 ], [ %12287, %12286 ]
  br label %12296

12290:                                            ; preds = %12121
  %12291 = load ptr, ptr %14, align 8, !tbaa !5
  %12292 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12291, i32 0, i32 3
  %12293 = load i8, ptr %12292, align 1, !tbaa !13
  %12294 = zext i8 %12293 to i32
  %12295 = ashr i32 %12294, 4
  br label %12296

12296:                                            ; preds = %12290, %12288
  %12297 = phi i32 [ %12289, %12288 ], [ %12295, %12290 ]
  %12298 = icmp eq i32 5, %12297
  br i1 %12298, label %12299, label %12300

12299:                                            ; preds = %12296
  br label %13750

12300:                                            ; preds = %12296
  %12301 = load ptr, ptr %14, align 8, !tbaa !5
  %12302 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12301, i32 0, i32 3
  %12303 = load i8, ptr %12302, align 1, !tbaa !13
  %12304 = zext i8 %12303 to i32
  %12305 = ashr i32 %12304, 4
  %12306 = icmp eq i32 0, %12305
  br i1 %12306, label %12307, label %12469

12307:                                            ; preds = %12300
  %12308 = load ptr, ptr %14, align 8, !tbaa !5
  %12309 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12308, i32 0, i32 3
  %12310 = load i8, ptr %12309, align 1, !tbaa !13
  %12311 = zext i8 %12310 to i32
  %12312 = and i32 %12311, 15
  %12313 = icmp eq i32 0, %12312
  br i1 %12313, label %12314, label %12315

12314:                                            ; preds = %12307
  br label %12467

12315:                                            ; preds = %12307
  %12316 = load ptr, ptr %14, align 8, !tbaa !5
  %12317 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12316, i32 0, i32 3
  %12318 = load i8, ptr %12317, align 1, !tbaa !13
  %12319 = zext i8 %12318 to i32
  %12320 = and i32 %12319, 15
  %12321 = icmp eq i32 1, %12320
  br i1 %12321, label %12322, label %12323

12322:                                            ; preds = %12315
  br label %12465

12323:                                            ; preds = %12315
  %12324 = load ptr, ptr %14, align 8, !tbaa !5
  %12325 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12324, i32 0, i32 3
  %12326 = load i8, ptr %12325, align 1, !tbaa !13
  %12327 = zext i8 %12326 to i32
  %12328 = and i32 %12327, 15
  %12329 = icmp eq i32 2, %12328
  br i1 %12329, label %12330, label %12331

12330:                                            ; preds = %12323
  br label %12463

12331:                                            ; preds = %12323
  %12332 = load ptr, ptr %14, align 8, !tbaa !5
  %12333 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12332, i32 0, i32 3
  %12334 = load i8, ptr %12333, align 1, !tbaa !13
  %12335 = zext i8 %12334 to i32
  %12336 = and i32 %12335, 15
  %12337 = icmp eq i32 3, %12336
  br i1 %12337, label %12338, label %12339

12338:                                            ; preds = %12331
  br label %12461

12339:                                            ; preds = %12331
  %12340 = load ptr, ptr %14, align 8, !tbaa !5
  %12341 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12340, i32 0, i32 3
  %12342 = load i8, ptr %12341, align 1, !tbaa !13
  %12343 = zext i8 %12342 to i32
  %12344 = and i32 %12343, 15
  %12345 = icmp eq i32 4, %12344
  br i1 %12345, label %12346, label %12347

12346:                                            ; preds = %12339
  br label %12459

12347:                                            ; preds = %12339
  %12348 = load ptr, ptr %14, align 8, !tbaa !5
  %12349 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12348, i32 0, i32 3
  %12350 = load i8, ptr %12349, align 1, !tbaa !13
  %12351 = zext i8 %12350 to i32
  %12352 = and i32 %12351, 15
  %12353 = icmp eq i32 5, %12352
  br i1 %12353, label %12354, label %12355

12354:                                            ; preds = %12347
  br label %12457

12355:                                            ; preds = %12347
  %12356 = load ptr, ptr %14, align 8, !tbaa !5
  %12357 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12356, i32 0, i32 3
  %12358 = load i8, ptr %12357, align 1, !tbaa !13
  %12359 = zext i8 %12358 to i32
  %12360 = and i32 %12359, 15
  %12361 = icmp eq i32 6, %12360
  br i1 %12361, label %12362, label %12363

12362:                                            ; preds = %12355
  br label %12455

12363:                                            ; preds = %12355
  %12364 = load ptr, ptr %14, align 8, !tbaa !5
  %12365 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12364, i32 0, i32 3
  %12366 = load i8, ptr %12365, align 1, !tbaa !13
  %12367 = zext i8 %12366 to i32
  %12368 = and i32 %12367, 15
  %12369 = icmp eq i32 7, %12368
  br i1 %12369, label %12370, label %12371

12370:                                            ; preds = %12363
  br label %12453

12371:                                            ; preds = %12363
  %12372 = load ptr, ptr %14, align 8, !tbaa !5
  %12373 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12372, i32 0, i32 3
  %12374 = load i8, ptr %12373, align 1, !tbaa !13
  %12375 = zext i8 %12374 to i32
  %12376 = and i32 %12375, 15
  %12377 = icmp eq i32 8, %12376
  br i1 %12377, label %12378, label %12379

12378:                                            ; preds = %12371
  br label %12451

12379:                                            ; preds = %12371
  %12380 = load ptr, ptr %14, align 8, !tbaa !5
  %12381 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12380, i32 0, i32 3
  %12382 = load i8, ptr %12381, align 1, !tbaa !13
  %12383 = zext i8 %12382 to i32
  %12384 = and i32 %12383, 15
  %12385 = icmp eq i32 9, %12384
  br i1 %12385, label %12386, label %12387

12386:                                            ; preds = %12379
  br label %12449

12387:                                            ; preds = %12379
  %12388 = load ptr, ptr %14, align 8, !tbaa !5
  %12389 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12388, i32 0, i32 3
  %12390 = load i8, ptr %12389, align 1, !tbaa !13
  %12391 = zext i8 %12390 to i32
  %12392 = and i32 %12391, 15
  %12393 = icmp eq i32 10, %12392
  br i1 %12393, label %12394, label %12395

12394:                                            ; preds = %12387
  br label %12447

12395:                                            ; preds = %12387
  %12396 = load ptr, ptr %14, align 8, !tbaa !5
  %12397 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12396, i32 0, i32 3
  %12398 = load i8, ptr %12397, align 1, !tbaa !13
  %12399 = zext i8 %12398 to i32
  %12400 = and i32 %12399, 15
  %12401 = icmp eq i32 11, %12400
  br i1 %12401, label %12402, label %12403

12402:                                            ; preds = %12395
  br label %12445

12403:                                            ; preds = %12395
  %12404 = load ptr, ptr %14, align 8, !tbaa !5
  %12405 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12404, i32 0, i32 3
  %12406 = load i8, ptr %12405, align 1, !tbaa !13
  %12407 = zext i8 %12406 to i32
  %12408 = and i32 %12407, 15
  %12409 = icmp eq i32 12, %12408
  br i1 %12409, label %12410, label %12411

12410:                                            ; preds = %12403
  br label %12443

12411:                                            ; preds = %12403
  %12412 = load ptr, ptr %14, align 8, !tbaa !5
  %12413 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12412, i32 0, i32 3
  %12414 = load i8, ptr %12413, align 1, !tbaa !13
  %12415 = zext i8 %12414 to i32
  %12416 = and i32 %12415, 15
  %12417 = icmp eq i32 13, %12416
  br i1 %12417, label %12418, label %12419

12418:                                            ; preds = %12411
  br label %12441

12419:                                            ; preds = %12411
  %12420 = load ptr, ptr %14, align 8, !tbaa !5
  %12421 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12420, i32 0, i32 3
  %12422 = load i8, ptr %12421, align 1, !tbaa !13
  %12423 = zext i8 %12422 to i32
  %12424 = and i32 %12423, 15
  %12425 = icmp eq i32 14, %12424
  br i1 %12425, label %12426, label %12427

12426:                                            ; preds = %12419
  br label %12439

12427:                                            ; preds = %12419
  %12428 = load ptr, ptr %14, align 8, !tbaa !5
  %12429 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12428, i32 0, i32 3
  %12430 = load i8, ptr %12429, align 1, !tbaa !13
  %12431 = zext i8 %12430 to i32
  %12432 = and i32 %12431, 15
  %12433 = icmp eq i32 15, %12432
  br i1 %12433, label %12434, label %12435

12434:                                            ; preds = %12427
  br label %12437

12435:                                            ; preds = %12427
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 640, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

12436:                                            ; No predecessors!
  br label %12437

12437:                                            ; preds = %12436, %12434
  %12438 = phi i32 [ 15, %12434 ], [ 0, %12436 ]
  br label %12439

12439:                                            ; preds = %12437, %12426
  %12440 = phi i32 [ 14, %12426 ], [ %12438, %12437 ]
  br label %12441

12441:                                            ; preds = %12439, %12418
  %12442 = phi i32 [ 12, %12418 ], [ %12440, %12439 ]
  br label %12443

12443:                                            ; preds = %12441, %12410
  %12444 = phi i32 [ 12, %12410 ], [ %12442, %12441 ]
  br label %12445

12445:                                            ; preds = %12443, %12402
  %12446 = phi i32 [ 10, %12402 ], [ %12444, %12443 ]
  br label %12447

12447:                                            ; preds = %12445, %12394
  %12448 = phi i32 [ 10, %12394 ], [ %12446, %12445 ]
  br label %12449

12449:                                            ; preds = %12447, %12386
  %12450 = phi i32 [ 8, %12386 ], [ %12448, %12447 ]
  br label %12451

12451:                                            ; preds = %12449, %12378
  %12452 = phi i32 [ 8, %12378 ], [ %12450, %12449 ]
  br label %12453

12453:                                            ; preds = %12451, %12370
  %12454 = phi i32 [ 6, %12370 ], [ %12452, %12451 ]
  br label %12455

12455:                                            ; preds = %12453, %12362
  %12456 = phi i32 [ 6, %12362 ], [ %12454, %12453 ]
  br label %12457

12457:                                            ; preds = %12455, %12354
  %12458 = phi i32 [ 5, %12354 ], [ %12456, %12455 ]
  br label %12459

12459:                                            ; preds = %12457, %12346
  %12460 = phi i32 [ 4, %12346 ], [ %12458, %12457 ]
  br label %12461

12461:                                            ; preds = %12459, %12338
  %12462 = phi i32 [ 3, %12338 ], [ %12460, %12459 ]
  br label %12463

12463:                                            ; preds = %12461, %12330
  %12464 = phi i32 [ 2, %12330 ], [ %12462, %12461 ]
  br label %12465

12465:                                            ; preds = %12463, %12322
  %12466 = phi i32 [ 1, %12322 ], [ %12464, %12463 ]
  br label %12467

12467:                                            ; preds = %12465, %12314
  %12468 = phi i32 [ 0, %12314 ], [ %12466, %12465 ]
  br label %12475

12469:                                            ; preds = %12300
  %12470 = load ptr, ptr %14, align 8, !tbaa !5
  %12471 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12470, i32 0, i32 3
  %12472 = load i8, ptr %12471, align 1, !tbaa !13
  %12473 = zext i8 %12472 to i32
  %12474 = ashr i32 %12473, 4
  br label %12475

12475:                                            ; preds = %12469, %12467
  %12476 = phi i32 [ %12468, %12467 ], [ %12474, %12469 ]
  %12477 = icmp eq i32 6, %12476
  br i1 %12477, label %12478, label %12479

12478:                                            ; preds = %12475
  br label %13748

12479:                                            ; preds = %12475
  %12480 = load ptr, ptr %14, align 8, !tbaa !5
  %12481 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12480, i32 0, i32 3
  %12482 = load i8, ptr %12481, align 1, !tbaa !13
  %12483 = zext i8 %12482 to i32
  %12484 = ashr i32 %12483, 4
  %12485 = icmp eq i32 0, %12484
  br i1 %12485, label %12486, label %12648

12486:                                            ; preds = %12479
  %12487 = load ptr, ptr %14, align 8, !tbaa !5
  %12488 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12487, i32 0, i32 3
  %12489 = load i8, ptr %12488, align 1, !tbaa !13
  %12490 = zext i8 %12489 to i32
  %12491 = and i32 %12490, 15
  %12492 = icmp eq i32 0, %12491
  br i1 %12492, label %12493, label %12494

12493:                                            ; preds = %12486
  br label %12646

12494:                                            ; preds = %12486
  %12495 = load ptr, ptr %14, align 8, !tbaa !5
  %12496 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12495, i32 0, i32 3
  %12497 = load i8, ptr %12496, align 1, !tbaa !13
  %12498 = zext i8 %12497 to i32
  %12499 = and i32 %12498, 15
  %12500 = icmp eq i32 1, %12499
  br i1 %12500, label %12501, label %12502

12501:                                            ; preds = %12494
  br label %12644

12502:                                            ; preds = %12494
  %12503 = load ptr, ptr %14, align 8, !tbaa !5
  %12504 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12503, i32 0, i32 3
  %12505 = load i8, ptr %12504, align 1, !tbaa !13
  %12506 = zext i8 %12505 to i32
  %12507 = and i32 %12506, 15
  %12508 = icmp eq i32 2, %12507
  br i1 %12508, label %12509, label %12510

12509:                                            ; preds = %12502
  br label %12642

12510:                                            ; preds = %12502
  %12511 = load ptr, ptr %14, align 8, !tbaa !5
  %12512 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12511, i32 0, i32 3
  %12513 = load i8, ptr %12512, align 1, !tbaa !13
  %12514 = zext i8 %12513 to i32
  %12515 = and i32 %12514, 15
  %12516 = icmp eq i32 3, %12515
  br i1 %12516, label %12517, label %12518

12517:                                            ; preds = %12510
  br label %12640

12518:                                            ; preds = %12510
  %12519 = load ptr, ptr %14, align 8, !tbaa !5
  %12520 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12519, i32 0, i32 3
  %12521 = load i8, ptr %12520, align 1, !tbaa !13
  %12522 = zext i8 %12521 to i32
  %12523 = and i32 %12522, 15
  %12524 = icmp eq i32 4, %12523
  br i1 %12524, label %12525, label %12526

12525:                                            ; preds = %12518
  br label %12638

12526:                                            ; preds = %12518
  %12527 = load ptr, ptr %14, align 8, !tbaa !5
  %12528 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12527, i32 0, i32 3
  %12529 = load i8, ptr %12528, align 1, !tbaa !13
  %12530 = zext i8 %12529 to i32
  %12531 = and i32 %12530, 15
  %12532 = icmp eq i32 5, %12531
  br i1 %12532, label %12533, label %12534

12533:                                            ; preds = %12526
  br label %12636

12534:                                            ; preds = %12526
  %12535 = load ptr, ptr %14, align 8, !tbaa !5
  %12536 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12535, i32 0, i32 3
  %12537 = load i8, ptr %12536, align 1, !tbaa !13
  %12538 = zext i8 %12537 to i32
  %12539 = and i32 %12538, 15
  %12540 = icmp eq i32 6, %12539
  br i1 %12540, label %12541, label %12542

12541:                                            ; preds = %12534
  br label %12634

12542:                                            ; preds = %12534
  %12543 = load ptr, ptr %14, align 8, !tbaa !5
  %12544 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12543, i32 0, i32 3
  %12545 = load i8, ptr %12544, align 1, !tbaa !13
  %12546 = zext i8 %12545 to i32
  %12547 = and i32 %12546, 15
  %12548 = icmp eq i32 7, %12547
  br i1 %12548, label %12549, label %12550

12549:                                            ; preds = %12542
  br label %12632

12550:                                            ; preds = %12542
  %12551 = load ptr, ptr %14, align 8, !tbaa !5
  %12552 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12551, i32 0, i32 3
  %12553 = load i8, ptr %12552, align 1, !tbaa !13
  %12554 = zext i8 %12553 to i32
  %12555 = and i32 %12554, 15
  %12556 = icmp eq i32 8, %12555
  br i1 %12556, label %12557, label %12558

12557:                                            ; preds = %12550
  br label %12630

12558:                                            ; preds = %12550
  %12559 = load ptr, ptr %14, align 8, !tbaa !5
  %12560 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12559, i32 0, i32 3
  %12561 = load i8, ptr %12560, align 1, !tbaa !13
  %12562 = zext i8 %12561 to i32
  %12563 = and i32 %12562, 15
  %12564 = icmp eq i32 9, %12563
  br i1 %12564, label %12565, label %12566

12565:                                            ; preds = %12558
  br label %12628

12566:                                            ; preds = %12558
  %12567 = load ptr, ptr %14, align 8, !tbaa !5
  %12568 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12567, i32 0, i32 3
  %12569 = load i8, ptr %12568, align 1, !tbaa !13
  %12570 = zext i8 %12569 to i32
  %12571 = and i32 %12570, 15
  %12572 = icmp eq i32 10, %12571
  br i1 %12572, label %12573, label %12574

12573:                                            ; preds = %12566
  br label %12626

12574:                                            ; preds = %12566
  %12575 = load ptr, ptr %14, align 8, !tbaa !5
  %12576 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12575, i32 0, i32 3
  %12577 = load i8, ptr %12576, align 1, !tbaa !13
  %12578 = zext i8 %12577 to i32
  %12579 = and i32 %12578, 15
  %12580 = icmp eq i32 11, %12579
  br i1 %12580, label %12581, label %12582

12581:                                            ; preds = %12574
  br label %12624

12582:                                            ; preds = %12574
  %12583 = load ptr, ptr %14, align 8, !tbaa !5
  %12584 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12583, i32 0, i32 3
  %12585 = load i8, ptr %12584, align 1, !tbaa !13
  %12586 = zext i8 %12585 to i32
  %12587 = and i32 %12586, 15
  %12588 = icmp eq i32 12, %12587
  br i1 %12588, label %12589, label %12590

12589:                                            ; preds = %12582
  br label %12622

12590:                                            ; preds = %12582
  %12591 = load ptr, ptr %14, align 8, !tbaa !5
  %12592 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12591, i32 0, i32 3
  %12593 = load i8, ptr %12592, align 1, !tbaa !13
  %12594 = zext i8 %12593 to i32
  %12595 = and i32 %12594, 15
  %12596 = icmp eq i32 13, %12595
  br i1 %12596, label %12597, label %12598

12597:                                            ; preds = %12590
  br label %12620

12598:                                            ; preds = %12590
  %12599 = load ptr, ptr %14, align 8, !tbaa !5
  %12600 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12599, i32 0, i32 3
  %12601 = load i8, ptr %12600, align 1, !tbaa !13
  %12602 = zext i8 %12601 to i32
  %12603 = and i32 %12602, 15
  %12604 = icmp eq i32 14, %12603
  br i1 %12604, label %12605, label %12606

12605:                                            ; preds = %12598
  br label %12618

12606:                                            ; preds = %12598
  %12607 = load ptr, ptr %14, align 8, !tbaa !5
  %12608 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12607, i32 0, i32 3
  %12609 = load i8, ptr %12608, align 1, !tbaa !13
  %12610 = zext i8 %12609 to i32
  %12611 = and i32 %12610, 15
  %12612 = icmp eq i32 15, %12611
  br i1 %12612, label %12613, label %12614

12613:                                            ; preds = %12606
  br label %12616

12614:                                            ; preds = %12606
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 640, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

12615:                                            ; No predecessors!
  br label %12616

12616:                                            ; preds = %12615, %12613
  %12617 = phi i32 [ 15, %12613 ], [ 0, %12615 ]
  br label %12618

12618:                                            ; preds = %12616, %12605
  %12619 = phi i32 [ 14, %12605 ], [ %12617, %12616 ]
  br label %12620

12620:                                            ; preds = %12618, %12597
  %12621 = phi i32 [ 12, %12597 ], [ %12619, %12618 ]
  br label %12622

12622:                                            ; preds = %12620, %12589
  %12623 = phi i32 [ 12, %12589 ], [ %12621, %12620 ]
  br label %12624

12624:                                            ; preds = %12622, %12581
  %12625 = phi i32 [ 10, %12581 ], [ %12623, %12622 ]
  br label %12626

12626:                                            ; preds = %12624, %12573
  %12627 = phi i32 [ 10, %12573 ], [ %12625, %12624 ]
  br label %12628

12628:                                            ; preds = %12626, %12565
  %12629 = phi i32 [ 8, %12565 ], [ %12627, %12626 ]
  br label %12630

12630:                                            ; preds = %12628, %12557
  %12631 = phi i32 [ 8, %12557 ], [ %12629, %12628 ]
  br label %12632

12632:                                            ; preds = %12630, %12549
  %12633 = phi i32 [ 6, %12549 ], [ %12631, %12630 ]
  br label %12634

12634:                                            ; preds = %12632, %12541
  %12635 = phi i32 [ 6, %12541 ], [ %12633, %12632 ]
  br label %12636

12636:                                            ; preds = %12634, %12533
  %12637 = phi i32 [ 5, %12533 ], [ %12635, %12634 ]
  br label %12638

12638:                                            ; preds = %12636, %12525
  %12639 = phi i32 [ 4, %12525 ], [ %12637, %12636 ]
  br label %12640

12640:                                            ; preds = %12638, %12517
  %12641 = phi i32 [ 3, %12517 ], [ %12639, %12638 ]
  br label %12642

12642:                                            ; preds = %12640, %12509
  %12643 = phi i32 [ 2, %12509 ], [ %12641, %12640 ]
  br label %12644

12644:                                            ; preds = %12642, %12501
  %12645 = phi i32 [ 1, %12501 ], [ %12643, %12642 ]
  br label %12646

12646:                                            ; preds = %12644, %12493
  %12647 = phi i32 [ 0, %12493 ], [ %12645, %12644 ]
  br label %12654

12648:                                            ; preds = %12479
  %12649 = load ptr, ptr %14, align 8, !tbaa !5
  %12650 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12649, i32 0, i32 3
  %12651 = load i8, ptr %12650, align 1, !tbaa !13
  %12652 = zext i8 %12651 to i32
  %12653 = ashr i32 %12652, 4
  br label %12654

12654:                                            ; preds = %12648, %12646
  %12655 = phi i32 [ %12647, %12646 ], [ %12653, %12648 ]
  %12656 = icmp eq i32 7, %12655
  br i1 %12656, label %12657, label %12658

12657:                                            ; preds = %12654
  br label %13746

12658:                                            ; preds = %12654
  %12659 = load ptr, ptr %14, align 8, !tbaa !5
  %12660 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12659, i32 0, i32 3
  %12661 = load i8, ptr %12660, align 1, !tbaa !13
  %12662 = zext i8 %12661 to i32
  %12663 = ashr i32 %12662, 4
  %12664 = icmp eq i32 0, %12663
  br i1 %12664, label %12665, label %12827

12665:                                            ; preds = %12658
  %12666 = load ptr, ptr %14, align 8, !tbaa !5
  %12667 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12666, i32 0, i32 3
  %12668 = load i8, ptr %12667, align 1, !tbaa !13
  %12669 = zext i8 %12668 to i32
  %12670 = and i32 %12669, 15
  %12671 = icmp eq i32 0, %12670
  br i1 %12671, label %12672, label %12673

12672:                                            ; preds = %12665
  br label %12825

12673:                                            ; preds = %12665
  %12674 = load ptr, ptr %14, align 8, !tbaa !5
  %12675 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12674, i32 0, i32 3
  %12676 = load i8, ptr %12675, align 1, !tbaa !13
  %12677 = zext i8 %12676 to i32
  %12678 = and i32 %12677, 15
  %12679 = icmp eq i32 1, %12678
  br i1 %12679, label %12680, label %12681

12680:                                            ; preds = %12673
  br label %12823

12681:                                            ; preds = %12673
  %12682 = load ptr, ptr %14, align 8, !tbaa !5
  %12683 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12682, i32 0, i32 3
  %12684 = load i8, ptr %12683, align 1, !tbaa !13
  %12685 = zext i8 %12684 to i32
  %12686 = and i32 %12685, 15
  %12687 = icmp eq i32 2, %12686
  br i1 %12687, label %12688, label %12689

12688:                                            ; preds = %12681
  br label %12821

12689:                                            ; preds = %12681
  %12690 = load ptr, ptr %14, align 8, !tbaa !5
  %12691 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12690, i32 0, i32 3
  %12692 = load i8, ptr %12691, align 1, !tbaa !13
  %12693 = zext i8 %12692 to i32
  %12694 = and i32 %12693, 15
  %12695 = icmp eq i32 3, %12694
  br i1 %12695, label %12696, label %12697

12696:                                            ; preds = %12689
  br label %12819

12697:                                            ; preds = %12689
  %12698 = load ptr, ptr %14, align 8, !tbaa !5
  %12699 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12698, i32 0, i32 3
  %12700 = load i8, ptr %12699, align 1, !tbaa !13
  %12701 = zext i8 %12700 to i32
  %12702 = and i32 %12701, 15
  %12703 = icmp eq i32 4, %12702
  br i1 %12703, label %12704, label %12705

12704:                                            ; preds = %12697
  br label %12817

12705:                                            ; preds = %12697
  %12706 = load ptr, ptr %14, align 8, !tbaa !5
  %12707 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12706, i32 0, i32 3
  %12708 = load i8, ptr %12707, align 1, !tbaa !13
  %12709 = zext i8 %12708 to i32
  %12710 = and i32 %12709, 15
  %12711 = icmp eq i32 5, %12710
  br i1 %12711, label %12712, label %12713

12712:                                            ; preds = %12705
  br label %12815

12713:                                            ; preds = %12705
  %12714 = load ptr, ptr %14, align 8, !tbaa !5
  %12715 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12714, i32 0, i32 3
  %12716 = load i8, ptr %12715, align 1, !tbaa !13
  %12717 = zext i8 %12716 to i32
  %12718 = and i32 %12717, 15
  %12719 = icmp eq i32 6, %12718
  br i1 %12719, label %12720, label %12721

12720:                                            ; preds = %12713
  br label %12813

12721:                                            ; preds = %12713
  %12722 = load ptr, ptr %14, align 8, !tbaa !5
  %12723 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12722, i32 0, i32 3
  %12724 = load i8, ptr %12723, align 1, !tbaa !13
  %12725 = zext i8 %12724 to i32
  %12726 = and i32 %12725, 15
  %12727 = icmp eq i32 7, %12726
  br i1 %12727, label %12728, label %12729

12728:                                            ; preds = %12721
  br label %12811

12729:                                            ; preds = %12721
  %12730 = load ptr, ptr %14, align 8, !tbaa !5
  %12731 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12730, i32 0, i32 3
  %12732 = load i8, ptr %12731, align 1, !tbaa !13
  %12733 = zext i8 %12732 to i32
  %12734 = and i32 %12733, 15
  %12735 = icmp eq i32 8, %12734
  br i1 %12735, label %12736, label %12737

12736:                                            ; preds = %12729
  br label %12809

12737:                                            ; preds = %12729
  %12738 = load ptr, ptr %14, align 8, !tbaa !5
  %12739 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12738, i32 0, i32 3
  %12740 = load i8, ptr %12739, align 1, !tbaa !13
  %12741 = zext i8 %12740 to i32
  %12742 = and i32 %12741, 15
  %12743 = icmp eq i32 9, %12742
  br i1 %12743, label %12744, label %12745

12744:                                            ; preds = %12737
  br label %12807

12745:                                            ; preds = %12737
  %12746 = load ptr, ptr %14, align 8, !tbaa !5
  %12747 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12746, i32 0, i32 3
  %12748 = load i8, ptr %12747, align 1, !tbaa !13
  %12749 = zext i8 %12748 to i32
  %12750 = and i32 %12749, 15
  %12751 = icmp eq i32 10, %12750
  br i1 %12751, label %12752, label %12753

12752:                                            ; preds = %12745
  br label %12805

12753:                                            ; preds = %12745
  %12754 = load ptr, ptr %14, align 8, !tbaa !5
  %12755 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12754, i32 0, i32 3
  %12756 = load i8, ptr %12755, align 1, !tbaa !13
  %12757 = zext i8 %12756 to i32
  %12758 = and i32 %12757, 15
  %12759 = icmp eq i32 11, %12758
  br i1 %12759, label %12760, label %12761

12760:                                            ; preds = %12753
  br label %12803

12761:                                            ; preds = %12753
  %12762 = load ptr, ptr %14, align 8, !tbaa !5
  %12763 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12762, i32 0, i32 3
  %12764 = load i8, ptr %12763, align 1, !tbaa !13
  %12765 = zext i8 %12764 to i32
  %12766 = and i32 %12765, 15
  %12767 = icmp eq i32 12, %12766
  br i1 %12767, label %12768, label %12769

12768:                                            ; preds = %12761
  br label %12801

12769:                                            ; preds = %12761
  %12770 = load ptr, ptr %14, align 8, !tbaa !5
  %12771 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12770, i32 0, i32 3
  %12772 = load i8, ptr %12771, align 1, !tbaa !13
  %12773 = zext i8 %12772 to i32
  %12774 = and i32 %12773, 15
  %12775 = icmp eq i32 13, %12774
  br i1 %12775, label %12776, label %12777

12776:                                            ; preds = %12769
  br label %12799

12777:                                            ; preds = %12769
  %12778 = load ptr, ptr %14, align 8, !tbaa !5
  %12779 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12778, i32 0, i32 3
  %12780 = load i8, ptr %12779, align 1, !tbaa !13
  %12781 = zext i8 %12780 to i32
  %12782 = and i32 %12781, 15
  %12783 = icmp eq i32 14, %12782
  br i1 %12783, label %12784, label %12785

12784:                                            ; preds = %12777
  br label %12797

12785:                                            ; preds = %12777
  %12786 = load ptr, ptr %14, align 8, !tbaa !5
  %12787 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12786, i32 0, i32 3
  %12788 = load i8, ptr %12787, align 1, !tbaa !13
  %12789 = zext i8 %12788 to i32
  %12790 = and i32 %12789, 15
  %12791 = icmp eq i32 15, %12790
  br i1 %12791, label %12792, label %12793

12792:                                            ; preds = %12785
  br label %12795

12793:                                            ; preds = %12785
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 640, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

12794:                                            ; No predecessors!
  br label %12795

12795:                                            ; preds = %12794, %12792
  %12796 = phi i32 [ 15, %12792 ], [ 0, %12794 ]
  br label %12797

12797:                                            ; preds = %12795, %12784
  %12798 = phi i32 [ 14, %12784 ], [ %12796, %12795 ]
  br label %12799

12799:                                            ; preds = %12797, %12776
  %12800 = phi i32 [ 12, %12776 ], [ %12798, %12797 ]
  br label %12801

12801:                                            ; preds = %12799, %12768
  %12802 = phi i32 [ 12, %12768 ], [ %12800, %12799 ]
  br label %12803

12803:                                            ; preds = %12801, %12760
  %12804 = phi i32 [ 10, %12760 ], [ %12802, %12801 ]
  br label %12805

12805:                                            ; preds = %12803, %12752
  %12806 = phi i32 [ 10, %12752 ], [ %12804, %12803 ]
  br label %12807

12807:                                            ; preds = %12805, %12744
  %12808 = phi i32 [ 8, %12744 ], [ %12806, %12805 ]
  br label %12809

12809:                                            ; preds = %12807, %12736
  %12810 = phi i32 [ 8, %12736 ], [ %12808, %12807 ]
  br label %12811

12811:                                            ; preds = %12809, %12728
  %12812 = phi i32 [ 6, %12728 ], [ %12810, %12809 ]
  br label %12813

12813:                                            ; preds = %12811, %12720
  %12814 = phi i32 [ 6, %12720 ], [ %12812, %12811 ]
  br label %12815

12815:                                            ; preds = %12813, %12712
  %12816 = phi i32 [ 5, %12712 ], [ %12814, %12813 ]
  br label %12817

12817:                                            ; preds = %12815, %12704
  %12818 = phi i32 [ 4, %12704 ], [ %12816, %12815 ]
  br label %12819

12819:                                            ; preds = %12817, %12696
  %12820 = phi i32 [ 3, %12696 ], [ %12818, %12817 ]
  br label %12821

12821:                                            ; preds = %12819, %12688
  %12822 = phi i32 [ 2, %12688 ], [ %12820, %12819 ]
  br label %12823

12823:                                            ; preds = %12821, %12680
  %12824 = phi i32 [ 1, %12680 ], [ %12822, %12821 ]
  br label %12825

12825:                                            ; preds = %12823, %12672
  %12826 = phi i32 [ 0, %12672 ], [ %12824, %12823 ]
  br label %12833

12827:                                            ; preds = %12658
  %12828 = load ptr, ptr %14, align 8, !tbaa !5
  %12829 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12828, i32 0, i32 3
  %12830 = load i8, ptr %12829, align 1, !tbaa !13
  %12831 = zext i8 %12830 to i32
  %12832 = ashr i32 %12831, 4
  br label %12833

12833:                                            ; preds = %12827, %12825
  %12834 = phi i32 [ %12826, %12825 ], [ %12832, %12827 ]
  %12835 = icmp eq i32 8, %12834
  br i1 %12835, label %12836, label %12837

12836:                                            ; preds = %12833
  br label %13744

12837:                                            ; preds = %12833
  %12838 = load ptr, ptr %14, align 8, !tbaa !5
  %12839 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12838, i32 0, i32 3
  %12840 = load i8, ptr %12839, align 1, !tbaa !13
  %12841 = zext i8 %12840 to i32
  %12842 = ashr i32 %12841, 4
  %12843 = icmp eq i32 0, %12842
  br i1 %12843, label %12844, label %13006

12844:                                            ; preds = %12837
  %12845 = load ptr, ptr %14, align 8, !tbaa !5
  %12846 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12845, i32 0, i32 3
  %12847 = load i8, ptr %12846, align 1, !tbaa !13
  %12848 = zext i8 %12847 to i32
  %12849 = and i32 %12848, 15
  %12850 = icmp eq i32 0, %12849
  br i1 %12850, label %12851, label %12852

12851:                                            ; preds = %12844
  br label %13004

12852:                                            ; preds = %12844
  %12853 = load ptr, ptr %14, align 8, !tbaa !5
  %12854 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12853, i32 0, i32 3
  %12855 = load i8, ptr %12854, align 1, !tbaa !13
  %12856 = zext i8 %12855 to i32
  %12857 = and i32 %12856, 15
  %12858 = icmp eq i32 1, %12857
  br i1 %12858, label %12859, label %12860

12859:                                            ; preds = %12852
  br label %13002

12860:                                            ; preds = %12852
  %12861 = load ptr, ptr %14, align 8, !tbaa !5
  %12862 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12861, i32 0, i32 3
  %12863 = load i8, ptr %12862, align 1, !tbaa !13
  %12864 = zext i8 %12863 to i32
  %12865 = and i32 %12864, 15
  %12866 = icmp eq i32 2, %12865
  br i1 %12866, label %12867, label %12868

12867:                                            ; preds = %12860
  br label %13000

12868:                                            ; preds = %12860
  %12869 = load ptr, ptr %14, align 8, !tbaa !5
  %12870 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12869, i32 0, i32 3
  %12871 = load i8, ptr %12870, align 1, !tbaa !13
  %12872 = zext i8 %12871 to i32
  %12873 = and i32 %12872, 15
  %12874 = icmp eq i32 3, %12873
  br i1 %12874, label %12875, label %12876

12875:                                            ; preds = %12868
  br label %12998

12876:                                            ; preds = %12868
  %12877 = load ptr, ptr %14, align 8, !tbaa !5
  %12878 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12877, i32 0, i32 3
  %12879 = load i8, ptr %12878, align 1, !tbaa !13
  %12880 = zext i8 %12879 to i32
  %12881 = and i32 %12880, 15
  %12882 = icmp eq i32 4, %12881
  br i1 %12882, label %12883, label %12884

12883:                                            ; preds = %12876
  br label %12996

12884:                                            ; preds = %12876
  %12885 = load ptr, ptr %14, align 8, !tbaa !5
  %12886 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12885, i32 0, i32 3
  %12887 = load i8, ptr %12886, align 1, !tbaa !13
  %12888 = zext i8 %12887 to i32
  %12889 = and i32 %12888, 15
  %12890 = icmp eq i32 5, %12889
  br i1 %12890, label %12891, label %12892

12891:                                            ; preds = %12884
  br label %12994

12892:                                            ; preds = %12884
  %12893 = load ptr, ptr %14, align 8, !tbaa !5
  %12894 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12893, i32 0, i32 3
  %12895 = load i8, ptr %12894, align 1, !tbaa !13
  %12896 = zext i8 %12895 to i32
  %12897 = and i32 %12896, 15
  %12898 = icmp eq i32 6, %12897
  br i1 %12898, label %12899, label %12900

12899:                                            ; preds = %12892
  br label %12992

12900:                                            ; preds = %12892
  %12901 = load ptr, ptr %14, align 8, !tbaa !5
  %12902 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12901, i32 0, i32 3
  %12903 = load i8, ptr %12902, align 1, !tbaa !13
  %12904 = zext i8 %12903 to i32
  %12905 = and i32 %12904, 15
  %12906 = icmp eq i32 7, %12905
  br i1 %12906, label %12907, label %12908

12907:                                            ; preds = %12900
  br label %12990

12908:                                            ; preds = %12900
  %12909 = load ptr, ptr %14, align 8, !tbaa !5
  %12910 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12909, i32 0, i32 3
  %12911 = load i8, ptr %12910, align 1, !tbaa !13
  %12912 = zext i8 %12911 to i32
  %12913 = and i32 %12912, 15
  %12914 = icmp eq i32 8, %12913
  br i1 %12914, label %12915, label %12916

12915:                                            ; preds = %12908
  br label %12988

12916:                                            ; preds = %12908
  %12917 = load ptr, ptr %14, align 8, !tbaa !5
  %12918 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12917, i32 0, i32 3
  %12919 = load i8, ptr %12918, align 1, !tbaa !13
  %12920 = zext i8 %12919 to i32
  %12921 = and i32 %12920, 15
  %12922 = icmp eq i32 9, %12921
  br i1 %12922, label %12923, label %12924

12923:                                            ; preds = %12916
  br label %12986

12924:                                            ; preds = %12916
  %12925 = load ptr, ptr %14, align 8, !tbaa !5
  %12926 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12925, i32 0, i32 3
  %12927 = load i8, ptr %12926, align 1, !tbaa !13
  %12928 = zext i8 %12927 to i32
  %12929 = and i32 %12928, 15
  %12930 = icmp eq i32 10, %12929
  br i1 %12930, label %12931, label %12932

12931:                                            ; preds = %12924
  br label %12984

12932:                                            ; preds = %12924
  %12933 = load ptr, ptr %14, align 8, !tbaa !5
  %12934 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12933, i32 0, i32 3
  %12935 = load i8, ptr %12934, align 1, !tbaa !13
  %12936 = zext i8 %12935 to i32
  %12937 = and i32 %12936, 15
  %12938 = icmp eq i32 11, %12937
  br i1 %12938, label %12939, label %12940

12939:                                            ; preds = %12932
  br label %12982

12940:                                            ; preds = %12932
  %12941 = load ptr, ptr %14, align 8, !tbaa !5
  %12942 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12941, i32 0, i32 3
  %12943 = load i8, ptr %12942, align 1, !tbaa !13
  %12944 = zext i8 %12943 to i32
  %12945 = and i32 %12944, 15
  %12946 = icmp eq i32 12, %12945
  br i1 %12946, label %12947, label %12948

12947:                                            ; preds = %12940
  br label %12980

12948:                                            ; preds = %12940
  %12949 = load ptr, ptr %14, align 8, !tbaa !5
  %12950 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12949, i32 0, i32 3
  %12951 = load i8, ptr %12950, align 1, !tbaa !13
  %12952 = zext i8 %12951 to i32
  %12953 = and i32 %12952, 15
  %12954 = icmp eq i32 13, %12953
  br i1 %12954, label %12955, label %12956

12955:                                            ; preds = %12948
  br label %12978

12956:                                            ; preds = %12948
  %12957 = load ptr, ptr %14, align 8, !tbaa !5
  %12958 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12957, i32 0, i32 3
  %12959 = load i8, ptr %12958, align 1, !tbaa !13
  %12960 = zext i8 %12959 to i32
  %12961 = and i32 %12960, 15
  %12962 = icmp eq i32 14, %12961
  br i1 %12962, label %12963, label %12964

12963:                                            ; preds = %12956
  br label %12976

12964:                                            ; preds = %12956
  %12965 = load ptr, ptr %14, align 8, !tbaa !5
  %12966 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %12965, i32 0, i32 3
  %12967 = load i8, ptr %12966, align 1, !tbaa !13
  %12968 = zext i8 %12967 to i32
  %12969 = and i32 %12968, 15
  %12970 = icmp eq i32 15, %12969
  br i1 %12970, label %12971, label %12972

12971:                                            ; preds = %12964
  br label %12974

12972:                                            ; preds = %12964
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 640, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

12973:                                            ; No predecessors!
  br label %12974

12974:                                            ; preds = %12973, %12971
  %12975 = phi i32 [ 15, %12971 ], [ 0, %12973 ]
  br label %12976

12976:                                            ; preds = %12974, %12963
  %12977 = phi i32 [ 14, %12963 ], [ %12975, %12974 ]
  br label %12978

12978:                                            ; preds = %12976, %12955
  %12979 = phi i32 [ 12, %12955 ], [ %12977, %12976 ]
  br label %12980

12980:                                            ; preds = %12978, %12947
  %12981 = phi i32 [ 12, %12947 ], [ %12979, %12978 ]
  br label %12982

12982:                                            ; preds = %12980, %12939
  %12983 = phi i32 [ 10, %12939 ], [ %12981, %12980 ]
  br label %12984

12984:                                            ; preds = %12982, %12931
  %12985 = phi i32 [ 10, %12931 ], [ %12983, %12982 ]
  br label %12986

12986:                                            ; preds = %12984, %12923
  %12987 = phi i32 [ 8, %12923 ], [ %12985, %12984 ]
  br label %12988

12988:                                            ; preds = %12986, %12915
  %12989 = phi i32 [ 8, %12915 ], [ %12987, %12986 ]
  br label %12990

12990:                                            ; preds = %12988, %12907
  %12991 = phi i32 [ 6, %12907 ], [ %12989, %12988 ]
  br label %12992

12992:                                            ; preds = %12990, %12899
  %12993 = phi i32 [ 6, %12899 ], [ %12991, %12990 ]
  br label %12994

12994:                                            ; preds = %12992, %12891
  %12995 = phi i32 [ 5, %12891 ], [ %12993, %12992 ]
  br label %12996

12996:                                            ; preds = %12994, %12883
  %12997 = phi i32 [ 4, %12883 ], [ %12995, %12994 ]
  br label %12998

12998:                                            ; preds = %12996, %12875
  %12999 = phi i32 [ 3, %12875 ], [ %12997, %12996 ]
  br label %13000

13000:                                            ; preds = %12998, %12867
  %13001 = phi i32 [ 2, %12867 ], [ %12999, %12998 ]
  br label %13002

13002:                                            ; preds = %13000, %12859
  %13003 = phi i32 [ 1, %12859 ], [ %13001, %13000 ]
  br label %13004

13004:                                            ; preds = %13002, %12851
  %13005 = phi i32 [ 0, %12851 ], [ %13003, %13002 ]
  br label %13012

13006:                                            ; preds = %12837
  %13007 = load ptr, ptr %14, align 8, !tbaa !5
  %13008 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13007, i32 0, i32 3
  %13009 = load i8, ptr %13008, align 1, !tbaa !13
  %13010 = zext i8 %13009 to i32
  %13011 = ashr i32 %13010, 4
  br label %13012

13012:                                            ; preds = %13006, %13004
  %13013 = phi i32 [ %13005, %13004 ], [ %13011, %13006 ]
  %13014 = icmp eq i32 9, %13013
  br i1 %13014, label %13015, label %13016

13015:                                            ; preds = %13012
  br label %13742

13016:                                            ; preds = %13012
  %13017 = load ptr, ptr %14, align 8, !tbaa !5
  %13018 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13017, i32 0, i32 3
  %13019 = load i8, ptr %13018, align 1, !tbaa !13
  %13020 = zext i8 %13019 to i32
  %13021 = ashr i32 %13020, 4
  %13022 = icmp eq i32 0, %13021
  br i1 %13022, label %13023, label %13185

13023:                                            ; preds = %13016
  %13024 = load ptr, ptr %14, align 8, !tbaa !5
  %13025 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13024, i32 0, i32 3
  %13026 = load i8, ptr %13025, align 1, !tbaa !13
  %13027 = zext i8 %13026 to i32
  %13028 = and i32 %13027, 15
  %13029 = icmp eq i32 0, %13028
  br i1 %13029, label %13030, label %13031

13030:                                            ; preds = %13023
  br label %13183

13031:                                            ; preds = %13023
  %13032 = load ptr, ptr %14, align 8, !tbaa !5
  %13033 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13032, i32 0, i32 3
  %13034 = load i8, ptr %13033, align 1, !tbaa !13
  %13035 = zext i8 %13034 to i32
  %13036 = and i32 %13035, 15
  %13037 = icmp eq i32 1, %13036
  br i1 %13037, label %13038, label %13039

13038:                                            ; preds = %13031
  br label %13181

13039:                                            ; preds = %13031
  %13040 = load ptr, ptr %14, align 8, !tbaa !5
  %13041 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13040, i32 0, i32 3
  %13042 = load i8, ptr %13041, align 1, !tbaa !13
  %13043 = zext i8 %13042 to i32
  %13044 = and i32 %13043, 15
  %13045 = icmp eq i32 2, %13044
  br i1 %13045, label %13046, label %13047

13046:                                            ; preds = %13039
  br label %13179

13047:                                            ; preds = %13039
  %13048 = load ptr, ptr %14, align 8, !tbaa !5
  %13049 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13048, i32 0, i32 3
  %13050 = load i8, ptr %13049, align 1, !tbaa !13
  %13051 = zext i8 %13050 to i32
  %13052 = and i32 %13051, 15
  %13053 = icmp eq i32 3, %13052
  br i1 %13053, label %13054, label %13055

13054:                                            ; preds = %13047
  br label %13177

13055:                                            ; preds = %13047
  %13056 = load ptr, ptr %14, align 8, !tbaa !5
  %13057 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13056, i32 0, i32 3
  %13058 = load i8, ptr %13057, align 1, !tbaa !13
  %13059 = zext i8 %13058 to i32
  %13060 = and i32 %13059, 15
  %13061 = icmp eq i32 4, %13060
  br i1 %13061, label %13062, label %13063

13062:                                            ; preds = %13055
  br label %13175

13063:                                            ; preds = %13055
  %13064 = load ptr, ptr %14, align 8, !tbaa !5
  %13065 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13064, i32 0, i32 3
  %13066 = load i8, ptr %13065, align 1, !tbaa !13
  %13067 = zext i8 %13066 to i32
  %13068 = and i32 %13067, 15
  %13069 = icmp eq i32 5, %13068
  br i1 %13069, label %13070, label %13071

13070:                                            ; preds = %13063
  br label %13173

13071:                                            ; preds = %13063
  %13072 = load ptr, ptr %14, align 8, !tbaa !5
  %13073 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13072, i32 0, i32 3
  %13074 = load i8, ptr %13073, align 1, !tbaa !13
  %13075 = zext i8 %13074 to i32
  %13076 = and i32 %13075, 15
  %13077 = icmp eq i32 6, %13076
  br i1 %13077, label %13078, label %13079

13078:                                            ; preds = %13071
  br label %13171

13079:                                            ; preds = %13071
  %13080 = load ptr, ptr %14, align 8, !tbaa !5
  %13081 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13080, i32 0, i32 3
  %13082 = load i8, ptr %13081, align 1, !tbaa !13
  %13083 = zext i8 %13082 to i32
  %13084 = and i32 %13083, 15
  %13085 = icmp eq i32 7, %13084
  br i1 %13085, label %13086, label %13087

13086:                                            ; preds = %13079
  br label %13169

13087:                                            ; preds = %13079
  %13088 = load ptr, ptr %14, align 8, !tbaa !5
  %13089 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13088, i32 0, i32 3
  %13090 = load i8, ptr %13089, align 1, !tbaa !13
  %13091 = zext i8 %13090 to i32
  %13092 = and i32 %13091, 15
  %13093 = icmp eq i32 8, %13092
  br i1 %13093, label %13094, label %13095

13094:                                            ; preds = %13087
  br label %13167

13095:                                            ; preds = %13087
  %13096 = load ptr, ptr %14, align 8, !tbaa !5
  %13097 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13096, i32 0, i32 3
  %13098 = load i8, ptr %13097, align 1, !tbaa !13
  %13099 = zext i8 %13098 to i32
  %13100 = and i32 %13099, 15
  %13101 = icmp eq i32 9, %13100
  br i1 %13101, label %13102, label %13103

13102:                                            ; preds = %13095
  br label %13165

13103:                                            ; preds = %13095
  %13104 = load ptr, ptr %14, align 8, !tbaa !5
  %13105 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13104, i32 0, i32 3
  %13106 = load i8, ptr %13105, align 1, !tbaa !13
  %13107 = zext i8 %13106 to i32
  %13108 = and i32 %13107, 15
  %13109 = icmp eq i32 10, %13108
  br i1 %13109, label %13110, label %13111

13110:                                            ; preds = %13103
  br label %13163

13111:                                            ; preds = %13103
  %13112 = load ptr, ptr %14, align 8, !tbaa !5
  %13113 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13112, i32 0, i32 3
  %13114 = load i8, ptr %13113, align 1, !tbaa !13
  %13115 = zext i8 %13114 to i32
  %13116 = and i32 %13115, 15
  %13117 = icmp eq i32 11, %13116
  br i1 %13117, label %13118, label %13119

13118:                                            ; preds = %13111
  br label %13161

13119:                                            ; preds = %13111
  %13120 = load ptr, ptr %14, align 8, !tbaa !5
  %13121 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13120, i32 0, i32 3
  %13122 = load i8, ptr %13121, align 1, !tbaa !13
  %13123 = zext i8 %13122 to i32
  %13124 = and i32 %13123, 15
  %13125 = icmp eq i32 12, %13124
  br i1 %13125, label %13126, label %13127

13126:                                            ; preds = %13119
  br label %13159

13127:                                            ; preds = %13119
  %13128 = load ptr, ptr %14, align 8, !tbaa !5
  %13129 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13128, i32 0, i32 3
  %13130 = load i8, ptr %13129, align 1, !tbaa !13
  %13131 = zext i8 %13130 to i32
  %13132 = and i32 %13131, 15
  %13133 = icmp eq i32 13, %13132
  br i1 %13133, label %13134, label %13135

13134:                                            ; preds = %13127
  br label %13157

13135:                                            ; preds = %13127
  %13136 = load ptr, ptr %14, align 8, !tbaa !5
  %13137 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13136, i32 0, i32 3
  %13138 = load i8, ptr %13137, align 1, !tbaa !13
  %13139 = zext i8 %13138 to i32
  %13140 = and i32 %13139, 15
  %13141 = icmp eq i32 14, %13140
  br i1 %13141, label %13142, label %13143

13142:                                            ; preds = %13135
  br label %13155

13143:                                            ; preds = %13135
  %13144 = load ptr, ptr %14, align 8, !tbaa !5
  %13145 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13144, i32 0, i32 3
  %13146 = load i8, ptr %13145, align 1, !tbaa !13
  %13147 = zext i8 %13146 to i32
  %13148 = and i32 %13147, 15
  %13149 = icmp eq i32 15, %13148
  br i1 %13149, label %13150, label %13151

13150:                                            ; preds = %13143
  br label %13153

13151:                                            ; preds = %13143
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 640, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

13152:                                            ; No predecessors!
  br label %13153

13153:                                            ; preds = %13152, %13150
  %13154 = phi i32 [ 15, %13150 ], [ 0, %13152 ]
  br label %13155

13155:                                            ; preds = %13153, %13142
  %13156 = phi i32 [ 14, %13142 ], [ %13154, %13153 ]
  br label %13157

13157:                                            ; preds = %13155, %13134
  %13158 = phi i32 [ 12, %13134 ], [ %13156, %13155 ]
  br label %13159

13159:                                            ; preds = %13157, %13126
  %13160 = phi i32 [ 12, %13126 ], [ %13158, %13157 ]
  br label %13161

13161:                                            ; preds = %13159, %13118
  %13162 = phi i32 [ 10, %13118 ], [ %13160, %13159 ]
  br label %13163

13163:                                            ; preds = %13161, %13110
  %13164 = phi i32 [ 10, %13110 ], [ %13162, %13161 ]
  br label %13165

13165:                                            ; preds = %13163, %13102
  %13166 = phi i32 [ 8, %13102 ], [ %13164, %13163 ]
  br label %13167

13167:                                            ; preds = %13165, %13094
  %13168 = phi i32 [ 8, %13094 ], [ %13166, %13165 ]
  br label %13169

13169:                                            ; preds = %13167, %13086
  %13170 = phi i32 [ 6, %13086 ], [ %13168, %13167 ]
  br label %13171

13171:                                            ; preds = %13169, %13078
  %13172 = phi i32 [ 6, %13078 ], [ %13170, %13169 ]
  br label %13173

13173:                                            ; preds = %13171, %13070
  %13174 = phi i32 [ 5, %13070 ], [ %13172, %13171 ]
  br label %13175

13175:                                            ; preds = %13173, %13062
  %13176 = phi i32 [ 4, %13062 ], [ %13174, %13173 ]
  br label %13177

13177:                                            ; preds = %13175, %13054
  %13178 = phi i32 [ 3, %13054 ], [ %13176, %13175 ]
  br label %13179

13179:                                            ; preds = %13177, %13046
  %13180 = phi i32 [ 2, %13046 ], [ %13178, %13177 ]
  br label %13181

13181:                                            ; preds = %13179, %13038
  %13182 = phi i32 [ 1, %13038 ], [ %13180, %13179 ]
  br label %13183

13183:                                            ; preds = %13181, %13030
  %13184 = phi i32 [ 0, %13030 ], [ %13182, %13181 ]
  br label %13191

13185:                                            ; preds = %13016
  %13186 = load ptr, ptr %14, align 8, !tbaa !5
  %13187 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13186, i32 0, i32 3
  %13188 = load i8, ptr %13187, align 1, !tbaa !13
  %13189 = zext i8 %13188 to i32
  %13190 = ashr i32 %13189, 4
  br label %13191

13191:                                            ; preds = %13185, %13183
  %13192 = phi i32 [ %13184, %13183 ], [ %13190, %13185 ]
  %13193 = icmp eq i32 10, %13192
  br i1 %13193, label %13194, label %13195

13194:                                            ; preds = %13191
  br label %13740

13195:                                            ; preds = %13191
  %13196 = load ptr, ptr %14, align 8, !tbaa !5
  %13197 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13196, i32 0, i32 3
  %13198 = load i8, ptr %13197, align 1, !tbaa !13
  %13199 = zext i8 %13198 to i32
  %13200 = ashr i32 %13199, 4
  %13201 = icmp eq i32 0, %13200
  br i1 %13201, label %13202, label %13364

13202:                                            ; preds = %13195
  %13203 = load ptr, ptr %14, align 8, !tbaa !5
  %13204 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13203, i32 0, i32 3
  %13205 = load i8, ptr %13204, align 1, !tbaa !13
  %13206 = zext i8 %13205 to i32
  %13207 = and i32 %13206, 15
  %13208 = icmp eq i32 0, %13207
  br i1 %13208, label %13209, label %13210

13209:                                            ; preds = %13202
  br label %13362

13210:                                            ; preds = %13202
  %13211 = load ptr, ptr %14, align 8, !tbaa !5
  %13212 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13211, i32 0, i32 3
  %13213 = load i8, ptr %13212, align 1, !tbaa !13
  %13214 = zext i8 %13213 to i32
  %13215 = and i32 %13214, 15
  %13216 = icmp eq i32 1, %13215
  br i1 %13216, label %13217, label %13218

13217:                                            ; preds = %13210
  br label %13360

13218:                                            ; preds = %13210
  %13219 = load ptr, ptr %14, align 8, !tbaa !5
  %13220 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13219, i32 0, i32 3
  %13221 = load i8, ptr %13220, align 1, !tbaa !13
  %13222 = zext i8 %13221 to i32
  %13223 = and i32 %13222, 15
  %13224 = icmp eq i32 2, %13223
  br i1 %13224, label %13225, label %13226

13225:                                            ; preds = %13218
  br label %13358

13226:                                            ; preds = %13218
  %13227 = load ptr, ptr %14, align 8, !tbaa !5
  %13228 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13227, i32 0, i32 3
  %13229 = load i8, ptr %13228, align 1, !tbaa !13
  %13230 = zext i8 %13229 to i32
  %13231 = and i32 %13230, 15
  %13232 = icmp eq i32 3, %13231
  br i1 %13232, label %13233, label %13234

13233:                                            ; preds = %13226
  br label %13356

13234:                                            ; preds = %13226
  %13235 = load ptr, ptr %14, align 8, !tbaa !5
  %13236 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13235, i32 0, i32 3
  %13237 = load i8, ptr %13236, align 1, !tbaa !13
  %13238 = zext i8 %13237 to i32
  %13239 = and i32 %13238, 15
  %13240 = icmp eq i32 4, %13239
  br i1 %13240, label %13241, label %13242

13241:                                            ; preds = %13234
  br label %13354

13242:                                            ; preds = %13234
  %13243 = load ptr, ptr %14, align 8, !tbaa !5
  %13244 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13243, i32 0, i32 3
  %13245 = load i8, ptr %13244, align 1, !tbaa !13
  %13246 = zext i8 %13245 to i32
  %13247 = and i32 %13246, 15
  %13248 = icmp eq i32 5, %13247
  br i1 %13248, label %13249, label %13250

13249:                                            ; preds = %13242
  br label %13352

13250:                                            ; preds = %13242
  %13251 = load ptr, ptr %14, align 8, !tbaa !5
  %13252 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13251, i32 0, i32 3
  %13253 = load i8, ptr %13252, align 1, !tbaa !13
  %13254 = zext i8 %13253 to i32
  %13255 = and i32 %13254, 15
  %13256 = icmp eq i32 6, %13255
  br i1 %13256, label %13257, label %13258

13257:                                            ; preds = %13250
  br label %13350

13258:                                            ; preds = %13250
  %13259 = load ptr, ptr %14, align 8, !tbaa !5
  %13260 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13259, i32 0, i32 3
  %13261 = load i8, ptr %13260, align 1, !tbaa !13
  %13262 = zext i8 %13261 to i32
  %13263 = and i32 %13262, 15
  %13264 = icmp eq i32 7, %13263
  br i1 %13264, label %13265, label %13266

13265:                                            ; preds = %13258
  br label %13348

13266:                                            ; preds = %13258
  %13267 = load ptr, ptr %14, align 8, !tbaa !5
  %13268 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13267, i32 0, i32 3
  %13269 = load i8, ptr %13268, align 1, !tbaa !13
  %13270 = zext i8 %13269 to i32
  %13271 = and i32 %13270, 15
  %13272 = icmp eq i32 8, %13271
  br i1 %13272, label %13273, label %13274

13273:                                            ; preds = %13266
  br label %13346

13274:                                            ; preds = %13266
  %13275 = load ptr, ptr %14, align 8, !tbaa !5
  %13276 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13275, i32 0, i32 3
  %13277 = load i8, ptr %13276, align 1, !tbaa !13
  %13278 = zext i8 %13277 to i32
  %13279 = and i32 %13278, 15
  %13280 = icmp eq i32 9, %13279
  br i1 %13280, label %13281, label %13282

13281:                                            ; preds = %13274
  br label %13344

13282:                                            ; preds = %13274
  %13283 = load ptr, ptr %14, align 8, !tbaa !5
  %13284 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13283, i32 0, i32 3
  %13285 = load i8, ptr %13284, align 1, !tbaa !13
  %13286 = zext i8 %13285 to i32
  %13287 = and i32 %13286, 15
  %13288 = icmp eq i32 10, %13287
  br i1 %13288, label %13289, label %13290

13289:                                            ; preds = %13282
  br label %13342

13290:                                            ; preds = %13282
  %13291 = load ptr, ptr %14, align 8, !tbaa !5
  %13292 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13291, i32 0, i32 3
  %13293 = load i8, ptr %13292, align 1, !tbaa !13
  %13294 = zext i8 %13293 to i32
  %13295 = and i32 %13294, 15
  %13296 = icmp eq i32 11, %13295
  br i1 %13296, label %13297, label %13298

13297:                                            ; preds = %13290
  br label %13340

13298:                                            ; preds = %13290
  %13299 = load ptr, ptr %14, align 8, !tbaa !5
  %13300 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13299, i32 0, i32 3
  %13301 = load i8, ptr %13300, align 1, !tbaa !13
  %13302 = zext i8 %13301 to i32
  %13303 = and i32 %13302, 15
  %13304 = icmp eq i32 12, %13303
  br i1 %13304, label %13305, label %13306

13305:                                            ; preds = %13298
  br label %13338

13306:                                            ; preds = %13298
  %13307 = load ptr, ptr %14, align 8, !tbaa !5
  %13308 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13307, i32 0, i32 3
  %13309 = load i8, ptr %13308, align 1, !tbaa !13
  %13310 = zext i8 %13309 to i32
  %13311 = and i32 %13310, 15
  %13312 = icmp eq i32 13, %13311
  br i1 %13312, label %13313, label %13314

13313:                                            ; preds = %13306
  br label %13336

13314:                                            ; preds = %13306
  %13315 = load ptr, ptr %14, align 8, !tbaa !5
  %13316 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13315, i32 0, i32 3
  %13317 = load i8, ptr %13316, align 1, !tbaa !13
  %13318 = zext i8 %13317 to i32
  %13319 = and i32 %13318, 15
  %13320 = icmp eq i32 14, %13319
  br i1 %13320, label %13321, label %13322

13321:                                            ; preds = %13314
  br label %13334

13322:                                            ; preds = %13314
  %13323 = load ptr, ptr %14, align 8, !tbaa !5
  %13324 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13323, i32 0, i32 3
  %13325 = load i8, ptr %13324, align 1, !tbaa !13
  %13326 = zext i8 %13325 to i32
  %13327 = and i32 %13326, 15
  %13328 = icmp eq i32 15, %13327
  br i1 %13328, label %13329, label %13330

13329:                                            ; preds = %13322
  br label %13332

13330:                                            ; preds = %13322
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 640, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

13331:                                            ; No predecessors!
  br label %13332

13332:                                            ; preds = %13331, %13329
  %13333 = phi i32 [ 15, %13329 ], [ 0, %13331 ]
  br label %13334

13334:                                            ; preds = %13332, %13321
  %13335 = phi i32 [ 14, %13321 ], [ %13333, %13332 ]
  br label %13336

13336:                                            ; preds = %13334, %13313
  %13337 = phi i32 [ 12, %13313 ], [ %13335, %13334 ]
  br label %13338

13338:                                            ; preds = %13336, %13305
  %13339 = phi i32 [ 12, %13305 ], [ %13337, %13336 ]
  br label %13340

13340:                                            ; preds = %13338, %13297
  %13341 = phi i32 [ 10, %13297 ], [ %13339, %13338 ]
  br label %13342

13342:                                            ; preds = %13340, %13289
  %13343 = phi i32 [ 10, %13289 ], [ %13341, %13340 ]
  br label %13344

13344:                                            ; preds = %13342, %13281
  %13345 = phi i32 [ 8, %13281 ], [ %13343, %13342 ]
  br label %13346

13346:                                            ; preds = %13344, %13273
  %13347 = phi i32 [ 8, %13273 ], [ %13345, %13344 ]
  br label %13348

13348:                                            ; preds = %13346, %13265
  %13349 = phi i32 [ 6, %13265 ], [ %13347, %13346 ]
  br label %13350

13350:                                            ; preds = %13348, %13257
  %13351 = phi i32 [ 6, %13257 ], [ %13349, %13348 ]
  br label %13352

13352:                                            ; preds = %13350, %13249
  %13353 = phi i32 [ 5, %13249 ], [ %13351, %13350 ]
  br label %13354

13354:                                            ; preds = %13352, %13241
  %13355 = phi i32 [ 4, %13241 ], [ %13353, %13352 ]
  br label %13356

13356:                                            ; preds = %13354, %13233
  %13357 = phi i32 [ 3, %13233 ], [ %13355, %13354 ]
  br label %13358

13358:                                            ; preds = %13356, %13225
  %13359 = phi i32 [ 2, %13225 ], [ %13357, %13356 ]
  br label %13360

13360:                                            ; preds = %13358, %13217
  %13361 = phi i32 [ 1, %13217 ], [ %13359, %13358 ]
  br label %13362

13362:                                            ; preds = %13360, %13209
  %13363 = phi i32 [ 0, %13209 ], [ %13361, %13360 ]
  br label %13370

13364:                                            ; preds = %13195
  %13365 = load ptr, ptr %14, align 8, !tbaa !5
  %13366 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13365, i32 0, i32 3
  %13367 = load i8, ptr %13366, align 1, !tbaa !13
  %13368 = zext i8 %13367 to i32
  %13369 = ashr i32 %13368, 4
  br label %13370

13370:                                            ; preds = %13364, %13362
  %13371 = phi i32 [ %13363, %13362 ], [ %13369, %13364 ]
  %13372 = icmp eq i32 11, %13371
  br i1 %13372, label %13373, label %13374

13373:                                            ; preds = %13370
  br label %13738

13374:                                            ; preds = %13370
  %13375 = load ptr, ptr %14, align 8, !tbaa !5
  %13376 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13375, i32 0, i32 3
  %13377 = load i8, ptr %13376, align 1, !tbaa !13
  %13378 = zext i8 %13377 to i32
  %13379 = ashr i32 %13378, 4
  %13380 = icmp eq i32 0, %13379
  br i1 %13380, label %13381, label %13543

13381:                                            ; preds = %13374
  %13382 = load ptr, ptr %14, align 8, !tbaa !5
  %13383 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13382, i32 0, i32 3
  %13384 = load i8, ptr %13383, align 1, !tbaa !13
  %13385 = zext i8 %13384 to i32
  %13386 = and i32 %13385, 15
  %13387 = icmp eq i32 0, %13386
  br i1 %13387, label %13388, label %13389

13388:                                            ; preds = %13381
  br label %13541

13389:                                            ; preds = %13381
  %13390 = load ptr, ptr %14, align 8, !tbaa !5
  %13391 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13390, i32 0, i32 3
  %13392 = load i8, ptr %13391, align 1, !tbaa !13
  %13393 = zext i8 %13392 to i32
  %13394 = and i32 %13393, 15
  %13395 = icmp eq i32 1, %13394
  br i1 %13395, label %13396, label %13397

13396:                                            ; preds = %13389
  br label %13539

13397:                                            ; preds = %13389
  %13398 = load ptr, ptr %14, align 8, !tbaa !5
  %13399 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13398, i32 0, i32 3
  %13400 = load i8, ptr %13399, align 1, !tbaa !13
  %13401 = zext i8 %13400 to i32
  %13402 = and i32 %13401, 15
  %13403 = icmp eq i32 2, %13402
  br i1 %13403, label %13404, label %13405

13404:                                            ; preds = %13397
  br label %13537

13405:                                            ; preds = %13397
  %13406 = load ptr, ptr %14, align 8, !tbaa !5
  %13407 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13406, i32 0, i32 3
  %13408 = load i8, ptr %13407, align 1, !tbaa !13
  %13409 = zext i8 %13408 to i32
  %13410 = and i32 %13409, 15
  %13411 = icmp eq i32 3, %13410
  br i1 %13411, label %13412, label %13413

13412:                                            ; preds = %13405
  br label %13535

13413:                                            ; preds = %13405
  %13414 = load ptr, ptr %14, align 8, !tbaa !5
  %13415 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13414, i32 0, i32 3
  %13416 = load i8, ptr %13415, align 1, !tbaa !13
  %13417 = zext i8 %13416 to i32
  %13418 = and i32 %13417, 15
  %13419 = icmp eq i32 4, %13418
  br i1 %13419, label %13420, label %13421

13420:                                            ; preds = %13413
  br label %13533

13421:                                            ; preds = %13413
  %13422 = load ptr, ptr %14, align 8, !tbaa !5
  %13423 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13422, i32 0, i32 3
  %13424 = load i8, ptr %13423, align 1, !tbaa !13
  %13425 = zext i8 %13424 to i32
  %13426 = and i32 %13425, 15
  %13427 = icmp eq i32 5, %13426
  br i1 %13427, label %13428, label %13429

13428:                                            ; preds = %13421
  br label %13531

13429:                                            ; preds = %13421
  %13430 = load ptr, ptr %14, align 8, !tbaa !5
  %13431 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13430, i32 0, i32 3
  %13432 = load i8, ptr %13431, align 1, !tbaa !13
  %13433 = zext i8 %13432 to i32
  %13434 = and i32 %13433, 15
  %13435 = icmp eq i32 6, %13434
  br i1 %13435, label %13436, label %13437

13436:                                            ; preds = %13429
  br label %13529

13437:                                            ; preds = %13429
  %13438 = load ptr, ptr %14, align 8, !tbaa !5
  %13439 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13438, i32 0, i32 3
  %13440 = load i8, ptr %13439, align 1, !tbaa !13
  %13441 = zext i8 %13440 to i32
  %13442 = and i32 %13441, 15
  %13443 = icmp eq i32 7, %13442
  br i1 %13443, label %13444, label %13445

13444:                                            ; preds = %13437
  br label %13527

13445:                                            ; preds = %13437
  %13446 = load ptr, ptr %14, align 8, !tbaa !5
  %13447 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13446, i32 0, i32 3
  %13448 = load i8, ptr %13447, align 1, !tbaa !13
  %13449 = zext i8 %13448 to i32
  %13450 = and i32 %13449, 15
  %13451 = icmp eq i32 8, %13450
  br i1 %13451, label %13452, label %13453

13452:                                            ; preds = %13445
  br label %13525

13453:                                            ; preds = %13445
  %13454 = load ptr, ptr %14, align 8, !tbaa !5
  %13455 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13454, i32 0, i32 3
  %13456 = load i8, ptr %13455, align 1, !tbaa !13
  %13457 = zext i8 %13456 to i32
  %13458 = and i32 %13457, 15
  %13459 = icmp eq i32 9, %13458
  br i1 %13459, label %13460, label %13461

13460:                                            ; preds = %13453
  br label %13523

13461:                                            ; preds = %13453
  %13462 = load ptr, ptr %14, align 8, !tbaa !5
  %13463 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13462, i32 0, i32 3
  %13464 = load i8, ptr %13463, align 1, !tbaa !13
  %13465 = zext i8 %13464 to i32
  %13466 = and i32 %13465, 15
  %13467 = icmp eq i32 10, %13466
  br i1 %13467, label %13468, label %13469

13468:                                            ; preds = %13461
  br label %13521

13469:                                            ; preds = %13461
  %13470 = load ptr, ptr %14, align 8, !tbaa !5
  %13471 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13470, i32 0, i32 3
  %13472 = load i8, ptr %13471, align 1, !tbaa !13
  %13473 = zext i8 %13472 to i32
  %13474 = and i32 %13473, 15
  %13475 = icmp eq i32 11, %13474
  br i1 %13475, label %13476, label %13477

13476:                                            ; preds = %13469
  br label %13519

13477:                                            ; preds = %13469
  %13478 = load ptr, ptr %14, align 8, !tbaa !5
  %13479 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13478, i32 0, i32 3
  %13480 = load i8, ptr %13479, align 1, !tbaa !13
  %13481 = zext i8 %13480 to i32
  %13482 = and i32 %13481, 15
  %13483 = icmp eq i32 12, %13482
  br i1 %13483, label %13484, label %13485

13484:                                            ; preds = %13477
  br label %13517

13485:                                            ; preds = %13477
  %13486 = load ptr, ptr %14, align 8, !tbaa !5
  %13487 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13486, i32 0, i32 3
  %13488 = load i8, ptr %13487, align 1, !tbaa !13
  %13489 = zext i8 %13488 to i32
  %13490 = and i32 %13489, 15
  %13491 = icmp eq i32 13, %13490
  br i1 %13491, label %13492, label %13493

13492:                                            ; preds = %13485
  br label %13515

13493:                                            ; preds = %13485
  %13494 = load ptr, ptr %14, align 8, !tbaa !5
  %13495 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13494, i32 0, i32 3
  %13496 = load i8, ptr %13495, align 1, !tbaa !13
  %13497 = zext i8 %13496 to i32
  %13498 = and i32 %13497, 15
  %13499 = icmp eq i32 14, %13498
  br i1 %13499, label %13500, label %13501

13500:                                            ; preds = %13493
  br label %13513

13501:                                            ; preds = %13493
  %13502 = load ptr, ptr %14, align 8, !tbaa !5
  %13503 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13502, i32 0, i32 3
  %13504 = load i8, ptr %13503, align 1, !tbaa !13
  %13505 = zext i8 %13504 to i32
  %13506 = and i32 %13505, 15
  %13507 = icmp eq i32 15, %13506
  br i1 %13507, label %13508, label %13509

13508:                                            ; preds = %13501
  br label %13511

13509:                                            ; preds = %13501
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 640, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

13510:                                            ; No predecessors!
  br label %13511

13511:                                            ; preds = %13510, %13508
  %13512 = phi i32 [ 15, %13508 ], [ 0, %13510 ]
  br label %13513

13513:                                            ; preds = %13511, %13500
  %13514 = phi i32 [ 14, %13500 ], [ %13512, %13511 ]
  br label %13515

13515:                                            ; preds = %13513, %13492
  %13516 = phi i32 [ 12, %13492 ], [ %13514, %13513 ]
  br label %13517

13517:                                            ; preds = %13515, %13484
  %13518 = phi i32 [ 12, %13484 ], [ %13516, %13515 ]
  br label %13519

13519:                                            ; preds = %13517, %13476
  %13520 = phi i32 [ 10, %13476 ], [ %13518, %13517 ]
  br label %13521

13521:                                            ; preds = %13519, %13468
  %13522 = phi i32 [ 10, %13468 ], [ %13520, %13519 ]
  br label %13523

13523:                                            ; preds = %13521, %13460
  %13524 = phi i32 [ 8, %13460 ], [ %13522, %13521 ]
  br label %13525

13525:                                            ; preds = %13523, %13452
  %13526 = phi i32 [ 8, %13452 ], [ %13524, %13523 ]
  br label %13527

13527:                                            ; preds = %13525, %13444
  %13528 = phi i32 [ 6, %13444 ], [ %13526, %13525 ]
  br label %13529

13529:                                            ; preds = %13527, %13436
  %13530 = phi i32 [ 6, %13436 ], [ %13528, %13527 ]
  br label %13531

13531:                                            ; preds = %13529, %13428
  %13532 = phi i32 [ 5, %13428 ], [ %13530, %13529 ]
  br label %13533

13533:                                            ; preds = %13531, %13420
  %13534 = phi i32 [ 4, %13420 ], [ %13532, %13531 ]
  br label %13535

13535:                                            ; preds = %13533, %13412
  %13536 = phi i32 [ 3, %13412 ], [ %13534, %13533 ]
  br label %13537

13537:                                            ; preds = %13535, %13404
  %13538 = phi i32 [ 2, %13404 ], [ %13536, %13535 ]
  br label %13539

13539:                                            ; preds = %13537, %13396
  %13540 = phi i32 [ 1, %13396 ], [ %13538, %13537 ]
  br label %13541

13541:                                            ; preds = %13539, %13388
  %13542 = phi i32 [ 0, %13388 ], [ %13540, %13539 ]
  br label %13549

13543:                                            ; preds = %13374
  %13544 = load ptr, ptr %14, align 8, !tbaa !5
  %13545 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13544, i32 0, i32 3
  %13546 = load i8, ptr %13545, align 1, !tbaa !13
  %13547 = zext i8 %13546 to i32
  %13548 = ashr i32 %13547, 4
  br label %13549

13549:                                            ; preds = %13543, %13541
  %13550 = phi i32 [ %13542, %13541 ], [ %13548, %13543 ]
  %13551 = icmp eq i32 12, %13550
  br i1 %13551, label %13552, label %13553

13552:                                            ; preds = %13549
  br label %13736

13553:                                            ; preds = %13549
  %13554 = load ptr, ptr %14, align 8, !tbaa !5
  %13555 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13554, i32 0, i32 3
  %13556 = load i8, ptr %13555, align 1, !tbaa !13
  %13557 = zext i8 %13556 to i32
  %13558 = ashr i32 %13557, 4
  %13559 = icmp eq i32 0, %13558
  br i1 %13559, label %13560, label %13722

13560:                                            ; preds = %13553
  %13561 = load ptr, ptr %14, align 8, !tbaa !5
  %13562 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13561, i32 0, i32 3
  %13563 = load i8, ptr %13562, align 1, !tbaa !13
  %13564 = zext i8 %13563 to i32
  %13565 = and i32 %13564, 15
  %13566 = icmp eq i32 0, %13565
  br i1 %13566, label %13567, label %13568

13567:                                            ; preds = %13560
  br label %13720

13568:                                            ; preds = %13560
  %13569 = load ptr, ptr %14, align 8, !tbaa !5
  %13570 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13569, i32 0, i32 3
  %13571 = load i8, ptr %13570, align 1, !tbaa !13
  %13572 = zext i8 %13571 to i32
  %13573 = and i32 %13572, 15
  %13574 = icmp eq i32 1, %13573
  br i1 %13574, label %13575, label %13576

13575:                                            ; preds = %13568
  br label %13718

13576:                                            ; preds = %13568
  %13577 = load ptr, ptr %14, align 8, !tbaa !5
  %13578 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13577, i32 0, i32 3
  %13579 = load i8, ptr %13578, align 1, !tbaa !13
  %13580 = zext i8 %13579 to i32
  %13581 = and i32 %13580, 15
  %13582 = icmp eq i32 2, %13581
  br i1 %13582, label %13583, label %13584

13583:                                            ; preds = %13576
  br label %13716

13584:                                            ; preds = %13576
  %13585 = load ptr, ptr %14, align 8, !tbaa !5
  %13586 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13585, i32 0, i32 3
  %13587 = load i8, ptr %13586, align 1, !tbaa !13
  %13588 = zext i8 %13587 to i32
  %13589 = and i32 %13588, 15
  %13590 = icmp eq i32 3, %13589
  br i1 %13590, label %13591, label %13592

13591:                                            ; preds = %13584
  br label %13714

13592:                                            ; preds = %13584
  %13593 = load ptr, ptr %14, align 8, !tbaa !5
  %13594 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13593, i32 0, i32 3
  %13595 = load i8, ptr %13594, align 1, !tbaa !13
  %13596 = zext i8 %13595 to i32
  %13597 = and i32 %13596, 15
  %13598 = icmp eq i32 4, %13597
  br i1 %13598, label %13599, label %13600

13599:                                            ; preds = %13592
  br label %13712

13600:                                            ; preds = %13592
  %13601 = load ptr, ptr %14, align 8, !tbaa !5
  %13602 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13601, i32 0, i32 3
  %13603 = load i8, ptr %13602, align 1, !tbaa !13
  %13604 = zext i8 %13603 to i32
  %13605 = and i32 %13604, 15
  %13606 = icmp eq i32 5, %13605
  br i1 %13606, label %13607, label %13608

13607:                                            ; preds = %13600
  br label %13710

13608:                                            ; preds = %13600
  %13609 = load ptr, ptr %14, align 8, !tbaa !5
  %13610 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13609, i32 0, i32 3
  %13611 = load i8, ptr %13610, align 1, !tbaa !13
  %13612 = zext i8 %13611 to i32
  %13613 = and i32 %13612, 15
  %13614 = icmp eq i32 6, %13613
  br i1 %13614, label %13615, label %13616

13615:                                            ; preds = %13608
  br label %13708

13616:                                            ; preds = %13608
  %13617 = load ptr, ptr %14, align 8, !tbaa !5
  %13618 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13617, i32 0, i32 3
  %13619 = load i8, ptr %13618, align 1, !tbaa !13
  %13620 = zext i8 %13619 to i32
  %13621 = and i32 %13620, 15
  %13622 = icmp eq i32 7, %13621
  br i1 %13622, label %13623, label %13624

13623:                                            ; preds = %13616
  br label %13706

13624:                                            ; preds = %13616
  %13625 = load ptr, ptr %14, align 8, !tbaa !5
  %13626 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13625, i32 0, i32 3
  %13627 = load i8, ptr %13626, align 1, !tbaa !13
  %13628 = zext i8 %13627 to i32
  %13629 = and i32 %13628, 15
  %13630 = icmp eq i32 8, %13629
  br i1 %13630, label %13631, label %13632

13631:                                            ; preds = %13624
  br label %13704

13632:                                            ; preds = %13624
  %13633 = load ptr, ptr %14, align 8, !tbaa !5
  %13634 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13633, i32 0, i32 3
  %13635 = load i8, ptr %13634, align 1, !tbaa !13
  %13636 = zext i8 %13635 to i32
  %13637 = and i32 %13636, 15
  %13638 = icmp eq i32 9, %13637
  br i1 %13638, label %13639, label %13640

13639:                                            ; preds = %13632
  br label %13702

13640:                                            ; preds = %13632
  %13641 = load ptr, ptr %14, align 8, !tbaa !5
  %13642 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13641, i32 0, i32 3
  %13643 = load i8, ptr %13642, align 1, !tbaa !13
  %13644 = zext i8 %13643 to i32
  %13645 = and i32 %13644, 15
  %13646 = icmp eq i32 10, %13645
  br i1 %13646, label %13647, label %13648

13647:                                            ; preds = %13640
  br label %13700

13648:                                            ; preds = %13640
  %13649 = load ptr, ptr %14, align 8, !tbaa !5
  %13650 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13649, i32 0, i32 3
  %13651 = load i8, ptr %13650, align 1, !tbaa !13
  %13652 = zext i8 %13651 to i32
  %13653 = and i32 %13652, 15
  %13654 = icmp eq i32 11, %13653
  br i1 %13654, label %13655, label %13656

13655:                                            ; preds = %13648
  br label %13698

13656:                                            ; preds = %13648
  %13657 = load ptr, ptr %14, align 8, !tbaa !5
  %13658 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13657, i32 0, i32 3
  %13659 = load i8, ptr %13658, align 1, !tbaa !13
  %13660 = zext i8 %13659 to i32
  %13661 = and i32 %13660, 15
  %13662 = icmp eq i32 12, %13661
  br i1 %13662, label %13663, label %13664

13663:                                            ; preds = %13656
  br label %13696

13664:                                            ; preds = %13656
  %13665 = load ptr, ptr %14, align 8, !tbaa !5
  %13666 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13665, i32 0, i32 3
  %13667 = load i8, ptr %13666, align 1, !tbaa !13
  %13668 = zext i8 %13667 to i32
  %13669 = and i32 %13668, 15
  %13670 = icmp eq i32 13, %13669
  br i1 %13670, label %13671, label %13672

13671:                                            ; preds = %13664
  br label %13694

13672:                                            ; preds = %13664
  %13673 = load ptr, ptr %14, align 8, !tbaa !5
  %13674 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13673, i32 0, i32 3
  %13675 = load i8, ptr %13674, align 1, !tbaa !13
  %13676 = zext i8 %13675 to i32
  %13677 = and i32 %13676, 15
  %13678 = icmp eq i32 14, %13677
  br i1 %13678, label %13679, label %13680

13679:                                            ; preds = %13672
  br label %13692

13680:                                            ; preds = %13672
  %13681 = load ptr, ptr %14, align 8, !tbaa !5
  %13682 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13681, i32 0, i32 3
  %13683 = load i8, ptr %13682, align 1, !tbaa !13
  %13684 = zext i8 %13683 to i32
  %13685 = and i32 %13684, 15
  %13686 = icmp eq i32 15, %13685
  br i1 %13686, label %13687, label %13688

13687:                                            ; preds = %13680
  br label %13690

13688:                                            ; preds = %13680
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 640, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

13689:                                            ; No predecessors!
  br label %13690

13690:                                            ; preds = %13689, %13687
  %13691 = phi i32 [ 15, %13687 ], [ 0, %13689 ]
  br label %13692

13692:                                            ; preds = %13690, %13679
  %13693 = phi i32 [ 14, %13679 ], [ %13691, %13690 ]
  br label %13694

13694:                                            ; preds = %13692, %13671
  %13695 = phi i32 [ 12, %13671 ], [ %13693, %13692 ]
  br label %13696

13696:                                            ; preds = %13694, %13663
  %13697 = phi i32 [ 12, %13663 ], [ %13695, %13694 ]
  br label %13698

13698:                                            ; preds = %13696, %13655
  %13699 = phi i32 [ 10, %13655 ], [ %13697, %13696 ]
  br label %13700

13700:                                            ; preds = %13698, %13647
  %13701 = phi i32 [ 10, %13647 ], [ %13699, %13698 ]
  br label %13702

13702:                                            ; preds = %13700, %13639
  %13703 = phi i32 [ 8, %13639 ], [ %13701, %13700 ]
  br label %13704

13704:                                            ; preds = %13702, %13631
  %13705 = phi i32 [ 8, %13631 ], [ %13703, %13702 ]
  br label %13706

13706:                                            ; preds = %13704, %13623
  %13707 = phi i32 [ 6, %13623 ], [ %13705, %13704 ]
  br label %13708

13708:                                            ; preds = %13706, %13615
  %13709 = phi i32 [ 6, %13615 ], [ %13707, %13706 ]
  br label %13710

13710:                                            ; preds = %13708, %13607
  %13711 = phi i32 [ 5, %13607 ], [ %13709, %13708 ]
  br label %13712

13712:                                            ; preds = %13710, %13599
  %13713 = phi i32 [ 4, %13599 ], [ %13711, %13710 ]
  br label %13714

13714:                                            ; preds = %13712, %13591
  %13715 = phi i32 [ 3, %13591 ], [ %13713, %13712 ]
  br label %13716

13716:                                            ; preds = %13714, %13583
  %13717 = phi i32 [ 2, %13583 ], [ %13715, %13714 ]
  br label %13718

13718:                                            ; preds = %13716, %13575
  %13719 = phi i32 [ 1, %13575 ], [ %13717, %13716 ]
  br label %13720

13720:                                            ; preds = %13718, %13567
  %13721 = phi i32 [ 0, %13567 ], [ %13719, %13718 ]
  br label %13728

13722:                                            ; preds = %13553
  %13723 = load ptr, ptr %14, align 8, !tbaa !5
  %13724 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %13723, i32 0, i32 3
  %13725 = load i8, ptr %13724, align 1, !tbaa !13
  %13726 = zext i8 %13725 to i32
  %13727 = ashr i32 %13726, 4
  br label %13728

13728:                                            ; preds = %13722, %13720
  %13729 = phi i32 [ %13721, %13720 ], [ %13727, %13722 ]
  %13730 = icmp eq i32 13, %13729
  br i1 %13730, label %13731, label %13732

13731:                                            ; preds = %13728
  br label %13734

13732:                                            ; preds = %13728
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 640, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

13733:                                            ; No predecessors!
  br label %13734

13734:                                            ; preds = %13733, %13731
  %13735 = phi i32 [ 1, %13731 ], [ 0, %13733 ]
  br label %13736

13736:                                            ; preds = %13734, %13552
  %13737 = phi i32 [ 1, %13552 ], [ %13735, %13734 ]
  br label %13738

13738:                                            ; preds = %13736, %13373
  %13739 = phi i32 [ 2, %13373 ], [ %13737, %13736 ]
  br label %13740

13740:                                            ; preds = %13738, %13194
  %13741 = phi i32 [ 2, %13194 ], [ %13739, %13738 ]
  br label %13742

13742:                                            ; preds = %13740, %13015
  %13743 = phi i32 [ 4, %13015 ], [ %13741, %13740 ]
  br label %13744

13744:                                            ; preds = %13742, %12836
  %13745 = phi i32 [ 4, %12836 ], [ %13743, %13742 ]
  br label %13746

13746:                                            ; preds = %13744, %12657
  %13747 = phi i32 [ 8, %12657 ], [ %13745, %13744 ]
  br label %13748

13748:                                            ; preds = %13746, %12478
  %13749 = phi i32 [ 8, %12478 ], [ %13747, %13746 ]
  br label %13750

13750:                                            ; preds = %13748, %12299
  %13751 = phi i32 [ 1, %12299 ], [ %13749, %13748 ]
  br label %13752

13752:                                            ; preds = %13750, %12120
  %13753 = phi i32 [ 1, %12120 ], [ %13751, %13750 ]
  br label %13754

13754:                                            ; preds = %13752, %11941
  %13755 = phi i32 [ 2, %11941 ], [ %13753, %13752 ]
  br label %13756

13756:                                            ; preds = %13754, %11762
  %13757 = phi i32 [ 2, %11762 ], [ %13755, %13754 ]
  br label %13758

13758:                                            ; preds = %13756, %11583
  %13759 = phi i32 [ 4, %11583 ], [ %13757, %13756 ]
  br label %13760

13760:                                            ; preds = %13758, %11404
  %13761 = phi i32 [ 8, %11404 ], [ %13759, %13758 ]
  %13762 = load i32, ptr %31, align 4, !tbaa !9
  %13763 = load i32, ptr %32, align 4, !tbaa !9
  %13764 = trunc i32 %13763 to i8
  %13765 = zext i8 %13764 to i32
  %13766 = icmp eq i32 0, %13765
  br i1 %13766, label %13772, label %13767

13767:                                            ; preds = %13760
  %13768 = load i32, ptr %32, align 4, !tbaa !9
  %13769 = trunc i32 %13768 to i8
  %13770 = zext i8 %13769 to i32
  %13771 = icmp slt i32 0, %13770
  br i1 %13771, label %13772, label %13790

13772:                                            ; preds = %13767, %13760
  %13773 = load i32, ptr %32, align 4, !tbaa !9
  %13774 = zext i32 %13773 to i64
  %13775 = mul i64 1, %13774
  %13776 = icmp ult i64 %13775, 255
  br i1 %13776, label %13777, label %13781

13777:                                            ; preds = %13772
  %13778 = load i32, ptr %32, align 4, !tbaa !9
  %13779 = zext i32 %13778 to i64
  %13780 = mul i64 1, %13779
  br label %13782

13781:                                            ; preds = %13772
  br label %13782

13782:                                            ; preds = %13781, %13777
  %13783 = phi i64 [ %13780, %13777 ], [ 255, %13781 ]
  %13784 = icmp ule i64 %13783, 255
  br i1 %13784, label %13785, label %13790

13785:                                            ; preds = %13782
  %13786 = load i32, ptr %32, align 4, !tbaa !9
  %13787 = uitofp i32 %13786 to double
  %13788 = fcmp ole double 0.000000e+00, %13787
  br i1 %13788, label %13789, label %13790

13789:                                            ; preds = %13785
  br label %13791

13790:                                            ; preds = %13785, %13782, %13767
  call void @__assert_fail(ptr noundef @.str.5, ptr noundef @.str.1, i32 noundef 640, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #5
  unreachable

13791:                                            ; preds = %13789
  %13792 = load i32, ptr %32, align 4, !tbaa !9
  %13793 = trunc i32 %13792 to i8
  %13794 = load i8, ptr %27, align 1, !tbaa !16
  call void @libxsmm_generator_vloadstore_masked_vreg_aarch64(ptr noundef %11217, i32 noundef %11220, i32 noundef %11223, i32 noundef %11226, i32 noundef %13761, i32 noundef %13762, i32 noundef 1, i32 noundef 1, i8 noundef zeroext %13793, i8 noundef zeroext %13794)
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  br label %13795

13795:                                            ; preds = %13791
  %13796 = load i32, ptr %22, align 4, !tbaa !9
  %13797 = add i32 %13796, 1
  store i32 %13797, ptr %22, align 4, !tbaa !9
  br label %10770, !llvm.loop !37

13798:                                            ; preds = %10770
  %13799 = load i32, ptr %25, align 4, !tbaa !9
  %13800 = load i32, ptr %26, align 4, !tbaa !9
  %13801 = icmp ne i32 %13799, %13800
  br i1 %13801, label %13802, label %13818

13802:                                            ; preds = %13798
  %13803 = load ptr, ptr %11, align 8, !tbaa !5
  %13804 = load ptr, ptr %12, align 8, !tbaa !5
  %13805 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %13804, i32 0, i32 5
  %13806 = load i32, ptr %13805, align 4, !tbaa !27
  %13807 = load ptr, ptr %12, align 8, !tbaa !5
  %13808 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %13807, i32 0, i32 15
  %13809 = load i32, ptr %13808, align 4, !tbaa !34
  %13810 = load ptr, ptr %12, align 8, !tbaa !5
  %13811 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %13810, i32 0, i32 5
  %13812 = load i32, ptr %13811, align 4, !tbaa !27
  %13813 = load i32, ptr %25, align 4, !tbaa !9
  %13814 = zext i32 %13813 to i64
  %13815 = load i32, ptr %26, align 4, !tbaa !9
  %13816 = zext i32 %13815 to i64
  %13817 = sub nsw i64 %13814, %13816
  call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %13803, i32 noundef 4096, i32 noundef %13806, i32 noundef %13809, i32 noundef %13812, i64 noundef %13817)
  br label %13818

13818:                                            ; preds = %13802, %13798
  br label %13819

13819:                                            ; preds = %13818
  %13820 = load i32, ptr %21, align 4, !tbaa !9
  %13821 = add i32 %13820, 1
  store i32 %13821, ptr %21, align 4, !tbaa !9
  br label %10765, !llvm.loop !38

13822:                                            ; preds = %10765
  %13823 = load ptr, ptr %11, align 8, !tbaa !5
  %13824 = load ptr, ptr %12, align 8, !tbaa !5
  %13825 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %13824, i32 0, i32 5
  %13826 = load i32, ptr %13825, align 4, !tbaa !27
  %13827 = load ptr, ptr %12, align 8, !tbaa !5
  %13828 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %13827, i32 0, i32 15
  %13829 = load i32, ptr %13828, align 4, !tbaa !34
  %13830 = load ptr, ptr %12, align 8, !tbaa !5
  %13831 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %13830, i32 0, i32 5
  %13832 = load i32, ptr %13831, align 4, !tbaa !27
  %13833 = load i32, ptr %25, align 4, !tbaa !9
  %13834 = zext i32 %13833 to i64
  %13835 = load i32, ptr %18, align 4, !tbaa !9
  %13836 = zext i32 %13835 to i64
  %13837 = mul nsw i64 %13834, %13836
  call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %13823, i32 noundef 4097, i32 noundef %13826, i32 noundef %13829, i32 noundef %13832, i64 noundef %13837)
  %13838 = load ptr, ptr %11, align 8, !tbaa !5
  %13839 = load ptr, ptr %12, align 8, !tbaa !5
  %13840 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %13839, i32 0, i32 5
  %13841 = load i32, ptr %13840, align 4, !tbaa !27
  %13842 = load ptr, ptr %12, align 8, !tbaa !5
  %13843 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %13842, i32 0, i32 11
  %13844 = load i32, ptr %13843, align 4, !tbaa !36
  %13845 = load ptr, ptr %12, align 8, !tbaa !5
  %13846 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %13845, i32 0, i32 5
  %13847 = load i32, ptr %13846, align 4, !tbaa !27
  call void @libxsmm_aarch64_instruction_alu_compute_shifted_reg(ptr noundef %13838, i32 noundef 1258291207, i32 noundef %13841, i32 noundef %13844, i32 noundef %13847, i32 noundef 0, i32 noundef 0)
  store i32 0, ptr %28, align 4
  br label %13848

13848:                                            ; preds = %13822, %7680
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 4, 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
  %13849 = load i32, ptr %28, align 4
  switch i32 %13849, label %13851 [
    i32 0, label %13850
    i32 1, label %13850
  ]

13850:                                            ; preds = %13848, %13848
  ret void

13851:                                            ; preds = %13848
  unreachable
}

declare void @libxsmm_aarch64_instruction_alu_compute_shifted_reg(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #1

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind 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 #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 8}
!12 = !{!"libxsmm_meqn_descriptor", !10, i64 0, !10, i64 4, !10, i64 8, !7, i64 12, !10, i64 13}
!13 = !{!12, !7, i64 12}
!14 = !{!15, !10, i64 28}
!15 = !{!"libxsmm_generated_code", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28}
!16 = !{!7, !7, i64 0}
!17 = !{!18, !10, i64 96}
!18 = !{!"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, !19, i64 876, !20, i64 1392}
!19 = !{!"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}
!20 = !{!"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, !21, 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}
!21 = !{!"libxsmm_tile_config", !7, i64 0, !22, i64 2, !7, i64 4, !22, i64 6, !7, i64 8, !22, i64 10, !7, i64 12, !22, i64 14, !7, i64 16, !22, i64 18, !7, i64 20, !22, i64 22, !7, i64 24, !22, i64 26, !7, i64 28, !22, i64 30, !7, i64 32}
!22 = !{!"short", !7, i64 0}
!23 = !{!18, !10, i64 84}
!24 = !{!18, !10, i64 88}
!25 = !{!18, !10, i64 92}
!26 = !{!18, !10, i64 148}
!27 = !{!28, !10, i64 20}
!28 = !{!"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, !29, i64 72, !30, i64 220}
!29 = !{!"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}
!30 = !{!"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}
!31 = !{!28, !10, i64 64}
!32 = distinct !{!32, !33}
!33 = !{!"llvm.loop.mustprogress"}
!34 = !{!28, !10, i64 60}
!35 = distinct !{!35, !33}
!36 = !{!28, !10, i64 44}
!37 = distinct !{!37, !33}
!38 = distinct !{!38, !33}


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

@.str = external hidden unnamed_addr constant [27 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [95 x i8], align 1
@__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64 = external hidden unnamed_addr constant [281 x i8], align 1
@switch.table.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64.4 = 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

declare void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i64 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 i32 @libxsmm_generator_matequation_regblocks_get_start_of_register_block(ptr noundef, i32 noundef) local_unnamed_addr #0

declare i32 @libxsmm_generator_aarch64_get_sve_type(i8 noundef zeroext) local_unnamed_addr #0

declare void @libxsmm_generator_vloadstore_masked_vreg_aarch64(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef zeroext, i8 noundef zeroext) local_unnamed_addr #0

declare void @libxsmm_aarch64_instruction_sve_compute(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef zeroext, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64(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 #2 {
  %11 = tail call i32 @libxsmm_generator_matequation_regblocks_get_start_of_register_block(ptr noundef %2, i32 noundef %5) #3
  %12 = getelementptr inbounds i8, ptr %3, i64 8
  %13 = load i32, ptr %12, align 1, !tbaa !5
  %14 = getelementptr inbounds i8, ptr %3, i64 12
  %15 = load i8, ptr %14, align 1, !tbaa !10
  %16 = icmp ult i8 %15, 16
  br i1 %16, label %17, label %19

17:                                               ; preds = %10
  %18 = icmp ult i8 %15, 14
  br i1 %18, label %switch.lookup, label %.thread2824

19:                                               ; preds = %10
  %.mask = and i8 %15, -16
  %20 = icmp eq i8 %.mask, 16
  br i1 %20, label %.thread2766, label %21

21:                                               ; preds = %19
  %22 = and i8 %15, -32
  %or.cond3715 = icmp eq i8 %22, 32
  br i1 %or.cond3715, label %.thread2766, label %23

23:                                               ; preds = %21
  %24 = and i8 %15, -32
  %or.cond3716 = icmp eq i8 %24, 64
  br i1 %or.cond3716, label %.thread2766, label %25

25:                                               ; preds = %23
  %26 = and i8 %15, -32
  %or.cond3717 = icmp eq i8 %26, 96
  br i1 %or.cond3717, label %.thread2766, label %27

27:                                               ; preds = %25
  %28 = and i8 %15, -32
  %or.cond3718 = icmp eq i8 %28, -128
  br i1 %or.cond3718, label %.thread2766, label %29

29:                                               ; preds = %27
  %30 = and i8 %15, -32
  %or.cond3719 = icmp eq i8 %30, -96
  br i1 %or.cond3719, label %.thread2766, label %31

31:                                               ; preds = %29
  %32 = and i8 %15, -32
  %or.cond3720 = icmp eq i8 %32, -64
  br i1 %or.cond3720, label %.thread2766, label %.thread2824

.thread2824:                                      ; preds = %17, %31
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 600, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #4
  unreachable

switch.lookup:                                    ; preds = %17
  %33 = zext nneg i8 %15 to i64
  %switch.gep = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64.4, i64 0, i64 %33
  %switch.load = load i32, ptr %switch.gep, align 4
  br label %.thread2766

.thread2766:                                      ; preds = %switch.lookup, %19, %31, %29, %27, %25, %23, %21
  %34 = phi i32 [ 4, %19 ], [ 2, %21 ], [ 1, %23 ], [ 8, %25 ], [ 4, %27 ], [ 2, %29 ], [ 1, %31 ], [ %switch.load, %switch.lookup ]
  %35 = mul i32 %34, %13
  %36 = icmp eq i32 %8, 0
  br i1 %36, label %37, label %56

37:                                               ; preds = %.thread2766
  br i1 %16, label %switch.lookup3779, label %38

38:                                               ; preds = %37
  %.mask3672 = and i8 %15, -16
  %39 = icmp eq i8 %.mask3672, 16
  br i1 %39, label %.thread2940, label %40

40:                                               ; preds = %38
  %41 = and i8 %15, -32
  %or.cond3721 = icmp eq i8 %41, 32
  br i1 %or.cond3721, label %.thread2940, label %42

42:                                               ; preds = %40
  %43 = and i8 %15, -32
  %or.cond3722 = icmp eq i8 %43, 64
  br i1 %or.cond3722, label %.thread2940, label %44

44:                                               ; preds = %42
  %45 = and i8 %15, -32
  %or.cond3723 = icmp eq i8 %45, 96
  br i1 %or.cond3723, label %.thread2940, label %46

46:                                               ; preds = %44
  %47 = and i8 %15, -32
  %or.cond3724 = icmp eq i8 %47, -128
  br i1 %or.cond3724, label %.thread2940, label %48

48:                                               ; preds = %46
  %49 = and i8 %15, -32
  %or.cond3725 = icmp eq i8 %49, -96
  br i1 %or.cond3725, label %.thread2940, label %50

50:                                               ; preds = %48
  %51 = and i8 %15, -32
  %or.cond3726 = icmp eq i8 %51, -64
  br i1 %or.cond3726, label %.thread2940, label %.thread3071

.thread3071:                                      ; preds = %50
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 601, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #4
  unreachable

switch.lookup3779:                                ; preds = %37
  %52 = zext nneg i8 %15 to i64
  %switch.gep3780 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64.4, i64 0, i64 %52
  %switch.load3781 = load i32, ptr %switch.gep3780, align 4
  br label %.thread2940

.thread2940:                                      ; preds = %switch.lookup3779, %38, %50, %48, %46, %44, %42, %40
  %53 = phi i32 [ 4, %38 ], [ 2, %40 ], [ 1, %42 ], [ 8, %44 ], [ 4, %46 ], [ 2, %48 ], [ 1, %50 ], [ %switch.load3781, %switch.lookup3779 ]
  %54 = mul i32 %6, %4
  %55 = mul i32 %54, %53
  br label %77

56:                                               ; preds = %.thread2766
  br i1 %16, label %switch.lookup3782, label %57

57:                                               ; preds = %56
  %.mask3659 = and i8 %15, -16
  %58 = icmp eq i8 %.mask3659, 16
  br i1 %58, label %.thread3187, label %59

59:                                               ; preds = %57
  %60 = and i8 %15, -32
  %or.cond3727 = icmp eq i8 %60, 32
  br i1 %or.cond3727, label %.thread3187, label %61

61:                                               ; preds = %59
  %62 = and i8 %15, -32
  %or.cond3728 = icmp eq i8 %62, 64
  br i1 %or.cond3728, label %.thread3187, label %63

63:                                               ; preds = %61
  %64 = and i8 %15, -32
  %or.cond3729 = icmp eq i8 %64, 96
  br i1 %or.cond3729, label %.thread3187, label %65

65:                                               ; preds = %63
  %66 = and i8 %15, -32
  %or.cond3730 = icmp eq i8 %66, -128
  br i1 %or.cond3730, label %.thread3187, label %67

67:                                               ; preds = %65
  %68 = and i8 %15, -32
  %or.cond3731 = icmp eq i8 %68, -96
  br i1 %or.cond3731, label %.thread3187, label %69

69:                                               ; preds = %67
  %70 = and i8 %15, -32
  %or.cond3732 = icmp eq i8 %70, -64
  br i1 %or.cond3732, label %.thread3187, label %.thread3318

.thread3318:                                      ; preds = %69
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 601, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #4
  unreachable

switch.lookup3782:                                ; preds = %56
  %71 = zext nneg i8 %15 to i64
  %switch.gep3783 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64.4, i64 0, i64 %71
  %switch.load3784 = load i32, ptr %switch.gep3783, align 4
  br label %.thread3187

.thread3187:                                      ; preds = %switch.lookup3782, %57, %69, %67, %65, %63, %61, %59
  %72 = phi i32 [ 4, %57 ], [ 2, %59 ], [ 1, %61 ], [ 8, %63 ], [ 4, %65 ], [ 2, %67 ], [ 1, %69 ], [ %switch.load3784, %switch.lookup3782 ]
  %73 = add i32 %6, -1
  %74 = mul i32 %73, %4
  %75 = add i32 %74, %8
  %76 = mul i32 %72, %75
  br label %77

77:                                               ; preds = %.thread3187, %.thread2940
  %78 = phi i32 [ %55, %.thread2940 ], [ %76, %.thread3187 ]
  %79 = getelementptr inbounds i8, ptr %0, i64 28
  %80 = load i32, ptr %79, align 4, !tbaa !11
  %81 = add i32 %80, -2201
  %spec.select = icmp ult i32 %81, 799
  %82 = zext i1 %spec.select to i8
  %83 = getelementptr inbounds i8, ptr %2, i64 96
  %84 = load i32, ptr %83, align 8, !tbaa !14
  %.not = icmp eq i32 %84, 0
  br i1 %.not, label %.preheader3746, label %251

.preheader3746:                                   ; preds = %77
  %.not3762 = icmp eq i32 %7, 0
  br i1 %.not3762, label %.preheader3746.._crit_edge3751_crit_edge, label %.preheader3745.lr.ph

.preheader3746.._crit_edge3751_crit_edge:         ; preds = %.preheader3746
  %.pre = zext i32 %35 to i64
  br label %._crit_edge3751

.preheader3745.lr.ph:                             ; preds = %.preheader3746
  %.not3763 = icmp eq i32 %6, 0
  %85 = add i32 %6, -1
  %86 = select i1 %36, i32 %4, i32 %8
  %87 = getelementptr inbounds i8, ptr %2, i64 92
  %88 = getelementptr inbounds i8, ptr %2, i64 88
  %89 = icmp ne i32 %8, 0
  %90 = getelementptr inbounds i8, ptr %2, i64 84
  %91 = getelementptr inbounds i8, ptr %2, i64 148
  %92 = getelementptr inbounds i8, ptr %1, i64 20
  %93 = getelementptr inbounds i8, ptr %1, i64 64
  %.not1634 = icmp eq i32 %35, %78
  %94 = getelementptr inbounds i8, ptr %1, i64 60
  %95 = zext i32 %35 to i64
  %96 = zext i32 %78 to i64
  %97 = sub nsw i64 %95, %96
  br i1 %.not3763, label %.preheader3745.lr.ph.split, label %.preheader3745.us

.preheader3745.us:                                ; preds = %.preheader3745.lr.ph, %103
  %.03750.us = phi i32 [ %104, %103 ], [ 0, %.preheader3745.lr.ph ]
  %98 = mul i32 %.03750.us, %6
  %99 = add i32 %98, %11
  br label %105

100:                                              ; preds = %._crit_edge.us
  %101 = load i32, ptr %92, align 4, !tbaa !20
  %102 = load i32, ptr %94, align 4, !tbaa !24
  tail call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %0, i32 noundef 4096, i32 noundef %101, i32 noundef %102, i32 noundef %101, i64 noundef %97) #3
  br label %103

103:                                              ; preds = %100, %._crit_edge.us
  %104 = add nuw i32 %.03750.us, 1
  %exitcond3770.not = icmp eq i32 %104, %7
  br i1 %exitcond3770.not, label %._crit_edge3751, label %.preheader3745.us, !llvm.loop !25

105:                                              ; preds = %.preheader3745.us, %.thread3421.us
  %.014733747.us = phi i32 [ 0, %.preheader3745.us ], [ %159, %.thread3421.us ]
  %106 = load i8, ptr %14, align 1, !tbaa !10
  %107 = icmp ult i8 %106, 16
  br i1 %107, label %110, label %108

108:                                              ; preds = %105
  %.mask3700.us = and i8 %106, -16
  %109 = icmp eq i8 %.mask3700.us, 16
  br i1 %109, label %.thread3321.us, label %.thread3320.us

110:                                              ; preds = %105
  %cond3644.us = icmp eq i8 %106, 1
  br i1 %cond3644.us, label %.thread3321.us, label %.thread3320.us

.thread3320.us:                                   ; preds = %110, %108
  %111 = icmp eq i32 %.014733747.us, %85
  %spec.select3645.us = select i1 %111, i32 %86, i32 %4
  br label %114

.thread3321.us:                                   ; preds = %110, %108
  %112 = icmp eq i32 %.014733747.us, %85
  %113 = select i1 %112, i32 %8, i32 0
  br label %114

114:                                              ; preds = %.thread3321.us, %.thread3320.us
  %115 = phi i32 [ %113, %.thread3321.us ], [ %spec.select3645.us, %.thread3320.us ]
  br i1 %107, label %118, label %116

116:                                              ; preds = %114
  %.mask3701.us = and i8 %106, -16
  %117 = icmp eq i8 %.mask3701.us, 16
  br i1 %117, label %.thread3324.us, label %.thread3323.us

118:                                              ; preds = %114
  %cond3643.us = icmp eq i8 %106, 1
  br i1 %cond3643.us, label %.thread3324.us, label %.thread3323.us

.thread3323.us:                                   ; preds = %118, %116
  %119 = icmp eq i32 %.014733747.us, %85
  br i1 %119, label %122, label %120

120:                                              ; preds = %.thread3323.us
  %121 = load i32, ptr %87, align 4, !tbaa !27
  br label %130

122:                                              ; preds = %.thread3323.us
  br i1 %36, label %125, label %123

123:                                              ; preds = %122
  %124 = load i32, ptr %88, align 8, !tbaa !28
  br label %130

125:                                              ; preds = %122
  %126 = load i32, ptr %87, align 4, !tbaa !27
  br label %130

.thread3324.us:                                   ; preds = %118, %116
  %127 = icmp eq i32 %.014733747.us, %85
  %or.cond.us = and i1 %89, %127
  br i1 %or.cond.us, label %128, label %130

128:                                              ; preds = %.thread3324.us
  %129 = load i32, ptr %90, align 4, !tbaa !29
  br label %130

130:                                              ; preds = %128, %.thread3324.us, %125, %123, %120
  %131 = phi i32 [ %129, %128 ], [ 0, %.thread3324.us ], [ %121, %120 ], [ %124, %123 ], [ %126, %125 ]
  %132 = add i32 %99, %.014733747.us
  %133 = load i32, ptr %91, align 4, !tbaa !30
  %134 = tail call i32 @libxsmm_generator_aarch64_get_sve_type(i8 noundef zeroext 2) #3
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 86009859, i32 noundef %132, i32 noundef %132, i8 noundef zeroext 0, i32 noundef %133, i32 noundef 0, i32 noundef %134) #3
  %135 = load i32, ptr %92, align 4, !tbaa !20
  %136 = load i32, ptr %93, align 4, !tbaa !31
  %137 = load i32, ptr %91, align 4, !tbaa !30
  %138 = load i8, ptr %14, align 1, !tbaa !10
  %139 = icmp ult i8 %138, 16
  br i1 %139, label %154, label %140

140:                                              ; preds = %130
  %.mask3702.us = and i8 %138, -16
  %141 = icmp eq i8 %.mask3702.us, 16
  br i1 %141, label %.thread3421.us, label %142

142:                                              ; preds = %140
  %143 = and i8 %138, -32
  %or.cond3733.us = icmp eq i8 %143, 32
  br i1 %or.cond3733.us, label %.thread3421.us, label %144

144:                                              ; preds = %142
  %145 = and i8 %138, -32
  %or.cond3734.us = icmp eq i8 %145, 64
  br i1 %or.cond3734.us, label %.thread3421.us, label %146

146:                                              ; preds = %144
  %147 = and i8 %138, -32
  %or.cond3735.us = icmp eq i8 %147, 96
  br i1 %or.cond3735.us, label %.thread3421.us, label %148

148:                                              ; preds = %146
  %149 = and i8 %138, -32
  %or.cond3736.us = icmp eq i8 %149, -128
  br i1 %or.cond3736.us, label %.thread3421.us, label %150

150:                                              ; preds = %148
  %151 = and i8 %138, -32
  %or.cond3737.us = icmp eq i8 %151, -96
  br i1 %or.cond3737.us, label %.thread3421.us, label %152

152:                                              ; preds = %150
  %153 = and i8 %138, -32
  %or.cond3738.us = icmp eq i8 %153, -64
  br i1 %or.cond3738.us, label %.thread3421.us, label %.thread3479

154:                                              ; preds = %130
  %155 = icmp ult i8 %138, 14
  br i1 %155, label %switch.lookup3785, label %.thread3479

switch.lookup3785:                                ; preds = %154
  %156 = zext nneg i8 %138 to i64
  %switch.gep3786 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64.4, i64 0, i64 %156
  %switch.load3787 = load i32, ptr %switch.gep3786, align 4
  br label %.thread3421.us

.thread3421.us:                                   ; preds = %switch.lookup3785, %152, %150, %148, %146, %144, %142, %140
  %157 = phi i32 [ 4, %140 ], [ 2, %142 ], [ 1, %144 ], [ 8, %146 ], [ 4, %148 ], [ 2, %150 ], [ 1, %152 ], [ %switch.load3787, %switch.lookup3785 ]
  %158 = trunc i32 %131 to i8
  tail call void @libxsmm_generator_vloadstore_masked_vreg_aarch64(ptr noundef %0, i32 noundef %135, i32 noundef %136, i32 noundef %137, i32 noundef %157, i32 noundef %115, i32 noundef 1, i32 noundef 1, i8 noundef zeroext %158, i8 noundef zeroext %82) #3
  %159 = add nuw i32 %.014733747.us, 1
  %exitcond.not = icmp eq i32 %159, %6
  br i1 %exitcond.not, label %._crit_edge.us, label %105, !llvm.loop !32

._crit_edge.us:                                   ; preds = %.thread3421.us
  br i1 %.not1634, label %103, label %100

.preheader3745.lr.ph.split:                       ; preds = %.preheader3745.lr.ph
  br i1 %.not1634, label %._crit_edge3751, label %.preheader3745

.preheader3745:                                   ; preds = %.preheader3745.lr.ph.split, %.preheader3745
  %.03750 = phi i32 [ %162, %.preheader3745 ], [ 0, %.preheader3745.lr.ph.split ]
  %160 = load i32, ptr %92, align 4, !tbaa !20
  %161 = load i32, ptr %94, align 4, !tbaa !24
  tail call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %0, i32 noundef 4096, i32 noundef %160, i32 noundef %161, i32 noundef %160, i64 noundef %97) #3
  %162 = add nuw i32 %.03750, 1
  %exitcond3771.not = icmp eq i32 %162, %7
  br i1 %exitcond3771.not, label %._crit_edge3751, label %.preheader3745, !llvm.loop !25

.thread3479:                                      ; preds = %154, %152
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 616, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #4
  unreachable

._crit_edge3751:                                  ; preds = %103, %.preheader3745, %.preheader3745.lr.ph.split, %.preheader3746.._crit_edge3751_crit_edge
  %.pre-phi = phi i64 [ %.pre, %.preheader3746.._crit_edge3751_crit_edge ], [ %95, %.preheader3745.lr.ph.split ], [ %95, %.preheader3745 ], [ %95, %103 ]
  %163 = getelementptr inbounds i8, ptr %1, i64 20
  %164 = load i32, ptr %163, align 4, !tbaa !20
  %165 = getelementptr inbounds i8, ptr %1, i64 60
  %166 = load i32, ptr %165, align 4, !tbaa !24
  %167 = zext i32 %7 to i64
  %168 = mul nuw nsw i64 %.pre-phi, %167
  tail call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %0, i32 noundef 4097, i32 noundef %164, i32 noundef %166, i32 noundef %164, i64 noundef %168) #3
  %169 = load i32, ptr %163, align 4, !tbaa !20
  %170 = getelementptr inbounds i8, ptr %1, i64 44
  %171 = load i32, ptr %170, align 4, !tbaa !33
  tail call void @libxsmm_aarch64_instruction_alu_compute_shifted_reg(ptr noundef %0, i32 noundef 184549383, i32 noundef %169, i32 noundef %171, i32 noundef %169, i32 noundef 0, i32 noundef 0) #3
  br i1 %.not3762, label %._crit_edge3758, label %.preheader.lr.ph

.preheader.lr.ph:                                 ; preds = %._crit_edge3751
  %.not3765 = icmp eq i32 %6, 0
  %172 = add i32 %6, -1
  %173 = select i1 %36, i32 %4, i32 %8
  %174 = getelementptr inbounds i8, ptr %2, i64 92
  %175 = getelementptr inbounds i8, ptr %2, i64 88
  %176 = icmp ne i32 %8, 0
  %177 = getelementptr inbounds i8, ptr %2, i64 84
  %178 = getelementptr inbounds i8, ptr %2, i64 148
  %179 = getelementptr inbounds i8, ptr %1, i64 64
  %.not1631 = icmp eq i32 %35, %78
  %180 = zext i32 %78 to i64
  %181 = sub nsw i64 %.pre-phi, %180
  br i1 %.not3765, label %.preheader.lr.ph.split, label %.preheader.us

.preheader.us:                                    ; preds = %.preheader.lr.ph, %187
  %.13757.us = phi i32 [ %188, %187 ], [ 0, %.preheader.lr.ph ]
  %182 = mul i32 %.13757.us, %6
  %183 = add i32 %182, %11
  br label %189

184:                                              ; preds = %._crit_edge.us3759
  %185 = load i32, ptr %163, align 4, !tbaa !20
  %186 = load i32, ptr %165, align 4, !tbaa !24
  tail call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %0, i32 noundef 4096, i32 noundef %185, i32 noundef %186, i32 noundef %185, i64 noundef %181) #3
  br label %187

187:                                              ; preds = %184, %._crit_edge.us3759
  %188 = add nuw i32 %.13757.us, 1
  %exitcond3773.not = icmp eq i32 %188, %7
  br i1 %exitcond3773.not, label %._crit_edge3758, label %.preheader.us, !llvm.loop !34

189:                                              ; preds = %.preheader.us, %.thread3582.us
  %.114743754.us = phi i32 [ 0, %.preheader.us ], [ %243, %.thread3582.us ]
  %190 = load i8, ptr %14, align 1, !tbaa !10
  %191 = icmp ult i8 %190, 16
  br i1 %191, label %194, label %192

192:                                              ; preds = %189
  %.mask3685.us = and i8 %190, -16
  %193 = icmp eq i8 %.mask3685.us, 16
  br i1 %193, label %.thread3482.us, label %.thread3481.us

194:                                              ; preds = %189
  %cond3642.us = icmp eq i8 %190, 1
  br i1 %cond3642.us, label %.thread3482.us, label %.thread3481.us

.thread3481.us:                                   ; preds = %194, %192
  %195 = icmp eq i32 %.114743754.us, %172
  %spec.select3646.us = select i1 %195, i32 %173, i32 %4
  br label %198

.thread3482.us:                                   ; preds = %194, %192
  %196 = icmp eq i32 %.114743754.us, %172
  %197 = select i1 %196, i32 %8, i32 0
  br label %198

198:                                              ; preds = %.thread3482.us, %.thread3481.us
  %199 = phi i32 [ %197, %.thread3482.us ], [ %spec.select3646.us, %.thread3481.us ]
  br i1 %191, label %202, label %200

200:                                              ; preds = %198
  %.mask3686.us = and i8 %190, -16
  %201 = icmp eq i8 %.mask3686.us, 16
  br i1 %201, label %.thread3485.us, label %.thread3484.us

202:                                              ; preds = %198
  %cond.us = icmp eq i8 %190, 1
  br i1 %cond.us, label %.thread3485.us, label %.thread3484.us

.thread3484.us:                                   ; preds = %202, %200
  %203 = icmp eq i32 %.114743754.us, %172
  br i1 %203, label %206, label %204

204:                                              ; preds = %.thread3484.us
  %205 = load i32, ptr %174, align 4, !tbaa !27
  br label %214

206:                                              ; preds = %.thread3484.us
  br i1 %36, label %209, label %207

207:                                              ; preds = %206
  %208 = load i32, ptr %175, align 8, !tbaa !28
  br label %214

209:                                              ; preds = %206
  %210 = load i32, ptr %174, align 4, !tbaa !27
  br label %214

.thread3485.us:                                   ; preds = %202, %200
  %211 = icmp eq i32 %.114743754.us, %172
  %or.cond3.us = and i1 %176, %211
  br i1 %or.cond3.us, label %212, label %214

212:                                              ; preds = %.thread3485.us
  %213 = load i32, ptr %177, align 4, !tbaa !29
  br label %214

214:                                              ; preds = %212, %.thread3485.us, %209, %207, %204
  %215 = phi i32 [ %213, %212 ], [ 0, %.thread3485.us ], [ %205, %204 ], [ %208, %207 ], [ %210, %209 ]
  %216 = add i32 %183, %.114743754.us
  %217 = load i32, ptr %178, align 4, !tbaa !30
  %218 = tail call i32 @libxsmm_generator_aarch64_get_sve_type(i8 noundef zeroext 2) #3
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 86010883, i32 noundef %216, i32 noundef %216, i8 noundef zeroext 0, i32 noundef %217, i32 noundef 0, i32 noundef %218) #3
  %219 = load i32, ptr %163, align 4, !tbaa !20
  %220 = load i32, ptr %179, align 4, !tbaa !31
  %221 = load i32, ptr %178, align 4, !tbaa !30
  %222 = load i8, ptr %14, align 1, !tbaa !10
  %223 = icmp ult i8 %222, 16
  br i1 %223, label %238, label %224

224:                                              ; preds = %214
  %.mask3687.us = and i8 %222, -16
  %225 = icmp eq i8 %.mask3687.us, 16
  br i1 %225, label %.thread3582.us, label %226

226:                                              ; preds = %224
  %227 = and i8 %222, -32
  %or.cond3739.us = icmp eq i8 %227, 32
  br i1 %or.cond3739.us, label %.thread3582.us, label %228

228:                                              ; preds = %226
  %229 = and i8 %222, -32
  %or.cond3740.us = icmp eq i8 %229, 64
  br i1 %or.cond3740.us, label %.thread3582.us, label %230

230:                                              ; preds = %228
  %231 = and i8 %222, -32
  %or.cond3741.us = icmp eq i8 %231, 96
  br i1 %or.cond3741.us, label %.thread3582.us, label %232

232:                                              ; preds = %230
  %233 = and i8 %222, -32
  %or.cond3742.us = icmp eq i8 %233, -128
  br i1 %or.cond3742.us, label %.thread3582.us, label %234

234:                                              ; preds = %232
  %235 = and i8 %222, -32
  %or.cond3743.us = icmp eq i8 %235, -96
  br i1 %or.cond3743.us, label %.thread3582.us, label %236

236:                                              ; preds = %234
  %237 = and i8 %222, -32
  %or.cond3744.us = icmp eq i8 %237, -64
  br i1 %or.cond3744.us, label %.thread3582.us, label %.thread3640

238:                                              ; preds = %214
  %239 = icmp ult i8 %222, 14
  br i1 %239, label %switch.lookup3788, label %.thread3640

switch.lookup3788:                                ; preds = %238
  %240 = zext nneg i8 %222 to i64
  %switch.gep3789 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64.4, i64 0, i64 %240
  %switch.load3790 = load i32, ptr %switch.gep3789, align 4
  br label %.thread3582.us

.thread3582.us:                                   ; preds = %switch.lookup3788, %236, %234, %232, %230, %228, %226, %224
  %241 = phi i32 [ 4, %224 ], [ 2, %226 ], [ 1, %228 ], [ 8, %230 ], [ 4, %232 ], [ 2, %234 ], [ 1, %236 ], [ %switch.load3790, %switch.lookup3788 ]
  %242 = trunc i32 %215 to i8
  tail call void @libxsmm_generator_vloadstore_masked_vreg_aarch64(ptr noundef %0, i32 noundef %219, i32 noundef %220, i32 noundef %221, i32 noundef %241, i32 noundef %199, i32 noundef 1, i32 noundef 1, i8 noundef zeroext %242, i8 noundef zeroext %82) #3
  %243 = add nuw i32 %.114743754.us, 1
  %exitcond3772.not = icmp eq i32 %243, %6
  br i1 %exitcond3772.not, label %._crit_edge.us3759, label %189, !llvm.loop !35

._crit_edge.us3759:                               ; preds = %.thread3582.us
  br i1 %.not1631, label %187, label %184

.preheader.lr.ph.split:                           ; preds = %.preheader.lr.ph
  br i1 %.not1631, label %._crit_edge3758, label %.preheader

.preheader:                                       ; preds = %.preheader.lr.ph.split, %.preheader
  %.13757 = phi i32 [ %246, %.preheader ], [ 0, %.preheader.lr.ph.split ]
  %244 = load i32, ptr %163, align 4, !tbaa !20
  %245 = load i32, ptr %165, align 4, !tbaa !24
  tail call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %0, i32 noundef 4096, i32 noundef %244, i32 noundef %245, i32 noundef %244, i64 noundef %181) #3
  %246 = add nuw i32 %.13757, 1
  %exitcond3774.not = icmp eq i32 %246, %7
  br i1 %exitcond3774.not, label %._crit_edge3758, label %.preheader, !llvm.loop !34

.thread3640:                                      ; preds = %238, %236
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 640, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_unpackstore_2d_reg_block_aarch64) #4
  unreachable

._crit_edge3758:                                  ; preds = %187, %.preheader, %.preheader.lr.ph.split, %._crit_edge3751
  %247 = load i32, ptr %163, align 4, !tbaa !20
  %248 = load i32, ptr %165, align 4, !tbaa !24
  tail call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %0, i32 noundef 4097, i32 noundef %247, i32 noundef %248, i32 noundef %247, i64 noundef %168) #3
  %249 = load i32, ptr %163, align 4, !tbaa !20
  %250 = load i32, ptr %170, align 4, !tbaa !33
  tail call void @libxsmm_aarch64_instruction_alu_compute_shifted_reg(ptr noundef %0, i32 noundef 1258291207, i32 noundef %249, i32 noundef %250, i32 noundef %249, i32 noundef 0, i32 noundef 0) #3
  br label %251

251:                                              ; preds = %77, %._crit_edge3758
  ret void
}

declare void @libxsmm_aarch64_instruction_alu_compute_shifted_reg(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

attributes #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 = { 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 #3 = { nounwind }
attributes #4 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 8}
!6 = !{!"libxsmm_meqn_descriptor", !7, i64 0, !7, i64 4, !7, i64 8, !8, i64 12, !7, i64 13}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!6, !8, i64 12}
!11 = !{!12, !7, i64 28}
!12 = !{!"libxsmm_generated_code", !13, i64 0, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28}
!13 = !{!"any pointer", !8, i64 0}
!14 = !{!15, !7, i64 96}
!15 = !{!"libxsmm_matequation_kernel_config_struct", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28, !7, i64 32, !7, i64 36, !7, i64 40, !7, i64 44, !7, i64 48, !7, i64 52, !7, i64 56, !7, i64 60, !7, i64 64, !7, i64 68, !8, i64 72, !7, i64 76, !7, i64 80, !7, i64 84, !7, i64 88, !7, i64 92, !7, i64 96, !7, i64 100, !7, i64 104, !7, i64 108, !7, i64 112, !7, i64 116, !7, i64 120, !7, i64 124, !7, i64 128, !7, i64 132, !7, i64 136, !7, i64 140, !7, i64 144, !7, i64 148, !7, i64 152, !7, i64 156, !7, i64 160, !7, i64 164, !7, i64 168, !7, i64 172, !7, i64 176, !7, i64 180, !7, i64 184, !8, i64 188, !7, i64 316, !7, i64 320, !7, i64 324, !7, i64 328, !13, i64 336, !13, i64 344, !7, i64 352, !7, i64 356, !7, i64 360, !8, i64 364, !8, i64 620, !16, i64 876, !17, i64 1392}
!16 = !{!"libxsmm_mateltwise_kernel_config_struct", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28, !7, i64 32, !7, i64 36, !7, i64 40, !7, i64 44, !7, i64 48, !7, i64 52, !7, i64 56, !7, i64 60, !7, i64 64, !7, i64 68, !7, i64 72, !7, i64 76, !7, i64 80, !7, i64 84, !7, i64 88, !7, i64 92, !7, i64 96, !7, i64 100, !7, i64 104, !7, i64 108, !7, i64 112, !7, i64 116, !7, i64 120, !7, i64 124, !7, i64 128, !7, i64 132, !7, i64 136, !7, i64 140, !7, i64 144, !7, i64 148, !7, i64 152, !7, i64 156, !7, i64 160, !7, i64 164, !7, i64 168, !7, i64 172, !7, i64 176, !7, i64 180, !7, i64 184, !7, i64 188, !7, i64 192, !7, i64 196, !7, i64 200, !7, i64 204, !7, i64 208, !7, i64 212, !7, i64 216, !7, i64 220, !7, i64 224, !7, i64 228, !7, i64 232, !7, i64 236, !7, i64 240, !7, i64 244, !7, i64 248, !7, i64 252, !7, i64 256, !7, i64 260, !7, i64 264, !7, i64 268, !7, i64 272, !7, i64 276, !7, i64 280, !7, i64 284, !7, i64 288, !7, i64 292, !7, i64 296, !7, i64 300, !7, i64 304, !7, i64 308, !7, i64 312, !7, i64 316, !7, i64 320, !7, i64 324, !7, i64 328, !7, i64 332, !7, i64 336, !7, i64 340, !7, i64 344, !7, i64 348, !7, i64 352, !7, i64 356, !7, i64 360, !7, i64 364, !7, i64 368, !7, i64 372, !7, i64 376, !7, i64 380, !7, i64 384, !7, i64 388, !7, i64 392, !7, i64 396, !7, i64 400, !7, i64 404, !7, i64 408, !7, i64 412, !7, i64 416, !7, i64 420, !7, i64 424, !7, i64 428, !7, i64 432, !7, i64 436, !7, i64 440, !7, i64 444, !7, i64 448, !7, i64 452, !7, i64 456, !7, i64 460, !7, i64 464, !7, i64 468, !7, i64 472, !7, i64 476, !7, i64 480, !7, i64 484, !7, i64 488, !7, i64 492, !7, i64 496, !7, i64 500, !7, i64 504, !7, i64 508, !8, i64 512}
!17 = !{!"libxsmm_micro_kernel_config", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28, !7, i64 32, !7, i64 36, !7, i64 40, !7, i64 44, !7, i64 48, !7, i64 52, !7, i64 56, !7, i64 60, !7, i64 64, !7, i64 68, !7, i64 72, !7, i64 76, !7, i64 80, !8, i64 84, !7, i64 88, !7, i64 92, !7, i64 96, !7, i64 100, !7, i64 104, !7, i64 108, !7, i64 112, !7, i64 116, !7, i64 120, !7, i64 124, !7, i64 128, !7, i64 132, !7, i64 136, !7, i64 140, !7, i64 144, !7, i64 148, !7, i64 152, !7, i64 156, !7, i64 160, !7, i64 164, !7, i64 168, !7, i64 172, !7, i64 176, !7, i64 180, !7, i64 184, !7, i64 188, !7, i64 192, !7, i64 196, !7, i64 200, !7, i64 204, !7, i64 208, !7, i64 212, !7, i64 216, !7, i64 220, !7, i64 224, !7, i64 228, !7, i64 232, !7, i64 236, !7, i64 240, !7, i64 244, !7, i64 248, !7, i64 252, !7, i64 256, !7, i64 260, !7, i64 264, !7, i64 268, !7, i64 272, !7, i64 276, !7, i64 280, !7, i64 284, !7, i64 288, !7, i64 292, !7, i64 296, !7, i64 300, !7, i64 304, !7, i64 308, !7, i64 312, !7, i64 316, !7, i64 320, !7, i64 324, !7, i64 328, !7, i64 332, !7, i64 336, !7, i64 340, !7, i64 344, !7, i64 348, !7, i64 352, !7, i64 356, !7, i64 360, !8, i64 364, !8, i64 380, !8, i64 396, !8, i64 412, !8, i64 428, !8, i64 444, !7, i64 460, !8, i64 464, !18, i64 520, !7, i64 556, !7, i64 560, !7, i64 564, !7, i64 568, !7, i64 572, !7, i64 576, !7, i64 580, !7, i64 584, !13, i64 592, !7, i64 600, !7, i64 604, !7, i64 608, !7, i64 612, !13, i64 616, !7, i64 624, !7, i64 628, !7, i64 632, !7, i64 636, !7, i64 640, !7, i64 644, !7, i64 648, !7, i64 652, !7, i64 656, !7, i64 660, !7, i64 664, !7, i64 668, !7, i64 672, !7, i64 676, !7, i64 680}
!18 = !{!"libxsmm_tile_config", !8, i64 0, !19, i64 2, !8, i64 4, !19, i64 6, !8, i64 8, !19, i64 10, !8, i64 12, !19, i64 14, !8, i64 16, !19, i64 18, !8, i64 20, !19, i64 22, !8, i64 24, !19, i64 26, !8, i64 28, !19, i64 30, !8, i64 32}
!19 = !{!"short", !8, i64 0}
!20 = !{!21, !7, i64 20}
!21 = !{!"libxsmm_matequation_gp_reg_mapping_struct", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28, !7, i64 32, !7, i64 36, !7, i64 40, !7, i64 44, !7, i64 48, !7, i64 52, !7, i64 56, !7, i64 60, !7, i64 64, !7, i64 68, !22, i64 72, !23, i64 220}
!22 = !{!"libxsmm_mateltwise_gp_reg_mapping_struct", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28, !7, i64 32, !7, i64 36, !7, i64 40, !7, i64 44, !7, i64 48, !7, i64 52, !7, i64 56, !7, i64 60, !7, i64 64, !7, i64 68, !7, i64 72, !7, i64 76, !7, i64 80, !7, i64 84, !7, i64 88, !7, i64 92, !7, i64 96, !7, i64 100, !7, i64 104, !7, i64 108, !7, i64 112, !7, i64 116, !7, i64 120, !7, i64 124, !7, i64 128, !7, i64 132, !7, i64 136, !7, i64 140, !7, i64 144}
!23 = !{!"libxsmm_gp_reg_mapping_struct", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28, !7, i64 32, !7, i64 36, !7, i64 40, !7, i64 44, !7, i64 48, !7, i64 52, !7, i64 56, !7, i64 60, !7, i64 64, !7, i64 68, !7, i64 72, !7, i64 76, !7, i64 80, !7, i64 84, !7, i64 88, !7, i64 92, !7, i64 96, !7, i64 100, !7, i64 104, !7, i64 108, !7, i64 112, !7, i64 116, !7, i64 120, !7, i64 124, !7, i64 128}
!24 = !{!21, !7, i64 60}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{!15, !7, i64 92}
!28 = !{!15, !7, i64 88}
!29 = !{!15, !7, i64 84}
!30 = !{!15, !7, i64 148}
!31 = !{!21, !7, i64 64}
!32 = distinct !{!32, !26}
!33 = !{!21, !7, i64 44}
!34 = distinct !{!34, !26}
!35 = distinct !{!35, !26}


; Effective O3 passes: ConstantMergePass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass