; 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_store_2d_reg_block_aarch64 = external hidden unnamed_addr constant [275 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 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

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

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

51:                                               ; preds = %44
  br label %204

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

59:                                               ; preds = %52
  br label %202

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

67:                                               ; preds = %60
  br label %200

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

75:                                               ; preds = %68
  br label %198

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

83:                                               ; preds = %76
  br label %196

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

91:                                               ; preds = %84
  br label %194

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

99:                                               ; preds = %92
  br label %192

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

107:                                              ; preds = %100
  br label %190

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

115:                                              ; preds = %108
  br label %188

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

123:                                              ; preds = %116
  br label %186

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

131:                                              ; preds = %124
  br label %184

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

139:                                              ; preds = %132
  br label %182

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

147:                                              ; preds = %140
  br label %180

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

155:                                              ; preds = %148
  br label %178

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

163:                                              ; preds = %156
  br label %176

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

171:                                              ; preds = %164
  br label %174

172:                                              ; preds = %164
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 558, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

173:                                              ; No predecessors!
  br label %174

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

204:                                              ; preds = %202, %51
  %205 = phi i32 [ 0, %51 ], [ %203, %202 ]
  br label %212

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

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

215:                                              ; preds = %212
  br label %2571

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

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

230:                                              ; preds = %223
  br label %383

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

238:                                              ; preds = %231
  br label %381

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

246:                                              ; preds = %239
  br label %379

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

254:                                              ; preds = %247
  br label %377

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

262:                                              ; preds = %255
  br label %375

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

270:                                              ; preds = %263
  br label %373

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

278:                                              ; preds = %271
  br label %371

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

286:                                              ; preds = %279
  br label %369

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

294:                                              ; preds = %287
  br label %367

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

302:                                              ; preds = %295
  br label %365

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

310:                                              ; preds = %303
  br label %363

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

318:                                              ; preds = %311
  br label %361

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

326:                                              ; preds = %319
  br label %359

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

334:                                              ; preds = %327
  br label %357

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

342:                                              ; preds = %335
  br label %355

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

350:                                              ; preds = %343
  br label %353

351:                                              ; preds = %343
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 558, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

352:                                              ; No predecessors!
  br label %353

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

383:                                              ; preds = %381, %230
  %384 = phi i32 [ 0, %230 ], [ %382, %381 ]
  br label %391

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

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

394:                                              ; preds = %391
  br label %2569

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

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

409:                                              ; preds = %402
  br label %562

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

417:                                              ; preds = %410
  br label %560

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

425:                                              ; preds = %418
  br label %558

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

433:                                              ; preds = %426
  br label %556

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

441:                                              ; preds = %434
  br label %554

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

449:                                              ; preds = %442
  br label %552

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

457:                                              ; preds = %450
  br label %550

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

465:                                              ; preds = %458
  br label %548

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

473:                                              ; preds = %466
  br label %546

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

481:                                              ; preds = %474
  br label %544

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

489:                                              ; preds = %482
  br label %542

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

497:                                              ; preds = %490
  br label %540

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

505:                                              ; preds = %498
  br label %538

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

513:                                              ; preds = %506
  br label %536

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

521:                                              ; preds = %514
  br label %534

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

529:                                              ; preds = %522
  br label %532

530:                                              ; preds = %522
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 558, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

531:                                              ; No predecessors!
  br label %532

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

562:                                              ; preds = %560, %409
  %563 = phi i32 [ 0, %409 ], [ %561, %560 ]
  br label %570

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

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

573:                                              ; preds = %570
  br label %2567

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

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

588:                                              ; preds = %581
  br label %741

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

596:                                              ; preds = %589
  br label %739

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

604:                                              ; preds = %597
  br label %737

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

612:                                              ; preds = %605
  br label %735

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

620:                                              ; preds = %613
  br label %733

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

628:                                              ; preds = %621
  br label %731

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

636:                                              ; preds = %629
  br label %729

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

644:                                              ; preds = %637
  br label %727

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

652:                                              ; preds = %645
  br label %725

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

660:                                              ; preds = %653
  br label %723

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

668:                                              ; preds = %661
  br label %721

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

676:                                              ; preds = %669
  br label %719

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

684:                                              ; preds = %677
  br label %717

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

692:                                              ; preds = %685
  br label %715

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

700:                                              ; preds = %693
  br label %713

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

708:                                              ; preds = %701
  br label %711

709:                                              ; preds = %701
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 558, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

710:                                              ; No predecessors!
  br label %711

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

752:                                              ; preds = %749
  br label %2565

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

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

767:                                              ; preds = %760
  br label %920

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

775:                                              ; preds = %768
  br label %918

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

783:                                              ; preds = %776
  br label %916

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

791:                                              ; preds = %784
  br label %914

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

799:                                              ; preds = %792
  br label %912

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

807:                                              ; preds = %800
  br label %910

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

815:                                              ; preds = %808
  br label %908

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

823:                                              ; preds = %816
  br label %906

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

831:                                              ; preds = %824
  br label %904

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

839:                                              ; preds = %832
  br label %902

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

847:                                              ; preds = %840
  br label %900

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

855:                                              ; preds = %848
  br label %898

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

863:                                              ; preds = %856
  br label %896

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

871:                                              ; preds = %864
  br label %894

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

879:                                              ; preds = %872
  br label %892

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

887:                                              ; preds = %880
  br label %890

888:                                              ; preds = %880
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 558, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

889:                                              ; No predecessors!
  br label %890

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

920:                                              ; preds = %918, %767
  %921 = phi i32 [ 0, %767 ], [ %919, %918 ]
  br label %928

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

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

931:                                              ; preds = %928
  br label %2563

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

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

946:                                              ; preds = %939
  br label %1099

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

954:                                              ; preds = %947
  br label %1097

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

962:                                              ; preds = %955
  br label %1095

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

970:                                              ; preds = %963
  br label %1093

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

978:                                              ; preds = %971
  br label %1091

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

986:                                              ; preds = %979
  br label %1089

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

994:                                              ; preds = %987
  br label %1087

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

1002:                                             ; preds = %995
  br label %1085

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

1010:                                             ; preds = %1003
  br label %1083

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

1018:                                             ; preds = %1011
  br label %1081

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

1026:                                             ; preds = %1019
  br label %1079

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

1034:                                             ; preds = %1027
  br label %1077

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

1042:                                             ; preds = %1035
  br label %1075

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

1050:                                             ; preds = %1043
  br label %1073

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

1058:                                             ; preds = %1051
  br label %1071

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

1066:                                             ; preds = %1059
  br label %1069

1067:                                             ; preds = %1059
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 558, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

1068:                                             ; No predecessors!
  br label %1069

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1099:                                             ; preds = %1097, %946
  %1100 = phi i32 [ 0, %946 ], [ %1098, %1097 ]
  br label %1107

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

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

1110:                                             ; preds = %1107
  br label %2561

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

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

1125:                                             ; preds = %1118
  br label %1278

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

1133:                                             ; preds = %1126
  br label %1276

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

1141:                                             ; preds = %1134
  br label %1274

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

1149:                                             ; preds = %1142
  br label %1272

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

1157:                                             ; preds = %1150
  br label %1270

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

1165:                                             ; preds = %1158
  br label %1268

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

1173:                                             ; preds = %1166
  br label %1266

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

1181:                                             ; preds = %1174
  br label %1264

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

1189:                                             ; preds = %1182
  br label %1262

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

1197:                                             ; preds = %1190
  br label %1260

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

1205:                                             ; preds = %1198
  br label %1258

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

1213:                                             ; preds = %1206
  br label %1256

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

1221:                                             ; preds = %1214
  br label %1254

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

1229:                                             ; preds = %1222
  br label %1252

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

1237:                                             ; preds = %1230
  br label %1250

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

1245:                                             ; preds = %1238
  br label %1248

1246:                                             ; preds = %1238
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 558, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

1247:                                             ; No predecessors!
  br label %1248

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1278:                                             ; preds = %1276, %1125
  %1279 = phi i32 [ 0, %1125 ], [ %1277, %1276 ]
  br label %1286

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

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

1289:                                             ; preds = %1286
  br label %2559

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

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

1304:                                             ; preds = %1297
  br label %1457

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

1312:                                             ; preds = %1305
  br label %1455

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

1320:                                             ; preds = %1313
  br label %1453

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

1328:                                             ; preds = %1321
  br label %1451

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

1336:                                             ; preds = %1329
  br label %1449

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

1344:                                             ; preds = %1337
  br label %1447

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

1352:                                             ; preds = %1345
  br label %1445

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

1360:                                             ; preds = %1353
  br label %1443

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

1368:                                             ; preds = %1361
  br label %1441

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

1376:                                             ; preds = %1369
  br label %1439

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

1384:                                             ; preds = %1377
  br label %1437

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

1392:                                             ; preds = %1385
  br label %1435

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

1400:                                             ; preds = %1393
  br label %1433

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

1408:                                             ; preds = %1401
  br label %1431

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

1416:                                             ; preds = %1409
  br label %1429

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

1424:                                             ; preds = %1417
  br label %1427

1425:                                             ; preds = %1417
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 558, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

1426:                                             ; No predecessors!
  br label %1427

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1457:                                             ; preds = %1455, %1304
  %1458 = phi i32 [ 0, %1304 ], [ %1456, %1455 ]
  br label %1465

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

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

1468:                                             ; preds = %1465
  br label %2557

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

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

1483:                                             ; preds = %1476
  br label %1636

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

1491:                                             ; preds = %1484
  br label %1634

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

1499:                                             ; preds = %1492
  br label %1632

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

1507:                                             ; preds = %1500
  br label %1630

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

1515:                                             ; preds = %1508
  br label %1628

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

1523:                                             ; preds = %1516
  br label %1626

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

1531:                                             ; preds = %1524
  br label %1624

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

1539:                                             ; preds = %1532
  br label %1622

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

1547:                                             ; preds = %1540
  br label %1620

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

1555:                                             ; preds = %1548
  br label %1618

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

1563:                                             ; preds = %1556
  br label %1616

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

1571:                                             ; preds = %1564
  br label %1614

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

1579:                                             ; preds = %1572
  br label %1612

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

1587:                                             ; preds = %1580
  br label %1610

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

1595:                                             ; preds = %1588
  br label %1608

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

1603:                                             ; preds = %1596
  br label %1606

1604:                                             ; preds = %1596
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 558, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

1605:                                             ; No predecessors!
  br label %1606

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1636:                                             ; preds = %1634, %1483
  %1637 = phi i32 [ 0, %1483 ], [ %1635, %1634 ]
  br label %1644

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

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

1647:                                             ; preds = %1644
  br label %2555

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

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

1662:                                             ; preds = %1655
  br label %1815

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

1670:                                             ; preds = %1663
  br label %1813

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

1678:                                             ; preds = %1671
  br label %1811

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

1686:                                             ; preds = %1679
  br label %1809

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

1694:                                             ; preds = %1687
  br label %1807

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

1702:                                             ; preds = %1695
  br label %1805

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

1710:                                             ; preds = %1703
  br label %1803

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

1718:                                             ; preds = %1711
  br label %1801

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

1726:                                             ; preds = %1719
  br label %1799

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

1734:                                             ; preds = %1727
  br label %1797

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

1742:                                             ; preds = %1735
  br label %1795

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

1750:                                             ; preds = %1743
  br label %1793

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

1758:                                             ; preds = %1751
  br label %1791

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

1766:                                             ; preds = %1759
  br label %1789

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

1774:                                             ; preds = %1767
  br label %1787

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

1782:                                             ; preds = %1775
  br label %1785

1783:                                             ; preds = %1775
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 558, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

1784:                                             ; No predecessors!
  br label %1785

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1815:                                             ; preds = %1813, %1662
  %1816 = phi i32 [ 0, %1662 ], [ %1814, %1813 ]
  br label %1823

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

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

1826:                                             ; preds = %1823
  br label %2553

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

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

1841:                                             ; preds = %1834
  br label %1994

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

1849:                                             ; preds = %1842
  br label %1992

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

1857:                                             ; preds = %1850
  br label %1990

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

1865:                                             ; preds = %1858
  br label %1988

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

1873:                                             ; preds = %1866
  br label %1986

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

1881:                                             ; preds = %1874
  br label %1984

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

1889:                                             ; preds = %1882
  br label %1982

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

1897:                                             ; preds = %1890
  br label %1980

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

1905:                                             ; preds = %1898
  br label %1978

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

1913:                                             ; preds = %1906
  br label %1976

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

1921:                                             ; preds = %1914
  br label %1974

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

1929:                                             ; preds = %1922
  br label %1972

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

1937:                                             ; preds = %1930
  br label %1970

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

1945:                                             ; preds = %1938
  br label %1968

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

1953:                                             ; preds = %1946
  br label %1966

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

1961:                                             ; preds = %1954
  br label %1964

1962:                                             ; preds = %1954
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 558, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

1963:                                             ; No predecessors!
  br label %1964

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1994:                                             ; preds = %1992, %1841
  %1995 = phi i32 [ 0, %1841 ], [ %1993, %1992 ]
  br label %2002

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

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

2005:                                             ; preds = %2002
  br label %2551

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

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

2020:                                             ; preds = %2013
  br label %2173

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

2028:                                             ; preds = %2021
  br label %2171

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

2036:                                             ; preds = %2029
  br label %2169

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

2044:                                             ; preds = %2037
  br label %2167

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

2052:                                             ; preds = %2045
  br label %2165

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

2060:                                             ; preds = %2053
  br label %2163

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

2068:                                             ; preds = %2061
  br label %2161

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

2076:                                             ; preds = %2069
  br label %2159

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

2084:                                             ; preds = %2077
  br label %2157

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

2092:                                             ; preds = %2085
  br label %2155

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

2100:                                             ; preds = %2093
  br label %2153

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

2108:                                             ; preds = %2101
  br label %2151

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

2116:                                             ; preds = %2109
  br label %2149

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

2124:                                             ; preds = %2117
  br label %2147

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

2132:                                             ; preds = %2125
  br label %2145

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

2140:                                             ; preds = %2133
  br label %2143

2141:                                             ; preds = %2133
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 558, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

2142:                                             ; No predecessors!
  br label %2143

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2173:                                             ; preds = %2171, %2020
  %2174 = phi i32 [ 0, %2020 ], [ %2172, %2171 ]
  br label %2181

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

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

2184:                                             ; preds = %2181
  br label %2549

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

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

2199:                                             ; preds = %2192
  br label %2352

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

2207:                                             ; preds = %2200
  br label %2350

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

2215:                                             ; preds = %2208
  br label %2348

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

2223:                                             ; preds = %2216
  br label %2346

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

2231:                                             ; preds = %2224
  br label %2344

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

2239:                                             ; preds = %2232
  br label %2342

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

2247:                                             ; preds = %2240
  br label %2340

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

2255:                                             ; preds = %2248
  br label %2338

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

2263:                                             ; preds = %2256
  br label %2336

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

2271:                                             ; preds = %2264
  br label %2334

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

2279:                                             ; preds = %2272
  br label %2332

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

2287:                                             ; preds = %2280
  br label %2330

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

2295:                                             ; preds = %2288
  br label %2328

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

2303:                                             ; preds = %2296
  br label %2326

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

2311:                                             ; preds = %2304
  br label %2324

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

2319:                                             ; preds = %2312
  br label %2322

2320:                                             ; preds = %2312
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 558, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

2321:                                             ; No predecessors!
  br label %2322

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2352:                                             ; preds = %2350, %2199
  %2353 = phi i32 [ 0, %2199 ], [ %2351, %2350 ]
  br label %2360

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

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

2363:                                             ; preds = %2360
  br label %2547

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

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

2378:                                             ; preds = %2371
  br label %2531

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

2386:                                             ; preds = %2379
  br label %2529

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

2394:                                             ; preds = %2387
  br label %2527

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

2402:                                             ; preds = %2395
  br label %2525

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

2410:                                             ; preds = %2403
  br label %2523

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

2418:                                             ; preds = %2411
  br label %2521

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

2426:                                             ; preds = %2419
  br label %2519

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

2434:                                             ; preds = %2427
  br label %2517

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

2442:                                             ; preds = %2435
  br label %2515

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

2450:                                             ; preds = %2443
  br label %2513

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

2458:                                             ; preds = %2451
  br label %2511

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

2466:                                             ; preds = %2459
  br label %2509

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

2474:                                             ; preds = %2467
  br label %2507

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

2482:                                             ; preds = %2475
  br label %2505

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

2490:                                             ; preds = %2483
  br label %2503

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

2498:                                             ; preds = %2491
  br label %2501

2499:                                             ; preds = %2491
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 558, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

2500:                                             ; No predecessors!
  br label %2501

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2531:                                             ; preds = %2529, %2378
  %2532 = phi i32 [ 0, %2378 ], [ %2530, %2529 ]
  br label %2539

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

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

2542:                                             ; preds = %2539
  br label %2545

2543:                                             ; preds = %2539
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 558, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

2544:                                             ; No predecessors!
  br label %2545

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2590:                                             ; preds = %2583
  br label %2743

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

2598:                                             ; preds = %2591
  br label %2741

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

2606:                                             ; preds = %2599
  br label %2739

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

2614:                                             ; preds = %2607
  br label %2737

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

2622:                                             ; preds = %2615
  br label %2735

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

2630:                                             ; preds = %2623
  br label %2733

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

2638:                                             ; preds = %2631
  br label %2731

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

2646:                                             ; preds = %2639
  br label %2729

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

2654:                                             ; preds = %2647
  br label %2727

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

2662:                                             ; preds = %2655
  br label %2725

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

2670:                                             ; preds = %2663
  br label %2723

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

2678:                                             ; preds = %2671
  br label %2721

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

2686:                                             ; preds = %2679
  br label %2719

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

2694:                                             ; preds = %2687
  br label %2717

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

2702:                                             ; preds = %2695
  br label %2715

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

2710:                                             ; preds = %2703
  br label %2713

2711:                                             ; preds = %2703
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

2712:                                             ; No predecessors!
  br label %2713

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2743:                                             ; preds = %2741, %2590
  %2744 = phi i32 [ 0, %2590 ], [ %2742, %2741 ]
  br label %2751

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

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

2754:                                             ; preds = %2751
  br label %5110

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

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

2769:                                             ; preds = %2762
  br label %2922

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

2777:                                             ; preds = %2770
  br label %2920

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

2785:                                             ; preds = %2778
  br label %2918

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

2793:                                             ; preds = %2786
  br label %2916

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

2801:                                             ; preds = %2794
  br label %2914

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

2809:                                             ; preds = %2802
  br label %2912

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

2817:                                             ; preds = %2810
  br label %2910

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

2825:                                             ; preds = %2818
  br label %2908

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

2833:                                             ; preds = %2826
  br label %2906

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

2841:                                             ; preds = %2834
  br label %2904

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

2849:                                             ; preds = %2842
  br label %2902

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

2857:                                             ; preds = %2850
  br label %2900

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

2865:                                             ; preds = %2858
  br label %2898

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

2873:                                             ; preds = %2866
  br label %2896

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

2881:                                             ; preds = %2874
  br label %2894

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

2889:                                             ; preds = %2882
  br label %2892

2890:                                             ; preds = %2882
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

2891:                                             ; No predecessors!
  br label %2892

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2922:                                             ; preds = %2920, %2769
  %2923 = phi i32 [ 0, %2769 ], [ %2921, %2920 ]
  br label %2930

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

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

2933:                                             ; preds = %2930
  br label %5108

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

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

2948:                                             ; preds = %2941
  br label %3101

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

2956:                                             ; preds = %2949
  br label %3099

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

2964:                                             ; preds = %2957
  br label %3097

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

2972:                                             ; preds = %2965
  br label %3095

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

2980:                                             ; preds = %2973
  br label %3093

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

2988:                                             ; preds = %2981
  br label %3091

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

2996:                                             ; preds = %2989
  br label %3089

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

3004:                                             ; preds = %2997
  br label %3087

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

3012:                                             ; preds = %3005
  br label %3085

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

3020:                                             ; preds = %3013
  br label %3083

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

3028:                                             ; preds = %3021
  br label %3081

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

3036:                                             ; preds = %3029
  br label %3079

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

3044:                                             ; preds = %3037
  br label %3077

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

3052:                                             ; preds = %3045
  br label %3075

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

3060:                                             ; preds = %3053
  br label %3073

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

3068:                                             ; preds = %3061
  br label %3071

3069:                                             ; preds = %3061
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

3070:                                             ; No predecessors!
  br label %3071

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3101:                                             ; preds = %3099, %2948
  %3102 = phi i32 [ 0, %2948 ], [ %3100, %3099 ]
  br label %3109

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

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

3112:                                             ; preds = %3109
  br label %5106

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

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

3127:                                             ; preds = %3120
  br label %3280

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

3135:                                             ; preds = %3128
  br label %3278

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

3143:                                             ; preds = %3136
  br label %3276

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

3151:                                             ; preds = %3144
  br label %3274

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

3159:                                             ; preds = %3152
  br label %3272

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

3167:                                             ; preds = %3160
  br label %3270

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

3175:                                             ; preds = %3168
  br label %3268

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

3183:                                             ; preds = %3176
  br label %3266

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

3191:                                             ; preds = %3184
  br label %3264

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

3199:                                             ; preds = %3192
  br label %3262

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

3207:                                             ; preds = %3200
  br label %3260

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

3215:                                             ; preds = %3208
  br label %3258

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

3223:                                             ; preds = %3216
  br label %3256

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

3231:                                             ; preds = %3224
  br label %3254

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

3239:                                             ; preds = %3232
  br label %3252

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

3247:                                             ; preds = %3240
  br label %3250

3248:                                             ; preds = %3240
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

3249:                                             ; No predecessors!
  br label %3250

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3280:                                             ; preds = %3278, %3127
  %3281 = phi i32 [ 0, %3127 ], [ %3279, %3278 ]
  br label %3288

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

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

3291:                                             ; preds = %3288
  br label %5104

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

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

3306:                                             ; preds = %3299
  br label %3459

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

3314:                                             ; preds = %3307
  br label %3457

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

3322:                                             ; preds = %3315
  br label %3455

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

3330:                                             ; preds = %3323
  br label %3453

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

3338:                                             ; preds = %3331
  br label %3451

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

3346:                                             ; preds = %3339
  br label %3449

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

3354:                                             ; preds = %3347
  br label %3447

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

3362:                                             ; preds = %3355
  br label %3445

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

3370:                                             ; preds = %3363
  br label %3443

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

3378:                                             ; preds = %3371
  br label %3441

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

3386:                                             ; preds = %3379
  br label %3439

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

3394:                                             ; preds = %3387
  br label %3437

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

3402:                                             ; preds = %3395
  br label %3435

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

3410:                                             ; preds = %3403
  br label %3433

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

3418:                                             ; preds = %3411
  br label %3431

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

3426:                                             ; preds = %3419
  br label %3429

3427:                                             ; preds = %3419
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

3428:                                             ; No predecessors!
  br label %3429

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3459:                                             ; preds = %3457, %3306
  %3460 = phi i32 [ 0, %3306 ], [ %3458, %3457 ]
  br label %3467

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

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

3470:                                             ; preds = %3467
  br label %5102

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

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

3485:                                             ; preds = %3478
  br label %3638

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

3493:                                             ; preds = %3486
  br label %3636

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

3501:                                             ; preds = %3494
  br label %3634

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

3509:                                             ; preds = %3502
  br label %3632

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

3517:                                             ; preds = %3510
  br label %3630

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

3525:                                             ; preds = %3518
  br label %3628

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

3533:                                             ; preds = %3526
  br label %3626

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

3541:                                             ; preds = %3534
  br label %3624

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

3549:                                             ; preds = %3542
  br label %3622

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

3557:                                             ; preds = %3550
  br label %3620

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

3565:                                             ; preds = %3558
  br label %3618

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

3573:                                             ; preds = %3566
  br label %3616

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

3581:                                             ; preds = %3574
  br label %3614

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

3589:                                             ; preds = %3582
  br label %3612

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

3597:                                             ; preds = %3590
  br label %3610

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

3605:                                             ; preds = %3598
  br label %3608

3606:                                             ; preds = %3598
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

3607:                                             ; No predecessors!
  br label %3608

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3638:                                             ; preds = %3636, %3485
  %3639 = phi i32 [ 0, %3485 ], [ %3637, %3636 ]
  br label %3646

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

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

3649:                                             ; preds = %3646
  br label %5100

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

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

3664:                                             ; preds = %3657
  br label %3817

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

3672:                                             ; preds = %3665
  br label %3815

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

3680:                                             ; preds = %3673
  br label %3813

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

3688:                                             ; preds = %3681
  br label %3811

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

3696:                                             ; preds = %3689
  br label %3809

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

3704:                                             ; preds = %3697
  br label %3807

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

3712:                                             ; preds = %3705
  br label %3805

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

3720:                                             ; preds = %3713
  br label %3803

3721:                                             ; preds = %3713
  %3722 = load ptr, ptr %14, align 8, !tbaa !5
  %3723 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3722, i32 0, i32 3
  %3724 = load i8, ptr %3723, align 1, !tbaa !13
  %3725 = zext i8 %3724 to i32
  %3726 = and i32 %3725, 15
  %3727 = icmp eq i32 8, %3726
  br i1 %3727, label %3728, label %3729

3728:                                             ; preds = %3721
  br label %3801

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

3736:                                             ; preds = %3729
  br label %3799

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

3744:                                             ; preds = %3737
  br label %3797

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

3752:                                             ; preds = %3745
  br label %3795

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

3760:                                             ; preds = %3753
  br label %3793

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

3768:                                             ; preds = %3761
  br label %3791

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

3776:                                             ; preds = %3769
  br label %3789

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

3784:                                             ; preds = %3777
  br label %3787

3785:                                             ; preds = %3777
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

3786:                                             ; No predecessors!
  br label %3787

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3817:                                             ; preds = %3815, %3664
  %3818 = phi i32 [ 0, %3664 ], [ %3816, %3815 ]
  br label %3825

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

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

3828:                                             ; preds = %3825
  br label %5098

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

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

3843:                                             ; preds = %3836
  br label %3996

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

3851:                                             ; preds = %3844
  br label %3994

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

3859:                                             ; preds = %3852
  br label %3992

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

3867:                                             ; preds = %3860
  br label %3990

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

3875:                                             ; preds = %3868
  br label %3988

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

3883:                                             ; preds = %3876
  br label %3986

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

3891:                                             ; preds = %3884
  br label %3984

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

3899:                                             ; preds = %3892
  br label %3982

3900:                                             ; preds = %3892
  %3901 = load ptr, ptr %14, align 8, !tbaa !5
  %3902 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3901, i32 0, i32 3
  %3903 = load i8, ptr %3902, align 1, !tbaa !13
  %3904 = zext i8 %3903 to i32
  %3905 = and i32 %3904, 15
  %3906 = icmp eq i32 8, %3905
  br i1 %3906, label %3907, label %3908

3907:                                             ; preds = %3900
  br label %3980

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

3915:                                             ; preds = %3908
  br label %3978

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

3923:                                             ; preds = %3916
  br label %3976

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

3931:                                             ; preds = %3924
  br label %3974

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

3939:                                             ; preds = %3932
  br label %3972

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

3947:                                             ; preds = %3940
  br label %3970

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

3955:                                             ; preds = %3948
  br label %3968

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

3963:                                             ; preds = %3956
  br label %3966

3964:                                             ; preds = %3956
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

3965:                                             ; No predecessors!
  br label %3966

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

3968:                                             ; preds = %3966, %3955
  %3969 = phi i32 [ 14, %3955 ], [ %3967, %3966 ]
  br label %3970

3970:                                             ; preds = %3968, %3947
  %3971 = phi i32 [ 12, %3947 ], [ %3969, %3968 ]
  br label %3972

3972:                                             ; preds = %3970, %3939
  %3973 = phi i32 [ 12, %3939 ], [ %3971, %3970 ]
  br label %3974

3974:                                             ; preds = %3972, %3931
  %3975 = phi i32 [ 10, %3931 ], [ %3973, %3972 ]
  br label %3976

3976:                                             ; preds = %3974, %3923
  %3977 = phi i32 [ 10, %3923 ], [ %3975, %3974 ]
  br label %3978

3978:                                             ; preds = %3976, %3915
  %3979 = phi i32 [ 8, %3915 ], [ %3977, %3976 ]
  br label %3980

3980:                                             ; preds = %3978, %3907
  %3981 = phi i32 [ 8, %3907 ], [ %3979, %3978 ]
  br label %3982

3982:                                             ; preds = %3980, %3899
  %3983 = phi i32 [ 6, %3899 ], [ %3981, %3980 ]
  br label %3984

3984:                                             ; preds = %3982, %3891
  %3985 = phi i32 [ 6, %3891 ], [ %3983, %3982 ]
  br label %3986

3986:                                             ; preds = %3984, %3883
  %3987 = phi i32 [ 5, %3883 ], [ %3985, %3984 ]
  br label %3988

3988:                                             ; preds = %3986, %3875
  %3989 = phi i32 [ 4, %3875 ], [ %3987, %3986 ]
  br label %3990

3990:                                             ; preds = %3988, %3867
  %3991 = phi i32 [ 3, %3867 ], [ %3989, %3988 ]
  br label %3992

3992:                                             ; preds = %3990, %3859
  %3993 = phi i32 [ 2, %3859 ], [ %3991, %3990 ]
  br label %3994

3994:                                             ; preds = %3992, %3851
  %3995 = phi i32 [ 1, %3851 ], [ %3993, %3992 ]
  br label %3996

3996:                                             ; preds = %3994, %3843
  %3997 = phi i32 [ 0, %3843 ], [ %3995, %3994 ]
  br label %4004

3998:                                             ; preds = %3829
  %3999 = load ptr, ptr %14, align 8, !tbaa !5
  %4000 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %3999, i32 0, i32 3
  %4001 = load i8, ptr %4000, align 1, !tbaa !13
  %4002 = zext i8 %4001 to i32
  %4003 = ashr i32 %4002, 4
  br label %4004

4004:                                             ; preds = %3998, %3996
  %4005 = phi i32 [ %3997, %3996 ], [ %4003, %3998 ]
  %4006 = icmp eq i32 7, %4005
  br i1 %4006, label %4007, label %4008

4007:                                             ; preds = %4004
  br label %5096

4008:                                             ; preds = %4004
  %4009 = load ptr, ptr %14, align 8, !tbaa !5
  %4010 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4009, i32 0, i32 3
  %4011 = load i8, ptr %4010, align 1, !tbaa !13
  %4012 = zext i8 %4011 to i32
  %4013 = ashr i32 %4012, 4
  %4014 = icmp eq i32 0, %4013
  br i1 %4014, label %4015, label %4177

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

4022:                                             ; preds = %4015
  br label %4175

4023:                                             ; preds = %4015
  %4024 = load ptr, ptr %14, align 8, !tbaa !5
  %4025 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4024, i32 0, i32 3
  %4026 = load i8, ptr %4025, align 1, !tbaa !13
  %4027 = zext i8 %4026 to i32
  %4028 = and i32 %4027, 15
  %4029 = icmp eq i32 1, %4028
  br i1 %4029, label %4030, label %4031

4030:                                             ; preds = %4023
  br label %4173

4031:                                             ; preds = %4023
  %4032 = load ptr, ptr %14, align 8, !tbaa !5
  %4033 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4032, i32 0, i32 3
  %4034 = load i8, ptr %4033, align 1, !tbaa !13
  %4035 = zext i8 %4034 to i32
  %4036 = and i32 %4035, 15
  %4037 = icmp eq i32 2, %4036
  br i1 %4037, label %4038, label %4039

4038:                                             ; preds = %4031
  br label %4171

4039:                                             ; preds = %4031
  %4040 = load ptr, ptr %14, align 8, !tbaa !5
  %4041 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4040, i32 0, i32 3
  %4042 = load i8, ptr %4041, align 1, !tbaa !13
  %4043 = zext i8 %4042 to i32
  %4044 = and i32 %4043, 15
  %4045 = icmp eq i32 3, %4044
  br i1 %4045, label %4046, label %4047

4046:                                             ; preds = %4039
  br label %4169

4047:                                             ; preds = %4039
  %4048 = load ptr, ptr %14, align 8, !tbaa !5
  %4049 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4048, i32 0, i32 3
  %4050 = load i8, ptr %4049, align 1, !tbaa !13
  %4051 = zext i8 %4050 to i32
  %4052 = and i32 %4051, 15
  %4053 = icmp eq i32 4, %4052
  br i1 %4053, label %4054, label %4055

4054:                                             ; preds = %4047
  br label %4167

4055:                                             ; preds = %4047
  %4056 = load ptr, ptr %14, align 8, !tbaa !5
  %4057 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4056, i32 0, i32 3
  %4058 = load i8, ptr %4057, align 1, !tbaa !13
  %4059 = zext i8 %4058 to i32
  %4060 = and i32 %4059, 15
  %4061 = icmp eq i32 5, %4060
  br i1 %4061, label %4062, label %4063

4062:                                             ; preds = %4055
  br label %4165

4063:                                             ; preds = %4055
  %4064 = load ptr, ptr %14, align 8, !tbaa !5
  %4065 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4064, i32 0, i32 3
  %4066 = load i8, ptr %4065, align 1, !tbaa !13
  %4067 = zext i8 %4066 to i32
  %4068 = and i32 %4067, 15
  %4069 = icmp eq i32 6, %4068
  br i1 %4069, label %4070, label %4071

4070:                                             ; preds = %4063
  br label %4163

4071:                                             ; preds = %4063
  %4072 = load ptr, ptr %14, align 8, !tbaa !5
  %4073 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4072, i32 0, i32 3
  %4074 = load i8, ptr %4073, align 1, !tbaa !13
  %4075 = zext i8 %4074 to i32
  %4076 = and i32 %4075, 15
  %4077 = icmp eq i32 7, %4076
  br i1 %4077, label %4078, label %4079

4078:                                             ; preds = %4071
  br label %4161

4079:                                             ; preds = %4071
  %4080 = load ptr, ptr %14, align 8, !tbaa !5
  %4081 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4080, i32 0, i32 3
  %4082 = load i8, ptr %4081, align 1, !tbaa !13
  %4083 = zext i8 %4082 to i32
  %4084 = and i32 %4083, 15
  %4085 = icmp eq i32 8, %4084
  br i1 %4085, label %4086, label %4087

4086:                                             ; preds = %4079
  br label %4159

4087:                                             ; preds = %4079
  %4088 = load ptr, ptr %14, align 8, !tbaa !5
  %4089 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4088, i32 0, i32 3
  %4090 = load i8, ptr %4089, align 1, !tbaa !13
  %4091 = zext i8 %4090 to i32
  %4092 = and i32 %4091, 15
  %4093 = icmp eq i32 9, %4092
  br i1 %4093, label %4094, label %4095

4094:                                             ; preds = %4087
  br label %4157

4095:                                             ; preds = %4087
  %4096 = load ptr, ptr %14, align 8, !tbaa !5
  %4097 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4096, i32 0, i32 3
  %4098 = load i8, ptr %4097, align 1, !tbaa !13
  %4099 = zext i8 %4098 to i32
  %4100 = and i32 %4099, 15
  %4101 = icmp eq i32 10, %4100
  br i1 %4101, label %4102, label %4103

4102:                                             ; preds = %4095
  br label %4155

4103:                                             ; preds = %4095
  %4104 = load ptr, ptr %14, align 8, !tbaa !5
  %4105 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4104, i32 0, i32 3
  %4106 = load i8, ptr %4105, align 1, !tbaa !13
  %4107 = zext i8 %4106 to i32
  %4108 = and i32 %4107, 15
  %4109 = icmp eq i32 11, %4108
  br i1 %4109, label %4110, label %4111

4110:                                             ; preds = %4103
  br label %4153

4111:                                             ; preds = %4103
  %4112 = load ptr, ptr %14, align 8, !tbaa !5
  %4113 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4112, i32 0, i32 3
  %4114 = load i8, ptr %4113, align 1, !tbaa !13
  %4115 = zext i8 %4114 to i32
  %4116 = and i32 %4115, 15
  %4117 = icmp eq i32 12, %4116
  br i1 %4117, label %4118, label %4119

4118:                                             ; preds = %4111
  br label %4151

4119:                                             ; preds = %4111
  %4120 = load ptr, ptr %14, align 8, !tbaa !5
  %4121 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4120, i32 0, i32 3
  %4122 = load i8, ptr %4121, align 1, !tbaa !13
  %4123 = zext i8 %4122 to i32
  %4124 = and i32 %4123, 15
  %4125 = icmp eq i32 13, %4124
  br i1 %4125, label %4126, label %4127

4126:                                             ; preds = %4119
  br label %4149

4127:                                             ; preds = %4119
  %4128 = load ptr, ptr %14, align 8, !tbaa !5
  %4129 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4128, i32 0, i32 3
  %4130 = load i8, ptr %4129, align 1, !tbaa !13
  %4131 = zext i8 %4130 to i32
  %4132 = and i32 %4131, 15
  %4133 = icmp eq i32 14, %4132
  br i1 %4133, label %4134, label %4135

4134:                                             ; preds = %4127
  br label %4147

4135:                                             ; preds = %4127
  %4136 = load ptr, ptr %14, align 8, !tbaa !5
  %4137 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4136, i32 0, i32 3
  %4138 = load i8, ptr %4137, align 1, !tbaa !13
  %4139 = zext i8 %4138 to i32
  %4140 = and i32 %4139, 15
  %4141 = icmp eq i32 15, %4140
  br i1 %4141, label %4142, label %4143

4142:                                             ; preds = %4135
  br label %4145

4143:                                             ; preds = %4135
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

4144:                                             ; No predecessors!
  br label %4145

4145:                                             ; preds = %4144, %4142
  %4146 = phi i32 [ 15, %4142 ], [ 0, %4144 ]
  br label %4147

4147:                                             ; preds = %4145, %4134
  %4148 = phi i32 [ 14, %4134 ], [ %4146, %4145 ]
  br label %4149

4149:                                             ; preds = %4147, %4126
  %4150 = phi i32 [ 12, %4126 ], [ %4148, %4147 ]
  br label %4151

4151:                                             ; preds = %4149, %4118
  %4152 = phi i32 [ 12, %4118 ], [ %4150, %4149 ]
  br label %4153

4153:                                             ; preds = %4151, %4110
  %4154 = phi i32 [ 10, %4110 ], [ %4152, %4151 ]
  br label %4155

4155:                                             ; preds = %4153, %4102
  %4156 = phi i32 [ 10, %4102 ], [ %4154, %4153 ]
  br label %4157

4157:                                             ; preds = %4155, %4094
  %4158 = phi i32 [ 8, %4094 ], [ %4156, %4155 ]
  br label %4159

4159:                                             ; preds = %4157, %4086
  %4160 = phi i32 [ 8, %4086 ], [ %4158, %4157 ]
  br label %4161

4161:                                             ; preds = %4159, %4078
  %4162 = phi i32 [ 6, %4078 ], [ %4160, %4159 ]
  br label %4163

4163:                                             ; preds = %4161, %4070
  %4164 = phi i32 [ 6, %4070 ], [ %4162, %4161 ]
  br label %4165

4165:                                             ; preds = %4163, %4062
  %4166 = phi i32 [ 5, %4062 ], [ %4164, %4163 ]
  br label %4167

4167:                                             ; preds = %4165, %4054
  %4168 = phi i32 [ 4, %4054 ], [ %4166, %4165 ]
  br label %4169

4169:                                             ; preds = %4167, %4046
  %4170 = phi i32 [ 3, %4046 ], [ %4168, %4167 ]
  br label %4171

4171:                                             ; preds = %4169, %4038
  %4172 = phi i32 [ 2, %4038 ], [ %4170, %4169 ]
  br label %4173

4173:                                             ; preds = %4171, %4030
  %4174 = phi i32 [ 1, %4030 ], [ %4172, %4171 ]
  br label %4175

4175:                                             ; preds = %4173, %4022
  %4176 = phi i32 [ 0, %4022 ], [ %4174, %4173 ]
  br label %4183

4177:                                             ; preds = %4008
  %4178 = load ptr, ptr %14, align 8, !tbaa !5
  %4179 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4178, i32 0, i32 3
  %4180 = load i8, ptr %4179, align 1, !tbaa !13
  %4181 = zext i8 %4180 to i32
  %4182 = ashr i32 %4181, 4
  br label %4183

4183:                                             ; preds = %4177, %4175
  %4184 = phi i32 [ %4176, %4175 ], [ %4182, %4177 ]
  %4185 = icmp eq i32 8, %4184
  br i1 %4185, label %4186, label %4187

4186:                                             ; preds = %4183
  br label %5094

4187:                                             ; preds = %4183
  %4188 = load ptr, ptr %14, align 8, !tbaa !5
  %4189 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4188, i32 0, i32 3
  %4190 = load i8, ptr %4189, align 1, !tbaa !13
  %4191 = zext i8 %4190 to i32
  %4192 = ashr i32 %4191, 4
  %4193 = icmp eq i32 0, %4192
  br i1 %4193, label %4194, label %4356

4194:                                             ; preds = %4187
  %4195 = load ptr, ptr %14, align 8, !tbaa !5
  %4196 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4195, i32 0, i32 3
  %4197 = load i8, ptr %4196, align 1, !tbaa !13
  %4198 = zext i8 %4197 to i32
  %4199 = and i32 %4198, 15
  %4200 = icmp eq i32 0, %4199
  br i1 %4200, label %4201, label %4202

4201:                                             ; preds = %4194
  br label %4354

4202:                                             ; preds = %4194
  %4203 = load ptr, ptr %14, align 8, !tbaa !5
  %4204 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4203, i32 0, i32 3
  %4205 = load i8, ptr %4204, align 1, !tbaa !13
  %4206 = zext i8 %4205 to i32
  %4207 = and i32 %4206, 15
  %4208 = icmp eq i32 1, %4207
  br i1 %4208, label %4209, label %4210

4209:                                             ; preds = %4202
  br label %4352

4210:                                             ; preds = %4202
  %4211 = load ptr, ptr %14, align 8, !tbaa !5
  %4212 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4211, i32 0, i32 3
  %4213 = load i8, ptr %4212, align 1, !tbaa !13
  %4214 = zext i8 %4213 to i32
  %4215 = and i32 %4214, 15
  %4216 = icmp eq i32 2, %4215
  br i1 %4216, label %4217, label %4218

4217:                                             ; preds = %4210
  br label %4350

4218:                                             ; preds = %4210
  %4219 = load ptr, ptr %14, align 8, !tbaa !5
  %4220 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4219, i32 0, i32 3
  %4221 = load i8, ptr %4220, align 1, !tbaa !13
  %4222 = zext i8 %4221 to i32
  %4223 = and i32 %4222, 15
  %4224 = icmp eq i32 3, %4223
  br i1 %4224, label %4225, label %4226

4225:                                             ; preds = %4218
  br label %4348

4226:                                             ; preds = %4218
  %4227 = load ptr, ptr %14, align 8, !tbaa !5
  %4228 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4227, i32 0, i32 3
  %4229 = load i8, ptr %4228, align 1, !tbaa !13
  %4230 = zext i8 %4229 to i32
  %4231 = and i32 %4230, 15
  %4232 = icmp eq i32 4, %4231
  br i1 %4232, label %4233, label %4234

4233:                                             ; preds = %4226
  br label %4346

4234:                                             ; preds = %4226
  %4235 = load ptr, ptr %14, align 8, !tbaa !5
  %4236 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4235, i32 0, i32 3
  %4237 = load i8, ptr %4236, align 1, !tbaa !13
  %4238 = zext i8 %4237 to i32
  %4239 = and i32 %4238, 15
  %4240 = icmp eq i32 5, %4239
  br i1 %4240, label %4241, label %4242

4241:                                             ; preds = %4234
  br label %4344

4242:                                             ; preds = %4234
  %4243 = load ptr, ptr %14, align 8, !tbaa !5
  %4244 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4243, i32 0, i32 3
  %4245 = load i8, ptr %4244, align 1, !tbaa !13
  %4246 = zext i8 %4245 to i32
  %4247 = and i32 %4246, 15
  %4248 = icmp eq i32 6, %4247
  br i1 %4248, label %4249, label %4250

4249:                                             ; preds = %4242
  br label %4342

4250:                                             ; preds = %4242
  %4251 = load ptr, ptr %14, align 8, !tbaa !5
  %4252 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4251, i32 0, i32 3
  %4253 = load i8, ptr %4252, align 1, !tbaa !13
  %4254 = zext i8 %4253 to i32
  %4255 = and i32 %4254, 15
  %4256 = icmp eq i32 7, %4255
  br i1 %4256, label %4257, label %4258

4257:                                             ; preds = %4250
  br label %4340

4258:                                             ; preds = %4250
  %4259 = load ptr, ptr %14, align 8, !tbaa !5
  %4260 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4259, i32 0, i32 3
  %4261 = load i8, ptr %4260, align 1, !tbaa !13
  %4262 = zext i8 %4261 to i32
  %4263 = and i32 %4262, 15
  %4264 = icmp eq i32 8, %4263
  br i1 %4264, label %4265, label %4266

4265:                                             ; preds = %4258
  br label %4338

4266:                                             ; preds = %4258
  %4267 = load ptr, ptr %14, align 8, !tbaa !5
  %4268 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4267, i32 0, i32 3
  %4269 = load i8, ptr %4268, align 1, !tbaa !13
  %4270 = zext i8 %4269 to i32
  %4271 = and i32 %4270, 15
  %4272 = icmp eq i32 9, %4271
  br i1 %4272, label %4273, label %4274

4273:                                             ; preds = %4266
  br label %4336

4274:                                             ; preds = %4266
  %4275 = load ptr, ptr %14, align 8, !tbaa !5
  %4276 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4275, i32 0, i32 3
  %4277 = load i8, ptr %4276, align 1, !tbaa !13
  %4278 = zext i8 %4277 to i32
  %4279 = and i32 %4278, 15
  %4280 = icmp eq i32 10, %4279
  br i1 %4280, label %4281, label %4282

4281:                                             ; preds = %4274
  br label %4334

4282:                                             ; preds = %4274
  %4283 = load ptr, ptr %14, align 8, !tbaa !5
  %4284 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4283, i32 0, i32 3
  %4285 = load i8, ptr %4284, align 1, !tbaa !13
  %4286 = zext i8 %4285 to i32
  %4287 = and i32 %4286, 15
  %4288 = icmp eq i32 11, %4287
  br i1 %4288, label %4289, label %4290

4289:                                             ; preds = %4282
  br label %4332

4290:                                             ; preds = %4282
  %4291 = load ptr, ptr %14, align 8, !tbaa !5
  %4292 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4291, i32 0, i32 3
  %4293 = load i8, ptr %4292, align 1, !tbaa !13
  %4294 = zext i8 %4293 to i32
  %4295 = and i32 %4294, 15
  %4296 = icmp eq i32 12, %4295
  br i1 %4296, label %4297, label %4298

4297:                                             ; preds = %4290
  br label %4330

4298:                                             ; preds = %4290
  %4299 = load ptr, ptr %14, align 8, !tbaa !5
  %4300 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4299, i32 0, i32 3
  %4301 = load i8, ptr %4300, align 1, !tbaa !13
  %4302 = zext i8 %4301 to i32
  %4303 = and i32 %4302, 15
  %4304 = icmp eq i32 13, %4303
  br i1 %4304, label %4305, label %4306

4305:                                             ; preds = %4298
  br label %4328

4306:                                             ; preds = %4298
  %4307 = load ptr, ptr %14, align 8, !tbaa !5
  %4308 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4307, i32 0, i32 3
  %4309 = load i8, ptr %4308, align 1, !tbaa !13
  %4310 = zext i8 %4309 to i32
  %4311 = and i32 %4310, 15
  %4312 = icmp eq i32 14, %4311
  br i1 %4312, label %4313, label %4314

4313:                                             ; preds = %4306
  br label %4326

4314:                                             ; preds = %4306
  %4315 = load ptr, ptr %14, align 8, !tbaa !5
  %4316 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4315, i32 0, i32 3
  %4317 = load i8, ptr %4316, align 1, !tbaa !13
  %4318 = zext i8 %4317 to i32
  %4319 = and i32 %4318, 15
  %4320 = icmp eq i32 15, %4319
  br i1 %4320, label %4321, label %4322

4321:                                             ; preds = %4314
  br label %4324

4322:                                             ; preds = %4314
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

4323:                                             ; No predecessors!
  br label %4324

4324:                                             ; preds = %4323, %4321
  %4325 = phi i32 [ 15, %4321 ], [ 0, %4323 ]
  br label %4326

4326:                                             ; preds = %4324, %4313
  %4327 = phi i32 [ 14, %4313 ], [ %4325, %4324 ]
  br label %4328

4328:                                             ; preds = %4326, %4305
  %4329 = phi i32 [ 12, %4305 ], [ %4327, %4326 ]
  br label %4330

4330:                                             ; preds = %4328, %4297
  %4331 = phi i32 [ 12, %4297 ], [ %4329, %4328 ]
  br label %4332

4332:                                             ; preds = %4330, %4289
  %4333 = phi i32 [ 10, %4289 ], [ %4331, %4330 ]
  br label %4334

4334:                                             ; preds = %4332, %4281
  %4335 = phi i32 [ 10, %4281 ], [ %4333, %4332 ]
  br label %4336

4336:                                             ; preds = %4334, %4273
  %4337 = phi i32 [ 8, %4273 ], [ %4335, %4334 ]
  br label %4338

4338:                                             ; preds = %4336, %4265
  %4339 = phi i32 [ 8, %4265 ], [ %4337, %4336 ]
  br label %4340

4340:                                             ; preds = %4338, %4257
  %4341 = phi i32 [ 6, %4257 ], [ %4339, %4338 ]
  br label %4342

4342:                                             ; preds = %4340, %4249
  %4343 = phi i32 [ 6, %4249 ], [ %4341, %4340 ]
  br label %4344

4344:                                             ; preds = %4342, %4241
  %4345 = phi i32 [ 5, %4241 ], [ %4343, %4342 ]
  br label %4346

4346:                                             ; preds = %4344, %4233
  %4347 = phi i32 [ 4, %4233 ], [ %4345, %4344 ]
  br label %4348

4348:                                             ; preds = %4346, %4225
  %4349 = phi i32 [ 3, %4225 ], [ %4347, %4346 ]
  br label %4350

4350:                                             ; preds = %4348, %4217
  %4351 = phi i32 [ 2, %4217 ], [ %4349, %4348 ]
  br label %4352

4352:                                             ; preds = %4350, %4209
  %4353 = phi i32 [ 1, %4209 ], [ %4351, %4350 ]
  br label %4354

4354:                                             ; preds = %4352, %4201
  %4355 = phi i32 [ 0, %4201 ], [ %4353, %4352 ]
  br label %4362

4356:                                             ; preds = %4187
  %4357 = load ptr, ptr %14, align 8, !tbaa !5
  %4358 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4357, i32 0, i32 3
  %4359 = load i8, ptr %4358, align 1, !tbaa !13
  %4360 = zext i8 %4359 to i32
  %4361 = ashr i32 %4360, 4
  br label %4362

4362:                                             ; preds = %4356, %4354
  %4363 = phi i32 [ %4355, %4354 ], [ %4361, %4356 ]
  %4364 = icmp eq i32 9, %4363
  br i1 %4364, label %4365, label %4366

4365:                                             ; preds = %4362
  br label %5092

4366:                                             ; preds = %4362
  %4367 = load ptr, ptr %14, align 8, !tbaa !5
  %4368 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4367, i32 0, i32 3
  %4369 = load i8, ptr %4368, align 1, !tbaa !13
  %4370 = zext i8 %4369 to i32
  %4371 = ashr i32 %4370, 4
  %4372 = icmp eq i32 0, %4371
  br i1 %4372, label %4373, label %4535

4373:                                             ; preds = %4366
  %4374 = load ptr, ptr %14, align 8, !tbaa !5
  %4375 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4374, i32 0, i32 3
  %4376 = load i8, ptr %4375, align 1, !tbaa !13
  %4377 = zext i8 %4376 to i32
  %4378 = and i32 %4377, 15
  %4379 = icmp eq i32 0, %4378
  br i1 %4379, label %4380, label %4381

4380:                                             ; preds = %4373
  br label %4533

4381:                                             ; preds = %4373
  %4382 = load ptr, ptr %14, align 8, !tbaa !5
  %4383 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4382, i32 0, i32 3
  %4384 = load i8, ptr %4383, align 1, !tbaa !13
  %4385 = zext i8 %4384 to i32
  %4386 = and i32 %4385, 15
  %4387 = icmp eq i32 1, %4386
  br i1 %4387, label %4388, label %4389

4388:                                             ; preds = %4381
  br label %4531

4389:                                             ; preds = %4381
  %4390 = load ptr, ptr %14, align 8, !tbaa !5
  %4391 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4390, i32 0, i32 3
  %4392 = load i8, ptr %4391, align 1, !tbaa !13
  %4393 = zext i8 %4392 to i32
  %4394 = and i32 %4393, 15
  %4395 = icmp eq i32 2, %4394
  br i1 %4395, label %4396, label %4397

4396:                                             ; preds = %4389
  br label %4529

4397:                                             ; preds = %4389
  %4398 = load ptr, ptr %14, align 8, !tbaa !5
  %4399 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4398, i32 0, i32 3
  %4400 = load i8, ptr %4399, align 1, !tbaa !13
  %4401 = zext i8 %4400 to i32
  %4402 = and i32 %4401, 15
  %4403 = icmp eq i32 3, %4402
  br i1 %4403, label %4404, label %4405

4404:                                             ; preds = %4397
  br label %4527

4405:                                             ; preds = %4397
  %4406 = load ptr, ptr %14, align 8, !tbaa !5
  %4407 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4406, i32 0, i32 3
  %4408 = load i8, ptr %4407, align 1, !tbaa !13
  %4409 = zext i8 %4408 to i32
  %4410 = and i32 %4409, 15
  %4411 = icmp eq i32 4, %4410
  br i1 %4411, label %4412, label %4413

4412:                                             ; preds = %4405
  br label %4525

4413:                                             ; preds = %4405
  %4414 = load ptr, ptr %14, align 8, !tbaa !5
  %4415 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4414, i32 0, i32 3
  %4416 = load i8, ptr %4415, align 1, !tbaa !13
  %4417 = zext i8 %4416 to i32
  %4418 = and i32 %4417, 15
  %4419 = icmp eq i32 5, %4418
  br i1 %4419, label %4420, label %4421

4420:                                             ; preds = %4413
  br label %4523

4421:                                             ; preds = %4413
  %4422 = load ptr, ptr %14, align 8, !tbaa !5
  %4423 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4422, i32 0, i32 3
  %4424 = load i8, ptr %4423, align 1, !tbaa !13
  %4425 = zext i8 %4424 to i32
  %4426 = and i32 %4425, 15
  %4427 = icmp eq i32 6, %4426
  br i1 %4427, label %4428, label %4429

4428:                                             ; preds = %4421
  br label %4521

4429:                                             ; preds = %4421
  %4430 = load ptr, ptr %14, align 8, !tbaa !5
  %4431 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4430, i32 0, i32 3
  %4432 = load i8, ptr %4431, align 1, !tbaa !13
  %4433 = zext i8 %4432 to i32
  %4434 = and i32 %4433, 15
  %4435 = icmp eq i32 7, %4434
  br i1 %4435, label %4436, label %4437

4436:                                             ; preds = %4429
  br label %4519

4437:                                             ; preds = %4429
  %4438 = load ptr, ptr %14, align 8, !tbaa !5
  %4439 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4438, i32 0, i32 3
  %4440 = load i8, ptr %4439, align 1, !tbaa !13
  %4441 = zext i8 %4440 to i32
  %4442 = and i32 %4441, 15
  %4443 = icmp eq i32 8, %4442
  br i1 %4443, label %4444, label %4445

4444:                                             ; preds = %4437
  br label %4517

4445:                                             ; preds = %4437
  %4446 = load ptr, ptr %14, align 8, !tbaa !5
  %4447 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4446, i32 0, i32 3
  %4448 = load i8, ptr %4447, align 1, !tbaa !13
  %4449 = zext i8 %4448 to i32
  %4450 = and i32 %4449, 15
  %4451 = icmp eq i32 9, %4450
  br i1 %4451, label %4452, label %4453

4452:                                             ; preds = %4445
  br label %4515

4453:                                             ; preds = %4445
  %4454 = load ptr, ptr %14, align 8, !tbaa !5
  %4455 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4454, i32 0, i32 3
  %4456 = load i8, ptr %4455, align 1, !tbaa !13
  %4457 = zext i8 %4456 to i32
  %4458 = and i32 %4457, 15
  %4459 = icmp eq i32 10, %4458
  br i1 %4459, label %4460, label %4461

4460:                                             ; preds = %4453
  br label %4513

4461:                                             ; preds = %4453
  %4462 = load ptr, ptr %14, align 8, !tbaa !5
  %4463 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4462, i32 0, i32 3
  %4464 = load i8, ptr %4463, align 1, !tbaa !13
  %4465 = zext i8 %4464 to i32
  %4466 = and i32 %4465, 15
  %4467 = icmp eq i32 11, %4466
  br i1 %4467, label %4468, label %4469

4468:                                             ; preds = %4461
  br label %4511

4469:                                             ; preds = %4461
  %4470 = load ptr, ptr %14, align 8, !tbaa !5
  %4471 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4470, i32 0, i32 3
  %4472 = load i8, ptr %4471, align 1, !tbaa !13
  %4473 = zext i8 %4472 to i32
  %4474 = and i32 %4473, 15
  %4475 = icmp eq i32 12, %4474
  br i1 %4475, label %4476, label %4477

4476:                                             ; preds = %4469
  br label %4509

4477:                                             ; preds = %4469
  %4478 = load ptr, ptr %14, align 8, !tbaa !5
  %4479 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4478, i32 0, i32 3
  %4480 = load i8, ptr %4479, align 1, !tbaa !13
  %4481 = zext i8 %4480 to i32
  %4482 = and i32 %4481, 15
  %4483 = icmp eq i32 13, %4482
  br i1 %4483, label %4484, label %4485

4484:                                             ; preds = %4477
  br label %4507

4485:                                             ; preds = %4477
  %4486 = load ptr, ptr %14, align 8, !tbaa !5
  %4487 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4486, i32 0, i32 3
  %4488 = load i8, ptr %4487, align 1, !tbaa !13
  %4489 = zext i8 %4488 to i32
  %4490 = and i32 %4489, 15
  %4491 = icmp eq i32 14, %4490
  br i1 %4491, label %4492, label %4493

4492:                                             ; preds = %4485
  br label %4505

4493:                                             ; preds = %4485
  %4494 = load ptr, ptr %14, align 8, !tbaa !5
  %4495 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4494, i32 0, i32 3
  %4496 = load i8, ptr %4495, align 1, !tbaa !13
  %4497 = zext i8 %4496 to i32
  %4498 = and i32 %4497, 15
  %4499 = icmp eq i32 15, %4498
  br i1 %4499, label %4500, label %4501

4500:                                             ; preds = %4493
  br label %4503

4501:                                             ; preds = %4493
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

4502:                                             ; No predecessors!
  br label %4503

4503:                                             ; preds = %4502, %4500
  %4504 = phi i32 [ 15, %4500 ], [ 0, %4502 ]
  br label %4505

4505:                                             ; preds = %4503, %4492
  %4506 = phi i32 [ 14, %4492 ], [ %4504, %4503 ]
  br label %4507

4507:                                             ; preds = %4505, %4484
  %4508 = phi i32 [ 12, %4484 ], [ %4506, %4505 ]
  br label %4509

4509:                                             ; preds = %4507, %4476
  %4510 = phi i32 [ 12, %4476 ], [ %4508, %4507 ]
  br label %4511

4511:                                             ; preds = %4509, %4468
  %4512 = phi i32 [ 10, %4468 ], [ %4510, %4509 ]
  br label %4513

4513:                                             ; preds = %4511, %4460
  %4514 = phi i32 [ 10, %4460 ], [ %4512, %4511 ]
  br label %4515

4515:                                             ; preds = %4513, %4452
  %4516 = phi i32 [ 8, %4452 ], [ %4514, %4513 ]
  br label %4517

4517:                                             ; preds = %4515, %4444
  %4518 = phi i32 [ 8, %4444 ], [ %4516, %4515 ]
  br label %4519

4519:                                             ; preds = %4517, %4436
  %4520 = phi i32 [ 6, %4436 ], [ %4518, %4517 ]
  br label %4521

4521:                                             ; preds = %4519, %4428
  %4522 = phi i32 [ 6, %4428 ], [ %4520, %4519 ]
  br label %4523

4523:                                             ; preds = %4521, %4420
  %4524 = phi i32 [ 5, %4420 ], [ %4522, %4521 ]
  br label %4525

4525:                                             ; preds = %4523, %4412
  %4526 = phi i32 [ 4, %4412 ], [ %4524, %4523 ]
  br label %4527

4527:                                             ; preds = %4525, %4404
  %4528 = phi i32 [ 3, %4404 ], [ %4526, %4525 ]
  br label %4529

4529:                                             ; preds = %4527, %4396
  %4530 = phi i32 [ 2, %4396 ], [ %4528, %4527 ]
  br label %4531

4531:                                             ; preds = %4529, %4388
  %4532 = phi i32 [ 1, %4388 ], [ %4530, %4529 ]
  br label %4533

4533:                                             ; preds = %4531, %4380
  %4534 = phi i32 [ 0, %4380 ], [ %4532, %4531 ]
  br label %4541

4535:                                             ; preds = %4366
  %4536 = load ptr, ptr %14, align 8, !tbaa !5
  %4537 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4536, i32 0, i32 3
  %4538 = load i8, ptr %4537, align 1, !tbaa !13
  %4539 = zext i8 %4538 to i32
  %4540 = ashr i32 %4539, 4
  br label %4541

4541:                                             ; preds = %4535, %4533
  %4542 = phi i32 [ %4534, %4533 ], [ %4540, %4535 ]
  %4543 = icmp eq i32 10, %4542
  br i1 %4543, label %4544, label %4545

4544:                                             ; preds = %4541
  br label %5090

4545:                                             ; preds = %4541
  %4546 = load ptr, ptr %14, align 8, !tbaa !5
  %4547 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4546, i32 0, i32 3
  %4548 = load i8, ptr %4547, align 1, !tbaa !13
  %4549 = zext i8 %4548 to i32
  %4550 = ashr i32 %4549, 4
  %4551 = icmp eq i32 0, %4550
  br i1 %4551, label %4552, label %4714

4552:                                             ; preds = %4545
  %4553 = load ptr, ptr %14, align 8, !tbaa !5
  %4554 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4553, i32 0, i32 3
  %4555 = load i8, ptr %4554, align 1, !tbaa !13
  %4556 = zext i8 %4555 to i32
  %4557 = and i32 %4556, 15
  %4558 = icmp eq i32 0, %4557
  br i1 %4558, label %4559, label %4560

4559:                                             ; preds = %4552
  br label %4712

4560:                                             ; preds = %4552
  %4561 = load ptr, ptr %14, align 8, !tbaa !5
  %4562 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4561, i32 0, i32 3
  %4563 = load i8, ptr %4562, align 1, !tbaa !13
  %4564 = zext i8 %4563 to i32
  %4565 = and i32 %4564, 15
  %4566 = icmp eq i32 1, %4565
  br i1 %4566, label %4567, label %4568

4567:                                             ; preds = %4560
  br label %4710

4568:                                             ; preds = %4560
  %4569 = load ptr, ptr %14, align 8, !tbaa !5
  %4570 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4569, i32 0, i32 3
  %4571 = load i8, ptr %4570, align 1, !tbaa !13
  %4572 = zext i8 %4571 to i32
  %4573 = and i32 %4572, 15
  %4574 = icmp eq i32 2, %4573
  br i1 %4574, label %4575, label %4576

4575:                                             ; preds = %4568
  br label %4708

4576:                                             ; preds = %4568
  %4577 = load ptr, ptr %14, align 8, !tbaa !5
  %4578 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4577, i32 0, i32 3
  %4579 = load i8, ptr %4578, align 1, !tbaa !13
  %4580 = zext i8 %4579 to i32
  %4581 = and i32 %4580, 15
  %4582 = icmp eq i32 3, %4581
  br i1 %4582, label %4583, label %4584

4583:                                             ; preds = %4576
  br label %4706

4584:                                             ; preds = %4576
  %4585 = load ptr, ptr %14, align 8, !tbaa !5
  %4586 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4585, i32 0, i32 3
  %4587 = load i8, ptr %4586, align 1, !tbaa !13
  %4588 = zext i8 %4587 to i32
  %4589 = and i32 %4588, 15
  %4590 = icmp eq i32 4, %4589
  br i1 %4590, label %4591, label %4592

4591:                                             ; preds = %4584
  br label %4704

4592:                                             ; preds = %4584
  %4593 = load ptr, ptr %14, align 8, !tbaa !5
  %4594 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4593, i32 0, i32 3
  %4595 = load i8, ptr %4594, align 1, !tbaa !13
  %4596 = zext i8 %4595 to i32
  %4597 = and i32 %4596, 15
  %4598 = icmp eq i32 5, %4597
  br i1 %4598, label %4599, label %4600

4599:                                             ; preds = %4592
  br label %4702

4600:                                             ; preds = %4592
  %4601 = load ptr, ptr %14, align 8, !tbaa !5
  %4602 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4601, i32 0, i32 3
  %4603 = load i8, ptr %4602, align 1, !tbaa !13
  %4604 = zext i8 %4603 to i32
  %4605 = and i32 %4604, 15
  %4606 = icmp eq i32 6, %4605
  br i1 %4606, label %4607, label %4608

4607:                                             ; preds = %4600
  br label %4700

4608:                                             ; preds = %4600
  %4609 = load ptr, ptr %14, align 8, !tbaa !5
  %4610 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4609, i32 0, i32 3
  %4611 = load i8, ptr %4610, align 1, !tbaa !13
  %4612 = zext i8 %4611 to i32
  %4613 = and i32 %4612, 15
  %4614 = icmp eq i32 7, %4613
  br i1 %4614, label %4615, label %4616

4615:                                             ; preds = %4608
  br label %4698

4616:                                             ; preds = %4608
  %4617 = load ptr, ptr %14, align 8, !tbaa !5
  %4618 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4617, i32 0, i32 3
  %4619 = load i8, ptr %4618, align 1, !tbaa !13
  %4620 = zext i8 %4619 to i32
  %4621 = and i32 %4620, 15
  %4622 = icmp eq i32 8, %4621
  br i1 %4622, label %4623, label %4624

4623:                                             ; preds = %4616
  br label %4696

4624:                                             ; preds = %4616
  %4625 = load ptr, ptr %14, align 8, !tbaa !5
  %4626 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4625, i32 0, i32 3
  %4627 = load i8, ptr %4626, align 1, !tbaa !13
  %4628 = zext i8 %4627 to i32
  %4629 = and i32 %4628, 15
  %4630 = icmp eq i32 9, %4629
  br i1 %4630, label %4631, label %4632

4631:                                             ; preds = %4624
  br label %4694

4632:                                             ; preds = %4624
  %4633 = load ptr, ptr %14, align 8, !tbaa !5
  %4634 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4633, i32 0, i32 3
  %4635 = load i8, ptr %4634, align 1, !tbaa !13
  %4636 = zext i8 %4635 to i32
  %4637 = and i32 %4636, 15
  %4638 = icmp eq i32 10, %4637
  br i1 %4638, label %4639, label %4640

4639:                                             ; preds = %4632
  br label %4692

4640:                                             ; preds = %4632
  %4641 = load ptr, ptr %14, align 8, !tbaa !5
  %4642 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4641, i32 0, i32 3
  %4643 = load i8, ptr %4642, align 1, !tbaa !13
  %4644 = zext i8 %4643 to i32
  %4645 = and i32 %4644, 15
  %4646 = icmp eq i32 11, %4645
  br i1 %4646, label %4647, label %4648

4647:                                             ; preds = %4640
  br label %4690

4648:                                             ; preds = %4640
  %4649 = load ptr, ptr %14, align 8, !tbaa !5
  %4650 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4649, i32 0, i32 3
  %4651 = load i8, ptr %4650, align 1, !tbaa !13
  %4652 = zext i8 %4651 to i32
  %4653 = and i32 %4652, 15
  %4654 = icmp eq i32 12, %4653
  br i1 %4654, label %4655, label %4656

4655:                                             ; preds = %4648
  br label %4688

4656:                                             ; preds = %4648
  %4657 = load ptr, ptr %14, align 8, !tbaa !5
  %4658 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4657, i32 0, i32 3
  %4659 = load i8, ptr %4658, align 1, !tbaa !13
  %4660 = zext i8 %4659 to i32
  %4661 = and i32 %4660, 15
  %4662 = icmp eq i32 13, %4661
  br i1 %4662, label %4663, label %4664

4663:                                             ; preds = %4656
  br label %4686

4664:                                             ; preds = %4656
  %4665 = load ptr, ptr %14, align 8, !tbaa !5
  %4666 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4665, i32 0, i32 3
  %4667 = load i8, ptr %4666, align 1, !tbaa !13
  %4668 = zext i8 %4667 to i32
  %4669 = and i32 %4668, 15
  %4670 = icmp eq i32 14, %4669
  br i1 %4670, label %4671, label %4672

4671:                                             ; preds = %4664
  br label %4684

4672:                                             ; preds = %4664
  %4673 = load ptr, ptr %14, align 8, !tbaa !5
  %4674 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4673, i32 0, i32 3
  %4675 = load i8, ptr %4674, align 1, !tbaa !13
  %4676 = zext i8 %4675 to i32
  %4677 = and i32 %4676, 15
  %4678 = icmp eq i32 15, %4677
  br i1 %4678, label %4679, label %4680

4679:                                             ; preds = %4672
  br label %4682

4680:                                             ; preds = %4672
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

4681:                                             ; No predecessors!
  br label %4682

4682:                                             ; preds = %4681, %4679
  %4683 = phi i32 [ 15, %4679 ], [ 0, %4681 ]
  br label %4684

4684:                                             ; preds = %4682, %4671
  %4685 = phi i32 [ 14, %4671 ], [ %4683, %4682 ]
  br label %4686

4686:                                             ; preds = %4684, %4663
  %4687 = phi i32 [ 12, %4663 ], [ %4685, %4684 ]
  br label %4688

4688:                                             ; preds = %4686, %4655
  %4689 = phi i32 [ 12, %4655 ], [ %4687, %4686 ]
  br label %4690

4690:                                             ; preds = %4688, %4647
  %4691 = phi i32 [ 10, %4647 ], [ %4689, %4688 ]
  br label %4692

4692:                                             ; preds = %4690, %4639
  %4693 = phi i32 [ 10, %4639 ], [ %4691, %4690 ]
  br label %4694

4694:                                             ; preds = %4692, %4631
  %4695 = phi i32 [ 8, %4631 ], [ %4693, %4692 ]
  br label %4696

4696:                                             ; preds = %4694, %4623
  %4697 = phi i32 [ 8, %4623 ], [ %4695, %4694 ]
  br label %4698

4698:                                             ; preds = %4696, %4615
  %4699 = phi i32 [ 6, %4615 ], [ %4697, %4696 ]
  br label %4700

4700:                                             ; preds = %4698, %4607
  %4701 = phi i32 [ 6, %4607 ], [ %4699, %4698 ]
  br label %4702

4702:                                             ; preds = %4700, %4599
  %4703 = phi i32 [ 5, %4599 ], [ %4701, %4700 ]
  br label %4704

4704:                                             ; preds = %4702, %4591
  %4705 = phi i32 [ 4, %4591 ], [ %4703, %4702 ]
  br label %4706

4706:                                             ; preds = %4704, %4583
  %4707 = phi i32 [ 3, %4583 ], [ %4705, %4704 ]
  br label %4708

4708:                                             ; preds = %4706, %4575
  %4709 = phi i32 [ 2, %4575 ], [ %4707, %4706 ]
  br label %4710

4710:                                             ; preds = %4708, %4567
  %4711 = phi i32 [ 1, %4567 ], [ %4709, %4708 ]
  br label %4712

4712:                                             ; preds = %4710, %4559
  %4713 = phi i32 [ 0, %4559 ], [ %4711, %4710 ]
  br label %4720

4714:                                             ; preds = %4545
  %4715 = load ptr, ptr %14, align 8, !tbaa !5
  %4716 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4715, i32 0, i32 3
  %4717 = load i8, ptr %4716, align 1, !tbaa !13
  %4718 = zext i8 %4717 to i32
  %4719 = ashr i32 %4718, 4
  br label %4720

4720:                                             ; preds = %4714, %4712
  %4721 = phi i32 [ %4713, %4712 ], [ %4719, %4714 ]
  %4722 = icmp eq i32 11, %4721
  br i1 %4722, label %4723, label %4724

4723:                                             ; preds = %4720
  br label %5088

4724:                                             ; preds = %4720
  %4725 = load ptr, ptr %14, align 8, !tbaa !5
  %4726 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4725, i32 0, i32 3
  %4727 = load i8, ptr %4726, align 1, !tbaa !13
  %4728 = zext i8 %4727 to i32
  %4729 = ashr i32 %4728, 4
  %4730 = icmp eq i32 0, %4729
  br i1 %4730, label %4731, label %4893

4731:                                             ; preds = %4724
  %4732 = load ptr, ptr %14, align 8, !tbaa !5
  %4733 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4732, i32 0, i32 3
  %4734 = load i8, ptr %4733, align 1, !tbaa !13
  %4735 = zext i8 %4734 to i32
  %4736 = and i32 %4735, 15
  %4737 = icmp eq i32 0, %4736
  br i1 %4737, label %4738, label %4739

4738:                                             ; preds = %4731
  br label %4891

4739:                                             ; preds = %4731
  %4740 = load ptr, ptr %14, align 8, !tbaa !5
  %4741 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4740, i32 0, i32 3
  %4742 = load i8, ptr %4741, align 1, !tbaa !13
  %4743 = zext i8 %4742 to i32
  %4744 = and i32 %4743, 15
  %4745 = icmp eq i32 1, %4744
  br i1 %4745, label %4746, label %4747

4746:                                             ; preds = %4739
  br label %4889

4747:                                             ; preds = %4739
  %4748 = load ptr, ptr %14, align 8, !tbaa !5
  %4749 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4748, i32 0, i32 3
  %4750 = load i8, ptr %4749, align 1, !tbaa !13
  %4751 = zext i8 %4750 to i32
  %4752 = and i32 %4751, 15
  %4753 = icmp eq i32 2, %4752
  br i1 %4753, label %4754, label %4755

4754:                                             ; preds = %4747
  br label %4887

4755:                                             ; preds = %4747
  %4756 = load ptr, ptr %14, align 8, !tbaa !5
  %4757 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4756, i32 0, i32 3
  %4758 = load i8, ptr %4757, align 1, !tbaa !13
  %4759 = zext i8 %4758 to i32
  %4760 = and i32 %4759, 15
  %4761 = icmp eq i32 3, %4760
  br i1 %4761, label %4762, label %4763

4762:                                             ; preds = %4755
  br label %4885

4763:                                             ; preds = %4755
  %4764 = load ptr, ptr %14, align 8, !tbaa !5
  %4765 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4764, i32 0, i32 3
  %4766 = load i8, ptr %4765, align 1, !tbaa !13
  %4767 = zext i8 %4766 to i32
  %4768 = and i32 %4767, 15
  %4769 = icmp eq i32 4, %4768
  br i1 %4769, label %4770, label %4771

4770:                                             ; preds = %4763
  br label %4883

4771:                                             ; preds = %4763
  %4772 = load ptr, ptr %14, align 8, !tbaa !5
  %4773 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4772, i32 0, i32 3
  %4774 = load i8, ptr %4773, align 1, !tbaa !13
  %4775 = zext i8 %4774 to i32
  %4776 = and i32 %4775, 15
  %4777 = icmp eq i32 5, %4776
  br i1 %4777, label %4778, label %4779

4778:                                             ; preds = %4771
  br label %4881

4779:                                             ; preds = %4771
  %4780 = load ptr, ptr %14, align 8, !tbaa !5
  %4781 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4780, i32 0, i32 3
  %4782 = load i8, ptr %4781, align 1, !tbaa !13
  %4783 = zext i8 %4782 to i32
  %4784 = and i32 %4783, 15
  %4785 = icmp eq i32 6, %4784
  br i1 %4785, label %4786, label %4787

4786:                                             ; preds = %4779
  br label %4879

4787:                                             ; preds = %4779
  %4788 = load ptr, ptr %14, align 8, !tbaa !5
  %4789 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4788, i32 0, i32 3
  %4790 = load i8, ptr %4789, align 1, !tbaa !13
  %4791 = zext i8 %4790 to i32
  %4792 = and i32 %4791, 15
  %4793 = icmp eq i32 7, %4792
  br i1 %4793, label %4794, label %4795

4794:                                             ; preds = %4787
  br label %4877

4795:                                             ; preds = %4787
  %4796 = load ptr, ptr %14, align 8, !tbaa !5
  %4797 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4796, i32 0, i32 3
  %4798 = load i8, ptr %4797, align 1, !tbaa !13
  %4799 = zext i8 %4798 to i32
  %4800 = and i32 %4799, 15
  %4801 = icmp eq i32 8, %4800
  br i1 %4801, label %4802, label %4803

4802:                                             ; preds = %4795
  br label %4875

4803:                                             ; preds = %4795
  %4804 = load ptr, ptr %14, align 8, !tbaa !5
  %4805 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4804, i32 0, i32 3
  %4806 = load i8, ptr %4805, align 1, !tbaa !13
  %4807 = zext i8 %4806 to i32
  %4808 = and i32 %4807, 15
  %4809 = icmp eq i32 9, %4808
  br i1 %4809, label %4810, label %4811

4810:                                             ; preds = %4803
  br label %4873

4811:                                             ; preds = %4803
  %4812 = load ptr, ptr %14, align 8, !tbaa !5
  %4813 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4812, i32 0, i32 3
  %4814 = load i8, ptr %4813, align 1, !tbaa !13
  %4815 = zext i8 %4814 to i32
  %4816 = and i32 %4815, 15
  %4817 = icmp eq i32 10, %4816
  br i1 %4817, label %4818, label %4819

4818:                                             ; preds = %4811
  br label %4871

4819:                                             ; preds = %4811
  %4820 = load ptr, ptr %14, align 8, !tbaa !5
  %4821 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4820, i32 0, i32 3
  %4822 = load i8, ptr %4821, align 1, !tbaa !13
  %4823 = zext i8 %4822 to i32
  %4824 = and i32 %4823, 15
  %4825 = icmp eq i32 11, %4824
  br i1 %4825, label %4826, label %4827

4826:                                             ; preds = %4819
  br label %4869

4827:                                             ; preds = %4819
  %4828 = load ptr, ptr %14, align 8, !tbaa !5
  %4829 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4828, i32 0, i32 3
  %4830 = load i8, ptr %4829, align 1, !tbaa !13
  %4831 = zext i8 %4830 to i32
  %4832 = and i32 %4831, 15
  %4833 = icmp eq i32 12, %4832
  br i1 %4833, label %4834, label %4835

4834:                                             ; preds = %4827
  br label %4867

4835:                                             ; preds = %4827
  %4836 = load ptr, ptr %14, align 8, !tbaa !5
  %4837 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4836, i32 0, i32 3
  %4838 = load i8, ptr %4837, align 1, !tbaa !13
  %4839 = zext i8 %4838 to i32
  %4840 = and i32 %4839, 15
  %4841 = icmp eq i32 13, %4840
  br i1 %4841, label %4842, label %4843

4842:                                             ; preds = %4835
  br label %4865

4843:                                             ; preds = %4835
  %4844 = load ptr, ptr %14, align 8, !tbaa !5
  %4845 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4844, i32 0, i32 3
  %4846 = load i8, ptr %4845, align 1, !tbaa !13
  %4847 = zext i8 %4846 to i32
  %4848 = and i32 %4847, 15
  %4849 = icmp eq i32 14, %4848
  br i1 %4849, label %4850, label %4851

4850:                                             ; preds = %4843
  br label %4863

4851:                                             ; preds = %4843
  %4852 = load ptr, ptr %14, align 8, !tbaa !5
  %4853 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4852, i32 0, i32 3
  %4854 = load i8, ptr %4853, align 1, !tbaa !13
  %4855 = zext i8 %4854 to i32
  %4856 = and i32 %4855, 15
  %4857 = icmp eq i32 15, %4856
  br i1 %4857, label %4858, label %4859

4858:                                             ; preds = %4851
  br label %4861

4859:                                             ; preds = %4851
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

4860:                                             ; No predecessors!
  br label %4861

4861:                                             ; preds = %4860, %4858
  %4862 = phi i32 [ 15, %4858 ], [ 0, %4860 ]
  br label %4863

4863:                                             ; preds = %4861, %4850
  %4864 = phi i32 [ 14, %4850 ], [ %4862, %4861 ]
  br label %4865

4865:                                             ; preds = %4863, %4842
  %4866 = phi i32 [ 12, %4842 ], [ %4864, %4863 ]
  br label %4867

4867:                                             ; preds = %4865, %4834
  %4868 = phi i32 [ 12, %4834 ], [ %4866, %4865 ]
  br label %4869

4869:                                             ; preds = %4867, %4826
  %4870 = phi i32 [ 10, %4826 ], [ %4868, %4867 ]
  br label %4871

4871:                                             ; preds = %4869, %4818
  %4872 = phi i32 [ 10, %4818 ], [ %4870, %4869 ]
  br label %4873

4873:                                             ; preds = %4871, %4810
  %4874 = phi i32 [ 8, %4810 ], [ %4872, %4871 ]
  br label %4875

4875:                                             ; preds = %4873, %4802
  %4876 = phi i32 [ 8, %4802 ], [ %4874, %4873 ]
  br label %4877

4877:                                             ; preds = %4875, %4794
  %4878 = phi i32 [ 6, %4794 ], [ %4876, %4875 ]
  br label %4879

4879:                                             ; preds = %4877, %4786
  %4880 = phi i32 [ 6, %4786 ], [ %4878, %4877 ]
  br label %4881

4881:                                             ; preds = %4879, %4778
  %4882 = phi i32 [ 5, %4778 ], [ %4880, %4879 ]
  br label %4883

4883:                                             ; preds = %4881, %4770
  %4884 = phi i32 [ 4, %4770 ], [ %4882, %4881 ]
  br label %4885

4885:                                             ; preds = %4883, %4762
  %4886 = phi i32 [ 3, %4762 ], [ %4884, %4883 ]
  br label %4887

4887:                                             ; preds = %4885, %4754
  %4888 = phi i32 [ 2, %4754 ], [ %4886, %4885 ]
  br label %4889

4889:                                             ; preds = %4887, %4746
  %4890 = phi i32 [ 1, %4746 ], [ %4888, %4887 ]
  br label %4891

4891:                                             ; preds = %4889, %4738
  %4892 = phi i32 [ 0, %4738 ], [ %4890, %4889 ]
  br label %4899

4893:                                             ; preds = %4724
  %4894 = load ptr, ptr %14, align 8, !tbaa !5
  %4895 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4894, i32 0, i32 3
  %4896 = load i8, ptr %4895, align 1, !tbaa !13
  %4897 = zext i8 %4896 to i32
  %4898 = ashr i32 %4897, 4
  br label %4899

4899:                                             ; preds = %4893, %4891
  %4900 = phi i32 [ %4892, %4891 ], [ %4898, %4893 ]
  %4901 = icmp eq i32 12, %4900
  br i1 %4901, label %4902, label %4903

4902:                                             ; preds = %4899
  br label %5086

4903:                                             ; preds = %4899
  %4904 = load ptr, ptr %14, align 8, !tbaa !5
  %4905 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4904, i32 0, i32 3
  %4906 = load i8, ptr %4905, align 1, !tbaa !13
  %4907 = zext i8 %4906 to i32
  %4908 = ashr i32 %4907, 4
  %4909 = icmp eq i32 0, %4908
  br i1 %4909, label %4910, label %5072

4910:                                             ; preds = %4903
  %4911 = load ptr, ptr %14, align 8, !tbaa !5
  %4912 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4911, i32 0, i32 3
  %4913 = load i8, ptr %4912, align 1, !tbaa !13
  %4914 = zext i8 %4913 to i32
  %4915 = and i32 %4914, 15
  %4916 = icmp eq i32 0, %4915
  br i1 %4916, label %4917, label %4918

4917:                                             ; preds = %4910
  br label %5070

4918:                                             ; preds = %4910
  %4919 = load ptr, ptr %14, align 8, !tbaa !5
  %4920 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4919, i32 0, i32 3
  %4921 = load i8, ptr %4920, align 1, !tbaa !13
  %4922 = zext i8 %4921 to i32
  %4923 = and i32 %4922, 15
  %4924 = icmp eq i32 1, %4923
  br i1 %4924, label %4925, label %4926

4925:                                             ; preds = %4918
  br label %5068

4926:                                             ; preds = %4918
  %4927 = load ptr, ptr %14, align 8, !tbaa !5
  %4928 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4927, i32 0, i32 3
  %4929 = load i8, ptr %4928, align 1, !tbaa !13
  %4930 = zext i8 %4929 to i32
  %4931 = and i32 %4930, 15
  %4932 = icmp eq i32 2, %4931
  br i1 %4932, label %4933, label %4934

4933:                                             ; preds = %4926
  br label %5066

4934:                                             ; preds = %4926
  %4935 = load ptr, ptr %14, align 8, !tbaa !5
  %4936 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4935, i32 0, i32 3
  %4937 = load i8, ptr %4936, align 1, !tbaa !13
  %4938 = zext i8 %4937 to i32
  %4939 = and i32 %4938, 15
  %4940 = icmp eq i32 3, %4939
  br i1 %4940, label %4941, label %4942

4941:                                             ; preds = %4934
  br label %5064

4942:                                             ; preds = %4934
  %4943 = load ptr, ptr %14, align 8, !tbaa !5
  %4944 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4943, i32 0, i32 3
  %4945 = load i8, ptr %4944, align 1, !tbaa !13
  %4946 = zext i8 %4945 to i32
  %4947 = and i32 %4946, 15
  %4948 = icmp eq i32 4, %4947
  br i1 %4948, label %4949, label %4950

4949:                                             ; preds = %4942
  br label %5062

4950:                                             ; preds = %4942
  %4951 = load ptr, ptr %14, align 8, !tbaa !5
  %4952 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4951, i32 0, i32 3
  %4953 = load i8, ptr %4952, align 1, !tbaa !13
  %4954 = zext i8 %4953 to i32
  %4955 = and i32 %4954, 15
  %4956 = icmp eq i32 5, %4955
  br i1 %4956, label %4957, label %4958

4957:                                             ; preds = %4950
  br label %5060

4958:                                             ; preds = %4950
  %4959 = load ptr, ptr %14, align 8, !tbaa !5
  %4960 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4959, i32 0, i32 3
  %4961 = load i8, ptr %4960, align 1, !tbaa !13
  %4962 = zext i8 %4961 to i32
  %4963 = and i32 %4962, 15
  %4964 = icmp eq i32 6, %4963
  br i1 %4964, label %4965, label %4966

4965:                                             ; preds = %4958
  br label %5058

4966:                                             ; preds = %4958
  %4967 = load ptr, ptr %14, align 8, !tbaa !5
  %4968 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4967, i32 0, i32 3
  %4969 = load i8, ptr %4968, align 1, !tbaa !13
  %4970 = zext i8 %4969 to i32
  %4971 = and i32 %4970, 15
  %4972 = icmp eq i32 7, %4971
  br i1 %4972, label %4973, label %4974

4973:                                             ; preds = %4966
  br label %5056

4974:                                             ; preds = %4966
  %4975 = load ptr, ptr %14, align 8, !tbaa !5
  %4976 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4975, i32 0, i32 3
  %4977 = load i8, ptr %4976, align 1, !tbaa !13
  %4978 = zext i8 %4977 to i32
  %4979 = and i32 %4978, 15
  %4980 = icmp eq i32 8, %4979
  br i1 %4980, label %4981, label %4982

4981:                                             ; preds = %4974
  br label %5054

4982:                                             ; preds = %4974
  %4983 = load ptr, ptr %14, align 8, !tbaa !5
  %4984 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4983, i32 0, i32 3
  %4985 = load i8, ptr %4984, align 1, !tbaa !13
  %4986 = zext i8 %4985 to i32
  %4987 = and i32 %4986, 15
  %4988 = icmp eq i32 9, %4987
  br i1 %4988, label %4989, label %4990

4989:                                             ; preds = %4982
  br label %5052

4990:                                             ; preds = %4982
  %4991 = load ptr, ptr %14, align 8, !tbaa !5
  %4992 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4991, i32 0, i32 3
  %4993 = load i8, ptr %4992, align 1, !tbaa !13
  %4994 = zext i8 %4993 to i32
  %4995 = and i32 %4994, 15
  %4996 = icmp eq i32 10, %4995
  br i1 %4996, label %4997, label %4998

4997:                                             ; preds = %4990
  br label %5050

4998:                                             ; preds = %4990
  %4999 = load ptr, ptr %14, align 8, !tbaa !5
  %5000 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %4999, i32 0, i32 3
  %5001 = load i8, ptr %5000, align 1, !tbaa !13
  %5002 = zext i8 %5001 to i32
  %5003 = and i32 %5002, 15
  %5004 = icmp eq i32 11, %5003
  br i1 %5004, label %5005, label %5006

5005:                                             ; preds = %4998
  br label %5048

5006:                                             ; preds = %4998
  %5007 = load ptr, ptr %14, align 8, !tbaa !5
  %5008 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5007, i32 0, i32 3
  %5009 = load i8, ptr %5008, align 1, !tbaa !13
  %5010 = zext i8 %5009 to i32
  %5011 = and i32 %5010, 15
  %5012 = icmp eq i32 12, %5011
  br i1 %5012, label %5013, label %5014

5013:                                             ; preds = %5006
  br label %5046

5014:                                             ; preds = %5006
  %5015 = load ptr, ptr %14, align 8, !tbaa !5
  %5016 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5015, i32 0, i32 3
  %5017 = load i8, ptr %5016, align 1, !tbaa !13
  %5018 = zext i8 %5017 to i32
  %5019 = and i32 %5018, 15
  %5020 = icmp eq i32 13, %5019
  br i1 %5020, label %5021, label %5022

5021:                                             ; preds = %5014
  br label %5044

5022:                                             ; preds = %5014
  %5023 = load ptr, ptr %14, align 8, !tbaa !5
  %5024 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5023, i32 0, i32 3
  %5025 = load i8, ptr %5024, align 1, !tbaa !13
  %5026 = zext i8 %5025 to i32
  %5027 = and i32 %5026, 15
  %5028 = icmp eq i32 14, %5027
  br i1 %5028, label %5029, label %5030

5029:                                             ; preds = %5022
  br label %5042

5030:                                             ; preds = %5022
  %5031 = load ptr, ptr %14, align 8, !tbaa !5
  %5032 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5031, i32 0, i32 3
  %5033 = load i8, ptr %5032, align 1, !tbaa !13
  %5034 = zext i8 %5033 to i32
  %5035 = and i32 %5034, 15
  %5036 = icmp eq i32 15, %5035
  br i1 %5036, label %5037, label %5038

5037:                                             ; preds = %5030
  br label %5040

5038:                                             ; preds = %5030
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

5039:                                             ; No predecessors!
  br label %5040

5040:                                             ; preds = %5039, %5037
  %5041 = phi i32 [ 15, %5037 ], [ 0, %5039 ]
  br label %5042

5042:                                             ; preds = %5040, %5029
  %5043 = phi i32 [ 14, %5029 ], [ %5041, %5040 ]
  br label %5044

5044:                                             ; preds = %5042, %5021
  %5045 = phi i32 [ 12, %5021 ], [ %5043, %5042 ]
  br label %5046

5046:                                             ; preds = %5044, %5013
  %5047 = phi i32 [ 12, %5013 ], [ %5045, %5044 ]
  br label %5048

5048:                                             ; preds = %5046, %5005
  %5049 = phi i32 [ 10, %5005 ], [ %5047, %5046 ]
  br label %5050

5050:                                             ; preds = %5048, %4997
  %5051 = phi i32 [ 10, %4997 ], [ %5049, %5048 ]
  br label %5052

5052:                                             ; preds = %5050, %4989
  %5053 = phi i32 [ 8, %4989 ], [ %5051, %5050 ]
  br label %5054

5054:                                             ; preds = %5052, %4981
  %5055 = phi i32 [ 8, %4981 ], [ %5053, %5052 ]
  br label %5056

5056:                                             ; preds = %5054, %4973
  %5057 = phi i32 [ 6, %4973 ], [ %5055, %5054 ]
  br label %5058

5058:                                             ; preds = %5056, %4965
  %5059 = phi i32 [ 6, %4965 ], [ %5057, %5056 ]
  br label %5060

5060:                                             ; preds = %5058, %4957
  %5061 = phi i32 [ 5, %4957 ], [ %5059, %5058 ]
  br label %5062

5062:                                             ; preds = %5060, %4949
  %5063 = phi i32 [ 4, %4949 ], [ %5061, %5060 ]
  br label %5064

5064:                                             ; preds = %5062, %4941
  %5065 = phi i32 [ 3, %4941 ], [ %5063, %5062 ]
  br label %5066

5066:                                             ; preds = %5064, %4933
  %5067 = phi i32 [ 2, %4933 ], [ %5065, %5064 ]
  br label %5068

5068:                                             ; preds = %5066, %4925
  %5069 = phi i32 [ 1, %4925 ], [ %5067, %5066 ]
  br label %5070

5070:                                             ; preds = %5068, %4917
  %5071 = phi i32 [ 0, %4917 ], [ %5069, %5068 ]
  br label %5078

5072:                                             ; preds = %4903
  %5073 = load ptr, ptr %14, align 8, !tbaa !5
  %5074 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5073, i32 0, i32 3
  %5075 = load i8, ptr %5074, align 1, !tbaa !13
  %5076 = zext i8 %5075 to i32
  %5077 = ashr i32 %5076, 4
  br label %5078

5078:                                             ; preds = %5072, %5070
  %5079 = phi i32 [ %5071, %5070 ], [ %5077, %5072 ]
  %5080 = icmp eq i32 13, %5079
  br i1 %5080, label %5081, label %5082

5081:                                             ; preds = %5078
  br label %5084

5082:                                             ; preds = %5078
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

5083:                                             ; No predecessors!
  br label %5084

5084:                                             ; preds = %5083, %5081
  %5085 = phi i32 [ 1, %5081 ], [ 0, %5083 ]
  br label %5086

5086:                                             ; preds = %5084, %4902
  %5087 = phi i32 [ 1, %4902 ], [ %5085, %5084 ]
  br label %5088

5088:                                             ; preds = %5086, %4723
  %5089 = phi i32 [ 2, %4723 ], [ %5087, %5086 ]
  br label %5090

5090:                                             ; preds = %5088, %4544
  %5091 = phi i32 [ 2, %4544 ], [ %5089, %5088 ]
  br label %5092

5092:                                             ; preds = %5090, %4365
  %5093 = phi i32 [ 4, %4365 ], [ %5091, %5090 ]
  br label %5094

5094:                                             ; preds = %5092, %4186
  %5095 = phi i32 [ 4, %4186 ], [ %5093, %5092 ]
  br label %5096

5096:                                             ; preds = %5094, %4007
  %5097 = phi i32 [ 8, %4007 ], [ %5095, %5094 ]
  br label %5098

5098:                                             ; preds = %5096, %3828
  %5099 = phi i32 [ 8, %3828 ], [ %5097, %5096 ]
  br label %5100

5100:                                             ; preds = %5098, %3649
  %5101 = phi i32 [ 1, %3649 ], [ %5099, %5098 ]
  br label %5102

5102:                                             ; preds = %5100, %3470
  %5103 = phi i32 [ 1, %3470 ], [ %5101, %5100 ]
  br label %5104

5104:                                             ; preds = %5102, %3291
  %5105 = phi i32 [ 2, %3291 ], [ %5103, %5102 ]
  br label %5106

5106:                                             ; preds = %5104, %3112
  %5107 = phi i32 [ 2, %3112 ], [ %5105, %5104 ]
  br label %5108

5108:                                             ; preds = %5106, %2933
  %5109 = phi i32 [ 4, %2933 ], [ %5107, %5106 ]
  br label %5110

5110:                                             ; preds = %5108, %2754
  %5111 = phi i32 [ 8, %2754 ], [ %5109, %5108 ]
  %5112 = load i32, ptr %15, align 4, !tbaa !9
  %5113 = mul i32 %5111, %5112
  %5114 = load i32, ptr %17, align 4, !tbaa !9
  %5115 = mul i32 %5113, %5114
  br label %7659

5116:                                             ; preds = %2571
  %5117 = load ptr, ptr %14, align 8, !tbaa !5
  %5118 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5117, i32 0, i32 3
  %5119 = load i8, ptr %5118, align 1, !tbaa !13
  %5120 = zext i8 %5119 to i32
  %5121 = ashr i32 %5120, 4
  %5122 = icmp eq i32 0, %5121
  br i1 %5122, label %5123, label %5285

5123:                                             ; preds = %5116
  %5124 = load ptr, ptr %14, align 8, !tbaa !5
  %5125 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5124, i32 0, i32 3
  %5126 = load i8, ptr %5125, align 1, !tbaa !13
  %5127 = zext i8 %5126 to i32
  %5128 = and i32 %5127, 15
  %5129 = icmp eq i32 0, %5128
  br i1 %5129, label %5130, label %5131

5130:                                             ; preds = %5123
  br label %5283

5131:                                             ; preds = %5123
  %5132 = load ptr, ptr %14, align 8, !tbaa !5
  %5133 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5132, i32 0, i32 3
  %5134 = load i8, ptr %5133, align 1, !tbaa !13
  %5135 = zext i8 %5134 to i32
  %5136 = and i32 %5135, 15
  %5137 = icmp eq i32 1, %5136
  br i1 %5137, label %5138, label %5139

5138:                                             ; preds = %5131
  br label %5281

5139:                                             ; preds = %5131
  %5140 = load ptr, ptr %14, align 8, !tbaa !5
  %5141 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5140, i32 0, i32 3
  %5142 = load i8, ptr %5141, align 1, !tbaa !13
  %5143 = zext i8 %5142 to i32
  %5144 = and i32 %5143, 15
  %5145 = icmp eq i32 2, %5144
  br i1 %5145, label %5146, label %5147

5146:                                             ; preds = %5139
  br label %5279

5147:                                             ; preds = %5139
  %5148 = load ptr, ptr %14, align 8, !tbaa !5
  %5149 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5148, i32 0, i32 3
  %5150 = load i8, ptr %5149, align 1, !tbaa !13
  %5151 = zext i8 %5150 to i32
  %5152 = and i32 %5151, 15
  %5153 = icmp eq i32 3, %5152
  br i1 %5153, label %5154, label %5155

5154:                                             ; preds = %5147
  br label %5277

5155:                                             ; preds = %5147
  %5156 = load ptr, ptr %14, align 8, !tbaa !5
  %5157 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5156, i32 0, i32 3
  %5158 = load i8, ptr %5157, align 1, !tbaa !13
  %5159 = zext i8 %5158 to i32
  %5160 = and i32 %5159, 15
  %5161 = icmp eq i32 4, %5160
  br i1 %5161, label %5162, label %5163

5162:                                             ; preds = %5155
  br label %5275

5163:                                             ; preds = %5155
  %5164 = load ptr, ptr %14, align 8, !tbaa !5
  %5165 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5164, i32 0, i32 3
  %5166 = load i8, ptr %5165, align 1, !tbaa !13
  %5167 = zext i8 %5166 to i32
  %5168 = and i32 %5167, 15
  %5169 = icmp eq i32 5, %5168
  br i1 %5169, label %5170, label %5171

5170:                                             ; preds = %5163
  br label %5273

5171:                                             ; preds = %5163
  %5172 = load ptr, ptr %14, align 8, !tbaa !5
  %5173 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5172, i32 0, i32 3
  %5174 = load i8, ptr %5173, align 1, !tbaa !13
  %5175 = zext i8 %5174 to i32
  %5176 = and i32 %5175, 15
  %5177 = icmp eq i32 6, %5176
  br i1 %5177, label %5178, label %5179

5178:                                             ; preds = %5171
  br label %5271

5179:                                             ; preds = %5171
  %5180 = load ptr, ptr %14, align 8, !tbaa !5
  %5181 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5180, i32 0, i32 3
  %5182 = load i8, ptr %5181, align 1, !tbaa !13
  %5183 = zext i8 %5182 to i32
  %5184 = and i32 %5183, 15
  %5185 = icmp eq i32 7, %5184
  br i1 %5185, label %5186, label %5187

5186:                                             ; preds = %5179
  br label %5269

5187:                                             ; preds = %5179
  %5188 = load ptr, ptr %14, align 8, !tbaa !5
  %5189 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5188, i32 0, i32 3
  %5190 = load i8, ptr %5189, align 1, !tbaa !13
  %5191 = zext i8 %5190 to i32
  %5192 = and i32 %5191, 15
  %5193 = icmp eq i32 8, %5192
  br i1 %5193, label %5194, label %5195

5194:                                             ; preds = %5187
  br label %5267

5195:                                             ; preds = %5187
  %5196 = load ptr, ptr %14, align 8, !tbaa !5
  %5197 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5196, i32 0, i32 3
  %5198 = load i8, ptr %5197, align 1, !tbaa !13
  %5199 = zext i8 %5198 to i32
  %5200 = and i32 %5199, 15
  %5201 = icmp eq i32 9, %5200
  br i1 %5201, label %5202, label %5203

5202:                                             ; preds = %5195
  br label %5265

5203:                                             ; preds = %5195
  %5204 = load ptr, ptr %14, align 8, !tbaa !5
  %5205 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5204, i32 0, i32 3
  %5206 = load i8, ptr %5205, align 1, !tbaa !13
  %5207 = zext i8 %5206 to i32
  %5208 = and i32 %5207, 15
  %5209 = icmp eq i32 10, %5208
  br i1 %5209, label %5210, label %5211

5210:                                             ; preds = %5203
  br label %5263

5211:                                             ; preds = %5203
  %5212 = load ptr, ptr %14, align 8, !tbaa !5
  %5213 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5212, i32 0, i32 3
  %5214 = load i8, ptr %5213, align 1, !tbaa !13
  %5215 = zext i8 %5214 to i32
  %5216 = and i32 %5215, 15
  %5217 = icmp eq i32 11, %5216
  br i1 %5217, label %5218, label %5219

5218:                                             ; preds = %5211
  br label %5261

5219:                                             ; preds = %5211
  %5220 = load ptr, ptr %14, align 8, !tbaa !5
  %5221 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5220, i32 0, i32 3
  %5222 = load i8, ptr %5221, align 1, !tbaa !13
  %5223 = zext i8 %5222 to i32
  %5224 = and i32 %5223, 15
  %5225 = icmp eq i32 12, %5224
  br i1 %5225, label %5226, label %5227

5226:                                             ; preds = %5219
  br label %5259

5227:                                             ; preds = %5219
  %5228 = load ptr, ptr %14, align 8, !tbaa !5
  %5229 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5228, i32 0, i32 3
  %5230 = load i8, ptr %5229, align 1, !tbaa !13
  %5231 = zext i8 %5230 to i32
  %5232 = and i32 %5231, 15
  %5233 = icmp eq i32 13, %5232
  br i1 %5233, label %5234, label %5235

5234:                                             ; preds = %5227
  br label %5257

5235:                                             ; preds = %5227
  %5236 = load ptr, ptr %14, align 8, !tbaa !5
  %5237 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5236, i32 0, i32 3
  %5238 = load i8, ptr %5237, align 1, !tbaa !13
  %5239 = zext i8 %5238 to i32
  %5240 = and i32 %5239, 15
  %5241 = icmp eq i32 14, %5240
  br i1 %5241, label %5242, label %5243

5242:                                             ; preds = %5235
  br label %5255

5243:                                             ; preds = %5235
  %5244 = load ptr, ptr %14, align 8, !tbaa !5
  %5245 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5244, i32 0, i32 3
  %5246 = load i8, ptr %5245, align 1, !tbaa !13
  %5247 = zext i8 %5246 to i32
  %5248 = and i32 %5247, 15
  %5249 = icmp eq i32 15, %5248
  br i1 %5249, label %5250, label %5251

5250:                                             ; preds = %5243
  br label %5253

5251:                                             ; preds = %5243
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

5252:                                             ; No predecessors!
  br label %5253

5253:                                             ; preds = %5252, %5250
  %5254 = phi i32 [ 15, %5250 ], [ 0, %5252 ]
  br label %5255

5255:                                             ; preds = %5253, %5242
  %5256 = phi i32 [ 14, %5242 ], [ %5254, %5253 ]
  br label %5257

5257:                                             ; preds = %5255, %5234
  %5258 = phi i32 [ 12, %5234 ], [ %5256, %5255 ]
  br label %5259

5259:                                             ; preds = %5257, %5226
  %5260 = phi i32 [ 12, %5226 ], [ %5258, %5257 ]
  br label %5261

5261:                                             ; preds = %5259, %5218
  %5262 = phi i32 [ 10, %5218 ], [ %5260, %5259 ]
  br label %5263

5263:                                             ; preds = %5261, %5210
  %5264 = phi i32 [ 10, %5210 ], [ %5262, %5261 ]
  br label %5265

5265:                                             ; preds = %5263, %5202
  %5266 = phi i32 [ 8, %5202 ], [ %5264, %5263 ]
  br label %5267

5267:                                             ; preds = %5265, %5194
  %5268 = phi i32 [ 8, %5194 ], [ %5266, %5265 ]
  br label %5269

5269:                                             ; preds = %5267, %5186
  %5270 = phi i32 [ 6, %5186 ], [ %5268, %5267 ]
  br label %5271

5271:                                             ; preds = %5269, %5178
  %5272 = phi i32 [ 6, %5178 ], [ %5270, %5269 ]
  br label %5273

5273:                                             ; preds = %5271, %5170
  %5274 = phi i32 [ 5, %5170 ], [ %5272, %5271 ]
  br label %5275

5275:                                             ; preds = %5273, %5162
  %5276 = phi i32 [ 4, %5162 ], [ %5274, %5273 ]
  br label %5277

5277:                                             ; preds = %5275, %5154
  %5278 = phi i32 [ 3, %5154 ], [ %5276, %5275 ]
  br label %5279

5279:                                             ; preds = %5277, %5146
  %5280 = phi i32 [ 2, %5146 ], [ %5278, %5277 ]
  br label %5281

5281:                                             ; preds = %5279, %5138
  %5282 = phi i32 [ 1, %5138 ], [ %5280, %5279 ]
  br label %5283

5283:                                             ; preds = %5281, %5130
  %5284 = phi i32 [ 0, %5130 ], [ %5282, %5281 ]
  br label %5291

5285:                                             ; preds = %5116
  %5286 = load ptr, ptr %14, align 8, !tbaa !5
  %5287 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5286, i32 0, i32 3
  %5288 = load i8, ptr %5287, align 1, !tbaa !13
  %5289 = zext i8 %5288 to i32
  %5290 = ashr i32 %5289, 4
  br label %5291

5291:                                             ; preds = %5285, %5283
  %5292 = phi i32 [ %5284, %5283 ], [ %5290, %5285 ]
  %5293 = icmp eq i32 0, %5292
  br i1 %5293, label %5294, label %5295

5294:                                             ; preds = %5291
  br label %7650

5295:                                             ; preds = %5291
  %5296 = load ptr, ptr %14, align 8, !tbaa !5
  %5297 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5296, i32 0, i32 3
  %5298 = load i8, ptr %5297, align 1, !tbaa !13
  %5299 = zext i8 %5298 to i32
  %5300 = ashr i32 %5299, 4
  %5301 = icmp eq i32 0, %5300
  br i1 %5301, label %5302, label %5464

5302:                                             ; preds = %5295
  %5303 = load ptr, ptr %14, align 8, !tbaa !5
  %5304 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5303, i32 0, i32 3
  %5305 = load i8, ptr %5304, align 1, !tbaa !13
  %5306 = zext i8 %5305 to i32
  %5307 = and i32 %5306, 15
  %5308 = icmp eq i32 0, %5307
  br i1 %5308, label %5309, label %5310

5309:                                             ; preds = %5302
  br label %5462

5310:                                             ; preds = %5302
  %5311 = load ptr, ptr %14, align 8, !tbaa !5
  %5312 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5311, i32 0, i32 3
  %5313 = load i8, ptr %5312, align 1, !tbaa !13
  %5314 = zext i8 %5313 to i32
  %5315 = and i32 %5314, 15
  %5316 = icmp eq i32 1, %5315
  br i1 %5316, label %5317, label %5318

5317:                                             ; preds = %5310
  br label %5460

5318:                                             ; preds = %5310
  %5319 = load ptr, ptr %14, align 8, !tbaa !5
  %5320 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5319, i32 0, i32 3
  %5321 = load i8, ptr %5320, align 1, !tbaa !13
  %5322 = zext i8 %5321 to i32
  %5323 = and i32 %5322, 15
  %5324 = icmp eq i32 2, %5323
  br i1 %5324, label %5325, label %5326

5325:                                             ; preds = %5318
  br label %5458

5326:                                             ; preds = %5318
  %5327 = load ptr, ptr %14, align 8, !tbaa !5
  %5328 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5327, i32 0, i32 3
  %5329 = load i8, ptr %5328, align 1, !tbaa !13
  %5330 = zext i8 %5329 to i32
  %5331 = and i32 %5330, 15
  %5332 = icmp eq i32 3, %5331
  br i1 %5332, label %5333, label %5334

5333:                                             ; preds = %5326
  br label %5456

5334:                                             ; preds = %5326
  %5335 = load ptr, ptr %14, align 8, !tbaa !5
  %5336 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5335, i32 0, i32 3
  %5337 = load i8, ptr %5336, align 1, !tbaa !13
  %5338 = zext i8 %5337 to i32
  %5339 = and i32 %5338, 15
  %5340 = icmp eq i32 4, %5339
  br i1 %5340, label %5341, label %5342

5341:                                             ; preds = %5334
  br label %5454

5342:                                             ; preds = %5334
  %5343 = load ptr, ptr %14, align 8, !tbaa !5
  %5344 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5343, i32 0, i32 3
  %5345 = load i8, ptr %5344, align 1, !tbaa !13
  %5346 = zext i8 %5345 to i32
  %5347 = and i32 %5346, 15
  %5348 = icmp eq i32 5, %5347
  br i1 %5348, label %5349, label %5350

5349:                                             ; preds = %5342
  br label %5452

5350:                                             ; preds = %5342
  %5351 = load ptr, ptr %14, align 8, !tbaa !5
  %5352 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5351, i32 0, i32 3
  %5353 = load i8, ptr %5352, align 1, !tbaa !13
  %5354 = zext i8 %5353 to i32
  %5355 = and i32 %5354, 15
  %5356 = icmp eq i32 6, %5355
  br i1 %5356, label %5357, label %5358

5357:                                             ; preds = %5350
  br label %5450

5358:                                             ; preds = %5350
  %5359 = load ptr, ptr %14, align 8, !tbaa !5
  %5360 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5359, i32 0, i32 3
  %5361 = load i8, ptr %5360, align 1, !tbaa !13
  %5362 = zext i8 %5361 to i32
  %5363 = and i32 %5362, 15
  %5364 = icmp eq i32 7, %5363
  br i1 %5364, label %5365, label %5366

5365:                                             ; preds = %5358
  br label %5448

5366:                                             ; preds = %5358
  %5367 = load ptr, ptr %14, align 8, !tbaa !5
  %5368 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5367, i32 0, i32 3
  %5369 = load i8, ptr %5368, align 1, !tbaa !13
  %5370 = zext i8 %5369 to i32
  %5371 = and i32 %5370, 15
  %5372 = icmp eq i32 8, %5371
  br i1 %5372, label %5373, label %5374

5373:                                             ; preds = %5366
  br label %5446

5374:                                             ; preds = %5366
  %5375 = load ptr, ptr %14, align 8, !tbaa !5
  %5376 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5375, i32 0, i32 3
  %5377 = load i8, ptr %5376, align 1, !tbaa !13
  %5378 = zext i8 %5377 to i32
  %5379 = and i32 %5378, 15
  %5380 = icmp eq i32 9, %5379
  br i1 %5380, label %5381, label %5382

5381:                                             ; preds = %5374
  br label %5444

5382:                                             ; preds = %5374
  %5383 = load ptr, ptr %14, align 8, !tbaa !5
  %5384 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5383, i32 0, i32 3
  %5385 = load i8, ptr %5384, align 1, !tbaa !13
  %5386 = zext i8 %5385 to i32
  %5387 = and i32 %5386, 15
  %5388 = icmp eq i32 10, %5387
  br i1 %5388, label %5389, label %5390

5389:                                             ; preds = %5382
  br label %5442

5390:                                             ; preds = %5382
  %5391 = load ptr, ptr %14, align 8, !tbaa !5
  %5392 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5391, i32 0, i32 3
  %5393 = load i8, ptr %5392, align 1, !tbaa !13
  %5394 = zext i8 %5393 to i32
  %5395 = and i32 %5394, 15
  %5396 = icmp eq i32 11, %5395
  br i1 %5396, label %5397, label %5398

5397:                                             ; preds = %5390
  br label %5440

5398:                                             ; preds = %5390
  %5399 = load ptr, ptr %14, align 8, !tbaa !5
  %5400 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5399, i32 0, i32 3
  %5401 = load i8, ptr %5400, align 1, !tbaa !13
  %5402 = zext i8 %5401 to i32
  %5403 = and i32 %5402, 15
  %5404 = icmp eq i32 12, %5403
  br i1 %5404, label %5405, label %5406

5405:                                             ; preds = %5398
  br label %5438

5406:                                             ; preds = %5398
  %5407 = load ptr, ptr %14, align 8, !tbaa !5
  %5408 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5407, i32 0, i32 3
  %5409 = load i8, ptr %5408, align 1, !tbaa !13
  %5410 = zext i8 %5409 to i32
  %5411 = and i32 %5410, 15
  %5412 = icmp eq i32 13, %5411
  br i1 %5412, label %5413, label %5414

5413:                                             ; preds = %5406
  br label %5436

5414:                                             ; preds = %5406
  %5415 = load ptr, ptr %14, align 8, !tbaa !5
  %5416 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5415, i32 0, i32 3
  %5417 = load i8, ptr %5416, align 1, !tbaa !13
  %5418 = zext i8 %5417 to i32
  %5419 = and i32 %5418, 15
  %5420 = icmp eq i32 14, %5419
  br i1 %5420, label %5421, label %5422

5421:                                             ; preds = %5414
  br label %5434

5422:                                             ; preds = %5414
  %5423 = load ptr, ptr %14, align 8, !tbaa !5
  %5424 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5423, i32 0, i32 3
  %5425 = load i8, ptr %5424, align 1, !tbaa !13
  %5426 = zext i8 %5425 to i32
  %5427 = and i32 %5426, 15
  %5428 = icmp eq i32 15, %5427
  br i1 %5428, label %5429, label %5430

5429:                                             ; preds = %5422
  br label %5432

5430:                                             ; preds = %5422
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

5431:                                             ; No predecessors!
  br label %5432

5432:                                             ; preds = %5431, %5429
  %5433 = phi i32 [ 15, %5429 ], [ 0, %5431 ]
  br label %5434

5434:                                             ; preds = %5432, %5421
  %5435 = phi i32 [ 14, %5421 ], [ %5433, %5432 ]
  br label %5436

5436:                                             ; preds = %5434, %5413
  %5437 = phi i32 [ 12, %5413 ], [ %5435, %5434 ]
  br label %5438

5438:                                             ; preds = %5436, %5405
  %5439 = phi i32 [ 12, %5405 ], [ %5437, %5436 ]
  br label %5440

5440:                                             ; preds = %5438, %5397
  %5441 = phi i32 [ 10, %5397 ], [ %5439, %5438 ]
  br label %5442

5442:                                             ; preds = %5440, %5389
  %5443 = phi i32 [ 10, %5389 ], [ %5441, %5440 ]
  br label %5444

5444:                                             ; preds = %5442, %5381
  %5445 = phi i32 [ 8, %5381 ], [ %5443, %5442 ]
  br label %5446

5446:                                             ; preds = %5444, %5373
  %5447 = phi i32 [ 8, %5373 ], [ %5445, %5444 ]
  br label %5448

5448:                                             ; preds = %5446, %5365
  %5449 = phi i32 [ 6, %5365 ], [ %5447, %5446 ]
  br label %5450

5450:                                             ; preds = %5448, %5357
  %5451 = phi i32 [ 6, %5357 ], [ %5449, %5448 ]
  br label %5452

5452:                                             ; preds = %5450, %5349
  %5453 = phi i32 [ 5, %5349 ], [ %5451, %5450 ]
  br label %5454

5454:                                             ; preds = %5452, %5341
  %5455 = phi i32 [ 4, %5341 ], [ %5453, %5452 ]
  br label %5456

5456:                                             ; preds = %5454, %5333
  %5457 = phi i32 [ 3, %5333 ], [ %5455, %5454 ]
  br label %5458

5458:                                             ; preds = %5456, %5325
  %5459 = phi i32 [ 2, %5325 ], [ %5457, %5456 ]
  br label %5460

5460:                                             ; preds = %5458, %5317
  %5461 = phi i32 [ 1, %5317 ], [ %5459, %5458 ]
  br label %5462

5462:                                             ; preds = %5460, %5309
  %5463 = phi i32 [ 0, %5309 ], [ %5461, %5460 ]
  br label %5470

5464:                                             ; preds = %5295
  %5465 = load ptr, ptr %14, align 8, !tbaa !5
  %5466 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5465, i32 0, i32 3
  %5467 = load i8, ptr %5466, align 1, !tbaa !13
  %5468 = zext i8 %5467 to i32
  %5469 = ashr i32 %5468, 4
  br label %5470

5470:                                             ; preds = %5464, %5462
  %5471 = phi i32 [ %5463, %5462 ], [ %5469, %5464 ]
  %5472 = icmp eq i32 1, %5471
  br i1 %5472, label %5473, label %5474

5473:                                             ; preds = %5470
  br label %7648

5474:                                             ; preds = %5470
  %5475 = load ptr, ptr %14, align 8, !tbaa !5
  %5476 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5475, i32 0, i32 3
  %5477 = load i8, ptr %5476, align 1, !tbaa !13
  %5478 = zext i8 %5477 to i32
  %5479 = ashr i32 %5478, 4
  %5480 = icmp eq i32 0, %5479
  br i1 %5480, label %5481, label %5643

5481:                                             ; preds = %5474
  %5482 = load ptr, ptr %14, align 8, !tbaa !5
  %5483 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5482, i32 0, i32 3
  %5484 = load i8, ptr %5483, align 1, !tbaa !13
  %5485 = zext i8 %5484 to i32
  %5486 = and i32 %5485, 15
  %5487 = icmp eq i32 0, %5486
  br i1 %5487, label %5488, label %5489

5488:                                             ; preds = %5481
  br label %5641

5489:                                             ; preds = %5481
  %5490 = load ptr, ptr %14, align 8, !tbaa !5
  %5491 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5490, i32 0, i32 3
  %5492 = load i8, ptr %5491, align 1, !tbaa !13
  %5493 = zext i8 %5492 to i32
  %5494 = and i32 %5493, 15
  %5495 = icmp eq i32 1, %5494
  br i1 %5495, label %5496, label %5497

5496:                                             ; preds = %5489
  br label %5639

5497:                                             ; preds = %5489
  %5498 = load ptr, ptr %14, align 8, !tbaa !5
  %5499 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5498, i32 0, i32 3
  %5500 = load i8, ptr %5499, align 1, !tbaa !13
  %5501 = zext i8 %5500 to i32
  %5502 = and i32 %5501, 15
  %5503 = icmp eq i32 2, %5502
  br i1 %5503, label %5504, label %5505

5504:                                             ; preds = %5497
  br label %5637

5505:                                             ; preds = %5497
  %5506 = load ptr, ptr %14, align 8, !tbaa !5
  %5507 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5506, i32 0, i32 3
  %5508 = load i8, ptr %5507, align 1, !tbaa !13
  %5509 = zext i8 %5508 to i32
  %5510 = and i32 %5509, 15
  %5511 = icmp eq i32 3, %5510
  br i1 %5511, label %5512, label %5513

5512:                                             ; preds = %5505
  br label %5635

5513:                                             ; preds = %5505
  %5514 = load ptr, ptr %14, align 8, !tbaa !5
  %5515 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5514, i32 0, i32 3
  %5516 = load i8, ptr %5515, align 1, !tbaa !13
  %5517 = zext i8 %5516 to i32
  %5518 = and i32 %5517, 15
  %5519 = icmp eq i32 4, %5518
  br i1 %5519, label %5520, label %5521

5520:                                             ; preds = %5513
  br label %5633

5521:                                             ; preds = %5513
  %5522 = load ptr, ptr %14, align 8, !tbaa !5
  %5523 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5522, i32 0, i32 3
  %5524 = load i8, ptr %5523, align 1, !tbaa !13
  %5525 = zext i8 %5524 to i32
  %5526 = and i32 %5525, 15
  %5527 = icmp eq i32 5, %5526
  br i1 %5527, label %5528, label %5529

5528:                                             ; preds = %5521
  br label %5631

5529:                                             ; preds = %5521
  %5530 = load ptr, ptr %14, align 8, !tbaa !5
  %5531 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5530, i32 0, i32 3
  %5532 = load i8, ptr %5531, align 1, !tbaa !13
  %5533 = zext i8 %5532 to i32
  %5534 = and i32 %5533, 15
  %5535 = icmp eq i32 6, %5534
  br i1 %5535, label %5536, label %5537

5536:                                             ; preds = %5529
  br label %5629

5537:                                             ; preds = %5529
  %5538 = load ptr, ptr %14, align 8, !tbaa !5
  %5539 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5538, i32 0, i32 3
  %5540 = load i8, ptr %5539, align 1, !tbaa !13
  %5541 = zext i8 %5540 to i32
  %5542 = and i32 %5541, 15
  %5543 = icmp eq i32 7, %5542
  br i1 %5543, label %5544, label %5545

5544:                                             ; preds = %5537
  br label %5627

5545:                                             ; preds = %5537
  %5546 = load ptr, ptr %14, align 8, !tbaa !5
  %5547 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5546, i32 0, i32 3
  %5548 = load i8, ptr %5547, align 1, !tbaa !13
  %5549 = zext i8 %5548 to i32
  %5550 = and i32 %5549, 15
  %5551 = icmp eq i32 8, %5550
  br i1 %5551, label %5552, label %5553

5552:                                             ; preds = %5545
  br label %5625

5553:                                             ; preds = %5545
  %5554 = load ptr, ptr %14, align 8, !tbaa !5
  %5555 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5554, i32 0, i32 3
  %5556 = load i8, ptr %5555, align 1, !tbaa !13
  %5557 = zext i8 %5556 to i32
  %5558 = and i32 %5557, 15
  %5559 = icmp eq i32 9, %5558
  br i1 %5559, label %5560, label %5561

5560:                                             ; preds = %5553
  br label %5623

5561:                                             ; preds = %5553
  %5562 = load ptr, ptr %14, align 8, !tbaa !5
  %5563 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5562, i32 0, i32 3
  %5564 = load i8, ptr %5563, align 1, !tbaa !13
  %5565 = zext i8 %5564 to i32
  %5566 = and i32 %5565, 15
  %5567 = icmp eq i32 10, %5566
  br i1 %5567, label %5568, label %5569

5568:                                             ; preds = %5561
  br label %5621

5569:                                             ; preds = %5561
  %5570 = load ptr, ptr %14, align 8, !tbaa !5
  %5571 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5570, i32 0, i32 3
  %5572 = load i8, ptr %5571, align 1, !tbaa !13
  %5573 = zext i8 %5572 to i32
  %5574 = and i32 %5573, 15
  %5575 = icmp eq i32 11, %5574
  br i1 %5575, label %5576, label %5577

5576:                                             ; preds = %5569
  br label %5619

5577:                                             ; preds = %5569
  %5578 = load ptr, ptr %14, align 8, !tbaa !5
  %5579 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5578, i32 0, i32 3
  %5580 = load i8, ptr %5579, align 1, !tbaa !13
  %5581 = zext i8 %5580 to i32
  %5582 = and i32 %5581, 15
  %5583 = icmp eq i32 12, %5582
  br i1 %5583, label %5584, label %5585

5584:                                             ; preds = %5577
  br label %5617

5585:                                             ; preds = %5577
  %5586 = load ptr, ptr %14, align 8, !tbaa !5
  %5587 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5586, i32 0, i32 3
  %5588 = load i8, ptr %5587, align 1, !tbaa !13
  %5589 = zext i8 %5588 to i32
  %5590 = and i32 %5589, 15
  %5591 = icmp eq i32 13, %5590
  br i1 %5591, label %5592, label %5593

5592:                                             ; preds = %5585
  br label %5615

5593:                                             ; preds = %5585
  %5594 = load ptr, ptr %14, align 8, !tbaa !5
  %5595 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5594, i32 0, i32 3
  %5596 = load i8, ptr %5595, align 1, !tbaa !13
  %5597 = zext i8 %5596 to i32
  %5598 = and i32 %5597, 15
  %5599 = icmp eq i32 14, %5598
  br i1 %5599, label %5600, label %5601

5600:                                             ; preds = %5593
  br label %5613

5601:                                             ; preds = %5593
  %5602 = load ptr, ptr %14, align 8, !tbaa !5
  %5603 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5602, i32 0, i32 3
  %5604 = load i8, ptr %5603, align 1, !tbaa !13
  %5605 = zext i8 %5604 to i32
  %5606 = and i32 %5605, 15
  %5607 = icmp eq i32 15, %5606
  br i1 %5607, label %5608, label %5609

5608:                                             ; preds = %5601
  br label %5611

5609:                                             ; preds = %5601
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

5610:                                             ; No predecessors!
  br label %5611

5611:                                             ; preds = %5610, %5608
  %5612 = phi i32 [ 15, %5608 ], [ 0, %5610 ]
  br label %5613

5613:                                             ; preds = %5611, %5600
  %5614 = phi i32 [ 14, %5600 ], [ %5612, %5611 ]
  br label %5615

5615:                                             ; preds = %5613, %5592
  %5616 = phi i32 [ 12, %5592 ], [ %5614, %5613 ]
  br label %5617

5617:                                             ; preds = %5615, %5584
  %5618 = phi i32 [ 12, %5584 ], [ %5616, %5615 ]
  br label %5619

5619:                                             ; preds = %5617, %5576
  %5620 = phi i32 [ 10, %5576 ], [ %5618, %5617 ]
  br label %5621

5621:                                             ; preds = %5619, %5568
  %5622 = phi i32 [ 10, %5568 ], [ %5620, %5619 ]
  br label %5623

5623:                                             ; preds = %5621, %5560
  %5624 = phi i32 [ 8, %5560 ], [ %5622, %5621 ]
  br label %5625

5625:                                             ; preds = %5623, %5552
  %5626 = phi i32 [ 8, %5552 ], [ %5624, %5623 ]
  br label %5627

5627:                                             ; preds = %5625, %5544
  %5628 = phi i32 [ 6, %5544 ], [ %5626, %5625 ]
  br label %5629

5629:                                             ; preds = %5627, %5536
  %5630 = phi i32 [ 6, %5536 ], [ %5628, %5627 ]
  br label %5631

5631:                                             ; preds = %5629, %5528
  %5632 = phi i32 [ 5, %5528 ], [ %5630, %5629 ]
  br label %5633

5633:                                             ; preds = %5631, %5520
  %5634 = phi i32 [ 4, %5520 ], [ %5632, %5631 ]
  br label %5635

5635:                                             ; preds = %5633, %5512
  %5636 = phi i32 [ 3, %5512 ], [ %5634, %5633 ]
  br label %5637

5637:                                             ; preds = %5635, %5504
  %5638 = phi i32 [ 2, %5504 ], [ %5636, %5635 ]
  br label %5639

5639:                                             ; preds = %5637, %5496
  %5640 = phi i32 [ 1, %5496 ], [ %5638, %5637 ]
  br label %5641

5641:                                             ; preds = %5639, %5488
  %5642 = phi i32 [ 0, %5488 ], [ %5640, %5639 ]
  br label %5649

5643:                                             ; preds = %5474
  %5644 = load ptr, ptr %14, align 8, !tbaa !5
  %5645 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5644, i32 0, i32 3
  %5646 = load i8, ptr %5645, align 1, !tbaa !13
  %5647 = zext i8 %5646 to i32
  %5648 = ashr i32 %5647, 4
  br label %5649

5649:                                             ; preds = %5643, %5641
  %5650 = phi i32 [ %5642, %5641 ], [ %5648, %5643 ]
  %5651 = icmp eq i32 2, %5650
  br i1 %5651, label %5652, label %5653

5652:                                             ; preds = %5649
  br label %7646

5653:                                             ; preds = %5649
  %5654 = load ptr, ptr %14, align 8, !tbaa !5
  %5655 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5654, i32 0, i32 3
  %5656 = load i8, ptr %5655, align 1, !tbaa !13
  %5657 = zext i8 %5656 to i32
  %5658 = ashr i32 %5657, 4
  %5659 = icmp eq i32 0, %5658
  br i1 %5659, label %5660, label %5822

5660:                                             ; preds = %5653
  %5661 = load ptr, ptr %14, align 8, !tbaa !5
  %5662 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5661, i32 0, i32 3
  %5663 = load i8, ptr %5662, align 1, !tbaa !13
  %5664 = zext i8 %5663 to i32
  %5665 = and i32 %5664, 15
  %5666 = icmp eq i32 0, %5665
  br i1 %5666, label %5667, label %5668

5667:                                             ; preds = %5660
  br label %5820

5668:                                             ; preds = %5660
  %5669 = load ptr, ptr %14, align 8, !tbaa !5
  %5670 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5669, i32 0, i32 3
  %5671 = load i8, ptr %5670, align 1, !tbaa !13
  %5672 = zext i8 %5671 to i32
  %5673 = and i32 %5672, 15
  %5674 = icmp eq i32 1, %5673
  br i1 %5674, label %5675, label %5676

5675:                                             ; preds = %5668
  br label %5818

5676:                                             ; preds = %5668
  %5677 = load ptr, ptr %14, align 8, !tbaa !5
  %5678 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5677, i32 0, i32 3
  %5679 = load i8, ptr %5678, align 1, !tbaa !13
  %5680 = zext i8 %5679 to i32
  %5681 = and i32 %5680, 15
  %5682 = icmp eq i32 2, %5681
  br i1 %5682, label %5683, label %5684

5683:                                             ; preds = %5676
  br label %5816

5684:                                             ; preds = %5676
  %5685 = load ptr, ptr %14, align 8, !tbaa !5
  %5686 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5685, i32 0, i32 3
  %5687 = load i8, ptr %5686, align 1, !tbaa !13
  %5688 = zext i8 %5687 to i32
  %5689 = and i32 %5688, 15
  %5690 = icmp eq i32 3, %5689
  br i1 %5690, label %5691, label %5692

5691:                                             ; preds = %5684
  br label %5814

5692:                                             ; preds = %5684
  %5693 = load ptr, ptr %14, align 8, !tbaa !5
  %5694 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5693, i32 0, i32 3
  %5695 = load i8, ptr %5694, align 1, !tbaa !13
  %5696 = zext i8 %5695 to i32
  %5697 = and i32 %5696, 15
  %5698 = icmp eq i32 4, %5697
  br i1 %5698, label %5699, label %5700

5699:                                             ; preds = %5692
  br label %5812

5700:                                             ; preds = %5692
  %5701 = load ptr, ptr %14, align 8, !tbaa !5
  %5702 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5701, i32 0, i32 3
  %5703 = load i8, ptr %5702, align 1, !tbaa !13
  %5704 = zext i8 %5703 to i32
  %5705 = and i32 %5704, 15
  %5706 = icmp eq i32 5, %5705
  br i1 %5706, label %5707, label %5708

5707:                                             ; preds = %5700
  br label %5810

5708:                                             ; preds = %5700
  %5709 = load ptr, ptr %14, align 8, !tbaa !5
  %5710 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5709, i32 0, i32 3
  %5711 = load i8, ptr %5710, align 1, !tbaa !13
  %5712 = zext i8 %5711 to i32
  %5713 = and i32 %5712, 15
  %5714 = icmp eq i32 6, %5713
  br i1 %5714, label %5715, label %5716

5715:                                             ; preds = %5708
  br label %5808

5716:                                             ; preds = %5708
  %5717 = load ptr, ptr %14, align 8, !tbaa !5
  %5718 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5717, i32 0, i32 3
  %5719 = load i8, ptr %5718, align 1, !tbaa !13
  %5720 = zext i8 %5719 to i32
  %5721 = and i32 %5720, 15
  %5722 = icmp eq i32 7, %5721
  br i1 %5722, label %5723, label %5724

5723:                                             ; preds = %5716
  br label %5806

5724:                                             ; preds = %5716
  %5725 = load ptr, ptr %14, align 8, !tbaa !5
  %5726 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5725, i32 0, i32 3
  %5727 = load i8, ptr %5726, align 1, !tbaa !13
  %5728 = zext i8 %5727 to i32
  %5729 = and i32 %5728, 15
  %5730 = icmp eq i32 8, %5729
  br i1 %5730, label %5731, label %5732

5731:                                             ; preds = %5724
  br label %5804

5732:                                             ; preds = %5724
  %5733 = load ptr, ptr %14, align 8, !tbaa !5
  %5734 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5733, i32 0, i32 3
  %5735 = load i8, ptr %5734, align 1, !tbaa !13
  %5736 = zext i8 %5735 to i32
  %5737 = and i32 %5736, 15
  %5738 = icmp eq i32 9, %5737
  br i1 %5738, label %5739, label %5740

5739:                                             ; preds = %5732
  br label %5802

5740:                                             ; preds = %5732
  %5741 = load ptr, ptr %14, align 8, !tbaa !5
  %5742 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5741, i32 0, i32 3
  %5743 = load i8, ptr %5742, align 1, !tbaa !13
  %5744 = zext i8 %5743 to i32
  %5745 = and i32 %5744, 15
  %5746 = icmp eq i32 10, %5745
  br i1 %5746, label %5747, label %5748

5747:                                             ; preds = %5740
  br label %5800

5748:                                             ; preds = %5740
  %5749 = load ptr, ptr %14, align 8, !tbaa !5
  %5750 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5749, i32 0, i32 3
  %5751 = load i8, ptr %5750, align 1, !tbaa !13
  %5752 = zext i8 %5751 to i32
  %5753 = and i32 %5752, 15
  %5754 = icmp eq i32 11, %5753
  br i1 %5754, label %5755, label %5756

5755:                                             ; preds = %5748
  br label %5798

5756:                                             ; preds = %5748
  %5757 = load ptr, ptr %14, align 8, !tbaa !5
  %5758 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5757, i32 0, i32 3
  %5759 = load i8, ptr %5758, align 1, !tbaa !13
  %5760 = zext i8 %5759 to i32
  %5761 = and i32 %5760, 15
  %5762 = icmp eq i32 12, %5761
  br i1 %5762, label %5763, label %5764

5763:                                             ; preds = %5756
  br label %5796

5764:                                             ; preds = %5756
  %5765 = load ptr, ptr %14, align 8, !tbaa !5
  %5766 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5765, i32 0, i32 3
  %5767 = load i8, ptr %5766, align 1, !tbaa !13
  %5768 = zext i8 %5767 to i32
  %5769 = and i32 %5768, 15
  %5770 = icmp eq i32 13, %5769
  br i1 %5770, label %5771, label %5772

5771:                                             ; preds = %5764
  br label %5794

5772:                                             ; preds = %5764
  %5773 = load ptr, ptr %14, align 8, !tbaa !5
  %5774 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5773, i32 0, i32 3
  %5775 = load i8, ptr %5774, align 1, !tbaa !13
  %5776 = zext i8 %5775 to i32
  %5777 = and i32 %5776, 15
  %5778 = icmp eq i32 14, %5777
  br i1 %5778, label %5779, label %5780

5779:                                             ; preds = %5772
  br label %5792

5780:                                             ; preds = %5772
  %5781 = load ptr, ptr %14, align 8, !tbaa !5
  %5782 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5781, i32 0, i32 3
  %5783 = load i8, ptr %5782, align 1, !tbaa !13
  %5784 = zext i8 %5783 to i32
  %5785 = and i32 %5784, 15
  %5786 = icmp eq i32 15, %5785
  br i1 %5786, label %5787, label %5788

5787:                                             ; preds = %5780
  br label %5790

5788:                                             ; preds = %5780
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

5789:                                             ; No predecessors!
  br label %5790

5790:                                             ; preds = %5789, %5787
  %5791 = phi i32 [ 15, %5787 ], [ 0, %5789 ]
  br label %5792

5792:                                             ; preds = %5790, %5779
  %5793 = phi i32 [ 14, %5779 ], [ %5791, %5790 ]
  br label %5794

5794:                                             ; preds = %5792, %5771
  %5795 = phi i32 [ 12, %5771 ], [ %5793, %5792 ]
  br label %5796

5796:                                             ; preds = %5794, %5763
  %5797 = phi i32 [ 12, %5763 ], [ %5795, %5794 ]
  br label %5798

5798:                                             ; preds = %5796, %5755
  %5799 = phi i32 [ 10, %5755 ], [ %5797, %5796 ]
  br label %5800

5800:                                             ; preds = %5798, %5747
  %5801 = phi i32 [ 10, %5747 ], [ %5799, %5798 ]
  br label %5802

5802:                                             ; preds = %5800, %5739
  %5803 = phi i32 [ 8, %5739 ], [ %5801, %5800 ]
  br label %5804

5804:                                             ; preds = %5802, %5731
  %5805 = phi i32 [ 8, %5731 ], [ %5803, %5802 ]
  br label %5806

5806:                                             ; preds = %5804, %5723
  %5807 = phi i32 [ 6, %5723 ], [ %5805, %5804 ]
  br label %5808

5808:                                             ; preds = %5806, %5715
  %5809 = phi i32 [ 6, %5715 ], [ %5807, %5806 ]
  br label %5810

5810:                                             ; preds = %5808, %5707
  %5811 = phi i32 [ 5, %5707 ], [ %5809, %5808 ]
  br label %5812

5812:                                             ; preds = %5810, %5699
  %5813 = phi i32 [ 4, %5699 ], [ %5811, %5810 ]
  br label %5814

5814:                                             ; preds = %5812, %5691
  %5815 = phi i32 [ 3, %5691 ], [ %5813, %5812 ]
  br label %5816

5816:                                             ; preds = %5814, %5683
  %5817 = phi i32 [ 2, %5683 ], [ %5815, %5814 ]
  br label %5818

5818:                                             ; preds = %5816, %5675
  %5819 = phi i32 [ 1, %5675 ], [ %5817, %5816 ]
  br label %5820

5820:                                             ; preds = %5818, %5667
  %5821 = phi i32 [ 0, %5667 ], [ %5819, %5818 ]
  br label %5828

5822:                                             ; preds = %5653
  %5823 = load ptr, ptr %14, align 8, !tbaa !5
  %5824 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5823, i32 0, i32 3
  %5825 = load i8, ptr %5824, align 1, !tbaa !13
  %5826 = zext i8 %5825 to i32
  %5827 = ashr i32 %5826, 4
  br label %5828

5828:                                             ; preds = %5822, %5820
  %5829 = phi i32 [ %5821, %5820 ], [ %5827, %5822 ]
  %5830 = icmp eq i32 3, %5829
  br i1 %5830, label %5831, label %5832

5831:                                             ; preds = %5828
  br label %7644

5832:                                             ; preds = %5828
  %5833 = load ptr, ptr %14, align 8, !tbaa !5
  %5834 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5833, i32 0, i32 3
  %5835 = load i8, ptr %5834, align 1, !tbaa !13
  %5836 = zext i8 %5835 to i32
  %5837 = ashr i32 %5836, 4
  %5838 = icmp eq i32 0, %5837
  br i1 %5838, label %5839, label %6001

5839:                                             ; preds = %5832
  %5840 = load ptr, ptr %14, align 8, !tbaa !5
  %5841 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5840, i32 0, i32 3
  %5842 = load i8, ptr %5841, align 1, !tbaa !13
  %5843 = zext i8 %5842 to i32
  %5844 = and i32 %5843, 15
  %5845 = icmp eq i32 0, %5844
  br i1 %5845, label %5846, label %5847

5846:                                             ; preds = %5839
  br label %5999

5847:                                             ; preds = %5839
  %5848 = load ptr, ptr %14, align 8, !tbaa !5
  %5849 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5848, i32 0, i32 3
  %5850 = load i8, ptr %5849, align 1, !tbaa !13
  %5851 = zext i8 %5850 to i32
  %5852 = and i32 %5851, 15
  %5853 = icmp eq i32 1, %5852
  br i1 %5853, label %5854, label %5855

5854:                                             ; preds = %5847
  br label %5997

5855:                                             ; preds = %5847
  %5856 = load ptr, ptr %14, align 8, !tbaa !5
  %5857 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5856, i32 0, i32 3
  %5858 = load i8, ptr %5857, align 1, !tbaa !13
  %5859 = zext i8 %5858 to i32
  %5860 = and i32 %5859, 15
  %5861 = icmp eq i32 2, %5860
  br i1 %5861, label %5862, label %5863

5862:                                             ; preds = %5855
  br label %5995

5863:                                             ; preds = %5855
  %5864 = load ptr, ptr %14, align 8, !tbaa !5
  %5865 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5864, i32 0, i32 3
  %5866 = load i8, ptr %5865, align 1, !tbaa !13
  %5867 = zext i8 %5866 to i32
  %5868 = and i32 %5867, 15
  %5869 = icmp eq i32 3, %5868
  br i1 %5869, label %5870, label %5871

5870:                                             ; preds = %5863
  br label %5993

5871:                                             ; preds = %5863
  %5872 = load ptr, ptr %14, align 8, !tbaa !5
  %5873 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5872, i32 0, i32 3
  %5874 = load i8, ptr %5873, align 1, !tbaa !13
  %5875 = zext i8 %5874 to i32
  %5876 = and i32 %5875, 15
  %5877 = icmp eq i32 4, %5876
  br i1 %5877, label %5878, label %5879

5878:                                             ; preds = %5871
  br label %5991

5879:                                             ; preds = %5871
  %5880 = load ptr, ptr %14, align 8, !tbaa !5
  %5881 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5880, i32 0, i32 3
  %5882 = load i8, ptr %5881, align 1, !tbaa !13
  %5883 = zext i8 %5882 to i32
  %5884 = and i32 %5883, 15
  %5885 = icmp eq i32 5, %5884
  br i1 %5885, label %5886, label %5887

5886:                                             ; preds = %5879
  br label %5989

5887:                                             ; preds = %5879
  %5888 = load ptr, ptr %14, align 8, !tbaa !5
  %5889 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5888, i32 0, i32 3
  %5890 = load i8, ptr %5889, align 1, !tbaa !13
  %5891 = zext i8 %5890 to i32
  %5892 = and i32 %5891, 15
  %5893 = icmp eq i32 6, %5892
  br i1 %5893, label %5894, label %5895

5894:                                             ; preds = %5887
  br label %5987

5895:                                             ; preds = %5887
  %5896 = load ptr, ptr %14, align 8, !tbaa !5
  %5897 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5896, i32 0, i32 3
  %5898 = load i8, ptr %5897, align 1, !tbaa !13
  %5899 = zext i8 %5898 to i32
  %5900 = and i32 %5899, 15
  %5901 = icmp eq i32 7, %5900
  br i1 %5901, label %5902, label %5903

5902:                                             ; preds = %5895
  br label %5985

5903:                                             ; preds = %5895
  %5904 = load ptr, ptr %14, align 8, !tbaa !5
  %5905 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5904, i32 0, i32 3
  %5906 = load i8, ptr %5905, align 1, !tbaa !13
  %5907 = zext i8 %5906 to i32
  %5908 = and i32 %5907, 15
  %5909 = icmp eq i32 8, %5908
  br i1 %5909, label %5910, label %5911

5910:                                             ; preds = %5903
  br label %5983

5911:                                             ; preds = %5903
  %5912 = load ptr, ptr %14, align 8, !tbaa !5
  %5913 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5912, i32 0, i32 3
  %5914 = load i8, ptr %5913, align 1, !tbaa !13
  %5915 = zext i8 %5914 to i32
  %5916 = and i32 %5915, 15
  %5917 = icmp eq i32 9, %5916
  br i1 %5917, label %5918, label %5919

5918:                                             ; preds = %5911
  br label %5981

5919:                                             ; preds = %5911
  %5920 = load ptr, ptr %14, align 8, !tbaa !5
  %5921 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5920, i32 0, i32 3
  %5922 = load i8, ptr %5921, align 1, !tbaa !13
  %5923 = zext i8 %5922 to i32
  %5924 = and i32 %5923, 15
  %5925 = icmp eq i32 10, %5924
  br i1 %5925, label %5926, label %5927

5926:                                             ; preds = %5919
  br label %5979

5927:                                             ; preds = %5919
  %5928 = load ptr, ptr %14, align 8, !tbaa !5
  %5929 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5928, i32 0, i32 3
  %5930 = load i8, ptr %5929, align 1, !tbaa !13
  %5931 = zext i8 %5930 to i32
  %5932 = and i32 %5931, 15
  %5933 = icmp eq i32 11, %5932
  br i1 %5933, label %5934, label %5935

5934:                                             ; preds = %5927
  br label %5977

5935:                                             ; preds = %5927
  %5936 = load ptr, ptr %14, align 8, !tbaa !5
  %5937 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5936, i32 0, i32 3
  %5938 = load i8, ptr %5937, align 1, !tbaa !13
  %5939 = zext i8 %5938 to i32
  %5940 = and i32 %5939, 15
  %5941 = icmp eq i32 12, %5940
  br i1 %5941, label %5942, label %5943

5942:                                             ; preds = %5935
  br label %5975

5943:                                             ; preds = %5935
  %5944 = load ptr, ptr %14, align 8, !tbaa !5
  %5945 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5944, i32 0, i32 3
  %5946 = load i8, ptr %5945, align 1, !tbaa !13
  %5947 = zext i8 %5946 to i32
  %5948 = and i32 %5947, 15
  %5949 = icmp eq i32 13, %5948
  br i1 %5949, label %5950, label %5951

5950:                                             ; preds = %5943
  br label %5973

5951:                                             ; preds = %5943
  %5952 = load ptr, ptr %14, align 8, !tbaa !5
  %5953 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5952, i32 0, i32 3
  %5954 = load i8, ptr %5953, align 1, !tbaa !13
  %5955 = zext i8 %5954 to i32
  %5956 = and i32 %5955, 15
  %5957 = icmp eq i32 14, %5956
  br i1 %5957, label %5958, label %5959

5958:                                             ; preds = %5951
  br label %5971

5959:                                             ; preds = %5951
  %5960 = load ptr, ptr %14, align 8, !tbaa !5
  %5961 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %5960, i32 0, i32 3
  %5962 = load i8, ptr %5961, align 1, !tbaa !13
  %5963 = zext i8 %5962 to i32
  %5964 = and i32 %5963, 15
  %5965 = icmp eq i32 15, %5964
  br i1 %5965, label %5966, label %5967

5966:                                             ; preds = %5959
  br label %5969

5967:                                             ; preds = %5959
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

5968:                                             ; No predecessors!
  br label %5969

5969:                                             ; preds = %5968, %5966
  %5970 = phi i32 [ 15, %5966 ], [ 0, %5968 ]
  br label %5971

5971:                                             ; preds = %5969, %5958
  %5972 = phi i32 [ 14, %5958 ], [ %5970, %5969 ]
  br label %5973

5973:                                             ; preds = %5971, %5950
  %5974 = phi i32 [ 12, %5950 ], [ %5972, %5971 ]
  br label %5975

5975:                                             ; preds = %5973, %5942
  %5976 = phi i32 [ 12, %5942 ], [ %5974, %5973 ]
  br label %5977

5977:                                             ; preds = %5975, %5934
  %5978 = phi i32 [ 10, %5934 ], [ %5976, %5975 ]
  br label %5979

5979:                                             ; preds = %5977, %5926
  %5980 = phi i32 [ 10, %5926 ], [ %5978, %5977 ]
  br label %5981

5981:                                             ; preds = %5979, %5918
  %5982 = phi i32 [ 8, %5918 ], [ %5980, %5979 ]
  br label %5983

5983:                                             ; preds = %5981, %5910
  %5984 = phi i32 [ 8, %5910 ], [ %5982, %5981 ]
  br label %5985

5985:                                             ; preds = %5983, %5902
  %5986 = phi i32 [ 6, %5902 ], [ %5984, %5983 ]
  br label %5987

5987:                                             ; preds = %5985, %5894
  %5988 = phi i32 [ 6, %5894 ], [ %5986, %5985 ]
  br label %5989

5989:                                             ; preds = %5987, %5886
  %5990 = phi i32 [ 5, %5886 ], [ %5988, %5987 ]
  br label %5991

5991:                                             ; preds = %5989, %5878
  %5992 = phi i32 [ 4, %5878 ], [ %5990, %5989 ]
  br label %5993

5993:                                             ; preds = %5991, %5870
  %5994 = phi i32 [ 3, %5870 ], [ %5992, %5991 ]
  br label %5995

5995:                                             ; preds = %5993, %5862
  %5996 = phi i32 [ 2, %5862 ], [ %5994, %5993 ]
  br label %5997

5997:                                             ; preds = %5995, %5854
  %5998 = phi i32 [ 1, %5854 ], [ %5996, %5995 ]
  br label %5999

5999:                                             ; preds = %5997, %5846
  %6000 = phi i32 [ 0, %5846 ], [ %5998, %5997 ]
  br label %6007

6001:                                             ; preds = %5832
  %6002 = load ptr, ptr %14, align 8, !tbaa !5
  %6003 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6002, i32 0, i32 3
  %6004 = load i8, ptr %6003, align 1, !tbaa !13
  %6005 = zext i8 %6004 to i32
  %6006 = ashr i32 %6005, 4
  br label %6007

6007:                                             ; preds = %6001, %5999
  %6008 = phi i32 [ %6000, %5999 ], [ %6006, %6001 ]
  %6009 = icmp eq i32 4, %6008
  br i1 %6009, label %6010, label %6011

6010:                                             ; preds = %6007
  br label %7642

6011:                                             ; preds = %6007
  %6012 = load ptr, ptr %14, align 8, !tbaa !5
  %6013 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6012, i32 0, i32 3
  %6014 = load i8, ptr %6013, align 1, !tbaa !13
  %6015 = zext i8 %6014 to i32
  %6016 = ashr i32 %6015, 4
  %6017 = icmp eq i32 0, %6016
  br i1 %6017, label %6018, label %6180

6018:                                             ; preds = %6011
  %6019 = load ptr, ptr %14, align 8, !tbaa !5
  %6020 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6019, i32 0, i32 3
  %6021 = load i8, ptr %6020, align 1, !tbaa !13
  %6022 = zext i8 %6021 to i32
  %6023 = and i32 %6022, 15
  %6024 = icmp eq i32 0, %6023
  br i1 %6024, label %6025, label %6026

6025:                                             ; preds = %6018
  br label %6178

6026:                                             ; preds = %6018
  %6027 = load ptr, ptr %14, align 8, !tbaa !5
  %6028 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6027, i32 0, i32 3
  %6029 = load i8, ptr %6028, align 1, !tbaa !13
  %6030 = zext i8 %6029 to i32
  %6031 = and i32 %6030, 15
  %6032 = icmp eq i32 1, %6031
  br i1 %6032, label %6033, label %6034

6033:                                             ; preds = %6026
  br label %6176

6034:                                             ; preds = %6026
  %6035 = load ptr, ptr %14, align 8, !tbaa !5
  %6036 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6035, i32 0, i32 3
  %6037 = load i8, ptr %6036, align 1, !tbaa !13
  %6038 = zext i8 %6037 to i32
  %6039 = and i32 %6038, 15
  %6040 = icmp eq i32 2, %6039
  br i1 %6040, label %6041, label %6042

6041:                                             ; preds = %6034
  br label %6174

6042:                                             ; preds = %6034
  %6043 = load ptr, ptr %14, align 8, !tbaa !5
  %6044 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6043, i32 0, i32 3
  %6045 = load i8, ptr %6044, align 1, !tbaa !13
  %6046 = zext i8 %6045 to i32
  %6047 = and i32 %6046, 15
  %6048 = icmp eq i32 3, %6047
  br i1 %6048, label %6049, label %6050

6049:                                             ; preds = %6042
  br label %6172

6050:                                             ; preds = %6042
  %6051 = load ptr, ptr %14, align 8, !tbaa !5
  %6052 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6051, i32 0, i32 3
  %6053 = load i8, ptr %6052, align 1, !tbaa !13
  %6054 = zext i8 %6053 to i32
  %6055 = and i32 %6054, 15
  %6056 = icmp eq i32 4, %6055
  br i1 %6056, label %6057, label %6058

6057:                                             ; preds = %6050
  br label %6170

6058:                                             ; preds = %6050
  %6059 = load ptr, ptr %14, align 8, !tbaa !5
  %6060 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6059, i32 0, i32 3
  %6061 = load i8, ptr %6060, align 1, !tbaa !13
  %6062 = zext i8 %6061 to i32
  %6063 = and i32 %6062, 15
  %6064 = icmp eq i32 5, %6063
  br i1 %6064, label %6065, label %6066

6065:                                             ; preds = %6058
  br label %6168

6066:                                             ; preds = %6058
  %6067 = load ptr, ptr %14, align 8, !tbaa !5
  %6068 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6067, i32 0, i32 3
  %6069 = load i8, ptr %6068, align 1, !tbaa !13
  %6070 = zext i8 %6069 to i32
  %6071 = and i32 %6070, 15
  %6072 = icmp eq i32 6, %6071
  br i1 %6072, label %6073, label %6074

6073:                                             ; preds = %6066
  br label %6166

6074:                                             ; preds = %6066
  %6075 = load ptr, ptr %14, align 8, !tbaa !5
  %6076 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6075, i32 0, i32 3
  %6077 = load i8, ptr %6076, align 1, !tbaa !13
  %6078 = zext i8 %6077 to i32
  %6079 = and i32 %6078, 15
  %6080 = icmp eq i32 7, %6079
  br i1 %6080, label %6081, label %6082

6081:                                             ; preds = %6074
  br label %6164

6082:                                             ; preds = %6074
  %6083 = load ptr, ptr %14, align 8, !tbaa !5
  %6084 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6083, i32 0, i32 3
  %6085 = load i8, ptr %6084, align 1, !tbaa !13
  %6086 = zext i8 %6085 to i32
  %6087 = and i32 %6086, 15
  %6088 = icmp eq i32 8, %6087
  br i1 %6088, label %6089, label %6090

6089:                                             ; preds = %6082
  br label %6162

6090:                                             ; preds = %6082
  %6091 = load ptr, ptr %14, align 8, !tbaa !5
  %6092 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6091, i32 0, i32 3
  %6093 = load i8, ptr %6092, align 1, !tbaa !13
  %6094 = zext i8 %6093 to i32
  %6095 = and i32 %6094, 15
  %6096 = icmp eq i32 9, %6095
  br i1 %6096, label %6097, label %6098

6097:                                             ; preds = %6090
  br label %6160

6098:                                             ; preds = %6090
  %6099 = load ptr, ptr %14, align 8, !tbaa !5
  %6100 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6099, i32 0, i32 3
  %6101 = load i8, ptr %6100, align 1, !tbaa !13
  %6102 = zext i8 %6101 to i32
  %6103 = and i32 %6102, 15
  %6104 = icmp eq i32 10, %6103
  br i1 %6104, label %6105, label %6106

6105:                                             ; preds = %6098
  br label %6158

6106:                                             ; preds = %6098
  %6107 = load ptr, ptr %14, align 8, !tbaa !5
  %6108 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6107, i32 0, i32 3
  %6109 = load i8, ptr %6108, align 1, !tbaa !13
  %6110 = zext i8 %6109 to i32
  %6111 = and i32 %6110, 15
  %6112 = icmp eq i32 11, %6111
  br i1 %6112, label %6113, label %6114

6113:                                             ; preds = %6106
  br label %6156

6114:                                             ; preds = %6106
  %6115 = load ptr, ptr %14, align 8, !tbaa !5
  %6116 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6115, i32 0, i32 3
  %6117 = load i8, ptr %6116, align 1, !tbaa !13
  %6118 = zext i8 %6117 to i32
  %6119 = and i32 %6118, 15
  %6120 = icmp eq i32 12, %6119
  br i1 %6120, label %6121, label %6122

6121:                                             ; preds = %6114
  br label %6154

6122:                                             ; preds = %6114
  %6123 = load ptr, ptr %14, align 8, !tbaa !5
  %6124 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6123, i32 0, i32 3
  %6125 = load i8, ptr %6124, align 1, !tbaa !13
  %6126 = zext i8 %6125 to i32
  %6127 = and i32 %6126, 15
  %6128 = icmp eq i32 13, %6127
  br i1 %6128, label %6129, label %6130

6129:                                             ; preds = %6122
  br label %6152

6130:                                             ; preds = %6122
  %6131 = load ptr, ptr %14, align 8, !tbaa !5
  %6132 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6131, i32 0, i32 3
  %6133 = load i8, ptr %6132, align 1, !tbaa !13
  %6134 = zext i8 %6133 to i32
  %6135 = and i32 %6134, 15
  %6136 = icmp eq i32 14, %6135
  br i1 %6136, label %6137, label %6138

6137:                                             ; preds = %6130
  br label %6150

6138:                                             ; preds = %6130
  %6139 = load ptr, ptr %14, align 8, !tbaa !5
  %6140 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6139, i32 0, i32 3
  %6141 = load i8, ptr %6140, align 1, !tbaa !13
  %6142 = zext i8 %6141 to i32
  %6143 = and i32 %6142, 15
  %6144 = icmp eq i32 15, %6143
  br i1 %6144, label %6145, label %6146

6145:                                             ; preds = %6138
  br label %6148

6146:                                             ; preds = %6138
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

6147:                                             ; No predecessors!
  br label %6148

6148:                                             ; preds = %6147, %6145
  %6149 = phi i32 [ 15, %6145 ], [ 0, %6147 ]
  br label %6150

6150:                                             ; preds = %6148, %6137
  %6151 = phi i32 [ 14, %6137 ], [ %6149, %6148 ]
  br label %6152

6152:                                             ; preds = %6150, %6129
  %6153 = phi i32 [ 12, %6129 ], [ %6151, %6150 ]
  br label %6154

6154:                                             ; preds = %6152, %6121
  %6155 = phi i32 [ 12, %6121 ], [ %6153, %6152 ]
  br label %6156

6156:                                             ; preds = %6154, %6113
  %6157 = phi i32 [ 10, %6113 ], [ %6155, %6154 ]
  br label %6158

6158:                                             ; preds = %6156, %6105
  %6159 = phi i32 [ 10, %6105 ], [ %6157, %6156 ]
  br label %6160

6160:                                             ; preds = %6158, %6097
  %6161 = phi i32 [ 8, %6097 ], [ %6159, %6158 ]
  br label %6162

6162:                                             ; preds = %6160, %6089
  %6163 = phi i32 [ 8, %6089 ], [ %6161, %6160 ]
  br label %6164

6164:                                             ; preds = %6162, %6081
  %6165 = phi i32 [ 6, %6081 ], [ %6163, %6162 ]
  br label %6166

6166:                                             ; preds = %6164, %6073
  %6167 = phi i32 [ 6, %6073 ], [ %6165, %6164 ]
  br label %6168

6168:                                             ; preds = %6166, %6065
  %6169 = phi i32 [ 5, %6065 ], [ %6167, %6166 ]
  br label %6170

6170:                                             ; preds = %6168, %6057
  %6171 = phi i32 [ 4, %6057 ], [ %6169, %6168 ]
  br label %6172

6172:                                             ; preds = %6170, %6049
  %6173 = phi i32 [ 3, %6049 ], [ %6171, %6170 ]
  br label %6174

6174:                                             ; preds = %6172, %6041
  %6175 = phi i32 [ 2, %6041 ], [ %6173, %6172 ]
  br label %6176

6176:                                             ; preds = %6174, %6033
  %6177 = phi i32 [ 1, %6033 ], [ %6175, %6174 ]
  br label %6178

6178:                                             ; preds = %6176, %6025
  %6179 = phi i32 [ 0, %6025 ], [ %6177, %6176 ]
  br label %6186

6180:                                             ; preds = %6011
  %6181 = load ptr, ptr %14, align 8, !tbaa !5
  %6182 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6181, i32 0, i32 3
  %6183 = load i8, ptr %6182, align 1, !tbaa !13
  %6184 = zext i8 %6183 to i32
  %6185 = ashr i32 %6184, 4
  br label %6186

6186:                                             ; preds = %6180, %6178
  %6187 = phi i32 [ %6179, %6178 ], [ %6185, %6180 ]
  %6188 = icmp eq i32 5, %6187
  br i1 %6188, label %6189, label %6190

6189:                                             ; preds = %6186
  br label %7640

6190:                                             ; preds = %6186
  %6191 = load ptr, ptr %14, align 8, !tbaa !5
  %6192 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6191, i32 0, i32 3
  %6193 = load i8, ptr %6192, align 1, !tbaa !13
  %6194 = zext i8 %6193 to i32
  %6195 = ashr i32 %6194, 4
  %6196 = icmp eq i32 0, %6195
  br i1 %6196, label %6197, label %6359

6197:                                             ; preds = %6190
  %6198 = load ptr, ptr %14, align 8, !tbaa !5
  %6199 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6198, i32 0, i32 3
  %6200 = load i8, ptr %6199, align 1, !tbaa !13
  %6201 = zext i8 %6200 to i32
  %6202 = and i32 %6201, 15
  %6203 = icmp eq i32 0, %6202
  br i1 %6203, label %6204, label %6205

6204:                                             ; preds = %6197
  br label %6357

6205:                                             ; preds = %6197
  %6206 = load ptr, ptr %14, align 8, !tbaa !5
  %6207 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6206, i32 0, i32 3
  %6208 = load i8, ptr %6207, align 1, !tbaa !13
  %6209 = zext i8 %6208 to i32
  %6210 = and i32 %6209, 15
  %6211 = icmp eq i32 1, %6210
  br i1 %6211, label %6212, label %6213

6212:                                             ; preds = %6205
  br label %6355

6213:                                             ; preds = %6205
  %6214 = load ptr, ptr %14, align 8, !tbaa !5
  %6215 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6214, i32 0, i32 3
  %6216 = load i8, ptr %6215, align 1, !tbaa !13
  %6217 = zext i8 %6216 to i32
  %6218 = and i32 %6217, 15
  %6219 = icmp eq i32 2, %6218
  br i1 %6219, label %6220, label %6221

6220:                                             ; preds = %6213
  br label %6353

6221:                                             ; preds = %6213
  %6222 = load ptr, ptr %14, align 8, !tbaa !5
  %6223 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6222, i32 0, i32 3
  %6224 = load i8, ptr %6223, align 1, !tbaa !13
  %6225 = zext i8 %6224 to i32
  %6226 = and i32 %6225, 15
  %6227 = icmp eq i32 3, %6226
  br i1 %6227, label %6228, label %6229

6228:                                             ; preds = %6221
  br label %6351

6229:                                             ; preds = %6221
  %6230 = load ptr, ptr %14, align 8, !tbaa !5
  %6231 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6230, i32 0, i32 3
  %6232 = load i8, ptr %6231, align 1, !tbaa !13
  %6233 = zext i8 %6232 to i32
  %6234 = and i32 %6233, 15
  %6235 = icmp eq i32 4, %6234
  br i1 %6235, label %6236, label %6237

6236:                                             ; preds = %6229
  br label %6349

6237:                                             ; preds = %6229
  %6238 = load ptr, ptr %14, align 8, !tbaa !5
  %6239 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6238, i32 0, i32 3
  %6240 = load i8, ptr %6239, align 1, !tbaa !13
  %6241 = zext i8 %6240 to i32
  %6242 = and i32 %6241, 15
  %6243 = icmp eq i32 5, %6242
  br i1 %6243, label %6244, label %6245

6244:                                             ; preds = %6237
  br label %6347

6245:                                             ; preds = %6237
  %6246 = load ptr, ptr %14, align 8, !tbaa !5
  %6247 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6246, i32 0, i32 3
  %6248 = load i8, ptr %6247, align 1, !tbaa !13
  %6249 = zext i8 %6248 to i32
  %6250 = and i32 %6249, 15
  %6251 = icmp eq i32 6, %6250
  br i1 %6251, label %6252, label %6253

6252:                                             ; preds = %6245
  br label %6345

6253:                                             ; preds = %6245
  %6254 = load ptr, ptr %14, align 8, !tbaa !5
  %6255 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6254, i32 0, i32 3
  %6256 = load i8, ptr %6255, align 1, !tbaa !13
  %6257 = zext i8 %6256 to i32
  %6258 = and i32 %6257, 15
  %6259 = icmp eq i32 7, %6258
  br i1 %6259, label %6260, label %6261

6260:                                             ; preds = %6253
  br label %6343

6261:                                             ; preds = %6253
  %6262 = load ptr, ptr %14, align 8, !tbaa !5
  %6263 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6262, i32 0, i32 3
  %6264 = load i8, ptr %6263, align 1, !tbaa !13
  %6265 = zext i8 %6264 to i32
  %6266 = and i32 %6265, 15
  %6267 = icmp eq i32 8, %6266
  br i1 %6267, label %6268, label %6269

6268:                                             ; preds = %6261
  br label %6341

6269:                                             ; preds = %6261
  %6270 = load ptr, ptr %14, align 8, !tbaa !5
  %6271 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6270, i32 0, i32 3
  %6272 = load i8, ptr %6271, align 1, !tbaa !13
  %6273 = zext i8 %6272 to i32
  %6274 = and i32 %6273, 15
  %6275 = icmp eq i32 9, %6274
  br i1 %6275, label %6276, label %6277

6276:                                             ; preds = %6269
  br label %6339

6277:                                             ; preds = %6269
  %6278 = load ptr, ptr %14, align 8, !tbaa !5
  %6279 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6278, i32 0, i32 3
  %6280 = load i8, ptr %6279, align 1, !tbaa !13
  %6281 = zext i8 %6280 to i32
  %6282 = and i32 %6281, 15
  %6283 = icmp eq i32 10, %6282
  br i1 %6283, label %6284, label %6285

6284:                                             ; preds = %6277
  br label %6337

6285:                                             ; preds = %6277
  %6286 = load ptr, ptr %14, align 8, !tbaa !5
  %6287 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6286, i32 0, i32 3
  %6288 = load i8, ptr %6287, align 1, !tbaa !13
  %6289 = zext i8 %6288 to i32
  %6290 = and i32 %6289, 15
  %6291 = icmp eq i32 11, %6290
  br i1 %6291, label %6292, label %6293

6292:                                             ; preds = %6285
  br label %6335

6293:                                             ; preds = %6285
  %6294 = load ptr, ptr %14, align 8, !tbaa !5
  %6295 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6294, i32 0, i32 3
  %6296 = load i8, ptr %6295, align 1, !tbaa !13
  %6297 = zext i8 %6296 to i32
  %6298 = and i32 %6297, 15
  %6299 = icmp eq i32 12, %6298
  br i1 %6299, label %6300, label %6301

6300:                                             ; preds = %6293
  br label %6333

6301:                                             ; preds = %6293
  %6302 = load ptr, ptr %14, align 8, !tbaa !5
  %6303 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6302, i32 0, i32 3
  %6304 = load i8, ptr %6303, align 1, !tbaa !13
  %6305 = zext i8 %6304 to i32
  %6306 = and i32 %6305, 15
  %6307 = icmp eq i32 13, %6306
  br i1 %6307, label %6308, label %6309

6308:                                             ; preds = %6301
  br label %6331

6309:                                             ; preds = %6301
  %6310 = load ptr, ptr %14, align 8, !tbaa !5
  %6311 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6310, i32 0, i32 3
  %6312 = load i8, ptr %6311, align 1, !tbaa !13
  %6313 = zext i8 %6312 to i32
  %6314 = and i32 %6313, 15
  %6315 = icmp eq i32 14, %6314
  br i1 %6315, label %6316, label %6317

6316:                                             ; preds = %6309
  br label %6329

6317:                                             ; preds = %6309
  %6318 = load ptr, ptr %14, align 8, !tbaa !5
  %6319 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6318, i32 0, i32 3
  %6320 = load i8, ptr %6319, align 1, !tbaa !13
  %6321 = zext i8 %6320 to i32
  %6322 = and i32 %6321, 15
  %6323 = icmp eq i32 15, %6322
  br i1 %6323, label %6324, label %6325

6324:                                             ; preds = %6317
  br label %6327

6325:                                             ; preds = %6317
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

6326:                                             ; No predecessors!
  br label %6327

6327:                                             ; preds = %6326, %6324
  %6328 = phi i32 [ 15, %6324 ], [ 0, %6326 ]
  br label %6329

6329:                                             ; preds = %6327, %6316
  %6330 = phi i32 [ 14, %6316 ], [ %6328, %6327 ]
  br label %6331

6331:                                             ; preds = %6329, %6308
  %6332 = phi i32 [ 12, %6308 ], [ %6330, %6329 ]
  br label %6333

6333:                                             ; preds = %6331, %6300
  %6334 = phi i32 [ 12, %6300 ], [ %6332, %6331 ]
  br label %6335

6335:                                             ; preds = %6333, %6292
  %6336 = phi i32 [ 10, %6292 ], [ %6334, %6333 ]
  br label %6337

6337:                                             ; preds = %6335, %6284
  %6338 = phi i32 [ 10, %6284 ], [ %6336, %6335 ]
  br label %6339

6339:                                             ; preds = %6337, %6276
  %6340 = phi i32 [ 8, %6276 ], [ %6338, %6337 ]
  br label %6341

6341:                                             ; preds = %6339, %6268
  %6342 = phi i32 [ 8, %6268 ], [ %6340, %6339 ]
  br label %6343

6343:                                             ; preds = %6341, %6260
  %6344 = phi i32 [ 6, %6260 ], [ %6342, %6341 ]
  br label %6345

6345:                                             ; preds = %6343, %6252
  %6346 = phi i32 [ 6, %6252 ], [ %6344, %6343 ]
  br label %6347

6347:                                             ; preds = %6345, %6244
  %6348 = phi i32 [ 5, %6244 ], [ %6346, %6345 ]
  br label %6349

6349:                                             ; preds = %6347, %6236
  %6350 = phi i32 [ 4, %6236 ], [ %6348, %6347 ]
  br label %6351

6351:                                             ; preds = %6349, %6228
  %6352 = phi i32 [ 3, %6228 ], [ %6350, %6349 ]
  br label %6353

6353:                                             ; preds = %6351, %6220
  %6354 = phi i32 [ 2, %6220 ], [ %6352, %6351 ]
  br label %6355

6355:                                             ; preds = %6353, %6212
  %6356 = phi i32 [ 1, %6212 ], [ %6354, %6353 ]
  br label %6357

6357:                                             ; preds = %6355, %6204
  %6358 = phi i32 [ 0, %6204 ], [ %6356, %6355 ]
  br label %6365

6359:                                             ; preds = %6190
  %6360 = load ptr, ptr %14, align 8, !tbaa !5
  %6361 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6360, i32 0, i32 3
  %6362 = load i8, ptr %6361, align 1, !tbaa !13
  %6363 = zext i8 %6362 to i32
  %6364 = ashr i32 %6363, 4
  br label %6365

6365:                                             ; preds = %6359, %6357
  %6366 = phi i32 [ %6358, %6357 ], [ %6364, %6359 ]
  %6367 = icmp eq i32 6, %6366
  br i1 %6367, label %6368, label %6369

6368:                                             ; preds = %6365
  br label %7638

6369:                                             ; preds = %6365
  %6370 = load ptr, ptr %14, align 8, !tbaa !5
  %6371 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6370, i32 0, i32 3
  %6372 = load i8, ptr %6371, align 1, !tbaa !13
  %6373 = zext i8 %6372 to i32
  %6374 = ashr i32 %6373, 4
  %6375 = icmp eq i32 0, %6374
  br i1 %6375, label %6376, label %6538

6376:                                             ; preds = %6369
  %6377 = load ptr, ptr %14, align 8, !tbaa !5
  %6378 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6377, i32 0, i32 3
  %6379 = load i8, ptr %6378, align 1, !tbaa !13
  %6380 = zext i8 %6379 to i32
  %6381 = and i32 %6380, 15
  %6382 = icmp eq i32 0, %6381
  br i1 %6382, label %6383, label %6384

6383:                                             ; preds = %6376
  br label %6536

6384:                                             ; preds = %6376
  %6385 = load ptr, ptr %14, align 8, !tbaa !5
  %6386 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6385, i32 0, i32 3
  %6387 = load i8, ptr %6386, align 1, !tbaa !13
  %6388 = zext i8 %6387 to i32
  %6389 = and i32 %6388, 15
  %6390 = icmp eq i32 1, %6389
  br i1 %6390, label %6391, label %6392

6391:                                             ; preds = %6384
  br label %6534

6392:                                             ; preds = %6384
  %6393 = load ptr, ptr %14, align 8, !tbaa !5
  %6394 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6393, i32 0, i32 3
  %6395 = load i8, ptr %6394, align 1, !tbaa !13
  %6396 = zext i8 %6395 to i32
  %6397 = and i32 %6396, 15
  %6398 = icmp eq i32 2, %6397
  br i1 %6398, label %6399, label %6400

6399:                                             ; preds = %6392
  br label %6532

6400:                                             ; preds = %6392
  %6401 = load ptr, ptr %14, align 8, !tbaa !5
  %6402 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6401, i32 0, i32 3
  %6403 = load i8, ptr %6402, align 1, !tbaa !13
  %6404 = zext i8 %6403 to i32
  %6405 = and i32 %6404, 15
  %6406 = icmp eq i32 3, %6405
  br i1 %6406, label %6407, label %6408

6407:                                             ; preds = %6400
  br label %6530

6408:                                             ; preds = %6400
  %6409 = load ptr, ptr %14, align 8, !tbaa !5
  %6410 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6409, i32 0, i32 3
  %6411 = load i8, ptr %6410, align 1, !tbaa !13
  %6412 = zext i8 %6411 to i32
  %6413 = and i32 %6412, 15
  %6414 = icmp eq i32 4, %6413
  br i1 %6414, label %6415, label %6416

6415:                                             ; preds = %6408
  br label %6528

6416:                                             ; preds = %6408
  %6417 = load ptr, ptr %14, align 8, !tbaa !5
  %6418 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6417, i32 0, i32 3
  %6419 = load i8, ptr %6418, align 1, !tbaa !13
  %6420 = zext i8 %6419 to i32
  %6421 = and i32 %6420, 15
  %6422 = icmp eq i32 5, %6421
  br i1 %6422, label %6423, label %6424

6423:                                             ; preds = %6416
  br label %6526

6424:                                             ; preds = %6416
  %6425 = load ptr, ptr %14, align 8, !tbaa !5
  %6426 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6425, i32 0, i32 3
  %6427 = load i8, ptr %6426, align 1, !tbaa !13
  %6428 = zext i8 %6427 to i32
  %6429 = and i32 %6428, 15
  %6430 = icmp eq i32 6, %6429
  br i1 %6430, label %6431, label %6432

6431:                                             ; preds = %6424
  br label %6524

6432:                                             ; preds = %6424
  %6433 = load ptr, ptr %14, align 8, !tbaa !5
  %6434 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6433, i32 0, i32 3
  %6435 = load i8, ptr %6434, align 1, !tbaa !13
  %6436 = zext i8 %6435 to i32
  %6437 = and i32 %6436, 15
  %6438 = icmp eq i32 7, %6437
  br i1 %6438, label %6439, label %6440

6439:                                             ; preds = %6432
  br label %6522

6440:                                             ; preds = %6432
  %6441 = load ptr, ptr %14, align 8, !tbaa !5
  %6442 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6441, i32 0, i32 3
  %6443 = load i8, ptr %6442, align 1, !tbaa !13
  %6444 = zext i8 %6443 to i32
  %6445 = and i32 %6444, 15
  %6446 = icmp eq i32 8, %6445
  br i1 %6446, label %6447, label %6448

6447:                                             ; preds = %6440
  br label %6520

6448:                                             ; preds = %6440
  %6449 = load ptr, ptr %14, align 8, !tbaa !5
  %6450 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6449, i32 0, i32 3
  %6451 = load i8, ptr %6450, align 1, !tbaa !13
  %6452 = zext i8 %6451 to i32
  %6453 = and i32 %6452, 15
  %6454 = icmp eq i32 9, %6453
  br i1 %6454, label %6455, label %6456

6455:                                             ; preds = %6448
  br label %6518

6456:                                             ; preds = %6448
  %6457 = load ptr, ptr %14, align 8, !tbaa !5
  %6458 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6457, i32 0, i32 3
  %6459 = load i8, ptr %6458, align 1, !tbaa !13
  %6460 = zext i8 %6459 to i32
  %6461 = and i32 %6460, 15
  %6462 = icmp eq i32 10, %6461
  br i1 %6462, label %6463, label %6464

6463:                                             ; preds = %6456
  br label %6516

6464:                                             ; preds = %6456
  %6465 = load ptr, ptr %14, align 8, !tbaa !5
  %6466 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6465, i32 0, i32 3
  %6467 = load i8, ptr %6466, align 1, !tbaa !13
  %6468 = zext i8 %6467 to i32
  %6469 = and i32 %6468, 15
  %6470 = icmp eq i32 11, %6469
  br i1 %6470, label %6471, label %6472

6471:                                             ; preds = %6464
  br label %6514

6472:                                             ; preds = %6464
  %6473 = load ptr, ptr %14, align 8, !tbaa !5
  %6474 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6473, i32 0, i32 3
  %6475 = load i8, ptr %6474, align 1, !tbaa !13
  %6476 = zext i8 %6475 to i32
  %6477 = and i32 %6476, 15
  %6478 = icmp eq i32 12, %6477
  br i1 %6478, label %6479, label %6480

6479:                                             ; preds = %6472
  br label %6512

6480:                                             ; preds = %6472
  %6481 = load ptr, ptr %14, align 8, !tbaa !5
  %6482 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6481, i32 0, i32 3
  %6483 = load i8, ptr %6482, align 1, !tbaa !13
  %6484 = zext i8 %6483 to i32
  %6485 = and i32 %6484, 15
  %6486 = icmp eq i32 13, %6485
  br i1 %6486, label %6487, label %6488

6487:                                             ; preds = %6480
  br label %6510

6488:                                             ; preds = %6480
  %6489 = load ptr, ptr %14, align 8, !tbaa !5
  %6490 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6489, i32 0, i32 3
  %6491 = load i8, ptr %6490, align 1, !tbaa !13
  %6492 = zext i8 %6491 to i32
  %6493 = and i32 %6492, 15
  %6494 = icmp eq i32 14, %6493
  br i1 %6494, label %6495, label %6496

6495:                                             ; preds = %6488
  br label %6508

6496:                                             ; preds = %6488
  %6497 = load ptr, ptr %14, align 8, !tbaa !5
  %6498 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6497, i32 0, i32 3
  %6499 = load i8, ptr %6498, align 1, !tbaa !13
  %6500 = zext i8 %6499 to i32
  %6501 = and i32 %6500, 15
  %6502 = icmp eq i32 15, %6501
  br i1 %6502, label %6503, label %6504

6503:                                             ; preds = %6496
  br label %6506

6504:                                             ; preds = %6496
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

6505:                                             ; No predecessors!
  br label %6506

6506:                                             ; preds = %6505, %6503
  %6507 = phi i32 [ 15, %6503 ], [ 0, %6505 ]
  br label %6508

6508:                                             ; preds = %6506, %6495
  %6509 = phi i32 [ 14, %6495 ], [ %6507, %6506 ]
  br label %6510

6510:                                             ; preds = %6508, %6487
  %6511 = phi i32 [ 12, %6487 ], [ %6509, %6508 ]
  br label %6512

6512:                                             ; preds = %6510, %6479
  %6513 = phi i32 [ 12, %6479 ], [ %6511, %6510 ]
  br label %6514

6514:                                             ; preds = %6512, %6471
  %6515 = phi i32 [ 10, %6471 ], [ %6513, %6512 ]
  br label %6516

6516:                                             ; preds = %6514, %6463
  %6517 = phi i32 [ 10, %6463 ], [ %6515, %6514 ]
  br label %6518

6518:                                             ; preds = %6516, %6455
  %6519 = phi i32 [ 8, %6455 ], [ %6517, %6516 ]
  br label %6520

6520:                                             ; preds = %6518, %6447
  %6521 = phi i32 [ 8, %6447 ], [ %6519, %6518 ]
  br label %6522

6522:                                             ; preds = %6520, %6439
  %6523 = phi i32 [ 6, %6439 ], [ %6521, %6520 ]
  br label %6524

6524:                                             ; preds = %6522, %6431
  %6525 = phi i32 [ 6, %6431 ], [ %6523, %6522 ]
  br label %6526

6526:                                             ; preds = %6524, %6423
  %6527 = phi i32 [ 5, %6423 ], [ %6525, %6524 ]
  br label %6528

6528:                                             ; preds = %6526, %6415
  %6529 = phi i32 [ 4, %6415 ], [ %6527, %6526 ]
  br label %6530

6530:                                             ; preds = %6528, %6407
  %6531 = phi i32 [ 3, %6407 ], [ %6529, %6528 ]
  br label %6532

6532:                                             ; preds = %6530, %6399
  %6533 = phi i32 [ 2, %6399 ], [ %6531, %6530 ]
  br label %6534

6534:                                             ; preds = %6532, %6391
  %6535 = phi i32 [ 1, %6391 ], [ %6533, %6532 ]
  br label %6536

6536:                                             ; preds = %6534, %6383
  %6537 = phi i32 [ 0, %6383 ], [ %6535, %6534 ]
  br label %6544

6538:                                             ; preds = %6369
  %6539 = load ptr, ptr %14, align 8, !tbaa !5
  %6540 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6539, i32 0, i32 3
  %6541 = load i8, ptr %6540, align 1, !tbaa !13
  %6542 = zext i8 %6541 to i32
  %6543 = ashr i32 %6542, 4
  br label %6544

6544:                                             ; preds = %6538, %6536
  %6545 = phi i32 [ %6537, %6536 ], [ %6543, %6538 ]
  %6546 = icmp eq i32 7, %6545
  br i1 %6546, label %6547, label %6548

6547:                                             ; preds = %6544
  br label %7636

6548:                                             ; preds = %6544
  %6549 = load ptr, ptr %14, align 8, !tbaa !5
  %6550 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6549, i32 0, i32 3
  %6551 = load i8, ptr %6550, align 1, !tbaa !13
  %6552 = zext i8 %6551 to i32
  %6553 = ashr i32 %6552, 4
  %6554 = icmp eq i32 0, %6553
  br i1 %6554, label %6555, label %6717

6555:                                             ; preds = %6548
  %6556 = load ptr, ptr %14, align 8, !tbaa !5
  %6557 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6556, i32 0, i32 3
  %6558 = load i8, ptr %6557, align 1, !tbaa !13
  %6559 = zext i8 %6558 to i32
  %6560 = and i32 %6559, 15
  %6561 = icmp eq i32 0, %6560
  br i1 %6561, label %6562, label %6563

6562:                                             ; preds = %6555
  br label %6715

6563:                                             ; preds = %6555
  %6564 = load ptr, ptr %14, align 8, !tbaa !5
  %6565 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6564, i32 0, i32 3
  %6566 = load i8, ptr %6565, align 1, !tbaa !13
  %6567 = zext i8 %6566 to i32
  %6568 = and i32 %6567, 15
  %6569 = icmp eq i32 1, %6568
  br i1 %6569, label %6570, label %6571

6570:                                             ; preds = %6563
  br label %6713

6571:                                             ; preds = %6563
  %6572 = load ptr, ptr %14, align 8, !tbaa !5
  %6573 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6572, i32 0, i32 3
  %6574 = load i8, ptr %6573, align 1, !tbaa !13
  %6575 = zext i8 %6574 to i32
  %6576 = and i32 %6575, 15
  %6577 = icmp eq i32 2, %6576
  br i1 %6577, label %6578, label %6579

6578:                                             ; preds = %6571
  br label %6711

6579:                                             ; preds = %6571
  %6580 = load ptr, ptr %14, align 8, !tbaa !5
  %6581 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6580, i32 0, i32 3
  %6582 = load i8, ptr %6581, align 1, !tbaa !13
  %6583 = zext i8 %6582 to i32
  %6584 = and i32 %6583, 15
  %6585 = icmp eq i32 3, %6584
  br i1 %6585, label %6586, label %6587

6586:                                             ; preds = %6579
  br label %6709

6587:                                             ; preds = %6579
  %6588 = load ptr, ptr %14, align 8, !tbaa !5
  %6589 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6588, i32 0, i32 3
  %6590 = load i8, ptr %6589, align 1, !tbaa !13
  %6591 = zext i8 %6590 to i32
  %6592 = and i32 %6591, 15
  %6593 = icmp eq i32 4, %6592
  br i1 %6593, label %6594, label %6595

6594:                                             ; preds = %6587
  br label %6707

6595:                                             ; preds = %6587
  %6596 = load ptr, ptr %14, align 8, !tbaa !5
  %6597 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6596, i32 0, i32 3
  %6598 = load i8, ptr %6597, align 1, !tbaa !13
  %6599 = zext i8 %6598 to i32
  %6600 = and i32 %6599, 15
  %6601 = icmp eq i32 5, %6600
  br i1 %6601, label %6602, label %6603

6602:                                             ; preds = %6595
  br label %6705

6603:                                             ; preds = %6595
  %6604 = load ptr, ptr %14, align 8, !tbaa !5
  %6605 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6604, i32 0, i32 3
  %6606 = load i8, ptr %6605, align 1, !tbaa !13
  %6607 = zext i8 %6606 to i32
  %6608 = and i32 %6607, 15
  %6609 = icmp eq i32 6, %6608
  br i1 %6609, label %6610, label %6611

6610:                                             ; preds = %6603
  br label %6703

6611:                                             ; preds = %6603
  %6612 = load ptr, ptr %14, align 8, !tbaa !5
  %6613 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6612, i32 0, i32 3
  %6614 = load i8, ptr %6613, align 1, !tbaa !13
  %6615 = zext i8 %6614 to i32
  %6616 = and i32 %6615, 15
  %6617 = icmp eq i32 7, %6616
  br i1 %6617, label %6618, label %6619

6618:                                             ; preds = %6611
  br label %6701

6619:                                             ; preds = %6611
  %6620 = load ptr, ptr %14, align 8, !tbaa !5
  %6621 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6620, i32 0, i32 3
  %6622 = load i8, ptr %6621, align 1, !tbaa !13
  %6623 = zext i8 %6622 to i32
  %6624 = and i32 %6623, 15
  %6625 = icmp eq i32 8, %6624
  br i1 %6625, label %6626, label %6627

6626:                                             ; preds = %6619
  br label %6699

6627:                                             ; preds = %6619
  %6628 = load ptr, ptr %14, align 8, !tbaa !5
  %6629 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6628, i32 0, i32 3
  %6630 = load i8, ptr %6629, align 1, !tbaa !13
  %6631 = zext i8 %6630 to i32
  %6632 = and i32 %6631, 15
  %6633 = icmp eq i32 9, %6632
  br i1 %6633, label %6634, label %6635

6634:                                             ; preds = %6627
  br label %6697

6635:                                             ; preds = %6627
  %6636 = load ptr, ptr %14, align 8, !tbaa !5
  %6637 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6636, i32 0, i32 3
  %6638 = load i8, ptr %6637, align 1, !tbaa !13
  %6639 = zext i8 %6638 to i32
  %6640 = and i32 %6639, 15
  %6641 = icmp eq i32 10, %6640
  br i1 %6641, label %6642, label %6643

6642:                                             ; preds = %6635
  br label %6695

6643:                                             ; preds = %6635
  %6644 = load ptr, ptr %14, align 8, !tbaa !5
  %6645 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6644, i32 0, i32 3
  %6646 = load i8, ptr %6645, align 1, !tbaa !13
  %6647 = zext i8 %6646 to i32
  %6648 = and i32 %6647, 15
  %6649 = icmp eq i32 11, %6648
  br i1 %6649, label %6650, label %6651

6650:                                             ; preds = %6643
  br label %6693

6651:                                             ; preds = %6643
  %6652 = load ptr, ptr %14, align 8, !tbaa !5
  %6653 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6652, i32 0, i32 3
  %6654 = load i8, ptr %6653, align 1, !tbaa !13
  %6655 = zext i8 %6654 to i32
  %6656 = and i32 %6655, 15
  %6657 = icmp eq i32 12, %6656
  br i1 %6657, label %6658, label %6659

6658:                                             ; preds = %6651
  br label %6691

6659:                                             ; preds = %6651
  %6660 = load ptr, ptr %14, align 8, !tbaa !5
  %6661 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6660, i32 0, i32 3
  %6662 = load i8, ptr %6661, align 1, !tbaa !13
  %6663 = zext i8 %6662 to i32
  %6664 = and i32 %6663, 15
  %6665 = icmp eq i32 13, %6664
  br i1 %6665, label %6666, label %6667

6666:                                             ; preds = %6659
  br label %6689

6667:                                             ; preds = %6659
  %6668 = load ptr, ptr %14, align 8, !tbaa !5
  %6669 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6668, i32 0, i32 3
  %6670 = load i8, ptr %6669, align 1, !tbaa !13
  %6671 = zext i8 %6670 to i32
  %6672 = and i32 %6671, 15
  %6673 = icmp eq i32 14, %6672
  br i1 %6673, label %6674, label %6675

6674:                                             ; preds = %6667
  br label %6687

6675:                                             ; preds = %6667
  %6676 = load ptr, ptr %14, align 8, !tbaa !5
  %6677 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6676, i32 0, i32 3
  %6678 = load i8, ptr %6677, align 1, !tbaa !13
  %6679 = zext i8 %6678 to i32
  %6680 = and i32 %6679, 15
  %6681 = icmp eq i32 15, %6680
  br i1 %6681, label %6682, label %6683

6682:                                             ; preds = %6675
  br label %6685

6683:                                             ; preds = %6675
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

6684:                                             ; No predecessors!
  br label %6685

6685:                                             ; preds = %6684, %6682
  %6686 = phi i32 [ 15, %6682 ], [ 0, %6684 ]
  br label %6687

6687:                                             ; preds = %6685, %6674
  %6688 = phi i32 [ 14, %6674 ], [ %6686, %6685 ]
  br label %6689

6689:                                             ; preds = %6687, %6666
  %6690 = phi i32 [ 12, %6666 ], [ %6688, %6687 ]
  br label %6691

6691:                                             ; preds = %6689, %6658
  %6692 = phi i32 [ 12, %6658 ], [ %6690, %6689 ]
  br label %6693

6693:                                             ; preds = %6691, %6650
  %6694 = phi i32 [ 10, %6650 ], [ %6692, %6691 ]
  br label %6695

6695:                                             ; preds = %6693, %6642
  %6696 = phi i32 [ 10, %6642 ], [ %6694, %6693 ]
  br label %6697

6697:                                             ; preds = %6695, %6634
  %6698 = phi i32 [ 8, %6634 ], [ %6696, %6695 ]
  br label %6699

6699:                                             ; preds = %6697, %6626
  %6700 = phi i32 [ 8, %6626 ], [ %6698, %6697 ]
  br label %6701

6701:                                             ; preds = %6699, %6618
  %6702 = phi i32 [ 6, %6618 ], [ %6700, %6699 ]
  br label %6703

6703:                                             ; preds = %6701, %6610
  %6704 = phi i32 [ 6, %6610 ], [ %6702, %6701 ]
  br label %6705

6705:                                             ; preds = %6703, %6602
  %6706 = phi i32 [ 5, %6602 ], [ %6704, %6703 ]
  br label %6707

6707:                                             ; preds = %6705, %6594
  %6708 = phi i32 [ 4, %6594 ], [ %6706, %6705 ]
  br label %6709

6709:                                             ; preds = %6707, %6586
  %6710 = phi i32 [ 3, %6586 ], [ %6708, %6707 ]
  br label %6711

6711:                                             ; preds = %6709, %6578
  %6712 = phi i32 [ 2, %6578 ], [ %6710, %6709 ]
  br label %6713

6713:                                             ; preds = %6711, %6570
  %6714 = phi i32 [ 1, %6570 ], [ %6712, %6711 ]
  br label %6715

6715:                                             ; preds = %6713, %6562
  %6716 = phi i32 [ 0, %6562 ], [ %6714, %6713 ]
  br label %6723

6717:                                             ; preds = %6548
  %6718 = load ptr, ptr %14, align 8, !tbaa !5
  %6719 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6718, i32 0, i32 3
  %6720 = load i8, ptr %6719, align 1, !tbaa !13
  %6721 = zext i8 %6720 to i32
  %6722 = ashr i32 %6721, 4
  br label %6723

6723:                                             ; preds = %6717, %6715
  %6724 = phi i32 [ %6716, %6715 ], [ %6722, %6717 ]
  %6725 = icmp eq i32 8, %6724
  br i1 %6725, label %6726, label %6727

6726:                                             ; preds = %6723
  br label %7634

6727:                                             ; preds = %6723
  %6728 = load ptr, ptr %14, align 8, !tbaa !5
  %6729 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6728, i32 0, i32 3
  %6730 = load i8, ptr %6729, align 1, !tbaa !13
  %6731 = zext i8 %6730 to i32
  %6732 = ashr i32 %6731, 4
  %6733 = icmp eq i32 0, %6732
  br i1 %6733, label %6734, label %6896

6734:                                             ; preds = %6727
  %6735 = load ptr, ptr %14, align 8, !tbaa !5
  %6736 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6735, i32 0, i32 3
  %6737 = load i8, ptr %6736, align 1, !tbaa !13
  %6738 = zext i8 %6737 to i32
  %6739 = and i32 %6738, 15
  %6740 = icmp eq i32 0, %6739
  br i1 %6740, label %6741, label %6742

6741:                                             ; preds = %6734
  br label %6894

6742:                                             ; preds = %6734
  %6743 = load ptr, ptr %14, align 8, !tbaa !5
  %6744 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6743, i32 0, i32 3
  %6745 = load i8, ptr %6744, align 1, !tbaa !13
  %6746 = zext i8 %6745 to i32
  %6747 = and i32 %6746, 15
  %6748 = icmp eq i32 1, %6747
  br i1 %6748, label %6749, label %6750

6749:                                             ; preds = %6742
  br label %6892

6750:                                             ; preds = %6742
  %6751 = load ptr, ptr %14, align 8, !tbaa !5
  %6752 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6751, i32 0, i32 3
  %6753 = load i8, ptr %6752, align 1, !tbaa !13
  %6754 = zext i8 %6753 to i32
  %6755 = and i32 %6754, 15
  %6756 = icmp eq i32 2, %6755
  br i1 %6756, label %6757, label %6758

6757:                                             ; preds = %6750
  br label %6890

6758:                                             ; preds = %6750
  %6759 = load ptr, ptr %14, align 8, !tbaa !5
  %6760 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6759, i32 0, i32 3
  %6761 = load i8, ptr %6760, align 1, !tbaa !13
  %6762 = zext i8 %6761 to i32
  %6763 = and i32 %6762, 15
  %6764 = icmp eq i32 3, %6763
  br i1 %6764, label %6765, label %6766

6765:                                             ; preds = %6758
  br label %6888

6766:                                             ; preds = %6758
  %6767 = load ptr, ptr %14, align 8, !tbaa !5
  %6768 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6767, i32 0, i32 3
  %6769 = load i8, ptr %6768, align 1, !tbaa !13
  %6770 = zext i8 %6769 to i32
  %6771 = and i32 %6770, 15
  %6772 = icmp eq i32 4, %6771
  br i1 %6772, label %6773, label %6774

6773:                                             ; preds = %6766
  br label %6886

6774:                                             ; preds = %6766
  %6775 = load ptr, ptr %14, align 8, !tbaa !5
  %6776 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6775, i32 0, i32 3
  %6777 = load i8, ptr %6776, align 1, !tbaa !13
  %6778 = zext i8 %6777 to i32
  %6779 = and i32 %6778, 15
  %6780 = icmp eq i32 5, %6779
  br i1 %6780, label %6781, label %6782

6781:                                             ; preds = %6774
  br label %6884

6782:                                             ; preds = %6774
  %6783 = load ptr, ptr %14, align 8, !tbaa !5
  %6784 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6783, i32 0, i32 3
  %6785 = load i8, ptr %6784, align 1, !tbaa !13
  %6786 = zext i8 %6785 to i32
  %6787 = and i32 %6786, 15
  %6788 = icmp eq i32 6, %6787
  br i1 %6788, label %6789, label %6790

6789:                                             ; preds = %6782
  br label %6882

6790:                                             ; preds = %6782
  %6791 = load ptr, ptr %14, align 8, !tbaa !5
  %6792 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6791, i32 0, i32 3
  %6793 = load i8, ptr %6792, align 1, !tbaa !13
  %6794 = zext i8 %6793 to i32
  %6795 = and i32 %6794, 15
  %6796 = icmp eq i32 7, %6795
  br i1 %6796, label %6797, label %6798

6797:                                             ; preds = %6790
  br label %6880

6798:                                             ; preds = %6790
  %6799 = load ptr, ptr %14, align 8, !tbaa !5
  %6800 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6799, i32 0, i32 3
  %6801 = load i8, ptr %6800, align 1, !tbaa !13
  %6802 = zext i8 %6801 to i32
  %6803 = and i32 %6802, 15
  %6804 = icmp eq i32 8, %6803
  br i1 %6804, label %6805, label %6806

6805:                                             ; preds = %6798
  br label %6878

6806:                                             ; preds = %6798
  %6807 = load ptr, ptr %14, align 8, !tbaa !5
  %6808 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6807, i32 0, i32 3
  %6809 = load i8, ptr %6808, align 1, !tbaa !13
  %6810 = zext i8 %6809 to i32
  %6811 = and i32 %6810, 15
  %6812 = icmp eq i32 9, %6811
  br i1 %6812, label %6813, label %6814

6813:                                             ; preds = %6806
  br label %6876

6814:                                             ; preds = %6806
  %6815 = load ptr, ptr %14, align 8, !tbaa !5
  %6816 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6815, i32 0, i32 3
  %6817 = load i8, ptr %6816, align 1, !tbaa !13
  %6818 = zext i8 %6817 to i32
  %6819 = and i32 %6818, 15
  %6820 = icmp eq i32 10, %6819
  br i1 %6820, label %6821, label %6822

6821:                                             ; preds = %6814
  br label %6874

6822:                                             ; preds = %6814
  %6823 = load ptr, ptr %14, align 8, !tbaa !5
  %6824 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6823, i32 0, i32 3
  %6825 = load i8, ptr %6824, align 1, !tbaa !13
  %6826 = zext i8 %6825 to i32
  %6827 = and i32 %6826, 15
  %6828 = icmp eq i32 11, %6827
  br i1 %6828, label %6829, label %6830

6829:                                             ; preds = %6822
  br label %6872

6830:                                             ; preds = %6822
  %6831 = load ptr, ptr %14, align 8, !tbaa !5
  %6832 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6831, i32 0, i32 3
  %6833 = load i8, ptr %6832, align 1, !tbaa !13
  %6834 = zext i8 %6833 to i32
  %6835 = and i32 %6834, 15
  %6836 = icmp eq i32 12, %6835
  br i1 %6836, label %6837, label %6838

6837:                                             ; preds = %6830
  br label %6870

6838:                                             ; preds = %6830
  %6839 = load ptr, ptr %14, align 8, !tbaa !5
  %6840 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6839, i32 0, i32 3
  %6841 = load i8, ptr %6840, align 1, !tbaa !13
  %6842 = zext i8 %6841 to i32
  %6843 = and i32 %6842, 15
  %6844 = icmp eq i32 13, %6843
  br i1 %6844, label %6845, label %6846

6845:                                             ; preds = %6838
  br label %6868

6846:                                             ; preds = %6838
  %6847 = load ptr, ptr %14, align 8, !tbaa !5
  %6848 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6847, i32 0, i32 3
  %6849 = load i8, ptr %6848, align 1, !tbaa !13
  %6850 = zext i8 %6849 to i32
  %6851 = and i32 %6850, 15
  %6852 = icmp eq i32 14, %6851
  br i1 %6852, label %6853, label %6854

6853:                                             ; preds = %6846
  br label %6866

6854:                                             ; preds = %6846
  %6855 = load ptr, ptr %14, align 8, !tbaa !5
  %6856 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6855, i32 0, i32 3
  %6857 = load i8, ptr %6856, align 1, !tbaa !13
  %6858 = zext i8 %6857 to i32
  %6859 = and i32 %6858, 15
  %6860 = icmp eq i32 15, %6859
  br i1 %6860, label %6861, label %6862

6861:                                             ; preds = %6854
  br label %6864

6862:                                             ; preds = %6854
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

6863:                                             ; No predecessors!
  br label %6864

6864:                                             ; preds = %6863, %6861
  %6865 = phi i32 [ 15, %6861 ], [ 0, %6863 ]
  br label %6866

6866:                                             ; preds = %6864, %6853
  %6867 = phi i32 [ 14, %6853 ], [ %6865, %6864 ]
  br label %6868

6868:                                             ; preds = %6866, %6845
  %6869 = phi i32 [ 12, %6845 ], [ %6867, %6866 ]
  br label %6870

6870:                                             ; preds = %6868, %6837
  %6871 = phi i32 [ 12, %6837 ], [ %6869, %6868 ]
  br label %6872

6872:                                             ; preds = %6870, %6829
  %6873 = phi i32 [ 10, %6829 ], [ %6871, %6870 ]
  br label %6874

6874:                                             ; preds = %6872, %6821
  %6875 = phi i32 [ 10, %6821 ], [ %6873, %6872 ]
  br label %6876

6876:                                             ; preds = %6874, %6813
  %6877 = phi i32 [ 8, %6813 ], [ %6875, %6874 ]
  br label %6878

6878:                                             ; preds = %6876, %6805
  %6879 = phi i32 [ 8, %6805 ], [ %6877, %6876 ]
  br label %6880

6880:                                             ; preds = %6878, %6797
  %6881 = phi i32 [ 6, %6797 ], [ %6879, %6878 ]
  br label %6882

6882:                                             ; preds = %6880, %6789
  %6883 = phi i32 [ 6, %6789 ], [ %6881, %6880 ]
  br label %6884

6884:                                             ; preds = %6882, %6781
  %6885 = phi i32 [ 5, %6781 ], [ %6883, %6882 ]
  br label %6886

6886:                                             ; preds = %6884, %6773
  %6887 = phi i32 [ 4, %6773 ], [ %6885, %6884 ]
  br label %6888

6888:                                             ; preds = %6886, %6765
  %6889 = phi i32 [ 3, %6765 ], [ %6887, %6886 ]
  br label %6890

6890:                                             ; preds = %6888, %6757
  %6891 = phi i32 [ 2, %6757 ], [ %6889, %6888 ]
  br label %6892

6892:                                             ; preds = %6890, %6749
  %6893 = phi i32 [ 1, %6749 ], [ %6891, %6890 ]
  br label %6894

6894:                                             ; preds = %6892, %6741
  %6895 = phi i32 [ 0, %6741 ], [ %6893, %6892 ]
  br label %6902

6896:                                             ; preds = %6727
  %6897 = load ptr, ptr %14, align 8, !tbaa !5
  %6898 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6897, i32 0, i32 3
  %6899 = load i8, ptr %6898, align 1, !tbaa !13
  %6900 = zext i8 %6899 to i32
  %6901 = ashr i32 %6900, 4
  br label %6902

6902:                                             ; preds = %6896, %6894
  %6903 = phi i32 [ %6895, %6894 ], [ %6901, %6896 ]
  %6904 = icmp eq i32 9, %6903
  br i1 %6904, label %6905, label %6906

6905:                                             ; preds = %6902
  br label %7632

6906:                                             ; preds = %6902
  %6907 = load ptr, ptr %14, align 8, !tbaa !5
  %6908 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6907, i32 0, i32 3
  %6909 = load i8, ptr %6908, align 1, !tbaa !13
  %6910 = zext i8 %6909 to i32
  %6911 = ashr i32 %6910, 4
  %6912 = icmp eq i32 0, %6911
  br i1 %6912, label %6913, label %7075

6913:                                             ; preds = %6906
  %6914 = load ptr, ptr %14, align 8, !tbaa !5
  %6915 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6914, i32 0, i32 3
  %6916 = load i8, ptr %6915, align 1, !tbaa !13
  %6917 = zext i8 %6916 to i32
  %6918 = and i32 %6917, 15
  %6919 = icmp eq i32 0, %6918
  br i1 %6919, label %6920, label %6921

6920:                                             ; preds = %6913
  br label %7073

6921:                                             ; preds = %6913
  %6922 = load ptr, ptr %14, align 8, !tbaa !5
  %6923 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6922, i32 0, i32 3
  %6924 = load i8, ptr %6923, align 1, !tbaa !13
  %6925 = zext i8 %6924 to i32
  %6926 = and i32 %6925, 15
  %6927 = icmp eq i32 1, %6926
  br i1 %6927, label %6928, label %6929

6928:                                             ; preds = %6921
  br label %7071

6929:                                             ; preds = %6921
  %6930 = load ptr, ptr %14, align 8, !tbaa !5
  %6931 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6930, i32 0, i32 3
  %6932 = load i8, ptr %6931, align 1, !tbaa !13
  %6933 = zext i8 %6932 to i32
  %6934 = and i32 %6933, 15
  %6935 = icmp eq i32 2, %6934
  br i1 %6935, label %6936, label %6937

6936:                                             ; preds = %6929
  br label %7069

6937:                                             ; preds = %6929
  %6938 = load ptr, ptr %14, align 8, !tbaa !5
  %6939 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6938, i32 0, i32 3
  %6940 = load i8, ptr %6939, align 1, !tbaa !13
  %6941 = zext i8 %6940 to i32
  %6942 = and i32 %6941, 15
  %6943 = icmp eq i32 3, %6942
  br i1 %6943, label %6944, label %6945

6944:                                             ; preds = %6937
  br label %7067

6945:                                             ; preds = %6937
  %6946 = load ptr, ptr %14, align 8, !tbaa !5
  %6947 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6946, i32 0, i32 3
  %6948 = load i8, ptr %6947, align 1, !tbaa !13
  %6949 = zext i8 %6948 to i32
  %6950 = and i32 %6949, 15
  %6951 = icmp eq i32 4, %6950
  br i1 %6951, label %6952, label %6953

6952:                                             ; preds = %6945
  br label %7065

6953:                                             ; preds = %6945
  %6954 = load ptr, ptr %14, align 8, !tbaa !5
  %6955 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6954, i32 0, i32 3
  %6956 = load i8, ptr %6955, align 1, !tbaa !13
  %6957 = zext i8 %6956 to i32
  %6958 = and i32 %6957, 15
  %6959 = icmp eq i32 5, %6958
  br i1 %6959, label %6960, label %6961

6960:                                             ; preds = %6953
  br label %7063

6961:                                             ; preds = %6953
  %6962 = load ptr, ptr %14, align 8, !tbaa !5
  %6963 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6962, i32 0, i32 3
  %6964 = load i8, ptr %6963, align 1, !tbaa !13
  %6965 = zext i8 %6964 to i32
  %6966 = and i32 %6965, 15
  %6967 = icmp eq i32 6, %6966
  br i1 %6967, label %6968, label %6969

6968:                                             ; preds = %6961
  br label %7061

6969:                                             ; preds = %6961
  %6970 = load ptr, ptr %14, align 8, !tbaa !5
  %6971 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6970, i32 0, i32 3
  %6972 = load i8, ptr %6971, align 1, !tbaa !13
  %6973 = zext i8 %6972 to i32
  %6974 = and i32 %6973, 15
  %6975 = icmp eq i32 7, %6974
  br i1 %6975, label %6976, label %6977

6976:                                             ; preds = %6969
  br label %7059

6977:                                             ; preds = %6969
  %6978 = load ptr, ptr %14, align 8, !tbaa !5
  %6979 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6978, i32 0, i32 3
  %6980 = load i8, ptr %6979, align 1, !tbaa !13
  %6981 = zext i8 %6980 to i32
  %6982 = and i32 %6981, 15
  %6983 = icmp eq i32 8, %6982
  br i1 %6983, label %6984, label %6985

6984:                                             ; preds = %6977
  br label %7057

6985:                                             ; preds = %6977
  %6986 = load ptr, ptr %14, align 8, !tbaa !5
  %6987 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6986, i32 0, i32 3
  %6988 = load i8, ptr %6987, align 1, !tbaa !13
  %6989 = zext i8 %6988 to i32
  %6990 = and i32 %6989, 15
  %6991 = icmp eq i32 9, %6990
  br i1 %6991, label %6992, label %6993

6992:                                             ; preds = %6985
  br label %7055

6993:                                             ; preds = %6985
  %6994 = load ptr, ptr %14, align 8, !tbaa !5
  %6995 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %6994, i32 0, i32 3
  %6996 = load i8, ptr %6995, align 1, !tbaa !13
  %6997 = zext i8 %6996 to i32
  %6998 = and i32 %6997, 15
  %6999 = icmp eq i32 10, %6998
  br i1 %6999, label %7000, label %7001

7000:                                             ; preds = %6993
  br label %7053

7001:                                             ; preds = %6993
  %7002 = load ptr, ptr %14, align 8, !tbaa !5
  %7003 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7002, i32 0, i32 3
  %7004 = load i8, ptr %7003, align 1, !tbaa !13
  %7005 = zext i8 %7004 to i32
  %7006 = and i32 %7005, 15
  %7007 = icmp eq i32 11, %7006
  br i1 %7007, label %7008, label %7009

7008:                                             ; preds = %7001
  br label %7051

7009:                                             ; preds = %7001
  %7010 = load ptr, ptr %14, align 8, !tbaa !5
  %7011 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7010, i32 0, i32 3
  %7012 = load i8, ptr %7011, align 1, !tbaa !13
  %7013 = zext i8 %7012 to i32
  %7014 = and i32 %7013, 15
  %7015 = icmp eq i32 12, %7014
  br i1 %7015, label %7016, label %7017

7016:                                             ; preds = %7009
  br label %7049

7017:                                             ; preds = %7009
  %7018 = load ptr, ptr %14, align 8, !tbaa !5
  %7019 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7018, i32 0, i32 3
  %7020 = load i8, ptr %7019, align 1, !tbaa !13
  %7021 = zext i8 %7020 to i32
  %7022 = and i32 %7021, 15
  %7023 = icmp eq i32 13, %7022
  br i1 %7023, label %7024, label %7025

7024:                                             ; preds = %7017
  br label %7047

7025:                                             ; preds = %7017
  %7026 = load ptr, ptr %14, align 8, !tbaa !5
  %7027 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7026, i32 0, i32 3
  %7028 = load i8, ptr %7027, align 1, !tbaa !13
  %7029 = zext i8 %7028 to i32
  %7030 = and i32 %7029, 15
  %7031 = icmp eq i32 14, %7030
  br i1 %7031, label %7032, label %7033

7032:                                             ; preds = %7025
  br label %7045

7033:                                             ; preds = %7025
  %7034 = load ptr, ptr %14, align 8, !tbaa !5
  %7035 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7034, i32 0, i32 3
  %7036 = load i8, ptr %7035, align 1, !tbaa !13
  %7037 = zext i8 %7036 to i32
  %7038 = and i32 %7037, 15
  %7039 = icmp eq i32 15, %7038
  br i1 %7039, label %7040, label %7041

7040:                                             ; preds = %7033
  br label %7043

7041:                                             ; preds = %7033
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

7042:                                             ; No predecessors!
  br label %7043

7043:                                             ; preds = %7042, %7040
  %7044 = phi i32 [ 15, %7040 ], [ 0, %7042 ]
  br label %7045

7045:                                             ; preds = %7043, %7032
  %7046 = phi i32 [ 14, %7032 ], [ %7044, %7043 ]
  br label %7047

7047:                                             ; preds = %7045, %7024
  %7048 = phi i32 [ 12, %7024 ], [ %7046, %7045 ]
  br label %7049

7049:                                             ; preds = %7047, %7016
  %7050 = phi i32 [ 12, %7016 ], [ %7048, %7047 ]
  br label %7051

7051:                                             ; preds = %7049, %7008
  %7052 = phi i32 [ 10, %7008 ], [ %7050, %7049 ]
  br label %7053

7053:                                             ; preds = %7051, %7000
  %7054 = phi i32 [ 10, %7000 ], [ %7052, %7051 ]
  br label %7055

7055:                                             ; preds = %7053, %6992
  %7056 = phi i32 [ 8, %6992 ], [ %7054, %7053 ]
  br label %7057

7057:                                             ; preds = %7055, %6984
  %7058 = phi i32 [ 8, %6984 ], [ %7056, %7055 ]
  br label %7059

7059:                                             ; preds = %7057, %6976
  %7060 = phi i32 [ 6, %6976 ], [ %7058, %7057 ]
  br label %7061

7061:                                             ; preds = %7059, %6968
  %7062 = phi i32 [ 6, %6968 ], [ %7060, %7059 ]
  br label %7063

7063:                                             ; preds = %7061, %6960
  %7064 = phi i32 [ 5, %6960 ], [ %7062, %7061 ]
  br label %7065

7065:                                             ; preds = %7063, %6952
  %7066 = phi i32 [ 4, %6952 ], [ %7064, %7063 ]
  br label %7067

7067:                                             ; preds = %7065, %6944
  %7068 = phi i32 [ 3, %6944 ], [ %7066, %7065 ]
  br label %7069

7069:                                             ; preds = %7067, %6936
  %7070 = phi i32 [ 2, %6936 ], [ %7068, %7067 ]
  br label %7071

7071:                                             ; preds = %7069, %6928
  %7072 = phi i32 [ 1, %6928 ], [ %7070, %7069 ]
  br label %7073

7073:                                             ; preds = %7071, %6920
  %7074 = phi i32 [ 0, %6920 ], [ %7072, %7071 ]
  br label %7081

7075:                                             ; preds = %6906
  %7076 = load ptr, ptr %14, align 8, !tbaa !5
  %7077 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7076, i32 0, i32 3
  %7078 = load i8, ptr %7077, align 1, !tbaa !13
  %7079 = zext i8 %7078 to i32
  %7080 = ashr i32 %7079, 4
  br label %7081

7081:                                             ; preds = %7075, %7073
  %7082 = phi i32 [ %7074, %7073 ], [ %7080, %7075 ]
  %7083 = icmp eq i32 10, %7082
  br i1 %7083, label %7084, label %7085

7084:                                             ; preds = %7081
  br label %7630

7085:                                             ; preds = %7081
  %7086 = load ptr, ptr %14, align 8, !tbaa !5
  %7087 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7086, i32 0, i32 3
  %7088 = load i8, ptr %7087, align 1, !tbaa !13
  %7089 = zext i8 %7088 to i32
  %7090 = ashr i32 %7089, 4
  %7091 = icmp eq i32 0, %7090
  br i1 %7091, label %7092, label %7254

7092:                                             ; preds = %7085
  %7093 = load ptr, ptr %14, align 8, !tbaa !5
  %7094 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7093, i32 0, i32 3
  %7095 = load i8, ptr %7094, align 1, !tbaa !13
  %7096 = zext i8 %7095 to i32
  %7097 = and i32 %7096, 15
  %7098 = icmp eq i32 0, %7097
  br i1 %7098, label %7099, label %7100

7099:                                             ; preds = %7092
  br label %7252

7100:                                             ; preds = %7092
  %7101 = load ptr, ptr %14, align 8, !tbaa !5
  %7102 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7101, i32 0, i32 3
  %7103 = load i8, ptr %7102, align 1, !tbaa !13
  %7104 = zext i8 %7103 to i32
  %7105 = and i32 %7104, 15
  %7106 = icmp eq i32 1, %7105
  br i1 %7106, label %7107, label %7108

7107:                                             ; preds = %7100
  br label %7250

7108:                                             ; preds = %7100
  %7109 = load ptr, ptr %14, align 8, !tbaa !5
  %7110 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7109, i32 0, i32 3
  %7111 = load i8, ptr %7110, align 1, !tbaa !13
  %7112 = zext i8 %7111 to i32
  %7113 = and i32 %7112, 15
  %7114 = icmp eq i32 2, %7113
  br i1 %7114, label %7115, label %7116

7115:                                             ; preds = %7108
  br label %7248

7116:                                             ; preds = %7108
  %7117 = load ptr, ptr %14, align 8, !tbaa !5
  %7118 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7117, i32 0, i32 3
  %7119 = load i8, ptr %7118, align 1, !tbaa !13
  %7120 = zext i8 %7119 to i32
  %7121 = and i32 %7120, 15
  %7122 = icmp eq i32 3, %7121
  br i1 %7122, label %7123, label %7124

7123:                                             ; preds = %7116
  br label %7246

7124:                                             ; preds = %7116
  %7125 = load ptr, ptr %14, align 8, !tbaa !5
  %7126 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7125, i32 0, i32 3
  %7127 = load i8, ptr %7126, align 1, !tbaa !13
  %7128 = zext i8 %7127 to i32
  %7129 = and i32 %7128, 15
  %7130 = icmp eq i32 4, %7129
  br i1 %7130, label %7131, label %7132

7131:                                             ; preds = %7124
  br label %7244

7132:                                             ; preds = %7124
  %7133 = load ptr, ptr %14, align 8, !tbaa !5
  %7134 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7133, i32 0, i32 3
  %7135 = load i8, ptr %7134, align 1, !tbaa !13
  %7136 = zext i8 %7135 to i32
  %7137 = and i32 %7136, 15
  %7138 = icmp eq i32 5, %7137
  br i1 %7138, label %7139, label %7140

7139:                                             ; preds = %7132
  br label %7242

7140:                                             ; preds = %7132
  %7141 = load ptr, ptr %14, align 8, !tbaa !5
  %7142 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7141, i32 0, i32 3
  %7143 = load i8, ptr %7142, align 1, !tbaa !13
  %7144 = zext i8 %7143 to i32
  %7145 = and i32 %7144, 15
  %7146 = icmp eq i32 6, %7145
  br i1 %7146, label %7147, label %7148

7147:                                             ; preds = %7140
  br label %7240

7148:                                             ; preds = %7140
  %7149 = load ptr, ptr %14, align 8, !tbaa !5
  %7150 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7149, i32 0, i32 3
  %7151 = load i8, ptr %7150, align 1, !tbaa !13
  %7152 = zext i8 %7151 to i32
  %7153 = and i32 %7152, 15
  %7154 = icmp eq i32 7, %7153
  br i1 %7154, label %7155, label %7156

7155:                                             ; preds = %7148
  br label %7238

7156:                                             ; preds = %7148
  %7157 = load ptr, ptr %14, align 8, !tbaa !5
  %7158 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7157, i32 0, i32 3
  %7159 = load i8, ptr %7158, align 1, !tbaa !13
  %7160 = zext i8 %7159 to i32
  %7161 = and i32 %7160, 15
  %7162 = icmp eq i32 8, %7161
  br i1 %7162, label %7163, label %7164

7163:                                             ; preds = %7156
  br label %7236

7164:                                             ; preds = %7156
  %7165 = load ptr, ptr %14, align 8, !tbaa !5
  %7166 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7165, i32 0, i32 3
  %7167 = load i8, ptr %7166, align 1, !tbaa !13
  %7168 = zext i8 %7167 to i32
  %7169 = and i32 %7168, 15
  %7170 = icmp eq i32 9, %7169
  br i1 %7170, label %7171, label %7172

7171:                                             ; preds = %7164
  br label %7234

7172:                                             ; preds = %7164
  %7173 = load ptr, ptr %14, align 8, !tbaa !5
  %7174 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7173, i32 0, i32 3
  %7175 = load i8, ptr %7174, align 1, !tbaa !13
  %7176 = zext i8 %7175 to i32
  %7177 = and i32 %7176, 15
  %7178 = icmp eq i32 10, %7177
  br i1 %7178, label %7179, label %7180

7179:                                             ; preds = %7172
  br label %7232

7180:                                             ; preds = %7172
  %7181 = load ptr, ptr %14, align 8, !tbaa !5
  %7182 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7181, i32 0, i32 3
  %7183 = load i8, ptr %7182, align 1, !tbaa !13
  %7184 = zext i8 %7183 to i32
  %7185 = and i32 %7184, 15
  %7186 = icmp eq i32 11, %7185
  br i1 %7186, label %7187, label %7188

7187:                                             ; preds = %7180
  br label %7230

7188:                                             ; preds = %7180
  %7189 = load ptr, ptr %14, align 8, !tbaa !5
  %7190 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7189, i32 0, i32 3
  %7191 = load i8, ptr %7190, align 1, !tbaa !13
  %7192 = zext i8 %7191 to i32
  %7193 = and i32 %7192, 15
  %7194 = icmp eq i32 12, %7193
  br i1 %7194, label %7195, label %7196

7195:                                             ; preds = %7188
  br label %7228

7196:                                             ; preds = %7188
  %7197 = load ptr, ptr %14, align 8, !tbaa !5
  %7198 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7197, i32 0, i32 3
  %7199 = load i8, ptr %7198, align 1, !tbaa !13
  %7200 = zext i8 %7199 to i32
  %7201 = and i32 %7200, 15
  %7202 = icmp eq i32 13, %7201
  br i1 %7202, label %7203, label %7204

7203:                                             ; preds = %7196
  br label %7226

7204:                                             ; preds = %7196
  %7205 = load ptr, ptr %14, align 8, !tbaa !5
  %7206 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7205, i32 0, i32 3
  %7207 = load i8, ptr %7206, align 1, !tbaa !13
  %7208 = zext i8 %7207 to i32
  %7209 = and i32 %7208, 15
  %7210 = icmp eq i32 14, %7209
  br i1 %7210, label %7211, label %7212

7211:                                             ; preds = %7204
  br label %7224

7212:                                             ; preds = %7204
  %7213 = load ptr, ptr %14, align 8, !tbaa !5
  %7214 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7213, i32 0, i32 3
  %7215 = load i8, ptr %7214, align 1, !tbaa !13
  %7216 = zext i8 %7215 to i32
  %7217 = and i32 %7216, 15
  %7218 = icmp eq i32 15, %7217
  br i1 %7218, label %7219, label %7220

7219:                                             ; preds = %7212
  br label %7222

7220:                                             ; preds = %7212
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

7221:                                             ; No predecessors!
  br label %7222

7222:                                             ; preds = %7221, %7219
  %7223 = phi i32 [ 15, %7219 ], [ 0, %7221 ]
  br label %7224

7224:                                             ; preds = %7222, %7211
  %7225 = phi i32 [ 14, %7211 ], [ %7223, %7222 ]
  br label %7226

7226:                                             ; preds = %7224, %7203
  %7227 = phi i32 [ 12, %7203 ], [ %7225, %7224 ]
  br label %7228

7228:                                             ; preds = %7226, %7195
  %7229 = phi i32 [ 12, %7195 ], [ %7227, %7226 ]
  br label %7230

7230:                                             ; preds = %7228, %7187
  %7231 = phi i32 [ 10, %7187 ], [ %7229, %7228 ]
  br label %7232

7232:                                             ; preds = %7230, %7179
  %7233 = phi i32 [ 10, %7179 ], [ %7231, %7230 ]
  br label %7234

7234:                                             ; preds = %7232, %7171
  %7235 = phi i32 [ 8, %7171 ], [ %7233, %7232 ]
  br label %7236

7236:                                             ; preds = %7234, %7163
  %7237 = phi i32 [ 8, %7163 ], [ %7235, %7234 ]
  br label %7238

7238:                                             ; preds = %7236, %7155
  %7239 = phi i32 [ 6, %7155 ], [ %7237, %7236 ]
  br label %7240

7240:                                             ; preds = %7238, %7147
  %7241 = phi i32 [ 6, %7147 ], [ %7239, %7238 ]
  br label %7242

7242:                                             ; preds = %7240, %7139
  %7243 = phi i32 [ 5, %7139 ], [ %7241, %7240 ]
  br label %7244

7244:                                             ; preds = %7242, %7131
  %7245 = phi i32 [ 4, %7131 ], [ %7243, %7242 ]
  br label %7246

7246:                                             ; preds = %7244, %7123
  %7247 = phi i32 [ 3, %7123 ], [ %7245, %7244 ]
  br label %7248

7248:                                             ; preds = %7246, %7115
  %7249 = phi i32 [ 2, %7115 ], [ %7247, %7246 ]
  br label %7250

7250:                                             ; preds = %7248, %7107
  %7251 = phi i32 [ 1, %7107 ], [ %7249, %7248 ]
  br label %7252

7252:                                             ; preds = %7250, %7099
  %7253 = phi i32 [ 0, %7099 ], [ %7251, %7250 ]
  br label %7260

7254:                                             ; preds = %7085
  %7255 = load ptr, ptr %14, align 8, !tbaa !5
  %7256 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7255, i32 0, i32 3
  %7257 = load i8, ptr %7256, align 1, !tbaa !13
  %7258 = zext i8 %7257 to i32
  %7259 = ashr i32 %7258, 4
  br label %7260

7260:                                             ; preds = %7254, %7252
  %7261 = phi i32 [ %7253, %7252 ], [ %7259, %7254 ]
  %7262 = icmp eq i32 11, %7261
  br i1 %7262, label %7263, label %7264

7263:                                             ; preds = %7260
  br label %7628

7264:                                             ; preds = %7260
  %7265 = load ptr, ptr %14, align 8, !tbaa !5
  %7266 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7265, i32 0, i32 3
  %7267 = load i8, ptr %7266, align 1, !tbaa !13
  %7268 = zext i8 %7267 to i32
  %7269 = ashr i32 %7268, 4
  %7270 = icmp eq i32 0, %7269
  br i1 %7270, label %7271, label %7433

7271:                                             ; preds = %7264
  %7272 = load ptr, ptr %14, align 8, !tbaa !5
  %7273 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7272, i32 0, i32 3
  %7274 = load i8, ptr %7273, align 1, !tbaa !13
  %7275 = zext i8 %7274 to i32
  %7276 = and i32 %7275, 15
  %7277 = icmp eq i32 0, %7276
  br i1 %7277, label %7278, label %7279

7278:                                             ; preds = %7271
  br label %7431

7279:                                             ; preds = %7271
  %7280 = load ptr, ptr %14, align 8, !tbaa !5
  %7281 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7280, i32 0, i32 3
  %7282 = load i8, ptr %7281, align 1, !tbaa !13
  %7283 = zext i8 %7282 to i32
  %7284 = and i32 %7283, 15
  %7285 = icmp eq i32 1, %7284
  br i1 %7285, label %7286, label %7287

7286:                                             ; preds = %7279
  br label %7429

7287:                                             ; preds = %7279
  %7288 = load ptr, ptr %14, align 8, !tbaa !5
  %7289 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7288, i32 0, i32 3
  %7290 = load i8, ptr %7289, align 1, !tbaa !13
  %7291 = zext i8 %7290 to i32
  %7292 = and i32 %7291, 15
  %7293 = icmp eq i32 2, %7292
  br i1 %7293, label %7294, label %7295

7294:                                             ; preds = %7287
  br label %7427

7295:                                             ; preds = %7287
  %7296 = load ptr, ptr %14, align 8, !tbaa !5
  %7297 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7296, i32 0, i32 3
  %7298 = load i8, ptr %7297, align 1, !tbaa !13
  %7299 = zext i8 %7298 to i32
  %7300 = and i32 %7299, 15
  %7301 = icmp eq i32 3, %7300
  br i1 %7301, label %7302, label %7303

7302:                                             ; preds = %7295
  br label %7425

7303:                                             ; preds = %7295
  %7304 = load ptr, ptr %14, align 8, !tbaa !5
  %7305 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7304, i32 0, i32 3
  %7306 = load i8, ptr %7305, align 1, !tbaa !13
  %7307 = zext i8 %7306 to i32
  %7308 = and i32 %7307, 15
  %7309 = icmp eq i32 4, %7308
  br i1 %7309, label %7310, label %7311

7310:                                             ; preds = %7303
  br label %7423

7311:                                             ; preds = %7303
  %7312 = load ptr, ptr %14, align 8, !tbaa !5
  %7313 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7312, i32 0, i32 3
  %7314 = load i8, ptr %7313, align 1, !tbaa !13
  %7315 = zext i8 %7314 to i32
  %7316 = and i32 %7315, 15
  %7317 = icmp eq i32 5, %7316
  br i1 %7317, label %7318, label %7319

7318:                                             ; preds = %7311
  br label %7421

7319:                                             ; preds = %7311
  %7320 = load ptr, ptr %14, align 8, !tbaa !5
  %7321 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7320, i32 0, i32 3
  %7322 = load i8, ptr %7321, align 1, !tbaa !13
  %7323 = zext i8 %7322 to i32
  %7324 = and i32 %7323, 15
  %7325 = icmp eq i32 6, %7324
  br i1 %7325, label %7326, label %7327

7326:                                             ; preds = %7319
  br label %7419

7327:                                             ; preds = %7319
  %7328 = load ptr, ptr %14, align 8, !tbaa !5
  %7329 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7328, i32 0, i32 3
  %7330 = load i8, ptr %7329, align 1, !tbaa !13
  %7331 = zext i8 %7330 to i32
  %7332 = and i32 %7331, 15
  %7333 = icmp eq i32 7, %7332
  br i1 %7333, label %7334, label %7335

7334:                                             ; preds = %7327
  br label %7417

7335:                                             ; preds = %7327
  %7336 = load ptr, ptr %14, align 8, !tbaa !5
  %7337 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7336, i32 0, i32 3
  %7338 = load i8, ptr %7337, align 1, !tbaa !13
  %7339 = zext i8 %7338 to i32
  %7340 = and i32 %7339, 15
  %7341 = icmp eq i32 8, %7340
  br i1 %7341, label %7342, label %7343

7342:                                             ; preds = %7335
  br label %7415

7343:                                             ; preds = %7335
  %7344 = load ptr, ptr %14, align 8, !tbaa !5
  %7345 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7344, i32 0, i32 3
  %7346 = load i8, ptr %7345, align 1, !tbaa !13
  %7347 = zext i8 %7346 to i32
  %7348 = and i32 %7347, 15
  %7349 = icmp eq i32 9, %7348
  br i1 %7349, label %7350, label %7351

7350:                                             ; preds = %7343
  br label %7413

7351:                                             ; preds = %7343
  %7352 = load ptr, ptr %14, align 8, !tbaa !5
  %7353 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7352, i32 0, i32 3
  %7354 = load i8, ptr %7353, align 1, !tbaa !13
  %7355 = zext i8 %7354 to i32
  %7356 = and i32 %7355, 15
  %7357 = icmp eq i32 10, %7356
  br i1 %7357, label %7358, label %7359

7358:                                             ; preds = %7351
  br label %7411

7359:                                             ; preds = %7351
  %7360 = load ptr, ptr %14, align 8, !tbaa !5
  %7361 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7360, i32 0, i32 3
  %7362 = load i8, ptr %7361, align 1, !tbaa !13
  %7363 = zext i8 %7362 to i32
  %7364 = and i32 %7363, 15
  %7365 = icmp eq i32 11, %7364
  br i1 %7365, label %7366, label %7367

7366:                                             ; preds = %7359
  br label %7409

7367:                                             ; preds = %7359
  %7368 = load ptr, ptr %14, align 8, !tbaa !5
  %7369 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7368, i32 0, i32 3
  %7370 = load i8, ptr %7369, align 1, !tbaa !13
  %7371 = zext i8 %7370 to i32
  %7372 = and i32 %7371, 15
  %7373 = icmp eq i32 12, %7372
  br i1 %7373, label %7374, label %7375

7374:                                             ; preds = %7367
  br label %7407

7375:                                             ; preds = %7367
  %7376 = load ptr, ptr %14, align 8, !tbaa !5
  %7377 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7376, i32 0, i32 3
  %7378 = load i8, ptr %7377, align 1, !tbaa !13
  %7379 = zext i8 %7378 to i32
  %7380 = and i32 %7379, 15
  %7381 = icmp eq i32 13, %7380
  br i1 %7381, label %7382, label %7383

7382:                                             ; preds = %7375
  br label %7405

7383:                                             ; preds = %7375
  %7384 = load ptr, ptr %14, align 8, !tbaa !5
  %7385 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7384, i32 0, i32 3
  %7386 = load i8, ptr %7385, align 1, !tbaa !13
  %7387 = zext i8 %7386 to i32
  %7388 = and i32 %7387, 15
  %7389 = icmp eq i32 14, %7388
  br i1 %7389, label %7390, label %7391

7390:                                             ; preds = %7383
  br label %7403

7391:                                             ; preds = %7383
  %7392 = load ptr, ptr %14, align 8, !tbaa !5
  %7393 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7392, i32 0, i32 3
  %7394 = load i8, ptr %7393, align 1, !tbaa !13
  %7395 = zext i8 %7394 to i32
  %7396 = and i32 %7395, 15
  %7397 = icmp eq i32 15, %7396
  br i1 %7397, label %7398, label %7399

7398:                                             ; preds = %7391
  br label %7401

7399:                                             ; preds = %7391
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

7400:                                             ; No predecessors!
  br label %7401

7401:                                             ; preds = %7400, %7398
  %7402 = phi i32 [ 15, %7398 ], [ 0, %7400 ]
  br label %7403

7403:                                             ; preds = %7401, %7390
  %7404 = phi i32 [ 14, %7390 ], [ %7402, %7401 ]
  br label %7405

7405:                                             ; preds = %7403, %7382
  %7406 = phi i32 [ 12, %7382 ], [ %7404, %7403 ]
  br label %7407

7407:                                             ; preds = %7405, %7374
  %7408 = phi i32 [ 12, %7374 ], [ %7406, %7405 ]
  br label %7409

7409:                                             ; preds = %7407, %7366
  %7410 = phi i32 [ 10, %7366 ], [ %7408, %7407 ]
  br label %7411

7411:                                             ; preds = %7409, %7358
  %7412 = phi i32 [ 10, %7358 ], [ %7410, %7409 ]
  br label %7413

7413:                                             ; preds = %7411, %7350
  %7414 = phi i32 [ 8, %7350 ], [ %7412, %7411 ]
  br label %7415

7415:                                             ; preds = %7413, %7342
  %7416 = phi i32 [ 8, %7342 ], [ %7414, %7413 ]
  br label %7417

7417:                                             ; preds = %7415, %7334
  %7418 = phi i32 [ 6, %7334 ], [ %7416, %7415 ]
  br label %7419

7419:                                             ; preds = %7417, %7326
  %7420 = phi i32 [ 6, %7326 ], [ %7418, %7417 ]
  br label %7421

7421:                                             ; preds = %7419, %7318
  %7422 = phi i32 [ 5, %7318 ], [ %7420, %7419 ]
  br label %7423

7423:                                             ; preds = %7421, %7310
  %7424 = phi i32 [ 4, %7310 ], [ %7422, %7421 ]
  br label %7425

7425:                                             ; preds = %7423, %7302
  %7426 = phi i32 [ 3, %7302 ], [ %7424, %7423 ]
  br label %7427

7427:                                             ; preds = %7425, %7294
  %7428 = phi i32 [ 2, %7294 ], [ %7426, %7425 ]
  br label %7429

7429:                                             ; preds = %7427, %7286
  %7430 = phi i32 [ 1, %7286 ], [ %7428, %7427 ]
  br label %7431

7431:                                             ; preds = %7429, %7278
  %7432 = phi i32 [ 0, %7278 ], [ %7430, %7429 ]
  br label %7439

7433:                                             ; preds = %7264
  %7434 = load ptr, ptr %14, align 8, !tbaa !5
  %7435 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7434, i32 0, i32 3
  %7436 = load i8, ptr %7435, align 1, !tbaa !13
  %7437 = zext i8 %7436 to i32
  %7438 = ashr i32 %7437, 4
  br label %7439

7439:                                             ; preds = %7433, %7431
  %7440 = phi i32 [ %7432, %7431 ], [ %7438, %7433 ]
  %7441 = icmp eq i32 12, %7440
  br i1 %7441, label %7442, label %7443

7442:                                             ; preds = %7439
  br label %7626

7443:                                             ; preds = %7439
  %7444 = load ptr, ptr %14, align 8, !tbaa !5
  %7445 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7444, i32 0, i32 3
  %7446 = load i8, ptr %7445, align 1, !tbaa !13
  %7447 = zext i8 %7446 to i32
  %7448 = ashr i32 %7447, 4
  %7449 = icmp eq i32 0, %7448
  br i1 %7449, label %7450, label %7612

7450:                                             ; preds = %7443
  %7451 = load ptr, ptr %14, align 8, !tbaa !5
  %7452 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7451, i32 0, i32 3
  %7453 = load i8, ptr %7452, align 1, !tbaa !13
  %7454 = zext i8 %7453 to i32
  %7455 = and i32 %7454, 15
  %7456 = icmp eq i32 0, %7455
  br i1 %7456, label %7457, label %7458

7457:                                             ; preds = %7450
  br label %7610

7458:                                             ; preds = %7450
  %7459 = load ptr, ptr %14, align 8, !tbaa !5
  %7460 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7459, i32 0, i32 3
  %7461 = load i8, ptr %7460, align 1, !tbaa !13
  %7462 = zext i8 %7461 to i32
  %7463 = and i32 %7462, 15
  %7464 = icmp eq i32 1, %7463
  br i1 %7464, label %7465, label %7466

7465:                                             ; preds = %7458
  br label %7608

7466:                                             ; preds = %7458
  %7467 = load ptr, ptr %14, align 8, !tbaa !5
  %7468 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7467, i32 0, i32 3
  %7469 = load i8, ptr %7468, align 1, !tbaa !13
  %7470 = zext i8 %7469 to i32
  %7471 = and i32 %7470, 15
  %7472 = icmp eq i32 2, %7471
  br i1 %7472, label %7473, label %7474

7473:                                             ; preds = %7466
  br label %7606

7474:                                             ; preds = %7466
  %7475 = load ptr, ptr %14, align 8, !tbaa !5
  %7476 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7475, i32 0, i32 3
  %7477 = load i8, ptr %7476, align 1, !tbaa !13
  %7478 = zext i8 %7477 to i32
  %7479 = and i32 %7478, 15
  %7480 = icmp eq i32 3, %7479
  br i1 %7480, label %7481, label %7482

7481:                                             ; preds = %7474
  br label %7604

7482:                                             ; preds = %7474
  %7483 = load ptr, ptr %14, align 8, !tbaa !5
  %7484 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7483, i32 0, i32 3
  %7485 = load i8, ptr %7484, align 1, !tbaa !13
  %7486 = zext i8 %7485 to i32
  %7487 = and i32 %7486, 15
  %7488 = icmp eq i32 4, %7487
  br i1 %7488, label %7489, label %7490

7489:                                             ; preds = %7482
  br label %7602

7490:                                             ; preds = %7482
  %7491 = load ptr, ptr %14, align 8, !tbaa !5
  %7492 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7491, i32 0, i32 3
  %7493 = load i8, ptr %7492, align 1, !tbaa !13
  %7494 = zext i8 %7493 to i32
  %7495 = and i32 %7494, 15
  %7496 = icmp eq i32 5, %7495
  br i1 %7496, label %7497, label %7498

7497:                                             ; preds = %7490
  br label %7600

7498:                                             ; preds = %7490
  %7499 = load ptr, ptr %14, align 8, !tbaa !5
  %7500 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7499, i32 0, i32 3
  %7501 = load i8, ptr %7500, align 1, !tbaa !13
  %7502 = zext i8 %7501 to i32
  %7503 = and i32 %7502, 15
  %7504 = icmp eq i32 6, %7503
  br i1 %7504, label %7505, label %7506

7505:                                             ; preds = %7498
  br label %7598

7506:                                             ; preds = %7498
  %7507 = load ptr, ptr %14, align 8, !tbaa !5
  %7508 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7507, i32 0, i32 3
  %7509 = load i8, ptr %7508, align 1, !tbaa !13
  %7510 = zext i8 %7509 to i32
  %7511 = and i32 %7510, 15
  %7512 = icmp eq i32 7, %7511
  br i1 %7512, label %7513, label %7514

7513:                                             ; preds = %7506
  br label %7596

7514:                                             ; preds = %7506
  %7515 = load ptr, ptr %14, align 8, !tbaa !5
  %7516 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7515, i32 0, i32 3
  %7517 = load i8, ptr %7516, align 1, !tbaa !13
  %7518 = zext i8 %7517 to i32
  %7519 = and i32 %7518, 15
  %7520 = icmp eq i32 8, %7519
  br i1 %7520, label %7521, label %7522

7521:                                             ; preds = %7514
  br label %7594

7522:                                             ; preds = %7514
  %7523 = load ptr, ptr %14, align 8, !tbaa !5
  %7524 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7523, i32 0, i32 3
  %7525 = load i8, ptr %7524, align 1, !tbaa !13
  %7526 = zext i8 %7525 to i32
  %7527 = and i32 %7526, 15
  %7528 = icmp eq i32 9, %7527
  br i1 %7528, label %7529, label %7530

7529:                                             ; preds = %7522
  br label %7592

7530:                                             ; preds = %7522
  %7531 = load ptr, ptr %14, align 8, !tbaa !5
  %7532 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7531, i32 0, i32 3
  %7533 = load i8, ptr %7532, align 1, !tbaa !13
  %7534 = zext i8 %7533 to i32
  %7535 = and i32 %7534, 15
  %7536 = icmp eq i32 10, %7535
  br i1 %7536, label %7537, label %7538

7537:                                             ; preds = %7530
  br label %7590

7538:                                             ; preds = %7530
  %7539 = load ptr, ptr %14, align 8, !tbaa !5
  %7540 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7539, i32 0, i32 3
  %7541 = load i8, ptr %7540, align 1, !tbaa !13
  %7542 = zext i8 %7541 to i32
  %7543 = and i32 %7542, 15
  %7544 = icmp eq i32 11, %7543
  br i1 %7544, label %7545, label %7546

7545:                                             ; preds = %7538
  br label %7588

7546:                                             ; preds = %7538
  %7547 = load ptr, ptr %14, align 8, !tbaa !5
  %7548 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7547, i32 0, i32 3
  %7549 = load i8, ptr %7548, align 1, !tbaa !13
  %7550 = zext i8 %7549 to i32
  %7551 = and i32 %7550, 15
  %7552 = icmp eq i32 12, %7551
  br i1 %7552, label %7553, label %7554

7553:                                             ; preds = %7546
  br label %7586

7554:                                             ; preds = %7546
  %7555 = load ptr, ptr %14, align 8, !tbaa !5
  %7556 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7555, i32 0, i32 3
  %7557 = load i8, ptr %7556, align 1, !tbaa !13
  %7558 = zext i8 %7557 to i32
  %7559 = and i32 %7558, 15
  %7560 = icmp eq i32 13, %7559
  br i1 %7560, label %7561, label %7562

7561:                                             ; preds = %7554
  br label %7584

7562:                                             ; preds = %7554
  %7563 = load ptr, ptr %14, align 8, !tbaa !5
  %7564 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7563, i32 0, i32 3
  %7565 = load i8, ptr %7564, align 1, !tbaa !13
  %7566 = zext i8 %7565 to i32
  %7567 = and i32 %7566, 15
  %7568 = icmp eq i32 14, %7567
  br i1 %7568, label %7569, label %7570

7569:                                             ; preds = %7562
  br label %7582

7570:                                             ; preds = %7562
  %7571 = load ptr, ptr %14, align 8, !tbaa !5
  %7572 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7571, i32 0, i32 3
  %7573 = load i8, ptr %7572, align 1, !tbaa !13
  %7574 = zext i8 %7573 to i32
  %7575 = and i32 %7574, 15
  %7576 = icmp eq i32 15, %7575
  br i1 %7576, label %7577, label %7578

7577:                                             ; preds = %7570
  br label %7580

7578:                                             ; preds = %7570
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

7579:                                             ; No predecessors!
  br label %7580

7580:                                             ; preds = %7579, %7577
  %7581 = phi i32 [ 15, %7577 ], [ 0, %7579 ]
  br label %7582

7582:                                             ; preds = %7580, %7569
  %7583 = phi i32 [ 14, %7569 ], [ %7581, %7580 ]
  br label %7584

7584:                                             ; preds = %7582, %7561
  %7585 = phi i32 [ 12, %7561 ], [ %7583, %7582 ]
  br label %7586

7586:                                             ; preds = %7584, %7553
  %7587 = phi i32 [ 12, %7553 ], [ %7585, %7584 ]
  br label %7588

7588:                                             ; preds = %7586, %7545
  %7589 = phi i32 [ 10, %7545 ], [ %7587, %7586 ]
  br label %7590

7590:                                             ; preds = %7588, %7537
  %7591 = phi i32 [ 10, %7537 ], [ %7589, %7588 ]
  br label %7592

7592:                                             ; preds = %7590, %7529
  %7593 = phi i32 [ 8, %7529 ], [ %7591, %7590 ]
  br label %7594

7594:                                             ; preds = %7592, %7521
  %7595 = phi i32 [ 8, %7521 ], [ %7593, %7592 ]
  br label %7596

7596:                                             ; preds = %7594, %7513
  %7597 = phi i32 [ 6, %7513 ], [ %7595, %7594 ]
  br label %7598

7598:                                             ; preds = %7596, %7505
  %7599 = phi i32 [ 6, %7505 ], [ %7597, %7596 ]
  br label %7600

7600:                                             ; preds = %7598, %7497
  %7601 = phi i32 [ 5, %7497 ], [ %7599, %7598 ]
  br label %7602

7602:                                             ; preds = %7600, %7489
  %7603 = phi i32 [ 4, %7489 ], [ %7601, %7600 ]
  br label %7604

7604:                                             ; preds = %7602, %7481
  %7605 = phi i32 [ 3, %7481 ], [ %7603, %7602 ]
  br label %7606

7606:                                             ; preds = %7604, %7473
  %7607 = phi i32 [ 2, %7473 ], [ %7605, %7604 ]
  br label %7608

7608:                                             ; preds = %7606, %7465
  %7609 = phi i32 [ 1, %7465 ], [ %7607, %7606 ]
  br label %7610

7610:                                             ; preds = %7608, %7457
  %7611 = phi i32 [ 0, %7457 ], [ %7609, %7608 ]
  br label %7618

7612:                                             ; preds = %7443
  %7613 = load ptr, ptr %14, align 8, !tbaa !5
  %7614 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7613, i32 0, i32 3
  %7615 = load i8, ptr %7614, align 1, !tbaa !13
  %7616 = zext i8 %7615 to i32
  %7617 = ashr i32 %7616, 4
  br label %7618

7618:                                             ; preds = %7612, %7610
  %7619 = phi i32 [ %7611, %7610 ], [ %7617, %7612 ]
  %7620 = icmp eq i32 13, %7619
  br i1 %7620, label %7621, label %7622

7621:                                             ; preds = %7618
  br label %7624

7622:                                             ; preds = %7618
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 559, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

7623:                                             ; No predecessors!
  br label %7624

7624:                                             ; preds = %7623, %7621
  %7625 = phi i32 [ 1, %7621 ], [ 0, %7623 ]
  br label %7626

7626:                                             ; preds = %7624, %7442
  %7627 = phi i32 [ 1, %7442 ], [ %7625, %7624 ]
  br label %7628

7628:                                             ; preds = %7626, %7263
  %7629 = phi i32 [ 2, %7263 ], [ %7627, %7626 ]
  br label %7630

7630:                                             ; preds = %7628, %7084
  %7631 = phi i32 [ 2, %7084 ], [ %7629, %7628 ]
  br label %7632

7632:                                             ; preds = %7630, %6905
  %7633 = phi i32 [ 4, %6905 ], [ %7631, %7630 ]
  br label %7634

7634:                                             ; preds = %7632, %6726
  %7635 = phi i32 [ 4, %6726 ], [ %7633, %7632 ]
  br label %7636

7636:                                             ; preds = %7634, %6547
  %7637 = phi i32 [ 8, %6547 ], [ %7635, %7634 ]
  br label %7638

7638:                                             ; preds = %7636, %6368
  %7639 = phi i32 [ 8, %6368 ], [ %7637, %7636 ]
  br label %7640

7640:                                             ; preds = %7638, %6189
  %7641 = phi i32 [ 1, %6189 ], [ %7639, %7638 ]
  br label %7642

7642:                                             ; preds = %7640, %6010
  %7643 = phi i32 [ 1, %6010 ], [ %7641, %7640 ]
  br label %7644

7644:                                             ; preds = %7642, %5831
  %7645 = phi i32 [ 2, %5831 ], [ %7643, %7642 ]
  br label %7646

7646:                                             ; preds = %7644, %5652
  %7647 = phi i32 [ 2, %5652 ], [ %7645, %7644 ]
  br label %7648

7648:                                             ; preds = %7646, %5473
  %7649 = phi i32 [ 4, %5473 ], [ %7647, %7646 ]
  br label %7650

7650:                                             ; preds = %7648, %5294
  %7651 = phi i32 [ 8, %5294 ], [ %7649, %7648 ]
  %7652 = load i32, ptr %15, align 4, !tbaa !9
  %7653 = load i32, ptr %17, align 4, !tbaa !9
  %7654 = sub i32 %7653, 1
  %7655 = mul i32 %7652, %7654
  %7656 = load i32, ptr %19, align 4, !tbaa !9
  %7657 = add i32 %7655, %7656
  %7658 = mul i32 %7651, %7657
  br label %7659

7659:                                             ; preds = %7650, %5110
  %7660 = phi i32 [ %5115, %5110 ], [ %7658, %7650 ]
  store i32 %7660, ptr %26, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #4
  %7661 = load ptr, ptr %11, align 8, !tbaa !5
  %7662 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %7661, i32 0, i32 6
  %7663 = load i32, ptr %7662, align 4, !tbaa !14
  %7664 = icmp uge i32 %7663, 2201
  br i1 %7664, label %7665, label %7670

7665:                                             ; preds = %7659
  %7666 = load ptr, ptr %11, align 8, !tbaa !5
  %7667 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %7666, i32 0, i32 6
  %7668 = load i32, ptr %7667, align 4, !tbaa !14
  %7669 = icmp ule i32 %7668, 2999
  br label %7670

7670:                                             ; preds = %7665, %7659
  %7671 = phi i1 [ false, %7659 ], [ %7669, %7665 ]
  %7672 = zext i1 %7671 to i32
  %7673 = trunc i32 %7672 to i8
  store i8 %7673, ptr %27, align 1, !tbaa !16
  %7674 = load i32, ptr %20, align 4, !tbaa !9
  %7675 = load ptr, ptr %13, align 8, !tbaa !5
  %7676 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %7675, i32 0, i32 24
  %7677 = load i32, ptr %7676, align 8, !tbaa !17
  %7678 = icmp ugt i32 %7677, 0
  br i1 %7678, label %7679, label %7680

7679:                                             ; preds = %7670
  store i32 1, ptr %28, align 4
  br label %10762

7680:                                             ; preds = %7670
  store i32 0, ptr %21, align 4, !tbaa !9
  br label %7681

7681:                                             ; preds = %10743, %7680
  %7682 = load i32, ptr %21, align 4, !tbaa !9
  %7683 = load i32, ptr %18, align 4, !tbaa !9
  %7684 = icmp ult i32 %7682, %7683
  br i1 %7684, label %7685, label %10746

7685:                                             ; preds = %7681
  store i32 0, ptr %22, align 4, !tbaa !9
  br label %7686

7686:                                             ; preds = %10719, %7685
  %7687 = load i32, ptr %22, align 4, !tbaa !9
  %7688 = load i32, ptr %17, align 4, !tbaa !9
  %7689 = icmp ult i32 %7687, %7688
  br i1 %7689, label %7690, label %10722

7690:                                             ; preds = %7686
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #4
  %7691 = load ptr, ptr %14, align 8, !tbaa !5
  %7692 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7691, i32 0, i32 3
  %7693 = load i8, ptr %7692, align 1, !tbaa !13
  %7694 = zext i8 %7693 to i32
  %7695 = ashr i32 %7694, 4
  %7696 = icmp eq i32 0, %7695
  br i1 %7696, label %7697, label %7859

7697:                                             ; preds = %7690
  %7698 = load ptr, ptr %14, align 8, !tbaa !5
  %7699 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7698, i32 0, i32 3
  %7700 = load i8, ptr %7699, align 1, !tbaa !13
  %7701 = zext i8 %7700 to i32
  %7702 = and i32 %7701, 15
  %7703 = icmp eq i32 0, %7702
  br i1 %7703, label %7704, label %7705

7704:                                             ; preds = %7697
  br label %7857

7705:                                             ; preds = %7697
  %7706 = load ptr, ptr %14, align 8, !tbaa !5
  %7707 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7706, i32 0, i32 3
  %7708 = load i8, ptr %7707, align 1, !tbaa !13
  %7709 = zext i8 %7708 to i32
  %7710 = and i32 %7709, 15
  %7711 = icmp eq i32 1, %7710
  br i1 %7711, label %7712, label %7713

7712:                                             ; preds = %7705
  br label %7855

7713:                                             ; preds = %7705
  %7714 = load ptr, ptr %14, align 8, !tbaa !5
  %7715 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7714, i32 0, i32 3
  %7716 = load i8, ptr %7715, align 1, !tbaa !13
  %7717 = zext i8 %7716 to i32
  %7718 = and i32 %7717, 15
  %7719 = icmp eq i32 2, %7718
  br i1 %7719, label %7720, label %7721

7720:                                             ; preds = %7713
  br label %7853

7721:                                             ; preds = %7713
  %7722 = load ptr, ptr %14, align 8, !tbaa !5
  %7723 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7722, i32 0, i32 3
  %7724 = load i8, ptr %7723, align 1, !tbaa !13
  %7725 = zext i8 %7724 to i32
  %7726 = and i32 %7725, 15
  %7727 = icmp eq i32 3, %7726
  br i1 %7727, label %7728, label %7729

7728:                                             ; preds = %7721
  br label %7851

7729:                                             ; preds = %7721
  %7730 = load ptr, ptr %14, align 8, !tbaa !5
  %7731 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7730, i32 0, i32 3
  %7732 = load i8, ptr %7731, align 1, !tbaa !13
  %7733 = zext i8 %7732 to i32
  %7734 = and i32 %7733, 15
  %7735 = icmp eq i32 4, %7734
  br i1 %7735, label %7736, label %7737

7736:                                             ; preds = %7729
  br label %7849

7737:                                             ; preds = %7729
  %7738 = load ptr, ptr %14, align 8, !tbaa !5
  %7739 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7738, i32 0, i32 3
  %7740 = load i8, ptr %7739, align 1, !tbaa !13
  %7741 = zext i8 %7740 to i32
  %7742 = and i32 %7741, 15
  %7743 = icmp eq i32 5, %7742
  br i1 %7743, label %7744, label %7745

7744:                                             ; preds = %7737
  br label %7847

7745:                                             ; preds = %7737
  %7746 = load ptr, ptr %14, align 8, !tbaa !5
  %7747 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7746, i32 0, i32 3
  %7748 = load i8, ptr %7747, align 1, !tbaa !13
  %7749 = zext i8 %7748 to i32
  %7750 = and i32 %7749, 15
  %7751 = icmp eq i32 6, %7750
  br i1 %7751, label %7752, label %7753

7752:                                             ; preds = %7745
  br label %7845

7753:                                             ; preds = %7745
  %7754 = load ptr, ptr %14, align 8, !tbaa !5
  %7755 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7754, i32 0, i32 3
  %7756 = load i8, ptr %7755, align 1, !tbaa !13
  %7757 = zext i8 %7756 to i32
  %7758 = and i32 %7757, 15
  %7759 = icmp eq i32 7, %7758
  br i1 %7759, label %7760, label %7761

7760:                                             ; preds = %7753
  br label %7843

7761:                                             ; preds = %7753
  %7762 = load ptr, ptr %14, align 8, !tbaa !5
  %7763 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7762, i32 0, i32 3
  %7764 = load i8, ptr %7763, align 1, !tbaa !13
  %7765 = zext i8 %7764 to i32
  %7766 = and i32 %7765, 15
  %7767 = icmp eq i32 8, %7766
  br i1 %7767, label %7768, label %7769

7768:                                             ; preds = %7761
  br label %7841

7769:                                             ; preds = %7761
  %7770 = load ptr, ptr %14, align 8, !tbaa !5
  %7771 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7770, i32 0, i32 3
  %7772 = load i8, ptr %7771, align 1, !tbaa !13
  %7773 = zext i8 %7772 to i32
  %7774 = and i32 %7773, 15
  %7775 = icmp eq i32 9, %7774
  br i1 %7775, label %7776, label %7777

7776:                                             ; preds = %7769
  br label %7839

7777:                                             ; preds = %7769
  %7778 = load ptr, ptr %14, align 8, !tbaa !5
  %7779 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7778, i32 0, i32 3
  %7780 = load i8, ptr %7779, align 1, !tbaa !13
  %7781 = zext i8 %7780 to i32
  %7782 = and i32 %7781, 15
  %7783 = icmp eq i32 10, %7782
  br i1 %7783, label %7784, label %7785

7784:                                             ; preds = %7777
  br label %7837

7785:                                             ; preds = %7777
  %7786 = load ptr, ptr %14, align 8, !tbaa !5
  %7787 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7786, i32 0, i32 3
  %7788 = load i8, ptr %7787, align 1, !tbaa !13
  %7789 = zext i8 %7788 to i32
  %7790 = and i32 %7789, 15
  %7791 = icmp eq i32 11, %7790
  br i1 %7791, label %7792, label %7793

7792:                                             ; preds = %7785
  br label %7835

7793:                                             ; preds = %7785
  %7794 = load ptr, ptr %14, align 8, !tbaa !5
  %7795 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7794, i32 0, i32 3
  %7796 = load i8, ptr %7795, align 1, !tbaa !13
  %7797 = zext i8 %7796 to i32
  %7798 = and i32 %7797, 15
  %7799 = icmp eq i32 12, %7798
  br i1 %7799, label %7800, label %7801

7800:                                             ; preds = %7793
  br label %7833

7801:                                             ; preds = %7793
  %7802 = load ptr, ptr %14, align 8, !tbaa !5
  %7803 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7802, i32 0, i32 3
  %7804 = load i8, ptr %7803, align 1, !tbaa !13
  %7805 = zext i8 %7804 to i32
  %7806 = and i32 %7805, 15
  %7807 = icmp eq i32 13, %7806
  br i1 %7807, label %7808, label %7809

7808:                                             ; preds = %7801
  br label %7831

7809:                                             ; preds = %7801
  %7810 = load ptr, ptr %14, align 8, !tbaa !5
  %7811 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7810, i32 0, i32 3
  %7812 = load i8, ptr %7811, align 1, !tbaa !13
  %7813 = zext i8 %7812 to i32
  %7814 = and i32 %7813, 15
  %7815 = icmp eq i32 14, %7814
  br i1 %7815, label %7816, label %7817

7816:                                             ; preds = %7809
  br label %7829

7817:                                             ; preds = %7809
  %7818 = load ptr, ptr %14, align 8, !tbaa !5
  %7819 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7818, i32 0, i32 3
  %7820 = load i8, ptr %7819, align 1, !tbaa !13
  %7821 = zext i8 %7820 to i32
  %7822 = and i32 %7821, 15
  %7823 = icmp eq i32 15, %7822
  br i1 %7823, label %7824, label %7825

7824:                                             ; preds = %7817
  br label %7827

7825:                                             ; preds = %7817
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 567, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

7826:                                             ; No predecessors!
  br label %7827

7827:                                             ; preds = %7826, %7824
  %7828 = phi i32 [ 15, %7824 ], [ 0, %7826 ]
  br label %7829

7829:                                             ; preds = %7827, %7816
  %7830 = phi i32 [ 14, %7816 ], [ %7828, %7827 ]
  br label %7831

7831:                                             ; preds = %7829, %7808
  %7832 = phi i32 [ 12, %7808 ], [ %7830, %7829 ]
  br label %7833

7833:                                             ; preds = %7831, %7800
  %7834 = phi i32 [ 12, %7800 ], [ %7832, %7831 ]
  br label %7835

7835:                                             ; preds = %7833, %7792
  %7836 = phi i32 [ 10, %7792 ], [ %7834, %7833 ]
  br label %7837

7837:                                             ; preds = %7835, %7784
  %7838 = phi i32 [ 10, %7784 ], [ %7836, %7835 ]
  br label %7839

7839:                                             ; preds = %7837, %7776
  %7840 = phi i32 [ 8, %7776 ], [ %7838, %7837 ]
  br label %7841

7841:                                             ; preds = %7839, %7768
  %7842 = phi i32 [ 8, %7768 ], [ %7840, %7839 ]
  br label %7843

7843:                                             ; preds = %7841, %7760
  %7844 = phi i32 [ 6, %7760 ], [ %7842, %7841 ]
  br label %7845

7845:                                             ; preds = %7843, %7752
  %7846 = phi i32 [ 6, %7752 ], [ %7844, %7843 ]
  br label %7847

7847:                                             ; preds = %7845, %7744
  %7848 = phi i32 [ 5, %7744 ], [ %7846, %7845 ]
  br label %7849

7849:                                             ; preds = %7847, %7736
  %7850 = phi i32 [ 4, %7736 ], [ %7848, %7847 ]
  br label %7851

7851:                                             ; preds = %7849, %7728
  %7852 = phi i32 [ 3, %7728 ], [ %7850, %7849 ]
  br label %7853

7853:                                             ; preds = %7851, %7720
  %7854 = phi i32 [ 2, %7720 ], [ %7852, %7851 ]
  br label %7855

7855:                                             ; preds = %7853, %7712
  %7856 = phi i32 [ 1, %7712 ], [ %7854, %7853 ]
  br label %7857

7857:                                             ; preds = %7855, %7704
  %7858 = phi i32 [ 0, %7704 ], [ %7856, %7855 ]
  br label %7865

7859:                                             ; preds = %7690
  %7860 = load ptr, ptr %14, align 8, !tbaa !5
  %7861 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7860, i32 0, i32 3
  %7862 = load i8, ptr %7861, align 1, !tbaa !13
  %7863 = zext i8 %7862 to i32
  %7864 = ashr i32 %7863, 4
  br label %7865

7865:                                             ; preds = %7859, %7857
  %7866 = phi i32 [ %7858, %7857 ], [ %7864, %7859 ]
  %7867 = icmp eq i32 1, %7866
  br i1 %7867, label %8046, label %7868

7868:                                             ; preds = %7865
  %7869 = load ptr, ptr %14, align 8, !tbaa !5
  %7870 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7869, i32 0, i32 3
  %7871 = load i8, ptr %7870, align 1, !tbaa !13
  %7872 = zext i8 %7871 to i32
  %7873 = ashr i32 %7872, 4
  %7874 = icmp eq i32 0, %7873
  br i1 %7874, label %7875, label %8037

7875:                                             ; preds = %7868
  %7876 = load ptr, ptr %14, align 8, !tbaa !5
  %7877 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7876, i32 0, i32 3
  %7878 = load i8, ptr %7877, align 1, !tbaa !13
  %7879 = zext i8 %7878 to i32
  %7880 = and i32 %7879, 15
  %7881 = icmp eq i32 0, %7880
  br i1 %7881, label %7882, label %7883

7882:                                             ; preds = %7875
  br label %8035

7883:                                             ; preds = %7875
  %7884 = load ptr, ptr %14, align 8, !tbaa !5
  %7885 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7884, i32 0, i32 3
  %7886 = load i8, ptr %7885, align 1, !tbaa !13
  %7887 = zext i8 %7886 to i32
  %7888 = and i32 %7887, 15
  %7889 = icmp eq i32 1, %7888
  br i1 %7889, label %7890, label %7891

7890:                                             ; preds = %7883
  br label %8033

7891:                                             ; preds = %7883
  %7892 = load ptr, ptr %14, align 8, !tbaa !5
  %7893 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7892, i32 0, i32 3
  %7894 = load i8, ptr %7893, align 1, !tbaa !13
  %7895 = zext i8 %7894 to i32
  %7896 = and i32 %7895, 15
  %7897 = icmp eq i32 2, %7896
  br i1 %7897, label %7898, label %7899

7898:                                             ; preds = %7891
  br label %8031

7899:                                             ; preds = %7891
  %7900 = load ptr, ptr %14, align 8, !tbaa !5
  %7901 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7900, i32 0, i32 3
  %7902 = load i8, ptr %7901, align 1, !tbaa !13
  %7903 = zext i8 %7902 to i32
  %7904 = and i32 %7903, 15
  %7905 = icmp eq i32 3, %7904
  br i1 %7905, label %7906, label %7907

7906:                                             ; preds = %7899
  br label %8029

7907:                                             ; preds = %7899
  %7908 = load ptr, ptr %14, align 8, !tbaa !5
  %7909 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7908, i32 0, i32 3
  %7910 = load i8, ptr %7909, align 1, !tbaa !13
  %7911 = zext i8 %7910 to i32
  %7912 = and i32 %7911, 15
  %7913 = icmp eq i32 4, %7912
  br i1 %7913, label %7914, label %7915

7914:                                             ; preds = %7907
  br label %8027

7915:                                             ; preds = %7907
  %7916 = load ptr, ptr %14, align 8, !tbaa !5
  %7917 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7916, i32 0, i32 3
  %7918 = load i8, ptr %7917, align 1, !tbaa !13
  %7919 = zext i8 %7918 to i32
  %7920 = and i32 %7919, 15
  %7921 = icmp eq i32 5, %7920
  br i1 %7921, label %7922, label %7923

7922:                                             ; preds = %7915
  br label %8025

7923:                                             ; preds = %7915
  %7924 = load ptr, ptr %14, align 8, !tbaa !5
  %7925 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7924, i32 0, i32 3
  %7926 = load i8, ptr %7925, align 1, !tbaa !13
  %7927 = zext i8 %7926 to i32
  %7928 = and i32 %7927, 15
  %7929 = icmp eq i32 6, %7928
  br i1 %7929, label %7930, label %7931

7930:                                             ; preds = %7923
  br label %8023

7931:                                             ; preds = %7923
  %7932 = load ptr, ptr %14, align 8, !tbaa !5
  %7933 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7932, i32 0, i32 3
  %7934 = load i8, ptr %7933, align 1, !tbaa !13
  %7935 = zext i8 %7934 to i32
  %7936 = and i32 %7935, 15
  %7937 = icmp eq i32 7, %7936
  br i1 %7937, label %7938, label %7939

7938:                                             ; preds = %7931
  br label %8021

7939:                                             ; preds = %7931
  %7940 = load ptr, ptr %14, align 8, !tbaa !5
  %7941 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7940, i32 0, i32 3
  %7942 = load i8, ptr %7941, align 1, !tbaa !13
  %7943 = zext i8 %7942 to i32
  %7944 = and i32 %7943, 15
  %7945 = icmp eq i32 8, %7944
  br i1 %7945, label %7946, label %7947

7946:                                             ; preds = %7939
  br label %8019

7947:                                             ; preds = %7939
  %7948 = load ptr, ptr %14, align 8, !tbaa !5
  %7949 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7948, i32 0, i32 3
  %7950 = load i8, ptr %7949, align 1, !tbaa !13
  %7951 = zext i8 %7950 to i32
  %7952 = and i32 %7951, 15
  %7953 = icmp eq i32 9, %7952
  br i1 %7953, label %7954, label %7955

7954:                                             ; preds = %7947
  br label %8017

7955:                                             ; preds = %7947
  %7956 = load ptr, ptr %14, align 8, !tbaa !5
  %7957 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7956, i32 0, i32 3
  %7958 = load i8, ptr %7957, align 1, !tbaa !13
  %7959 = zext i8 %7958 to i32
  %7960 = and i32 %7959, 15
  %7961 = icmp eq i32 10, %7960
  br i1 %7961, label %7962, label %7963

7962:                                             ; preds = %7955
  br label %8015

7963:                                             ; preds = %7955
  %7964 = load ptr, ptr %14, align 8, !tbaa !5
  %7965 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7964, i32 0, i32 3
  %7966 = load i8, ptr %7965, align 1, !tbaa !13
  %7967 = zext i8 %7966 to i32
  %7968 = and i32 %7967, 15
  %7969 = icmp eq i32 11, %7968
  br i1 %7969, label %7970, label %7971

7970:                                             ; preds = %7963
  br label %8013

7971:                                             ; preds = %7963
  %7972 = load ptr, ptr %14, align 8, !tbaa !5
  %7973 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7972, i32 0, i32 3
  %7974 = load i8, ptr %7973, align 1, !tbaa !13
  %7975 = zext i8 %7974 to i32
  %7976 = and i32 %7975, 15
  %7977 = icmp eq i32 12, %7976
  br i1 %7977, label %7978, label %7979

7978:                                             ; preds = %7971
  br label %8011

7979:                                             ; preds = %7971
  %7980 = load ptr, ptr %14, align 8, !tbaa !5
  %7981 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7980, i32 0, i32 3
  %7982 = load i8, ptr %7981, align 1, !tbaa !13
  %7983 = zext i8 %7982 to i32
  %7984 = and i32 %7983, 15
  %7985 = icmp eq i32 13, %7984
  br i1 %7985, label %7986, label %7987

7986:                                             ; preds = %7979
  br label %8009

7987:                                             ; preds = %7979
  %7988 = load ptr, ptr %14, align 8, !tbaa !5
  %7989 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7988, i32 0, i32 3
  %7990 = load i8, ptr %7989, align 1, !tbaa !13
  %7991 = zext i8 %7990 to i32
  %7992 = and i32 %7991, 15
  %7993 = icmp eq i32 14, %7992
  br i1 %7993, label %7994, label %7995

7994:                                             ; preds = %7987
  br label %8007

7995:                                             ; preds = %7987
  %7996 = load ptr, ptr %14, align 8, !tbaa !5
  %7997 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %7996, i32 0, i32 3
  %7998 = load i8, ptr %7997, align 1, !tbaa !13
  %7999 = zext i8 %7998 to i32
  %8000 = and i32 %7999, 15
  %8001 = icmp eq i32 15, %8000
  br i1 %8001, label %8002, label %8003

8002:                                             ; preds = %7995
  br label %8005

8003:                                             ; preds = %7995
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 567, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

8004:                                             ; No predecessors!
  br label %8005

8005:                                             ; preds = %8004, %8002
  %8006 = phi i32 [ 15, %8002 ], [ 0, %8004 ]
  br label %8007

8007:                                             ; preds = %8005, %7994
  %8008 = phi i32 [ 14, %7994 ], [ %8006, %8005 ]
  br label %8009

8009:                                             ; preds = %8007, %7986
  %8010 = phi i32 [ 12, %7986 ], [ %8008, %8007 ]
  br label %8011

8011:                                             ; preds = %8009, %7978
  %8012 = phi i32 [ 12, %7978 ], [ %8010, %8009 ]
  br label %8013

8013:                                             ; preds = %8011, %7970
  %8014 = phi i32 [ 10, %7970 ], [ %8012, %8011 ]
  br label %8015

8015:                                             ; preds = %8013, %7962
  %8016 = phi i32 [ 10, %7962 ], [ %8014, %8013 ]
  br label %8017

8017:                                             ; preds = %8015, %7954
  %8018 = phi i32 [ 8, %7954 ], [ %8016, %8015 ]
  br label %8019

8019:                                             ; preds = %8017, %7946
  %8020 = phi i32 [ 8, %7946 ], [ %8018, %8017 ]
  br label %8021

8021:                                             ; preds = %8019, %7938
  %8022 = phi i32 [ 6, %7938 ], [ %8020, %8019 ]
  br label %8023

8023:                                             ; preds = %8021, %7930
  %8024 = phi i32 [ 6, %7930 ], [ %8022, %8021 ]
  br label %8025

8025:                                             ; preds = %8023, %7922
  %8026 = phi i32 [ 5, %7922 ], [ %8024, %8023 ]
  br label %8027

8027:                                             ; preds = %8025, %7914
  %8028 = phi i32 [ 4, %7914 ], [ %8026, %8025 ]
  br label %8029

8029:                                             ; preds = %8027, %7906
  %8030 = phi i32 [ 3, %7906 ], [ %8028, %8027 ]
  br label %8031

8031:                                             ; preds = %8029, %7898
  %8032 = phi i32 [ 2, %7898 ], [ %8030, %8029 ]
  br label %8033

8033:                                             ; preds = %8031, %7890
  %8034 = phi i32 [ 1, %7890 ], [ %8032, %8031 ]
  br label %8035

8035:                                             ; preds = %8033, %7882
  %8036 = phi i32 [ 0, %7882 ], [ %8034, %8033 ]
  br label %8043

8037:                                             ; preds = %7868
  %8038 = load ptr, ptr %14, align 8, !tbaa !5
  %8039 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8038, i32 0, i32 3
  %8040 = load i8, ptr %8039, align 1, !tbaa !13
  %8041 = zext i8 %8040 to i32
  %8042 = ashr i32 %8041, 4
  br label %8043

8043:                                             ; preds = %8037, %8035
  %8044 = phi i32 [ %8036, %8035 ], [ %8042, %8037 ]
  %8045 = icmp eq i32 0, %8044
  br label %8046

8046:                                             ; preds = %8043, %7865
  %8047 = phi i1 [ true, %7865 ], [ %8045, %8043 ]
  %8048 = zext i1 %8047 to i64
  %8049 = select i1 %8047, i32 1, i32 0
  store i32 %8049, ptr %29, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #4
  %8050 = load i32, ptr %29, align 4, !tbaa !9
  %8051 = icmp ne i32 %8050, 0
  br i1 %8051, label %8052, label %8062

8052:                                             ; preds = %8046
  %8053 = load i32, ptr %22, align 4, !tbaa !9
  %8054 = load i32, ptr %17, align 4, !tbaa !9
  %8055 = sub i32 %8054, 1
  %8056 = icmp eq i32 %8053, %8055
  br i1 %8056, label %8057, label %8059

8057:                                             ; preds = %8052
  %8058 = load i32, ptr %19, align 4, !tbaa !9
  br label %8060

8059:                                             ; preds = %8052
  br label %8060

8060:                                             ; preds = %8059, %8057
  %8061 = phi i32 [ %8058, %8057 ], [ 0, %8059 ]
  br label %8080

8062:                                             ; preds = %8046
  %8063 = load i32, ptr %22, align 4, !tbaa !9
  %8064 = load i32, ptr %17, align 4, !tbaa !9
  %8065 = sub i32 %8064, 1
  %8066 = icmp eq i32 %8063, %8065
  br i1 %8066, label %8067, label %8076

8067:                                             ; preds = %8062
  %8068 = load i32, ptr %19, align 4, !tbaa !9
  %8069 = icmp ugt i32 %8068, 0
  br i1 %8069, label %8070, label %8072

8070:                                             ; preds = %8067
  %8071 = load i32, ptr %19, align 4, !tbaa !9
  br label %8074

8072:                                             ; preds = %8067
  %8073 = load i32, ptr %15, align 4, !tbaa !9
  br label %8074

8074:                                             ; preds = %8072, %8070
  %8075 = phi i32 [ %8071, %8070 ], [ %8073, %8072 ]
  br label %8078

8076:                                             ; preds = %8062
  %8077 = load i32, ptr %15, align 4, !tbaa !9
  br label %8078

8078:                                             ; preds = %8076, %8074
  %8079 = phi i32 [ %8075, %8074 ], [ %8077, %8076 ]
  br label %8080

8080:                                             ; preds = %8078, %8060
  %8081 = phi i32 [ %8061, %8060 ], [ %8079, %8078 ]
  store i32 %8081, ptr %30, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #4
  %8082 = load i32, ptr %29, align 4, !tbaa !9
  %8083 = icmp ne i32 %8082, 0
  br i1 %8083, label %8084, label %8102

8084:                                             ; preds = %8080
  %8085 = load i32, ptr %22, align 4, !tbaa !9
  %8086 = load i32, ptr %17, align 4, !tbaa !9
  %8087 = sub i32 %8086, 1
  %8088 = icmp eq i32 %8085, %8087
  br i1 %8088, label %8089, label %8099

8089:                                             ; preds = %8084
  %8090 = load i32, ptr %19, align 4, !tbaa !9
  %8091 = icmp ugt i32 %8090, 0
  br i1 %8091, label %8092, label %8096

8092:                                             ; preds = %8089
  %8093 = load ptr, ptr %13, align 8, !tbaa !5
  %8094 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %8093, i32 0, i32 21
  %8095 = load i32, ptr %8094, align 4, !tbaa !23
  br label %8097

8096:                                             ; preds = %8089
  br label %8097

8097:                                             ; preds = %8096, %8092
  %8098 = phi i32 [ %8095, %8092 ], [ 0, %8096 ]
  br label %8100

8099:                                             ; preds = %8084
  br label %8100

8100:                                             ; preds = %8099, %8097
  %8101 = phi i32 [ %8098, %8097 ], [ 0, %8099 ]
  br label %8126

8102:                                             ; preds = %8080
  %8103 = load i32, ptr %22, align 4, !tbaa !9
  %8104 = load i32, ptr %17, align 4, !tbaa !9
  %8105 = sub i32 %8104, 1
  %8106 = icmp eq i32 %8103, %8105
  br i1 %8106, label %8107, label %8120

8107:                                             ; preds = %8102
  %8108 = load i32, ptr %19, align 4, !tbaa !9
  %8109 = icmp ugt i32 %8108, 0
  br i1 %8109, label %8110, label %8114

8110:                                             ; preds = %8107
  %8111 = load ptr, ptr %13, align 8, !tbaa !5
  %8112 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %8111, i32 0, i32 22
  %8113 = load i32, ptr %8112, align 8, !tbaa !24
  br label %8118

8114:                                             ; preds = %8107
  %8115 = load ptr, ptr %13, align 8, !tbaa !5
  %8116 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %8115, i32 0, i32 23
  %8117 = load i32, ptr %8116, align 4, !tbaa !25
  br label %8118

8118:                                             ; preds = %8114, %8110
  %8119 = phi i32 [ %8113, %8110 ], [ %8117, %8114 ]
  br label %8124

8120:                                             ; preds = %8102
  %8121 = load ptr, ptr %13, align 8, !tbaa !5
  %8122 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %8121, i32 0, i32 23
  %8123 = load i32, ptr %8122, align 4, !tbaa !25
  br label %8124

8124:                                             ; preds = %8120, %8118
  %8125 = phi i32 [ %8119, %8118 ], [ %8123, %8120 ]
  br label %8126

8126:                                             ; preds = %8124, %8100
  %8127 = phi i32 [ %8101, %8100 ], [ %8125, %8124 ]
  store i32 %8127, ptr %31, align 4, !tbaa !9
  %8128 = load i32, ptr %24, align 4, !tbaa !9
  %8129 = load i32, ptr %21, align 4, !tbaa !9
  %8130 = load i32, ptr %17, align 4, !tbaa !9
  %8131 = mul i32 %8129, %8130
  %8132 = add i32 %8128, %8131
  %8133 = load i32, ptr %22, align 4, !tbaa !9
  %8134 = add i32 %8132, %8133
  store i32 %8134, ptr %23, align 4, !tbaa !9
  %8135 = load ptr, ptr %13, align 8, !tbaa !5
  %8136 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %8135, i32 0, i32 32
  %8137 = load i32, ptr %8136, align 8, !tbaa !26
  %8138 = icmp eq i32 %8137, 1
  br i1 %8138, label %8139, label %8142

8139:                                             ; preds = %8126
  %8140 = load ptr, ptr %11, align 8, !tbaa !5
  %8141 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_generator_vcvt_f32bf16_aarch64(ptr noundef %8140, i32 noundef %8141, i32 noundef 0)
  br label %8142

8142:                                             ; preds = %8139, %8126
  %8143 = load ptr, ptr %11, align 8, !tbaa !5
  %8144 = load ptr, ptr %12, align 8, !tbaa !5
  %8145 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %8144, i32 0, i32 5
  %8146 = load i32, ptr %8145, align 4, !tbaa !27
  %8147 = load ptr, ptr %12, align 8, !tbaa !5
  %8148 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %8147, i32 0, i32 15
  %8149 = load i32, ptr %8148, align 4, !tbaa !31
  %8150 = load i32, ptr %23, align 4, !tbaa !9
  %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 = ashr i32 %8154, 4
  %8156 = icmp eq i32 0, %8155
  br i1 %8156, label %8157, label %8319

8157:                                             ; preds = %8142
  %8158 = load ptr, ptr %14, align 8, !tbaa !5
  %8159 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8158, i32 0, i32 3
  %8160 = load i8, ptr %8159, align 1, !tbaa !13
  %8161 = zext i8 %8160 to i32
  %8162 = and i32 %8161, 15
  %8163 = icmp eq i32 0, %8162
  br i1 %8163, label %8164, label %8165

8164:                                             ; preds = %8157
  br label %8317

8165:                                             ; preds = %8157
  %8166 = load ptr, ptr %14, align 8, !tbaa !5
  %8167 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8166, i32 0, i32 3
  %8168 = load i8, ptr %8167, align 1, !tbaa !13
  %8169 = zext i8 %8168 to i32
  %8170 = and i32 %8169, 15
  %8171 = icmp eq i32 1, %8170
  br i1 %8171, label %8172, label %8173

8172:                                             ; preds = %8165
  br label %8315

8173:                                             ; preds = %8165
  %8174 = load ptr, ptr %14, align 8, !tbaa !5
  %8175 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8174, i32 0, i32 3
  %8176 = load i8, ptr %8175, align 1, !tbaa !13
  %8177 = zext i8 %8176 to i32
  %8178 = and i32 %8177, 15
  %8179 = icmp eq i32 2, %8178
  br i1 %8179, label %8180, label %8181

8180:                                             ; preds = %8173
  br label %8313

8181:                                             ; preds = %8173
  %8182 = load ptr, ptr %14, align 8, !tbaa !5
  %8183 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8182, i32 0, i32 3
  %8184 = load i8, ptr %8183, align 1, !tbaa !13
  %8185 = zext i8 %8184 to i32
  %8186 = and i32 %8185, 15
  %8187 = icmp eq i32 3, %8186
  br i1 %8187, label %8188, label %8189

8188:                                             ; preds = %8181
  br label %8311

8189:                                             ; preds = %8181
  %8190 = load ptr, ptr %14, align 8, !tbaa !5
  %8191 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8190, i32 0, i32 3
  %8192 = load i8, ptr %8191, align 1, !tbaa !13
  %8193 = zext i8 %8192 to i32
  %8194 = and i32 %8193, 15
  %8195 = icmp eq i32 4, %8194
  br i1 %8195, label %8196, label %8197

8196:                                             ; preds = %8189
  br label %8309

8197:                                             ; preds = %8189
  %8198 = load ptr, ptr %14, align 8, !tbaa !5
  %8199 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8198, i32 0, i32 3
  %8200 = load i8, ptr %8199, align 1, !tbaa !13
  %8201 = zext i8 %8200 to i32
  %8202 = and i32 %8201, 15
  %8203 = icmp eq i32 5, %8202
  br i1 %8203, label %8204, label %8205

8204:                                             ; preds = %8197
  br label %8307

8205:                                             ; preds = %8197
  %8206 = load ptr, ptr %14, align 8, !tbaa !5
  %8207 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8206, i32 0, i32 3
  %8208 = load i8, ptr %8207, align 1, !tbaa !13
  %8209 = zext i8 %8208 to i32
  %8210 = and i32 %8209, 15
  %8211 = icmp eq i32 6, %8210
  br i1 %8211, label %8212, label %8213

8212:                                             ; preds = %8205
  br label %8305

8213:                                             ; preds = %8205
  %8214 = load ptr, ptr %14, align 8, !tbaa !5
  %8215 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8214, i32 0, i32 3
  %8216 = load i8, ptr %8215, align 1, !tbaa !13
  %8217 = zext i8 %8216 to i32
  %8218 = and i32 %8217, 15
  %8219 = icmp eq i32 7, %8218
  br i1 %8219, label %8220, label %8221

8220:                                             ; preds = %8213
  br label %8303

8221:                                             ; preds = %8213
  %8222 = load ptr, ptr %14, align 8, !tbaa !5
  %8223 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8222, i32 0, i32 3
  %8224 = load i8, ptr %8223, align 1, !tbaa !13
  %8225 = zext i8 %8224 to i32
  %8226 = and i32 %8225, 15
  %8227 = icmp eq i32 8, %8226
  br i1 %8227, label %8228, label %8229

8228:                                             ; preds = %8221
  br label %8301

8229:                                             ; preds = %8221
  %8230 = load ptr, ptr %14, align 8, !tbaa !5
  %8231 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8230, i32 0, i32 3
  %8232 = load i8, ptr %8231, align 1, !tbaa !13
  %8233 = zext i8 %8232 to i32
  %8234 = and i32 %8233, 15
  %8235 = icmp eq i32 9, %8234
  br i1 %8235, label %8236, label %8237

8236:                                             ; preds = %8229
  br label %8299

8237:                                             ; preds = %8229
  %8238 = load ptr, ptr %14, align 8, !tbaa !5
  %8239 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8238, i32 0, i32 3
  %8240 = load i8, ptr %8239, align 1, !tbaa !13
  %8241 = zext i8 %8240 to i32
  %8242 = and i32 %8241, 15
  %8243 = icmp eq i32 10, %8242
  br i1 %8243, label %8244, label %8245

8244:                                             ; preds = %8237
  br label %8297

8245:                                             ; preds = %8237
  %8246 = load ptr, ptr %14, align 8, !tbaa !5
  %8247 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8246, i32 0, i32 3
  %8248 = load i8, ptr %8247, align 1, !tbaa !13
  %8249 = zext i8 %8248 to i32
  %8250 = and i32 %8249, 15
  %8251 = icmp eq i32 11, %8250
  br i1 %8251, label %8252, label %8253

8252:                                             ; preds = %8245
  br label %8295

8253:                                             ; preds = %8245
  %8254 = load ptr, ptr %14, align 8, !tbaa !5
  %8255 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8254, i32 0, i32 3
  %8256 = load i8, ptr %8255, align 1, !tbaa !13
  %8257 = zext i8 %8256 to i32
  %8258 = and i32 %8257, 15
  %8259 = icmp eq i32 12, %8258
  br i1 %8259, label %8260, label %8261

8260:                                             ; preds = %8253
  br label %8293

8261:                                             ; preds = %8253
  %8262 = load ptr, ptr %14, align 8, !tbaa !5
  %8263 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8262, i32 0, i32 3
  %8264 = load i8, ptr %8263, align 1, !tbaa !13
  %8265 = zext i8 %8264 to i32
  %8266 = and i32 %8265, 15
  %8267 = icmp eq i32 13, %8266
  br i1 %8267, label %8268, label %8269

8268:                                             ; preds = %8261
  br label %8291

8269:                                             ; preds = %8261
  %8270 = load ptr, ptr %14, align 8, !tbaa !5
  %8271 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8270, i32 0, i32 3
  %8272 = load i8, ptr %8271, align 1, !tbaa !13
  %8273 = zext i8 %8272 to i32
  %8274 = and i32 %8273, 15
  %8275 = icmp eq i32 14, %8274
  br i1 %8275, label %8276, label %8277

8276:                                             ; preds = %8269
  br label %8289

8277:                                             ; preds = %8269
  %8278 = load ptr, ptr %14, align 8, !tbaa !5
  %8279 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8278, i32 0, i32 3
  %8280 = load i8, ptr %8279, align 1, !tbaa !13
  %8281 = zext i8 %8280 to i32
  %8282 = and i32 %8281, 15
  %8283 = icmp eq i32 15, %8282
  br i1 %8283, label %8284, label %8285

8284:                                             ; preds = %8277
  br label %8287

8285:                                             ; preds = %8277
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 577, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

8286:                                             ; No predecessors!
  br label %8287

8287:                                             ; preds = %8286, %8284
  %8288 = phi i32 [ 15, %8284 ], [ 0, %8286 ]
  br label %8289

8289:                                             ; preds = %8287, %8276
  %8290 = phi i32 [ 14, %8276 ], [ %8288, %8287 ]
  br label %8291

8291:                                             ; preds = %8289, %8268
  %8292 = phi i32 [ 12, %8268 ], [ %8290, %8289 ]
  br label %8293

8293:                                             ; preds = %8291, %8260
  %8294 = phi i32 [ 12, %8260 ], [ %8292, %8291 ]
  br label %8295

8295:                                             ; preds = %8293, %8252
  %8296 = phi i32 [ 10, %8252 ], [ %8294, %8293 ]
  br label %8297

8297:                                             ; preds = %8295, %8244
  %8298 = phi i32 [ 10, %8244 ], [ %8296, %8295 ]
  br label %8299

8299:                                             ; preds = %8297, %8236
  %8300 = phi i32 [ 8, %8236 ], [ %8298, %8297 ]
  br label %8301

8301:                                             ; preds = %8299, %8228
  %8302 = phi i32 [ 8, %8228 ], [ %8300, %8299 ]
  br label %8303

8303:                                             ; preds = %8301, %8220
  %8304 = phi i32 [ 6, %8220 ], [ %8302, %8301 ]
  br label %8305

8305:                                             ; preds = %8303, %8212
  %8306 = phi i32 [ 6, %8212 ], [ %8304, %8303 ]
  br label %8307

8307:                                             ; preds = %8305, %8204
  %8308 = phi i32 [ 5, %8204 ], [ %8306, %8305 ]
  br label %8309

8309:                                             ; preds = %8307, %8196
  %8310 = phi i32 [ 4, %8196 ], [ %8308, %8307 ]
  br label %8311

8311:                                             ; preds = %8309, %8188
  %8312 = phi i32 [ 3, %8188 ], [ %8310, %8309 ]
  br label %8313

8313:                                             ; preds = %8311, %8180
  %8314 = phi i32 [ 2, %8180 ], [ %8312, %8311 ]
  br label %8315

8315:                                             ; preds = %8313, %8172
  %8316 = phi i32 [ 1, %8172 ], [ %8314, %8313 ]
  br label %8317

8317:                                             ; preds = %8315, %8164
  %8318 = phi i32 [ 0, %8164 ], [ %8316, %8315 ]
  br label %8325

8319:                                             ; preds = %8142
  %8320 = load ptr, ptr %14, align 8, !tbaa !5
  %8321 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8320, i32 0, i32 3
  %8322 = load i8, ptr %8321, align 1, !tbaa !13
  %8323 = zext i8 %8322 to i32
  %8324 = ashr i32 %8323, 4
  br label %8325

8325:                                             ; preds = %8319, %8317
  %8326 = phi i32 [ %8318, %8317 ], [ %8324, %8319 ]
  %8327 = icmp eq i32 0, %8326
  br i1 %8327, label %8328, label %8329

8328:                                             ; preds = %8325
  br label %10684

8329:                                             ; preds = %8325
  %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 = ashr i32 %8333, 4
  %8335 = icmp eq i32 0, %8334
  br i1 %8335, label %8336, label %8498

8336:                                             ; preds = %8329
  %8337 = load ptr, ptr %14, align 8, !tbaa !5
  %8338 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8337, i32 0, i32 3
  %8339 = load i8, ptr %8338, align 1, !tbaa !13
  %8340 = zext i8 %8339 to i32
  %8341 = and i32 %8340, 15
  %8342 = icmp eq i32 0, %8341
  br i1 %8342, label %8343, label %8344

8343:                                             ; preds = %8336
  br label %8496

8344:                                             ; preds = %8336
  %8345 = load ptr, ptr %14, align 8, !tbaa !5
  %8346 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8345, i32 0, i32 3
  %8347 = load i8, ptr %8346, align 1, !tbaa !13
  %8348 = zext i8 %8347 to i32
  %8349 = and i32 %8348, 15
  %8350 = icmp eq i32 1, %8349
  br i1 %8350, label %8351, label %8352

8351:                                             ; preds = %8344
  br label %8494

8352:                                             ; preds = %8344
  %8353 = load ptr, ptr %14, align 8, !tbaa !5
  %8354 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8353, i32 0, i32 3
  %8355 = load i8, ptr %8354, align 1, !tbaa !13
  %8356 = zext i8 %8355 to i32
  %8357 = and i32 %8356, 15
  %8358 = icmp eq i32 2, %8357
  br i1 %8358, label %8359, label %8360

8359:                                             ; preds = %8352
  br label %8492

8360:                                             ; preds = %8352
  %8361 = load ptr, ptr %14, align 8, !tbaa !5
  %8362 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8361, i32 0, i32 3
  %8363 = load i8, ptr %8362, align 1, !tbaa !13
  %8364 = zext i8 %8363 to i32
  %8365 = and i32 %8364, 15
  %8366 = icmp eq i32 3, %8365
  br i1 %8366, label %8367, label %8368

8367:                                             ; preds = %8360
  br label %8490

8368:                                             ; preds = %8360
  %8369 = load ptr, ptr %14, align 8, !tbaa !5
  %8370 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8369, i32 0, i32 3
  %8371 = load i8, ptr %8370, align 1, !tbaa !13
  %8372 = zext i8 %8371 to i32
  %8373 = and i32 %8372, 15
  %8374 = icmp eq i32 4, %8373
  br i1 %8374, label %8375, label %8376

8375:                                             ; preds = %8368
  br label %8488

8376:                                             ; preds = %8368
  %8377 = load ptr, ptr %14, align 8, !tbaa !5
  %8378 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8377, i32 0, i32 3
  %8379 = load i8, ptr %8378, align 1, !tbaa !13
  %8380 = zext i8 %8379 to i32
  %8381 = and i32 %8380, 15
  %8382 = icmp eq i32 5, %8381
  br i1 %8382, label %8383, label %8384

8383:                                             ; preds = %8376
  br label %8486

8384:                                             ; preds = %8376
  %8385 = load ptr, ptr %14, align 8, !tbaa !5
  %8386 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8385, i32 0, i32 3
  %8387 = load i8, ptr %8386, align 1, !tbaa !13
  %8388 = zext i8 %8387 to i32
  %8389 = and i32 %8388, 15
  %8390 = icmp eq i32 6, %8389
  br i1 %8390, label %8391, label %8392

8391:                                             ; preds = %8384
  br label %8484

8392:                                             ; preds = %8384
  %8393 = load ptr, ptr %14, align 8, !tbaa !5
  %8394 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8393, i32 0, i32 3
  %8395 = load i8, ptr %8394, align 1, !tbaa !13
  %8396 = zext i8 %8395 to i32
  %8397 = and i32 %8396, 15
  %8398 = icmp eq i32 7, %8397
  br i1 %8398, label %8399, label %8400

8399:                                             ; preds = %8392
  br label %8482

8400:                                             ; preds = %8392
  %8401 = load ptr, ptr %14, align 8, !tbaa !5
  %8402 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8401, i32 0, i32 3
  %8403 = load i8, ptr %8402, align 1, !tbaa !13
  %8404 = zext i8 %8403 to i32
  %8405 = and i32 %8404, 15
  %8406 = icmp eq i32 8, %8405
  br i1 %8406, label %8407, label %8408

8407:                                             ; preds = %8400
  br label %8480

8408:                                             ; preds = %8400
  %8409 = load ptr, ptr %14, align 8, !tbaa !5
  %8410 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8409, i32 0, i32 3
  %8411 = load i8, ptr %8410, align 1, !tbaa !13
  %8412 = zext i8 %8411 to i32
  %8413 = and i32 %8412, 15
  %8414 = icmp eq i32 9, %8413
  br i1 %8414, label %8415, label %8416

8415:                                             ; preds = %8408
  br label %8478

8416:                                             ; preds = %8408
  %8417 = load ptr, ptr %14, align 8, !tbaa !5
  %8418 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8417, i32 0, i32 3
  %8419 = load i8, ptr %8418, align 1, !tbaa !13
  %8420 = zext i8 %8419 to i32
  %8421 = and i32 %8420, 15
  %8422 = icmp eq i32 10, %8421
  br i1 %8422, label %8423, label %8424

8423:                                             ; preds = %8416
  br label %8476

8424:                                             ; preds = %8416
  %8425 = load ptr, ptr %14, align 8, !tbaa !5
  %8426 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8425, i32 0, i32 3
  %8427 = load i8, ptr %8426, align 1, !tbaa !13
  %8428 = zext i8 %8427 to i32
  %8429 = and i32 %8428, 15
  %8430 = icmp eq i32 11, %8429
  br i1 %8430, label %8431, label %8432

8431:                                             ; preds = %8424
  br label %8474

8432:                                             ; preds = %8424
  %8433 = load ptr, ptr %14, align 8, !tbaa !5
  %8434 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8433, i32 0, i32 3
  %8435 = load i8, ptr %8434, align 1, !tbaa !13
  %8436 = zext i8 %8435 to i32
  %8437 = and i32 %8436, 15
  %8438 = icmp eq i32 12, %8437
  br i1 %8438, label %8439, label %8440

8439:                                             ; preds = %8432
  br label %8472

8440:                                             ; preds = %8432
  %8441 = load ptr, ptr %14, align 8, !tbaa !5
  %8442 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8441, i32 0, i32 3
  %8443 = load i8, ptr %8442, align 1, !tbaa !13
  %8444 = zext i8 %8443 to i32
  %8445 = and i32 %8444, 15
  %8446 = icmp eq i32 13, %8445
  br i1 %8446, label %8447, label %8448

8447:                                             ; preds = %8440
  br label %8470

8448:                                             ; preds = %8440
  %8449 = load ptr, ptr %14, align 8, !tbaa !5
  %8450 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8449, i32 0, i32 3
  %8451 = load i8, ptr %8450, align 1, !tbaa !13
  %8452 = zext i8 %8451 to i32
  %8453 = and i32 %8452, 15
  %8454 = icmp eq i32 14, %8453
  br i1 %8454, label %8455, label %8456

8455:                                             ; preds = %8448
  br label %8468

8456:                                             ; preds = %8448
  %8457 = load ptr, ptr %14, align 8, !tbaa !5
  %8458 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8457, i32 0, i32 3
  %8459 = load i8, ptr %8458, align 1, !tbaa !13
  %8460 = zext i8 %8459 to i32
  %8461 = and i32 %8460, 15
  %8462 = icmp eq i32 15, %8461
  br i1 %8462, label %8463, label %8464

8463:                                             ; preds = %8456
  br label %8466

8464:                                             ; preds = %8456
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 577, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

8465:                                             ; No predecessors!
  br label %8466

8466:                                             ; preds = %8465, %8463
  %8467 = phi i32 [ 15, %8463 ], [ 0, %8465 ]
  br label %8468

8468:                                             ; preds = %8466, %8455
  %8469 = phi i32 [ 14, %8455 ], [ %8467, %8466 ]
  br label %8470

8470:                                             ; preds = %8468, %8447
  %8471 = phi i32 [ 12, %8447 ], [ %8469, %8468 ]
  br label %8472

8472:                                             ; preds = %8470, %8439
  %8473 = phi i32 [ 12, %8439 ], [ %8471, %8470 ]
  br label %8474

8474:                                             ; preds = %8472, %8431
  %8475 = phi i32 [ 10, %8431 ], [ %8473, %8472 ]
  br label %8476

8476:                                             ; preds = %8474, %8423
  %8477 = phi i32 [ 10, %8423 ], [ %8475, %8474 ]
  br label %8478

8478:                                             ; preds = %8476, %8415
  %8479 = phi i32 [ 8, %8415 ], [ %8477, %8476 ]
  br label %8480

8480:                                             ; preds = %8478, %8407
  %8481 = phi i32 [ 8, %8407 ], [ %8479, %8478 ]
  br label %8482

8482:                                             ; preds = %8480, %8399
  %8483 = phi i32 [ 6, %8399 ], [ %8481, %8480 ]
  br label %8484

8484:                                             ; preds = %8482, %8391
  %8485 = phi i32 [ 6, %8391 ], [ %8483, %8482 ]
  br label %8486

8486:                                             ; preds = %8484, %8383
  %8487 = phi i32 [ 5, %8383 ], [ %8485, %8484 ]
  br label %8488

8488:                                             ; preds = %8486, %8375
  %8489 = phi i32 [ 4, %8375 ], [ %8487, %8486 ]
  br label %8490

8490:                                             ; preds = %8488, %8367
  %8491 = phi i32 [ 3, %8367 ], [ %8489, %8488 ]
  br label %8492

8492:                                             ; preds = %8490, %8359
  %8493 = phi i32 [ 2, %8359 ], [ %8491, %8490 ]
  br label %8494

8494:                                             ; preds = %8492, %8351
  %8495 = phi i32 [ 1, %8351 ], [ %8493, %8492 ]
  br label %8496

8496:                                             ; preds = %8494, %8343
  %8497 = phi i32 [ 0, %8343 ], [ %8495, %8494 ]
  br label %8504

8498:                                             ; preds = %8329
  %8499 = load ptr, ptr %14, align 8, !tbaa !5
  %8500 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8499, i32 0, i32 3
  %8501 = load i8, ptr %8500, align 1, !tbaa !13
  %8502 = zext i8 %8501 to i32
  %8503 = ashr i32 %8502, 4
  br label %8504

8504:                                             ; preds = %8498, %8496
  %8505 = phi i32 [ %8497, %8496 ], [ %8503, %8498 ]
  %8506 = icmp eq i32 1, %8505
  br i1 %8506, label %8507, label %8508

8507:                                             ; preds = %8504
  br label %10682

8508:                                             ; preds = %8504
  %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 = ashr i32 %8512, 4
  %8514 = icmp eq i32 0, %8513
  br i1 %8514, label %8515, label %8677

8515:                                             ; preds = %8508
  %8516 = load ptr, ptr %14, align 8, !tbaa !5
  %8517 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8516, i32 0, i32 3
  %8518 = load i8, ptr %8517, align 1, !tbaa !13
  %8519 = zext i8 %8518 to i32
  %8520 = and i32 %8519, 15
  %8521 = icmp eq i32 0, %8520
  br i1 %8521, label %8522, label %8523

8522:                                             ; preds = %8515
  br label %8675

8523:                                             ; preds = %8515
  %8524 = load ptr, ptr %14, align 8, !tbaa !5
  %8525 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8524, i32 0, i32 3
  %8526 = load i8, ptr %8525, align 1, !tbaa !13
  %8527 = zext i8 %8526 to i32
  %8528 = and i32 %8527, 15
  %8529 = icmp eq i32 1, %8528
  br i1 %8529, label %8530, label %8531

8530:                                             ; preds = %8523
  br label %8673

8531:                                             ; preds = %8523
  %8532 = load ptr, ptr %14, align 8, !tbaa !5
  %8533 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8532, i32 0, i32 3
  %8534 = load i8, ptr %8533, align 1, !tbaa !13
  %8535 = zext i8 %8534 to i32
  %8536 = and i32 %8535, 15
  %8537 = icmp eq i32 2, %8536
  br i1 %8537, label %8538, label %8539

8538:                                             ; preds = %8531
  br label %8671

8539:                                             ; preds = %8531
  %8540 = load ptr, ptr %14, align 8, !tbaa !5
  %8541 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8540, i32 0, i32 3
  %8542 = load i8, ptr %8541, align 1, !tbaa !13
  %8543 = zext i8 %8542 to i32
  %8544 = and i32 %8543, 15
  %8545 = icmp eq i32 3, %8544
  br i1 %8545, label %8546, label %8547

8546:                                             ; preds = %8539
  br label %8669

8547:                                             ; preds = %8539
  %8548 = load ptr, ptr %14, align 8, !tbaa !5
  %8549 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8548, i32 0, i32 3
  %8550 = load i8, ptr %8549, align 1, !tbaa !13
  %8551 = zext i8 %8550 to i32
  %8552 = and i32 %8551, 15
  %8553 = icmp eq i32 4, %8552
  br i1 %8553, label %8554, label %8555

8554:                                             ; preds = %8547
  br label %8667

8555:                                             ; preds = %8547
  %8556 = load ptr, ptr %14, align 8, !tbaa !5
  %8557 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8556, i32 0, i32 3
  %8558 = load i8, ptr %8557, align 1, !tbaa !13
  %8559 = zext i8 %8558 to i32
  %8560 = and i32 %8559, 15
  %8561 = icmp eq i32 5, %8560
  br i1 %8561, label %8562, label %8563

8562:                                             ; preds = %8555
  br label %8665

8563:                                             ; preds = %8555
  %8564 = load ptr, ptr %14, align 8, !tbaa !5
  %8565 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8564, i32 0, i32 3
  %8566 = load i8, ptr %8565, align 1, !tbaa !13
  %8567 = zext i8 %8566 to i32
  %8568 = and i32 %8567, 15
  %8569 = icmp eq i32 6, %8568
  br i1 %8569, label %8570, label %8571

8570:                                             ; preds = %8563
  br label %8663

8571:                                             ; preds = %8563
  %8572 = load ptr, ptr %14, align 8, !tbaa !5
  %8573 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8572, i32 0, i32 3
  %8574 = load i8, ptr %8573, align 1, !tbaa !13
  %8575 = zext i8 %8574 to i32
  %8576 = and i32 %8575, 15
  %8577 = icmp eq i32 7, %8576
  br i1 %8577, label %8578, label %8579

8578:                                             ; preds = %8571
  br label %8661

8579:                                             ; preds = %8571
  %8580 = load ptr, ptr %14, align 8, !tbaa !5
  %8581 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8580, i32 0, i32 3
  %8582 = load i8, ptr %8581, align 1, !tbaa !13
  %8583 = zext i8 %8582 to i32
  %8584 = and i32 %8583, 15
  %8585 = icmp eq i32 8, %8584
  br i1 %8585, label %8586, label %8587

8586:                                             ; preds = %8579
  br label %8659

8587:                                             ; preds = %8579
  %8588 = load ptr, ptr %14, align 8, !tbaa !5
  %8589 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8588, i32 0, i32 3
  %8590 = load i8, ptr %8589, align 1, !tbaa !13
  %8591 = zext i8 %8590 to i32
  %8592 = and i32 %8591, 15
  %8593 = icmp eq i32 9, %8592
  br i1 %8593, label %8594, label %8595

8594:                                             ; preds = %8587
  br label %8657

8595:                                             ; preds = %8587
  %8596 = load ptr, ptr %14, align 8, !tbaa !5
  %8597 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8596, i32 0, i32 3
  %8598 = load i8, ptr %8597, align 1, !tbaa !13
  %8599 = zext i8 %8598 to i32
  %8600 = and i32 %8599, 15
  %8601 = icmp eq i32 10, %8600
  br i1 %8601, label %8602, label %8603

8602:                                             ; preds = %8595
  br label %8655

8603:                                             ; preds = %8595
  %8604 = load ptr, ptr %14, align 8, !tbaa !5
  %8605 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8604, i32 0, i32 3
  %8606 = load i8, ptr %8605, align 1, !tbaa !13
  %8607 = zext i8 %8606 to i32
  %8608 = and i32 %8607, 15
  %8609 = icmp eq i32 11, %8608
  br i1 %8609, label %8610, label %8611

8610:                                             ; preds = %8603
  br label %8653

8611:                                             ; preds = %8603
  %8612 = load ptr, ptr %14, align 8, !tbaa !5
  %8613 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8612, i32 0, i32 3
  %8614 = load i8, ptr %8613, align 1, !tbaa !13
  %8615 = zext i8 %8614 to i32
  %8616 = and i32 %8615, 15
  %8617 = icmp eq i32 12, %8616
  br i1 %8617, label %8618, label %8619

8618:                                             ; preds = %8611
  br label %8651

8619:                                             ; preds = %8611
  %8620 = load ptr, ptr %14, align 8, !tbaa !5
  %8621 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8620, i32 0, i32 3
  %8622 = load i8, ptr %8621, align 1, !tbaa !13
  %8623 = zext i8 %8622 to i32
  %8624 = and i32 %8623, 15
  %8625 = icmp eq i32 13, %8624
  br i1 %8625, label %8626, label %8627

8626:                                             ; preds = %8619
  br label %8649

8627:                                             ; preds = %8619
  %8628 = load ptr, ptr %14, align 8, !tbaa !5
  %8629 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8628, i32 0, i32 3
  %8630 = load i8, ptr %8629, align 1, !tbaa !13
  %8631 = zext i8 %8630 to i32
  %8632 = and i32 %8631, 15
  %8633 = icmp eq i32 14, %8632
  br i1 %8633, label %8634, label %8635

8634:                                             ; preds = %8627
  br label %8647

8635:                                             ; preds = %8627
  %8636 = load ptr, ptr %14, align 8, !tbaa !5
  %8637 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8636, i32 0, i32 3
  %8638 = load i8, ptr %8637, align 1, !tbaa !13
  %8639 = zext i8 %8638 to i32
  %8640 = and i32 %8639, 15
  %8641 = icmp eq i32 15, %8640
  br i1 %8641, label %8642, label %8643

8642:                                             ; preds = %8635
  br label %8645

8643:                                             ; preds = %8635
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 577, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

8644:                                             ; No predecessors!
  br label %8645

8645:                                             ; preds = %8644, %8642
  %8646 = phi i32 [ 15, %8642 ], [ 0, %8644 ]
  br label %8647

8647:                                             ; preds = %8645, %8634
  %8648 = phi i32 [ 14, %8634 ], [ %8646, %8645 ]
  br label %8649

8649:                                             ; preds = %8647, %8626
  %8650 = phi i32 [ 12, %8626 ], [ %8648, %8647 ]
  br label %8651

8651:                                             ; preds = %8649, %8618
  %8652 = phi i32 [ 12, %8618 ], [ %8650, %8649 ]
  br label %8653

8653:                                             ; preds = %8651, %8610
  %8654 = phi i32 [ 10, %8610 ], [ %8652, %8651 ]
  br label %8655

8655:                                             ; preds = %8653, %8602
  %8656 = phi i32 [ 10, %8602 ], [ %8654, %8653 ]
  br label %8657

8657:                                             ; preds = %8655, %8594
  %8658 = phi i32 [ 8, %8594 ], [ %8656, %8655 ]
  br label %8659

8659:                                             ; preds = %8657, %8586
  %8660 = phi i32 [ 8, %8586 ], [ %8658, %8657 ]
  br label %8661

8661:                                             ; preds = %8659, %8578
  %8662 = phi i32 [ 6, %8578 ], [ %8660, %8659 ]
  br label %8663

8663:                                             ; preds = %8661, %8570
  %8664 = phi i32 [ 6, %8570 ], [ %8662, %8661 ]
  br label %8665

8665:                                             ; preds = %8663, %8562
  %8666 = phi i32 [ 5, %8562 ], [ %8664, %8663 ]
  br label %8667

8667:                                             ; preds = %8665, %8554
  %8668 = phi i32 [ 4, %8554 ], [ %8666, %8665 ]
  br label %8669

8669:                                             ; preds = %8667, %8546
  %8670 = phi i32 [ 3, %8546 ], [ %8668, %8667 ]
  br label %8671

8671:                                             ; preds = %8669, %8538
  %8672 = phi i32 [ 2, %8538 ], [ %8670, %8669 ]
  br label %8673

8673:                                             ; preds = %8671, %8530
  %8674 = phi i32 [ 1, %8530 ], [ %8672, %8671 ]
  br label %8675

8675:                                             ; preds = %8673, %8522
  %8676 = phi i32 [ 0, %8522 ], [ %8674, %8673 ]
  br label %8683

8677:                                             ; preds = %8508
  %8678 = load ptr, ptr %14, align 8, !tbaa !5
  %8679 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8678, i32 0, i32 3
  %8680 = load i8, ptr %8679, align 1, !tbaa !13
  %8681 = zext i8 %8680 to i32
  %8682 = ashr i32 %8681, 4
  br label %8683

8683:                                             ; preds = %8677, %8675
  %8684 = phi i32 [ %8676, %8675 ], [ %8682, %8677 ]
  %8685 = icmp eq i32 2, %8684
  br i1 %8685, label %8686, label %8687

8686:                                             ; preds = %8683
  br label %10680

8687:                                             ; preds = %8683
  %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 = ashr i32 %8691, 4
  %8693 = icmp eq i32 0, %8692
  br i1 %8693, label %8694, label %8856

8694:                                             ; preds = %8687
  %8695 = load ptr, ptr %14, align 8, !tbaa !5
  %8696 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8695, i32 0, i32 3
  %8697 = load i8, ptr %8696, align 1, !tbaa !13
  %8698 = zext i8 %8697 to i32
  %8699 = and i32 %8698, 15
  %8700 = icmp eq i32 0, %8699
  br i1 %8700, label %8701, label %8702

8701:                                             ; preds = %8694
  br label %8854

8702:                                             ; preds = %8694
  %8703 = load ptr, ptr %14, align 8, !tbaa !5
  %8704 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8703, i32 0, i32 3
  %8705 = load i8, ptr %8704, align 1, !tbaa !13
  %8706 = zext i8 %8705 to i32
  %8707 = and i32 %8706, 15
  %8708 = icmp eq i32 1, %8707
  br i1 %8708, label %8709, label %8710

8709:                                             ; preds = %8702
  br label %8852

8710:                                             ; preds = %8702
  %8711 = load ptr, ptr %14, align 8, !tbaa !5
  %8712 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8711, i32 0, i32 3
  %8713 = load i8, ptr %8712, align 1, !tbaa !13
  %8714 = zext i8 %8713 to i32
  %8715 = and i32 %8714, 15
  %8716 = icmp eq i32 2, %8715
  br i1 %8716, label %8717, label %8718

8717:                                             ; preds = %8710
  br label %8850

8718:                                             ; preds = %8710
  %8719 = load ptr, ptr %14, align 8, !tbaa !5
  %8720 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8719, i32 0, i32 3
  %8721 = load i8, ptr %8720, align 1, !tbaa !13
  %8722 = zext i8 %8721 to i32
  %8723 = and i32 %8722, 15
  %8724 = icmp eq i32 3, %8723
  br i1 %8724, label %8725, label %8726

8725:                                             ; preds = %8718
  br label %8848

8726:                                             ; preds = %8718
  %8727 = load ptr, ptr %14, align 8, !tbaa !5
  %8728 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8727, i32 0, i32 3
  %8729 = load i8, ptr %8728, align 1, !tbaa !13
  %8730 = zext i8 %8729 to i32
  %8731 = and i32 %8730, 15
  %8732 = icmp eq i32 4, %8731
  br i1 %8732, label %8733, label %8734

8733:                                             ; preds = %8726
  br label %8846

8734:                                             ; preds = %8726
  %8735 = load ptr, ptr %14, align 8, !tbaa !5
  %8736 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8735, i32 0, i32 3
  %8737 = load i8, ptr %8736, align 1, !tbaa !13
  %8738 = zext i8 %8737 to i32
  %8739 = and i32 %8738, 15
  %8740 = icmp eq i32 5, %8739
  br i1 %8740, label %8741, label %8742

8741:                                             ; preds = %8734
  br label %8844

8742:                                             ; preds = %8734
  %8743 = load ptr, ptr %14, align 8, !tbaa !5
  %8744 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8743, i32 0, i32 3
  %8745 = load i8, ptr %8744, align 1, !tbaa !13
  %8746 = zext i8 %8745 to i32
  %8747 = and i32 %8746, 15
  %8748 = icmp eq i32 6, %8747
  br i1 %8748, label %8749, label %8750

8749:                                             ; preds = %8742
  br label %8842

8750:                                             ; preds = %8742
  %8751 = load ptr, ptr %14, align 8, !tbaa !5
  %8752 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8751, i32 0, i32 3
  %8753 = load i8, ptr %8752, align 1, !tbaa !13
  %8754 = zext i8 %8753 to i32
  %8755 = and i32 %8754, 15
  %8756 = icmp eq i32 7, %8755
  br i1 %8756, label %8757, label %8758

8757:                                             ; preds = %8750
  br label %8840

8758:                                             ; preds = %8750
  %8759 = load ptr, ptr %14, align 8, !tbaa !5
  %8760 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8759, i32 0, i32 3
  %8761 = load i8, ptr %8760, align 1, !tbaa !13
  %8762 = zext i8 %8761 to i32
  %8763 = and i32 %8762, 15
  %8764 = icmp eq i32 8, %8763
  br i1 %8764, label %8765, label %8766

8765:                                             ; preds = %8758
  br label %8838

8766:                                             ; preds = %8758
  %8767 = load ptr, ptr %14, align 8, !tbaa !5
  %8768 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8767, i32 0, i32 3
  %8769 = load i8, ptr %8768, align 1, !tbaa !13
  %8770 = zext i8 %8769 to i32
  %8771 = and i32 %8770, 15
  %8772 = icmp eq i32 9, %8771
  br i1 %8772, label %8773, label %8774

8773:                                             ; preds = %8766
  br label %8836

8774:                                             ; preds = %8766
  %8775 = load ptr, ptr %14, align 8, !tbaa !5
  %8776 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8775, i32 0, i32 3
  %8777 = load i8, ptr %8776, align 1, !tbaa !13
  %8778 = zext i8 %8777 to i32
  %8779 = and i32 %8778, 15
  %8780 = icmp eq i32 10, %8779
  br i1 %8780, label %8781, label %8782

8781:                                             ; preds = %8774
  br label %8834

8782:                                             ; preds = %8774
  %8783 = load ptr, ptr %14, align 8, !tbaa !5
  %8784 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8783, i32 0, i32 3
  %8785 = load i8, ptr %8784, align 1, !tbaa !13
  %8786 = zext i8 %8785 to i32
  %8787 = and i32 %8786, 15
  %8788 = icmp eq i32 11, %8787
  br i1 %8788, label %8789, label %8790

8789:                                             ; preds = %8782
  br label %8832

8790:                                             ; preds = %8782
  %8791 = load ptr, ptr %14, align 8, !tbaa !5
  %8792 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8791, i32 0, i32 3
  %8793 = load i8, ptr %8792, align 1, !tbaa !13
  %8794 = zext i8 %8793 to i32
  %8795 = and i32 %8794, 15
  %8796 = icmp eq i32 12, %8795
  br i1 %8796, label %8797, label %8798

8797:                                             ; preds = %8790
  br label %8830

8798:                                             ; preds = %8790
  %8799 = load ptr, ptr %14, align 8, !tbaa !5
  %8800 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8799, i32 0, i32 3
  %8801 = load i8, ptr %8800, align 1, !tbaa !13
  %8802 = zext i8 %8801 to i32
  %8803 = and i32 %8802, 15
  %8804 = icmp eq i32 13, %8803
  br i1 %8804, label %8805, label %8806

8805:                                             ; preds = %8798
  br label %8828

8806:                                             ; preds = %8798
  %8807 = load ptr, ptr %14, align 8, !tbaa !5
  %8808 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8807, i32 0, i32 3
  %8809 = load i8, ptr %8808, align 1, !tbaa !13
  %8810 = zext i8 %8809 to i32
  %8811 = and i32 %8810, 15
  %8812 = icmp eq i32 14, %8811
  br i1 %8812, label %8813, label %8814

8813:                                             ; preds = %8806
  br label %8826

8814:                                             ; preds = %8806
  %8815 = load ptr, ptr %14, align 8, !tbaa !5
  %8816 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8815, i32 0, i32 3
  %8817 = load i8, ptr %8816, align 1, !tbaa !13
  %8818 = zext i8 %8817 to i32
  %8819 = and i32 %8818, 15
  %8820 = icmp eq i32 15, %8819
  br i1 %8820, label %8821, label %8822

8821:                                             ; preds = %8814
  br label %8824

8822:                                             ; preds = %8814
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 577, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

8823:                                             ; No predecessors!
  br label %8824

8824:                                             ; preds = %8823, %8821
  %8825 = phi i32 [ 15, %8821 ], [ 0, %8823 ]
  br label %8826

8826:                                             ; preds = %8824, %8813
  %8827 = phi i32 [ 14, %8813 ], [ %8825, %8824 ]
  br label %8828

8828:                                             ; preds = %8826, %8805
  %8829 = phi i32 [ 12, %8805 ], [ %8827, %8826 ]
  br label %8830

8830:                                             ; preds = %8828, %8797
  %8831 = phi i32 [ 12, %8797 ], [ %8829, %8828 ]
  br label %8832

8832:                                             ; preds = %8830, %8789
  %8833 = phi i32 [ 10, %8789 ], [ %8831, %8830 ]
  br label %8834

8834:                                             ; preds = %8832, %8781
  %8835 = phi i32 [ 10, %8781 ], [ %8833, %8832 ]
  br label %8836

8836:                                             ; preds = %8834, %8773
  %8837 = phi i32 [ 8, %8773 ], [ %8835, %8834 ]
  br label %8838

8838:                                             ; preds = %8836, %8765
  %8839 = phi i32 [ 8, %8765 ], [ %8837, %8836 ]
  br label %8840

8840:                                             ; preds = %8838, %8757
  %8841 = phi i32 [ 6, %8757 ], [ %8839, %8838 ]
  br label %8842

8842:                                             ; preds = %8840, %8749
  %8843 = phi i32 [ 6, %8749 ], [ %8841, %8840 ]
  br label %8844

8844:                                             ; preds = %8842, %8741
  %8845 = phi i32 [ 5, %8741 ], [ %8843, %8842 ]
  br label %8846

8846:                                             ; preds = %8844, %8733
  %8847 = phi i32 [ 4, %8733 ], [ %8845, %8844 ]
  br label %8848

8848:                                             ; preds = %8846, %8725
  %8849 = phi i32 [ 3, %8725 ], [ %8847, %8846 ]
  br label %8850

8850:                                             ; preds = %8848, %8717
  %8851 = phi i32 [ 2, %8717 ], [ %8849, %8848 ]
  br label %8852

8852:                                             ; preds = %8850, %8709
  %8853 = phi i32 [ 1, %8709 ], [ %8851, %8850 ]
  br label %8854

8854:                                             ; preds = %8852, %8701
  %8855 = phi i32 [ 0, %8701 ], [ %8853, %8852 ]
  br label %8862

8856:                                             ; preds = %8687
  %8857 = load ptr, ptr %14, align 8, !tbaa !5
  %8858 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8857, i32 0, i32 3
  %8859 = load i8, ptr %8858, align 1, !tbaa !13
  %8860 = zext i8 %8859 to i32
  %8861 = ashr i32 %8860, 4
  br label %8862

8862:                                             ; preds = %8856, %8854
  %8863 = phi i32 [ %8855, %8854 ], [ %8861, %8856 ]
  %8864 = icmp eq i32 3, %8863
  br i1 %8864, label %8865, label %8866

8865:                                             ; preds = %8862
  br label %10678

8866:                                             ; preds = %8862
  %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 = ashr i32 %8870, 4
  %8872 = icmp eq i32 0, %8871
  br i1 %8872, label %8873, label %9035

8873:                                             ; preds = %8866
  %8874 = load ptr, ptr %14, align 8, !tbaa !5
  %8875 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8874, i32 0, i32 3
  %8876 = load i8, ptr %8875, align 1, !tbaa !13
  %8877 = zext i8 %8876 to i32
  %8878 = and i32 %8877, 15
  %8879 = icmp eq i32 0, %8878
  br i1 %8879, label %8880, label %8881

8880:                                             ; preds = %8873
  br label %9033

8881:                                             ; preds = %8873
  %8882 = load ptr, ptr %14, align 8, !tbaa !5
  %8883 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8882, i32 0, i32 3
  %8884 = load i8, ptr %8883, align 1, !tbaa !13
  %8885 = zext i8 %8884 to i32
  %8886 = and i32 %8885, 15
  %8887 = icmp eq i32 1, %8886
  br i1 %8887, label %8888, label %8889

8888:                                             ; preds = %8881
  br label %9031

8889:                                             ; preds = %8881
  %8890 = load ptr, ptr %14, align 8, !tbaa !5
  %8891 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8890, i32 0, i32 3
  %8892 = load i8, ptr %8891, align 1, !tbaa !13
  %8893 = zext i8 %8892 to i32
  %8894 = and i32 %8893, 15
  %8895 = icmp eq i32 2, %8894
  br i1 %8895, label %8896, label %8897

8896:                                             ; preds = %8889
  br label %9029

8897:                                             ; preds = %8889
  %8898 = load ptr, ptr %14, align 8, !tbaa !5
  %8899 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8898, i32 0, i32 3
  %8900 = load i8, ptr %8899, align 1, !tbaa !13
  %8901 = zext i8 %8900 to i32
  %8902 = and i32 %8901, 15
  %8903 = icmp eq i32 3, %8902
  br i1 %8903, label %8904, label %8905

8904:                                             ; preds = %8897
  br label %9027

8905:                                             ; preds = %8897
  %8906 = load ptr, ptr %14, align 8, !tbaa !5
  %8907 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8906, i32 0, i32 3
  %8908 = load i8, ptr %8907, align 1, !tbaa !13
  %8909 = zext i8 %8908 to i32
  %8910 = and i32 %8909, 15
  %8911 = icmp eq i32 4, %8910
  br i1 %8911, label %8912, label %8913

8912:                                             ; preds = %8905
  br label %9025

8913:                                             ; preds = %8905
  %8914 = load ptr, ptr %14, align 8, !tbaa !5
  %8915 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8914, i32 0, i32 3
  %8916 = load i8, ptr %8915, align 1, !tbaa !13
  %8917 = zext i8 %8916 to i32
  %8918 = and i32 %8917, 15
  %8919 = icmp eq i32 5, %8918
  br i1 %8919, label %8920, label %8921

8920:                                             ; preds = %8913
  br label %9023

8921:                                             ; preds = %8913
  %8922 = load ptr, ptr %14, align 8, !tbaa !5
  %8923 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8922, i32 0, i32 3
  %8924 = load i8, ptr %8923, align 1, !tbaa !13
  %8925 = zext i8 %8924 to i32
  %8926 = and i32 %8925, 15
  %8927 = icmp eq i32 6, %8926
  br i1 %8927, label %8928, label %8929

8928:                                             ; preds = %8921
  br label %9021

8929:                                             ; preds = %8921
  %8930 = load ptr, ptr %14, align 8, !tbaa !5
  %8931 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8930, i32 0, i32 3
  %8932 = load i8, ptr %8931, align 1, !tbaa !13
  %8933 = zext i8 %8932 to i32
  %8934 = and i32 %8933, 15
  %8935 = icmp eq i32 7, %8934
  br i1 %8935, label %8936, label %8937

8936:                                             ; preds = %8929
  br label %9019

8937:                                             ; preds = %8929
  %8938 = load ptr, ptr %14, align 8, !tbaa !5
  %8939 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8938, i32 0, i32 3
  %8940 = load i8, ptr %8939, align 1, !tbaa !13
  %8941 = zext i8 %8940 to i32
  %8942 = and i32 %8941, 15
  %8943 = icmp eq i32 8, %8942
  br i1 %8943, label %8944, label %8945

8944:                                             ; preds = %8937
  br label %9017

8945:                                             ; preds = %8937
  %8946 = load ptr, ptr %14, align 8, !tbaa !5
  %8947 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8946, i32 0, i32 3
  %8948 = load i8, ptr %8947, align 1, !tbaa !13
  %8949 = zext i8 %8948 to i32
  %8950 = and i32 %8949, 15
  %8951 = icmp eq i32 9, %8950
  br i1 %8951, label %8952, label %8953

8952:                                             ; preds = %8945
  br label %9015

8953:                                             ; preds = %8945
  %8954 = load ptr, ptr %14, align 8, !tbaa !5
  %8955 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8954, i32 0, i32 3
  %8956 = load i8, ptr %8955, align 1, !tbaa !13
  %8957 = zext i8 %8956 to i32
  %8958 = and i32 %8957, 15
  %8959 = icmp eq i32 10, %8958
  br i1 %8959, label %8960, label %8961

8960:                                             ; preds = %8953
  br label %9013

8961:                                             ; preds = %8953
  %8962 = load ptr, ptr %14, align 8, !tbaa !5
  %8963 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8962, i32 0, i32 3
  %8964 = load i8, ptr %8963, align 1, !tbaa !13
  %8965 = zext i8 %8964 to i32
  %8966 = and i32 %8965, 15
  %8967 = icmp eq i32 11, %8966
  br i1 %8967, label %8968, label %8969

8968:                                             ; preds = %8961
  br label %9011

8969:                                             ; preds = %8961
  %8970 = load ptr, ptr %14, align 8, !tbaa !5
  %8971 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8970, i32 0, i32 3
  %8972 = load i8, ptr %8971, align 1, !tbaa !13
  %8973 = zext i8 %8972 to i32
  %8974 = and i32 %8973, 15
  %8975 = icmp eq i32 12, %8974
  br i1 %8975, label %8976, label %8977

8976:                                             ; preds = %8969
  br label %9009

8977:                                             ; preds = %8969
  %8978 = load ptr, ptr %14, align 8, !tbaa !5
  %8979 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8978, i32 0, i32 3
  %8980 = load i8, ptr %8979, align 1, !tbaa !13
  %8981 = zext i8 %8980 to i32
  %8982 = and i32 %8981, 15
  %8983 = icmp eq i32 13, %8982
  br i1 %8983, label %8984, label %8985

8984:                                             ; preds = %8977
  br label %9007

8985:                                             ; preds = %8977
  %8986 = load ptr, ptr %14, align 8, !tbaa !5
  %8987 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8986, i32 0, i32 3
  %8988 = load i8, ptr %8987, align 1, !tbaa !13
  %8989 = zext i8 %8988 to i32
  %8990 = and i32 %8989, 15
  %8991 = icmp eq i32 14, %8990
  br i1 %8991, label %8992, label %8993

8992:                                             ; preds = %8985
  br label %9005

8993:                                             ; preds = %8985
  %8994 = load ptr, ptr %14, align 8, !tbaa !5
  %8995 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %8994, i32 0, i32 3
  %8996 = load i8, ptr %8995, align 1, !tbaa !13
  %8997 = zext i8 %8996 to i32
  %8998 = and i32 %8997, 15
  %8999 = icmp eq i32 15, %8998
  br i1 %8999, label %9000, label %9001

9000:                                             ; preds = %8993
  br label %9003

9001:                                             ; preds = %8993
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 577, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

9002:                                             ; No predecessors!
  br label %9003

9003:                                             ; preds = %9002, %9000
  %9004 = phi i32 [ 15, %9000 ], [ 0, %9002 ]
  br label %9005

9005:                                             ; preds = %9003, %8992
  %9006 = phi i32 [ 14, %8992 ], [ %9004, %9003 ]
  br label %9007

9007:                                             ; preds = %9005, %8984
  %9008 = phi i32 [ 12, %8984 ], [ %9006, %9005 ]
  br label %9009

9009:                                             ; preds = %9007, %8976
  %9010 = phi i32 [ 12, %8976 ], [ %9008, %9007 ]
  br label %9011

9011:                                             ; preds = %9009, %8968
  %9012 = phi i32 [ 10, %8968 ], [ %9010, %9009 ]
  br label %9013

9013:                                             ; preds = %9011, %8960
  %9014 = phi i32 [ 10, %8960 ], [ %9012, %9011 ]
  br label %9015

9015:                                             ; preds = %9013, %8952
  %9016 = phi i32 [ 8, %8952 ], [ %9014, %9013 ]
  br label %9017

9017:                                             ; preds = %9015, %8944
  %9018 = phi i32 [ 8, %8944 ], [ %9016, %9015 ]
  br label %9019

9019:                                             ; preds = %9017, %8936
  %9020 = phi i32 [ 6, %8936 ], [ %9018, %9017 ]
  br label %9021

9021:                                             ; preds = %9019, %8928
  %9022 = phi i32 [ 6, %8928 ], [ %9020, %9019 ]
  br label %9023

9023:                                             ; preds = %9021, %8920
  %9024 = phi i32 [ 5, %8920 ], [ %9022, %9021 ]
  br label %9025

9025:                                             ; preds = %9023, %8912
  %9026 = phi i32 [ 4, %8912 ], [ %9024, %9023 ]
  br label %9027

9027:                                             ; preds = %9025, %8904
  %9028 = phi i32 [ 3, %8904 ], [ %9026, %9025 ]
  br label %9029

9029:                                             ; preds = %9027, %8896
  %9030 = phi i32 [ 2, %8896 ], [ %9028, %9027 ]
  br label %9031

9031:                                             ; preds = %9029, %8888
  %9032 = phi i32 [ 1, %8888 ], [ %9030, %9029 ]
  br label %9033

9033:                                             ; preds = %9031, %8880
  %9034 = phi i32 [ 0, %8880 ], [ %9032, %9031 ]
  br label %9041

9035:                                             ; preds = %8866
  %9036 = load ptr, ptr %14, align 8, !tbaa !5
  %9037 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9036, i32 0, i32 3
  %9038 = load i8, ptr %9037, align 1, !tbaa !13
  %9039 = zext i8 %9038 to i32
  %9040 = ashr i32 %9039, 4
  br label %9041

9041:                                             ; preds = %9035, %9033
  %9042 = phi i32 [ %9034, %9033 ], [ %9040, %9035 ]
  %9043 = icmp eq i32 4, %9042
  br i1 %9043, label %9044, label %9045

9044:                                             ; preds = %9041
  br label %10676

9045:                                             ; preds = %9041
  %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 = ashr i32 %9049, 4
  %9051 = icmp eq i32 0, %9050
  br i1 %9051, label %9052, label %9214

9052:                                             ; preds = %9045
  %9053 = load ptr, ptr %14, align 8, !tbaa !5
  %9054 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9053, i32 0, i32 3
  %9055 = load i8, ptr %9054, align 1, !tbaa !13
  %9056 = zext i8 %9055 to i32
  %9057 = and i32 %9056, 15
  %9058 = icmp eq i32 0, %9057
  br i1 %9058, label %9059, label %9060

9059:                                             ; preds = %9052
  br label %9212

9060:                                             ; preds = %9052
  %9061 = load ptr, ptr %14, align 8, !tbaa !5
  %9062 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9061, i32 0, i32 3
  %9063 = load i8, ptr %9062, align 1, !tbaa !13
  %9064 = zext i8 %9063 to i32
  %9065 = and i32 %9064, 15
  %9066 = icmp eq i32 1, %9065
  br i1 %9066, label %9067, label %9068

9067:                                             ; preds = %9060
  br label %9210

9068:                                             ; preds = %9060
  %9069 = load ptr, ptr %14, align 8, !tbaa !5
  %9070 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9069, i32 0, i32 3
  %9071 = load i8, ptr %9070, align 1, !tbaa !13
  %9072 = zext i8 %9071 to i32
  %9073 = and i32 %9072, 15
  %9074 = icmp eq i32 2, %9073
  br i1 %9074, label %9075, label %9076

9075:                                             ; preds = %9068
  br label %9208

9076:                                             ; preds = %9068
  %9077 = load ptr, ptr %14, align 8, !tbaa !5
  %9078 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9077, i32 0, i32 3
  %9079 = load i8, ptr %9078, align 1, !tbaa !13
  %9080 = zext i8 %9079 to i32
  %9081 = and i32 %9080, 15
  %9082 = icmp eq i32 3, %9081
  br i1 %9082, label %9083, label %9084

9083:                                             ; preds = %9076
  br label %9206

9084:                                             ; preds = %9076
  %9085 = load ptr, ptr %14, align 8, !tbaa !5
  %9086 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9085, i32 0, i32 3
  %9087 = load i8, ptr %9086, align 1, !tbaa !13
  %9088 = zext i8 %9087 to i32
  %9089 = and i32 %9088, 15
  %9090 = icmp eq i32 4, %9089
  br i1 %9090, label %9091, label %9092

9091:                                             ; preds = %9084
  br label %9204

9092:                                             ; preds = %9084
  %9093 = load ptr, ptr %14, align 8, !tbaa !5
  %9094 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9093, i32 0, i32 3
  %9095 = load i8, ptr %9094, align 1, !tbaa !13
  %9096 = zext i8 %9095 to i32
  %9097 = and i32 %9096, 15
  %9098 = icmp eq i32 5, %9097
  br i1 %9098, label %9099, label %9100

9099:                                             ; preds = %9092
  br label %9202

9100:                                             ; preds = %9092
  %9101 = load ptr, ptr %14, align 8, !tbaa !5
  %9102 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9101, i32 0, i32 3
  %9103 = load i8, ptr %9102, align 1, !tbaa !13
  %9104 = zext i8 %9103 to i32
  %9105 = and i32 %9104, 15
  %9106 = icmp eq i32 6, %9105
  br i1 %9106, label %9107, label %9108

9107:                                             ; preds = %9100
  br label %9200

9108:                                             ; preds = %9100
  %9109 = load ptr, ptr %14, align 8, !tbaa !5
  %9110 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9109, i32 0, i32 3
  %9111 = load i8, ptr %9110, align 1, !tbaa !13
  %9112 = zext i8 %9111 to i32
  %9113 = and i32 %9112, 15
  %9114 = icmp eq i32 7, %9113
  br i1 %9114, label %9115, label %9116

9115:                                             ; preds = %9108
  br label %9198

9116:                                             ; preds = %9108
  %9117 = load ptr, ptr %14, align 8, !tbaa !5
  %9118 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9117, i32 0, i32 3
  %9119 = load i8, ptr %9118, align 1, !tbaa !13
  %9120 = zext i8 %9119 to i32
  %9121 = and i32 %9120, 15
  %9122 = icmp eq i32 8, %9121
  br i1 %9122, label %9123, label %9124

9123:                                             ; preds = %9116
  br label %9196

9124:                                             ; preds = %9116
  %9125 = load ptr, ptr %14, align 8, !tbaa !5
  %9126 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9125, i32 0, i32 3
  %9127 = load i8, ptr %9126, align 1, !tbaa !13
  %9128 = zext i8 %9127 to i32
  %9129 = and i32 %9128, 15
  %9130 = icmp eq i32 9, %9129
  br i1 %9130, label %9131, label %9132

9131:                                             ; preds = %9124
  br label %9194

9132:                                             ; preds = %9124
  %9133 = load ptr, ptr %14, align 8, !tbaa !5
  %9134 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9133, i32 0, i32 3
  %9135 = load i8, ptr %9134, align 1, !tbaa !13
  %9136 = zext i8 %9135 to i32
  %9137 = and i32 %9136, 15
  %9138 = icmp eq i32 10, %9137
  br i1 %9138, label %9139, label %9140

9139:                                             ; preds = %9132
  br label %9192

9140:                                             ; preds = %9132
  %9141 = load ptr, ptr %14, align 8, !tbaa !5
  %9142 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9141, i32 0, i32 3
  %9143 = load i8, ptr %9142, align 1, !tbaa !13
  %9144 = zext i8 %9143 to i32
  %9145 = and i32 %9144, 15
  %9146 = icmp eq i32 11, %9145
  br i1 %9146, label %9147, label %9148

9147:                                             ; preds = %9140
  br label %9190

9148:                                             ; preds = %9140
  %9149 = load ptr, ptr %14, align 8, !tbaa !5
  %9150 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9149, i32 0, i32 3
  %9151 = load i8, ptr %9150, align 1, !tbaa !13
  %9152 = zext i8 %9151 to i32
  %9153 = and i32 %9152, 15
  %9154 = icmp eq i32 12, %9153
  br i1 %9154, label %9155, label %9156

9155:                                             ; preds = %9148
  br label %9188

9156:                                             ; preds = %9148
  %9157 = load ptr, ptr %14, align 8, !tbaa !5
  %9158 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9157, i32 0, i32 3
  %9159 = load i8, ptr %9158, align 1, !tbaa !13
  %9160 = zext i8 %9159 to i32
  %9161 = and i32 %9160, 15
  %9162 = icmp eq i32 13, %9161
  br i1 %9162, label %9163, label %9164

9163:                                             ; preds = %9156
  br label %9186

9164:                                             ; preds = %9156
  %9165 = load ptr, ptr %14, align 8, !tbaa !5
  %9166 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9165, i32 0, i32 3
  %9167 = load i8, ptr %9166, align 1, !tbaa !13
  %9168 = zext i8 %9167 to i32
  %9169 = and i32 %9168, 15
  %9170 = icmp eq i32 14, %9169
  br i1 %9170, label %9171, label %9172

9171:                                             ; preds = %9164
  br label %9184

9172:                                             ; preds = %9164
  %9173 = load ptr, ptr %14, align 8, !tbaa !5
  %9174 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9173, i32 0, i32 3
  %9175 = load i8, ptr %9174, align 1, !tbaa !13
  %9176 = zext i8 %9175 to i32
  %9177 = and i32 %9176, 15
  %9178 = icmp eq i32 15, %9177
  br i1 %9178, label %9179, label %9180

9179:                                             ; preds = %9172
  br label %9182

9180:                                             ; preds = %9172
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 577, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

9181:                                             ; No predecessors!
  br label %9182

9182:                                             ; preds = %9181, %9179
  %9183 = phi i32 [ 15, %9179 ], [ 0, %9181 ]
  br label %9184

9184:                                             ; preds = %9182, %9171
  %9185 = phi i32 [ 14, %9171 ], [ %9183, %9182 ]
  br label %9186

9186:                                             ; preds = %9184, %9163
  %9187 = phi i32 [ 12, %9163 ], [ %9185, %9184 ]
  br label %9188

9188:                                             ; preds = %9186, %9155
  %9189 = phi i32 [ 12, %9155 ], [ %9187, %9186 ]
  br label %9190

9190:                                             ; preds = %9188, %9147
  %9191 = phi i32 [ 10, %9147 ], [ %9189, %9188 ]
  br label %9192

9192:                                             ; preds = %9190, %9139
  %9193 = phi i32 [ 10, %9139 ], [ %9191, %9190 ]
  br label %9194

9194:                                             ; preds = %9192, %9131
  %9195 = phi i32 [ 8, %9131 ], [ %9193, %9192 ]
  br label %9196

9196:                                             ; preds = %9194, %9123
  %9197 = phi i32 [ 8, %9123 ], [ %9195, %9194 ]
  br label %9198

9198:                                             ; preds = %9196, %9115
  %9199 = phi i32 [ 6, %9115 ], [ %9197, %9196 ]
  br label %9200

9200:                                             ; preds = %9198, %9107
  %9201 = phi i32 [ 6, %9107 ], [ %9199, %9198 ]
  br label %9202

9202:                                             ; preds = %9200, %9099
  %9203 = phi i32 [ 5, %9099 ], [ %9201, %9200 ]
  br label %9204

9204:                                             ; preds = %9202, %9091
  %9205 = phi i32 [ 4, %9091 ], [ %9203, %9202 ]
  br label %9206

9206:                                             ; preds = %9204, %9083
  %9207 = phi i32 [ 3, %9083 ], [ %9205, %9204 ]
  br label %9208

9208:                                             ; preds = %9206, %9075
  %9209 = phi i32 [ 2, %9075 ], [ %9207, %9206 ]
  br label %9210

9210:                                             ; preds = %9208, %9067
  %9211 = phi i32 [ 1, %9067 ], [ %9209, %9208 ]
  br label %9212

9212:                                             ; preds = %9210, %9059
  %9213 = phi i32 [ 0, %9059 ], [ %9211, %9210 ]
  br label %9220

9214:                                             ; preds = %9045
  %9215 = load ptr, ptr %14, align 8, !tbaa !5
  %9216 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9215, i32 0, i32 3
  %9217 = load i8, ptr %9216, align 1, !tbaa !13
  %9218 = zext i8 %9217 to i32
  %9219 = ashr i32 %9218, 4
  br label %9220

9220:                                             ; preds = %9214, %9212
  %9221 = phi i32 [ %9213, %9212 ], [ %9219, %9214 ]
  %9222 = icmp eq i32 5, %9221
  br i1 %9222, label %9223, label %9224

9223:                                             ; preds = %9220
  br label %10674

9224:                                             ; preds = %9220
  %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 = ashr i32 %9228, 4
  %9230 = icmp eq i32 0, %9229
  br i1 %9230, label %9231, label %9393

9231:                                             ; preds = %9224
  %9232 = load ptr, ptr %14, align 8, !tbaa !5
  %9233 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9232, i32 0, i32 3
  %9234 = load i8, ptr %9233, align 1, !tbaa !13
  %9235 = zext i8 %9234 to i32
  %9236 = and i32 %9235, 15
  %9237 = icmp eq i32 0, %9236
  br i1 %9237, label %9238, label %9239

9238:                                             ; preds = %9231
  br label %9391

9239:                                             ; preds = %9231
  %9240 = load ptr, ptr %14, align 8, !tbaa !5
  %9241 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9240, i32 0, i32 3
  %9242 = load i8, ptr %9241, align 1, !tbaa !13
  %9243 = zext i8 %9242 to i32
  %9244 = and i32 %9243, 15
  %9245 = icmp eq i32 1, %9244
  br i1 %9245, label %9246, label %9247

9246:                                             ; preds = %9239
  br label %9389

9247:                                             ; preds = %9239
  %9248 = load ptr, ptr %14, align 8, !tbaa !5
  %9249 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9248, i32 0, i32 3
  %9250 = load i8, ptr %9249, align 1, !tbaa !13
  %9251 = zext i8 %9250 to i32
  %9252 = and i32 %9251, 15
  %9253 = icmp eq i32 2, %9252
  br i1 %9253, label %9254, label %9255

9254:                                             ; preds = %9247
  br label %9387

9255:                                             ; preds = %9247
  %9256 = load ptr, ptr %14, align 8, !tbaa !5
  %9257 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9256, i32 0, i32 3
  %9258 = load i8, ptr %9257, align 1, !tbaa !13
  %9259 = zext i8 %9258 to i32
  %9260 = and i32 %9259, 15
  %9261 = icmp eq i32 3, %9260
  br i1 %9261, label %9262, label %9263

9262:                                             ; preds = %9255
  br label %9385

9263:                                             ; preds = %9255
  %9264 = load ptr, ptr %14, align 8, !tbaa !5
  %9265 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9264, i32 0, i32 3
  %9266 = load i8, ptr %9265, align 1, !tbaa !13
  %9267 = zext i8 %9266 to i32
  %9268 = and i32 %9267, 15
  %9269 = icmp eq i32 4, %9268
  br i1 %9269, label %9270, label %9271

9270:                                             ; preds = %9263
  br label %9383

9271:                                             ; preds = %9263
  %9272 = load ptr, ptr %14, align 8, !tbaa !5
  %9273 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9272, i32 0, i32 3
  %9274 = load i8, ptr %9273, align 1, !tbaa !13
  %9275 = zext i8 %9274 to i32
  %9276 = and i32 %9275, 15
  %9277 = icmp eq i32 5, %9276
  br i1 %9277, label %9278, label %9279

9278:                                             ; preds = %9271
  br label %9381

9279:                                             ; preds = %9271
  %9280 = load ptr, ptr %14, align 8, !tbaa !5
  %9281 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9280, i32 0, i32 3
  %9282 = load i8, ptr %9281, align 1, !tbaa !13
  %9283 = zext i8 %9282 to i32
  %9284 = and i32 %9283, 15
  %9285 = icmp eq i32 6, %9284
  br i1 %9285, label %9286, label %9287

9286:                                             ; preds = %9279
  br label %9379

9287:                                             ; preds = %9279
  %9288 = load ptr, ptr %14, align 8, !tbaa !5
  %9289 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9288, i32 0, i32 3
  %9290 = load i8, ptr %9289, align 1, !tbaa !13
  %9291 = zext i8 %9290 to i32
  %9292 = and i32 %9291, 15
  %9293 = icmp eq i32 7, %9292
  br i1 %9293, label %9294, label %9295

9294:                                             ; preds = %9287
  br label %9377

9295:                                             ; preds = %9287
  %9296 = load ptr, ptr %14, align 8, !tbaa !5
  %9297 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9296, i32 0, i32 3
  %9298 = load i8, ptr %9297, align 1, !tbaa !13
  %9299 = zext i8 %9298 to i32
  %9300 = and i32 %9299, 15
  %9301 = icmp eq i32 8, %9300
  br i1 %9301, label %9302, label %9303

9302:                                             ; preds = %9295
  br label %9375

9303:                                             ; preds = %9295
  %9304 = load ptr, ptr %14, align 8, !tbaa !5
  %9305 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9304, i32 0, i32 3
  %9306 = load i8, ptr %9305, align 1, !tbaa !13
  %9307 = zext i8 %9306 to i32
  %9308 = and i32 %9307, 15
  %9309 = icmp eq i32 9, %9308
  br i1 %9309, label %9310, label %9311

9310:                                             ; preds = %9303
  br label %9373

9311:                                             ; preds = %9303
  %9312 = load ptr, ptr %14, align 8, !tbaa !5
  %9313 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9312, i32 0, i32 3
  %9314 = load i8, ptr %9313, align 1, !tbaa !13
  %9315 = zext i8 %9314 to i32
  %9316 = and i32 %9315, 15
  %9317 = icmp eq i32 10, %9316
  br i1 %9317, label %9318, label %9319

9318:                                             ; preds = %9311
  br label %9371

9319:                                             ; preds = %9311
  %9320 = load ptr, ptr %14, align 8, !tbaa !5
  %9321 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9320, i32 0, i32 3
  %9322 = load i8, ptr %9321, align 1, !tbaa !13
  %9323 = zext i8 %9322 to i32
  %9324 = and i32 %9323, 15
  %9325 = icmp eq i32 11, %9324
  br i1 %9325, label %9326, label %9327

9326:                                             ; preds = %9319
  br label %9369

9327:                                             ; preds = %9319
  %9328 = load ptr, ptr %14, align 8, !tbaa !5
  %9329 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9328, i32 0, i32 3
  %9330 = load i8, ptr %9329, align 1, !tbaa !13
  %9331 = zext i8 %9330 to i32
  %9332 = and i32 %9331, 15
  %9333 = icmp eq i32 12, %9332
  br i1 %9333, label %9334, label %9335

9334:                                             ; preds = %9327
  br label %9367

9335:                                             ; preds = %9327
  %9336 = load ptr, ptr %14, align 8, !tbaa !5
  %9337 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9336, i32 0, i32 3
  %9338 = load i8, ptr %9337, align 1, !tbaa !13
  %9339 = zext i8 %9338 to i32
  %9340 = and i32 %9339, 15
  %9341 = icmp eq i32 13, %9340
  br i1 %9341, label %9342, label %9343

9342:                                             ; preds = %9335
  br label %9365

9343:                                             ; preds = %9335
  %9344 = load ptr, ptr %14, align 8, !tbaa !5
  %9345 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9344, i32 0, i32 3
  %9346 = load i8, ptr %9345, align 1, !tbaa !13
  %9347 = zext i8 %9346 to i32
  %9348 = and i32 %9347, 15
  %9349 = icmp eq i32 14, %9348
  br i1 %9349, label %9350, label %9351

9350:                                             ; preds = %9343
  br label %9363

9351:                                             ; preds = %9343
  %9352 = load ptr, ptr %14, align 8, !tbaa !5
  %9353 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9352, i32 0, i32 3
  %9354 = load i8, ptr %9353, align 1, !tbaa !13
  %9355 = zext i8 %9354 to i32
  %9356 = and i32 %9355, 15
  %9357 = icmp eq i32 15, %9356
  br i1 %9357, label %9358, label %9359

9358:                                             ; preds = %9351
  br label %9361

9359:                                             ; preds = %9351
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 577, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

9360:                                             ; No predecessors!
  br label %9361

9361:                                             ; preds = %9360, %9358
  %9362 = phi i32 [ 15, %9358 ], [ 0, %9360 ]
  br label %9363

9363:                                             ; preds = %9361, %9350
  %9364 = phi i32 [ 14, %9350 ], [ %9362, %9361 ]
  br label %9365

9365:                                             ; preds = %9363, %9342
  %9366 = phi i32 [ 12, %9342 ], [ %9364, %9363 ]
  br label %9367

9367:                                             ; preds = %9365, %9334
  %9368 = phi i32 [ 12, %9334 ], [ %9366, %9365 ]
  br label %9369

9369:                                             ; preds = %9367, %9326
  %9370 = phi i32 [ 10, %9326 ], [ %9368, %9367 ]
  br label %9371

9371:                                             ; preds = %9369, %9318
  %9372 = phi i32 [ 10, %9318 ], [ %9370, %9369 ]
  br label %9373

9373:                                             ; preds = %9371, %9310
  %9374 = phi i32 [ 8, %9310 ], [ %9372, %9371 ]
  br label %9375

9375:                                             ; preds = %9373, %9302
  %9376 = phi i32 [ 8, %9302 ], [ %9374, %9373 ]
  br label %9377

9377:                                             ; preds = %9375, %9294
  %9378 = phi i32 [ 6, %9294 ], [ %9376, %9375 ]
  br label %9379

9379:                                             ; preds = %9377, %9286
  %9380 = phi i32 [ 6, %9286 ], [ %9378, %9377 ]
  br label %9381

9381:                                             ; preds = %9379, %9278
  %9382 = phi i32 [ 5, %9278 ], [ %9380, %9379 ]
  br label %9383

9383:                                             ; preds = %9381, %9270
  %9384 = phi i32 [ 4, %9270 ], [ %9382, %9381 ]
  br label %9385

9385:                                             ; preds = %9383, %9262
  %9386 = phi i32 [ 3, %9262 ], [ %9384, %9383 ]
  br label %9387

9387:                                             ; preds = %9385, %9254
  %9388 = phi i32 [ 2, %9254 ], [ %9386, %9385 ]
  br label %9389

9389:                                             ; preds = %9387, %9246
  %9390 = phi i32 [ 1, %9246 ], [ %9388, %9387 ]
  br label %9391

9391:                                             ; preds = %9389, %9238
  %9392 = phi i32 [ 0, %9238 ], [ %9390, %9389 ]
  br label %9399

9393:                                             ; preds = %9224
  %9394 = load ptr, ptr %14, align 8, !tbaa !5
  %9395 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9394, i32 0, i32 3
  %9396 = load i8, ptr %9395, align 1, !tbaa !13
  %9397 = zext i8 %9396 to i32
  %9398 = ashr i32 %9397, 4
  br label %9399

9399:                                             ; preds = %9393, %9391
  %9400 = phi i32 [ %9392, %9391 ], [ %9398, %9393 ]
  %9401 = icmp eq i32 6, %9400
  br i1 %9401, label %9402, label %9403

9402:                                             ; preds = %9399
  br label %10672

9403:                                             ; preds = %9399
  %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 = ashr i32 %9407, 4
  %9409 = icmp eq i32 0, %9408
  br i1 %9409, label %9410, label %9572

9410:                                             ; preds = %9403
  %9411 = load ptr, ptr %14, align 8, !tbaa !5
  %9412 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9411, i32 0, i32 3
  %9413 = load i8, ptr %9412, align 1, !tbaa !13
  %9414 = zext i8 %9413 to i32
  %9415 = and i32 %9414, 15
  %9416 = icmp eq i32 0, %9415
  br i1 %9416, label %9417, label %9418

9417:                                             ; preds = %9410
  br label %9570

9418:                                             ; preds = %9410
  %9419 = load ptr, ptr %14, align 8, !tbaa !5
  %9420 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9419, i32 0, i32 3
  %9421 = load i8, ptr %9420, align 1, !tbaa !13
  %9422 = zext i8 %9421 to i32
  %9423 = and i32 %9422, 15
  %9424 = icmp eq i32 1, %9423
  br i1 %9424, label %9425, label %9426

9425:                                             ; preds = %9418
  br label %9568

9426:                                             ; preds = %9418
  %9427 = load ptr, ptr %14, align 8, !tbaa !5
  %9428 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9427, i32 0, i32 3
  %9429 = load i8, ptr %9428, align 1, !tbaa !13
  %9430 = zext i8 %9429 to i32
  %9431 = and i32 %9430, 15
  %9432 = icmp eq i32 2, %9431
  br i1 %9432, label %9433, label %9434

9433:                                             ; preds = %9426
  br label %9566

9434:                                             ; preds = %9426
  %9435 = load ptr, ptr %14, align 8, !tbaa !5
  %9436 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9435, i32 0, i32 3
  %9437 = load i8, ptr %9436, align 1, !tbaa !13
  %9438 = zext i8 %9437 to i32
  %9439 = and i32 %9438, 15
  %9440 = icmp eq i32 3, %9439
  br i1 %9440, label %9441, label %9442

9441:                                             ; preds = %9434
  br label %9564

9442:                                             ; preds = %9434
  %9443 = load ptr, ptr %14, align 8, !tbaa !5
  %9444 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9443, i32 0, i32 3
  %9445 = load i8, ptr %9444, align 1, !tbaa !13
  %9446 = zext i8 %9445 to i32
  %9447 = and i32 %9446, 15
  %9448 = icmp eq i32 4, %9447
  br i1 %9448, label %9449, label %9450

9449:                                             ; preds = %9442
  br label %9562

9450:                                             ; preds = %9442
  %9451 = load ptr, ptr %14, align 8, !tbaa !5
  %9452 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9451, i32 0, i32 3
  %9453 = load i8, ptr %9452, align 1, !tbaa !13
  %9454 = zext i8 %9453 to i32
  %9455 = and i32 %9454, 15
  %9456 = icmp eq i32 5, %9455
  br i1 %9456, label %9457, label %9458

9457:                                             ; preds = %9450
  br label %9560

9458:                                             ; preds = %9450
  %9459 = load ptr, ptr %14, align 8, !tbaa !5
  %9460 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9459, i32 0, i32 3
  %9461 = load i8, ptr %9460, align 1, !tbaa !13
  %9462 = zext i8 %9461 to i32
  %9463 = and i32 %9462, 15
  %9464 = icmp eq i32 6, %9463
  br i1 %9464, label %9465, label %9466

9465:                                             ; preds = %9458
  br label %9558

9466:                                             ; preds = %9458
  %9467 = load ptr, ptr %14, align 8, !tbaa !5
  %9468 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9467, i32 0, i32 3
  %9469 = load i8, ptr %9468, align 1, !tbaa !13
  %9470 = zext i8 %9469 to i32
  %9471 = and i32 %9470, 15
  %9472 = icmp eq i32 7, %9471
  br i1 %9472, label %9473, label %9474

9473:                                             ; preds = %9466
  br label %9556

9474:                                             ; preds = %9466
  %9475 = load ptr, ptr %14, align 8, !tbaa !5
  %9476 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9475, i32 0, i32 3
  %9477 = load i8, ptr %9476, align 1, !tbaa !13
  %9478 = zext i8 %9477 to i32
  %9479 = and i32 %9478, 15
  %9480 = icmp eq i32 8, %9479
  br i1 %9480, label %9481, label %9482

9481:                                             ; preds = %9474
  br label %9554

9482:                                             ; preds = %9474
  %9483 = load ptr, ptr %14, align 8, !tbaa !5
  %9484 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9483, i32 0, i32 3
  %9485 = load i8, ptr %9484, align 1, !tbaa !13
  %9486 = zext i8 %9485 to i32
  %9487 = and i32 %9486, 15
  %9488 = icmp eq i32 9, %9487
  br i1 %9488, label %9489, label %9490

9489:                                             ; preds = %9482
  br label %9552

9490:                                             ; preds = %9482
  %9491 = load ptr, ptr %14, align 8, !tbaa !5
  %9492 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9491, i32 0, i32 3
  %9493 = load i8, ptr %9492, align 1, !tbaa !13
  %9494 = zext i8 %9493 to i32
  %9495 = and i32 %9494, 15
  %9496 = icmp eq i32 10, %9495
  br i1 %9496, label %9497, label %9498

9497:                                             ; preds = %9490
  br label %9550

9498:                                             ; preds = %9490
  %9499 = load ptr, ptr %14, align 8, !tbaa !5
  %9500 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9499, i32 0, i32 3
  %9501 = load i8, ptr %9500, align 1, !tbaa !13
  %9502 = zext i8 %9501 to i32
  %9503 = and i32 %9502, 15
  %9504 = icmp eq i32 11, %9503
  br i1 %9504, label %9505, label %9506

9505:                                             ; preds = %9498
  br label %9548

9506:                                             ; preds = %9498
  %9507 = load ptr, ptr %14, align 8, !tbaa !5
  %9508 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9507, i32 0, i32 3
  %9509 = load i8, ptr %9508, align 1, !tbaa !13
  %9510 = zext i8 %9509 to i32
  %9511 = and i32 %9510, 15
  %9512 = icmp eq i32 12, %9511
  br i1 %9512, label %9513, label %9514

9513:                                             ; preds = %9506
  br label %9546

9514:                                             ; preds = %9506
  %9515 = load ptr, ptr %14, align 8, !tbaa !5
  %9516 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9515, i32 0, i32 3
  %9517 = load i8, ptr %9516, align 1, !tbaa !13
  %9518 = zext i8 %9517 to i32
  %9519 = and i32 %9518, 15
  %9520 = icmp eq i32 13, %9519
  br i1 %9520, label %9521, label %9522

9521:                                             ; preds = %9514
  br label %9544

9522:                                             ; preds = %9514
  %9523 = load ptr, ptr %14, align 8, !tbaa !5
  %9524 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9523, i32 0, i32 3
  %9525 = load i8, ptr %9524, align 1, !tbaa !13
  %9526 = zext i8 %9525 to i32
  %9527 = and i32 %9526, 15
  %9528 = icmp eq i32 14, %9527
  br i1 %9528, label %9529, label %9530

9529:                                             ; preds = %9522
  br label %9542

9530:                                             ; preds = %9522
  %9531 = load ptr, ptr %14, align 8, !tbaa !5
  %9532 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9531, i32 0, i32 3
  %9533 = load i8, ptr %9532, align 1, !tbaa !13
  %9534 = zext i8 %9533 to i32
  %9535 = and i32 %9534, 15
  %9536 = icmp eq i32 15, %9535
  br i1 %9536, label %9537, label %9538

9537:                                             ; preds = %9530
  br label %9540

9538:                                             ; preds = %9530
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 577, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

9539:                                             ; No predecessors!
  br label %9540

9540:                                             ; preds = %9539, %9537
  %9541 = phi i32 [ 15, %9537 ], [ 0, %9539 ]
  br label %9542

9542:                                             ; preds = %9540, %9529
  %9543 = phi i32 [ 14, %9529 ], [ %9541, %9540 ]
  br label %9544

9544:                                             ; preds = %9542, %9521
  %9545 = phi i32 [ 12, %9521 ], [ %9543, %9542 ]
  br label %9546

9546:                                             ; preds = %9544, %9513
  %9547 = phi i32 [ 12, %9513 ], [ %9545, %9544 ]
  br label %9548

9548:                                             ; preds = %9546, %9505
  %9549 = phi i32 [ 10, %9505 ], [ %9547, %9546 ]
  br label %9550

9550:                                             ; preds = %9548, %9497
  %9551 = phi i32 [ 10, %9497 ], [ %9549, %9548 ]
  br label %9552

9552:                                             ; preds = %9550, %9489
  %9553 = phi i32 [ 8, %9489 ], [ %9551, %9550 ]
  br label %9554

9554:                                             ; preds = %9552, %9481
  %9555 = phi i32 [ 8, %9481 ], [ %9553, %9552 ]
  br label %9556

9556:                                             ; preds = %9554, %9473
  %9557 = phi i32 [ 6, %9473 ], [ %9555, %9554 ]
  br label %9558

9558:                                             ; preds = %9556, %9465
  %9559 = phi i32 [ 6, %9465 ], [ %9557, %9556 ]
  br label %9560

9560:                                             ; preds = %9558, %9457
  %9561 = phi i32 [ 5, %9457 ], [ %9559, %9558 ]
  br label %9562

9562:                                             ; preds = %9560, %9449
  %9563 = phi i32 [ 4, %9449 ], [ %9561, %9560 ]
  br label %9564

9564:                                             ; preds = %9562, %9441
  %9565 = phi i32 [ 3, %9441 ], [ %9563, %9562 ]
  br label %9566

9566:                                             ; preds = %9564, %9433
  %9567 = phi i32 [ 2, %9433 ], [ %9565, %9564 ]
  br label %9568

9568:                                             ; preds = %9566, %9425
  %9569 = phi i32 [ 1, %9425 ], [ %9567, %9566 ]
  br label %9570

9570:                                             ; preds = %9568, %9417
  %9571 = phi i32 [ 0, %9417 ], [ %9569, %9568 ]
  br label %9578

9572:                                             ; preds = %9403
  %9573 = load ptr, ptr %14, align 8, !tbaa !5
  %9574 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9573, i32 0, i32 3
  %9575 = load i8, ptr %9574, align 1, !tbaa !13
  %9576 = zext i8 %9575 to i32
  %9577 = ashr i32 %9576, 4
  br label %9578

9578:                                             ; preds = %9572, %9570
  %9579 = phi i32 [ %9571, %9570 ], [ %9577, %9572 ]
  %9580 = icmp eq i32 7, %9579
  br i1 %9580, label %9581, label %9582

9581:                                             ; preds = %9578
  br label %10670

9582:                                             ; preds = %9578
  %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 = ashr i32 %9586, 4
  %9588 = icmp eq i32 0, %9587
  br i1 %9588, label %9589, label %9751

9589:                                             ; preds = %9582
  %9590 = load ptr, ptr %14, align 8, !tbaa !5
  %9591 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9590, i32 0, i32 3
  %9592 = load i8, ptr %9591, align 1, !tbaa !13
  %9593 = zext i8 %9592 to i32
  %9594 = and i32 %9593, 15
  %9595 = icmp eq i32 0, %9594
  br i1 %9595, label %9596, label %9597

9596:                                             ; preds = %9589
  br label %9749

9597:                                             ; preds = %9589
  %9598 = load ptr, ptr %14, align 8, !tbaa !5
  %9599 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9598, i32 0, i32 3
  %9600 = load i8, ptr %9599, align 1, !tbaa !13
  %9601 = zext i8 %9600 to i32
  %9602 = and i32 %9601, 15
  %9603 = icmp eq i32 1, %9602
  br i1 %9603, label %9604, label %9605

9604:                                             ; preds = %9597
  br label %9747

9605:                                             ; preds = %9597
  %9606 = load ptr, ptr %14, align 8, !tbaa !5
  %9607 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9606, i32 0, i32 3
  %9608 = load i8, ptr %9607, align 1, !tbaa !13
  %9609 = zext i8 %9608 to i32
  %9610 = and i32 %9609, 15
  %9611 = icmp eq i32 2, %9610
  br i1 %9611, label %9612, label %9613

9612:                                             ; preds = %9605
  br label %9745

9613:                                             ; preds = %9605
  %9614 = load ptr, ptr %14, align 8, !tbaa !5
  %9615 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9614, i32 0, i32 3
  %9616 = load i8, ptr %9615, align 1, !tbaa !13
  %9617 = zext i8 %9616 to i32
  %9618 = and i32 %9617, 15
  %9619 = icmp eq i32 3, %9618
  br i1 %9619, label %9620, label %9621

9620:                                             ; preds = %9613
  br label %9743

9621:                                             ; preds = %9613
  %9622 = load ptr, ptr %14, align 8, !tbaa !5
  %9623 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9622, i32 0, i32 3
  %9624 = load i8, ptr %9623, align 1, !tbaa !13
  %9625 = zext i8 %9624 to i32
  %9626 = and i32 %9625, 15
  %9627 = icmp eq i32 4, %9626
  br i1 %9627, label %9628, label %9629

9628:                                             ; preds = %9621
  br label %9741

9629:                                             ; preds = %9621
  %9630 = load ptr, ptr %14, align 8, !tbaa !5
  %9631 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9630, i32 0, i32 3
  %9632 = load i8, ptr %9631, align 1, !tbaa !13
  %9633 = zext i8 %9632 to i32
  %9634 = and i32 %9633, 15
  %9635 = icmp eq i32 5, %9634
  br i1 %9635, label %9636, label %9637

9636:                                             ; preds = %9629
  br label %9739

9637:                                             ; preds = %9629
  %9638 = load ptr, ptr %14, align 8, !tbaa !5
  %9639 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9638, i32 0, i32 3
  %9640 = load i8, ptr %9639, align 1, !tbaa !13
  %9641 = zext i8 %9640 to i32
  %9642 = and i32 %9641, 15
  %9643 = icmp eq i32 6, %9642
  br i1 %9643, label %9644, label %9645

9644:                                             ; preds = %9637
  br label %9737

9645:                                             ; preds = %9637
  %9646 = load ptr, ptr %14, align 8, !tbaa !5
  %9647 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9646, i32 0, i32 3
  %9648 = load i8, ptr %9647, align 1, !tbaa !13
  %9649 = zext i8 %9648 to i32
  %9650 = and i32 %9649, 15
  %9651 = icmp eq i32 7, %9650
  br i1 %9651, label %9652, label %9653

9652:                                             ; preds = %9645
  br label %9735

9653:                                             ; preds = %9645
  %9654 = load ptr, ptr %14, align 8, !tbaa !5
  %9655 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9654, i32 0, i32 3
  %9656 = load i8, ptr %9655, align 1, !tbaa !13
  %9657 = zext i8 %9656 to i32
  %9658 = and i32 %9657, 15
  %9659 = icmp eq i32 8, %9658
  br i1 %9659, label %9660, label %9661

9660:                                             ; preds = %9653
  br label %9733

9661:                                             ; preds = %9653
  %9662 = load ptr, ptr %14, align 8, !tbaa !5
  %9663 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9662, i32 0, i32 3
  %9664 = load i8, ptr %9663, align 1, !tbaa !13
  %9665 = zext i8 %9664 to i32
  %9666 = and i32 %9665, 15
  %9667 = icmp eq i32 9, %9666
  br i1 %9667, label %9668, label %9669

9668:                                             ; preds = %9661
  br label %9731

9669:                                             ; preds = %9661
  %9670 = load ptr, ptr %14, align 8, !tbaa !5
  %9671 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9670, i32 0, i32 3
  %9672 = load i8, ptr %9671, align 1, !tbaa !13
  %9673 = zext i8 %9672 to i32
  %9674 = and i32 %9673, 15
  %9675 = icmp eq i32 10, %9674
  br i1 %9675, label %9676, label %9677

9676:                                             ; preds = %9669
  br label %9729

9677:                                             ; preds = %9669
  %9678 = load ptr, ptr %14, align 8, !tbaa !5
  %9679 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9678, i32 0, i32 3
  %9680 = load i8, ptr %9679, align 1, !tbaa !13
  %9681 = zext i8 %9680 to i32
  %9682 = and i32 %9681, 15
  %9683 = icmp eq i32 11, %9682
  br i1 %9683, label %9684, label %9685

9684:                                             ; preds = %9677
  br label %9727

9685:                                             ; preds = %9677
  %9686 = load ptr, ptr %14, align 8, !tbaa !5
  %9687 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9686, i32 0, i32 3
  %9688 = load i8, ptr %9687, align 1, !tbaa !13
  %9689 = zext i8 %9688 to i32
  %9690 = and i32 %9689, 15
  %9691 = icmp eq i32 12, %9690
  br i1 %9691, label %9692, label %9693

9692:                                             ; preds = %9685
  br label %9725

9693:                                             ; preds = %9685
  %9694 = load ptr, ptr %14, align 8, !tbaa !5
  %9695 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9694, i32 0, i32 3
  %9696 = load i8, ptr %9695, align 1, !tbaa !13
  %9697 = zext i8 %9696 to i32
  %9698 = and i32 %9697, 15
  %9699 = icmp eq i32 13, %9698
  br i1 %9699, label %9700, label %9701

9700:                                             ; preds = %9693
  br label %9723

9701:                                             ; preds = %9693
  %9702 = load ptr, ptr %14, align 8, !tbaa !5
  %9703 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9702, i32 0, i32 3
  %9704 = load i8, ptr %9703, align 1, !tbaa !13
  %9705 = zext i8 %9704 to i32
  %9706 = and i32 %9705, 15
  %9707 = icmp eq i32 14, %9706
  br i1 %9707, label %9708, label %9709

9708:                                             ; preds = %9701
  br label %9721

9709:                                             ; preds = %9701
  %9710 = load ptr, ptr %14, align 8, !tbaa !5
  %9711 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9710, i32 0, i32 3
  %9712 = load i8, ptr %9711, align 1, !tbaa !13
  %9713 = zext i8 %9712 to i32
  %9714 = and i32 %9713, 15
  %9715 = icmp eq i32 15, %9714
  br i1 %9715, label %9716, label %9717

9716:                                             ; preds = %9709
  br label %9719

9717:                                             ; preds = %9709
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 577, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

9718:                                             ; No predecessors!
  br label %9719

9719:                                             ; preds = %9718, %9716
  %9720 = phi i32 [ 15, %9716 ], [ 0, %9718 ]
  br label %9721

9721:                                             ; preds = %9719, %9708
  %9722 = phi i32 [ 14, %9708 ], [ %9720, %9719 ]
  br label %9723

9723:                                             ; preds = %9721, %9700
  %9724 = phi i32 [ 12, %9700 ], [ %9722, %9721 ]
  br label %9725

9725:                                             ; preds = %9723, %9692
  %9726 = phi i32 [ 12, %9692 ], [ %9724, %9723 ]
  br label %9727

9727:                                             ; preds = %9725, %9684
  %9728 = phi i32 [ 10, %9684 ], [ %9726, %9725 ]
  br label %9729

9729:                                             ; preds = %9727, %9676
  %9730 = phi i32 [ 10, %9676 ], [ %9728, %9727 ]
  br label %9731

9731:                                             ; preds = %9729, %9668
  %9732 = phi i32 [ 8, %9668 ], [ %9730, %9729 ]
  br label %9733

9733:                                             ; preds = %9731, %9660
  %9734 = phi i32 [ 8, %9660 ], [ %9732, %9731 ]
  br label %9735

9735:                                             ; preds = %9733, %9652
  %9736 = phi i32 [ 6, %9652 ], [ %9734, %9733 ]
  br label %9737

9737:                                             ; preds = %9735, %9644
  %9738 = phi i32 [ 6, %9644 ], [ %9736, %9735 ]
  br label %9739

9739:                                             ; preds = %9737, %9636
  %9740 = phi i32 [ 5, %9636 ], [ %9738, %9737 ]
  br label %9741

9741:                                             ; preds = %9739, %9628
  %9742 = phi i32 [ 4, %9628 ], [ %9740, %9739 ]
  br label %9743

9743:                                             ; preds = %9741, %9620
  %9744 = phi i32 [ 3, %9620 ], [ %9742, %9741 ]
  br label %9745

9745:                                             ; preds = %9743, %9612
  %9746 = phi i32 [ 2, %9612 ], [ %9744, %9743 ]
  br label %9747

9747:                                             ; preds = %9745, %9604
  %9748 = phi i32 [ 1, %9604 ], [ %9746, %9745 ]
  br label %9749

9749:                                             ; preds = %9747, %9596
  %9750 = phi i32 [ 0, %9596 ], [ %9748, %9747 ]
  br label %9757

9751:                                             ; preds = %9582
  %9752 = load ptr, ptr %14, align 8, !tbaa !5
  %9753 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9752, i32 0, i32 3
  %9754 = load i8, ptr %9753, align 1, !tbaa !13
  %9755 = zext i8 %9754 to i32
  %9756 = ashr i32 %9755, 4
  br label %9757

9757:                                             ; preds = %9751, %9749
  %9758 = phi i32 [ %9750, %9749 ], [ %9756, %9751 ]
  %9759 = icmp eq i32 8, %9758
  br i1 %9759, label %9760, label %9761

9760:                                             ; preds = %9757
  br label %10668

9761:                                             ; preds = %9757
  %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 = ashr i32 %9765, 4
  %9767 = icmp eq i32 0, %9766
  br i1 %9767, label %9768, label %9930

9768:                                             ; preds = %9761
  %9769 = load ptr, ptr %14, align 8, !tbaa !5
  %9770 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9769, i32 0, i32 3
  %9771 = load i8, ptr %9770, align 1, !tbaa !13
  %9772 = zext i8 %9771 to i32
  %9773 = and i32 %9772, 15
  %9774 = icmp eq i32 0, %9773
  br i1 %9774, label %9775, label %9776

9775:                                             ; preds = %9768
  br label %9928

9776:                                             ; preds = %9768
  %9777 = load ptr, ptr %14, align 8, !tbaa !5
  %9778 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9777, i32 0, i32 3
  %9779 = load i8, ptr %9778, align 1, !tbaa !13
  %9780 = zext i8 %9779 to i32
  %9781 = and i32 %9780, 15
  %9782 = icmp eq i32 1, %9781
  br i1 %9782, label %9783, label %9784

9783:                                             ; preds = %9776
  br label %9926

9784:                                             ; preds = %9776
  %9785 = load ptr, ptr %14, align 8, !tbaa !5
  %9786 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9785, i32 0, i32 3
  %9787 = load i8, ptr %9786, align 1, !tbaa !13
  %9788 = zext i8 %9787 to i32
  %9789 = and i32 %9788, 15
  %9790 = icmp eq i32 2, %9789
  br i1 %9790, label %9791, label %9792

9791:                                             ; preds = %9784
  br label %9924

9792:                                             ; preds = %9784
  %9793 = load ptr, ptr %14, align 8, !tbaa !5
  %9794 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9793, i32 0, i32 3
  %9795 = load i8, ptr %9794, align 1, !tbaa !13
  %9796 = zext i8 %9795 to i32
  %9797 = and i32 %9796, 15
  %9798 = icmp eq i32 3, %9797
  br i1 %9798, label %9799, label %9800

9799:                                             ; preds = %9792
  br label %9922

9800:                                             ; preds = %9792
  %9801 = load ptr, ptr %14, align 8, !tbaa !5
  %9802 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9801, i32 0, i32 3
  %9803 = load i8, ptr %9802, align 1, !tbaa !13
  %9804 = zext i8 %9803 to i32
  %9805 = and i32 %9804, 15
  %9806 = icmp eq i32 4, %9805
  br i1 %9806, label %9807, label %9808

9807:                                             ; preds = %9800
  br label %9920

9808:                                             ; preds = %9800
  %9809 = load ptr, ptr %14, align 8, !tbaa !5
  %9810 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9809, i32 0, i32 3
  %9811 = load i8, ptr %9810, align 1, !tbaa !13
  %9812 = zext i8 %9811 to i32
  %9813 = and i32 %9812, 15
  %9814 = icmp eq i32 5, %9813
  br i1 %9814, label %9815, label %9816

9815:                                             ; preds = %9808
  br label %9918

9816:                                             ; preds = %9808
  %9817 = load ptr, ptr %14, align 8, !tbaa !5
  %9818 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9817, i32 0, i32 3
  %9819 = load i8, ptr %9818, align 1, !tbaa !13
  %9820 = zext i8 %9819 to i32
  %9821 = and i32 %9820, 15
  %9822 = icmp eq i32 6, %9821
  br i1 %9822, label %9823, label %9824

9823:                                             ; preds = %9816
  br label %9916

9824:                                             ; preds = %9816
  %9825 = load ptr, ptr %14, align 8, !tbaa !5
  %9826 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9825, i32 0, i32 3
  %9827 = load i8, ptr %9826, align 1, !tbaa !13
  %9828 = zext i8 %9827 to i32
  %9829 = and i32 %9828, 15
  %9830 = icmp eq i32 7, %9829
  br i1 %9830, label %9831, label %9832

9831:                                             ; preds = %9824
  br label %9914

9832:                                             ; preds = %9824
  %9833 = load ptr, ptr %14, align 8, !tbaa !5
  %9834 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9833, i32 0, i32 3
  %9835 = load i8, ptr %9834, align 1, !tbaa !13
  %9836 = zext i8 %9835 to i32
  %9837 = and i32 %9836, 15
  %9838 = icmp eq i32 8, %9837
  br i1 %9838, label %9839, label %9840

9839:                                             ; preds = %9832
  br label %9912

9840:                                             ; preds = %9832
  %9841 = load ptr, ptr %14, align 8, !tbaa !5
  %9842 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9841, i32 0, i32 3
  %9843 = load i8, ptr %9842, align 1, !tbaa !13
  %9844 = zext i8 %9843 to i32
  %9845 = and i32 %9844, 15
  %9846 = icmp eq i32 9, %9845
  br i1 %9846, label %9847, label %9848

9847:                                             ; preds = %9840
  br label %9910

9848:                                             ; preds = %9840
  %9849 = load ptr, ptr %14, align 8, !tbaa !5
  %9850 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9849, i32 0, i32 3
  %9851 = load i8, ptr %9850, align 1, !tbaa !13
  %9852 = zext i8 %9851 to i32
  %9853 = and i32 %9852, 15
  %9854 = icmp eq i32 10, %9853
  br i1 %9854, label %9855, label %9856

9855:                                             ; preds = %9848
  br label %9908

9856:                                             ; preds = %9848
  %9857 = load ptr, ptr %14, align 8, !tbaa !5
  %9858 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9857, i32 0, i32 3
  %9859 = load i8, ptr %9858, align 1, !tbaa !13
  %9860 = zext i8 %9859 to i32
  %9861 = and i32 %9860, 15
  %9862 = icmp eq i32 11, %9861
  br i1 %9862, label %9863, label %9864

9863:                                             ; preds = %9856
  br label %9906

9864:                                             ; preds = %9856
  %9865 = load ptr, ptr %14, align 8, !tbaa !5
  %9866 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9865, i32 0, i32 3
  %9867 = load i8, ptr %9866, align 1, !tbaa !13
  %9868 = zext i8 %9867 to i32
  %9869 = and i32 %9868, 15
  %9870 = icmp eq i32 12, %9869
  br i1 %9870, label %9871, label %9872

9871:                                             ; preds = %9864
  br label %9904

9872:                                             ; preds = %9864
  %9873 = load ptr, ptr %14, align 8, !tbaa !5
  %9874 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9873, i32 0, i32 3
  %9875 = load i8, ptr %9874, align 1, !tbaa !13
  %9876 = zext i8 %9875 to i32
  %9877 = and i32 %9876, 15
  %9878 = icmp eq i32 13, %9877
  br i1 %9878, label %9879, label %9880

9879:                                             ; preds = %9872
  br label %9902

9880:                                             ; preds = %9872
  %9881 = load ptr, ptr %14, align 8, !tbaa !5
  %9882 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9881, i32 0, i32 3
  %9883 = load i8, ptr %9882, align 1, !tbaa !13
  %9884 = zext i8 %9883 to i32
  %9885 = and i32 %9884, 15
  %9886 = icmp eq i32 14, %9885
  br i1 %9886, label %9887, label %9888

9887:                                             ; preds = %9880
  br label %9900

9888:                                             ; preds = %9880
  %9889 = load ptr, ptr %14, align 8, !tbaa !5
  %9890 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9889, i32 0, i32 3
  %9891 = load i8, ptr %9890, align 1, !tbaa !13
  %9892 = zext i8 %9891 to i32
  %9893 = and i32 %9892, 15
  %9894 = icmp eq i32 15, %9893
  br i1 %9894, label %9895, label %9896

9895:                                             ; preds = %9888
  br label %9898

9896:                                             ; preds = %9888
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 577, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

9897:                                             ; No predecessors!
  br label %9898

9898:                                             ; preds = %9897, %9895
  %9899 = phi i32 [ 15, %9895 ], [ 0, %9897 ]
  br label %9900

9900:                                             ; preds = %9898, %9887
  %9901 = phi i32 [ 14, %9887 ], [ %9899, %9898 ]
  br label %9902

9902:                                             ; preds = %9900, %9879
  %9903 = phi i32 [ 12, %9879 ], [ %9901, %9900 ]
  br label %9904

9904:                                             ; preds = %9902, %9871
  %9905 = phi i32 [ 12, %9871 ], [ %9903, %9902 ]
  br label %9906

9906:                                             ; preds = %9904, %9863
  %9907 = phi i32 [ 10, %9863 ], [ %9905, %9904 ]
  br label %9908

9908:                                             ; preds = %9906, %9855
  %9909 = phi i32 [ 10, %9855 ], [ %9907, %9906 ]
  br label %9910

9910:                                             ; preds = %9908, %9847
  %9911 = phi i32 [ 8, %9847 ], [ %9909, %9908 ]
  br label %9912

9912:                                             ; preds = %9910, %9839
  %9913 = phi i32 [ 8, %9839 ], [ %9911, %9910 ]
  br label %9914

9914:                                             ; preds = %9912, %9831
  %9915 = phi i32 [ 6, %9831 ], [ %9913, %9912 ]
  br label %9916

9916:                                             ; preds = %9914, %9823
  %9917 = phi i32 [ 6, %9823 ], [ %9915, %9914 ]
  br label %9918

9918:                                             ; preds = %9916, %9815
  %9919 = phi i32 [ 5, %9815 ], [ %9917, %9916 ]
  br label %9920

9920:                                             ; preds = %9918, %9807
  %9921 = phi i32 [ 4, %9807 ], [ %9919, %9918 ]
  br label %9922

9922:                                             ; preds = %9920, %9799
  %9923 = phi i32 [ 3, %9799 ], [ %9921, %9920 ]
  br label %9924

9924:                                             ; preds = %9922, %9791
  %9925 = phi i32 [ 2, %9791 ], [ %9923, %9922 ]
  br label %9926

9926:                                             ; preds = %9924, %9783
  %9927 = phi i32 [ 1, %9783 ], [ %9925, %9924 ]
  br label %9928

9928:                                             ; preds = %9926, %9775
  %9929 = phi i32 [ 0, %9775 ], [ %9927, %9926 ]
  br label %9936

9930:                                             ; preds = %9761
  %9931 = load ptr, ptr %14, align 8, !tbaa !5
  %9932 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9931, i32 0, i32 3
  %9933 = load i8, ptr %9932, align 1, !tbaa !13
  %9934 = zext i8 %9933 to i32
  %9935 = ashr i32 %9934, 4
  br label %9936

9936:                                             ; preds = %9930, %9928
  %9937 = phi i32 [ %9929, %9928 ], [ %9935, %9930 ]
  %9938 = icmp eq i32 9, %9937
  br i1 %9938, label %9939, label %9940

9939:                                             ; preds = %9936
  br label %10666

9940:                                             ; preds = %9936
  %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 = ashr i32 %9944, 4
  %9946 = icmp eq i32 0, %9945
  br i1 %9946, label %9947, label %10109

9947:                                             ; preds = %9940
  %9948 = load ptr, ptr %14, align 8, !tbaa !5
  %9949 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9948, i32 0, i32 3
  %9950 = load i8, ptr %9949, align 1, !tbaa !13
  %9951 = zext i8 %9950 to i32
  %9952 = and i32 %9951, 15
  %9953 = icmp eq i32 0, %9952
  br i1 %9953, label %9954, label %9955

9954:                                             ; preds = %9947
  br label %10107

9955:                                             ; preds = %9947
  %9956 = load ptr, ptr %14, align 8, !tbaa !5
  %9957 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9956, i32 0, i32 3
  %9958 = load i8, ptr %9957, align 1, !tbaa !13
  %9959 = zext i8 %9958 to i32
  %9960 = and i32 %9959, 15
  %9961 = icmp eq i32 1, %9960
  br i1 %9961, label %9962, label %9963

9962:                                             ; preds = %9955
  br label %10105

9963:                                             ; preds = %9955
  %9964 = load ptr, ptr %14, align 8, !tbaa !5
  %9965 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9964, i32 0, i32 3
  %9966 = load i8, ptr %9965, align 1, !tbaa !13
  %9967 = zext i8 %9966 to i32
  %9968 = and i32 %9967, 15
  %9969 = icmp eq i32 2, %9968
  br i1 %9969, label %9970, label %9971

9970:                                             ; preds = %9963
  br label %10103

9971:                                             ; preds = %9963
  %9972 = load ptr, ptr %14, align 8, !tbaa !5
  %9973 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9972, i32 0, i32 3
  %9974 = load i8, ptr %9973, align 1, !tbaa !13
  %9975 = zext i8 %9974 to i32
  %9976 = and i32 %9975, 15
  %9977 = icmp eq i32 3, %9976
  br i1 %9977, label %9978, label %9979

9978:                                             ; preds = %9971
  br label %10101

9979:                                             ; preds = %9971
  %9980 = load ptr, ptr %14, align 8, !tbaa !5
  %9981 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9980, i32 0, i32 3
  %9982 = load i8, ptr %9981, align 1, !tbaa !13
  %9983 = zext i8 %9982 to i32
  %9984 = and i32 %9983, 15
  %9985 = icmp eq i32 4, %9984
  br i1 %9985, label %9986, label %9987

9986:                                             ; preds = %9979
  br label %10099

9987:                                             ; preds = %9979
  %9988 = load ptr, ptr %14, align 8, !tbaa !5
  %9989 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9988, i32 0, i32 3
  %9990 = load i8, ptr %9989, align 1, !tbaa !13
  %9991 = zext i8 %9990 to i32
  %9992 = and i32 %9991, 15
  %9993 = icmp eq i32 5, %9992
  br i1 %9993, label %9994, label %9995

9994:                                             ; preds = %9987
  br label %10097

9995:                                             ; preds = %9987
  %9996 = load ptr, ptr %14, align 8, !tbaa !5
  %9997 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %9996, i32 0, i32 3
  %9998 = load i8, ptr %9997, align 1, !tbaa !13
  %9999 = zext i8 %9998 to i32
  %10000 = and i32 %9999, 15
  %10001 = icmp eq i32 6, %10000
  br i1 %10001, label %10002, label %10003

10002:                                            ; preds = %9995
  br label %10095

10003:                                            ; preds = %9995
  %10004 = load ptr, ptr %14, align 8, !tbaa !5
  %10005 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10004, i32 0, i32 3
  %10006 = load i8, ptr %10005, align 1, !tbaa !13
  %10007 = zext i8 %10006 to i32
  %10008 = and i32 %10007, 15
  %10009 = icmp eq i32 7, %10008
  br i1 %10009, label %10010, label %10011

10010:                                            ; preds = %10003
  br label %10093

10011:                                            ; preds = %10003
  %10012 = load ptr, ptr %14, align 8, !tbaa !5
  %10013 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10012, i32 0, i32 3
  %10014 = load i8, ptr %10013, align 1, !tbaa !13
  %10015 = zext i8 %10014 to i32
  %10016 = and i32 %10015, 15
  %10017 = icmp eq i32 8, %10016
  br i1 %10017, label %10018, label %10019

10018:                                            ; preds = %10011
  br label %10091

10019:                                            ; preds = %10011
  %10020 = load ptr, ptr %14, align 8, !tbaa !5
  %10021 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10020, i32 0, i32 3
  %10022 = load i8, ptr %10021, align 1, !tbaa !13
  %10023 = zext i8 %10022 to i32
  %10024 = and i32 %10023, 15
  %10025 = icmp eq i32 9, %10024
  br i1 %10025, label %10026, label %10027

10026:                                            ; preds = %10019
  br label %10089

10027:                                            ; preds = %10019
  %10028 = load ptr, ptr %14, align 8, !tbaa !5
  %10029 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10028, i32 0, i32 3
  %10030 = load i8, ptr %10029, align 1, !tbaa !13
  %10031 = zext i8 %10030 to i32
  %10032 = and i32 %10031, 15
  %10033 = icmp eq i32 10, %10032
  br i1 %10033, label %10034, label %10035

10034:                                            ; preds = %10027
  br label %10087

10035:                                            ; preds = %10027
  %10036 = load ptr, ptr %14, align 8, !tbaa !5
  %10037 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10036, i32 0, i32 3
  %10038 = load i8, ptr %10037, align 1, !tbaa !13
  %10039 = zext i8 %10038 to i32
  %10040 = and i32 %10039, 15
  %10041 = icmp eq i32 11, %10040
  br i1 %10041, label %10042, label %10043

10042:                                            ; preds = %10035
  br label %10085

10043:                                            ; preds = %10035
  %10044 = load ptr, ptr %14, align 8, !tbaa !5
  %10045 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10044, i32 0, i32 3
  %10046 = load i8, ptr %10045, align 1, !tbaa !13
  %10047 = zext i8 %10046 to i32
  %10048 = and i32 %10047, 15
  %10049 = icmp eq i32 12, %10048
  br i1 %10049, label %10050, label %10051

10050:                                            ; preds = %10043
  br label %10083

10051:                                            ; preds = %10043
  %10052 = load ptr, ptr %14, align 8, !tbaa !5
  %10053 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10052, i32 0, i32 3
  %10054 = load i8, ptr %10053, align 1, !tbaa !13
  %10055 = zext i8 %10054 to i32
  %10056 = and i32 %10055, 15
  %10057 = icmp eq i32 13, %10056
  br i1 %10057, label %10058, label %10059

10058:                                            ; preds = %10051
  br label %10081

10059:                                            ; preds = %10051
  %10060 = load ptr, ptr %14, align 8, !tbaa !5
  %10061 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10060, i32 0, i32 3
  %10062 = load i8, ptr %10061, align 1, !tbaa !13
  %10063 = zext i8 %10062 to i32
  %10064 = and i32 %10063, 15
  %10065 = icmp eq i32 14, %10064
  br i1 %10065, label %10066, label %10067

10066:                                            ; preds = %10059
  br label %10079

10067:                                            ; preds = %10059
  %10068 = load ptr, ptr %14, align 8, !tbaa !5
  %10069 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10068, i32 0, i32 3
  %10070 = load i8, ptr %10069, align 1, !tbaa !13
  %10071 = zext i8 %10070 to i32
  %10072 = and i32 %10071, 15
  %10073 = icmp eq i32 15, %10072
  br i1 %10073, label %10074, label %10075

10074:                                            ; preds = %10067
  br label %10077

10075:                                            ; preds = %10067
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 577, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

10076:                                            ; No predecessors!
  br label %10077

10077:                                            ; preds = %10076, %10074
  %10078 = phi i32 [ 15, %10074 ], [ 0, %10076 ]
  br label %10079

10079:                                            ; preds = %10077, %10066
  %10080 = phi i32 [ 14, %10066 ], [ %10078, %10077 ]
  br label %10081

10081:                                            ; preds = %10079, %10058
  %10082 = phi i32 [ 12, %10058 ], [ %10080, %10079 ]
  br label %10083

10083:                                            ; preds = %10081, %10050
  %10084 = phi i32 [ 12, %10050 ], [ %10082, %10081 ]
  br label %10085

10085:                                            ; preds = %10083, %10042
  %10086 = phi i32 [ 10, %10042 ], [ %10084, %10083 ]
  br label %10087

10087:                                            ; preds = %10085, %10034
  %10088 = phi i32 [ 10, %10034 ], [ %10086, %10085 ]
  br label %10089

10089:                                            ; preds = %10087, %10026
  %10090 = phi i32 [ 8, %10026 ], [ %10088, %10087 ]
  br label %10091

10091:                                            ; preds = %10089, %10018
  %10092 = phi i32 [ 8, %10018 ], [ %10090, %10089 ]
  br label %10093

10093:                                            ; preds = %10091, %10010
  %10094 = phi i32 [ 6, %10010 ], [ %10092, %10091 ]
  br label %10095

10095:                                            ; preds = %10093, %10002
  %10096 = phi i32 [ 6, %10002 ], [ %10094, %10093 ]
  br label %10097

10097:                                            ; preds = %10095, %9994
  %10098 = phi i32 [ 5, %9994 ], [ %10096, %10095 ]
  br label %10099

10099:                                            ; preds = %10097, %9986
  %10100 = phi i32 [ 4, %9986 ], [ %10098, %10097 ]
  br label %10101

10101:                                            ; preds = %10099, %9978
  %10102 = phi i32 [ 3, %9978 ], [ %10100, %10099 ]
  br label %10103

10103:                                            ; preds = %10101, %9970
  %10104 = phi i32 [ 2, %9970 ], [ %10102, %10101 ]
  br label %10105

10105:                                            ; preds = %10103, %9962
  %10106 = phi i32 [ 1, %9962 ], [ %10104, %10103 ]
  br label %10107

10107:                                            ; preds = %10105, %9954
  %10108 = phi i32 [ 0, %9954 ], [ %10106, %10105 ]
  br label %10115

10109:                                            ; preds = %9940
  %10110 = load ptr, ptr %14, align 8, !tbaa !5
  %10111 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10110, i32 0, i32 3
  %10112 = load i8, ptr %10111, align 1, !tbaa !13
  %10113 = zext i8 %10112 to i32
  %10114 = ashr i32 %10113, 4
  br label %10115

10115:                                            ; preds = %10109, %10107
  %10116 = phi i32 [ %10108, %10107 ], [ %10114, %10109 ]
  %10117 = icmp eq i32 10, %10116
  br i1 %10117, label %10118, label %10119

10118:                                            ; preds = %10115
  br label %10664

10119:                                            ; preds = %10115
  %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 = ashr i32 %10123, 4
  %10125 = icmp eq i32 0, %10124
  br i1 %10125, label %10126, label %10288

10126:                                            ; preds = %10119
  %10127 = load ptr, ptr %14, align 8, !tbaa !5
  %10128 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10127, i32 0, i32 3
  %10129 = load i8, ptr %10128, align 1, !tbaa !13
  %10130 = zext i8 %10129 to i32
  %10131 = and i32 %10130, 15
  %10132 = icmp eq i32 0, %10131
  br i1 %10132, label %10133, label %10134

10133:                                            ; preds = %10126
  br label %10286

10134:                                            ; preds = %10126
  %10135 = load ptr, ptr %14, align 8, !tbaa !5
  %10136 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10135, i32 0, i32 3
  %10137 = load i8, ptr %10136, align 1, !tbaa !13
  %10138 = zext i8 %10137 to i32
  %10139 = and i32 %10138, 15
  %10140 = icmp eq i32 1, %10139
  br i1 %10140, label %10141, label %10142

10141:                                            ; preds = %10134
  br label %10284

10142:                                            ; preds = %10134
  %10143 = load ptr, ptr %14, align 8, !tbaa !5
  %10144 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10143, i32 0, i32 3
  %10145 = load i8, ptr %10144, align 1, !tbaa !13
  %10146 = zext i8 %10145 to i32
  %10147 = and i32 %10146, 15
  %10148 = icmp eq i32 2, %10147
  br i1 %10148, label %10149, label %10150

10149:                                            ; preds = %10142
  br label %10282

10150:                                            ; preds = %10142
  %10151 = load ptr, ptr %14, align 8, !tbaa !5
  %10152 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10151, i32 0, i32 3
  %10153 = load i8, ptr %10152, align 1, !tbaa !13
  %10154 = zext i8 %10153 to i32
  %10155 = and i32 %10154, 15
  %10156 = icmp eq i32 3, %10155
  br i1 %10156, label %10157, label %10158

10157:                                            ; preds = %10150
  br label %10280

10158:                                            ; preds = %10150
  %10159 = load ptr, ptr %14, align 8, !tbaa !5
  %10160 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10159, i32 0, i32 3
  %10161 = load i8, ptr %10160, align 1, !tbaa !13
  %10162 = zext i8 %10161 to i32
  %10163 = and i32 %10162, 15
  %10164 = icmp eq i32 4, %10163
  br i1 %10164, label %10165, label %10166

10165:                                            ; preds = %10158
  br label %10278

10166:                                            ; preds = %10158
  %10167 = load ptr, ptr %14, align 8, !tbaa !5
  %10168 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10167, i32 0, i32 3
  %10169 = load i8, ptr %10168, align 1, !tbaa !13
  %10170 = zext i8 %10169 to i32
  %10171 = and i32 %10170, 15
  %10172 = icmp eq i32 5, %10171
  br i1 %10172, label %10173, label %10174

10173:                                            ; preds = %10166
  br label %10276

10174:                                            ; preds = %10166
  %10175 = load ptr, ptr %14, align 8, !tbaa !5
  %10176 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10175, i32 0, i32 3
  %10177 = load i8, ptr %10176, align 1, !tbaa !13
  %10178 = zext i8 %10177 to i32
  %10179 = and i32 %10178, 15
  %10180 = icmp eq i32 6, %10179
  br i1 %10180, label %10181, label %10182

10181:                                            ; preds = %10174
  br label %10274

10182:                                            ; preds = %10174
  %10183 = load ptr, ptr %14, align 8, !tbaa !5
  %10184 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10183, i32 0, i32 3
  %10185 = load i8, ptr %10184, align 1, !tbaa !13
  %10186 = zext i8 %10185 to i32
  %10187 = and i32 %10186, 15
  %10188 = icmp eq i32 7, %10187
  br i1 %10188, label %10189, label %10190

10189:                                            ; preds = %10182
  br label %10272

10190:                                            ; preds = %10182
  %10191 = load ptr, ptr %14, align 8, !tbaa !5
  %10192 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10191, i32 0, i32 3
  %10193 = load i8, ptr %10192, align 1, !tbaa !13
  %10194 = zext i8 %10193 to i32
  %10195 = and i32 %10194, 15
  %10196 = icmp eq i32 8, %10195
  br i1 %10196, label %10197, label %10198

10197:                                            ; preds = %10190
  br label %10270

10198:                                            ; preds = %10190
  %10199 = load ptr, ptr %14, align 8, !tbaa !5
  %10200 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10199, i32 0, i32 3
  %10201 = load i8, ptr %10200, align 1, !tbaa !13
  %10202 = zext i8 %10201 to i32
  %10203 = and i32 %10202, 15
  %10204 = icmp eq i32 9, %10203
  br i1 %10204, label %10205, label %10206

10205:                                            ; preds = %10198
  br label %10268

10206:                                            ; preds = %10198
  %10207 = load ptr, ptr %14, align 8, !tbaa !5
  %10208 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10207, i32 0, i32 3
  %10209 = load i8, ptr %10208, align 1, !tbaa !13
  %10210 = zext i8 %10209 to i32
  %10211 = and i32 %10210, 15
  %10212 = icmp eq i32 10, %10211
  br i1 %10212, label %10213, label %10214

10213:                                            ; preds = %10206
  br label %10266

10214:                                            ; preds = %10206
  %10215 = load ptr, ptr %14, align 8, !tbaa !5
  %10216 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10215, i32 0, i32 3
  %10217 = load i8, ptr %10216, align 1, !tbaa !13
  %10218 = zext i8 %10217 to i32
  %10219 = and i32 %10218, 15
  %10220 = icmp eq i32 11, %10219
  br i1 %10220, label %10221, label %10222

10221:                                            ; preds = %10214
  br label %10264

10222:                                            ; preds = %10214
  %10223 = load ptr, ptr %14, align 8, !tbaa !5
  %10224 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10223, i32 0, i32 3
  %10225 = load i8, ptr %10224, align 1, !tbaa !13
  %10226 = zext i8 %10225 to i32
  %10227 = and i32 %10226, 15
  %10228 = icmp eq i32 12, %10227
  br i1 %10228, label %10229, label %10230

10229:                                            ; preds = %10222
  br label %10262

10230:                                            ; preds = %10222
  %10231 = load ptr, ptr %14, align 8, !tbaa !5
  %10232 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10231, i32 0, i32 3
  %10233 = load i8, ptr %10232, align 1, !tbaa !13
  %10234 = zext i8 %10233 to i32
  %10235 = and i32 %10234, 15
  %10236 = icmp eq i32 13, %10235
  br i1 %10236, label %10237, label %10238

10237:                                            ; preds = %10230
  br label %10260

10238:                                            ; preds = %10230
  %10239 = load ptr, ptr %14, align 8, !tbaa !5
  %10240 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10239, i32 0, i32 3
  %10241 = load i8, ptr %10240, align 1, !tbaa !13
  %10242 = zext i8 %10241 to i32
  %10243 = and i32 %10242, 15
  %10244 = icmp eq i32 14, %10243
  br i1 %10244, label %10245, label %10246

10245:                                            ; preds = %10238
  br label %10258

10246:                                            ; preds = %10238
  %10247 = load ptr, ptr %14, align 8, !tbaa !5
  %10248 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10247, i32 0, i32 3
  %10249 = load i8, ptr %10248, align 1, !tbaa !13
  %10250 = zext i8 %10249 to i32
  %10251 = and i32 %10250, 15
  %10252 = icmp eq i32 15, %10251
  br i1 %10252, label %10253, label %10254

10253:                                            ; preds = %10246
  br label %10256

10254:                                            ; preds = %10246
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 577, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

10255:                                            ; No predecessors!
  br label %10256

10256:                                            ; preds = %10255, %10253
  %10257 = phi i32 [ 15, %10253 ], [ 0, %10255 ]
  br label %10258

10258:                                            ; preds = %10256, %10245
  %10259 = phi i32 [ 14, %10245 ], [ %10257, %10256 ]
  br label %10260

10260:                                            ; preds = %10258, %10237
  %10261 = phi i32 [ 12, %10237 ], [ %10259, %10258 ]
  br label %10262

10262:                                            ; preds = %10260, %10229
  %10263 = phi i32 [ 12, %10229 ], [ %10261, %10260 ]
  br label %10264

10264:                                            ; preds = %10262, %10221
  %10265 = phi i32 [ 10, %10221 ], [ %10263, %10262 ]
  br label %10266

10266:                                            ; preds = %10264, %10213
  %10267 = phi i32 [ 10, %10213 ], [ %10265, %10264 ]
  br label %10268

10268:                                            ; preds = %10266, %10205
  %10269 = phi i32 [ 8, %10205 ], [ %10267, %10266 ]
  br label %10270

10270:                                            ; preds = %10268, %10197
  %10271 = phi i32 [ 8, %10197 ], [ %10269, %10268 ]
  br label %10272

10272:                                            ; preds = %10270, %10189
  %10273 = phi i32 [ 6, %10189 ], [ %10271, %10270 ]
  br label %10274

10274:                                            ; preds = %10272, %10181
  %10275 = phi i32 [ 6, %10181 ], [ %10273, %10272 ]
  br label %10276

10276:                                            ; preds = %10274, %10173
  %10277 = phi i32 [ 5, %10173 ], [ %10275, %10274 ]
  br label %10278

10278:                                            ; preds = %10276, %10165
  %10279 = phi i32 [ 4, %10165 ], [ %10277, %10276 ]
  br label %10280

10280:                                            ; preds = %10278, %10157
  %10281 = phi i32 [ 3, %10157 ], [ %10279, %10278 ]
  br label %10282

10282:                                            ; preds = %10280, %10149
  %10283 = phi i32 [ 2, %10149 ], [ %10281, %10280 ]
  br label %10284

10284:                                            ; preds = %10282, %10141
  %10285 = phi i32 [ 1, %10141 ], [ %10283, %10282 ]
  br label %10286

10286:                                            ; preds = %10284, %10133
  %10287 = phi i32 [ 0, %10133 ], [ %10285, %10284 ]
  br label %10294

10288:                                            ; preds = %10119
  %10289 = load ptr, ptr %14, align 8, !tbaa !5
  %10290 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10289, i32 0, i32 3
  %10291 = load i8, ptr %10290, align 1, !tbaa !13
  %10292 = zext i8 %10291 to i32
  %10293 = ashr i32 %10292, 4
  br label %10294

10294:                                            ; preds = %10288, %10286
  %10295 = phi i32 [ %10287, %10286 ], [ %10293, %10288 ]
  %10296 = icmp eq i32 11, %10295
  br i1 %10296, label %10297, label %10298

10297:                                            ; preds = %10294
  br label %10662

10298:                                            ; preds = %10294
  %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 = ashr i32 %10302, 4
  %10304 = icmp eq i32 0, %10303
  br i1 %10304, label %10305, label %10467

10305:                                            ; preds = %10298
  %10306 = load ptr, ptr %14, align 8, !tbaa !5
  %10307 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10306, i32 0, i32 3
  %10308 = load i8, ptr %10307, align 1, !tbaa !13
  %10309 = zext i8 %10308 to i32
  %10310 = and i32 %10309, 15
  %10311 = icmp eq i32 0, %10310
  br i1 %10311, label %10312, label %10313

10312:                                            ; preds = %10305
  br label %10465

10313:                                            ; preds = %10305
  %10314 = load ptr, ptr %14, align 8, !tbaa !5
  %10315 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10314, i32 0, i32 3
  %10316 = load i8, ptr %10315, align 1, !tbaa !13
  %10317 = zext i8 %10316 to i32
  %10318 = and i32 %10317, 15
  %10319 = icmp eq i32 1, %10318
  br i1 %10319, label %10320, label %10321

10320:                                            ; preds = %10313
  br label %10463

10321:                                            ; preds = %10313
  %10322 = load ptr, ptr %14, align 8, !tbaa !5
  %10323 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10322, i32 0, i32 3
  %10324 = load i8, ptr %10323, align 1, !tbaa !13
  %10325 = zext i8 %10324 to i32
  %10326 = and i32 %10325, 15
  %10327 = icmp eq i32 2, %10326
  br i1 %10327, label %10328, label %10329

10328:                                            ; preds = %10321
  br label %10461

10329:                                            ; preds = %10321
  %10330 = load ptr, ptr %14, align 8, !tbaa !5
  %10331 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10330, i32 0, i32 3
  %10332 = load i8, ptr %10331, align 1, !tbaa !13
  %10333 = zext i8 %10332 to i32
  %10334 = and i32 %10333, 15
  %10335 = icmp eq i32 3, %10334
  br i1 %10335, label %10336, label %10337

10336:                                            ; preds = %10329
  br label %10459

10337:                                            ; preds = %10329
  %10338 = load ptr, ptr %14, align 8, !tbaa !5
  %10339 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10338, i32 0, i32 3
  %10340 = load i8, ptr %10339, align 1, !tbaa !13
  %10341 = zext i8 %10340 to i32
  %10342 = and i32 %10341, 15
  %10343 = icmp eq i32 4, %10342
  br i1 %10343, label %10344, label %10345

10344:                                            ; preds = %10337
  br label %10457

10345:                                            ; preds = %10337
  %10346 = load ptr, ptr %14, align 8, !tbaa !5
  %10347 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10346, i32 0, i32 3
  %10348 = load i8, ptr %10347, align 1, !tbaa !13
  %10349 = zext i8 %10348 to i32
  %10350 = and i32 %10349, 15
  %10351 = icmp eq i32 5, %10350
  br i1 %10351, label %10352, label %10353

10352:                                            ; preds = %10345
  br label %10455

10353:                                            ; preds = %10345
  %10354 = load ptr, ptr %14, align 8, !tbaa !5
  %10355 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10354, i32 0, i32 3
  %10356 = load i8, ptr %10355, align 1, !tbaa !13
  %10357 = zext i8 %10356 to i32
  %10358 = and i32 %10357, 15
  %10359 = icmp eq i32 6, %10358
  br i1 %10359, label %10360, label %10361

10360:                                            ; preds = %10353
  br label %10453

10361:                                            ; preds = %10353
  %10362 = load ptr, ptr %14, align 8, !tbaa !5
  %10363 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10362, i32 0, i32 3
  %10364 = load i8, ptr %10363, align 1, !tbaa !13
  %10365 = zext i8 %10364 to i32
  %10366 = and i32 %10365, 15
  %10367 = icmp eq i32 7, %10366
  br i1 %10367, label %10368, label %10369

10368:                                            ; preds = %10361
  br label %10451

10369:                                            ; preds = %10361
  %10370 = load ptr, ptr %14, align 8, !tbaa !5
  %10371 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10370, i32 0, i32 3
  %10372 = load i8, ptr %10371, align 1, !tbaa !13
  %10373 = zext i8 %10372 to i32
  %10374 = and i32 %10373, 15
  %10375 = icmp eq i32 8, %10374
  br i1 %10375, label %10376, label %10377

10376:                                            ; preds = %10369
  br label %10449

10377:                                            ; preds = %10369
  %10378 = load ptr, ptr %14, align 8, !tbaa !5
  %10379 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10378, i32 0, i32 3
  %10380 = load i8, ptr %10379, align 1, !tbaa !13
  %10381 = zext i8 %10380 to i32
  %10382 = and i32 %10381, 15
  %10383 = icmp eq i32 9, %10382
  br i1 %10383, label %10384, label %10385

10384:                                            ; preds = %10377
  br label %10447

10385:                                            ; preds = %10377
  %10386 = load ptr, ptr %14, align 8, !tbaa !5
  %10387 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10386, i32 0, i32 3
  %10388 = load i8, ptr %10387, align 1, !tbaa !13
  %10389 = zext i8 %10388 to i32
  %10390 = and i32 %10389, 15
  %10391 = icmp eq i32 10, %10390
  br i1 %10391, label %10392, label %10393

10392:                                            ; preds = %10385
  br label %10445

10393:                                            ; preds = %10385
  %10394 = load ptr, ptr %14, align 8, !tbaa !5
  %10395 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10394, i32 0, i32 3
  %10396 = load i8, ptr %10395, align 1, !tbaa !13
  %10397 = zext i8 %10396 to i32
  %10398 = and i32 %10397, 15
  %10399 = icmp eq i32 11, %10398
  br i1 %10399, label %10400, label %10401

10400:                                            ; preds = %10393
  br label %10443

10401:                                            ; preds = %10393
  %10402 = load ptr, ptr %14, align 8, !tbaa !5
  %10403 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10402, i32 0, i32 3
  %10404 = load i8, ptr %10403, align 1, !tbaa !13
  %10405 = zext i8 %10404 to i32
  %10406 = and i32 %10405, 15
  %10407 = icmp eq i32 12, %10406
  br i1 %10407, label %10408, label %10409

10408:                                            ; preds = %10401
  br label %10441

10409:                                            ; preds = %10401
  %10410 = load ptr, ptr %14, align 8, !tbaa !5
  %10411 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10410, i32 0, i32 3
  %10412 = load i8, ptr %10411, align 1, !tbaa !13
  %10413 = zext i8 %10412 to i32
  %10414 = and i32 %10413, 15
  %10415 = icmp eq i32 13, %10414
  br i1 %10415, label %10416, label %10417

10416:                                            ; preds = %10409
  br label %10439

10417:                                            ; preds = %10409
  %10418 = load ptr, ptr %14, align 8, !tbaa !5
  %10419 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10418, i32 0, i32 3
  %10420 = load i8, ptr %10419, align 1, !tbaa !13
  %10421 = zext i8 %10420 to i32
  %10422 = and i32 %10421, 15
  %10423 = icmp eq i32 14, %10422
  br i1 %10423, label %10424, label %10425

10424:                                            ; preds = %10417
  br label %10437

10425:                                            ; preds = %10417
  %10426 = load ptr, ptr %14, align 8, !tbaa !5
  %10427 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10426, i32 0, i32 3
  %10428 = load i8, ptr %10427, align 1, !tbaa !13
  %10429 = zext i8 %10428 to i32
  %10430 = and i32 %10429, 15
  %10431 = icmp eq i32 15, %10430
  br i1 %10431, label %10432, label %10433

10432:                                            ; preds = %10425
  br label %10435

10433:                                            ; preds = %10425
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 577, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

10434:                                            ; No predecessors!
  br label %10435

10435:                                            ; preds = %10434, %10432
  %10436 = phi i32 [ 15, %10432 ], [ 0, %10434 ]
  br label %10437

10437:                                            ; preds = %10435, %10424
  %10438 = phi i32 [ 14, %10424 ], [ %10436, %10435 ]
  br label %10439

10439:                                            ; preds = %10437, %10416
  %10440 = phi i32 [ 12, %10416 ], [ %10438, %10437 ]
  br label %10441

10441:                                            ; preds = %10439, %10408
  %10442 = phi i32 [ 12, %10408 ], [ %10440, %10439 ]
  br label %10443

10443:                                            ; preds = %10441, %10400
  %10444 = phi i32 [ 10, %10400 ], [ %10442, %10441 ]
  br label %10445

10445:                                            ; preds = %10443, %10392
  %10446 = phi i32 [ 10, %10392 ], [ %10444, %10443 ]
  br label %10447

10447:                                            ; preds = %10445, %10384
  %10448 = phi i32 [ 8, %10384 ], [ %10446, %10445 ]
  br label %10449

10449:                                            ; preds = %10447, %10376
  %10450 = phi i32 [ 8, %10376 ], [ %10448, %10447 ]
  br label %10451

10451:                                            ; preds = %10449, %10368
  %10452 = phi i32 [ 6, %10368 ], [ %10450, %10449 ]
  br label %10453

10453:                                            ; preds = %10451, %10360
  %10454 = phi i32 [ 6, %10360 ], [ %10452, %10451 ]
  br label %10455

10455:                                            ; preds = %10453, %10352
  %10456 = phi i32 [ 5, %10352 ], [ %10454, %10453 ]
  br label %10457

10457:                                            ; preds = %10455, %10344
  %10458 = phi i32 [ 4, %10344 ], [ %10456, %10455 ]
  br label %10459

10459:                                            ; preds = %10457, %10336
  %10460 = phi i32 [ 3, %10336 ], [ %10458, %10457 ]
  br label %10461

10461:                                            ; preds = %10459, %10328
  %10462 = phi i32 [ 2, %10328 ], [ %10460, %10459 ]
  br label %10463

10463:                                            ; preds = %10461, %10320
  %10464 = phi i32 [ 1, %10320 ], [ %10462, %10461 ]
  br label %10465

10465:                                            ; preds = %10463, %10312
  %10466 = phi i32 [ 0, %10312 ], [ %10464, %10463 ]
  br label %10473

10467:                                            ; preds = %10298
  %10468 = load ptr, ptr %14, align 8, !tbaa !5
  %10469 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10468, i32 0, i32 3
  %10470 = load i8, ptr %10469, align 1, !tbaa !13
  %10471 = zext i8 %10470 to i32
  %10472 = ashr i32 %10471, 4
  br label %10473

10473:                                            ; preds = %10467, %10465
  %10474 = phi i32 [ %10466, %10465 ], [ %10472, %10467 ]
  %10475 = icmp eq i32 12, %10474
  br i1 %10475, label %10476, label %10477

10476:                                            ; preds = %10473
  br label %10660

10477:                                            ; preds = %10473
  %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 = ashr i32 %10481, 4
  %10483 = icmp eq i32 0, %10482
  br i1 %10483, label %10484, label %10646

10484:                                            ; preds = %10477
  %10485 = load ptr, ptr %14, align 8, !tbaa !5
  %10486 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10485, i32 0, i32 3
  %10487 = load i8, ptr %10486, align 1, !tbaa !13
  %10488 = zext i8 %10487 to i32
  %10489 = and i32 %10488, 15
  %10490 = icmp eq i32 0, %10489
  br i1 %10490, label %10491, label %10492

10491:                                            ; preds = %10484
  br label %10644

10492:                                            ; preds = %10484
  %10493 = load ptr, ptr %14, align 8, !tbaa !5
  %10494 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10493, i32 0, i32 3
  %10495 = load i8, ptr %10494, align 1, !tbaa !13
  %10496 = zext i8 %10495 to i32
  %10497 = and i32 %10496, 15
  %10498 = icmp eq i32 1, %10497
  br i1 %10498, label %10499, label %10500

10499:                                            ; preds = %10492
  br label %10642

10500:                                            ; preds = %10492
  %10501 = load ptr, ptr %14, align 8, !tbaa !5
  %10502 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10501, i32 0, i32 3
  %10503 = load i8, ptr %10502, align 1, !tbaa !13
  %10504 = zext i8 %10503 to i32
  %10505 = and i32 %10504, 15
  %10506 = icmp eq i32 2, %10505
  br i1 %10506, label %10507, label %10508

10507:                                            ; preds = %10500
  br label %10640

10508:                                            ; preds = %10500
  %10509 = load ptr, ptr %14, align 8, !tbaa !5
  %10510 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10509, i32 0, i32 3
  %10511 = load i8, ptr %10510, align 1, !tbaa !13
  %10512 = zext i8 %10511 to i32
  %10513 = and i32 %10512, 15
  %10514 = icmp eq i32 3, %10513
  br i1 %10514, label %10515, label %10516

10515:                                            ; preds = %10508
  br label %10638

10516:                                            ; preds = %10508
  %10517 = load ptr, ptr %14, align 8, !tbaa !5
  %10518 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10517, i32 0, i32 3
  %10519 = load i8, ptr %10518, align 1, !tbaa !13
  %10520 = zext i8 %10519 to i32
  %10521 = and i32 %10520, 15
  %10522 = icmp eq i32 4, %10521
  br i1 %10522, label %10523, label %10524

10523:                                            ; preds = %10516
  br label %10636

10524:                                            ; preds = %10516
  %10525 = load ptr, ptr %14, align 8, !tbaa !5
  %10526 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10525, i32 0, i32 3
  %10527 = load i8, ptr %10526, align 1, !tbaa !13
  %10528 = zext i8 %10527 to i32
  %10529 = and i32 %10528, 15
  %10530 = icmp eq i32 5, %10529
  br i1 %10530, label %10531, label %10532

10531:                                            ; preds = %10524
  br label %10634

10532:                                            ; preds = %10524
  %10533 = load ptr, ptr %14, align 8, !tbaa !5
  %10534 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10533, i32 0, i32 3
  %10535 = load i8, ptr %10534, align 1, !tbaa !13
  %10536 = zext i8 %10535 to i32
  %10537 = and i32 %10536, 15
  %10538 = icmp eq i32 6, %10537
  br i1 %10538, label %10539, label %10540

10539:                                            ; preds = %10532
  br label %10632

10540:                                            ; preds = %10532
  %10541 = load ptr, ptr %14, align 8, !tbaa !5
  %10542 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10541, i32 0, i32 3
  %10543 = load i8, ptr %10542, align 1, !tbaa !13
  %10544 = zext i8 %10543 to i32
  %10545 = and i32 %10544, 15
  %10546 = icmp eq i32 7, %10545
  br i1 %10546, label %10547, label %10548

10547:                                            ; preds = %10540
  br label %10630

10548:                                            ; preds = %10540
  %10549 = load ptr, ptr %14, align 8, !tbaa !5
  %10550 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10549, i32 0, i32 3
  %10551 = load i8, ptr %10550, align 1, !tbaa !13
  %10552 = zext i8 %10551 to i32
  %10553 = and i32 %10552, 15
  %10554 = icmp eq i32 8, %10553
  br i1 %10554, label %10555, label %10556

10555:                                            ; preds = %10548
  br label %10628

10556:                                            ; preds = %10548
  %10557 = load ptr, ptr %14, align 8, !tbaa !5
  %10558 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10557, i32 0, i32 3
  %10559 = load i8, ptr %10558, align 1, !tbaa !13
  %10560 = zext i8 %10559 to i32
  %10561 = and i32 %10560, 15
  %10562 = icmp eq i32 9, %10561
  br i1 %10562, label %10563, label %10564

10563:                                            ; preds = %10556
  br label %10626

10564:                                            ; preds = %10556
  %10565 = load ptr, ptr %14, align 8, !tbaa !5
  %10566 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10565, i32 0, i32 3
  %10567 = load i8, ptr %10566, align 1, !tbaa !13
  %10568 = zext i8 %10567 to i32
  %10569 = and i32 %10568, 15
  %10570 = icmp eq i32 10, %10569
  br i1 %10570, label %10571, label %10572

10571:                                            ; preds = %10564
  br label %10624

10572:                                            ; preds = %10564
  %10573 = load ptr, ptr %14, align 8, !tbaa !5
  %10574 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10573, i32 0, i32 3
  %10575 = load i8, ptr %10574, align 1, !tbaa !13
  %10576 = zext i8 %10575 to i32
  %10577 = and i32 %10576, 15
  %10578 = icmp eq i32 11, %10577
  br i1 %10578, label %10579, label %10580

10579:                                            ; preds = %10572
  br label %10622

10580:                                            ; preds = %10572
  %10581 = load ptr, ptr %14, align 8, !tbaa !5
  %10582 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10581, i32 0, i32 3
  %10583 = load i8, ptr %10582, align 1, !tbaa !13
  %10584 = zext i8 %10583 to i32
  %10585 = and i32 %10584, 15
  %10586 = icmp eq i32 12, %10585
  br i1 %10586, label %10587, label %10588

10587:                                            ; preds = %10580
  br label %10620

10588:                                            ; preds = %10580
  %10589 = load ptr, ptr %14, align 8, !tbaa !5
  %10590 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10589, i32 0, i32 3
  %10591 = load i8, ptr %10590, align 1, !tbaa !13
  %10592 = zext i8 %10591 to i32
  %10593 = and i32 %10592, 15
  %10594 = icmp eq i32 13, %10593
  br i1 %10594, label %10595, label %10596

10595:                                            ; preds = %10588
  br label %10618

10596:                                            ; preds = %10588
  %10597 = load ptr, ptr %14, align 8, !tbaa !5
  %10598 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10597, i32 0, i32 3
  %10599 = load i8, ptr %10598, align 1, !tbaa !13
  %10600 = zext i8 %10599 to i32
  %10601 = and i32 %10600, 15
  %10602 = icmp eq i32 14, %10601
  br i1 %10602, label %10603, label %10604

10603:                                            ; preds = %10596
  br label %10616

10604:                                            ; preds = %10596
  %10605 = load ptr, ptr %14, align 8, !tbaa !5
  %10606 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10605, i32 0, i32 3
  %10607 = load i8, ptr %10606, align 1, !tbaa !13
  %10608 = zext i8 %10607 to i32
  %10609 = and i32 %10608, 15
  %10610 = icmp eq i32 15, %10609
  br i1 %10610, label %10611, label %10612

10611:                                            ; preds = %10604
  br label %10614

10612:                                            ; preds = %10604
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 577, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

10613:                                            ; No predecessors!
  br label %10614

10614:                                            ; preds = %10613, %10611
  %10615 = phi i32 [ 15, %10611 ], [ 0, %10613 ]
  br label %10616

10616:                                            ; preds = %10614, %10603
  %10617 = phi i32 [ 14, %10603 ], [ %10615, %10614 ]
  br label %10618

10618:                                            ; preds = %10616, %10595
  %10619 = phi i32 [ 12, %10595 ], [ %10617, %10616 ]
  br label %10620

10620:                                            ; preds = %10618, %10587
  %10621 = phi i32 [ 12, %10587 ], [ %10619, %10618 ]
  br label %10622

10622:                                            ; preds = %10620, %10579
  %10623 = phi i32 [ 10, %10579 ], [ %10621, %10620 ]
  br label %10624

10624:                                            ; preds = %10622, %10571
  %10625 = phi i32 [ 10, %10571 ], [ %10623, %10622 ]
  br label %10626

10626:                                            ; preds = %10624, %10563
  %10627 = phi i32 [ 8, %10563 ], [ %10625, %10624 ]
  br label %10628

10628:                                            ; preds = %10626, %10555
  %10629 = phi i32 [ 8, %10555 ], [ %10627, %10626 ]
  br label %10630

10630:                                            ; preds = %10628, %10547
  %10631 = phi i32 [ 6, %10547 ], [ %10629, %10628 ]
  br label %10632

10632:                                            ; preds = %10630, %10539
  %10633 = phi i32 [ 6, %10539 ], [ %10631, %10630 ]
  br label %10634

10634:                                            ; preds = %10632, %10531
  %10635 = phi i32 [ 5, %10531 ], [ %10633, %10632 ]
  br label %10636

10636:                                            ; preds = %10634, %10523
  %10637 = phi i32 [ 4, %10523 ], [ %10635, %10634 ]
  br label %10638

10638:                                            ; preds = %10636, %10515
  %10639 = phi i32 [ 3, %10515 ], [ %10637, %10636 ]
  br label %10640

10640:                                            ; preds = %10638, %10507
  %10641 = phi i32 [ 2, %10507 ], [ %10639, %10638 ]
  br label %10642

10642:                                            ; preds = %10640, %10499
  %10643 = phi i32 [ 1, %10499 ], [ %10641, %10640 ]
  br label %10644

10644:                                            ; preds = %10642, %10491
  %10645 = phi i32 [ 0, %10491 ], [ %10643, %10642 ]
  br label %10652

10646:                                            ; preds = %10477
  %10647 = load ptr, ptr %14, align 8, !tbaa !5
  %10648 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %10647, i32 0, i32 3
  %10649 = load i8, ptr %10648, align 1, !tbaa !13
  %10650 = zext i8 %10649 to i32
  %10651 = ashr i32 %10650, 4
  br label %10652

10652:                                            ; preds = %10646, %10644
  %10653 = phi i32 [ %10645, %10644 ], [ %10651, %10646 ]
  %10654 = icmp eq i32 13, %10653
  br i1 %10654, label %10655, label %10656

10655:                                            ; preds = %10652
  br label %10658

10656:                                            ; preds = %10652
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 577, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

10657:                                            ; No predecessors!
  br label %10658

10658:                                            ; preds = %10657, %10655
  %10659 = phi i32 [ 1, %10655 ], [ 0, %10657 ]
  br label %10660

10660:                                            ; preds = %10658, %10476
  %10661 = phi i32 [ 1, %10476 ], [ %10659, %10658 ]
  br label %10662

10662:                                            ; preds = %10660, %10297
  %10663 = phi i32 [ 2, %10297 ], [ %10661, %10660 ]
  br label %10664

10664:                                            ; preds = %10662, %10118
  %10665 = phi i32 [ 2, %10118 ], [ %10663, %10662 ]
  br label %10666

10666:                                            ; preds = %10664, %9939
  %10667 = phi i32 [ 4, %9939 ], [ %10665, %10664 ]
  br label %10668

10668:                                            ; preds = %10666, %9760
  %10669 = phi i32 [ 4, %9760 ], [ %10667, %10666 ]
  br label %10670

10670:                                            ; preds = %10668, %9581
  %10671 = phi i32 [ 8, %9581 ], [ %10669, %10668 ]
  br label %10672

10672:                                            ; preds = %10670, %9402
  %10673 = phi i32 [ 8, %9402 ], [ %10671, %10670 ]
  br label %10674

10674:                                            ; preds = %10672, %9223
  %10675 = phi i32 [ 1, %9223 ], [ %10673, %10672 ]
  br label %10676

10676:                                            ; preds = %10674, %9044
  %10677 = phi i32 [ 1, %9044 ], [ %10675, %10674 ]
  br label %10678

10678:                                            ; preds = %10676, %8865
  %10679 = phi i32 [ 2, %8865 ], [ %10677, %10676 ]
  br label %10680

10680:                                            ; preds = %10678, %8686
  %10681 = phi i32 [ 2, %8686 ], [ %10679, %10678 ]
  br label %10682

10682:                                            ; preds = %10680, %8507
  %10683 = phi i32 [ 4, %8507 ], [ %10681, %10680 ]
  br label %10684

10684:                                            ; preds = %10682, %8328
  %10685 = phi i32 [ 8, %8328 ], [ %10683, %10682 ]
  %10686 = load i32, ptr %30, align 4, !tbaa !9
  %10687 = load i32, ptr %31, align 4, !tbaa !9
  %10688 = trunc i32 %10687 to i8
  %10689 = zext i8 %10688 to i32
  %10690 = icmp eq i32 0, %10689
  br i1 %10690, label %10696, label %10691

10691:                                            ; preds = %10684
  %10692 = load i32, ptr %31, align 4, !tbaa !9
  %10693 = trunc i32 %10692 to i8
  %10694 = zext i8 %10693 to i32
  %10695 = icmp slt i32 0, %10694
  br i1 %10695, label %10696, label %10714

10696:                                            ; preds = %10691, %10684
  %10697 = load i32, ptr %31, align 4, !tbaa !9
  %10698 = zext i32 %10697 to i64
  %10699 = mul i64 1, %10698
  %10700 = icmp ult i64 %10699, 255
  br i1 %10700, label %10701, label %10705

10701:                                            ; preds = %10696
  %10702 = load i32, ptr %31, align 4, !tbaa !9
  %10703 = zext i32 %10702 to i64
  %10704 = mul i64 1, %10703
  br label %10706

10705:                                            ; preds = %10696
  br label %10706

10706:                                            ; preds = %10705, %10701
  %10707 = phi i64 [ %10704, %10701 ], [ 255, %10705 ]
  %10708 = icmp ule i64 %10707, 255
  br i1 %10708, label %10709, label %10714

10709:                                            ; preds = %10706
  %10710 = load i32, ptr %31, align 4, !tbaa !9
  %10711 = uitofp i32 %10710 to double
  %10712 = fcmp ole double 0.000000e+00, %10711
  br i1 %10712, label %10713, label %10714

10713:                                            ; preds = %10709
  br label %10715

10714:                                            ; preds = %10709, %10706, %10691
  call void @__assert_fail(ptr noundef @.str.5, ptr noundef @.str.1, i32 noundef 577, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #5
  unreachable

10715:                                            ; preds = %10713
  %10716 = load i32, ptr %31, align 4, !tbaa !9
  %10717 = trunc i32 %10716 to i8
  %10718 = load i8, ptr %27, align 1, !tbaa !16
  call void @libxsmm_generator_vloadstore_masked_vreg_aarch64(ptr noundef %8143, i32 noundef %8146, i32 noundef %8149, i32 noundef %8150, i32 noundef %10685, i32 noundef %10686, i32 noundef 1, i32 noundef 1, i8 noundef zeroext %10717, i8 noundef zeroext %10718)
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #4
  br label %10719

10719:                                            ; preds = %10715
  %10720 = load i32, ptr %22, align 4, !tbaa !9
  %10721 = add i32 %10720, 1
  store i32 %10721, ptr %22, align 4, !tbaa !9
  br label %7686, !llvm.loop !32

10722:                                            ; preds = %7686
  %10723 = load i32, ptr %25, align 4, !tbaa !9
  %10724 = load i32, ptr %26, align 4, !tbaa !9
  %10725 = icmp ne i32 %10723, %10724
  br i1 %10725, label %10726, label %10742

10726:                                            ; preds = %10722
  %10727 = load ptr, ptr %11, align 8, !tbaa !5
  %10728 = load ptr, ptr %12, align 8, !tbaa !5
  %10729 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %10728, i32 0, i32 5
  %10730 = load i32, ptr %10729, align 4, !tbaa !27
  %10731 = load ptr, ptr %12, align 8, !tbaa !5
  %10732 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %10731, i32 0, i32 15
  %10733 = load i32, ptr %10732, align 4, !tbaa !31
  %10734 = load ptr, ptr %12, align 8, !tbaa !5
  %10735 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %10734, i32 0, i32 5
  %10736 = load i32, ptr %10735, align 4, !tbaa !27
  %10737 = load i32, ptr %25, align 4, !tbaa !9
  %10738 = zext i32 %10737 to i64
  %10739 = load i32, ptr %26, align 4, !tbaa !9
  %10740 = zext i32 %10739 to i64
  %10741 = sub nsw i64 %10738, %10740
  call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %10727, i32 noundef 4096, i32 noundef %10730, i32 noundef %10733, i32 noundef %10736, i64 noundef %10741)
  br label %10742

10742:                                            ; preds = %10726, %10722
  br label %10743

10743:                                            ; preds = %10742
  %10744 = load i32, ptr %21, align 4, !tbaa !9
  %10745 = add i32 %10744, 1
  store i32 %10745, ptr %21, align 4, !tbaa !9
  br label %7681, !llvm.loop !34

10746:                                            ; preds = %7681
  %10747 = load ptr, ptr %11, align 8, !tbaa !5
  %10748 = load ptr, ptr %12, align 8, !tbaa !5
  %10749 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %10748, i32 0, i32 5
  %10750 = load i32, ptr %10749, align 4, !tbaa !27
  %10751 = load ptr, ptr %12, align 8, !tbaa !5
  %10752 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %10751, i32 0, i32 15
  %10753 = load i32, ptr %10752, align 4, !tbaa !31
  %10754 = load ptr, ptr %12, align 8, !tbaa !5
  %10755 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %10754, i32 0, i32 5
  %10756 = load i32, ptr %10755, align 4, !tbaa !27
  %10757 = load i32, ptr %25, align 4, !tbaa !9
  %10758 = zext i32 %10757 to i64
  %10759 = load i32, ptr %18, align 4, !tbaa !9
  %10760 = zext i32 %10759 to i64
  %10761 = mul nsw i64 %10758, %10760
  call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %10747, i32 noundef 4097, i32 noundef %10750, i32 noundef %10753, i32 noundef %10756, i64 noundef %10761)
  store i32 0, ptr %28, align 4
  br label %10762

10762:                                            ; preds = %10746, %7679
  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
  %10763 = load i32, ptr %28, align 4
  switch i32 %10763, label %10765 [
    i32 0, label %10764
    i32 1, label %10764
  ]

10764:                                            ; preds = %10762, %10762
  ret void

10765:                                            ; preds = %10762
  unreachable
}

declare void @libxsmm_generator_vcvt_f32bf16_aarch64(ptr 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 128}
!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 60}
!32 = distinct !{!32, !33}
!33 = !{!"llvm.loop.mustprogress"}
!34 = distinct !{!34, !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_store_2d_reg_block_aarch64 = external hidden unnamed_addr constant [275 x i8], align 1
@switch.table.libxsmm_generator_mateqn_store_2d_reg_block_aarch64.3 = 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 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

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_mateqn_store_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 %.thread2206

19:                                               ; preds = %10
  %.mask = and i8 %15, -16
  %20 = icmp eq i8 %.mask, 16
  br i1 %20, label %.thread2148, label %21

21:                                               ; preds = %19
  %22 = and i8 %15, -32
  %or.cond2946 = icmp eq i8 %22, 32
  br i1 %or.cond2946, label %.thread2148, label %23

23:                                               ; preds = %21
  %24 = and i8 %15, -32
  %or.cond2947 = icmp eq i8 %24, 64
  br i1 %or.cond2947, label %.thread2148, label %25

25:                                               ; preds = %23
  %26 = and i8 %15, -32
  %or.cond2948 = icmp eq i8 %26, 96
  br i1 %or.cond2948, label %.thread2148, label %27

27:                                               ; preds = %25
  %28 = and i8 %15, -32
  %or.cond2949 = icmp eq i8 %28, -128
  br i1 %or.cond2949, label %.thread2148, label %29

29:                                               ; preds = %27
  %30 = and i8 %15, -32
  %or.cond2950 = icmp eq i8 %30, -96
  br i1 %or.cond2950, label %.thread2148, label %31

31:                                               ; preds = %29
  %32 = and i8 %15, -32
  %or.cond2951 = icmp eq i8 %32, -64
  br i1 %or.cond2951, label %.thread2148, label %.thread2206

.thread2206:                                      ; preds = %17, %31
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 558, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_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_store_2d_reg_block_aarch64.3, i64 0, i64 %33
  %switch.load = load i32, ptr %switch.gep, align 4
  br label %.thread2148

.thread2148:                                      ; 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 = %.thread2148
  br i1 %16, label %switch.lookup2986, label %38

38:                                               ; preds = %37
  %.mask2919 = and i8 %15, -16
  %39 = icmp eq i8 %.mask2919, 16
  br i1 %39, label %.thread2322, label %40

40:                                               ; preds = %38
  %41 = and i8 %15, -32
  %or.cond2952 = icmp eq i8 %41, 32
  br i1 %or.cond2952, label %.thread2322, label %42

42:                                               ; preds = %40
  %43 = and i8 %15, -32
  %or.cond2953 = icmp eq i8 %43, 64
  br i1 %or.cond2953, label %.thread2322, label %44

44:                                               ; preds = %42
  %45 = and i8 %15, -32
  %or.cond2954 = icmp eq i8 %45, 96
  br i1 %or.cond2954, label %.thread2322, label %46

46:                                               ; preds = %44
  %47 = and i8 %15, -32
  %or.cond2955 = icmp eq i8 %47, -128
  br i1 %or.cond2955, label %.thread2322, label %48

48:                                               ; preds = %46
  %49 = and i8 %15, -32
  %or.cond2956 = icmp eq i8 %49, -96
  br i1 %or.cond2956, label %.thread2322, label %50

50:                                               ; preds = %48
  %51 = and i8 %15, -32
  %or.cond2957 = icmp eq i8 %51, -64
  br i1 %or.cond2957, label %.thread2322, label %.thread2453

.thread2453:                                      ; preds = %50
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 559, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #4
  unreachable

switch.lookup2986:                                ; preds = %37
  %52 = zext nneg i8 %15 to i64
  %switch.gep2987 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_store_2d_reg_block_aarch64.3, i64 0, i64 %52
  %switch.load2988 = load i32, ptr %switch.gep2987, align 4
  br label %.thread2322

.thread2322:                                      ; preds = %switch.lookup2986, %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.load2988, %switch.lookup2986 ]
  %54 = mul i32 %6, %4
  %55 = mul i32 %54, %53
  br label %77

56:                                               ; preds = %.thread2148
  br i1 %16, label %switch.lookup2989, label %57

57:                                               ; preds = %56
  %.mask2906 = and i8 %15, -16
  %58 = icmp eq i8 %.mask2906, 16
  br i1 %58, label %.thread2569, label %59

59:                                               ; preds = %57
  %60 = and i8 %15, -32
  %or.cond2958 = icmp eq i8 %60, 32
  br i1 %or.cond2958, label %.thread2569, label %61

61:                                               ; preds = %59
  %62 = and i8 %15, -32
  %or.cond2959 = icmp eq i8 %62, 64
  br i1 %or.cond2959, label %.thread2569, label %63

63:                                               ; preds = %61
  %64 = and i8 %15, -32
  %or.cond2960 = icmp eq i8 %64, 96
  br i1 %or.cond2960, label %.thread2569, label %65

65:                                               ; preds = %63
  %66 = and i8 %15, -32
  %or.cond2961 = icmp eq i8 %66, -128
  br i1 %or.cond2961, label %.thread2569, label %67

67:                                               ; preds = %65
  %68 = and i8 %15, -32
  %or.cond2962 = icmp eq i8 %68, -96
  br i1 %or.cond2962, label %.thread2569, label %69

69:                                               ; preds = %67
  %70 = and i8 %15, -32
  %or.cond2963 = icmp eq i8 %70, -64
  br i1 %or.cond2963, label %.thread2569, label %.thread2700

.thread2700:                                      ; preds = %69
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 559, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #4
  unreachable

switch.lookup2989:                                ; preds = %56
  %71 = zext nneg i8 %15 to i64
  %switch.gep2990 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_store_2d_reg_block_aarch64.3, i64 0, i64 %71
  %switch.load2991 = load i32, ptr %switch.gep2990, align 4
  br label %.thread2569

.thread2569:                                      ; preds = %switch.lookup2989, %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.load2991, %switch.lookup2989 ]
  %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 = %.thread2569, %.thread2322
  %78 = phi i32 [ %55, %.thread2322 ], [ %76, %.thread2569 ]
  %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 %.preheader2970, label %163

.preheader2970:                                   ; preds = %77
  %.not2977 = icmp eq i32 %7, 0
  br i1 %.not2977, label %.preheader2970.._crit_edge2974_crit_edge, label %.preheader.lr.ph

.preheader2970.._crit_edge2974_crit_edge:         ; preds = %.preheader2970
  %.pre2983 = zext i32 %35 to i64
  br label %._crit_edge2974

.preheader.lr.ph:                                 ; preds = %.preheader2970
  %.not2978 = 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 128
  %92 = getelementptr inbounds i8, ptr %1, i64 20
  %93 = getelementptr inbounds i8, ptr %1, i64 60
  %.not1240 = icmp eq i32 %35, %78
  %94 = zext i32 %35 to i64
  %95 = zext i32 %78 to i64
  %96 = sub nsw i64 %94, %95
  br i1 %.not2978, label %.preheader.lr.ph.split, label %.preheader.us

.preheader.us:                                    ; preds = %.preheader.lr.ph, %102
  %.02973.us = phi i32 [ %103, %102 ], [ 0, %.preheader.lr.ph ]
  %97 = mul i32 %.02973.us, %6
  %98 = add i32 %97, %11
  br label %104

99:                                               ; preds = %._crit_edge.us
  %100 = load i32, ptr %92, align 4, !tbaa !20
  %101 = load i32, ptr %93, align 4, !tbaa !24
  tail call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %0, i32 noundef 4096, i32 noundef %100, i32 noundef %101, i32 noundef %100, i64 noundef %96) #3
  br label %102

102:                                              ; preds = %99, %._crit_edge.us
  %103 = add nuw i32 %.02973.us, 1
  %exitcond2981.not = icmp eq i32 %103, %7
  br i1 %exitcond2981.not, label %._crit_edge2974, label %.preheader.us, !llvm.loop !25

104:                                              ; preds = %.preheader.us, %.thread2827.us
  %.011172971.us = phi i32 [ 0, %.preheader.us ], [ %153, %.thread2827.us ]
  %105 = load i8, ptr %14, align 1, !tbaa !10
  %106 = icmp ult i8 %105, 16
  br i1 %106, label %109, label %107

107:                                              ; preds = %104
  %.mask2932.us = and i8 %105, -16
  %108 = icmp eq i8 %.mask2932.us, 16
  br i1 %108, label %.thread2723.us, label %.fold.split1845.us

109:                                              ; preds = %104
  %switch.us = icmp ult i8 %105, 2
  br i1 %switch.us, label %.thread2723.us, label %.fold.split1845.us

.fold.split1845.us:                               ; preds = %109, %107
  %110 = icmp eq i32 %.011172971.us, %85
  br i1 %110, label %113, label %111

111:                                              ; preds = %.fold.split1845.us
  %112 = load i32, ptr %87, align 4, !tbaa !27
  br label %122

113:                                              ; preds = %.fold.split1845.us
  br i1 %36, label %116, label %114

114:                                              ; preds = %113
  %115 = load i32, ptr %88, align 8, !tbaa !28
  br label %122

116:                                              ; preds = %113
  %117 = load i32, ptr %87, align 4, !tbaa !27
  br label %122

.thread2723.us:                                   ; preds = %109, %107
  %118 = icmp eq i32 %.011172971.us, %85
  %119 = select i1 %118, i32 %8, i32 0
  %or.cond.us = and i1 %89, %118
  br i1 %or.cond.us, label %120, label %122

120:                                              ; preds = %.thread2723.us
  %121 = load i32, ptr %90, align 4, !tbaa !29
  br label %122

122:                                              ; preds = %120, %.thread2723.us, %116, %114, %111
  %123 = phi i32 [ %119, %120 ], [ %119, %.thread2723.us ], [ %4, %111 ], [ %86, %114 ], [ %86, %116 ]
  %124 = phi i32 [ %121, %120 ], [ 0, %.thread2723.us ], [ %112, %111 ], [ %115, %114 ], [ %117, %116 ]
  %125 = add i32 %98, %.011172971.us
  %126 = load i32, ptr %91, align 8, !tbaa !30
  %127 = icmp eq i32 %126, 1
  br i1 %127, label %128, label %129

128:                                              ; preds = %122
  tail call void @libxsmm_generator_vcvt_f32bf16_aarch64(ptr noundef %0, i32 noundef %125, i32 noundef 0) #3
  %.pre = load i8, ptr %14, align 1, !tbaa !10
  br label %129

129:                                              ; preds = %128, %122
  %130 = phi i8 [ %.pre, %128 ], [ %105, %122 ]
  %131 = load i32, ptr %92, align 4, !tbaa !20
  %132 = load i32, ptr %93, align 4, !tbaa !24
  %133 = icmp ult i8 %130, 16
  br i1 %133, label %148, label %134

134:                                              ; preds = %129
  %.mask2933.us = and i8 %130, -16
  %135 = icmp eq i8 %.mask2933.us, 16
  br i1 %135, label %.thread2827.us, label %136

136:                                              ; preds = %134
  %137 = and i8 %130, -32
  %or.cond2964.us = icmp eq i8 %137, 32
  br i1 %or.cond2964.us, label %.thread2827.us, label %138

138:                                              ; preds = %136
  %139 = and i8 %130, -32
  %or.cond2965.us = icmp eq i8 %139, 64
  br i1 %or.cond2965.us, label %.thread2827.us, label %140

140:                                              ; preds = %138
  %141 = and i8 %130, -32
  %or.cond2966.us = icmp eq i8 %141, 96
  br i1 %or.cond2966.us, label %.thread2827.us, label %142

142:                                              ; preds = %140
  %143 = and i8 %130, -32
  %or.cond2967.us = icmp eq i8 %143, -128
  br i1 %or.cond2967.us, label %.thread2827.us, label %144

144:                                              ; preds = %142
  %145 = and i8 %130, -32
  %or.cond2968.us = icmp eq i8 %145, -96
  br i1 %or.cond2968.us, label %.thread2827.us, label %146

146:                                              ; preds = %144
  %147 = and i8 %130, -32
  %or.cond2969.us = icmp eq i8 %147, -64
  br i1 %or.cond2969.us, label %.thread2827.us, label %.thread2892

148:                                              ; preds = %129
  %149 = icmp ult i8 %130, 14
  br i1 %149, label %switch.lookup2992, label %.thread2892

switch.lookup2992:                                ; preds = %148
  %150 = zext nneg i8 %130 to i64
  %switch.gep2993 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_store_2d_reg_block_aarch64.3, i64 0, i64 %150
  %switch.load2994 = load i32, ptr %switch.gep2993, align 4
  br label %.thread2827.us

.thread2827.us:                                   ; preds = %switch.lookup2992, %146, %144, %142, %140, %138, %136, %134
  %151 = phi i32 [ 4, %134 ], [ 2, %136 ], [ 1, %138 ], [ 8, %140 ], [ 4, %142 ], [ 2, %144 ], [ 1, %146 ], [ %switch.load2994, %switch.lookup2992 ]
  %152 = trunc i32 %124 to i8
  tail call void @libxsmm_generator_vloadstore_masked_vreg_aarch64(ptr noundef %0, i32 noundef %131, i32 noundef %132, i32 noundef %125, i32 noundef %151, i32 noundef %123, i32 noundef 1, i32 noundef 1, i8 noundef zeroext %152, i8 noundef zeroext %82) #3
  %153 = add nuw i32 %.011172971.us, 1
  %exitcond.not = icmp eq i32 %153, %6
  br i1 %exitcond.not, label %._crit_edge.us, label %104, !llvm.loop !31

._crit_edge.us:                                   ; preds = %.thread2827.us
  br i1 %.not1240, label %102, label %99

.preheader.lr.ph.split:                           ; preds = %.preheader.lr.ph
  br i1 %.not1240, label %._crit_edge2974, label %.preheader

.preheader:                                       ; preds = %.preheader.lr.ph.split, %.preheader
  %.02973 = phi i32 [ %156, %.preheader ], [ 0, %.preheader.lr.ph.split ]
  %154 = load i32, ptr %92, align 4, !tbaa !20
  %155 = load i32, ptr %93, align 4, !tbaa !24
  tail call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %0, i32 noundef 4096, i32 noundef %154, i32 noundef %155, i32 noundef %154, i64 noundef %96) #3
  %156 = add nuw i32 %.02973, 1
  %exitcond2982.not = icmp eq i32 %156, %7
  br i1 %exitcond2982.not, label %._crit_edge2974, label %.preheader, !llvm.loop !25

.thread2892:                                      ; preds = %148, %146
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 577, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_store_2d_reg_block_aarch64) #4
  unreachable

._crit_edge2974:                                  ; preds = %102, %.preheader, %.preheader.lr.ph.split, %.preheader2970.._crit_edge2974_crit_edge
  %.pre-phi = phi i64 [ %.pre2983, %.preheader2970.._crit_edge2974_crit_edge ], [ %94, %.preheader.lr.ph.split ], [ %94, %.preheader ], [ %94, %102 ]
  %157 = getelementptr inbounds i8, ptr %1, i64 20
  %158 = load i32, ptr %157, align 4, !tbaa !20
  %159 = getelementptr inbounds i8, ptr %1, i64 60
  %160 = load i32, ptr %159, align 4, !tbaa !24
  %161 = zext i32 %7 to i64
  %162 = mul nuw nsw i64 %.pre-phi, %161
  tail call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %0, i32 noundef 4097, i32 noundef %158, i32 noundef %160, i32 noundef %158, i64 noundef %162) #3
  br label %163

163:                                              ; preds = %77, %._crit_edge2974
  ret void
}

declare void @libxsmm_generator_vcvt_f32bf16_aarch64(ptr 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 128}
!31 = distinct !{!31, !26}


; Effective O3 passes: ADCEPass,ConstantMergePass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass