; 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_matequation_gp_reg_mapping_struct = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.libxsmm_mateltwise_gp_reg_mapping_struct, %struct.libxsmm_gp_reg_mapping_struct }
%struct.libxsmm_mateltwise_gp_reg_mapping_struct = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.libxsmm_gp_reg_mapping_struct = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.libxsmm_matequation_kernel_config_struct = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [32 x i32], i32, i32, i32, i32, ptr, ptr, i32, i32, i32, [64 x i32], [64 x i32], %struct.libxsmm_mateltwise_kernel_config_struct, %struct.libxsmm_micro_kernel_config }
%struct.libxsmm_mateltwise_kernel_config_struct = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8 }
%struct.libxsmm_micro_kernel_config = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [4 x i32], [4 x i32], [4 x i32], [4 x i32], [4 x i32], [4 x i32], i32, [2 x %struct.libxsmm_blocking_info_t], %struct.libxsmm_tile_config, i32, i32, i32, i32, i32, i32, i32, i32, ptr, i32, i32, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.libxsmm_blocking_info_t = type { i32, [4 x i32], i32, i32 }
%struct.libxsmm_tile_config = type { i8, i16, i8, i16, i8, i16, i8, i16, i8, i16, i8, i16, i8, i16, i8, i16, i8 }
%struct.libxsmm_meqn_arg = type { i32, i32, i32, i32, i32, i32, i32, %struct.libxsmm_matrix_arg_attributes }
%struct.libxsmm_matrix_arg_attributes = type { i32, i32, i32, i32 }
%struct.libxsmm_generated_code = type { ptr, 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
@__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64 = external hidden unnamed_addr constant [309 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [286 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

declare void @libxsmm_aarch64_instruction_alu_move(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #1

declare void @libxsmm_generator_meqn_getaddr_stack_tmpaddr_i_aarch64(ptr noundef, i32 noundef, i32 noundef, i32 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

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_mateqn_load_arg_to_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, i32 noundef %10, i32 noundef %11) #3 {
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %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 i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i8, align 1
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  store ptr %0, ptr %13, align 8, !tbaa !5
  store ptr %1, ptr %14, align 8, !tbaa !5
  store ptr %2, ptr %15, align 8, !tbaa !5
  store ptr %3, ptr %16, align 8, !tbaa !5
  store i32 %4, ptr %17, align 4, !tbaa !9
  store i32 %5, ptr %18, align 4, !tbaa !9
  store i32 %6, ptr %19, align 4, !tbaa !9
  store i32 %7, ptr %20, align 4, !tbaa !9
  store i32 %8, ptr %21, align 4, !tbaa !9
  store i32 %9, ptr %22, align 4, !tbaa !9
  store i32 %10, ptr %23, align 4, !tbaa !9
  store i32 %11, ptr %24, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #4
  %42 = load ptr, ptr %14, align 8, !tbaa !5
  %43 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %42, i32 0, i32 12
  %44 = load i32, ptr %43, align 4, !tbaa !11
  store i32 %44, ptr %27, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #4
  %45 = load ptr, ptr %14, align 8, !tbaa !5
  %46 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %45, i32 0, i32 13
  %47 = load i32, ptr %46, align 4, !tbaa !15
  store i32 %47, ptr %28, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #4
  %48 = load ptr, ptr %14, align 8, !tbaa !5
  %49 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %48, i32 0, i32 14
  %50 = load i32, ptr %49, align 4, !tbaa !16
  store i32 %50, ptr %29, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #4
  %51 = load ptr, ptr %15, align 8, !tbaa !5
  %52 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %51, i32 0, i32 52
  %53 = load ptr, ptr %52, align 8, !tbaa !17
  store ptr %53, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #4
  %54 = load ptr, ptr %15, align 8, !tbaa !5
  %55 = load i32, ptr %19, align 4, !tbaa !9
  %56 = call i32 @libxsmm_generator_matequation_regblocks_get_start_of_register_block(ptr noundef %54, i32 noundef %55)
  store i32 %56, ptr %32, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #4
  store i32 0, ptr %33, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #4
  %57 = load ptr, ptr %31, align 8, !tbaa !5
  %58 = load i32, ptr %17, align 4, !tbaa !9
  %59 = zext i32 %58 to i64
  %60 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %57, i64 %59
  %61 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %60, i32 0, i32 2
  %62 = load i32, ptr %61, align 4, !tbaa !23
  %63 = load ptr, ptr %31, align 8, !tbaa !5
  %64 = load i32, ptr %17, align 4, !tbaa !9
  %65 = zext i32 %64 to i64
  %66 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %63, i64 %65
  %67 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %66, i32 0, i32 5
  %68 = load i32, ptr %67, align 4, !tbaa !23
  %69 = icmp eq i32 0, %68
  br i1 %69, label %70, label %71

70:                                               ; preds = %12
  br label %216

71:                                               ; preds = %12
  %72 = load ptr, ptr %31, align 8, !tbaa !5
  %73 = load i32, ptr %17, align 4, !tbaa !9
  %74 = zext i32 %73 to i64
  %75 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %72, i64 %74
  %76 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %75, i32 0, i32 5
  %77 = load i32, ptr %76, align 4, !tbaa !23
  %78 = icmp eq i32 1, %77
  br i1 %78, label %79, label %80

79:                                               ; preds = %71
  br label %214

80:                                               ; preds = %71
  %81 = load ptr, ptr %31, align 8, !tbaa !5
  %82 = load i32, ptr %17, align 4, !tbaa !9
  %83 = zext i32 %82 to i64
  %84 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %81, i64 %83
  %85 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %84, i32 0, i32 5
  %86 = load i32, ptr %85, align 4, !tbaa !23
  %87 = icmp eq i32 2, %86
  br i1 %87, label %88, label %89

88:                                               ; preds = %80
  br label %212

89:                                               ; preds = %80
  %90 = load ptr, ptr %31, align 8, !tbaa !5
  %91 = load i32, ptr %17, align 4, !tbaa !9
  %92 = zext i32 %91 to i64
  %93 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %90, i64 %92
  %94 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %93, i32 0, i32 5
  %95 = load i32, ptr %94, align 4, !tbaa !23
  %96 = icmp eq i32 3, %95
  br i1 %96, label %97, label %98

97:                                               ; preds = %89
  br label %210

98:                                               ; preds = %89
  %99 = load ptr, ptr %31, align 8, !tbaa !5
  %100 = load i32, ptr %17, align 4, !tbaa !9
  %101 = zext i32 %100 to i64
  %102 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %99, i64 %101
  %103 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %102, i32 0, i32 5
  %104 = load i32, ptr %103, align 4, !tbaa !23
  %105 = icmp eq i32 4, %104
  br i1 %105, label %106, label %107

106:                                              ; preds = %98
  br label %208

107:                                              ; preds = %98
  %108 = load ptr, ptr %31, align 8, !tbaa !5
  %109 = load i32, ptr %17, align 4, !tbaa !9
  %110 = zext i32 %109 to i64
  %111 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %108, i64 %110
  %112 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %111, i32 0, i32 5
  %113 = load i32, ptr %112, align 4, !tbaa !23
  %114 = icmp eq i32 5, %113
  br i1 %114, label %115, label %116

115:                                              ; preds = %107
  br label %206

116:                                              ; preds = %107
  %117 = load ptr, ptr %31, align 8, !tbaa !5
  %118 = load i32, ptr %17, align 4, !tbaa !9
  %119 = zext i32 %118 to i64
  %120 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %117, i64 %119
  %121 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %120, i32 0, i32 5
  %122 = load i32, ptr %121, align 4, !tbaa !23
  %123 = icmp eq i32 6, %122
  br i1 %123, label %124, label %125

124:                                              ; preds = %116
  br label %204

125:                                              ; preds = %116
  %126 = load ptr, ptr %31, align 8, !tbaa !5
  %127 = load i32, ptr %17, align 4, !tbaa !9
  %128 = zext i32 %127 to i64
  %129 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %126, i64 %128
  %130 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %129, i32 0, i32 5
  %131 = load i32, ptr %130, align 4, !tbaa !23
  %132 = icmp eq i32 7, %131
  br i1 %132, label %133, label %134

133:                                              ; preds = %125
  br label %202

134:                                              ; preds = %125
  %135 = load ptr, ptr %31, align 8, !tbaa !5
  %136 = load i32, ptr %17, align 4, !tbaa !9
  %137 = zext i32 %136 to i64
  %138 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %135, i64 %137
  %139 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %138, i32 0, i32 5
  %140 = load i32, ptr %139, align 4, !tbaa !23
  %141 = icmp eq i32 8, %140
  br i1 %141, label %142, label %143

142:                                              ; preds = %134
  br label %200

143:                                              ; preds = %134
  %144 = load ptr, ptr %31, align 8, !tbaa !5
  %145 = load i32, ptr %17, align 4, !tbaa !9
  %146 = zext i32 %145 to i64
  %147 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %144, i64 %146
  %148 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %147, i32 0, i32 5
  %149 = load i32, ptr %148, align 4, !tbaa !23
  %150 = icmp eq i32 9, %149
  br i1 %150, label %151, label %152

151:                                              ; preds = %143
  br label %198

152:                                              ; preds = %143
  %153 = load ptr, ptr %31, align 8, !tbaa !5
  %154 = load i32, ptr %17, align 4, !tbaa !9
  %155 = zext i32 %154 to i64
  %156 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %153, i64 %155
  %157 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %156, i32 0, i32 5
  %158 = load i32, ptr %157, align 4, !tbaa !23
  %159 = icmp eq i32 10, %158
  br i1 %159, label %160, label %161

160:                                              ; preds = %152
  br label %196

161:                                              ; preds = %152
  %162 = load ptr, ptr %31, align 8, !tbaa !5
  %163 = load i32, ptr %17, align 4, !tbaa !9
  %164 = zext i32 %163 to i64
  %165 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %162, i64 %164
  %166 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %165, i32 0, i32 5
  %167 = load i32, ptr %166, align 4, !tbaa !23
  %168 = icmp eq i32 11, %167
  br i1 %168, label %169, label %170

169:                                              ; preds = %161
  br label %194

170:                                              ; preds = %161
  %171 = load ptr, ptr %31, align 8, !tbaa !5
  %172 = load i32, ptr %17, align 4, !tbaa !9
  %173 = zext i32 %172 to i64
  %174 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %171, i64 %173
  %175 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %174, i32 0, i32 5
  %176 = load i32, ptr %175, align 4, !tbaa !23
  %177 = icmp eq i32 12, %176
  br i1 %177, label %178, label %179

178:                                              ; preds = %170
  br label %192

179:                                              ; preds = %170
  %180 = load ptr, ptr %31, align 8, !tbaa !5
  %181 = load i32, ptr %17, align 4, !tbaa !9
  %182 = zext i32 %181 to i64
  %183 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %180, i64 %182
  %184 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %183, i32 0, i32 5
  %185 = load i32, ptr %184, align 4, !tbaa !23
  %186 = icmp eq i32 13, %185
  br i1 %186, label %187, label %188

187:                                              ; preds = %179
  br label %190

188:                                              ; preds = %179
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 408, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #5
  unreachable

189:                                              ; No predecessors!
  br label %190

190:                                              ; preds = %189, %187
  %191 = phi i32 [ 1, %187 ], [ 0, %189 ]
  br label %192

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

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

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

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

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

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

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

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

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

210:                                              ; preds = %208, %97
  %211 = phi i32 [ 2, %97 ], [ %209, %208 ]
  br label %212

212:                                              ; preds = %210, %88
  %213 = phi i32 [ 2, %88 ], [ %211, %210 ]
  br label %214

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

216:                                              ; preds = %214, %70
  %217 = phi i32 [ 8, %70 ], [ %215, %214 ]
  %218 = mul nsw i32 %62, %217
  store i32 %218, ptr %34, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #4
  %219 = load i32, ptr %22, align 4, !tbaa !9
  %220 = icmp eq i32 %219, 0
  br i1 %220, label %221, label %381

221:                                              ; preds = %216
  %222 = load ptr, ptr %31, align 8, !tbaa !5
  %223 = load i32, ptr %17, align 4, !tbaa !9
  %224 = zext i32 %223 to i64
  %225 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %222, i64 %224
  %226 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %225, i32 0, i32 5
  %227 = load i32, ptr %226, align 4, !tbaa !23
  %228 = icmp eq i32 0, %227
  br i1 %228, label %229, label %230

229:                                              ; preds = %221
  br label %375

230:                                              ; preds = %221
  %231 = load ptr, ptr %31, align 8, !tbaa !5
  %232 = load i32, ptr %17, align 4, !tbaa !9
  %233 = zext i32 %232 to i64
  %234 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %231, i64 %233
  %235 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %234, i32 0, i32 5
  %236 = load i32, ptr %235, align 4, !tbaa !23
  %237 = icmp eq i32 1, %236
  br i1 %237, label %238, label %239

238:                                              ; preds = %230
  br label %373

239:                                              ; preds = %230
  %240 = load ptr, ptr %31, align 8, !tbaa !5
  %241 = load i32, ptr %17, align 4, !tbaa !9
  %242 = zext i32 %241 to i64
  %243 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %240, i64 %242
  %244 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %243, i32 0, i32 5
  %245 = load i32, ptr %244, align 4, !tbaa !23
  %246 = icmp eq i32 2, %245
  br i1 %246, label %247, label %248

247:                                              ; preds = %239
  br label %371

248:                                              ; preds = %239
  %249 = load ptr, ptr %31, align 8, !tbaa !5
  %250 = load i32, ptr %17, align 4, !tbaa !9
  %251 = zext i32 %250 to i64
  %252 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %249, i64 %251
  %253 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %252, i32 0, i32 5
  %254 = load i32, ptr %253, align 4, !tbaa !23
  %255 = icmp eq i32 3, %254
  br i1 %255, label %256, label %257

256:                                              ; preds = %248
  br label %369

257:                                              ; preds = %248
  %258 = load ptr, ptr %31, align 8, !tbaa !5
  %259 = load i32, ptr %17, align 4, !tbaa !9
  %260 = zext i32 %259 to i64
  %261 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %258, i64 %260
  %262 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %261, i32 0, i32 5
  %263 = load i32, ptr %262, align 4, !tbaa !23
  %264 = icmp eq i32 4, %263
  br i1 %264, label %265, label %266

265:                                              ; preds = %257
  br label %367

266:                                              ; preds = %257
  %267 = load ptr, ptr %31, align 8, !tbaa !5
  %268 = load i32, ptr %17, align 4, !tbaa !9
  %269 = zext i32 %268 to i64
  %270 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %267, i64 %269
  %271 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %270, i32 0, i32 5
  %272 = load i32, ptr %271, align 4, !tbaa !23
  %273 = icmp eq i32 5, %272
  br i1 %273, label %274, label %275

274:                                              ; preds = %266
  br label %365

275:                                              ; preds = %266
  %276 = load ptr, ptr %31, align 8, !tbaa !5
  %277 = load i32, ptr %17, align 4, !tbaa !9
  %278 = zext i32 %277 to i64
  %279 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %276, i64 %278
  %280 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %279, i32 0, i32 5
  %281 = load i32, ptr %280, align 4, !tbaa !23
  %282 = icmp eq i32 6, %281
  br i1 %282, label %283, label %284

283:                                              ; preds = %275
  br label %363

284:                                              ; preds = %275
  %285 = load ptr, ptr %31, align 8, !tbaa !5
  %286 = load i32, ptr %17, align 4, !tbaa !9
  %287 = zext i32 %286 to i64
  %288 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %285, i64 %287
  %289 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %288, i32 0, i32 5
  %290 = load i32, ptr %289, align 4, !tbaa !23
  %291 = icmp eq i32 7, %290
  br i1 %291, label %292, label %293

292:                                              ; preds = %284
  br label %361

293:                                              ; preds = %284
  %294 = load ptr, ptr %31, align 8, !tbaa !5
  %295 = load i32, ptr %17, align 4, !tbaa !9
  %296 = zext i32 %295 to i64
  %297 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %294, i64 %296
  %298 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %297, i32 0, i32 5
  %299 = load i32, ptr %298, align 4, !tbaa !23
  %300 = icmp eq i32 8, %299
  br i1 %300, label %301, label %302

301:                                              ; preds = %293
  br label %359

302:                                              ; preds = %293
  %303 = load ptr, ptr %31, align 8, !tbaa !5
  %304 = load i32, ptr %17, align 4, !tbaa !9
  %305 = zext i32 %304 to i64
  %306 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %303, i64 %305
  %307 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %306, i32 0, i32 5
  %308 = load i32, ptr %307, align 4, !tbaa !23
  %309 = icmp eq i32 9, %308
  br i1 %309, label %310, label %311

310:                                              ; preds = %302
  br label %357

311:                                              ; preds = %302
  %312 = load ptr, ptr %31, align 8, !tbaa !5
  %313 = load i32, ptr %17, align 4, !tbaa !9
  %314 = zext i32 %313 to i64
  %315 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %312, i64 %314
  %316 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %315, i32 0, i32 5
  %317 = load i32, ptr %316, align 4, !tbaa !23
  %318 = icmp eq i32 10, %317
  br i1 %318, label %319, label %320

319:                                              ; preds = %311
  br label %355

320:                                              ; preds = %311
  %321 = load ptr, ptr %31, align 8, !tbaa !5
  %322 = load i32, ptr %17, align 4, !tbaa !9
  %323 = zext i32 %322 to i64
  %324 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %321, i64 %323
  %325 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %324, i32 0, i32 5
  %326 = load i32, ptr %325, align 4, !tbaa !23
  %327 = icmp eq i32 11, %326
  br i1 %327, label %328, label %329

328:                                              ; preds = %320
  br label %353

329:                                              ; preds = %320
  %330 = load ptr, ptr %31, align 8, !tbaa !5
  %331 = load i32, ptr %17, align 4, !tbaa !9
  %332 = zext i32 %331 to i64
  %333 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %330, i64 %332
  %334 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %333, i32 0, i32 5
  %335 = load i32, ptr %334, align 4, !tbaa !23
  %336 = icmp eq i32 12, %335
  br i1 %336, label %337, label %338

337:                                              ; preds = %329
  br label %351

338:                                              ; preds = %329
  %339 = load ptr, ptr %31, align 8, !tbaa !5
  %340 = load i32, ptr %17, align 4, !tbaa !9
  %341 = zext i32 %340 to i64
  %342 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %339, i64 %341
  %343 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %342, i32 0, i32 5
  %344 = load i32, ptr %343, align 4, !tbaa !23
  %345 = icmp eq i32 13, %344
  br i1 %345, label %346, label %347

346:                                              ; preds = %338
  br label %349

347:                                              ; preds = %338
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 409, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #5
  unreachable

348:                                              ; No predecessors!
  br label %349

349:                                              ; preds = %348, %346
  %350 = phi i32 [ 1, %346 ], [ 0, %348 ]
  br label %351

351:                                              ; preds = %349, %337
  %352 = phi i32 [ 1, %337 ], [ %350, %349 ]
  br label %353

353:                                              ; preds = %351, %328
  %354 = phi i32 [ 2, %328 ], [ %352, %351 ]
  br label %355

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

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

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

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

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

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

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

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

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

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

375:                                              ; preds = %373, %229
  %376 = phi i32 [ 8, %229 ], [ %374, %373 ]
  %377 = load i32, ptr %18, align 4, !tbaa !9
  %378 = mul i32 %376, %377
  %379 = load i32, ptr %20, align 4, !tbaa !9
  %380 = mul i32 %378, %379
  br label %544

381:                                              ; preds = %216
  %382 = load ptr, ptr %31, align 8, !tbaa !5
  %383 = load i32, ptr %17, align 4, !tbaa !9
  %384 = zext i32 %383 to i64
  %385 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %382, i64 %384
  %386 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %385, i32 0, i32 5
  %387 = load i32, ptr %386, align 4, !tbaa !23
  %388 = icmp eq i32 0, %387
  br i1 %388, label %389, label %390

389:                                              ; preds = %381
  br label %535

390:                                              ; preds = %381
  %391 = load ptr, ptr %31, align 8, !tbaa !5
  %392 = load i32, ptr %17, align 4, !tbaa !9
  %393 = zext i32 %392 to i64
  %394 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %391, i64 %393
  %395 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %394, i32 0, i32 5
  %396 = load i32, ptr %395, align 4, !tbaa !23
  %397 = icmp eq i32 1, %396
  br i1 %397, label %398, label %399

398:                                              ; preds = %390
  br label %533

399:                                              ; preds = %390
  %400 = load ptr, ptr %31, align 8, !tbaa !5
  %401 = load i32, ptr %17, align 4, !tbaa !9
  %402 = zext i32 %401 to i64
  %403 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %400, i64 %402
  %404 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %403, i32 0, i32 5
  %405 = load i32, ptr %404, align 4, !tbaa !23
  %406 = icmp eq i32 2, %405
  br i1 %406, label %407, label %408

407:                                              ; preds = %399
  br label %531

408:                                              ; preds = %399
  %409 = load ptr, ptr %31, align 8, !tbaa !5
  %410 = load i32, ptr %17, align 4, !tbaa !9
  %411 = zext i32 %410 to i64
  %412 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %409, i64 %411
  %413 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %412, i32 0, i32 5
  %414 = load i32, ptr %413, align 4, !tbaa !23
  %415 = icmp eq i32 3, %414
  br i1 %415, label %416, label %417

416:                                              ; preds = %408
  br label %529

417:                                              ; preds = %408
  %418 = load ptr, ptr %31, align 8, !tbaa !5
  %419 = load i32, ptr %17, align 4, !tbaa !9
  %420 = zext i32 %419 to i64
  %421 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %418, i64 %420
  %422 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %421, i32 0, i32 5
  %423 = load i32, ptr %422, align 4, !tbaa !23
  %424 = icmp eq i32 4, %423
  br i1 %424, label %425, label %426

425:                                              ; preds = %417
  br label %527

426:                                              ; preds = %417
  %427 = load ptr, ptr %31, align 8, !tbaa !5
  %428 = load i32, ptr %17, align 4, !tbaa !9
  %429 = zext i32 %428 to i64
  %430 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %427, i64 %429
  %431 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %430, i32 0, i32 5
  %432 = load i32, ptr %431, align 4, !tbaa !23
  %433 = icmp eq i32 5, %432
  br i1 %433, label %434, label %435

434:                                              ; preds = %426
  br label %525

435:                                              ; preds = %426
  %436 = load ptr, ptr %31, align 8, !tbaa !5
  %437 = load i32, ptr %17, align 4, !tbaa !9
  %438 = zext i32 %437 to i64
  %439 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %436, i64 %438
  %440 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %439, i32 0, i32 5
  %441 = load i32, ptr %440, align 4, !tbaa !23
  %442 = icmp eq i32 6, %441
  br i1 %442, label %443, label %444

443:                                              ; preds = %435
  br label %523

444:                                              ; preds = %435
  %445 = load ptr, ptr %31, align 8, !tbaa !5
  %446 = load i32, ptr %17, align 4, !tbaa !9
  %447 = zext i32 %446 to i64
  %448 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %445, i64 %447
  %449 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %448, i32 0, i32 5
  %450 = load i32, ptr %449, align 4, !tbaa !23
  %451 = icmp eq i32 7, %450
  br i1 %451, label %452, label %453

452:                                              ; preds = %444
  br label %521

453:                                              ; preds = %444
  %454 = load ptr, ptr %31, align 8, !tbaa !5
  %455 = load i32, ptr %17, align 4, !tbaa !9
  %456 = zext i32 %455 to i64
  %457 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %454, i64 %456
  %458 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %457, i32 0, i32 5
  %459 = load i32, ptr %458, align 4, !tbaa !23
  %460 = icmp eq i32 8, %459
  br i1 %460, label %461, label %462

461:                                              ; preds = %453
  br label %519

462:                                              ; preds = %453
  %463 = load ptr, ptr %31, align 8, !tbaa !5
  %464 = load i32, ptr %17, align 4, !tbaa !9
  %465 = zext i32 %464 to i64
  %466 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %463, i64 %465
  %467 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %466, i32 0, i32 5
  %468 = load i32, ptr %467, align 4, !tbaa !23
  %469 = icmp eq i32 9, %468
  br i1 %469, label %470, label %471

470:                                              ; preds = %462
  br label %517

471:                                              ; preds = %462
  %472 = load ptr, ptr %31, align 8, !tbaa !5
  %473 = load i32, ptr %17, align 4, !tbaa !9
  %474 = zext i32 %473 to i64
  %475 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %472, i64 %474
  %476 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %475, i32 0, i32 5
  %477 = load i32, ptr %476, align 4, !tbaa !23
  %478 = icmp eq i32 10, %477
  br i1 %478, label %479, label %480

479:                                              ; preds = %471
  br label %515

480:                                              ; preds = %471
  %481 = load ptr, ptr %31, align 8, !tbaa !5
  %482 = load i32, ptr %17, align 4, !tbaa !9
  %483 = zext i32 %482 to i64
  %484 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %481, i64 %483
  %485 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %484, i32 0, i32 5
  %486 = load i32, ptr %485, align 4, !tbaa !23
  %487 = icmp eq i32 11, %486
  br i1 %487, label %488, label %489

488:                                              ; preds = %480
  br label %513

489:                                              ; preds = %480
  %490 = load ptr, ptr %31, align 8, !tbaa !5
  %491 = load i32, ptr %17, align 4, !tbaa !9
  %492 = zext i32 %491 to i64
  %493 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %490, i64 %492
  %494 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %493, i32 0, i32 5
  %495 = load i32, ptr %494, align 4, !tbaa !23
  %496 = icmp eq i32 12, %495
  br i1 %496, label %497, label %498

497:                                              ; preds = %489
  br label %511

498:                                              ; preds = %489
  %499 = load ptr, ptr %31, align 8, !tbaa !5
  %500 = load i32, ptr %17, align 4, !tbaa !9
  %501 = zext i32 %500 to i64
  %502 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %499, i64 %501
  %503 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %502, i32 0, i32 5
  %504 = load i32, ptr %503, align 4, !tbaa !23
  %505 = icmp eq i32 13, %504
  br i1 %505, label %506, label %507

506:                                              ; preds = %498
  br label %509

507:                                              ; preds = %498
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 409, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #5
  unreachable

508:                                              ; No predecessors!
  br label %509

509:                                              ; preds = %508, %506
  %510 = phi i32 [ 1, %506 ], [ 0, %508 ]
  br label %511

511:                                              ; preds = %509, %497
  %512 = phi i32 [ 1, %497 ], [ %510, %509 ]
  br label %513

513:                                              ; preds = %511, %488
  %514 = phi i32 [ 2, %488 ], [ %512, %511 ]
  br label %515

515:                                              ; preds = %513, %479
  %516 = phi i32 [ 2, %479 ], [ %514, %513 ]
  br label %517

517:                                              ; preds = %515, %470
  %518 = phi i32 [ 4, %470 ], [ %516, %515 ]
  br label %519

519:                                              ; preds = %517, %461
  %520 = phi i32 [ 4, %461 ], [ %518, %517 ]
  br label %521

521:                                              ; preds = %519, %452
  %522 = phi i32 [ 8, %452 ], [ %520, %519 ]
  br label %523

523:                                              ; preds = %521, %443
  %524 = phi i32 [ 8, %443 ], [ %522, %521 ]
  br label %525

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

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

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

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

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

535:                                              ; preds = %533, %389
  %536 = phi i32 [ 8, %389 ], [ %534, %533 ]
  %537 = load i32, ptr %18, align 4, !tbaa !9
  %538 = load i32, ptr %20, align 4, !tbaa !9
  %539 = sub i32 %538, 1
  %540 = mul i32 %537, %539
  %541 = load i32, ptr %22, align 4, !tbaa !9
  %542 = add i32 %540, %541
  %543 = mul i32 %536, %542
  br label %544

544:                                              ; preds = %535, %375
  %545 = phi i32 [ %380, %375 ], [ %543, %535 ]
  store i32 %545, ptr %35, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #4
  store i32 0, ptr %36, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #4
  %546 = load ptr, ptr %13, align 8, !tbaa !5
  %547 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %546, i32 0, i32 6
  %548 = load i32, ptr %547, align 4, !tbaa !24
  %549 = icmp uge i32 %548, 2201
  br i1 %549, label %550, label %555

550:                                              ; preds = %544
  %551 = load ptr, ptr %13, align 8, !tbaa !5
  %552 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %551, i32 0, i32 6
  %553 = load i32, ptr %552, align 4, !tbaa !24
  %554 = icmp ule i32 %553, 2999
  br label %555

555:                                              ; preds = %550, %544
  %556 = phi i1 [ false, %544 ], [ %554, %550 ]
  %557 = zext i1 %556 to i32
  %558 = trunc i32 %557 to i8
  store i8 %558, ptr %37, align 1, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #4
  %559 = call i32 @libxsmm_generator_aarch64_get_sve_type(i8 noundef zeroext 4)
  store i32 %559, ptr %38, align 4, !tbaa !9
  %560 = load ptr, ptr %16, align 8, !tbaa !5
  %561 = load i32, ptr %23, align 4, !tbaa !9
  %562 = load i32, ptr %17, align 4, !tbaa !9
  %563 = load ptr, ptr %15, align 8, !tbaa !5
  %564 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %563, i32 0, i32 46
  %565 = load i32, ptr %564, align 8, !tbaa !26
  %566 = icmp ult i32 %562, %565
  br i1 %566, label %567, label %574

567:                                              ; preds = %555
  %568 = load ptr, ptr %15, align 8, !tbaa !5
  %569 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %568, i32 0, i32 47
  %570 = load i32, ptr %17, align 4, !tbaa !9
  %571 = zext i32 %570 to i64
  %572 = getelementptr inbounds [32 x i32], ptr %569, i64 0, i64 %571
  %573 = load i32, ptr %572, align 4, !tbaa !9
  store i32 %573, ptr %33, align 4, !tbaa !9
  br label %584

574:                                              ; preds = %555
  %575 = load ptr, ptr %13, align 8, !tbaa !5
  %576 = load i32, ptr %17, align 4, !tbaa !9
  %577 = mul i32 %576, 8
  %578 = load i32, ptr %29, align 4, !tbaa !9
  %579 = load i32, ptr %28, align 4, !tbaa !9
  call void @libxsmm_generator_meqn_getaddr_stack_tmpaddr_i_aarch64(ptr noundef %575, i32 noundef %577, i32 noundef %578, i32 noundef %579)
  %580 = load ptr, ptr %13, align 8, !tbaa !5
  %581 = load i32, ptr %28, align 4, !tbaa !9
  %582 = load i32, ptr %27, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_alu_move(ptr noundef %580, i32 noundef -1186988026, i32 noundef %581, i32 noundef 127, i32 noundef 0, i32 noundef %582)
  %583 = load i32, ptr %27, align 4, !tbaa !9
  store i32 %583, ptr %33, align 4, !tbaa !9
  br label %584

584:                                              ; preds = %574, %567
  store i32 0, ptr %25, align 4, !tbaa !9
  br label %585

585:                                              ; preds = %2311, %584
  %586 = load i32, ptr %25, align 4, !tbaa !9
  %587 = load i32, ptr %21, align 4, !tbaa !9
  %588 = icmp ult i32 %586, %587
  br i1 %588, label %589, label %2314

589:                                              ; preds = %585
  store i32 0, ptr %26, align 4, !tbaa !9
  br label %590

590:                                              ; preds = %1948, %589
  %591 = load i32, ptr %26, align 4, !tbaa !9
  %592 = load i32, ptr %20, align 4, !tbaa !9
  %593 = icmp ult i32 %591, %592
  br i1 %593, label %594, label %1951

594:                                              ; preds = %590
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #4
  %595 = load ptr, ptr %31, align 8, !tbaa !5
  %596 = load i32, ptr %17, align 4, !tbaa !9
  %597 = zext i32 %596 to i64
  %598 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %595, i64 %597
  %599 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %598, i32 0, i32 5
  %600 = load i32, ptr %599, align 4, !tbaa !23
  %601 = icmp eq i32 1, %600
  br i1 %601, label %610, label %602

602:                                              ; preds = %594
  %603 = load ptr, ptr %31, align 8, !tbaa !5
  %604 = load i32, ptr %17, align 4, !tbaa !9
  %605 = zext i32 %604 to i64
  %606 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %603, i64 %605
  %607 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %606, i32 0, i32 5
  %608 = load i32, ptr %607, align 4, !tbaa !23
  %609 = icmp eq i32 0, %608
  br label %610

610:                                              ; preds = %602, %594
  %611 = phi i1 [ true, %594 ], [ %609, %602 ]
  %612 = zext i1 %611 to i64
  %613 = select i1 %611, i32 1, i32 0
  store i32 %613, ptr %39, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #4
  %614 = load i32, ptr %39, align 4, !tbaa !9
  %615 = icmp ne i32 %614, 0
  br i1 %615, label %616, label %626

616:                                              ; preds = %610
  %617 = load i32, ptr %26, align 4, !tbaa !9
  %618 = load i32, ptr %20, align 4, !tbaa !9
  %619 = sub i32 %618, 1
  %620 = icmp eq i32 %617, %619
  br i1 %620, label %621, label %623

621:                                              ; preds = %616
  %622 = load i32, ptr %22, align 4, !tbaa !9
  br label %624

623:                                              ; preds = %616
  br label %624

624:                                              ; preds = %623, %621
  %625 = phi i32 [ %622, %621 ], [ 0, %623 ]
  br label %644

626:                                              ; preds = %610
  %627 = load i32, ptr %26, align 4, !tbaa !9
  %628 = load i32, ptr %20, align 4, !tbaa !9
  %629 = sub i32 %628, 1
  %630 = icmp eq i32 %627, %629
  br i1 %630, label %631, label %640

631:                                              ; preds = %626
  %632 = load i32, ptr %22, align 4, !tbaa !9
  %633 = icmp ugt i32 %632, 0
  br i1 %633, label %634, label %636

634:                                              ; preds = %631
  %635 = load i32, ptr %22, align 4, !tbaa !9
  br label %638

636:                                              ; preds = %631
  %637 = load i32, ptr %18, align 4, !tbaa !9
  br label %638

638:                                              ; preds = %636, %634
  %639 = phi i32 [ %635, %634 ], [ %637, %636 ]
  br label %642

640:                                              ; preds = %626
  %641 = load i32, ptr %18, align 4, !tbaa !9
  br label %642

642:                                              ; preds = %640, %638
  %643 = phi i32 [ %639, %638 ], [ %641, %640 ]
  br label %644

644:                                              ; preds = %642, %624
  %645 = phi i32 [ %625, %624 ], [ %643, %642 ]
  store i32 %645, ptr %40, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #4
  %646 = load i32, ptr %39, align 4, !tbaa !9
  %647 = icmp ne i32 %646, 0
  br i1 %647, label %648, label %666

648:                                              ; preds = %644
  %649 = load i32, ptr %26, align 4, !tbaa !9
  %650 = load i32, ptr %20, align 4, !tbaa !9
  %651 = sub i32 %650, 1
  %652 = icmp eq i32 %649, %651
  br i1 %652, label %653, label %663

653:                                              ; preds = %648
  %654 = load i32, ptr %22, align 4, !tbaa !9
  %655 = icmp ugt i32 %654, 0
  br i1 %655, label %656, label %660

656:                                              ; preds = %653
  %657 = load ptr, ptr %15, align 8, !tbaa !5
  %658 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %657, i32 0, i32 19
  %659 = load i32, ptr %658, align 4, !tbaa !27
  br label %661

660:                                              ; preds = %653
  br label %661

661:                                              ; preds = %660, %656
  %662 = phi i32 [ %659, %656 ], [ 0, %660 ]
  br label %664

663:                                              ; preds = %648
  br label %664

664:                                              ; preds = %663, %661
  %665 = phi i32 [ %662, %661 ], [ 0, %663 ]
  br label %690

666:                                              ; preds = %644
  %667 = load i32, ptr %26, align 4, !tbaa !9
  %668 = load i32, ptr %20, align 4, !tbaa !9
  %669 = sub i32 %668, 1
  %670 = icmp eq i32 %667, %669
  br i1 %670, label %671, label %684

671:                                              ; preds = %666
  %672 = load i32, ptr %22, align 4, !tbaa !9
  %673 = icmp ugt i32 %672, 0
  br i1 %673, label %674, label %678

674:                                              ; preds = %671
  %675 = load ptr, ptr %15, align 8, !tbaa !5
  %676 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %675, i32 0, i32 20
  %677 = load i32, ptr %676, align 8, !tbaa !28
  br label %682

678:                                              ; preds = %671
  %679 = load ptr, ptr %15, align 8, !tbaa !5
  %680 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %679, i32 0, i32 23
  %681 = load i32, ptr %680, align 4, !tbaa !29
  br label %682

682:                                              ; preds = %678, %674
  %683 = phi i32 [ %677, %674 ], [ %681, %678 ]
  br label %688

684:                                              ; preds = %666
  %685 = load ptr, ptr %15, align 8, !tbaa !5
  %686 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %685, i32 0, i32 23
  %687 = load i32, ptr %686, align 4, !tbaa !29
  br label %688

688:                                              ; preds = %684, %682
  %689 = phi i32 [ %683, %682 ], [ %687, %684 ]
  br label %690

690:                                              ; preds = %688, %664
  %691 = phi i32 [ %665, %664 ], [ %689, %688 ]
  store i32 %691, ptr %41, align 4, !tbaa !9
  %692 = load i32, ptr %32, align 4, !tbaa !9
  %693 = load i32, ptr %25, align 4, !tbaa !9
  %694 = load i32, ptr %20, align 4, !tbaa !9
  %695 = mul i32 %693, %694
  %696 = add i32 %692, %695
  %697 = load i32, ptr %26, align 4, !tbaa !9
  %698 = add i32 %696, %697
  store i32 %698, ptr %30, align 4, !tbaa !9
  %699 = load ptr, ptr %31, align 8, !tbaa !5
  %700 = load i32, ptr %17, align 4, !tbaa !9
  %701 = zext i32 %700 to i64
  %702 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %699, i64 %701
  %703 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %702, i32 0, i32 6
  %704 = load i32, ptr %703, align 4, !tbaa !23
  %705 = icmp eq i32 %704, 0
  br i1 %705, label %706, label %919

706:                                              ; preds = %690
  %707 = load i32, ptr %34, align 4, !tbaa !9
  %708 = load i32, ptr %21, align 4, !tbaa !9
  %709 = mul i32 %707, %708
  store i32 %709, ptr %36, align 4, !tbaa !9
  %710 = load ptr, ptr %13, align 8, !tbaa !5
  %711 = load i32, ptr %33, align 4, !tbaa !9
  %712 = load ptr, ptr %14, align 8, !tbaa !5
  %713 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %712, i32 0, i32 15
  %714 = load i32, ptr %713, align 4, !tbaa !30
  %715 = load i32, ptr %30, align 4, !tbaa !9
  %716 = load ptr, ptr %31, align 8, !tbaa !5
  %717 = load i32, ptr %17, align 4, !tbaa !9
  %718 = zext i32 %717 to i64
  %719 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %716, i64 %718
  %720 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %719, i32 0, i32 5
  %721 = load i32, ptr %720, align 4, !tbaa !23
  %722 = icmp eq i32 0, %721
  br i1 %722, label %723, label %724

723:                                              ; preds = %706
  br label %869

724:                                              ; preds = %706
  %725 = load ptr, ptr %31, align 8, !tbaa !5
  %726 = load i32, ptr %17, align 4, !tbaa !9
  %727 = zext i32 %726 to i64
  %728 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %725, i64 %727
  %729 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %728, i32 0, i32 5
  %730 = load i32, ptr %729, align 4, !tbaa !23
  %731 = icmp eq i32 1, %730
  br i1 %731, label %732, label %733

732:                                              ; preds = %724
  br label %867

733:                                              ; preds = %724
  %734 = load ptr, ptr %31, align 8, !tbaa !5
  %735 = load i32, ptr %17, align 4, !tbaa !9
  %736 = zext i32 %735 to i64
  %737 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %734, i64 %736
  %738 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %737, i32 0, i32 5
  %739 = load i32, ptr %738, align 4, !tbaa !23
  %740 = icmp eq i32 2, %739
  br i1 %740, label %741, label %742

741:                                              ; preds = %733
  br label %865

742:                                              ; preds = %733
  %743 = load ptr, ptr %31, align 8, !tbaa !5
  %744 = load i32, ptr %17, align 4, !tbaa !9
  %745 = zext i32 %744 to i64
  %746 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %743, i64 %745
  %747 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %746, i32 0, i32 5
  %748 = load i32, ptr %747, align 4, !tbaa !23
  %749 = icmp eq i32 3, %748
  br i1 %749, label %750, label %751

750:                                              ; preds = %742
  br label %863

751:                                              ; preds = %742
  %752 = load ptr, ptr %31, align 8, !tbaa !5
  %753 = load i32, ptr %17, align 4, !tbaa !9
  %754 = zext i32 %753 to i64
  %755 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %752, i64 %754
  %756 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %755, i32 0, i32 5
  %757 = load i32, ptr %756, align 4, !tbaa !23
  %758 = icmp eq i32 4, %757
  br i1 %758, label %759, label %760

759:                                              ; preds = %751
  br label %861

760:                                              ; preds = %751
  %761 = load ptr, ptr %31, align 8, !tbaa !5
  %762 = load i32, ptr %17, align 4, !tbaa !9
  %763 = zext i32 %762 to i64
  %764 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %761, i64 %763
  %765 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %764, i32 0, i32 5
  %766 = load i32, ptr %765, align 4, !tbaa !23
  %767 = icmp eq i32 5, %766
  br i1 %767, label %768, label %769

768:                                              ; preds = %760
  br label %859

769:                                              ; preds = %760
  %770 = load ptr, ptr %31, align 8, !tbaa !5
  %771 = load i32, ptr %17, align 4, !tbaa !9
  %772 = zext i32 %771 to i64
  %773 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %770, i64 %772
  %774 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %773, i32 0, i32 5
  %775 = load i32, ptr %774, align 4, !tbaa !23
  %776 = icmp eq i32 6, %775
  br i1 %776, label %777, label %778

777:                                              ; preds = %769
  br label %857

778:                                              ; preds = %769
  %779 = load ptr, ptr %31, align 8, !tbaa !5
  %780 = load i32, ptr %17, align 4, !tbaa !9
  %781 = zext i32 %780 to i64
  %782 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %779, i64 %781
  %783 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %782, i32 0, i32 5
  %784 = load i32, ptr %783, align 4, !tbaa !23
  %785 = icmp eq i32 7, %784
  br i1 %785, label %786, label %787

786:                                              ; preds = %778
  br label %855

787:                                              ; preds = %778
  %788 = load ptr, ptr %31, align 8, !tbaa !5
  %789 = load i32, ptr %17, align 4, !tbaa !9
  %790 = zext i32 %789 to i64
  %791 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %788, i64 %790
  %792 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %791, i32 0, i32 5
  %793 = load i32, ptr %792, align 4, !tbaa !23
  %794 = icmp eq i32 8, %793
  br i1 %794, label %795, label %796

795:                                              ; preds = %787
  br label %853

796:                                              ; preds = %787
  %797 = load ptr, ptr %31, align 8, !tbaa !5
  %798 = load i32, ptr %17, align 4, !tbaa !9
  %799 = zext i32 %798 to i64
  %800 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %797, i64 %799
  %801 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %800, i32 0, i32 5
  %802 = load i32, ptr %801, align 4, !tbaa !23
  %803 = icmp eq i32 9, %802
  br i1 %803, label %804, label %805

804:                                              ; preds = %796
  br label %851

805:                                              ; preds = %796
  %806 = load ptr, ptr %31, align 8, !tbaa !5
  %807 = load i32, ptr %17, align 4, !tbaa !9
  %808 = zext i32 %807 to i64
  %809 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %806, i64 %808
  %810 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %809, i32 0, i32 5
  %811 = load i32, ptr %810, align 4, !tbaa !23
  %812 = icmp eq i32 10, %811
  br i1 %812, label %813, label %814

813:                                              ; preds = %805
  br label %849

814:                                              ; preds = %805
  %815 = load ptr, ptr %31, align 8, !tbaa !5
  %816 = load i32, ptr %17, align 4, !tbaa !9
  %817 = zext i32 %816 to i64
  %818 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %815, i64 %817
  %819 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %818, i32 0, i32 5
  %820 = load i32, ptr %819, align 4, !tbaa !23
  %821 = icmp eq i32 11, %820
  br i1 %821, label %822, label %823

822:                                              ; preds = %814
  br label %847

823:                                              ; preds = %814
  %824 = load ptr, ptr %31, align 8, !tbaa !5
  %825 = load i32, ptr %17, align 4, !tbaa !9
  %826 = zext i32 %825 to i64
  %827 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %824, i64 %826
  %828 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %827, i32 0, i32 5
  %829 = load i32, ptr %828, align 4, !tbaa !23
  %830 = icmp eq i32 12, %829
  br i1 %830, label %831, label %832

831:                                              ; preds = %823
  br label %845

832:                                              ; preds = %823
  %833 = load ptr, ptr %31, align 8, !tbaa !5
  %834 = load i32, ptr %17, align 4, !tbaa !9
  %835 = zext i32 %834 to i64
  %836 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %833, i64 %835
  %837 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %836, i32 0, i32 5
  %838 = load i32, ptr %837, align 4, !tbaa !23
  %839 = icmp eq i32 13, %838
  br i1 %839, label %840, label %841

840:                                              ; preds = %832
  br label %843

841:                                              ; preds = %832
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 435, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #5
  unreachable

842:                                              ; No predecessors!
  br label %843

843:                                              ; preds = %842, %840
  %844 = phi i32 [ 1, %840 ], [ 0, %842 ]
  br label %845

845:                                              ; preds = %843, %831
  %846 = phi i32 [ 1, %831 ], [ %844, %843 ]
  br label %847

847:                                              ; preds = %845, %822
  %848 = phi i32 [ 2, %822 ], [ %846, %845 ]
  br label %849

849:                                              ; preds = %847, %813
  %850 = phi i32 [ 2, %813 ], [ %848, %847 ]
  br label %851

851:                                              ; preds = %849, %804
  %852 = phi i32 [ 4, %804 ], [ %850, %849 ]
  br label %853

853:                                              ; preds = %851, %795
  %854 = phi i32 [ 4, %795 ], [ %852, %851 ]
  br label %855

855:                                              ; preds = %853, %786
  %856 = phi i32 [ 8, %786 ], [ %854, %853 ]
  br label %857

857:                                              ; preds = %855, %777
  %858 = phi i32 [ 8, %777 ], [ %856, %855 ]
  br label %859

859:                                              ; preds = %857, %768
  %860 = phi i32 [ 1, %768 ], [ %858, %857 ]
  br label %861

861:                                              ; preds = %859, %759
  %862 = phi i32 [ 1, %759 ], [ %860, %859 ]
  br label %863

863:                                              ; preds = %861, %750
  %864 = phi i32 [ 2, %750 ], [ %862, %861 ]
  br label %865

865:                                              ; preds = %863, %741
  %866 = phi i32 [ 2, %741 ], [ %864, %863 ]
  br label %867

867:                                              ; preds = %865, %732
  %868 = phi i32 [ 4, %732 ], [ %866, %865 ]
  br label %869

869:                                              ; preds = %867, %723
  %870 = phi i32 [ 8, %723 ], [ %868, %867 ]
  %871 = load i32, ptr %40, align 4, !tbaa !9
  %872 = load i32, ptr %41, align 4, !tbaa !9
  %873 = trunc i32 %872 to i8
  %874 = zext i8 %873 to i32
  %875 = icmp eq i32 0, %874
  br i1 %875, label %881, label %876

876:                                              ; preds = %869
  %877 = load i32, ptr %41, align 4, !tbaa !9
  %878 = trunc i32 %877 to i8
  %879 = zext i8 %878 to i32
  %880 = icmp slt i32 0, %879
  br i1 %880, label %881, label %899

881:                                              ; preds = %876, %869
  %882 = load i32, ptr %41, align 4, !tbaa !9
  %883 = zext i32 %882 to i64
  %884 = mul i64 1, %883
  %885 = icmp ult i64 %884, 255
  br i1 %885, label %886, label %890

886:                                              ; preds = %881
  %887 = load i32, ptr %41, align 4, !tbaa !9
  %888 = zext i32 %887 to i64
  %889 = mul i64 1, %888
  br label %891

890:                                              ; preds = %881
  br label %891

891:                                              ; preds = %890, %886
  %892 = phi i64 [ %889, %886 ], [ 255, %890 ]
  %893 = icmp ule i64 %892, 255
  br i1 %893, label %894, label %899

894:                                              ; preds = %891
  %895 = load i32, ptr %41, align 4, !tbaa !9
  %896 = uitofp i32 %895 to double
  %897 = fcmp ole double 0.000000e+00, %896
  br i1 %897, label %898, label %899

898:                                              ; preds = %894
  br label %900

899:                                              ; preds = %894, %891, %876
  call void @__assert_fail(ptr noundef @.str.4, ptr noundef @.str.1, i32 noundef 435, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #5
  unreachable

900:                                              ; preds = %898
  %901 = load i32, ptr %41, align 4, !tbaa !9
  %902 = trunc i32 %901 to i8
  %903 = load i8, ptr %37, align 1, !tbaa !23
  call void @libxsmm_generator_vloadstore_masked_vreg_aarch64(ptr noundef %710, i32 noundef %711, i32 noundef %714, i32 noundef %715, i32 noundef %870, i32 noundef %871, i32 noundef 1, i32 noundef 0, i8 noundef zeroext %902, i8 noundef zeroext %903)
  %904 = load i32, ptr %24, align 4, !tbaa !9
  %905 = icmp eq i32 %904, 0
  br i1 %905, label %906, label %918

906:                                              ; preds = %900
  %907 = load ptr, ptr %31, align 8, !tbaa !5
  %908 = load i32, ptr %17, align 4, !tbaa !9
  %909 = zext i32 %908 to i64
  %910 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %907, i64 %909
  %911 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %910, i32 0, i32 5
  %912 = load i32, ptr %911, align 4, !tbaa !23
  %913 = icmp eq i32 %912, 2
  br i1 %913, label %914, label %917

914:                                              ; preds = %906
  %915 = load ptr, ptr %13, align 8, !tbaa !5
  %916 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_generator_vcvt_bf16f32_aarch64(ptr noundef %915, i32 noundef %916, i32 noundef 0)
  br label %917

917:                                              ; preds = %914, %906
  br label %918

918:                                              ; preds = %917, %900
  br label %1947

919:                                              ; preds = %690
  %920 = load ptr, ptr %31, align 8, !tbaa !5
  %921 = load i32, ptr %17, align 4, !tbaa !9
  %922 = zext i32 %921 to i64
  %923 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %920, i64 %922
  %924 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %923, i32 0, i32 6
  %925 = load i32, ptr %924, align 4, !tbaa !23
  %926 = icmp eq i32 %925, 1
  br i1 %926, label %935, label %927

927:                                              ; preds = %919
  %928 = load ptr, ptr %31, align 8, !tbaa !5
  %929 = load i32, ptr %17, align 4, !tbaa !9
  %930 = zext i32 %929 to i64
  %931 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %928, i64 %930
  %932 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %931, i32 0, i32 6
  %933 = load i32, ptr %932, align 4, !tbaa !23
  %934 = icmp eq i32 %933, 4
  br i1 %934, label %935, label %1372

935:                                              ; preds = %927, %919
  %936 = load ptr, ptr %31, align 8, !tbaa !5
  %937 = load i32, ptr %17, align 4, !tbaa !9
  %938 = zext i32 %937 to i64
  %939 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %936, i64 %938
  %940 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %939, i32 0, i32 6
  %941 = load i32, ptr %940, align 4, !tbaa !23
  %942 = icmp eq i32 %941, 4
  br i1 %942, label %943, label %1099

943:                                              ; preds = %935
  %944 = load ptr, ptr %31, align 8, !tbaa !5
  %945 = load i32, ptr %17, align 4, !tbaa !9
  %946 = zext i32 %945 to i64
  %947 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %944, i64 %946
  %948 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %947, i32 0, i32 5
  %949 = load i32, ptr %948, align 4, !tbaa !23
  %950 = icmp eq i32 0, %949
  br i1 %950, label %951, label %952

951:                                              ; preds = %943
  br label %1097

952:                                              ; preds = %943
  %953 = load ptr, ptr %31, align 8, !tbaa !5
  %954 = load i32, ptr %17, align 4, !tbaa !9
  %955 = zext i32 %954 to i64
  %956 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %953, i64 %955
  %957 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %956, i32 0, i32 5
  %958 = load i32, ptr %957, align 4, !tbaa !23
  %959 = icmp eq i32 1, %958
  br i1 %959, label %960, label %961

960:                                              ; preds = %952
  br label %1095

961:                                              ; preds = %952
  %962 = load ptr, ptr %31, align 8, !tbaa !5
  %963 = load i32, ptr %17, align 4, !tbaa !9
  %964 = zext i32 %963 to i64
  %965 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %962, i64 %964
  %966 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %965, i32 0, i32 5
  %967 = load i32, ptr %966, align 4, !tbaa !23
  %968 = icmp eq i32 2, %967
  br i1 %968, label %969, label %970

969:                                              ; preds = %961
  br label %1093

970:                                              ; preds = %961
  %971 = load ptr, ptr %31, align 8, !tbaa !5
  %972 = load i32, ptr %17, align 4, !tbaa !9
  %973 = zext i32 %972 to i64
  %974 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %971, i64 %973
  %975 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %974, i32 0, i32 5
  %976 = load i32, ptr %975, align 4, !tbaa !23
  %977 = icmp eq i32 3, %976
  br i1 %977, label %978, label %979

978:                                              ; preds = %970
  br label %1091

979:                                              ; preds = %970
  %980 = load ptr, ptr %31, align 8, !tbaa !5
  %981 = load i32, ptr %17, align 4, !tbaa !9
  %982 = zext i32 %981 to i64
  %983 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %980, i64 %982
  %984 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %983, i32 0, i32 5
  %985 = load i32, ptr %984, align 4, !tbaa !23
  %986 = icmp eq i32 4, %985
  br i1 %986, label %987, label %988

987:                                              ; preds = %979
  br label %1089

988:                                              ; preds = %979
  %989 = load ptr, ptr %31, align 8, !tbaa !5
  %990 = load i32, ptr %17, align 4, !tbaa !9
  %991 = zext i32 %990 to i64
  %992 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %989, i64 %991
  %993 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %992, i32 0, i32 5
  %994 = load i32, ptr %993, align 4, !tbaa !23
  %995 = icmp eq i32 5, %994
  br i1 %995, label %996, label %997

996:                                              ; preds = %988
  br label %1087

997:                                              ; preds = %988
  %998 = load ptr, ptr %31, align 8, !tbaa !5
  %999 = load i32, ptr %17, align 4, !tbaa !9
  %1000 = zext i32 %999 to i64
  %1001 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %998, i64 %1000
  %1002 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1001, i32 0, i32 5
  %1003 = load i32, ptr %1002, align 4, !tbaa !23
  %1004 = icmp eq i32 6, %1003
  br i1 %1004, label %1005, label %1006

1005:                                             ; preds = %997
  br label %1085

1006:                                             ; preds = %997
  %1007 = load ptr, ptr %31, align 8, !tbaa !5
  %1008 = load i32, ptr %17, align 4, !tbaa !9
  %1009 = zext i32 %1008 to i64
  %1010 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1007, i64 %1009
  %1011 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1010, i32 0, i32 5
  %1012 = load i32, ptr %1011, align 4, !tbaa !23
  %1013 = icmp eq i32 7, %1012
  br i1 %1013, label %1014, label %1015

1014:                                             ; preds = %1006
  br label %1083

1015:                                             ; preds = %1006
  %1016 = load ptr, ptr %31, align 8, !tbaa !5
  %1017 = load i32, ptr %17, align 4, !tbaa !9
  %1018 = zext i32 %1017 to i64
  %1019 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1016, i64 %1018
  %1020 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1019, i32 0, i32 5
  %1021 = load i32, ptr %1020, align 4, !tbaa !23
  %1022 = icmp eq i32 8, %1021
  br i1 %1022, label %1023, label %1024

1023:                                             ; preds = %1015
  br label %1081

1024:                                             ; preds = %1015
  %1025 = load ptr, ptr %31, align 8, !tbaa !5
  %1026 = load i32, ptr %17, align 4, !tbaa !9
  %1027 = zext i32 %1026 to i64
  %1028 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1025, i64 %1027
  %1029 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1028, i32 0, i32 5
  %1030 = load i32, ptr %1029, align 4, !tbaa !23
  %1031 = icmp eq i32 9, %1030
  br i1 %1031, label %1032, label %1033

1032:                                             ; preds = %1024
  br label %1079

1033:                                             ; preds = %1024
  %1034 = load ptr, ptr %31, align 8, !tbaa !5
  %1035 = load i32, ptr %17, align 4, !tbaa !9
  %1036 = zext i32 %1035 to i64
  %1037 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1034, i64 %1036
  %1038 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1037, i32 0, i32 5
  %1039 = load i32, ptr %1038, align 4, !tbaa !23
  %1040 = icmp eq i32 10, %1039
  br i1 %1040, label %1041, label %1042

1041:                                             ; preds = %1033
  br label %1077

1042:                                             ; preds = %1033
  %1043 = load ptr, ptr %31, align 8, !tbaa !5
  %1044 = load i32, ptr %17, align 4, !tbaa !9
  %1045 = zext i32 %1044 to i64
  %1046 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1043, i64 %1045
  %1047 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1046, i32 0, i32 5
  %1048 = load i32, ptr %1047, align 4, !tbaa !23
  %1049 = icmp eq i32 11, %1048
  br i1 %1049, label %1050, label %1051

1050:                                             ; preds = %1042
  br label %1075

1051:                                             ; preds = %1042
  %1052 = load ptr, ptr %31, align 8, !tbaa !5
  %1053 = load i32, ptr %17, align 4, !tbaa !9
  %1054 = zext i32 %1053 to i64
  %1055 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1052, i64 %1054
  %1056 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1055, i32 0, i32 5
  %1057 = load i32, ptr %1056, align 4, !tbaa !23
  %1058 = icmp eq i32 12, %1057
  br i1 %1058, label %1059, label %1060

1059:                                             ; preds = %1051
  br label %1073

1060:                                             ; preds = %1051
  %1061 = load ptr, ptr %31, align 8, !tbaa !5
  %1062 = load i32, ptr %17, align 4, !tbaa !9
  %1063 = zext i32 %1062 to i64
  %1064 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1061, i64 %1063
  %1065 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1064, i32 0, i32 5
  %1066 = load i32, ptr %1065, align 4, !tbaa !23
  %1067 = icmp eq i32 13, %1066
  br i1 %1067, label %1068, label %1069

1068:                                             ; preds = %1060
  br label %1071

1069:                                             ; preds = %1060
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 442, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #5
  unreachable

1070:                                             ; No predecessors!
  br label %1071

1071:                                             ; preds = %1070, %1068
  %1072 = phi i32 [ 1, %1068 ], [ 0, %1070 ]
  br label %1073

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

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

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

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

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

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

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

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

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

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

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

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

1097:                                             ; preds = %1095, %951
  %1098 = phi i32 [ 8, %951 ], [ %1096, %1095 ]
  br label %1103

1099:                                             ; preds = %935
  %1100 = load i32, ptr %34, align 4, !tbaa !9
  %1101 = load i32, ptr %21, align 4, !tbaa !9
  %1102 = mul i32 %1100, %1101
  br label %1103

1103:                                             ; preds = %1099, %1097
  %1104 = phi i32 [ %1098, %1097 ], [ %1102, %1099 ]
  store i32 %1104, ptr %36, align 4, !tbaa !9
  %1105 = load i32, ptr %26, align 4, !tbaa !9
  %1106 = icmp eq i32 %1105, 0
  br i1 %1106, label %1107, label %1340

1107:                                             ; preds = %1103
  %1108 = load ptr, ptr %31, align 8, !tbaa !5
  %1109 = load i32, ptr %17, align 4, !tbaa !9
  %1110 = zext i32 %1109 to i64
  %1111 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1108, i64 %1110
  %1112 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1111, i32 0, i32 6
  %1113 = load i32, ptr %1112, align 4, !tbaa !23
  %1114 = icmp eq i32 %1113, 1
  br i1 %1114, label %1126, label %1115

1115:                                             ; preds = %1107
  %1116 = load ptr, ptr %31, align 8, !tbaa !5
  %1117 = load i32, ptr %17, align 4, !tbaa !9
  %1118 = zext i32 %1117 to i64
  %1119 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1116, i64 %1118
  %1120 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1119, i32 0, i32 6
  %1121 = load i32, ptr %1120, align 4, !tbaa !23
  %1122 = icmp eq i32 %1121, 4
  br i1 %1122, label %1123, label %1312

1123:                                             ; preds = %1115
  %1124 = load i32, ptr %25, align 4, !tbaa !9
  %1125 = icmp eq i32 %1124, 0
  br i1 %1125, label %1126, label %1312

1126:                                             ; preds = %1123, %1107
  %1127 = load ptr, ptr %13, align 8, !tbaa !5
  %1128 = load i32, ptr %33, align 4, !tbaa !9
  %1129 = load ptr, ptr %14, align 8, !tbaa !5
  %1130 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %1129, i32 0, i32 15
  %1131 = load i32, ptr %1130, align 4, !tbaa !30
  %1132 = load i32, ptr %30, align 4, !tbaa !9
  %1133 = load ptr, ptr %31, align 8, !tbaa !5
  %1134 = load i32, ptr %17, align 4, !tbaa !9
  %1135 = zext i32 %1134 to i64
  %1136 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1133, i64 %1135
  %1137 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1136, i32 0, i32 5
  %1138 = load i32, ptr %1137, align 4, !tbaa !23
  %1139 = icmp eq i32 0, %1138
  br i1 %1139, label %1140, label %1141

1140:                                             ; preds = %1126
  br label %1286

1141:                                             ; preds = %1126
  %1142 = load ptr, ptr %31, align 8, !tbaa !5
  %1143 = load i32, ptr %17, align 4, !tbaa !9
  %1144 = zext i32 %1143 to i64
  %1145 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1142, i64 %1144
  %1146 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1145, i32 0, i32 5
  %1147 = load i32, ptr %1146, align 4, !tbaa !23
  %1148 = icmp eq i32 1, %1147
  br i1 %1148, label %1149, label %1150

1149:                                             ; preds = %1141
  br label %1284

1150:                                             ; preds = %1141
  %1151 = load ptr, ptr %31, align 8, !tbaa !5
  %1152 = load i32, ptr %17, align 4, !tbaa !9
  %1153 = zext i32 %1152 to i64
  %1154 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1151, i64 %1153
  %1155 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1154, i32 0, i32 5
  %1156 = load i32, ptr %1155, align 4, !tbaa !23
  %1157 = icmp eq i32 2, %1156
  br i1 %1157, label %1158, label %1159

1158:                                             ; preds = %1150
  br label %1282

1159:                                             ; preds = %1150
  %1160 = load ptr, ptr %31, align 8, !tbaa !5
  %1161 = load i32, ptr %17, align 4, !tbaa !9
  %1162 = zext i32 %1161 to i64
  %1163 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1160, i64 %1162
  %1164 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1163, i32 0, i32 5
  %1165 = load i32, ptr %1164, align 4, !tbaa !23
  %1166 = icmp eq i32 3, %1165
  br i1 %1166, label %1167, label %1168

1167:                                             ; preds = %1159
  br label %1280

1168:                                             ; preds = %1159
  %1169 = load ptr, ptr %31, align 8, !tbaa !5
  %1170 = load i32, ptr %17, align 4, !tbaa !9
  %1171 = zext i32 %1170 to i64
  %1172 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1169, i64 %1171
  %1173 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1172, i32 0, i32 5
  %1174 = load i32, ptr %1173, align 4, !tbaa !23
  %1175 = icmp eq i32 4, %1174
  br i1 %1175, label %1176, label %1177

1176:                                             ; preds = %1168
  br label %1278

1177:                                             ; preds = %1168
  %1178 = load ptr, ptr %31, align 8, !tbaa !5
  %1179 = load i32, ptr %17, align 4, !tbaa !9
  %1180 = zext i32 %1179 to i64
  %1181 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1178, i64 %1180
  %1182 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1181, i32 0, i32 5
  %1183 = load i32, ptr %1182, align 4, !tbaa !23
  %1184 = icmp eq i32 5, %1183
  br i1 %1184, label %1185, label %1186

1185:                                             ; preds = %1177
  br label %1276

1186:                                             ; preds = %1177
  %1187 = load ptr, ptr %31, align 8, !tbaa !5
  %1188 = load i32, ptr %17, align 4, !tbaa !9
  %1189 = zext i32 %1188 to i64
  %1190 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1187, i64 %1189
  %1191 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1190, i32 0, i32 5
  %1192 = load i32, ptr %1191, align 4, !tbaa !23
  %1193 = icmp eq i32 6, %1192
  br i1 %1193, label %1194, label %1195

1194:                                             ; preds = %1186
  br label %1274

1195:                                             ; preds = %1186
  %1196 = load ptr, ptr %31, align 8, !tbaa !5
  %1197 = load i32, ptr %17, align 4, !tbaa !9
  %1198 = zext i32 %1197 to i64
  %1199 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1196, i64 %1198
  %1200 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1199, i32 0, i32 5
  %1201 = load i32, ptr %1200, align 4, !tbaa !23
  %1202 = icmp eq i32 7, %1201
  br i1 %1202, label %1203, label %1204

1203:                                             ; preds = %1195
  br label %1272

1204:                                             ; preds = %1195
  %1205 = load ptr, ptr %31, align 8, !tbaa !5
  %1206 = load i32, ptr %17, align 4, !tbaa !9
  %1207 = zext i32 %1206 to i64
  %1208 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1205, i64 %1207
  %1209 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1208, i32 0, i32 5
  %1210 = load i32, ptr %1209, align 4, !tbaa !23
  %1211 = icmp eq i32 8, %1210
  br i1 %1211, label %1212, label %1213

1212:                                             ; preds = %1204
  br label %1270

1213:                                             ; preds = %1204
  %1214 = load ptr, ptr %31, align 8, !tbaa !5
  %1215 = load i32, ptr %17, align 4, !tbaa !9
  %1216 = zext i32 %1215 to i64
  %1217 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1214, i64 %1216
  %1218 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1217, i32 0, i32 5
  %1219 = load i32, ptr %1218, align 4, !tbaa !23
  %1220 = icmp eq i32 9, %1219
  br i1 %1220, label %1221, label %1222

1221:                                             ; preds = %1213
  br label %1268

1222:                                             ; preds = %1213
  %1223 = load ptr, ptr %31, align 8, !tbaa !5
  %1224 = load i32, ptr %17, align 4, !tbaa !9
  %1225 = zext i32 %1224 to i64
  %1226 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1223, i64 %1225
  %1227 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1226, i32 0, i32 5
  %1228 = load i32, ptr %1227, align 4, !tbaa !23
  %1229 = icmp eq i32 10, %1228
  br i1 %1229, label %1230, label %1231

1230:                                             ; preds = %1222
  br label %1266

1231:                                             ; preds = %1222
  %1232 = load ptr, ptr %31, align 8, !tbaa !5
  %1233 = load i32, ptr %17, align 4, !tbaa !9
  %1234 = zext i32 %1233 to i64
  %1235 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1232, i64 %1234
  %1236 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1235, i32 0, i32 5
  %1237 = load i32, ptr %1236, align 4, !tbaa !23
  %1238 = icmp eq i32 11, %1237
  br i1 %1238, label %1239, label %1240

1239:                                             ; preds = %1231
  br label %1264

1240:                                             ; preds = %1231
  %1241 = load ptr, ptr %31, align 8, !tbaa !5
  %1242 = load i32, ptr %17, align 4, !tbaa !9
  %1243 = zext i32 %1242 to i64
  %1244 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1241, i64 %1243
  %1245 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1244, i32 0, i32 5
  %1246 = load i32, ptr %1245, align 4, !tbaa !23
  %1247 = icmp eq i32 12, %1246
  br i1 %1247, label %1248, label %1249

1248:                                             ; preds = %1240
  br label %1262

1249:                                             ; preds = %1240
  %1250 = load ptr, ptr %31, align 8, !tbaa !5
  %1251 = load i32, ptr %17, align 4, !tbaa !9
  %1252 = zext i32 %1251 to i64
  %1253 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1250, i64 %1252
  %1254 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1253, i32 0, i32 5
  %1255 = load i32, ptr %1254, align 4, !tbaa !23
  %1256 = icmp eq i32 13, %1255
  br i1 %1256, label %1257, label %1258

1257:                                             ; preds = %1249
  br label %1260

1258:                                             ; preds = %1249
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 445, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #5
  unreachable

1259:                                             ; No predecessors!
  br label %1260

1260:                                             ; preds = %1259, %1257
  %1261 = phi i32 [ 1, %1257 ], [ 0, %1259 ]
  br label %1262

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

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

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

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

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

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

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

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

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

1280:                                             ; preds = %1278, %1167
  %1281 = phi i32 [ 2, %1167 ], [ %1279, %1278 ]
  br label %1282

1282:                                             ; preds = %1280, %1158
  %1283 = phi i32 [ 2, %1158 ], [ %1281, %1280 ]
  br label %1284

1284:                                             ; preds = %1282, %1149
  %1285 = phi i32 [ 4, %1149 ], [ %1283, %1282 ]
  br label %1286

1286:                                             ; preds = %1284, %1140
  %1287 = phi i32 [ 8, %1140 ], [ %1285, %1284 ]
  %1288 = load i32, ptr %26, align 4, !tbaa !9
  %1289 = load i32, ptr %20, align 4, !tbaa !9
  %1290 = sub i32 %1289, 1
  %1291 = icmp eq i32 %1288, %1290
  br i1 %1291, label %1292, label %1294

1292:                                             ; preds = %1286
  %1293 = load i32, ptr %22, align 4, !tbaa !9
  br label %1295

1294:                                             ; preds = %1286
  br label %1295

1295:                                             ; preds = %1294, %1292
  %1296 = phi i32 [ %1293, %1292 ], [ 0, %1294 ]
  call void @libxsmm_generator_bcastload_masked_vreg_aarch64_asimd(ptr noundef %1127, i32 noundef %1128, i32 noundef %1131, i32 noundef %1132, i32 noundef %1287, i32 noundef %1296, i32 noundef 1)
  %1297 = load i32, ptr %24, align 4, !tbaa !9
  %1298 = icmp eq i32 %1297, 0
  br i1 %1298, label %1299, label %1311

1299:                                             ; preds = %1295
  %1300 = load ptr, ptr %31, align 8, !tbaa !5
  %1301 = load i32, ptr %17, align 4, !tbaa !9
  %1302 = zext i32 %1301 to i64
  %1303 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1300, i64 %1302
  %1304 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1303, i32 0, i32 5
  %1305 = load i32, ptr %1304, align 4, !tbaa !23
  %1306 = icmp eq i32 %1305, 2
  br i1 %1306, label %1307, label %1310

1307:                                             ; preds = %1299
  %1308 = load ptr, ptr %13, align 8, !tbaa !5
  %1309 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_generator_vcvt_bf16f32_aarch64(ptr noundef %1308, i32 noundef %1309, i32 noundef 0)
  br label %1310

1310:                                             ; preds = %1307, %1299
  br label %1311

1311:                                             ; preds = %1310, %1295
  br label %1339

1312:                                             ; preds = %1123, %1115
  %1313 = load ptr, ptr %31, align 8, !tbaa !5
  %1314 = load i32, ptr %17, align 4, !tbaa !9
  %1315 = zext i32 %1314 to i64
  %1316 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1313, i64 %1315
  %1317 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1316, i32 0, i32 6
  %1318 = load i32, ptr %1317, align 4, !tbaa !23
  %1319 = icmp eq i32 %1318, 4
  br i1 %1319, label %1320, label %1338

1320:                                             ; preds = %1312
  %1321 = load i32, ptr %25, align 4, !tbaa !9
  %1322 = icmp ugt i32 %1321, 0
  br i1 %1322, label %1323, label %1338

1323:                                             ; preds = %1320
  %1324 = load i8, ptr %37, align 1, !tbaa !23
  %1325 = icmp ne i8 %1324, 0
  br i1 %1325, label %1326, label %1332

1326:                                             ; preds = %1323
  %1327 = load ptr, ptr %13, align 8, !tbaa !5
  %1328 = load i32, ptr %32, align 4, !tbaa !9
  %1329 = load i32, ptr %32, align 4, !tbaa !9
  %1330 = load i32, ptr %30, align 4, !tbaa !9
  %1331 = load i32, ptr %38, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %1327, i32 noundef 73412611, i32 noundef %1328, i32 noundef %1329, i8 noundef zeroext 0, i32 noundef %1330, i32 noundef 0, i32 noundef %1331)
  br label %1337

1332:                                             ; preds = %1323
  %1333 = load ptr, ptr %13, align 8, !tbaa !5
  %1334 = load i32, ptr %32, align 4, !tbaa !9
  %1335 = load i32, ptr %32, align 4, !tbaa !9
  %1336 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %1333, i32 noundef 245373971, i32 noundef %1334, i32 noundef %1335, i8 noundef zeroext 0, i32 noundef %1336, i32 noundef 5)
  br label %1337

1337:                                             ; preds = %1332, %1326
  br label %1338

1338:                                             ; preds = %1337, %1320, %1312
  br label %1339

1339:                                             ; preds = %1338, %1311
  br label %1371

1340:                                             ; preds = %1103
  %1341 = load i8, ptr %37, align 1, !tbaa !23
  %1342 = icmp ne i8 %1341, 0
  br i1 %1342, label %1343, label %1357

1343:                                             ; preds = %1340
  %1344 = load ptr, ptr %13, align 8, !tbaa !5
  %1345 = load i32, ptr %32, align 4, !tbaa !9
  %1346 = load i32, ptr %25, align 4, !tbaa !9
  %1347 = load i32, ptr %20, align 4, !tbaa !9
  %1348 = mul i32 %1346, %1347
  %1349 = add i32 %1345, %1348
  %1350 = load i32, ptr %32, align 4, !tbaa !9
  %1351 = load i32, ptr %25, align 4, !tbaa !9
  %1352 = load i32, ptr %20, align 4, !tbaa !9
  %1353 = mul i32 %1351, %1352
  %1354 = add i32 %1350, %1353
  %1355 = load i32, ptr %30, align 4, !tbaa !9
  %1356 = load i32, ptr %38, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %1344, i32 noundef 73412611, i32 noundef %1349, i32 noundef %1354, i8 noundef zeroext 0, i32 noundef %1355, i32 noundef 0, i32 noundef %1356)
  br label %1370

1357:                                             ; preds = %1340
  %1358 = load ptr, ptr %13, align 8, !tbaa !5
  %1359 = load i32, ptr %32, align 4, !tbaa !9
  %1360 = load i32, ptr %25, align 4, !tbaa !9
  %1361 = load i32, ptr %20, align 4, !tbaa !9
  %1362 = mul i32 %1360, %1361
  %1363 = add i32 %1359, %1362
  %1364 = load i32, ptr %32, align 4, !tbaa !9
  %1365 = load i32, ptr %25, align 4, !tbaa !9
  %1366 = load i32, ptr %20, align 4, !tbaa !9
  %1367 = mul i32 %1365, %1366
  %1368 = add i32 %1364, %1367
  %1369 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %1358, i32 noundef 245373971, i32 noundef %1363, i32 noundef %1368, i8 noundef zeroext 0, i32 noundef %1369, i32 noundef 5)
  br label %1370

1370:                                             ; preds = %1357, %1343
  br label %1371

1371:                                             ; preds = %1370, %1339
  br label %1946

1372:                                             ; preds = %927
  %1373 = load ptr, ptr %31, align 8, !tbaa !5
  %1374 = load i32, ptr %17, align 4, !tbaa !9
  %1375 = zext i32 %1374 to i64
  %1376 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1373, i64 %1375
  %1377 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1376, i32 0, i32 6
  %1378 = load i32, ptr %1377, align 4, !tbaa !23
  %1379 = icmp eq i32 %1378, 2
  br i1 %1379, label %1380, label %1944

1380:                                             ; preds = %1372
  %1381 = load i32, ptr %22, align 4, !tbaa !9
  %1382 = icmp eq i32 %1381, 0
  br i1 %1382, label %1383, label %1543

1383:                                             ; preds = %1380
  %1384 = load ptr, ptr %31, align 8, !tbaa !5
  %1385 = load i32, ptr %17, align 4, !tbaa !9
  %1386 = zext i32 %1385 to i64
  %1387 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1384, i64 %1386
  %1388 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1387, i32 0, i32 5
  %1389 = load i32, ptr %1388, align 4, !tbaa !23
  %1390 = icmp eq i32 0, %1389
  br i1 %1390, label %1391, label %1392

1391:                                             ; preds = %1383
  br label %1537

1392:                                             ; preds = %1383
  %1393 = load ptr, ptr %31, align 8, !tbaa !5
  %1394 = load i32, ptr %17, align 4, !tbaa !9
  %1395 = zext i32 %1394 to i64
  %1396 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1393, i64 %1395
  %1397 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1396, i32 0, i32 5
  %1398 = load i32, ptr %1397, align 4, !tbaa !23
  %1399 = icmp eq i32 1, %1398
  br i1 %1399, label %1400, label %1401

1400:                                             ; preds = %1392
  br label %1535

1401:                                             ; preds = %1392
  %1402 = load ptr, ptr %31, align 8, !tbaa !5
  %1403 = load i32, ptr %17, align 4, !tbaa !9
  %1404 = zext i32 %1403 to i64
  %1405 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1402, i64 %1404
  %1406 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1405, i32 0, i32 5
  %1407 = load i32, ptr %1406, align 4, !tbaa !23
  %1408 = icmp eq i32 2, %1407
  br i1 %1408, label %1409, label %1410

1409:                                             ; preds = %1401
  br label %1533

1410:                                             ; preds = %1401
  %1411 = load ptr, ptr %31, align 8, !tbaa !5
  %1412 = load i32, ptr %17, align 4, !tbaa !9
  %1413 = zext i32 %1412 to i64
  %1414 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1411, i64 %1413
  %1415 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1414, i32 0, i32 5
  %1416 = load i32, ptr %1415, align 4, !tbaa !23
  %1417 = icmp eq i32 3, %1416
  br i1 %1417, label %1418, label %1419

1418:                                             ; preds = %1410
  br label %1531

1419:                                             ; preds = %1410
  %1420 = load ptr, ptr %31, align 8, !tbaa !5
  %1421 = load i32, ptr %17, align 4, !tbaa !9
  %1422 = zext i32 %1421 to i64
  %1423 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1420, i64 %1422
  %1424 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1423, i32 0, i32 5
  %1425 = load i32, ptr %1424, align 4, !tbaa !23
  %1426 = icmp eq i32 4, %1425
  br i1 %1426, label %1427, label %1428

1427:                                             ; preds = %1419
  br label %1529

1428:                                             ; preds = %1419
  %1429 = load ptr, ptr %31, align 8, !tbaa !5
  %1430 = load i32, ptr %17, align 4, !tbaa !9
  %1431 = zext i32 %1430 to i64
  %1432 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1429, i64 %1431
  %1433 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1432, i32 0, i32 5
  %1434 = load i32, ptr %1433, align 4, !tbaa !23
  %1435 = icmp eq i32 5, %1434
  br i1 %1435, label %1436, label %1437

1436:                                             ; preds = %1428
  br label %1527

1437:                                             ; preds = %1428
  %1438 = load ptr, ptr %31, align 8, !tbaa !5
  %1439 = load i32, ptr %17, align 4, !tbaa !9
  %1440 = zext i32 %1439 to i64
  %1441 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1438, i64 %1440
  %1442 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1441, i32 0, i32 5
  %1443 = load i32, ptr %1442, align 4, !tbaa !23
  %1444 = icmp eq i32 6, %1443
  br i1 %1444, label %1445, label %1446

1445:                                             ; preds = %1437
  br label %1525

1446:                                             ; preds = %1437
  %1447 = load ptr, ptr %31, align 8, !tbaa !5
  %1448 = load i32, ptr %17, align 4, !tbaa !9
  %1449 = zext i32 %1448 to i64
  %1450 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1447, i64 %1449
  %1451 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1450, i32 0, i32 5
  %1452 = load i32, ptr %1451, align 4, !tbaa !23
  %1453 = icmp eq i32 7, %1452
  br i1 %1453, label %1454, label %1455

1454:                                             ; preds = %1446
  br label %1523

1455:                                             ; preds = %1446
  %1456 = load ptr, ptr %31, align 8, !tbaa !5
  %1457 = load i32, ptr %17, align 4, !tbaa !9
  %1458 = zext i32 %1457 to i64
  %1459 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1456, i64 %1458
  %1460 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1459, i32 0, i32 5
  %1461 = load i32, ptr %1460, align 4, !tbaa !23
  %1462 = icmp eq i32 8, %1461
  br i1 %1462, label %1463, label %1464

1463:                                             ; preds = %1455
  br label %1521

1464:                                             ; preds = %1455
  %1465 = load ptr, ptr %31, align 8, !tbaa !5
  %1466 = load i32, ptr %17, align 4, !tbaa !9
  %1467 = zext i32 %1466 to i64
  %1468 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1465, i64 %1467
  %1469 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1468, i32 0, i32 5
  %1470 = load i32, ptr %1469, align 4, !tbaa !23
  %1471 = icmp eq i32 9, %1470
  br i1 %1471, label %1472, label %1473

1472:                                             ; preds = %1464
  br label %1519

1473:                                             ; preds = %1464
  %1474 = load ptr, ptr %31, align 8, !tbaa !5
  %1475 = load i32, ptr %17, align 4, !tbaa !9
  %1476 = zext i32 %1475 to i64
  %1477 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1474, i64 %1476
  %1478 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1477, i32 0, i32 5
  %1479 = load i32, ptr %1478, align 4, !tbaa !23
  %1480 = icmp eq i32 10, %1479
  br i1 %1480, label %1481, label %1482

1481:                                             ; preds = %1473
  br label %1517

1482:                                             ; preds = %1473
  %1483 = load ptr, ptr %31, align 8, !tbaa !5
  %1484 = load i32, ptr %17, align 4, !tbaa !9
  %1485 = zext i32 %1484 to i64
  %1486 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1483, i64 %1485
  %1487 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1486, i32 0, i32 5
  %1488 = load i32, ptr %1487, align 4, !tbaa !23
  %1489 = icmp eq i32 11, %1488
  br i1 %1489, label %1490, label %1491

1490:                                             ; preds = %1482
  br label %1515

1491:                                             ; preds = %1482
  %1492 = load ptr, ptr %31, align 8, !tbaa !5
  %1493 = load i32, ptr %17, align 4, !tbaa !9
  %1494 = zext i32 %1493 to i64
  %1495 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1492, i64 %1494
  %1496 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1495, i32 0, i32 5
  %1497 = load i32, ptr %1496, align 4, !tbaa !23
  %1498 = icmp eq i32 12, %1497
  br i1 %1498, label %1499, label %1500

1499:                                             ; preds = %1491
  br label %1513

1500:                                             ; preds = %1491
  %1501 = load ptr, ptr %31, align 8, !tbaa !5
  %1502 = load i32, ptr %17, align 4, !tbaa !9
  %1503 = zext i32 %1502 to i64
  %1504 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1501, i64 %1503
  %1505 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1504, i32 0, i32 5
  %1506 = load i32, ptr %1505, align 4, !tbaa !23
  %1507 = icmp eq i32 13, %1506
  br i1 %1507, label %1508, label %1509

1508:                                             ; preds = %1500
  br label %1511

1509:                                             ; preds = %1500
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 466, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #5
  unreachable

1510:                                             ; No predecessors!
  br label %1511

1511:                                             ; preds = %1510, %1508
  %1512 = phi i32 [ 1, %1508 ], [ 0, %1510 ]
  br label %1513

1513:                                             ; preds = %1511, %1499
  %1514 = phi i32 [ 1, %1499 ], [ %1512, %1511 ]
  br label %1515

1515:                                             ; preds = %1513, %1490
  %1516 = phi i32 [ 2, %1490 ], [ %1514, %1513 ]
  br label %1517

1517:                                             ; preds = %1515, %1481
  %1518 = phi i32 [ 2, %1481 ], [ %1516, %1515 ]
  br label %1519

1519:                                             ; preds = %1517, %1472
  %1520 = phi i32 [ 4, %1472 ], [ %1518, %1517 ]
  br label %1521

1521:                                             ; preds = %1519, %1463
  %1522 = phi i32 [ 4, %1463 ], [ %1520, %1519 ]
  br label %1523

1523:                                             ; preds = %1521, %1454
  %1524 = phi i32 [ 8, %1454 ], [ %1522, %1521 ]
  br label %1525

1525:                                             ; preds = %1523, %1445
  %1526 = phi i32 [ 8, %1445 ], [ %1524, %1523 ]
  br label %1527

1527:                                             ; preds = %1525, %1436
  %1528 = phi i32 [ 1, %1436 ], [ %1526, %1525 ]
  br label %1529

1529:                                             ; preds = %1527, %1427
  %1530 = phi i32 [ 1, %1427 ], [ %1528, %1527 ]
  br label %1531

1531:                                             ; preds = %1529, %1418
  %1532 = phi i32 [ 2, %1418 ], [ %1530, %1529 ]
  br label %1533

1533:                                             ; preds = %1531, %1409
  %1534 = phi i32 [ 2, %1409 ], [ %1532, %1531 ]
  br label %1535

1535:                                             ; preds = %1533, %1400
  %1536 = phi i32 [ 4, %1400 ], [ %1534, %1533 ]
  br label %1537

1537:                                             ; preds = %1535, %1391
  %1538 = phi i32 [ 8, %1391 ], [ %1536, %1535 ]
  %1539 = load i32, ptr %18, align 4, !tbaa !9
  %1540 = mul i32 %1538, %1539
  %1541 = load i32, ptr %20, align 4, !tbaa !9
  %1542 = mul i32 %1540, %1541
  br label %1706

1543:                                             ; preds = %1380
  %1544 = load ptr, ptr %31, align 8, !tbaa !5
  %1545 = load i32, ptr %17, align 4, !tbaa !9
  %1546 = zext i32 %1545 to i64
  %1547 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1544, i64 %1546
  %1548 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1547, i32 0, i32 5
  %1549 = load i32, ptr %1548, align 4, !tbaa !23
  %1550 = icmp eq i32 0, %1549
  br i1 %1550, label %1551, label %1552

1551:                                             ; preds = %1543
  br label %1697

1552:                                             ; preds = %1543
  %1553 = load ptr, ptr %31, align 8, !tbaa !5
  %1554 = load i32, ptr %17, align 4, !tbaa !9
  %1555 = zext i32 %1554 to i64
  %1556 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1553, i64 %1555
  %1557 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1556, i32 0, i32 5
  %1558 = load i32, ptr %1557, align 4, !tbaa !23
  %1559 = icmp eq i32 1, %1558
  br i1 %1559, label %1560, label %1561

1560:                                             ; preds = %1552
  br label %1695

1561:                                             ; preds = %1552
  %1562 = load ptr, ptr %31, align 8, !tbaa !5
  %1563 = load i32, ptr %17, align 4, !tbaa !9
  %1564 = zext i32 %1563 to i64
  %1565 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1562, i64 %1564
  %1566 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1565, i32 0, i32 5
  %1567 = load i32, ptr %1566, align 4, !tbaa !23
  %1568 = icmp eq i32 2, %1567
  br i1 %1568, label %1569, label %1570

1569:                                             ; preds = %1561
  br label %1693

1570:                                             ; preds = %1561
  %1571 = load ptr, ptr %31, align 8, !tbaa !5
  %1572 = load i32, ptr %17, align 4, !tbaa !9
  %1573 = zext i32 %1572 to i64
  %1574 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1571, i64 %1573
  %1575 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1574, i32 0, i32 5
  %1576 = load i32, ptr %1575, align 4, !tbaa !23
  %1577 = icmp eq i32 3, %1576
  br i1 %1577, label %1578, label %1579

1578:                                             ; preds = %1570
  br label %1691

1579:                                             ; preds = %1570
  %1580 = load ptr, ptr %31, align 8, !tbaa !5
  %1581 = load i32, ptr %17, align 4, !tbaa !9
  %1582 = zext i32 %1581 to i64
  %1583 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1580, i64 %1582
  %1584 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1583, i32 0, i32 5
  %1585 = load i32, ptr %1584, align 4, !tbaa !23
  %1586 = icmp eq i32 4, %1585
  br i1 %1586, label %1587, label %1588

1587:                                             ; preds = %1579
  br label %1689

1588:                                             ; preds = %1579
  %1589 = load ptr, ptr %31, align 8, !tbaa !5
  %1590 = load i32, ptr %17, align 4, !tbaa !9
  %1591 = zext i32 %1590 to i64
  %1592 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1589, i64 %1591
  %1593 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1592, i32 0, i32 5
  %1594 = load i32, ptr %1593, align 4, !tbaa !23
  %1595 = icmp eq i32 5, %1594
  br i1 %1595, label %1596, label %1597

1596:                                             ; preds = %1588
  br label %1687

1597:                                             ; preds = %1588
  %1598 = load ptr, ptr %31, align 8, !tbaa !5
  %1599 = load i32, ptr %17, align 4, !tbaa !9
  %1600 = zext i32 %1599 to i64
  %1601 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1598, i64 %1600
  %1602 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1601, i32 0, i32 5
  %1603 = load i32, ptr %1602, align 4, !tbaa !23
  %1604 = icmp eq i32 6, %1603
  br i1 %1604, label %1605, label %1606

1605:                                             ; preds = %1597
  br label %1685

1606:                                             ; preds = %1597
  %1607 = load ptr, ptr %31, align 8, !tbaa !5
  %1608 = load i32, ptr %17, align 4, !tbaa !9
  %1609 = zext i32 %1608 to i64
  %1610 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1607, i64 %1609
  %1611 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1610, i32 0, i32 5
  %1612 = load i32, ptr %1611, align 4, !tbaa !23
  %1613 = icmp eq i32 7, %1612
  br i1 %1613, label %1614, label %1615

1614:                                             ; preds = %1606
  br label %1683

1615:                                             ; preds = %1606
  %1616 = load ptr, ptr %31, align 8, !tbaa !5
  %1617 = load i32, ptr %17, align 4, !tbaa !9
  %1618 = zext i32 %1617 to i64
  %1619 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1616, i64 %1618
  %1620 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1619, i32 0, i32 5
  %1621 = load i32, ptr %1620, align 4, !tbaa !23
  %1622 = icmp eq i32 8, %1621
  br i1 %1622, label %1623, label %1624

1623:                                             ; preds = %1615
  br label %1681

1624:                                             ; preds = %1615
  %1625 = load ptr, ptr %31, align 8, !tbaa !5
  %1626 = load i32, ptr %17, align 4, !tbaa !9
  %1627 = zext i32 %1626 to i64
  %1628 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1625, i64 %1627
  %1629 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1628, i32 0, i32 5
  %1630 = load i32, ptr %1629, align 4, !tbaa !23
  %1631 = icmp eq i32 9, %1630
  br i1 %1631, label %1632, label %1633

1632:                                             ; preds = %1624
  br label %1679

1633:                                             ; preds = %1624
  %1634 = load ptr, ptr %31, align 8, !tbaa !5
  %1635 = load i32, ptr %17, align 4, !tbaa !9
  %1636 = zext i32 %1635 to i64
  %1637 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1634, i64 %1636
  %1638 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1637, i32 0, i32 5
  %1639 = load i32, ptr %1638, align 4, !tbaa !23
  %1640 = icmp eq i32 10, %1639
  br i1 %1640, label %1641, label %1642

1641:                                             ; preds = %1633
  br label %1677

1642:                                             ; preds = %1633
  %1643 = load ptr, ptr %31, align 8, !tbaa !5
  %1644 = load i32, ptr %17, align 4, !tbaa !9
  %1645 = zext i32 %1644 to i64
  %1646 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1643, i64 %1645
  %1647 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1646, i32 0, i32 5
  %1648 = load i32, ptr %1647, align 4, !tbaa !23
  %1649 = icmp eq i32 11, %1648
  br i1 %1649, label %1650, label %1651

1650:                                             ; preds = %1642
  br label %1675

1651:                                             ; preds = %1642
  %1652 = load ptr, ptr %31, align 8, !tbaa !5
  %1653 = load i32, ptr %17, align 4, !tbaa !9
  %1654 = zext i32 %1653 to i64
  %1655 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1652, i64 %1654
  %1656 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1655, i32 0, i32 5
  %1657 = load i32, ptr %1656, align 4, !tbaa !23
  %1658 = icmp eq i32 12, %1657
  br i1 %1658, label %1659, label %1660

1659:                                             ; preds = %1651
  br label %1673

1660:                                             ; preds = %1651
  %1661 = load ptr, ptr %31, align 8, !tbaa !5
  %1662 = load i32, ptr %17, align 4, !tbaa !9
  %1663 = zext i32 %1662 to i64
  %1664 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1661, i64 %1663
  %1665 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1664, i32 0, i32 5
  %1666 = load i32, ptr %1665, align 4, !tbaa !23
  %1667 = icmp eq i32 13, %1666
  br i1 %1667, label %1668, label %1669

1668:                                             ; preds = %1660
  br label %1671

1669:                                             ; preds = %1660
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 466, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #5
  unreachable

1670:                                             ; No predecessors!
  br label %1671

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

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

1675:                                             ; preds = %1673, %1650
  %1676 = phi i32 [ 2, %1650 ], [ %1674, %1673 ]
  br label %1677

1677:                                             ; preds = %1675, %1641
  %1678 = phi i32 [ 2, %1641 ], [ %1676, %1675 ]
  br label %1679

1679:                                             ; preds = %1677, %1632
  %1680 = phi i32 [ 4, %1632 ], [ %1678, %1677 ]
  br label %1681

1681:                                             ; preds = %1679, %1623
  %1682 = phi i32 [ 4, %1623 ], [ %1680, %1679 ]
  br label %1683

1683:                                             ; preds = %1681, %1614
  %1684 = phi i32 [ 8, %1614 ], [ %1682, %1681 ]
  br label %1685

1685:                                             ; preds = %1683, %1605
  %1686 = phi i32 [ 8, %1605 ], [ %1684, %1683 ]
  br label %1687

1687:                                             ; preds = %1685, %1596
  %1688 = phi i32 [ 1, %1596 ], [ %1686, %1685 ]
  br label %1689

1689:                                             ; preds = %1687, %1587
  %1690 = phi i32 [ 1, %1587 ], [ %1688, %1687 ]
  br label %1691

1691:                                             ; preds = %1689, %1578
  %1692 = phi i32 [ 2, %1578 ], [ %1690, %1689 ]
  br label %1693

1693:                                             ; preds = %1691, %1569
  %1694 = phi i32 [ 2, %1569 ], [ %1692, %1691 ]
  br label %1695

1695:                                             ; preds = %1693, %1560
  %1696 = phi i32 [ 4, %1560 ], [ %1694, %1693 ]
  br label %1697

1697:                                             ; preds = %1695, %1551
  %1698 = phi i32 [ 8, %1551 ], [ %1696, %1695 ]
  %1699 = load i32, ptr %18, align 4, !tbaa !9
  %1700 = load i32, ptr %20, align 4, !tbaa !9
  %1701 = sub i32 %1700, 1
  %1702 = mul i32 %1699, %1701
  %1703 = load i32, ptr %22, align 4, !tbaa !9
  %1704 = add i32 %1702, %1703
  %1705 = mul i32 %1698, %1704
  br label %1706

1706:                                             ; preds = %1697, %1537
  %1707 = phi i32 [ %1542, %1537 ], [ %1705, %1697 ]
  store i32 %1707, ptr %36, align 4, !tbaa !9
  %1708 = load i32, ptr %25, align 4, !tbaa !9
  %1709 = icmp eq i32 %1708, 0
  br i1 %1709, label %1710, label %1920

1710:                                             ; preds = %1706
  %1711 = load ptr, ptr %13, align 8, !tbaa !5
  %1712 = load i32, ptr %33, align 4, !tbaa !9
  %1713 = load ptr, ptr %14, align 8, !tbaa !5
  %1714 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %1713, i32 0, i32 15
  %1715 = load i32, ptr %1714, align 4, !tbaa !30
  %1716 = load i32, ptr %30, align 4, !tbaa !9
  %1717 = load ptr, ptr %31, align 8, !tbaa !5
  %1718 = load i32, ptr %17, align 4, !tbaa !9
  %1719 = zext i32 %1718 to i64
  %1720 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1717, i64 %1719
  %1721 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1720, i32 0, i32 5
  %1722 = load i32, ptr %1721, align 4, !tbaa !23
  %1723 = icmp eq i32 0, %1722
  br i1 %1723, label %1724, label %1725

1724:                                             ; preds = %1710
  br label %1870

1725:                                             ; preds = %1710
  %1726 = load ptr, ptr %31, align 8, !tbaa !5
  %1727 = load i32, ptr %17, align 4, !tbaa !9
  %1728 = zext i32 %1727 to i64
  %1729 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1726, i64 %1728
  %1730 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1729, i32 0, i32 5
  %1731 = load i32, ptr %1730, align 4, !tbaa !23
  %1732 = icmp eq i32 1, %1731
  br i1 %1732, label %1733, label %1734

1733:                                             ; preds = %1725
  br label %1868

1734:                                             ; preds = %1725
  %1735 = load ptr, ptr %31, align 8, !tbaa !5
  %1736 = load i32, ptr %17, align 4, !tbaa !9
  %1737 = zext i32 %1736 to i64
  %1738 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1735, i64 %1737
  %1739 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1738, i32 0, i32 5
  %1740 = load i32, ptr %1739, align 4, !tbaa !23
  %1741 = icmp eq i32 2, %1740
  br i1 %1741, label %1742, label %1743

1742:                                             ; preds = %1734
  br label %1866

1743:                                             ; preds = %1734
  %1744 = load ptr, ptr %31, align 8, !tbaa !5
  %1745 = load i32, ptr %17, align 4, !tbaa !9
  %1746 = zext i32 %1745 to i64
  %1747 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1744, i64 %1746
  %1748 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1747, i32 0, i32 5
  %1749 = load i32, ptr %1748, align 4, !tbaa !23
  %1750 = icmp eq i32 3, %1749
  br i1 %1750, label %1751, label %1752

1751:                                             ; preds = %1743
  br label %1864

1752:                                             ; preds = %1743
  %1753 = load ptr, ptr %31, align 8, !tbaa !5
  %1754 = load i32, ptr %17, align 4, !tbaa !9
  %1755 = zext i32 %1754 to i64
  %1756 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1753, i64 %1755
  %1757 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1756, i32 0, i32 5
  %1758 = load i32, ptr %1757, align 4, !tbaa !23
  %1759 = icmp eq i32 4, %1758
  br i1 %1759, label %1760, label %1761

1760:                                             ; preds = %1752
  br label %1862

1761:                                             ; preds = %1752
  %1762 = load ptr, ptr %31, align 8, !tbaa !5
  %1763 = load i32, ptr %17, align 4, !tbaa !9
  %1764 = zext i32 %1763 to i64
  %1765 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1762, i64 %1764
  %1766 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1765, i32 0, i32 5
  %1767 = load i32, ptr %1766, align 4, !tbaa !23
  %1768 = icmp eq i32 5, %1767
  br i1 %1768, label %1769, label %1770

1769:                                             ; preds = %1761
  br label %1860

1770:                                             ; preds = %1761
  %1771 = load ptr, ptr %31, align 8, !tbaa !5
  %1772 = load i32, ptr %17, align 4, !tbaa !9
  %1773 = zext i32 %1772 to i64
  %1774 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1771, i64 %1773
  %1775 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1774, i32 0, i32 5
  %1776 = load i32, ptr %1775, align 4, !tbaa !23
  %1777 = icmp eq i32 6, %1776
  br i1 %1777, label %1778, label %1779

1778:                                             ; preds = %1770
  br label %1858

1779:                                             ; preds = %1770
  %1780 = load ptr, ptr %31, align 8, !tbaa !5
  %1781 = load i32, ptr %17, align 4, !tbaa !9
  %1782 = zext i32 %1781 to i64
  %1783 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1780, i64 %1782
  %1784 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1783, i32 0, i32 5
  %1785 = load i32, ptr %1784, align 4, !tbaa !23
  %1786 = icmp eq i32 7, %1785
  br i1 %1786, label %1787, label %1788

1787:                                             ; preds = %1779
  br label %1856

1788:                                             ; preds = %1779
  %1789 = load ptr, ptr %31, align 8, !tbaa !5
  %1790 = load i32, ptr %17, align 4, !tbaa !9
  %1791 = zext i32 %1790 to i64
  %1792 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1789, i64 %1791
  %1793 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1792, i32 0, i32 5
  %1794 = load i32, ptr %1793, align 4, !tbaa !23
  %1795 = icmp eq i32 8, %1794
  br i1 %1795, label %1796, label %1797

1796:                                             ; preds = %1788
  br label %1854

1797:                                             ; preds = %1788
  %1798 = load ptr, ptr %31, align 8, !tbaa !5
  %1799 = load i32, ptr %17, align 4, !tbaa !9
  %1800 = zext i32 %1799 to i64
  %1801 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1798, i64 %1800
  %1802 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1801, i32 0, i32 5
  %1803 = load i32, ptr %1802, align 4, !tbaa !23
  %1804 = icmp eq i32 9, %1803
  br i1 %1804, label %1805, label %1806

1805:                                             ; preds = %1797
  br label %1852

1806:                                             ; preds = %1797
  %1807 = load ptr, ptr %31, align 8, !tbaa !5
  %1808 = load i32, ptr %17, align 4, !tbaa !9
  %1809 = zext i32 %1808 to i64
  %1810 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1807, i64 %1809
  %1811 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1810, i32 0, i32 5
  %1812 = load i32, ptr %1811, align 4, !tbaa !23
  %1813 = icmp eq i32 10, %1812
  br i1 %1813, label %1814, label %1815

1814:                                             ; preds = %1806
  br label %1850

1815:                                             ; preds = %1806
  %1816 = load ptr, ptr %31, align 8, !tbaa !5
  %1817 = load i32, ptr %17, align 4, !tbaa !9
  %1818 = zext i32 %1817 to i64
  %1819 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1816, i64 %1818
  %1820 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1819, i32 0, i32 5
  %1821 = load i32, ptr %1820, align 4, !tbaa !23
  %1822 = icmp eq i32 11, %1821
  br i1 %1822, label %1823, label %1824

1823:                                             ; preds = %1815
  br label %1848

1824:                                             ; preds = %1815
  %1825 = load ptr, ptr %31, align 8, !tbaa !5
  %1826 = load i32, ptr %17, align 4, !tbaa !9
  %1827 = zext i32 %1826 to i64
  %1828 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1825, i64 %1827
  %1829 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1828, i32 0, i32 5
  %1830 = load i32, ptr %1829, align 4, !tbaa !23
  %1831 = icmp eq i32 12, %1830
  br i1 %1831, label %1832, label %1833

1832:                                             ; preds = %1824
  br label %1846

1833:                                             ; preds = %1824
  %1834 = load ptr, ptr %31, align 8, !tbaa !5
  %1835 = load i32, ptr %17, align 4, !tbaa !9
  %1836 = zext i32 %1835 to i64
  %1837 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1834, i64 %1836
  %1838 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1837, i32 0, i32 5
  %1839 = load i32, ptr %1838, align 4, !tbaa !23
  %1840 = icmp eq i32 13, %1839
  br i1 %1840, label %1841, label %1842

1841:                                             ; preds = %1833
  br label %1844

1842:                                             ; preds = %1833
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 469, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #5
  unreachable

1843:                                             ; No predecessors!
  br label %1844

1844:                                             ; preds = %1843, %1841
  %1845 = phi i32 [ 1, %1841 ], [ 0, %1843 ]
  br label %1846

1846:                                             ; preds = %1844, %1832
  %1847 = phi i32 [ 1, %1832 ], [ %1845, %1844 ]
  br label %1848

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

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

1852:                                             ; preds = %1850, %1805
  %1853 = phi i32 [ 4, %1805 ], [ %1851, %1850 ]
  br label %1854

1854:                                             ; preds = %1852, %1796
  %1855 = phi i32 [ 4, %1796 ], [ %1853, %1852 ]
  br label %1856

1856:                                             ; preds = %1854, %1787
  %1857 = phi i32 [ 8, %1787 ], [ %1855, %1854 ]
  br label %1858

1858:                                             ; preds = %1856, %1778
  %1859 = phi i32 [ 8, %1778 ], [ %1857, %1856 ]
  br label %1860

1860:                                             ; preds = %1858, %1769
  %1861 = phi i32 [ 1, %1769 ], [ %1859, %1858 ]
  br label %1862

1862:                                             ; preds = %1860, %1760
  %1863 = phi i32 [ 1, %1760 ], [ %1861, %1860 ]
  br label %1864

1864:                                             ; preds = %1862, %1751
  %1865 = phi i32 [ 2, %1751 ], [ %1863, %1862 ]
  br label %1866

1866:                                             ; preds = %1864, %1742
  %1867 = phi i32 [ 2, %1742 ], [ %1865, %1864 ]
  br label %1868

1868:                                             ; preds = %1866, %1733
  %1869 = phi i32 [ 4, %1733 ], [ %1867, %1866 ]
  br label %1870

1870:                                             ; preds = %1868, %1724
  %1871 = phi i32 [ 8, %1724 ], [ %1869, %1868 ]
  %1872 = load i32, ptr %40, align 4, !tbaa !9
  %1873 = load i32, ptr %41, align 4, !tbaa !9
  %1874 = trunc i32 %1873 to i8
  %1875 = zext i8 %1874 to i32
  %1876 = icmp eq i32 0, %1875
  br i1 %1876, label %1882, label %1877

1877:                                             ; preds = %1870
  %1878 = load i32, ptr %41, align 4, !tbaa !9
  %1879 = trunc i32 %1878 to i8
  %1880 = zext i8 %1879 to i32
  %1881 = icmp slt i32 0, %1880
  br i1 %1881, label %1882, label %1900

1882:                                             ; preds = %1877, %1870
  %1883 = load i32, ptr %41, align 4, !tbaa !9
  %1884 = zext i32 %1883 to i64
  %1885 = mul i64 1, %1884
  %1886 = icmp ult i64 %1885, 255
  br i1 %1886, label %1887, label %1891

1887:                                             ; preds = %1882
  %1888 = load i32, ptr %41, align 4, !tbaa !9
  %1889 = zext i32 %1888 to i64
  %1890 = mul i64 1, %1889
  br label %1892

1891:                                             ; preds = %1882
  br label %1892

1892:                                             ; preds = %1891, %1887
  %1893 = phi i64 [ %1890, %1887 ], [ 255, %1891 ]
  %1894 = icmp ule i64 %1893, 255
  br i1 %1894, label %1895, label %1900

1895:                                             ; preds = %1892
  %1896 = load i32, ptr %41, align 4, !tbaa !9
  %1897 = uitofp i32 %1896 to double
  %1898 = fcmp ole double 0.000000e+00, %1897
  br i1 %1898, label %1899, label %1900

1899:                                             ; preds = %1895
  br label %1901

1900:                                             ; preds = %1895, %1892, %1877
  call void @__assert_fail(ptr noundef @.str.4, ptr noundef @.str.1, i32 noundef 469, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #5
  unreachable

1901:                                             ; preds = %1899
  %1902 = load i32, ptr %41, align 4, !tbaa !9
  %1903 = trunc i32 %1902 to i8
  %1904 = load i8, ptr %37, align 1, !tbaa !23
  call void @libxsmm_generator_vloadstore_masked_vreg_aarch64(ptr noundef %1711, i32 noundef %1712, i32 noundef %1715, i32 noundef %1716, i32 noundef %1871, i32 noundef %1872, i32 noundef 1, i32 noundef 0, i8 noundef zeroext %1903, i8 noundef zeroext %1904)
  %1905 = load i32, ptr %24, align 4, !tbaa !9
  %1906 = icmp eq i32 %1905, 0
  br i1 %1906, label %1907, label %1919

1907:                                             ; preds = %1901
  %1908 = load ptr, ptr %31, align 8, !tbaa !5
  %1909 = load i32, ptr %17, align 4, !tbaa !9
  %1910 = zext i32 %1909 to i64
  %1911 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1908, i64 %1910
  %1912 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1911, i32 0, i32 5
  %1913 = load i32, ptr %1912, align 4, !tbaa !23
  %1914 = icmp eq i32 %1913, 2
  br i1 %1914, label %1915, label %1918

1915:                                             ; preds = %1907
  %1916 = load ptr, ptr %13, align 8, !tbaa !5
  %1917 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_generator_vcvt_bf16f32_aarch64(ptr noundef %1916, i32 noundef %1917, i32 noundef 0)
  br label %1918

1918:                                             ; preds = %1915, %1907
  br label %1919

1919:                                             ; preds = %1918, %1901
  br label %1943

1920:                                             ; preds = %1706
  %1921 = load i8, ptr %37, align 1, !tbaa !23
  %1922 = icmp ne i8 %1921, 0
  br i1 %1922, label %1923, label %1933

1923:                                             ; preds = %1920
  %1924 = load ptr, ptr %13, align 8, !tbaa !5
  %1925 = load i32, ptr %32, align 4, !tbaa !9
  %1926 = load i32, ptr %26, align 4, !tbaa !9
  %1927 = add i32 %1925, %1926
  %1928 = load i32, ptr %32, align 4, !tbaa !9
  %1929 = load i32, ptr %26, align 4, !tbaa !9
  %1930 = add i32 %1928, %1929
  %1931 = load i32, ptr %30, align 4, !tbaa !9
  %1932 = load i32, ptr %38, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %1924, i32 noundef 73412611, i32 noundef %1927, i32 noundef %1930, i8 noundef zeroext 0, i32 noundef %1931, i32 noundef 0, i32 noundef %1932)
  br label %1942

1933:                                             ; preds = %1920
  %1934 = load ptr, ptr %13, align 8, !tbaa !5
  %1935 = load i32, ptr %32, align 4, !tbaa !9
  %1936 = load i32, ptr %26, align 4, !tbaa !9
  %1937 = add i32 %1935, %1936
  %1938 = load i32, ptr %32, align 4, !tbaa !9
  %1939 = load i32, ptr %26, align 4, !tbaa !9
  %1940 = add i32 %1938, %1939
  %1941 = load i32, ptr %30, align 4, !tbaa !9
  call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %1934, i32 noundef 245373971, i32 noundef %1937, i32 noundef %1940, i8 noundef zeroext 0, i32 noundef %1941, i32 noundef 5)
  br label %1942

1942:                                             ; preds = %1933, %1923
  br label %1943

1943:                                             ; preds = %1942, %1919
  br label %1945

1944:                                             ; preds = %1372
  br label %1945

1945:                                             ; preds = %1944, %1943
  br label %1946

1946:                                             ; preds = %1945, %1371
  br label %1947

1947:                                             ; preds = %1946, %918
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  br label %1948

1948:                                             ; preds = %1947
  %1949 = load i32, ptr %26, align 4, !tbaa !9
  %1950 = add i32 %1949, 1
  store i32 %1950, ptr %26, align 4, !tbaa !9
  br label %590, !llvm.loop !31

1951:                                             ; preds = %590
  %1952 = load ptr, ptr %31, align 8, !tbaa !5
  %1953 = load i32, ptr %17, align 4, !tbaa !9
  %1954 = zext i32 %1953 to i64
  %1955 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1952, i64 %1954
  %1956 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1955, i32 0, i32 6
  %1957 = load i32, ptr %1956, align 4, !tbaa !23
  %1958 = icmp eq i32 %1957, 0
  br i1 %1958, label %1959, label %1976

1959:                                             ; preds = %1951
  %1960 = load i32, ptr %34, align 4, !tbaa !9
  %1961 = load i32, ptr %35, align 4, !tbaa !9
  %1962 = icmp ne i32 %1960, %1961
  br i1 %1962, label %1963, label %1975

1963:                                             ; preds = %1959
  %1964 = load ptr, ptr %13, align 8, !tbaa !5
  %1965 = load i32, ptr %33, align 4, !tbaa !9
  %1966 = load ptr, ptr %14, align 8, !tbaa !5
  %1967 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %1966, i32 0, i32 15
  %1968 = load i32, ptr %1967, align 4, !tbaa !30
  %1969 = load i32, ptr %33, align 4, !tbaa !9
  %1970 = load i32, ptr %34, align 4, !tbaa !9
  %1971 = zext i32 %1970 to i64
  %1972 = load i32, ptr %35, align 4, !tbaa !9
  %1973 = zext i32 %1972 to i64
  %1974 = sub nsw i64 %1971, %1973
  call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %1964, i32 noundef 4096, i32 noundef %1965, i32 noundef %1968, i32 noundef %1969, i64 noundef %1974)
  br label %1975

1975:                                             ; preds = %1963, %1959
  br label %2310

1976:                                             ; preds = %1951
  %1977 = load ptr, ptr %31, align 8, !tbaa !5
  %1978 = load i32, ptr %17, align 4, !tbaa !9
  %1979 = zext i32 %1978 to i64
  %1980 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1977, i64 %1979
  %1981 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1980, i32 0, i32 6
  %1982 = load i32, ptr %1981, align 4, !tbaa !23
  %1983 = icmp eq i32 %1982, 1
  br i1 %1983, label %1984, label %2309

1984:                                             ; preds = %1976
  %1985 = load i32, ptr %34, align 4, !tbaa !9
  %1986 = load ptr, ptr %31, align 8, !tbaa !5
  %1987 = load i32, ptr %17, align 4, !tbaa !9
  %1988 = zext i32 %1987 to i64
  %1989 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1986, i64 %1988
  %1990 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1989, i32 0, i32 5
  %1991 = load i32, ptr %1990, align 4, !tbaa !23
  %1992 = icmp eq i32 0, %1991
  br i1 %1992, label %1993, label %1994

1993:                                             ; preds = %1984
  br label %2139

1994:                                             ; preds = %1984
  %1995 = load ptr, ptr %31, align 8, !tbaa !5
  %1996 = load i32, ptr %17, align 4, !tbaa !9
  %1997 = zext i32 %1996 to i64
  %1998 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1995, i64 %1997
  %1999 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %1998, i32 0, i32 5
  %2000 = load i32, ptr %1999, align 4, !tbaa !23
  %2001 = icmp eq i32 1, %2000
  br i1 %2001, label %2002, label %2003

2002:                                             ; preds = %1994
  br label %2137

2003:                                             ; preds = %1994
  %2004 = load ptr, ptr %31, align 8, !tbaa !5
  %2005 = load i32, ptr %17, align 4, !tbaa !9
  %2006 = zext i32 %2005 to i64
  %2007 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2004, i64 %2006
  %2008 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2007, i32 0, i32 5
  %2009 = load i32, ptr %2008, align 4, !tbaa !23
  %2010 = icmp eq i32 2, %2009
  br i1 %2010, label %2011, label %2012

2011:                                             ; preds = %2003
  br label %2135

2012:                                             ; preds = %2003
  %2013 = load ptr, ptr %31, align 8, !tbaa !5
  %2014 = load i32, ptr %17, align 4, !tbaa !9
  %2015 = zext i32 %2014 to i64
  %2016 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2013, i64 %2015
  %2017 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2016, i32 0, i32 5
  %2018 = load i32, ptr %2017, align 4, !tbaa !23
  %2019 = icmp eq i32 3, %2018
  br i1 %2019, label %2020, label %2021

2020:                                             ; preds = %2012
  br label %2133

2021:                                             ; preds = %2012
  %2022 = load ptr, ptr %31, align 8, !tbaa !5
  %2023 = load i32, ptr %17, align 4, !tbaa !9
  %2024 = zext i32 %2023 to i64
  %2025 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2022, i64 %2024
  %2026 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2025, i32 0, i32 5
  %2027 = load i32, ptr %2026, align 4, !tbaa !23
  %2028 = icmp eq i32 4, %2027
  br i1 %2028, label %2029, label %2030

2029:                                             ; preds = %2021
  br label %2131

2030:                                             ; preds = %2021
  %2031 = load ptr, ptr %31, align 8, !tbaa !5
  %2032 = load i32, ptr %17, align 4, !tbaa !9
  %2033 = zext i32 %2032 to i64
  %2034 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2031, i64 %2033
  %2035 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2034, i32 0, i32 5
  %2036 = load i32, ptr %2035, align 4, !tbaa !23
  %2037 = icmp eq i32 5, %2036
  br i1 %2037, label %2038, label %2039

2038:                                             ; preds = %2030
  br label %2129

2039:                                             ; preds = %2030
  %2040 = load ptr, ptr %31, align 8, !tbaa !5
  %2041 = load i32, ptr %17, align 4, !tbaa !9
  %2042 = zext i32 %2041 to i64
  %2043 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2040, i64 %2042
  %2044 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2043, i32 0, i32 5
  %2045 = load i32, ptr %2044, align 4, !tbaa !23
  %2046 = icmp eq i32 6, %2045
  br i1 %2046, label %2047, label %2048

2047:                                             ; preds = %2039
  br label %2127

2048:                                             ; preds = %2039
  %2049 = load ptr, ptr %31, align 8, !tbaa !5
  %2050 = load i32, ptr %17, align 4, !tbaa !9
  %2051 = zext i32 %2050 to i64
  %2052 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2049, i64 %2051
  %2053 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2052, i32 0, i32 5
  %2054 = load i32, ptr %2053, align 4, !tbaa !23
  %2055 = icmp eq i32 7, %2054
  br i1 %2055, label %2056, label %2057

2056:                                             ; preds = %2048
  br label %2125

2057:                                             ; preds = %2048
  %2058 = load ptr, ptr %31, align 8, !tbaa !5
  %2059 = load i32, ptr %17, align 4, !tbaa !9
  %2060 = zext i32 %2059 to i64
  %2061 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2058, i64 %2060
  %2062 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2061, i32 0, i32 5
  %2063 = load i32, ptr %2062, align 4, !tbaa !23
  %2064 = icmp eq i32 8, %2063
  br i1 %2064, label %2065, label %2066

2065:                                             ; preds = %2057
  br label %2123

2066:                                             ; preds = %2057
  %2067 = load ptr, ptr %31, align 8, !tbaa !5
  %2068 = load i32, ptr %17, align 4, !tbaa !9
  %2069 = zext i32 %2068 to i64
  %2070 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2067, i64 %2069
  %2071 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2070, i32 0, i32 5
  %2072 = load i32, ptr %2071, align 4, !tbaa !23
  %2073 = icmp eq i32 9, %2072
  br i1 %2073, label %2074, label %2075

2074:                                             ; preds = %2066
  br label %2121

2075:                                             ; preds = %2066
  %2076 = load ptr, ptr %31, align 8, !tbaa !5
  %2077 = load i32, ptr %17, align 4, !tbaa !9
  %2078 = zext i32 %2077 to i64
  %2079 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2076, i64 %2078
  %2080 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2079, i32 0, i32 5
  %2081 = load i32, ptr %2080, align 4, !tbaa !23
  %2082 = icmp eq i32 10, %2081
  br i1 %2082, label %2083, label %2084

2083:                                             ; preds = %2075
  br label %2119

2084:                                             ; preds = %2075
  %2085 = load ptr, ptr %31, align 8, !tbaa !5
  %2086 = load i32, ptr %17, align 4, !tbaa !9
  %2087 = zext i32 %2086 to i64
  %2088 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2085, i64 %2087
  %2089 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2088, i32 0, i32 5
  %2090 = load i32, ptr %2089, align 4, !tbaa !23
  %2091 = icmp eq i32 11, %2090
  br i1 %2091, label %2092, label %2093

2092:                                             ; preds = %2084
  br label %2117

2093:                                             ; preds = %2084
  %2094 = load ptr, ptr %31, align 8, !tbaa !5
  %2095 = load i32, ptr %17, align 4, !tbaa !9
  %2096 = zext i32 %2095 to i64
  %2097 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2094, i64 %2096
  %2098 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2097, i32 0, i32 5
  %2099 = load i32, ptr %2098, align 4, !tbaa !23
  %2100 = icmp eq i32 12, %2099
  br i1 %2100, label %2101, label %2102

2101:                                             ; preds = %2093
  br label %2115

2102:                                             ; preds = %2093
  %2103 = load ptr, ptr %31, align 8, !tbaa !5
  %2104 = load i32, ptr %17, align 4, !tbaa !9
  %2105 = zext i32 %2104 to i64
  %2106 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2103, i64 %2105
  %2107 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2106, i32 0, i32 5
  %2108 = load i32, ptr %2107, align 4, !tbaa !23
  %2109 = icmp eq i32 13, %2108
  br i1 %2109, label %2110, label %2111

2110:                                             ; preds = %2102
  br label %2113

2111:                                             ; preds = %2102
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 492, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #5
  unreachable

2112:                                             ; No predecessors!
  br label %2113

2113:                                             ; preds = %2112, %2110
  %2114 = phi i32 [ 1, %2110 ], [ 0, %2112 ]
  br label %2115

2115:                                             ; preds = %2113, %2101
  %2116 = phi i32 [ 1, %2101 ], [ %2114, %2113 ]
  br label %2117

2117:                                             ; preds = %2115, %2092
  %2118 = phi i32 [ 2, %2092 ], [ %2116, %2115 ]
  br label %2119

2119:                                             ; preds = %2117, %2083
  %2120 = phi i32 [ 2, %2083 ], [ %2118, %2117 ]
  br label %2121

2121:                                             ; preds = %2119, %2074
  %2122 = phi i32 [ 4, %2074 ], [ %2120, %2119 ]
  br label %2123

2123:                                             ; preds = %2121, %2065
  %2124 = phi i32 [ 4, %2065 ], [ %2122, %2121 ]
  br label %2125

2125:                                             ; preds = %2123, %2056
  %2126 = phi i32 [ 8, %2056 ], [ %2124, %2123 ]
  br label %2127

2127:                                             ; preds = %2125, %2047
  %2128 = phi i32 [ 8, %2047 ], [ %2126, %2125 ]
  br label %2129

2129:                                             ; preds = %2127, %2038
  %2130 = phi i32 [ 1, %2038 ], [ %2128, %2127 ]
  br label %2131

2131:                                             ; preds = %2129, %2029
  %2132 = phi i32 [ 1, %2029 ], [ %2130, %2129 ]
  br label %2133

2133:                                             ; preds = %2131, %2020
  %2134 = phi i32 [ 2, %2020 ], [ %2132, %2131 ]
  br label %2135

2135:                                             ; preds = %2133, %2011
  %2136 = phi i32 [ 2, %2011 ], [ %2134, %2133 ]
  br label %2137

2137:                                             ; preds = %2135, %2002
  %2138 = phi i32 [ 4, %2002 ], [ %2136, %2135 ]
  br label %2139

2139:                                             ; preds = %2137, %1993
  %2140 = phi i32 [ 8, %1993 ], [ %2138, %2137 ]
  %2141 = icmp ne i32 %1985, %2140
  br i1 %2141, label %2142, label %2308

2142:                                             ; preds = %2139
  %2143 = load ptr, ptr %13, align 8, !tbaa !5
  %2144 = load i32, ptr %33, align 4, !tbaa !9
  %2145 = load ptr, ptr %14, align 8, !tbaa !5
  %2146 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %2145, i32 0, i32 15
  %2147 = load i32, ptr %2146, align 4, !tbaa !30
  %2148 = load i32, ptr %33, align 4, !tbaa !9
  %2149 = load i32, ptr %34, align 4, !tbaa !9
  %2150 = zext i32 %2149 to i64
  %2151 = load ptr, ptr %31, align 8, !tbaa !5
  %2152 = load i32, ptr %17, align 4, !tbaa !9
  %2153 = zext i32 %2152 to i64
  %2154 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2151, i64 %2153
  %2155 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2154, i32 0, i32 5
  %2156 = load i32, ptr %2155, align 4, !tbaa !23
  %2157 = icmp eq i32 0, %2156
  br i1 %2157, label %2158, label %2159

2158:                                             ; preds = %2142
  br label %2304

2159:                                             ; preds = %2142
  %2160 = load ptr, ptr %31, align 8, !tbaa !5
  %2161 = load i32, ptr %17, align 4, !tbaa !9
  %2162 = zext i32 %2161 to i64
  %2163 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2160, i64 %2162
  %2164 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2163, i32 0, i32 5
  %2165 = load i32, ptr %2164, align 4, !tbaa !23
  %2166 = icmp eq i32 1, %2165
  br i1 %2166, label %2167, label %2168

2167:                                             ; preds = %2159
  br label %2302

2168:                                             ; preds = %2159
  %2169 = load ptr, ptr %31, align 8, !tbaa !5
  %2170 = load i32, ptr %17, align 4, !tbaa !9
  %2171 = zext i32 %2170 to i64
  %2172 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2169, i64 %2171
  %2173 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2172, i32 0, i32 5
  %2174 = load i32, ptr %2173, align 4, !tbaa !23
  %2175 = icmp eq i32 2, %2174
  br i1 %2175, label %2176, label %2177

2176:                                             ; preds = %2168
  br label %2300

2177:                                             ; preds = %2168
  %2178 = load ptr, ptr %31, align 8, !tbaa !5
  %2179 = load i32, ptr %17, align 4, !tbaa !9
  %2180 = zext i32 %2179 to i64
  %2181 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2178, i64 %2180
  %2182 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2181, i32 0, i32 5
  %2183 = load i32, ptr %2182, align 4, !tbaa !23
  %2184 = icmp eq i32 3, %2183
  br i1 %2184, label %2185, label %2186

2185:                                             ; preds = %2177
  br label %2298

2186:                                             ; preds = %2177
  %2187 = load ptr, ptr %31, align 8, !tbaa !5
  %2188 = load i32, ptr %17, align 4, !tbaa !9
  %2189 = zext i32 %2188 to i64
  %2190 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2187, i64 %2189
  %2191 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2190, i32 0, i32 5
  %2192 = load i32, ptr %2191, align 4, !tbaa !23
  %2193 = icmp eq i32 4, %2192
  br i1 %2193, label %2194, label %2195

2194:                                             ; preds = %2186
  br label %2296

2195:                                             ; preds = %2186
  %2196 = load ptr, ptr %31, align 8, !tbaa !5
  %2197 = load i32, ptr %17, align 4, !tbaa !9
  %2198 = zext i32 %2197 to i64
  %2199 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2196, i64 %2198
  %2200 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2199, i32 0, i32 5
  %2201 = load i32, ptr %2200, align 4, !tbaa !23
  %2202 = icmp eq i32 5, %2201
  br i1 %2202, label %2203, label %2204

2203:                                             ; preds = %2195
  br label %2294

2204:                                             ; preds = %2195
  %2205 = load ptr, ptr %31, align 8, !tbaa !5
  %2206 = load i32, ptr %17, align 4, !tbaa !9
  %2207 = zext i32 %2206 to i64
  %2208 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2205, i64 %2207
  %2209 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2208, i32 0, i32 5
  %2210 = load i32, ptr %2209, align 4, !tbaa !23
  %2211 = icmp eq i32 6, %2210
  br i1 %2211, label %2212, label %2213

2212:                                             ; preds = %2204
  br label %2292

2213:                                             ; preds = %2204
  %2214 = load ptr, ptr %31, align 8, !tbaa !5
  %2215 = load i32, ptr %17, align 4, !tbaa !9
  %2216 = zext i32 %2215 to i64
  %2217 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2214, i64 %2216
  %2218 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2217, i32 0, i32 5
  %2219 = load i32, ptr %2218, align 4, !tbaa !23
  %2220 = icmp eq i32 7, %2219
  br i1 %2220, label %2221, label %2222

2221:                                             ; preds = %2213
  br label %2290

2222:                                             ; preds = %2213
  %2223 = load ptr, ptr %31, align 8, !tbaa !5
  %2224 = load i32, ptr %17, align 4, !tbaa !9
  %2225 = zext i32 %2224 to i64
  %2226 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2223, i64 %2225
  %2227 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2226, i32 0, i32 5
  %2228 = load i32, ptr %2227, align 4, !tbaa !23
  %2229 = icmp eq i32 8, %2228
  br i1 %2229, label %2230, label %2231

2230:                                             ; preds = %2222
  br label %2288

2231:                                             ; preds = %2222
  %2232 = load ptr, ptr %31, align 8, !tbaa !5
  %2233 = load i32, ptr %17, align 4, !tbaa !9
  %2234 = zext i32 %2233 to i64
  %2235 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2232, i64 %2234
  %2236 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2235, i32 0, i32 5
  %2237 = load i32, ptr %2236, align 4, !tbaa !23
  %2238 = icmp eq i32 9, %2237
  br i1 %2238, label %2239, label %2240

2239:                                             ; preds = %2231
  br label %2286

2240:                                             ; preds = %2231
  %2241 = load ptr, ptr %31, align 8, !tbaa !5
  %2242 = load i32, ptr %17, align 4, !tbaa !9
  %2243 = zext i32 %2242 to i64
  %2244 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2241, i64 %2243
  %2245 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2244, i32 0, i32 5
  %2246 = load i32, ptr %2245, align 4, !tbaa !23
  %2247 = icmp eq i32 10, %2246
  br i1 %2247, label %2248, label %2249

2248:                                             ; preds = %2240
  br label %2284

2249:                                             ; preds = %2240
  %2250 = load ptr, ptr %31, align 8, !tbaa !5
  %2251 = load i32, ptr %17, align 4, !tbaa !9
  %2252 = zext i32 %2251 to i64
  %2253 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2250, i64 %2252
  %2254 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2253, i32 0, i32 5
  %2255 = load i32, ptr %2254, align 4, !tbaa !23
  %2256 = icmp eq i32 11, %2255
  br i1 %2256, label %2257, label %2258

2257:                                             ; preds = %2249
  br label %2282

2258:                                             ; preds = %2249
  %2259 = load ptr, ptr %31, align 8, !tbaa !5
  %2260 = load i32, ptr %17, align 4, !tbaa !9
  %2261 = zext i32 %2260 to i64
  %2262 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2259, i64 %2261
  %2263 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2262, i32 0, i32 5
  %2264 = load i32, ptr %2263, align 4, !tbaa !23
  %2265 = icmp eq i32 12, %2264
  br i1 %2265, label %2266, label %2267

2266:                                             ; preds = %2258
  br label %2280

2267:                                             ; preds = %2258
  %2268 = load ptr, ptr %31, align 8, !tbaa !5
  %2269 = load i32, ptr %17, align 4, !tbaa !9
  %2270 = zext i32 %2269 to i64
  %2271 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2268, i64 %2270
  %2272 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2271, i32 0, i32 5
  %2273 = load i32, ptr %2272, align 4, !tbaa !23
  %2274 = icmp eq i32 13, %2273
  br i1 %2274, label %2275, label %2276

2275:                                             ; preds = %2267
  br label %2278

2276:                                             ; preds = %2267
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 493, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #5
  unreachable

2277:                                             ; No predecessors!
  br label %2278

2278:                                             ; preds = %2277, %2275
  %2279 = phi i32 [ 1, %2275 ], [ 0, %2277 ]
  br label %2280

2280:                                             ; preds = %2278, %2266
  %2281 = phi i32 [ 1, %2266 ], [ %2279, %2278 ]
  br label %2282

2282:                                             ; preds = %2280, %2257
  %2283 = phi i32 [ 2, %2257 ], [ %2281, %2280 ]
  br label %2284

2284:                                             ; preds = %2282, %2248
  %2285 = phi i32 [ 2, %2248 ], [ %2283, %2282 ]
  br label %2286

2286:                                             ; preds = %2284, %2239
  %2287 = phi i32 [ 4, %2239 ], [ %2285, %2284 ]
  br label %2288

2288:                                             ; preds = %2286, %2230
  %2289 = phi i32 [ 4, %2230 ], [ %2287, %2286 ]
  br label %2290

2290:                                             ; preds = %2288, %2221
  %2291 = phi i32 [ 8, %2221 ], [ %2289, %2288 ]
  br label %2292

2292:                                             ; preds = %2290, %2212
  %2293 = phi i32 [ 8, %2212 ], [ %2291, %2290 ]
  br label %2294

2294:                                             ; preds = %2292, %2203
  %2295 = phi i32 [ 1, %2203 ], [ %2293, %2292 ]
  br label %2296

2296:                                             ; preds = %2294, %2194
  %2297 = phi i32 [ 1, %2194 ], [ %2295, %2294 ]
  br label %2298

2298:                                             ; preds = %2296, %2185
  %2299 = phi i32 [ 2, %2185 ], [ %2297, %2296 ]
  br label %2300

2300:                                             ; preds = %2298, %2176
  %2301 = phi i32 [ 2, %2176 ], [ %2299, %2298 ]
  br label %2302

2302:                                             ; preds = %2300, %2167
  %2303 = phi i32 [ 4, %2167 ], [ %2301, %2300 ]
  br label %2304

2304:                                             ; preds = %2302, %2158
  %2305 = phi i32 [ 8, %2158 ], [ %2303, %2302 ]
  %2306 = sext i32 %2305 to i64
  %2307 = sub nsw i64 %2150, %2306
  call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %2143, i32 noundef 4096, i32 noundef %2144, i32 noundef %2147, i32 noundef %2148, i64 noundef %2307)
  br label %2308

2308:                                             ; preds = %2304, %2139
  br label %2309

2309:                                             ; preds = %2308, %1976
  br label %2310

2310:                                             ; preds = %2309, %1975
  br label %2311

2311:                                             ; preds = %2310
  %2312 = load i32, ptr %25, align 4, !tbaa !9
  %2313 = add i32 %2312, 1
  store i32 %2313, ptr %25, align 4, !tbaa !9
  br label %585, !llvm.loop !33

2314:                                             ; preds = %585
  %2315 = load ptr, ptr %13, align 8, !tbaa !5
  %2316 = load i32, ptr %33, align 4, !tbaa !9
  %2317 = load ptr, ptr %14, align 8, !tbaa !5
  %2318 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %2317, i32 0, i32 15
  %2319 = load i32, ptr %2318, align 4, !tbaa !30
  %2320 = load i32, ptr %33, align 4, !tbaa !9
  %2321 = load i32, ptr %36, align 4, !tbaa !9
  %2322 = zext i32 %2321 to i64
  call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %2315, i32 noundef 4097, i32 noundef %2316, i32 noundef %2319, i32 noundef %2320, i64 noundef %2322)
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 8, 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
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 4, 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
  ret void
}

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

declare i32 @libxsmm_generator_aarch64_get_sve_type(i8 noundef zeroext) #1

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

declare void @libxsmm_generator_vcvt_bf16f32_aarch64(ptr noundef, i32 noundef, i32 noundef) #1

declare void @libxsmm_generator_bcastload_masked_vreg_aarch64_asimd(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #1

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

declare void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef zeroext, 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 48}
!12 = !{!"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, !13, i64 72, !14, i64 220}
!13 = !{!"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}
!14 = !{!"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}
!15 = !{!12, !10, i64 52}
!16 = !{!12, !10, i64 56}
!17 = !{!18, !6, i64 336}
!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 = !{!7, !7, i64 0}
!24 = !{!25, !10, i64 28}
!25 = !{!"libxsmm_generated_code", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28}
!26 = !{!18, !10, i64 184}
!27 = !{!18, !10, i64 76}
!28 = !{!18, !10, i64 80}
!29 = !{!18, !10, i64 92}
!30 = !{!12, !10, i64 60}
!31 = distinct !{!31, !32}
!32 = !{!"llvm.loop.mustprogress"}
!33 = distinct !{!33, !32}


; 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"

%struct.libxsmm_meqn_arg = type { i32, i32, i32, i32, i32, i32, i32, %struct.libxsmm_matrix_arg_attributes }
%struct.libxsmm_matrix_arg_attributes = type { 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
@__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64 = external hidden unnamed_addr constant [309 x i8], align 1
@switch.table.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64.9 = 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
@switch.table.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64.10 = private unnamed_addr constant [14 x i64] [i64 -8, i64 -4, i64 -2, i64 -2, i64 -1, i64 -1, i64 -8, i64 -8, i64 -4, i64 -4, i64 -2, i64 -2, i64 -1, i64 -1], align 8

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

declare void @libxsmm_aarch64_instruction_alu_move(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

declare void @libxsmm_generator_meqn_getaddr_stack_tmpaddr_i_aarch64(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

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

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64(ptr noundef %0, ptr nocapture noundef readonly %1, ptr noundef %2, ptr nocapture noundef readnone %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %9, i32 noundef %10, i32 noundef %11) local_unnamed_addr #2 {
  %13 = getelementptr inbounds i8, ptr %1, i64 48
  %14 = load i32, ptr %13, align 4, !tbaa !5
  %15 = getelementptr inbounds i8, ptr %1, i64 52
  %16 = load i32, ptr %15, align 4, !tbaa !12
  %17 = getelementptr inbounds i8, ptr %1, i64 56
  %18 = load i32, ptr %17, align 4, !tbaa !13
  %19 = getelementptr inbounds i8, ptr %2, i64 336
  %20 = load ptr, ptr %19, align 8, !tbaa !14
  %21 = tail call i32 @libxsmm_generator_matequation_regblocks_get_start_of_register_block(ptr noundef %2, i32 noundef %6) #3
  %22 = zext i32 %4 to i64
  %23 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %20, i64 %22
  %24 = getelementptr inbounds i8, ptr %23, i64 20
  %25 = load i32, ptr %24, align 4, !tbaa !21
  %26 = icmp ult i32 %25, 14
  br i1 %26, label %switch.lookup, label %27

27:                                               ; preds = %12
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 408, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #4
  unreachable

switch.lookup:                                    ; preds = %12
  %28 = getelementptr inbounds i8, ptr %23, i64 8
  %29 = load i32, ptr %28, align 4, !tbaa !21
  %30 = zext nneg i32 %25 to i64
  %switch.gep = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64.9, i64 0, i64 %30
  %switch.load = load i32, ptr %switch.gep, align 4
  %31 = mul nsw i32 %switch.load, %29
  %32 = icmp eq i32 %9, 0
  br i1 %32, label %switch.lookup704, label %switch.lookup707

switch.lookup704:                                 ; preds = %switch.lookup
  %33 = zext nneg i32 %25 to i64
  %switch.gep705 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64.9, i64 0, i64 %33
  %switch.load706 = load i32, ptr %switch.gep705, align 4
  %34 = mul i32 %7, %5
  %35 = mul i32 %34, %switch.load706
  br label %41

switch.lookup707:                                 ; preds = %switch.lookup
  %36 = zext nneg i32 %25 to i64
  %switch.gep708 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64.9, i64 0, i64 %36
  %switch.load709 = load i32, ptr %switch.gep708, align 4
  %37 = add i32 %7, -1
  %38 = mul i32 %37, %5
  %39 = add i32 %38, %9
  %40 = mul i32 %switch.load709, %39
  br label %41

41:                                               ; preds = %switch.lookup707, %switch.lookup704
  %42 = phi i32 [ %35, %switch.lookup704 ], [ %40, %switch.lookup707 ]
  %43 = getelementptr inbounds i8, ptr %0, i64 28
  %44 = load i32, ptr %43, align 4, !tbaa !22
  %45 = add i32 %44, -2201
  %spec.select = icmp ult i32 %45, 799
  %46 = zext i1 %spec.select to i8
  %47 = tail call i32 @libxsmm_generator_aarch64_get_sve_type(i8 noundef zeroext 4) #3
  %48 = getelementptr inbounds i8, ptr %2, i64 184
  %49 = load i32, ptr %48, align 8, !tbaa !24
  %50 = icmp ugt i32 %49, %4
  br i1 %50, label %51, label %55

51:                                               ; preds = %41
  %52 = getelementptr inbounds i8, ptr %2, i64 188
  %53 = getelementptr inbounds [32 x i32], ptr %52, i64 0, i64 %22
  %54 = load i32, ptr %53, align 4, !tbaa !25
  br label %57

55:                                               ; preds = %41
  %56 = shl i32 %4, 3
  tail call void @libxsmm_generator_meqn_getaddr_stack_tmpaddr_i_aarch64(ptr noundef nonnull %0, i32 noundef %56, i32 noundef %18, i32 noundef %16) #3
  tail call void @libxsmm_aarch64_instruction_alu_move(ptr noundef nonnull %0, i32 noundef -1186988026, i32 noundef %16, i32 noundef 127, i32 noundef 0, i32 noundef %14) #3
  br label %57

57:                                               ; preds = %55, %51
  %.0519 = phi i32 [ %54, %51 ], [ %14, %55 ]
  %.not695 = icmp eq i32 %8, 0
  br i1 %.not695, label %._crit_edge693, label %.preheader.lr.ph

.preheader.lr.ph:                                 ; preds = %57
  %.not696 = icmp eq i32 %7, 0
  %58 = add i32 %7, -1
  %59 = select i1 %32, i32 %5, i32 %9
  %60 = getelementptr inbounds i8, ptr %2, i64 92
  %61 = getelementptr inbounds i8, ptr %2, i64 80
  %62 = icmp ne i32 %9, 0
  %63 = getelementptr inbounds i8, ptr %2, i64 76
  %64 = getelementptr inbounds i8, ptr %23, i64 24
  %65 = mul i32 %58, %5
  %66 = add i32 %65, %9
  %67 = mul i32 %7, %5
  %68 = getelementptr inbounds i8, ptr %1, i64 60
  %69 = icmp eq i32 %11, 0
  %70 = mul i32 %31, %8
  %71 = icmp eq i32 %7, 1
  %72 = select i1 %71, i32 %9, i32 0
  %73 = zext i32 %31 to i64
  %.not545 = icmp eq i32 %31, %42
  %74 = zext i32 %42 to i64
  %75 = sub nsw i64 %73, %74
  br label %.preheader

.preheader:                                       ; preds = %.preheader.lr.ph, %174
  %.0692 = phi i32 [ 0, %.preheader.lr.ph ], [ %175, %174 ]
  %.0520691 = phi i32 [ 0, %.preheader.lr.ph ], [ %.1.lcssa, %174 ]
  br i1 %.not696, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader
  %76 = mul i32 %.0692, %7
  %77 = add i32 %76, %21
  %78 = icmp eq i32 %.0692, 0
  %79 = icmp ne i32 %.0692, 0
  br label %80

80:                                               ; preds = %.lr.ph, %160
  %.0518690 = phi i32 [ 0, %.lr.ph ], [ %161, %160 ]
  %.1689 = phi i32 [ %.0520691, %.lr.ph ], [ %.2, %160 ]
  %81 = load i32, ptr %24, align 4, !tbaa !21
  %switch669 = icmp ult i32 %81, 2
  %82 = icmp eq i32 %.0518690, %58
  br i1 %switch669, label %84, label %83

83:                                               ; preds = %80
  br i1 %82, label %88, label %93

84:                                               ; preds = %80
  %85 = select i1 %82, i32 %9, i32 0
  %or.cond5 = and i1 %62, %82
  br i1 %or.cond5, label %86, label %95

86:                                               ; preds = %84
  %87 = load i32, ptr %63, align 4, !tbaa !26
  br label %95

88:                                               ; preds = %83
  br i1 %32, label %91, label %89

89:                                               ; preds = %88
  %90 = load i32, ptr %61, align 8, !tbaa !27
  br label %95

91:                                               ; preds = %88
  %92 = load i32, ptr %60, align 4, !tbaa !28
  br label %95

93:                                               ; preds = %83
  %94 = load i32, ptr %60, align 4, !tbaa !28
  br label %95

95:                                               ; preds = %93, %91, %89, %86, %84
  %96 = phi i32 [ %85, %86 ], [ %85, %84 ], [ %5, %93 ], [ %59, %89 ], [ %59, %91 ]
  %97 = phi i32 [ %87, %86 ], [ 0, %84 ], [ %94, %93 ], [ %90, %89 ], [ %92, %91 ]
  %98 = add i32 %.0518690, %77
  %99 = load i32, ptr %64, align 4, !tbaa !21
  switch i32 %99, label %160 [
    i32 0, label %100
    i32 1, label %110
    i32 4, label %110
    i32 2, label %137
  ]

100:                                              ; preds = %95
  %101 = icmp ult i32 %81, 14
  br i1 %101, label %switch.lookup710, label %102

102:                                              ; preds = %100
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 435, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #4
  unreachable

switch.lookup710:                                 ; preds = %100
  %103 = load i32, ptr %68, align 4, !tbaa !29
  %104 = zext nneg i32 %81 to i64
  %switch.gep711 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64.9, i64 0, i64 %104
  %switch.load712 = load i32, ptr %switch.gep711, align 4
  %105 = trunc i32 %97 to i8
  tail call void @libxsmm_generator_vloadstore_masked_vreg_aarch64(ptr noundef %0, i32 noundef %.0519, i32 noundef %103, i32 noundef %98, i32 noundef %switch.load712, i32 noundef %96, i32 noundef 1, i32 noundef 0, i8 noundef zeroext %105, i8 noundef zeroext %46) #3
  br i1 %69, label %106, label %160

106:                                              ; preds = %switch.lookup710
  %107 = load i32, ptr %24, align 4, !tbaa !21
  %108 = icmp eq i32 %107, 2
  br i1 %108, label %109, label %160

109:                                              ; preds = %106
  tail call void @libxsmm_generator_vcvt_bf16f32_aarch64(ptr noundef %0, i32 noundef %98, i32 noundef 0) #3
  br label %160

110:                                              ; preds = %95, %95
  %111 = icmp eq i32 %99, 4
  br i1 %111, label %112, label %116

112:                                              ; preds = %110
  %113 = icmp ult i32 %81, 14
  br i1 %113, label %switch.lookup713, label %114

114:                                              ; preds = %112
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 442, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #4
  unreachable

switch.lookup713:                                 ; preds = %112
  %115 = zext nneg i32 %81 to i64
  %switch.gep714 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64.9, i64 0, i64 %115
  %switch.load715 = load i32, ptr %switch.gep714, align 4
  br label %116

116:                                              ; preds = %switch.lookup713, %110
  %117 = phi i32 [ %70, %110 ], [ %switch.load715, %switch.lookup713 ]
  %118 = icmp eq i32 %.0518690, 0
  br i1 %118, label %119, label %134

119:                                              ; preds = %116
  %120 = icmp eq i32 %99, 1
  %or.cond = and i1 %78, %111
  %or.cond674 = or i1 %120, %or.cond
  br i1 %or.cond674, label %121, label %130

121:                                              ; preds = %119
  %122 = icmp ult i32 %81, 14
  br i1 %122, label %switch.lookup716, label %123

123:                                              ; preds = %121
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 445, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #4
  unreachable

switch.lookup716:                                 ; preds = %121
  %124 = load i32, ptr %68, align 4, !tbaa !29
  %125 = zext nneg i32 %81 to i64
  %switch.gep717 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64.9, i64 0, i64 %125
  %switch.load718 = load i32, ptr %switch.gep717, align 4
  tail call void @libxsmm_generator_bcastload_masked_vreg_aarch64_asimd(ptr noundef %0, i32 noundef %.0519, i32 noundef %124, i32 noundef %98, i32 noundef %switch.load718, i32 noundef %72, i32 noundef 1) #3
  br i1 %69, label %126, label %160

126:                                              ; preds = %switch.lookup716
  %127 = load i32, ptr %24, align 4, !tbaa !21
  %128 = icmp eq i32 %127, 2
  br i1 %128, label %129, label %160

129:                                              ; preds = %126
  tail call void @libxsmm_generator_vcvt_bf16f32_aarch64(ptr noundef %0, i32 noundef %98, i32 noundef 0) #3
  br label %160

130:                                              ; preds = %119
  %or.cond3 = and i1 %79, %111
  br i1 %or.cond3, label %131, label %160

131:                                              ; preds = %130
  br i1 %spec.select, label %132, label %133

132:                                              ; preds = %131
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 73412611, i32 noundef %21, i32 noundef %21, i8 noundef zeroext 0, i32 noundef %98, i32 noundef 0, i32 noundef %47) #3
  br label %160

133:                                              ; preds = %131
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 245373971, i32 noundef %21, i32 noundef %21, i8 noundef zeroext 0, i32 noundef %98, i32 noundef 5) #3
  br label %160

134:                                              ; preds = %116
  br i1 %spec.select, label %135, label %136

135:                                              ; preds = %134
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 73412611, i32 noundef %77, i32 noundef %77, i8 noundef zeroext 0, i32 noundef %98, i32 noundef 0, i32 noundef %47) #3
  br label %160

136:                                              ; preds = %134
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 245373971, i32 noundef %77, i32 noundef %77, i8 noundef zeroext 0, i32 noundef %98, i32 noundef 5) #3
  br label %160

137:                                              ; preds = %95
  %138 = icmp ult i32 %81, 14
  br i1 %32, label %139, label %143

139:                                              ; preds = %137
  br i1 %138, label %switch.lookup719, label %140

140:                                              ; preds = %139
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 466, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #4
  unreachable

switch.lookup719:                                 ; preds = %139
  %141 = zext nneg i32 %81 to i64
  %switch.gep720 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64.9, i64 0, i64 %141
  %switch.load721 = load i32, ptr %switch.gep720, align 4
  %142 = mul i32 %67, %switch.load721
  br label %147

143:                                              ; preds = %137
  br i1 %138, label %switch.lookup722, label %144

144:                                              ; preds = %143
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 466, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #4
  unreachable

switch.lookup722:                                 ; preds = %143
  %145 = zext nneg i32 %81 to i64
  %switch.gep723 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64.9, i64 0, i64 %145
  %switch.load724 = load i32, ptr %switch.gep723, align 4
  %146 = mul i32 %switch.load724, %66
  br label %147

147:                                              ; preds = %switch.lookup722, %switch.lookup719
  %148 = phi i32 [ %142, %switch.lookup719 ], [ %146, %switch.lookup722 ]
  br i1 %78, label %switch.lookup725, label %156

switch.lookup725:                                 ; preds = %147
  %149 = load i32, ptr %68, align 4, !tbaa !29
  %150 = sext i32 %81 to i64
  %switch.gep726 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64.9, i64 0, i64 %150
  %switch.load727 = load i32, ptr %switch.gep726, align 4
  %151 = trunc i32 %97 to i8
  tail call void @libxsmm_generator_vloadstore_masked_vreg_aarch64(ptr noundef %0, i32 noundef %.0519, i32 noundef %149, i32 noundef %98, i32 noundef %switch.load727, i32 noundef %96, i32 noundef 1, i32 noundef 0, i8 noundef zeroext %151, i8 noundef zeroext %46) #3
  br i1 %69, label %152, label %160

152:                                              ; preds = %switch.lookup725
  %153 = load i32, ptr %24, align 4, !tbaa !21
  %154 = icmp eq i32 %153, 2
  br i1 %154, label %155, label %160

155:                                              ; preds = %152
  tail call void @libxsmm_generator_vcvt_bf16f32_aarch64(ptr noundef %0, i32 noundef %98, i32 noundef 0) #3
  br label %160

156:                                              ; preds = %147
  %157 = add i32 %.0518690, %21
  br i1 %spec.select, label %158, label %159

158:                                              ; preds = %156
  tail call void @libxsmm_aarch64_instruction_sve_compute(ptr noundef %0, i32 noundef 73412611, i32 noundef %157, i32 noundef %157, i8 noundef zeroext 0, i32 noundef %98, i32 noundef 0, i32 noundef %47) #3
  br label %160

159:                                              ; preds = %156
  tail call void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef %0, i32 noundef 245373971, i32 noundef %157, i32 noundef %157, i8 noundef zeroext 0, i32 noundef %98, i32 noundef 5) #3
  br label %160

160:                                              ; preds = %95, %135, %136, %126, %129, %switch.lookup716, %132, %133, %130, %152, %155, %switch.lookup725, %159, %158, %switch.lookup710, %109, %106
  %.2 = phi i32 [ %70, %109 ], [ %70, %106 ], [ %70, %switch.lookup710 ], [ %117, %129 ], [ %117, %126 ], [ %117, %switch.lookup716 ], [ %117, %132 ], [ %117, %133 ], [ %117, %130 ], [ %117, %135 ], [ %117, %136 ], [ %148, %155 ], [ %148, %152 ], [ %148, %switch.lookup725 ], [ %148, %158 ], [ %148, %159 ], [ %.1689, %95 ]
  %161 = add nuw i32 %.0518690, 1
  %exitcond.not = icmp eq i32 %161, %7
  br i1 %exitcond.not, label %._crit_edge, label %80, !llvm.loop !30

._crit_edge:                                      ; preds = %160, %.preheader
  %.1.lcssa = phi i32 [ %.0520691, %.preheader ], [ %.2, %160 ]
  %162 = load i32, ptr %64, align 4, !tbaa !21
  switch i32 %162, label %174 [
    i32 0, label %163
    i32 1, label %166
  ]

163:                                              ; preds = %._crit_edge
  br i1 %.not545, label %174, label %164

164:                                              ; preds = %163
  %165 = load i32, ptr %68, align 4, !tbaa !29
  tail call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %0, i32 noundef 4096, i32 noundef %.0519, i32 noundef %165, i32 noundef %.0519, i64 noundef %75) #3
  br label %174

166:                                              ; preds = %._crit_edge
  %167 = load i32, ptr %24, align 4, !tbaa !21
  %168 = icmp ult i32 %167, 14
  br i1 %168, label %switch.lookup728, label %169

169:                                              ; preds = %166
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 492, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64) #4
  unreachable

switch.lookup728:                                 ; preds = %166
  %170 = zext nneg i32 %167 to i64
  %switch.gep729 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64.9, i64 0, i64 %170
  %switch.load730 = load i32, ptr %switch.gep729, align 4
  %.not = icmp eq i32 %31, %switch.load730
  br i1 %.not, label %174, label %switch.lookup731

switch.lookup731:                                 ; preds = %switch.lookup728
  %171 = load i32, ptr %68, align 4, !tbaa !29
  %172 = zext nneg i32 %167 to i64
  %switch.gep732 = getelementptr inbounds [14 x i64], ptr @switch.table.libxsmm_generator_mateqn_load_arg_to_2d_reg_block_aarch64.10, i64 0, i64 %172
  %switch.load733 = load i64, ptr %switch.gep732, align 8
  %173 = add nsw i64 %switch.load733, %73
  tail call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %0, i32 noundef 4096, i32 noundef %.0519, i32 noundef %171, i32 noundef %.0519, i64 noundef %173) #3
  br label %174

174:                                              ; preds = %._crit_edge, %164, %163, %switch.lookup728, %switch.lookup731
  %175 = add nuw i32 %.0692, 1
  %exitcond699.not = icmp eq i32 %175, %8
  br i1 %exitcond699.not, label %._crit_edge693.loopexit, label %.preheader, !llvm.loop !32

._crit_edge693.loopexit:                          ; preds = %174
  %176 = zext i32 %.1.lcssa to i64
  br label %._crit_edge693

._crit_edge693:                                   ; preds = %._crit_edge693.loopexit, %57
  %.0520.lcssa = phi i64 [ 0, %57 ], [ %176, %._crit_edge693.loopexit ]
  %177 = getelementptr inbounds i8, ptr %1, i64 60
  %178 = load i32, ptr %177, align 4, !tbaa !29
  tail call void @libxsmm_aarch64_instruction_alu_compute_imm64(ptr noundef %0, i32 noundef 4097, i32 noundef %.0519, i32 noundef %178, i32 noundef %.0519, i64 noundef %.0520.lcssa) #3
  ret void
}

declare i32 @libxsmm_generator_matequation_regblocks_get_start_of_register_block(ptr noundef, i32 noundef) local_unnamed_addr #0

declare i32 @libxsmm_generator_aarch64_get_sve_type(i8 noundef zeroext) local_unnamed_addr #0

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

declare void @libxsmm_generator_vcvt_bf16f32_aarch64(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

declare void @libxsmm_generator_bcastload_masked_vreg_aarch64_asimd(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

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

declare void @libxsmm_aarch64_instruction_asimd_compute(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef zeroext, 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 48}
!6 = !{!"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, !10, i64 72, !11, i64 220}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"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}
!11 = !{!"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}
!12 = !{!6, !7, i64 52}
!13 = !{!6, !7, i64 56}
!14 = !{!15, !16, i64 336}
!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, !16, i64 336, !16, i64 344, !7, i64 352, !7, i64 356, !7, i64 360, !8, i64 364, !8, i64 620, !17, i64 876, !18, i64 1392}
!16 = !{!"any pointer", !8, i64 0}
!17 = !{!"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}
!18 = !{!"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, !19, 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, !16, i64 592, !7, i64 600, !7, i64 604, !7, i64 608, !7, i64 612, !16, 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}
!19 = !{!"libxsmm_tile_config", !8, i64 0, !20, i64 2, !8, i64 4, !20, i64 6, !8, i64 8, !20, i64 10, !8, i64 12, !20, i64 14, !8, i64 16, !20, i64 18, !8, i64 20, !20, i64 22, !8, i64 24, !20, i64 26, !8, i64 28, !20, i64 30, !8, i64 32}
!20 = !{!"short", !8, i64 0}
!21 = !{!8, !8, i64 0}
!22 = !{!23, !7, i64 28}
!23 = !{!"libxsmm_generated_code", !16, i64 0, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28}
!24 = !{!15, !7, i64 184}
!25 = !{!7, !7, i64 0}
!26 = !{!15, !7, i64 76}
!27 = !{!15, !7, i64 80}
!28 = !{!15, !7, i64 92}
!29 = !{!6, !7, i64 60}
!30 = distinct !{!30, !31}
!31 = !{!"llvm.loop.mustprogress"}
!32 = distinct !{!32, !31}


; Effective O3 passes: ADCEPass,ConstantMergePass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass