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

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.libxsmm_matequation_kernel_config_struct = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [32 x i32], i32, i32, i32, i32, ptr, ptr, i32, i32, i32, [64 x i32], [64 x i32], %struct.libxsmm_mateltwise_kernel_config_struct, %struct.libxsmm_micro_kernel_config }
%struct.libxsmm_mateltwise_kernel_config_struct = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8 }
%struct.libxsmm_micro_kernel_config = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [4 x i32], [4 x i32], [4 x i32], [4 x i32], [4 x i32], [4 x i32], i32, [2 x %struct.libxsmm_blocking_info_t], %struct.libxsmm_tile_config, i32, i32, i32, i32, i32, i32, i32, i32, ptr, i32, i32, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.libxsmm_blocking_info_t = type { i32, [4 x i32], i32, i32 }
%struct.libxsmm_tile_config = type { i8, i16, i8, i16, i8, i16, i8, i16, i8, i16, i8, i16, i8, i16, i8, i16, i8 }
%struct.libxsmm_meqn_descriptor = type <{ i32, i32, i32, i8, i32 }>
%struct.libxsmm_matequation_gp_reg_mapping_struct = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.libxsmm_mateltwise_gp_reg_mapping_struct, %struct.libxsmm_gp_reg_mapping_struct }
%struct.libxsmm_mateltwise_gp_reg_mapping_struct = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.libxsmm_gp_reg_mapping_struct = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%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 [98 x i8], align 1
@__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr = external hidden unnamed_addr constant [243 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

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

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_mateqn_adjust_args_addr(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, ptr noundef %7) #3 {
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %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
  store ptr %0, ptr %9, align 8, !tbaa !5
  store ptr %1, ptr %10, align 8, !tbaa !5
  store ptr %2, ptr %11, align 8, !tbaa !5
  store ptr %3, ptr %12, align 8, !tbaa !5
  store i32 %4, ptr %13, align 4, !tbaa !9
  store i32 %5, ptr %14, align 4, !tbaa !9
  store i32 %6, ptr %15, align 4, !tbaa !9
  store ptr %7, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  %24 = load ptr, ptr %12, align 8, !tbaa !5
  %25 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %24, i32 0, i32 13
  %26 = load i32, ptr %25, align 4, !tbaa !11
  store i32 %26, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #4
  store i32 0, ptr %19, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #4
  %27 = load ptr, ptr %10, align 8, !tbaa !5
  %28 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %27, i32 0, i32 3
  %29 = load i8, ptr %28, align 1, !tbaa !17
  %30 = zext i8 %29 to i32
  %31 = ashr i32 %30, 4
  %32 = icmp eq i32 0, %31
  br i1 %32, label %33, label %195

33:                                               ; preds = %8
  %34 = load ptr, ptr %10, align 8, !tbaa !5
  %35 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %34, i32 0, i32 3
  %36 = load i8, ptr %35, align 1, !tbaa !17
  %37 = zext i8 %36 to i32
  %38 = and i32 %37, 15
  %39 = icmp eq i32 0, %38
  br i1 %39, label %40, label %41

40:                                               ; preds = %33
  br label %193

41:                                               ; preds = %33
  %42 = load ptr, ptr %10, align 8, !tbaa !5
  %43 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %42, i32 0, i32 3
  %44 = load i8, ptr %43, align 1, !tbaa !17
  %45 = zext i8 %44 to i32
  %46 = and i32 %45, 15
  %47 = icmp eq i32 1, %46
  br i1 %47, label %48, label %49

48:                                               ; preds = %41
  br label %191

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

56:                                               ; preds = %49
  br label %189

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

64:                                               ; preds = %57
  br label %187

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

72:                                               ; preds = %65
  br label %185

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

80:                                               ; preds = %73
  br label %183

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

88:                                               ; preds = %81
  br label %181

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

96:                                               ; preds = %89
  br label %179

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

104:                                              ; preds = %97
  br label %177

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

112:                                              ; preds = %105
  br label %175

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

120:                                              ; preds = %113
  br label %173

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

128:                                              ; preds = %121
  br label %171

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

136:                                              ; preds = %129
  br label %169

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

144:                                              ; preds = %137
  br label %167

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

152:                                              ; preds = %145
  br label %165

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

160:                                              ; preds = %153
  br label %163

161:                                              ; preds = %153
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 257, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #5
  unreachable

162:                                              ; No predecessors!
  br label %163

163:                                              ; preds = %162, %160
  %164 = phi i32 [ 15, %160 ], [ 0, %162 ]
  br label %165

165:                                              ; preds = %163, %152
  %166 = phi i32 [ 14, %152 ], [ %164, %163 ]
  br label %167

167:                                              ; preds = %165, %144
  %168 = phi i32 [ 12, %144 ], [ %166, %165 ]
  br label %169

169:                                              ; preds = %167, %136
  %170 = phi i32 [ 12, %136 ], [ %168, %167 ]
  br label %171

171:                                              ; preds = %169, %128
  %172 = phi i32 [ 10, %128 ], [ %170, %169 ]
  br label %173

173:                                              ; preds = %171, %120
  %174 = phi i32 [ 10, %120 ], [ %172, %171 ]
  br label %175

175:                                              ; preds = %173, %112
  %176 = phi i32 [ 8, %112 ], [ %174, %173 ]
  br label %177

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

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

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

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

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

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

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

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

193:                                              ; preds = %191, %40
  %194 = phi i32 [ 0, %40 ], [ %192, %191 ]
  br label %201

195:                                              ; preds = %8
  %196 = load ptr, ptr %10, align 8, !tbaa !5
  %197 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %196, i32 0, i32 3
  %198 = load i8, ptr %197, align 1, !tbaa !17
  %199 = zext i8 %198 to i32
  %200 = ashr i32 %199, 4
  br label %201

201:                                              ; preds = %195, %193
  %202 = phi i32 [ %194, %193 ], [ %200, %195 ]
  %203 = icmp eq i32 0, %202
  br i1 %203, label %204, label %205

204:                                              ; preds = %201
  br label %2560

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

212:                                              ; preds = %205
  %213 = load ptr, ptr %10, align 8, !tbaa !5
  %214 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %213, i32 0, i32 3
  %215 = load i8, ptr %214, align 1, !tbaa !17
  %216 = zext i8 %215 to i32
  %217 = and i32 %216, 15
  %218 = icmp eq i32 0, %217
  br i1 %218, label %219, label %220

219:                                              ; preds = %212
  br label %372

220:                                              ; preds = %212
  %221 = load ptr, ptr %10, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %221, i32 0, i32 3
  %223 = load i8, ptr %222, align 1, !tbaa !17
  %224 = zext i8 %223 to i32
  %225 = and i32 %224, 15
  %226 = icmp eq i32 1, %225
  br i1 %226, label %227, label %228

227:                                              ; preds = %220
  br label %370

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

235:                                              ; preds = %228
  br label %368

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

243:                                              ; preds = %236
  br label %366

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

251:                                              ; preds = %244
  br label %364

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

259:                                              ; preds = %252
  br label %362

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

267:                                              ; preds = %260
  br label %360

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

275:                                              ; preds = %268
  br label %358

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

283:                                              ; preds = %276
  br label %356

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

291:                                              ; preds = %284
  br label %354

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

299:                                              ; preds = %292
  br label %352

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

307:                                              ; preds = %300
  br label %350

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

315:                                              ; preds = %308
  br label %348

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

323:                                              ; preds = %316
  br label %346

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

331:                                              ; preds = %324
  br label %344

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

339:                                              ; preds = %332
  br label %342

340:                                              ; preds = %332
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 257, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #5
  unreachable

341:                                              ; No predecessors!
  br label %342

342:                                              ; preds = %341, %339
  %343 = phi i32 [ 15, %339 ], [ 0, %341 ]
  br label %344

344:                                              ; preds = %342, %331
  %345 = phi i32 [ 14, %331 ], [ %343, %342 ]
  br label %346

346:                                              ; preds = %344, %323
  %347 = phi i32 [ 12, %323 ], [ %345, %344 ]
  br label %348

348:                                              ; preds = %346, %315
  %349 = phi i32 [ 12, %315 ], [ %347, %346 ]
  br label %350

350:                                              ; preds = %348, %307
  %351 = phi i32 [ 10, %307 ], [ %349, %348 ]
  br label %352

352:                                              ; preds = %350, %299
  %353 = phi i32 [ 10, %299 ], [ %351, %350 ]
  br label %354

354:                                              ; preds = %352, %291
  %355 = phi i32 [ 8, %291 ], [ %353, %352 ]
  br label %356

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

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

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

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

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

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

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

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

372:                                              ; preds = %370, %219
  %373 = phi i32 [ 0, %219 ], [ %371, %370 ]
  br label %380

374:                                              ; preds = %205
  %375 = load ptr, ptr %10, align 8, !tbaa !5
  %376 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %375, i32 0, i32 3
  %377 = load i8, ptr %376, align 1, !tbaa !17
  %378 = zext i8 %377 to i32
  %379 = ashr i32 %378, 4
  br label %380

380:                                              ; preds = %374, %372
  %381 = phi i32 [ %373, %372 ], [ %379, %374 ]
  %382 = icmp eq i32 1, %381
  br i1 %382, label %383, label %384

383:                                              ; preds = %380
  br label %2558

384:                                              ; preds = %380
  %385 = load ptr, ptr %10, align 8, !tbaa !5
  %386 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %385, i32 0, i32 3
  %387 = load i8, ptr %386, align 1, !tbaa !17
  %388 = zext i8 %387 to i32
  %389 = ashr i32 %388, 4
  %390 = icmp eq i32 0, %389
  br i1 %390, label %391, label %553

391:                                              ; preds = %384
  %392 = load ptr, ptr %10, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %392, i32 0, i32 3
  %394 = load i8, ptr %393, align 1, !tbaa !17
  %395 = zext i8 %394 to i32
  %396 = and i32 %395, 15
  %397 = icmp eq i32 0, %396
  br i1 %397, label %398, label %399

398:                                              ; preds = %391
  br label %551

399:                                              ; preds = %391
  %400 = load ptr, ptr %10, align 8, !tbaa !5
  %401 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %400, i32 0, i32 3
  %402 = load i8, ptr %401, align 1, !tbaa !17
  %403 = zext i8 %402 to i32
  %404 = and i32 %403, 15
  %405 = icmp eq i32 1, %404
  br i1 %405, label %406, label %407

406:                                              ; preds = %399
  br label %549

407:                                              ; preds = %399
  %408 = load ptr, ptr %10, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %408, i32 0, i32 3
  %410 = load i8, ptr %409, align 1, !tbaa !17
  %411 = zext i8 %410 to i32
  %412 = and i32 %411, 15
  %413 = icmp eq i32 2, %412
  br i1 %413, label %414, label %415

414:                                              ; preds = %407
  br label %547

415:                                              ; preds = %407
  %416 = load ptr, ptr %10, align 8, !tbaa !5
  %417 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %416, i32 0, i32 3
  %418 = load i8, ptr %417, align 1, !tbaa !17
  %419 = zext i8 %418 to i32
  %420 = and i32 %419, 15
  %421 = icmp eq i32 3, %420
  br i1 %421, label %422, label %423

422:                                              ; preds = %415
  br label %545

423:                                              ; preds = %415
  %424 = load ptr, ptr %10, align 8, !tbaa !5
  %425 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %424, i32 0, i32 3
  %426 = load i8, ptr %425, align 1, !tbaa !17
  %427 = zext i8 %426 to i32
  %428 = and i32 %427, 15
  %429 = icmp eq i32 4, %428
  br i1 %429, label %430, label %431

430:                                              ; preds = %423
  br label %543

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

438:                                              ; preds = %431
  br label %541

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

446:                                              ; preds = %439
  br label %539

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

454:                                              ; preds = %447
  br label %537

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

462:                                              ; preds = %455
  br label %535

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

470:                                              ; preds = %463
  br label %533

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

478:                                              ; preds = %471
  br label %531

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

486:                                              ; preds = %479
  br label %529

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

494:                                              ; preds = %487
  br label %527

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

502:                                              ; preds = %495
  br label %525

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

510:                                              ; preds = %503
  br label %523

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

518:                                              ; preds = %511
  br label %521

519:                                              ; preds = %511
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 257, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #5
  unreachable

520:                                              ; No predecessors!
  br label %521

521:                                              ; preds = %520, %518
  %522 = phi i32 [ 15, %518 ], [ 0, %520 ]
  br label %523

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

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

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

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

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

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

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

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

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

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

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

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

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

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

551:                                              ; preds = %549, %398
  %552 = phi i32 [ 0, %398 ], [ %550, %549 ]
  br label %559

553:                                              ; preds = %384
  %554 = load ptr, ptr %10, align 8, !tbaa !5
  %555 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %554, i32 0, i32 3
  %556 = load i8, ptr %555, align 1, !tbaa !17
  %557 = zext i8 %556 to i32
  %558 = ashr i32 %557, 4
  br label %559

559:                                              ; preds = %553, %551
  %560 = phi i32 [ %552, %551 ], [ %558, %553 ]
  %561 = icmp eq i32 2, %560
  br i1 %561, label %562, label %563

562:                                              ; preds = %559
  br label %2556

563:                                              ; preds = %559
  %564 = load ptr, ptr %10, align 8, !tbaa !5
  %565 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %564, i32 0, i32 3
  %566 = load i8, ptr %565, align 1, !tbaa !17
  %567 = zext i8 %566 to i32
  %568 = ashr i32 %567, 4
  %569 = icmp eq i32 0, %568
  br i1 %569, label %570, label %732

570:                                              ; preds = %563
  %571 = load ptr, ptr %10, align 8, !tbaa !5
  %572 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %571, i32 0, i32 3
  %573 = load i8, ptr %572, align 1, !tbaa !17
  %574 = zext i8 %573 to i32
  %575 = and i32 %574, 15
  %576 = icmp eq i32 0, %575
  br i1 %576, label %577, label %578

577:                                              ; preds = %570
  br label %730

578:                                              ; preds = %570
  %579 = load ptr, ptr %10, align 8, !tbaa !5
  %580 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %579, i32 0, i32 3
  %581 = load i8, ptr %580, align 1, !tbaa !17
  %582 = zext i8 %581 to i32
  %583 = and i32 %582, 15
  %584 = icmp eq i32 1, %583
  br i1 %584, label %585, label %586

585:                                              ; preds = %578
  br label %728

586:                                              ; preds = %578
  %587 = load ptr, ptr %10, align 8, !tbaa !5
  %588 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %587, i32 0, i32 3
  %589 = load i8, ptr %588, align 1, !tbaa !17
  %590 = zext i8 %589 to i32
  %591 = and i32 %590, 15
  %592 = icmp eq i32 2, %591
  br i1 %592, label %593, label %594

593:                                              ; preds = %586
  br label %726

594:                                              ; preds = %586
  %595 = load ptr, ptr %10, align 8, !tbaa !5
  %596 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %595, i32 0, i32 3
  %597 = load i8, ptr %596, align 1, !tbaa !17
  %598 = zext i8 %597 to i32
  %599 = and i32 %598, 15
  %600 = icmp eq i32 3, %599
  br i1 %600, label %601, label %602

601:                                              ; preds = %594
  br label %724

602:                                              ; preds = %594
  %603 = load ptr, ptr %10, align 8, !tbaa !5
  %604 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %603, i32 0, i32 3
  %605 = load i8, ptr %604, align 1, !tbaa !17
  %606 = zext i8 %605 to i32
  %607 = and i32 %606, 15
  %608 = icmp eq i32 4, %607
  br i1 %608, label %609, label %610

609:                                              ; preds = %602
  br label %722

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

617:                                              ; preds = %610
  br label %720

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

625:                                              ; preds = %618
  br label %718

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

633:                                              ; preds = %626
  br label %716

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

641:                                              ; preds = %634
  br label %714

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

649:                                              ; preds = %642
  br label %712

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

657:                                              ; preds = %650
  br label %710

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

665:                                              ; preds = %658
  br label %708

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

673:                                              ; preds = %666
  br label %706

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

681:                                              ; preds = %674
  br label %704

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

689:                                              ; preds = %682
  br label %702

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

697:                                              ; preds = %690
  br label %700

698:                                              ; preds = %690
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 257, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #5
  unreachable

699:                                              ; No predecessors!
  br label %700

700:                                              ; preds = %699, %697
  %701 = phi i32 [ 15, %697 ], [ 0, %699 ]
  br label %702

702:                                              ; preds = %700, %689
  %703 = phi i32 [ 14, %689 ], [ %701, %700 ]
  br label %704

704:                                              ; preds = %702, %681
  %705 = phi i32 [ 12, %681 ], [ %703, %702 ]
  br label %706

706:                                              ; preds = %704, %673
  %707 = phi i32 [ 12, %673 ], [ %705, %704 ]
  br label %708

708:                                              ; preds = %706, %665
  %709 = phi i32 [ 10, %665 ], [ %707, %706 ]
  br label %710

710:                                              ; preds = %708, %657
  %711 = phi i32 [ 10, %657 ], [ %709, %708 ]
  br label %712

712:                                              ; preds = %710, %649
  %713 = phi i32 [ 8, %649 ], [ %711, %710 ]
  br label %714

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

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

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

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

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

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

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

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

730:                                              ; preds = %728, %577
  %731 = phi i32 [ 0, %577 ], [ %729, %728 ]
  br label %738

732:                                              ; preds = %563
  %733 = load ptr, ptr %10, align 8, !tbaa !5
  %734 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %733, i32 0, i32 3
  %735 = load i8, ptr %734, align 1, !tbaa !17
  %736 = zext i8 %735 to i32
  %737 = ashr i32 %736, 4
  br label %738

738:                                              ; preds = %732, %730
  %739 = phi i32 [ %731, %730 ], [ %737, %732 ]
  %740 = icmp eq i32 3, %739
  br i1 %740, label %741, label %742

741:                                              ; preds = %738
  br label %2554

742:                                              ; preds = %738
  %743 = load ptr, ptr %10, align 8, !tbaa !5
  %744 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %743, i32 0, i32 3
  %745 = load i8, ptr %744, align 1, !tbaa !17
  %746 = zext i8 %745 to i32
  %747 = ashr i32 %746, 4
  %748 = icmp eq i32 0, %747
  br i1 %748, label %749, label %911

749:                                              ; preds = %742
  %750 = load ptr, ptr %10, align 8, !tbaa !5
  %751 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %750, i32 0, i32 3
  %752 = load i8, ptr %751, align 1, !tbaa !17
  %753 = zext i8 %752 to i32
  %754 = and i32 %753, 15
  %755 = icmp eq i32 0, %754
  br i1 %755, label %756, label %757

756:                                              ; preds = %749
  br label %909

757:                                              ; preds = %749
  %758 = load ptr, ptr %10, align 8, !tbaa !5
  %759 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %758, i32 0, i32 3
  %760 = load i8, ptr %759, align 1, !tbaa !17
  %761 = zext i8 %760 to i32
  %762 = and i32 %761, 15
  %763 = icmp eq i32 1, %762
  br i1 %763, label %764, label %765

764:                                              ; preds = %757
  br label %907

765:                                              ; preds = %757
  %766 = load ptr, ptr %10, align 8, !tbaa !5
  %767 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %766, i32 0, i32 3
  %768 = load i8, ptr %767, align 1, !tbaa !17
  %769 = zext i8 %768 to i32
  %770 = and i32 %769, 15
  %771 = icmp eq i32 2, %770
  br i1 %771, label %772, label %773

772:                                              ; preds = %765
  br label %905

773:                                              ; preds = %765
  %774 = load ptr, ptr %10, align 8, !tbaa !5
  %775 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %774, i32 0, i32 3
  %776 = load i8, ptr %775, align 1, !tbaa !17
  %777 = zext i8 %776 to i32
  %778 = and i32 %777, 15
  %779 = icmp eq i32 3, %778
  br i1 %779, label %780, label %781

780:                                              ; preds = %773
  br label %903

781:                                              ; preds = %773
  %782 = load ptr, ptr %10, align 8, !tbaa !5
  %783 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %782, i32 0, i32 3
  %784 = load i8, ptr %783, align 1, !tbaa !17
  %785 = zext i8 %784 to i32
  %786 = and i32 %785, 15
  %787 = icmp eq i32 4, %786
  br i1 %787, label %788, label %789

788:                                              ; preds = %781
  br label %901

789:                                              ; preds = %781
  %790 = load ptr, ptr %10, align 8, !tbaa !5
  %791 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %790, i32 0, i32 3
  %792 = load i8, ptr %791, align 1, !tbaa !17
  %793 = zext i8 %792 to i32
  %794 = and i32 %793, 15
  %795 = icmp eq i32 5, %794
  br i1 %795, label %796, label %797

796:                                              ; preds = %789
  br label %899

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

804:                                              ; preds = %797
  br label %897

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

812:                                              ; preds = %805
  br label %895

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

820:                                              ; preds = %813
  br label %893

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

828:                                              ; preds = %821
  br label %891

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

836:                                              ; preds = %829
  br label %889

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

844:                                              ; preds = %837
  br label %887

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

852:                                              ; preds = %845
  br label %885

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

860:                                              ; preds = %853
  br label %883

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

868:                                              ; preds = %861
  br label %881

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

876:                                              ; preds = %869
  br label %879

877:                                              ; preds = %869
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 257, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #5
  unreachable

878:                                              ; No predecessors!
  br label %879

879:                                              ; preds = %878, %876
  %880 = phi i32 [ 15, %876 ], [ 0, %878 ]
  br label %881

881:                                              ; preds = %879, %868
  %882 = phi i32 [ 14, %868 ], [ %880, %879 ]
  br label %883

883:                                              ; preds = %881, %860
  %884 = phi i32 [ 12, %860 ], [ %882, %881 ]
  br label %885

885:                                              ; preds = %883, %852
  %886 = phi i32 [ 12, %852 ], [ %884, %883 ]
  br label %887

887:                                              ; preds = %885, %844
  %888 = phi i32 [ 10, %844 ], [ %886, %885 ]
  br label %889

889:                                              ; preds = %887, %836
  %890 = phi i32 [ 10, %836 ], [ %888, %887 ]
  br label %891

891:                                              ; preds = %889, %828
  %892 = phi i32 [ 8, %828 ], [ %890, %889 ]
  br label %893

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

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

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

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

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

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

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

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

909:                                              ; preds = %907, %756
  %910 = phi i32 [ 0, %756 ], [ %908, %907 ]
  br label %917

911:                                              ; preds = %742
  %912 = load ptr, ptr %10, align 8, !tbaa !5
  %913 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %912, i32 0, i32 3
  %914 = load i8, ptr %913, align 1, !tbaa !17
  %915 = zext i8 %914 to i32
  %916 = ashr i32 %915, 4
  br label %917

917:                                              ; preds = %911, %909
  %918 = phi i32 [ %910, %909 ], [ %916, %911 ]
  %919 = icmp eq i32 4, %918
  br i1 %919, label %920, label %921

920:                                              ; preds = %917
  br label %2552

921:                                              ; preds = %917
  %922 = load ptr, ptr %10, align 8, !tbaa !5
  %923 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %922, i32 0, i32 3
  %924 = load i8, ptr %923, align 1, !tbaa !17
  %925 = zext i8 %924 to i32
  %926 = ashr i32 %925, 4
  %927 = icmp eq i32 0, %926
  br i1 %927, label %928, label %1090

928:                                              ; preds = %921
  %929 = load ptr, ptr %10, align 8, !tbaa !5
  %930 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %929, i32 0, i32 3
  %931 = load i8, ptr %930, align 1, !tbaa !17
  %932 = zext i8 %931 to i32
  %933 = and i32 %932, 15
  %934 = icmp eq i32 0, %933
  br i1 %934, label %935, label %936

935:                                              ; preds = %928
  br label %1088

936:                                              ; preds = %928
  %937 = load ptr, ptr %10, align 8, !tbaa !5
  %938 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %937, i32 0, i32 3
  %939 = load i8, ptr %938, align 1, !tbaa !17
  %940 = zext i8 %939 to i32
  %941 = and i32 %940, 15
  %942 = icmp eq i32 1, %941
  br i1 %942, label %943, label %944

943:                                              ; preds = %936
  br label %1086

944:                                              ; preds = %936
  %945 = load ptr, ptr %10, align 8, !tbaa !5
  %946 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %945, i32 0, i32 3
  %947 = load i8, ptr %946, align 1, !tbaa !17
  %948 = zext i8 %947 to i32
  %949 = and i32 %948, 15
  %950 = icmp eq i32 2, %949
  br i1 %950, label %951, label %952

951:                                              ; preds = %944
  br label %1084

952:                                              ; preds = %944
  %953 = load ptr, ptr %10, align 8, !tbaa !5
  %954 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %953, i32 0, i32 3
  %955 = load i8, ptr %954, align 1, !tbaa !17
  %956 = zext i8 %955 to i32
  %957 = and i32 %956, 15
  %958 = icmp eq i32 3, %957
  br i1 %958, label %959, label %960

959:                                              ; preds = %952
  br label %1082

960:                                              ; preds = %952
  %961 = load ptr, ptr %10, align 8, !tbaa !5
  %962 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %961, i32 0, i32 3
  %963 = load i8, ptr %962, align 1, !tbaa !17
  %964 = zext i8 %963 to i32
  %965 = and i32 %964, 15
  %966 = icmp eq i32 4, %965
  br i1 %966, label %967, label %968

967:                                              ; preds = %960
  br label %1080

968:                                              ; preds = %960
  %969 = load ptr, ptr %10, align 8, !tbaa !5
  %970 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %969, i32 0, i32 3
  %971 = load i8, ptr %970, align 1, !tbaa !17
  %972 = zext i8 %971 to i32
  %973 = and i32 %972, 15
  %974 = icmp eq i32 5, %973
  br i1 %974, label %975, label %976

975:                                              ; preds = %968
  br label %1078

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

983:                                              ; preds = %976
  br label %1076

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

991:                                              ; preds = %984
  br label %1074

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

999:                                              ; preds = %992
  br label %1072

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

1007:                                             ; preds = %1000
  br label %1070

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

1015:                                             ; preds = %1008
  br label %1068

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

1023:                                             ; preds = %1016
  br label %1066

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

1031:                                             ; preds = %1024
  br label %1064

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

1039:                                             ; preds = %1032
  br label %1062

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

1047:                                             ; preds = %1040
  br label %1060

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

1055:                                             ; preds = %1048
  br label %1058

1056:                                             ; preds = %1048
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 257, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #5
  unreachable

1057:                                             ; No predecessors!
  br label %1058

1058:                                             ; preds = %1057, %1055
  %1059 = phi i32 [ 15, %1055 ], [ 0, %1057 ]
  br label %1060

1060:                                             ; preds = %1058, %1047
  %1061 = phi i32 [ 14, %1047 ], [ %1059, %1058 ]
  br label %1062

1062:                                             ; preds = %1060, %1039
  %1063 = phi i32 [ 12, %1039 ], [ %1061, %1060 ]
  br label %1064

1064:                                             ; preds = %1062, %1031
  %1065 = phi i32 [ 12, %1031 ], [ %1063, %1062 ]
  br label %1066

1066:                                             ; preds = %1064, %1023
  %1067 = phi i32 [ 10, %1023 ], [ %1065, %1064 ]
  br label %1068

1068:                                             ; preds = %1066, %1015
  %1069 = phi i32 [ 10, %1015 ], [ %1067, %1066 ]
  br label %1070

1070:                                             ; preds = %1068, %1007
  %1071 = phi i32 [ 8, %1007 ], [ %1069, %1068 ]
  br label %1072

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

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

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

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

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

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

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

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

1088:                                             ; preds = %1086, %935
  %1089 = phi i32 [ 0, %935 ], [ %1087, %1086 ]
  br label %1096

1090:                                             ; preds = %921
  %1091 = load ptr, ptr %10, align 8, !tbaa !5
  %1092 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1091, i32 0, i32 3
  %1093 = load i8, ptr %1092, align 1, !tbaa !17
  %1094 = zext i8 %1093 to i32
  %1095 = ashr i32 %1094, 4
  br label %1096

1096:                                             ; preds = %1090, %1088
  %1097 = phi i32 [ %1089, %1088 ], [ %1095, %1090 ]
  %1098 = icmp eq i32 5, %1097
  br i1 %1098, label %1099, label %1100

1099:                                             ; preds = %1096
  br label %2550

1100:                                             ; preds = %1096
  %1101 = load ptr, ptr %10, align 8, !tbaa !5
  %1102 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1101, i32 0, i32 3
  %1103 = load i8, ptr %1102, align 1, !tbaa !17
  %1104 = zext i8 %1103 to i32
  %1105 = ashr i32 %1104, 4
  %1106 = icmp eq i32 0, %1105
  br i1 %1106, label %1107, label %1269

1107:                                             ; preds = %1100
  %1108 = load ptr, ptr %10, align 8, !tbaa !5
  %1109 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1108, i32 0, i32 3
  %1110 = load i8, ptr %1109, align 1, !tbaa !17
  %1111 = zext i8 %1110 to i32
  %1112 = and i32 %1111, 15
  %1113 = icmp eq i32 0, %1112
  br i1 %1113, label %1114, label %1115

1114:                                             ; preds = %1107
  br label %1267

1115:                                             ; preds = %1107
  %1116 = load ptr, ptr %10, align 8, !tbaa !5
  %1117 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1116, i32 0, i32 3
  %1118 = load i8, ptr %1117, align 1, !tbaa !17
  %1119 = zext i8 %1118 to i32
  %1120 = and i32 %1119, 15
  %1121 = icmp eq i32 1, %1120
  br i1 %1121, label %1122, label %1123

1122:                                             ; preds = %1115
  br label %1265

1123:                                             ; preds = %1115
  %1124 = load ptr, ptr %10, align 8, !tbaa !5
  %1125 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1124, i32 0, i32 3
  %1126 = load i8, ptr %1125, align 1, !tbaa !17
  %1127 = zext i8 %1126 to i32
  %1128 = and i32 %1127, 15
  %1129 = icmp eq i32 2, %1128
  br i1 %1129, label %1130, label %1131

1130:                                             ; preds = %1123
  br label %1263

1131:                                             ; preds = %1123
  %1132 = load ptr, ptr %10, align 8, !tbaa !5
  %1133 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1132, i32 0, i32 3
  %1134 = load i8, ptr %1133, align 1, !tbaa !17
  %1135 = zext i8 %1134 to i32
  %1136 = and i32 %1135, 15
  %1137 = icmp eq i32 3, %1136
  br i1 %1137, label %1138, label %1139

1138:                                             ; preds = %1131
  br label %1261

1139:                                             ; preds = %1131
  %1140 = load ptr, ptr %10, align 8, !tbaa !5
  %1141 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1140, i32 0, i32 3
  %1142 = load i8, ptr %1141, align 1, !tbaa !17
  %1143 = zext i8 %1142 to i32
  %1144 = and i32 %1143, 15
  %1145 = icmp eq i32 4, %1144
  br i1 %1145, label %1146, label %1147

1146:                                             ; preds = %1139
  br label %1259

1147:                                             ; preds = %1139
  %1148 = load ptr, ptr %10, align 8, !tbaa !5
  %1149 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1148, i32 0, i32 3
  %1150 = load i8, ptr %1149, align 1, !tbaa !17
  %1151 = zext i8 %1150 to i32
  %1152 = and i32 %1151, 15
  %1153 = icmp eq i32 5, %1152
  br i1 %1153, label %1154, label %1155

1154:                                             ; preds = %1147
  br label %1257

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

1162:                                             ; preds = %1155
  br label %1255

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

1170:                                             ; preds = %1163
  br label %1253

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

1178:                                             ; preds = %1171
  br label %1251

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

1186:                                             ; preds = %1179
  br label %1249

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

1194:                                             ; preds = %1187
  br label %1247

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

1202:                                             ; preds = %1195
  br label %1245

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

1210:                                             ; preds = %1203
  br label %1243

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

1218:                                             ; preds = %1211
  br label %1241

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

1226:                                             ; preds = %1219
  br label %1239

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

1234:                                             ; preds = %1227
  br label %1237

1235:                                             ; preds = %1227
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 257, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #5
  unreachable

1236:                                             ; No predecessors!
  br label %1237

1237:                                             ; preds = %1236, %1234
  %1238 = phi i32 [ 15, %1234 ], [ 0, %1236 ]
  br label %1239

1239:                                             ; preds = %1237, %1226
  %1240 = phi i32 [ 14, %1226 ], [ %1238, %1237 ]
  br label %1241

1241:                                             ; preds = %1239, %1218
  %1242 = phi i32 [ 12, %1218 ], [ %1240, %1239 ]
  br label %1243

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

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

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

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

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

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

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

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

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

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

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

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

1267:                                             ; preds = %1265, %1114
  %1268 = phi i32 [ 0, %1114 ], [ %1266, %1265 ]
  br label %1275

1269:                                             ; preds = %1100
  %1270 = load ptr, ptr %10, align 8, !tbaa !5
  %1271 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1270, i32 0, i32 3
  %1272 = load i8, ptr %1271, align 1, !tbaa !17
  %1273 = zext i8 %1272 to i32
  %1274 = ashr i32 %1273, 4
  br label %1275

1275:                                             ; preds = %1269, %1267
  %1276 = phi i32 [ %1268, %1267 ], [ %1274, %1269 ]
  %1277 = icmp eq i32 6, %1276
  br i1 %1277, label %1278, label %1279

1278:                                             ; preds = %1275
  br label %2548

1279:                                             ; preds = %1275
  %1280 = load ptr, ptr %10, align 8, !tbaa !5
  %1281 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1280, i32 0, i32 3
  %1282 = load i8, ptr %1281, align 1, !tbaa !17
  %1283 = zext i8 %1282 to i32
  %1284 = ashr i32 %1283, 4
  %1285 = icmp eq i32 0, %1284
  br i1 %1285, label %1286, label %1448

1286:                                             ; preds = %1279
  %1287 = load ptr, ptr %10, align 8, !tbaa !5
  %1288 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1287, i32 0, i32 3
  %1289 = load i8, ptr %1288, align 1, !tbaa !17
  %1290 = zext i8 %1289 to i32
  %1291 = and i32 %1290, 15
  %1292 = icmp eq i32 0, %1291
  br i1 %1292, label %1293, label %1294

1293:                                             ; preds = %1286
  br label %1446

1294:                                             ; preds = %1286
  %1295 = load ptr, ptr %10, align 8, !tbaa !5
  %1296 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1295, i32 0, i32 3
  %1297 = load i8, ptr %1296, align 1, !tbaa !17
  %1298 = zext i8 %1297 to i32
  %1299 = and i32 %1298, 15
  %1300 = icmp eq i32 1, %1299
  br i1 %1300, label %1301, label %1302

1301:                                             ; preds = %1294
  br label %1444

1302:                                             ; preds = %1294
  %1303 = load ptr, ptr %10, align 8, !tbaa !5
  %1304 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1303, i32 0, i32 3
  %1305 = load i8, ptr %1304, align 1, !tbaa !17
  %1306 = zext i8 %1305 to i32
  %1307 = and i32 %1306, 15
  %1308 = icmp eq i32 2, %1307
  br i1 %1308, label %1309, label %1310

1309:                                             ; preds = %1302
  br label %1442

1310:                                             ; preds = %1302
  %1311 = load ptr, ptr %10, align 8, !tbaa !5
  %1312 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1311, i32 0, i32 3
  %1313 = load i8, ptr %1312, align 1, !tbaa !17
  %1314 = zext i8 %1313 to i32
  %1315 = and i32 %1314, 15
  %1316 = icmp eq i32 3, %1315
  br i1 %1316, label %1317, label %1318

1317:                                             ; preds = %1310
  br label %1440

1318:                                             ; preds = %1310
  %1319 = load ptr, ptr %10, align 8, !tbaa !5
  %1320 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1319, i32 0, i32 3
  %1321 = load i8, ptr %1320, align 1, !tbaa !17
  %1322 = zext i8 %1321 to i32
  %1323 = and i32 %1322, 15
  %1324 = icmp eq i32 4, %1323
  br i1 %1324, label %1325, label %1326

1325:                                             ; preds = %1318
  br label %1438

1326:                                             ; preds = %1318
  %1327 = load ptr, ptr %10, align 8, !tbaa !5
  %1328 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1327, i32 0, i32 3
  %1329 = load i8, ptr %1328, align 1, !tbaa !17
  %1330 = zext i8 %1329 to i32
  %1331 = and i32 %1330, 15
  %1332 = icmp eq i32 5, %1331
  br i1 %1332, label %1333, label %1334

1333:                                             ; preds = %1326
  br label %1436

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

1341:                                             ; preds = %1334
  br label %1434

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

1349:                                             ; preds = %1342
  br label %1432

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

1357:                                             ; preds = %1350
  br label %1430

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

1365:                                             ; preds = %1358
  br label %1428

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

1373:                                             ; preds = %1366
  br label %1426

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

1381:                                             ; preds = %1374
  br label %1424

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

1389:                                             ; preds = %1382
  br label %1422

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

1397:                                             ; preds = %1390
  br label %1420

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

1405:                                             ; preds = %1398
  br label %1418

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

1413:                                             ; preds = %1406
  br label %1416

1414:                                             ; preds = %1406
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 257, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #5
  unreachable

1415:                                             ; No predecessors!
  br label %1416

1416:                                             ; preds = %1415, %1413
  %1417 = phi i32 [ 15, %1413 ], [ 0, %1415 ]
  br label %1418

1418:                                             ; preds = %1416, %1405
  %1419 = phi i32 [ 14, %1405 ], [ %1417, %1416 ]
  br label %1420

1420:                                             ; preds = %1418, %1397
  %1421 = phi i32 [ 12, %1397 ], [ %1419, %1418 ]
  br label %1422

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

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

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

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

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

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

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

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

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

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

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

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

1446:                                             ; preds = %1444, %1293
  %1447 = phi i32 [ 0, %1293 ], [ %1445, %1444 ]
  br label %1454

1448:                                             ; preds = %1279
  %1449 = load ptr, ptr %10, align 8, !tbaa !5
  %1450 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1449, i32 0, i32 3
  %1451 = load i8, ptr %1450, align 1, !tbaa !17
  %1452 = zext i8 %1451 to i32
  %1453 = ashr i32 %1452, 4
  br label %1454

1454:                                             ; preds = %1448, %1446
  %1455 = phi i32 [ %1447, %1446 ], [ %1453, %1448 ]
  %1456 = icmp eq i32 7, %1455
  br i1 %1456, label %1457, label %1458

1457:                                             ; preds = %1454
  br label %2546

1458:                                             ; preds = %1454
  %1459 = load ptr, ptr %10, align 8, !tbaa !5
  %1460 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1459, i32 0, i32 3
  %1461 = load i8, ptr %1460, align 1, !tbaa !17
  %1462 = zext i8 %1461 to i32
  %1463 = ashr i32 %1462, 4
  %1464 = icmp eq i32 0, %1463
  br i1 %1464, label %1465, label %1627

1465:                                             ; preds = %1458
  %1466 = load ptr, ptr %10, align 8, !tbaa !5
  %1467 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1466, i32 0, i32 3
  %1468 = load i8, ptr %1467, align 1, !tbaa !17
  %1469 = zext i8 %1468 to i32
  %1470 = and i32 %1469, 15
  %1471 = icmp eq i32 0, %1470
  br i1 %1471, label %1472, label %1473

1472:                                             ; preds = %1465
  br label %1625

1473:                                             ; preds = %1465
  %1474 = load ptr, ptr %10, align 8, !tbaa !5
  %1475 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1474, i32 0, i32 3
  %1476 = load i8, ptr %1475, align 1, !tbaa !17
  %1477 = zext i8 %1476 to i32
  %1478 = and i32 %1477, 15
  %1479 = icmp eq i32 1, %1478
  br i1 %1479, label %1480, label %1481

1480:                                             ; preds = %1473
  br label %1623

1481:                                             ; preds = %1473
  %1482 = load ptr, ptr %10, align 8, !tbaa !5
  %1483 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1482, i32 0, i32 3
  %1484 = load i8, ptr %1483, align 1, !tbaa !17
  %1485 = zext i8 %1484 to i32
  %1486 = and i32 %1485, 15
  %1487 = icmp eq i32 2, %1486
  br i1 %1487, label %1488, label %1489

1488:                                             ; preds = %1481
  br label %1621

1489:                                             ; preds = %1481
  %1490 = load ptr, ptr %10, align 8, !tbaa !5
  %1491 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1490, i32 0, i32 3
  %1492 = load i8, ptr %1491, align 1, !tbaa !17
  %1493 = zext i8 %1492 to i32
  %1494 = and i32 %1493, 15
  %1495 = icmp eq i32 3, %1494
  br i1 %1495, label %1496, label %1497

1496:                                             ; preds = %1489
  br label %1619

1497:                                             ; preds = %1489
  %1498 = load ptr, ptr %10, align 8, !tbaa !5
  %1499 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1498, i32 0, i32 3
  %1500 = load i8, ptr %1499, align 1, !tbaa !17
  %1501 = zext i8 %1500 to i32
  %1502 = and i32 %1501, 15
  %1503 = icmp eq i32 4, %1502
  br i1 %1503, label %1504, label %1505

1504:                                             ; preds = %1497
  br label %1617

1505:                                             ; preds = %1497
  %1506 = load ptr, ptr %10, align 8, !tbaa !5
  %1507 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1506, i32 0, i32 3
  %1508 = load i8, ptr %1507, align 1, !tbaa !17
  %1509 = zext i8 %1508 to i32
  %1510 = and i32 %1509, 15
  %1511 = icmp eq i32 5, %1510
  br i1 %1511, label %1512, label %1513

1512:                                             ; preds = %1505
  br label %1615

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

1520:                                             ; preds = %1513
  br label %1613

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

1528:                                             ; preds = %1521
  br label %1611

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

1536:                                             ; preds = %1529
  br label %1609

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

1544:                                             ; preds = %1537
  br label %1607

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

1552:                                             ; preds = %1545
  br label %1605

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

1560:                                             ; preds = %1553
  br label %1603

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

1568:                                             ; preds = %1561
  br label %1601

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

1576:                                             ; preds = %1569
  br label %1599

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

1584:                                             ; preds = %1577
  br label %1597

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

1592:                                             ; preds = %1585
  br label %1595

1593:                                             ; preds = %1585
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 257, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #5
  unreachable

1594:                                             ; No predecessors!
  br label %1595

1595:                                             ; preds = %1594, %1592
  %1596 = phi i32 [ 15, %1592 ], [ 0, %1594 ]
  br label %1597

1597:                                             ; preds = %1595, %1584
  %1598 = phi i32 [ 14, %1584 ], [ %1596, %1595 ]
  br label %1599

1599:                                             ; preds = %1597, %1576
  %1600 = phi i32 [ 12, %1576 ], [ %1598, %1597 ]
  br label %1601

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

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

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

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

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

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

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

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

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

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

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

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

1625:                                             ; preds = %1623, %1472
  %1626 = phi i32 [ 0, %1472 ], [ %1624, %1623 ]
  br label %1633

1627:                                             ; preds = %1458
  %1628 = load ptr, ptr %10, align 8, !tbaa !5
  %1629 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1628, i32 0, i32 3
  %1630 = load i8, ptr %1629, align 1, !tbaa !17
  %1631 = zext i8 %1630 to i32
  %1632 = ashr i32 %1631, 4
  br label %1633

1633:                                             ; preds = %1627, %1625
  %1634 = phi i32 [ %1626, %1625 ], [ %1632, %1627 ]
  %1635 = icmp eq i32 8, %1634
  br i1 %1635, label %1636, label %1637

1636:                                             ; preds = %1633
  br label %2544

1637:                                             ; preds = %1633
  %1638 = load ptr, ptr %10, align 8, !tbaa !5
  %1639 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1638, i32 0, i32 3
  %1640 = load i8, ptr %1639, align 1, !tbaa !17
  %1641 = zext i8 %1640 to i32
  %1642 = ashr i32 %1641, 4
  %1643 = icmp eq i32 0, %1642
  br i1 %1643, label %1644, label %1806

1644:                                             ; preds = %1637
  %1645 = load ptr, ptr %10, align 8, !tbaa !5
  %1646 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1645, i32 0, i32 3
  %1647 = load i8, ptr %1646, align 1, !tbaa !17
  %1648 = zext i8 %1647 to i32
  %1649 = and i32 %1648, 15
  %1650 = icmp eq i32 0, %1649
  br i1 %1650, label %1651, label %1652

1651:                                             ; preds = %1644
  br label %1804

1652:                                             ; preds = %1644
  %1653 = load ptr, ptr %10, align 8, !tbaa !5
  %1654 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1653, i32 0, i32 3
  %1655 = load i8, ptr %1654, align 1, !tbaa !17
  %1656 = zext i8 %1655 to i32
  %1657 = and i32 %1656, 15
  %1658 = icmp eq i32 1, %1657
  br i1 %1658, label %1659, label %1660

1659:                                             ; preds = %1652
  br label %1802

1660:                                             ; preds = %1652
  %1661 = load ptr, ptr %10, align 8, !tbaa !5
  %1662 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1661, i32 0, i32 3
  %1663 = load i8, ptr %1662, align 1, !tbaa !17
  %1664 = zext i8 %1663 to i32
  %1665 = and i32 %1664, 15
  %1666 = icmp eq i32 2, %1665
  br i1 %1666, label %1667, label %1668

1667:                                             ; preds = %1660
  br label %1800

1668:                                             ; preds = %1660
  %1669 = load ptr, ptr %10, align 8, !tbaa !5
  %1670 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1669, i32 0, i32 3
  %1671 = load i8, ptr %1670, align 1, !tbaa !17
  %1672 = zext i8 %1671 to i32
  %1673 = and i32 %1672, 15
  %1674 = icmp eq i32 3, %1673
  br i1 %1674, label %1675, label %1676

1675:                                             ; preds = %1668
  br label %1798

1676:                                             ; preds = %1668
  %1677 = load ptr, ptr %10, align 8, !tbaa !5
  %1678 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1677, i32 0, i32 3
  %1679 = load i8, ptr %1678, align 1, !tbaa !17
  %1680 = zext i8 %1679 to i32
  %1681 = and i32 %1680, 15
  %1682 = icmp eq i32 4, %1681
  br i1 %1682, label %1683, label %1684

1683:                                             ; preds = %1676
  br label %1796

1684:                                             ; preds = %1676
  %1685 = load ptr, ptr %10, align 8, !tbaa !5
  %1686 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1685, i32 0, i32 3
  %1687 = load i8, ptr %1686, align 1, !tbaa !17
  %1688 = zext i8 %1687 to i32
  %1689 = and i32 %1688, 15
  %1690 = icmp eq i32 5, %1689
  br i1 %1690, label %1691, label %1692

1691:                                             ; preds = %1684
  br label %1794

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

1699:                                             ; preds = %1692
  br label %1792

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

1707:                                             ; preds = %1700
  br label %1790

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

1715:                                             ; preds = %1708
  br label %1788

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

1723:                                             ; preds = %1716
  br label %1786

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

1731:                                             ; preds = %1724
  br label %1784

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

1739:                                             ; preds = %1732
  br label %1782

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

1747:                                             ; preds = %1740
  br label %1780

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

1755:                                             ; preds = %1748
  br label %1778

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

1763:                                             ; preds = %1756
  br label %1776

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

1771:                                             ; preds = %1764
  br label %1774

1772:                                             ; preds = %1764
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 257, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #5
  unreachable

1773:                                             ; No predecessors!
  br label %1774

1774:                                             ; preds = %1773, %1771
  %1775 = phi i32 [ 15, %1771 ], [ 0, %1773 ]
  br label %1776

1776:                                             ; preds = %1774, %1763
  %1777 = phi i32 [ 14, %1763 ], [ %1775, %1774 ]
  br label %1778

1778:                                             ; preds = %1776, %1755
  %1779 = phi i32 [ 12, %1755 ], [ %1777, %1776 ]
  br label %1780

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

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

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

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

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

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

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

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

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

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

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

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

1804:                                             ; preds = %1802, %1651
  %1805 = phi i32 [ 0, %1651 ], [ %1803, %1802 ]
  br label %1812

1806:                                             ; preds = %1637
  %1807 = load ptr, ptr %10, align 8, !tbaa !5
  %1808 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1807, i32 0, i32 3
  %1809 = load i8, ptr %1808, align 1, !tbaa !17
  %1810 = zext i8 %1809 to i32
  %1811 = ashr i32 %1810, 4
  br label %1812

1812:                                             ; preds = %1806, %1804
  %1813 = phi i32 [ %1805, %1804 ], [ %1811, %1806 ]
  %1814 = icmp eq i32 9, %1813
  br i1 %1814, label %1815, label %1816

1815:                                             ; preds = %1812
  br label %2542

1816:                                             ; preds = %1812
  %1817 = load ptr, ptr %10, align 8, !tbaa !5
  %1818 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1817, i32 0, i32 3
  %1819 = load i8, ptr %1818, align 1, !tbaa !17
  %1820 = zext i8 %1819 to i32
  %1821 = ashr i32 %1820, 4
  %1822 = icmp eq i32 0, %1821
  br i1 %1822, label %1823, label %1985

1823:                                             ; preds = %1816
  %1824 = load ptr, ptr %10, align 8, !tbaa !5
  %1825 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1824, i32 0, i32 3
  %1826 = load i8, ptr %1825, align 1, !tbaa !17
  %1827 = zext i8 %1826 to i32
  %1828 = and i32 %1827, 15
  %1829 = icmp eq i32 0, %1828
  br i1 %1829, label %1830, label %1831

1830:                                             ; preds = %1823
  br label %1983

1831:                                             ; preds = %1823
  %1832 = load ptr, ptr %10, align 8, !tbaa !5
  %1833 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1832, i32 0, i32 3
  %1834 = load i8, ptr %1833, align 1, !tbaa !17
  %1835 = zext i8 %1834 to i32
  %1836 = and i32 %1835, 15
  %1837 = icmp eq i32 1, %1836
  br i1 %1837, label %1838, label %1839

1838:                                             ; preds = %1831
  br label %1981

1839:                                             ; preds = %1831
  %1840 = load ptr, ptr %10, align 8, !tbaa !5
  %1841 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1840, i32 0, i32 3
  %1842 = load i8, ptr %1841, align 1, !tbaa !17
  %1843 = zext i8 %1842 to i32
  %1844 = and i32 %1843, 15
  %1845 = icmp eq i32 2, %1844
  br i1 %1845, label %1846, label %1847

1846:                                             ; preds = %1839
  br label %1979

1847:                                             ; preds = %1839
  %1848 = load ptr, ptr %10, align 8, !tbaa !5
  %1849 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1848, i32 0, i32 3
  %1850 = load i8, ptr %1849, align 1, !tbaa !17
  %1851 = zext i8 %1850 to i32
  %1852 = and i32 %1851, 15
  %1853 = icmp eq i32 3, %1852
  br i1 %1853, label %1854, label %1855

1854:                                             ; preds = %1847
  br label %1977

1855:                                             ; preds = %1847
  %1856 = load ptr, ptr %10, align 8, !tbaa !5
  %1857 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1856, i32 0, i32 3
  %1858 = load i8, ptr %1857, align 1, !tbaa !17
  %1859 = zext i8 %1858 to i32
  %1860 = and i32 %1859, 15
  %1861 = icmp eq i32 4, %1860
  br i1 %1861, label %1862, label %1863

1862:                                             ; preds = %1855
  br label %1975

1863:                                             ; preds = %1855
  %1864 = load ptr, ptr %10, align 8, !tbaa !5
  %1865 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1864, i32 0, i32 3
  %1866 = load i8, ptr %1865, align 1, !tbaa !17
  %1867 = zext i8 %1866 to i32
  %1868 = and i32 %1867, 15
  %1869 = icmp eq i32 5, %1868
  br i1 %1869, label %1870, label %1871

1870:                                             ; preds = %1863
  br label %1973

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

1878:                                             ; preds = %1871
  br label %1971

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

1886:                                             ; preds = %1879
  br label %1969

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

1894:                                             ; preds = %1887
  br label %1967

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

1902:                                             ; preds = %1895
  br label %1965

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

1910:                                             ; preds = %1903
  br label %1963

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

1918:                                             ; preds = %1911
  br label %1961

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

1926:                                             ; preds = %1919
  br label %1959

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

1934:                                             ; preds = %1927
  br label %1957

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

1942:                                             ; preds = %1935
  br label %1955

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

1950:                                             ; preds = %1943
  br label %1953

1951:                                             ; preds = %1943
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 257, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #5
  unreachable

1952:                                             ; No predecessors!
  br label %1953

1953:                                             ; preds = %1952, %1950
  %1954 = phi i32 [ 15, %1950 ], [ 0, %1952 ]
  br label %1955

1955:                                             ; preds = %1953, %1942
  %1956 = phi i32 [ 14, %1942 ], [ %1954, %1953 ]
  br label %1957

1957:                                             ; preds = %1955, %1934
  %1958 = phi i32 [ 12, %1934 ], [ %1956, %1955 ]
  br label %1959

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

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

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

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

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

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

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

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

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

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

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

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

1983:                                             ; preds = %1981, %1830
  %1984 = phi i32 [ 0, %1830 ], [ %1982, %1981 ]
  br label %1991

1985:                                             ; preds = %1816
  %1986 = load ptr, ptr %10, align 8, !tbaa !5
  %1987 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1986, i32 0, i32 3
  %1988 = load i8, ptr %1987, align 1, !tbaa !17
  %1989 = zext i8 %1988 to i32
  %1990 = ashr i32 %1989, 4
  br label %1991

1991:                                             ; preds = %1985, %1983
  %1992 = phi i32 [ %1984, %1983 ], [ %1990, %1985 ]
  %1993 = icmp eq i32 10, %1992
  br i1 %1993, label %1994, label %1995

1994:                                             ; preds = %1991
  br label %2540

1995:                                             ; preds = %1991
  %1996 = load ptr, ptr %10, align 8, !tbaa !5
  %1997 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %1996, i32 0, i32 3
  %1998 = load i8, ptr %1997, align 1, !tbaa !17
  %1999 = zext i8 %1998 to i32
  %2000 = ashr i32 %1999, 4
  %2001 = icmp eq i32 0, %2000
  br i1 %2001, label %2002, label %2164

2002:                                             ; preds = %1995
  %2003 = load ptr, ptr %10, align 8, !tbaa !5
  %2004 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2003, i32 0, i32 3
  %2005 = load i8, ptr %2004, align 1, !tbaa !17
  %2006 = zext i8 %2005 to i32
  %2007 = and i32 %2006, 15
  %2008 = icmp eq i32 0, %2007
  br i1 %2008, label %2009, label %2010

2009:                                             ; preds = %2002
  br label %2162

2010:                                             ; preds = %2002
  %2011 = load ptr, ptr %10, align 8, !tbaa !5
  %2012 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2011, i32 0, i32 3
  %2013 = load i8, ptr %2012, align 1, !tbaa !17
  %2014 = zext i8 %2013 to i32
  %2015 = and i32 %2014, 15
  %2016 = icmp eq i32 1, %2015
  br i1 %2016, label %2017, label %2018

2017:                                             ; preds = %2010
  br label %2160

2018:                                             ; preds = %2010
  %2019 = load ptr, ptr %10, align 8, !tbaa !5
  %2020 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2019, i32 0, i32 3
  %2021 = load i8, ptr %2020, align 1, !tbaa !17
  %2022 = zext i8 %2021 to i32
  %2023 = and i32 %2022, 15
  %2024 = icmp eq i32 2, %2023
  br i1 %2024, label %2025, label %2026

2025:                                             ; preds = %2018
  br label %2158

2026:                                             ; preds = %2018
  %2027 = load ptr, ptr %10, align 8, !tbaa !5
  %2028 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2027, i32 0, i32 3
  %2029 = load i8, ptr %2028, align 1, !tbaa !17
  %2030 = zext i8 %2029 to i32
  %2031 = and i32 %2030, 15
  %2032 = icmp eq i32 3, %2031
  br i1 %2032, label %2033, label %2034

2033:                                             ; preds = %2026
  br label %2156

2034:                                             ; preds = %2026
  %2035 = load ptr, ptr %10, align 8, !tbaa !5
  %2036 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2035, i32 0, i32 3
  %2037 = load i8, ptr %2036, align 1, !tbaa !17
  %2038 = zext i8 %2037 to i32
  %2039 = and i32 %2038, 15
  %2040 = icmp eq i32 4, %2039
  br i1 %2040, label %2041, label %2042

2041:                                             ; preds = %2034
  br label %2154

2042:                                             ; preds = %2034
  %2043 = load ptr, ptr %10, align 8, !tbaa !5
  %2044 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2043, i32 0, i32 3
  %2045 = load i8, ptr %2044, align 1, !tbaa !17
  %2046 = zext i8 %2045 to i32
  %2047 = and i32 %2046, 15
  %2048 = icmp eq i32 5, %2047
  br i1 %2048, label %2049, label %2050

2049:                                             ; preds = %2042
  br label %2152

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

2057:                                             ; preds = %2050
  br label %2150

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

2065:                                             ; preds = %2058
  br label %2148

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

2073:                                             ; preds = %2066
  br label %2146

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

2081:                                             ; preds = %2074
  br label %2144

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

2089:                                             ; preds = %2082
  br label %2142

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

2097:                                             ; preds = %2090
  br label %2140

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

2105:                                             ; preds = %2098
  br label %2138

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

2113:                                             ; preds = %2106
  br label %2136

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

2121:                                             ; preds = %2114
  br label %2134

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

2129:                                             ; preds = %2122
  br label %2132

2130:                                             ; preds = %2122
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 257, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #5
  unreachable

2131:                                             ; No predecessors!
  br label %2132

2132:                                             ; preds = %2131, %2129
  %2133 = phi i32 [ 15, %2129 ], [ 0, %2131 ]
  br label %2134

2134:                                             ; preds = %2132, %2121
  %2135 = phi i32 [ 14, %2121 ], [ %2133, %2132 ]
  br label %2136

2136:                                             ; preds = %2134, %2113
  %2137 = phi i32 [ 12, %2113 ], [ %2135, %2134 ]
  br label %2138

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

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

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

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

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

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

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

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

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

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

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

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

2162:                                             ; preds = %2160, %2009
  %2163 = phi i32 [ 0, %2009 ], [ %2161, %2160 ]
  br label %2170

2164:                                             ; preds = %1995
  %2165 = load ptr, ptr %10, align 8, !tbaa !5
  %2166 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2165, i32 0, i32 3
  %2167 = load i8, ptr %2166, align 1, !tbaa !17
  %2168 = zext i8 %2167 to i32
  %2169 = ashr i32 %2168, 4
  br label %2170

2170:                                             ; preds = %2164, %2162
  %2171 = phi i32 [ %2163, %2162 ], [ %2169, %2164 ]
  %2172 = icmp eq i32 11, %2171
  br i1 %2172, label %2173, label %2174

2173:                                             ; preds = %2170
  br label %2538

2174:                                             ; preds = %2170
  %2175 = load ptr, ptr %10, align 8, !tbaa !5
  %2176 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2175, i32 0, i32 3
  %2177 = load i8, ptr %2176, align 1, !tbaa !17
  %2178 = zext i8 %2177 to i32
  %2179 = ashr i32 %2178, 4
  %2180 = icmp eq i32 0, %2179
  br i1 %2180, label %2181, label %2343

2181:                                             ; preds = %2174
  %2182 = load ptr, ptr %10, align 8, !tbaa !5
  %2183 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2182, i32 0, i32 3
  %2184 = load i8, ptr %2183, align 1, !tbaa !17
  %2185 = zext i8 %2184 to i32
  %2186 = and i32 %2185, 15
  %2187 = icmp eq i32 0, %2186
  br i1 %2187, label %2188, label %2189

2188:                                             ; preds = %2181
  br label %2341

2189:                                             ; preds = %2181
  %2190 = load ptr, ptr %10, align 8, !tbaa !5
  %2191 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2190, i32 0, i32 3
  %2192 = load i8, ptr %2191, align 1, !tbaa !17
  %2193 = zext i8 %2192 to i32
  %2194 = and i32 %2193, 15
  %2195 = icmp eq i32 1, %2194
  br i1 %2195, label %2196, label %2197

2196:                                             ; preds = %2189
  br label %2339

2197:                                             ; preds = %2189
  %2198 = load ptr, ptr %10, align 8, !tbaa !5
  %2199 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2198, i32 0, i32 3
  %2200 = load i8, ptr %2199, align 1, !tbaa !17
  %2201 = zext i8 %2200 to i32
  %2202 = and i32 %2201, 15
  %2203 = icmp eq i32 2, %2202
  br i1 %2203, label %2204, label %2205

2204:                                             ; preds = %2197
  br label %2337

2205:                                             ; preds = %2197
  %2206 = load ptr, ptr %10, align 8, !tbaa !5
  %2207 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2206, i32 0, i32 3
  %2208 = load i8, ptr %2207, align 1, !tbaa !17
  %2209 = zext i8 %2208 to i32
  %2210 = and i32 %2209, 15
  %2211 = icmp eq i32 3, %2210
  br i1 %2211, label %2212, label %2213

2212:                                             ; preds = %2205
  br label %2335

2213:                                             ; preds = %2205
  %2214 = load ptr, ptr %10, align 8, !tbaa !5
  %2215 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2214, i32 0, i32 3
  %2216 = load i8, ptr %2215, align 1, !tbaa !17
  %2217 = zext i8 %2216 to i32
  %2218 = and i32 %2217, 15
  %2219 = icmp eq i32 4, %2218
  br i1 %2219, label %2220, label %2221

2220:                                             ; preds = %2213
  br label %2333

2221:                                             ; preds = %2213
  %2222 = load ptr, ptr %10, align 8, !tbaa !5
  %2223 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2222, i32 0, i32 3
  %2224 = load i8, ptr %2223, align 1, !tbaa !17
  %2225 = zext i8 %2224 to i32
  %2226 = and i32 %2225, 15
  %2227 = icmp eq i32 5, %2226
  br i1 %2227, label %2228, label %2229

2228:                                             ; preds = %2221
  br label %2331

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

2236:                                             ; preds = %2229
  br label %2329

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

2244:                                             ; preds = %2237
  br label %2327

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

2252:                                             ; preds = %2245
  br label %2325

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

2260:                                             ; preds = %2253
  br label %2323

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

2268:                                             ; preds = %2261
  br label %2321

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

2276:                                             ; preds = %2269
  br label %2319

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

2284:                                             ; preds = %2277
  br label %2317

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

2292:                                             ; preds = %2285
  br label %2315

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

2300:                                             ; preds = %2293
  br label %2313

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

2308:                                             ; preds = %2301
  br label %2311

2309:                                             ; preds = %2301
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 257, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #5
  unreachable

2310:                                             ; No predecessors!
  br label %2311

2311:                                             ; preds = %2310, %2308
  %2312 = phi i32 [ 15, %2308 ], [ 0, %2310 ]
  br label %2313

2313:                                             ; preds = %2311, %2300
  %2314 = phi i32 [ 14, %2300 ], [ %2312, %2311 ]
  br label %2315

2315:                                             ; preds = %2313, %2292
  %2316 = phi i32 [ 12, %2292 ], [ %2314, %2313 ]
  br label %2317

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

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

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

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

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

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

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

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

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

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

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

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

2341:                                             ; preds = %2339, %2188
  %2342 = phi i32 [ 0, %2188 ], [ %2340, %2339 ]
  br label %2349

2343:                                             ; preds = %2174
  %2344 = load ptr, ptr %10, align 8, !tbaa !5
  %2345 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2344, i32 0, i32 3
  %2346 = load i8, ptr %2345, align 1, !tbaa !17
  %2347 = zext i8 %2346 to i32
  %2348 = ashr i32 %2347, 4
  br label %2349

2349:                                             ; preds = %2343, %2341
  %2350 = phi i32 [ %2342, %2341 ], [ %2348, %2343 ]
  %2351 = icmp eq i32 12, %2350
  br i1 %2351, label %2352, label %2353

2352:                                             ; preds = %2349
  br label %2536

2353:                                             ; preds = %2349
  %2354 = load ptr, ptr %10, align 8, !tbaa !5
  %2355 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2354, i32 0, i32 3
  %2356 = load i8, ptr %2355, align 1, !tbaa !17
  %2357 = zext i8 %2356 to i32
  %2358 = ashr i32 %2357, 4
  %2359 = icmp eq i32 0, %2358
  br i1 %2359, label %2360, label %2522

2360:                                             ; preds = %2353
  %2361 = load ptr, ptr %10, align 8, !tbaa !5
  %2362 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2361, i32 0, i32 3
  %2363 = load i8, ptr %2362, align 1, !tbaa !17
  %2364 = zext i8 %2363 to i32
  %2365 = and i32 %2364, 15
  %2366 = icmp eq i32 0, %2365
  br i1 %2366, label %2367, label %2368

2367:                                             ; preds = %2360
  br label %2520

2368:                                             ; preds = %2360
  %2369 = load ptr, ptr %10, align 8, !tbaa !5
  %2370 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2369, i32 0, i32 3
  %2371 = load i8, ptr %2370, align 1, !tbaa !17
  %2372 = zext i8 %2371 to i32
  %2373 = and i32 %2372, 15
  %2374 = icmp eq i32 1, %2373
  br i1 %2374, label %2375, label %2376

2375:                                             ; preds = %2368
  br label %2518

2376:                                             ; preds = %2368
  %2377 = load ptr, ptr %10, align 8, !tbaa !5
  %2378 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2377, i32 0, i32 3
  %2379 = load i8, ptr %2378, align 1, !tbaa !17
  %2380 = zext i8 %2379 to i32
  %2381 = and i32 %2380, 15
  %2382 = icmp eq i32 2, %2381
  br i1 %2382, label %2383, label %2384

2383:                                             ; preds = %2376
  br label %2516

2384:                                             ; preds = %2376
  %2385 = load ptr, ptr %10, align 8, !tbaa !5
  %2386 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2385, i32 0, i32 3
  %2387 = load i8, ptr %2386, align 1, !tbaa !17
  %2388 = zext i8 %2387 to i32
  %2389 = and i32 %2388, 15
  %2390 = icmp eq i32 3, %2389
  br i1 %2390, label %2391, label %2392

2391:                                             ; preds = %2384
  br label %2514

2392:                                             ; preds = %2384
  %2393 = load ptr, ptr %10, align 8, !tbaa !5
  %2394 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2393, i32 0, i32 3
  %2395 = load i8, ptr %2394, align 1, !tbaa !17
  %2396 = zext i8 %2395 to i32
  %2397 = and i32 %2396, 15
  %2398 = icmp eq i32 4, %2397
  br i1 %2398, label %2399, label %2400

2399:                                             ; preds = %2392
  br label %2512

2400:                                             ; preds = %2392
  %2401 = load ptr, ptr %10, align 8, !tbaa !5
  %2402 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2401, i32 0, i32 3
  %2403 = load i8, ptr %2402, align 1, !tbaa !17
  %2404 = zext i8 %2403 to i32
  %2405 = and i32 %2404, 15
  %2406 = icmp eq i32 5, %2405
  br i1 %2406, label %2407, label %2408

2407:                                             ; preds = %2400
  br label %2510

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

2415:                                             ; preds = %2408
  br label %2508

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

2423:                                             ; preds = %2416
  br label %2506

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

2431:                                             ; preds = %2424
  br label %2504

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

2439:                                             ; preds = %2432
  br label %2502

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

2447:                                             ; preds = %2440
  br label %2500

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

2455:                                             ; preds = %2448
  br label %2498

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

2463:                                             ; preds = %2456
  br label %2496

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

2471:                                             ; preds = %2464
  br label %2494

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

2479:                                             ; preds = %2472
  br label %2492

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

2487:                                             ; preds = %2480
  br label %2490

2488:                                             ; preds = %2480
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 257, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #5
  unreachable

2489:                                             ; No predecessors!
  br label %2490

2490:                                             ; preds = %2489, %2487
  %2491 = phi i32 [ 15, %2487 ], [ 0, %2489 ]
  br label %2492

2492:                                             ; preds = %2490, %2479
  %2493 = phi i32 [ 14, %2479 ], [ %2491, %2490 ]
  br label %2494

2494:                                             ; preds = %2492, %2471
  %2495 = phi i32 [ 12, %2471 ], [ %2493, %2492 ]
  br label %2496

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

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

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

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

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

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

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

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

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

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

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

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

2520:                                             ; preds = %2518, %2367
  %2521 = phi i32 [ 0, %2367 ], [ %2519, %2518 ]
  br label %2528

2522:                                             ; preds = %2353
  %2523 = load ptr, ptr %10, align 8, !tbaa !5
  %2524 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2523, i32 0, i32 3
  %2525 = load i8, ptr %2524, align 1, !tbaa !17
  %2526 = zext i8 %2525 to i32
  %2527 = ashr i32 %2526, 4
  br label %2528

2528:                                             ; preds = %2522, %2520
  %2529 = phi i32 [ %2521, %2520 ], [ %2527, %2522 ]
  %2530 = icmp eq i32 13, %2529
  br i1 %2530, label %2531, label %2532

2531:                                             ; preds = %2528
  br label %2534

2532:                                             ; preds = %2528
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 257, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #5
  unreachable

2533:                                             ; No predecessors!
  br label %2534

2534:                                             ; preds = %2533, %2531
  %2535 = phi i32 [ 1, %2531 ], [ 0, %2533 ]
  br label %2536

2536:                                             ; preds = %2534, %2352
  %2537 = phi i32 [ 1, %2352 ], [ %2535, %2534 ]
  br label %2538

2538:                                             ; preds = %2536, %2173
  %2539 = phi i32 [ 2, %2173 ], [ %2537, %2536 ]
  br label %2540

2540:                                             ; preds = %2538, %1994
  %2541 = phi i32 [ 2, %1994 ], [ %2539, %2538 ]
  br label %2542

2542:                                             ; preds = %2540, %1815
  %2543 = phi i32 [ 4, %1815 ], [ %2541, %2540 ]
  br label %2544

2544:                                             ; preds = %2542, %1636
  %2545 = phi i32 [ 4, %1636 ], [ %2543, %2542 ]
  br label %2546

2546:                                             ; preds = %2544, %1457
  %2547 = phi i32 [ 8, %1457 ], [ %2545, %2544 ]
  br label %2548

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

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

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

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

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

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

2560:                                             ; preds = %2558, %204
  %2561 = phi i32 [ 8, %204 ], [ %2559, %2558 ]
  store i32 %2561, ptr %20, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #4
  %2562 = load ptr, ptr %11, align 8, !tbaa !5
  %2563 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %2562, i32 0, i32 12
  %2564 = load i32, ptr %2563, align 4, !tbaa !19
  store i32 %2564, ptr %21, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  %2565 = load ptr, ptr %11, align 8, !tbaa !5
  %2566 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %2565, i32 0, i32 13
  %2567 = load i32, ptr %2566, align 4, !tbaa !23
  store i32 %2567, ptr %22, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %2568

2568:                                             ; preds = %2841, %2560
  %2569 = load i32, ptr %18, align 4, !tbaa !9
  %2570 = load i32, ptr %17, align 4, !tbaa !9
  %2571 = icmp ult i32 %2569, %2570
  br i1 %2571, label %2572, label %2844

2572:                                             ; preds = %2568
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #4
  %2573 = load ptr, ptr %16, align 8, !tbaa !5
  %2574 = load i32, ptr %18, align 4, !tbaa !9
  %2575 = zext i32 %2574 to i64
  %2576 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2573, i64 %2575
  %2577 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2576, i32 0, i32 5
  %2578 = load i32, ptr %2577, align 4, !tbaa !24
  %2579 = icmp eq i32 0, %2578
  br i1 %2579, label %2580, label %2581

2580:                                             ; preds = %2572
  br label %2726

2581:                                             ; preds = %2572
  %2582 = load ptr, ptr %16, align 8, !tbaa !5
  %2583 = load i32, ptr %18, align 4, !tbaa !9
  %2584 = zext i32 %2583 to i64
  %2585 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2582, i64 %2584
  %2586 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2585, i32 0, i32 5
  %2587 = load i32, ptr %2586, align 4, !tbaa !24
  %2588 = icmp eq i32 1, %2587
  br i1 %2588, label %2589, label %2590

2589:                                             ; preds = %2581
  br label %2724

2590:                                             ; preds = %2581
  %2591 = load ptr, ptr %16, align 8, !tbaa !5
  %2592 = load i32, ptr %18, align 4, !tbaa !9
  %2593 = zext i32 %2592 to i64
  %2594 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2591, i64 %2593
  %2595 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2594, i32 0, i32 5
  %2596 = load i32, ptr %2595, align 4, !tbaa !24
  %2597 = icmp eq i32 2, %2596
  br i1 %2597, label %2598, label %2599

2598:                                             ; preds = %2590
  br label %2722

2599:                                             ; preds = %2590
  %2600 = load ptr, ptr %16, align 8, !tbaa !5
  %2601 = load i32, ptr %18, align 4, !tbaa !9
  %2602 = zext i32 %2601 to i64
  %2603 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2600, i64 %2602
  %2604 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2603, i32 0, i32 5
  %2605 = load i32, ptr %2604, align 4, !tbaa !24
  %2606 = icmp eq i32 3, %2605
  br i1 %2606, label %2607, label %2608

2607:                                             ; preds = %2599
  br label %2720

2608:                                             ; preds = %2599
  %2609 = load ptr, ptr %16, align 8, !tbaa !5
  %2610 = load i32, ptr %18, align 4, !tbaa !9
  %2611 = zext i32 %2610 to i64
  %2612 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2609, i64 %2611
  %2613 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2612, i32 0, i32 5
  %2614 = load i32, ptr %2613, align 4, !tbaa !24
  %2615 = icmp eq i32 4, %2614
  br i1 %2615, label %2616, label %2617

2616:                                             ; preds = %2608
  br label %2718

2617:                                             ; preds = %2608
  %2618 = load ptr, ptr %16, align 8, !tbaa !5
  %2619 = load i32, ptr %18, align 4, !tbaa !9
  %2620 = zext i32 %2619 to i64
  %2621 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2618, i64 %2620
  %2622 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2621, i32 0, i32 5
  %2623 = load i32, ptr %2622, align 4, !tbaa !24
  %2624 = icmp eq i32 5, %2623
  br i1 %2624, label %2625, label %2626

2625:                                             ; preds = %2617
  br label %2716

2626:                                             ; preds = %2617
  %2627 = load ptr, ptr %16, align 8, !tbaa !5
  %2628 = load i32, ptr %18, align 4, !tbaa !9
  %2629 = zext i32 %2628 to i64
  %2630 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2627, i64 %2629
  %2631 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2630, i32 0, i32 5
  %2632 = load i32, ptr %2631, align 4, !tbaa !24
  %2633 = icmp eq i32 6, %2632
  br i1 %2633, label %2634, label %2635

2634:                                             ; preds = %2626
  br label %2714

2635:                                             ; preds = %2626
  %2636 = load ptr, ptr %16, align 8, !tbaa !5
  %2637 = load i32, ptr %18, align 4, !tbaa !9
  %2638 = zext i32 %2637 to i64
  %2639 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2636, i64 %2638
  %2640 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2639, i32 0, i32 5
  %2641 = load i32, ptr %2640, align 4, !tbaa !24
  %2642 = icmp eq i32 7, %2641
  br i1 %2642, label %2643, label %2644

2643:                                             ; preds = %2635
  br label %2712

2644:                                             ; preds = %2635
  %2645 = load ptr, ptr %16, align 8, !tbaa !5
  %2646 = load i32, ptr %18, align 4, !tbaa !9
  %2647 = zext i32 %2646 to i64
  %2648 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2645, i64 %2647
  %2649 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2648, i32 0, i32 5
  %2650 = load i32, ptr %2649, align 4, !tbaa !24
  %2651 = icmp eq i32 8, %2650
  br i1 %2651, label %2652, label %2653

2652:                                             ; preds = %2644
  br label %2710

2653:                                             ; preds = %2644
  %2654 = load ptr, ptr %16, align 8, !tbaa !5
  %2655 = load i32, ptr %18, align 4, !tbaa !9
  %2656 = zext i32 %2655 to i64
  %2657 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2654, i64 %2656
  %2658 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2657, i32 0, i32 5
  %2659 = load i32, ptr %2658, align 4, !tbaa !24
  %2660 = icmp eq i32 9, %2659
  br i1 %2660, label %2661, label %2662

2661:                                             ; preds = %2653
  br label %2708

2662:                                             ; preds = %2653
  %2663 = load ptr, ptr %16, align 8, !tbaa !5
  %2664 = load i32, ptr %18, align 4, !tbaa !9
  %2665 = zext i32 %2664 to i64
  %2666 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2663, i64 %2665
  %2667 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2666, i32 0, i32 5
  %2668 = load i32, ptr %2667, align 4, !tbaa !24
  %2669 = icmp eq i32 10, %2668
  br i1 %2669, label %2670, label %2671

2670:                                             ; preds = %2662
  br label %2706

2671:                                             ; preds = %2662
  %2672 = load ptr, ptr %16, align 8, !tbaa !5
  %2673 = load i32, ptr %18, align 4, !tbaa !9
  %2674 = zext i32 %2673 to i64
  %2675 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2672, i64 %2674
  %2676 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2675, i32 0, i32 5
  %2677 = load i32, ptr %2676, align 4, !tbaa !24
  %2678 = icmp eq i32 11, %2677
  br i1 %2678, label %2679, label %2680

2679:                                             ; preds = %2671
  br label %2704

2680:                                             ; preds = %2671
  %2681 = load ptr, ptr %16, align 8, !tbaa !5
  %2682 = load i32, ptr %18, align 4, !tbaa !9
  %2683 = zext i32 %2682 to i64
  %2684 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2681, i64 %2683
  %2685 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2684, i32 0, i32 5
  %2686 = load i32, ptr %2685, align 4, !tbaa !24
  %2687 = icmp eq i32 12, %2686
  br i1 %2687, label %2688, label %2689

2688:                                             ; preds = %2680
  br label %2702

2689:                                             ; preds = %2680
  %2690 = load ptr, ptr %16, align 8, !tbaa !5
  %2691 = load i32, ptr %18, align 4, !tbaa !9
  %2692 = zext i32 %2691 to i64
  %2693 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2690, i64 %2692
  %2694 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2693, i32 0, i32 5
  %2695 = load i32, ptr %2694, align 4, !tbaa !24
  %2696 = icmp eq i32 13, %2695
  br i1 %2696, label %2697, label %2698

2697:                                             ; preds = %2689
  br label %2700

2698:                                             ; preds = %2689
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 263, ptr noundef @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #5
  unreachable

2699:                                             ; No predecessors!
  br label %2700

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

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

2704:                                             ; preds = %2702, %2679
  %2705 = phi i32 [ 2, %2679 ], [ %2703, %2702 ]
  br label %2706

2706:                                             ; preds = %2704, %2670
  %2707 = phi i32 [ 2, %2670 ], [ %2705, %2704 ]
  br label %2708

2708:                                             ; preds = %2706, %2661
  %2709 = phi i32 [ 4, %2661 ], [ %2707, %2706 ]
  br label %2710

2710:                                             ; preds = %2708, %2652
  %2711 = phi i32 [ 4, %2652 ], [ %2709, %2708 ]
  br label %2712

2712:                                             ; preds = %2710, %2643
  %2713 = phi i32 [ 8, %2643 ], [ %2711, %2710 ]
  br label %2714

2714:                                             ; preds = %2712, %2634
  %2715 = phi i32 [ 8, %2634 ], [ %2713, %2712 ]
  br label %2716

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

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

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

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

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

2726:                                             ; preds = %2724, %2580
  %2727 = phi i32 [ 8, %2580 ], [ %2725, %2724 ]
  store i32 %2727, ptr %23, align 4, !tbaa !9
  %2728 = load i32, ptr %15, align 4, !tbaa !9
  %2729 = icmp eq i32 %2728, 0
  br i1 %2729, label %2730, label %2752

2730:                                             ; preds = %2726
  %2731 = load ptr, ptr %16, align 8, !tbaa !5
  %2732 = load i32, ptr %18, align 4, !tbaa !9
  %2733 = zext i32 %2732 to i64
  %2734 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2731, i64 %2733
  %2735 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2734, i32 0, i32 6
  %2736 = load i32, ptr %2735, align 4, !tbaa !24
  %2737 = icmp eq i32 %2736, 0
  br i1 %2737, label %2746, label %2738

2738:                                             ; preds = %2730
  %2739 = load ptr, ptr %16, align 8, !tbaa !5
  %2740 = load i32, ptr %18, align 4, !tbaa !9
  %2741 = zext i32 %2740 to i64
  %2742 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2739, i64 %2741
  %2743 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2742, i32 0, i32 6
  %2744 = load i32, ptr %2743, align 4, !tbaa !24
  %2745 = icmp eq i32 %2744, 2
  br i1 %2745, label %2746, label %2750

2746:                                             ; preds = %2738, %2730
  %2747 = load i32, ptr %14, align 4, !tbaa !9
  %2748 = load i32, ptr %23, align 4, !tbaa !9
  %2749 = mul i32 %2747, %2748
  store i32 %2749, ptr %19, align 4, !tbaa !9
  br label %2751

2750:                                             ; preds = %2738
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %2751

2751:                                             ; preds = %2750, %2746
  br label %2797

2752:                                             ; preds = %2726
  %2753 = load i32, ptr %15, align 4, !tbaa !9
  %2754 = icmp eq i32 %2753, 1
  br i1 %2754, label %2755, label %2796

2755:                                             ; preds = %2752
  %2756 = load ptr, ptr %16, align 8, !tbaa !5
  %2757 = load i32, ptr %18, align 4, !tbaa !9
  %2758 = zext i32 %2757 to i64
  %2759 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2756, i64 %2758
  %2760 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2759, i32 0, i32 6
  %2761 = load i32, ptr %2760, align 4, !tbaa !24
  %2762 = icmp eq i32 %2761, 0
  br i1 %2762, label %2763, label %2774

2763:                                             ; preds = %2755
  %2764 = load i32, ptr %14, align 4, !tbaa !9
  %2765 = load ptr, ptr %16, align 8, !tbaa !5
  %2766 = load i32, ptr %18, align 4, !tbaa !9
  %2767 = zext i32 %2766 to i64
  %2768 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2765, i64 %2767
  %2769 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2768, i32 0, i32 2
  %2770 = load i32, ptr %2769, align 4, !tbaa !24
  %2771 = mul i32 %2764, %2770
  %2772 = load i32, ptr %23, align 4, !tbaa !9
  %2773 = mul i32 %2771, %2772
  store i32 %2773, ptr %19, align 4, !tbaa !9
  br label %2795

2774:                                             ; preds = %2755
  %2775 = load ptr, ptr %16, align 8, !tbaa !5
  %2776 = load i32, ptr %18, align 4, !tbaa !9
  %2777 = zext i32 %2776 to i64
  %2778 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2775, i64 %2777
  %2779 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2778, i32 0, i32 6
  %2780 = load i32, ptr %2779, align 4, !tbaa !24
  %2781 = icmp eq i32 %2780, 1
  br i1 %2781, label %2782, label %2793

2782:                                             ; preds = %2774
  %2783 = load i32, ptr %14, align 4, !tbaa !9
  %2784 = load ptr, ptr %16, align 8, !tbaa !5
  %2785 = load i32, ptr %18, align 4, !tbaa !9
  %2786 = zext i32 %2785 to i64
  %2787 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2784, i64 %2786
  %2788 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %2787, i32 0, i32 2
  %2789 = load i32, ptr %2788, align 4, !tbaa !24
  %2790 = mul i32 %2783, %2789
  %2791 = load i32, ptr %23, align 4, !tbaa !9
  %2792 = mul i32 %2790, %2791
  store i32 %2792, ptr %19, align 4, !tbaa !9
  br label %2794

2793:                                             ; preds = %2774
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %2794

2794:                                             ; preds = %2793, %2782
  br label %2795

2795:                                             ; preds = %2794, %2763
  br label %2796

2796:                                             ; preds = %2795, %2752
  br label %2797

2797:                                             ; preds = %2796, %2751
  %2798 = load i32, ptr %19, align 4, !tbaa !9
  %2799 = icmp ne i32 %2798, 0
  br i1 %2799, label %2800, label %2840

2800:                                             ; preds = %2797
  %2801 = load i32, ptr %18, align 4, !tbaa !9
  %2802 = load ptr, ptr %12, align 8, !tbaa !5
  %2803 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %2802, i32 0, i32 46
  %2804 = load i32, ptr %2803, align 8, !tbaa !25
  %2805 = icmp ult i32 %2801, %2804
  br i1 %2805, label %2806, label %2817

2806:                                             ; preds = %2800
  %2807 = load ptr, ptr %9, align 8, !tbaa !5
  %2808 = load i32, ptr %13, align 4, !tbaa !9
  %2809 = load ptr, ptr %12, align 8, !tbaa !5
  %2810 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %2809, i32 0, i32 47
  %2811 = load i32, ptr %18, align 4, !tbaa !9
  %2812 = zext i32 %2811 to i64
  %2813 = getelementptr inbounds [32 x i32], ptr %2810, i64 0, i64 %2812
  %2814 = load i32, ptr %2813, align 4, !tbaa !9
  %2815 = load i32, ptr %19, align 4, !tbaa !9
  %2816 = zext i32 %2815 to i64
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %2807, i32 noundef %2808, i32 noundef %2814, i64 noundef %2816)
  br label %2839

2817:                                             ; preds = %2800
  %2818 = load ptr, ptr %9, align 8, !tbaa !5
  %2819 = load i32, ptr %18, align 4, !tbaa !9
  %2820 = mul i32 %2819, 8
  %2821 = load i32, ptr %21, align 4, !tbaa !9
  call void @libxsmm_generator_meqn_getaddr_stack_tmpaddr_i(ptr noundef %2818, i32 noundef %2820, i32 noundef %2821)
  %2822 = load ptr, ptr %9, align 8, !tbaa !5
  %2823 = load ptr, ptr %12, align 8, !tbaa !5
  %2824 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %2823, i32 0, i32 10
  %2825 = load i32, ptr %2824, align 8, !tbaa !26
  %2826 = load i32, ptr %21, align 4, !tbaa !9
  %2827 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %2822, i32 noundef %2825, i32 noundef %2826, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %2827, i32 noundef 0)
  %2828 = load ptr, ptr %9, align 8, !tbaa !5
  %2829 = load i32, ptr %13, align 4, !tbaa !9
  %2830 = load i32, ptr %22, align 4, !tbaa !9
  %2831 = load i32, ptr %19, align 4, !tbaa !9
  %2832 = zext i32 %2831 to i64
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %2828, i32 noundef %2829, i32 noundef %2830, i64 noundef %2832)
  %2833 = load ptr, ptr %9, align 8, !tbaa !5
  %2834 = load ptr, ptr %12, align 8, !tbaa !5
  %2835 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %2834, i32 0, i32 10
  %2836 = load i32, ptr %2835, align 8, !tbaa !26
  %2837 = load i32, ptr %21, align 4, !tbaa !9
  %2838 = load i32, ptr %22, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_alu_mem(ptr noundef %2833, i32 noundef %2836, i32 noundef %2837, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %2838, i32 noundef 1)
  br label %2839

2839:                                             ; preds = %2817, %2806
  br label %2840

2840:                                             ; preds = %2839, %2797
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #4
  br label %2841

2841:                                             ; preds = %2840
  %2842 = load i32, ptr %18, align 4, !tbaa !9
  %2843 = add i32 %2842, 1
  store i32 %2843, ptr %18, align 4, !tbaa !9
  br label %2568, !llvm.loop !27

2844:                                             ; preds = %2568
  %2845 = load ptr, ptr %12, align 8, !tbaa !5
  %2846 = getelementptr inbounds %struct.libxsmm_matequation_kernel_config_struct, ptr %2845, i32 0, i32 24
  %2847 = load i32, ptr %2846, align 8, !tbaa !29
  %2848 = icmp eq i32 %2847, 0
  br i1 %2848, label %2849, label %2876

2849:                                             ; preds = %2844
  %2850 = load i32, ptr %15, align 4, !tbaa !9
  %2851 = icmp eq i32 %2850, 0
  br i1 %2851, label %2852, label %2856

2852:                                             ; preds = %2849
  %2853 = load i32, ptr %14, align 4, !tbaa !9
  %2854 = load i32, ptr %20, align 4, !tbaa !9
  %2855 = mul i32 %2853, %2854
  store i32 %2855, ptr %19, align 4, !tbaa !9
  br label %2868

2856:                                             ; preds = %2849
  %2857 = load i32, ptr %15, align 4, !tbaa !9
  %2858 = icmp eq i32 %2857, 1
  br i1 %2858, label %2859, label %2867

2859:                                             ; preds = %2856
  %2860 = load i32, ptr %14, align 4, !tbaa !9
  %2861 = load ptr, ptr %10, align 8, !tbaa !5
  %2862 = getelementptr inbounds %struct.libxsmm_meqn_descriptor, ptr %2861, i32 0, i32 2
  %2863 = load i32, ptr %2862, align 1, !tbaa !30
  %2864 = mul i32 %2860, %2863
  %2865 = load i32, ptr %20, align 4, !tbaa !9
  %2866 = mul i32 %2864, %2865
  store i32 %2866, ptr %19, align 4, !tbaa !9
  br label %2867

2867:                                             ; preds = %2859, %2856
  br label %2868

2868:                                             ; preds = %2867, %2852
  %2869 = load ptr, ptr %9, align 8, !tbaa !5
  %2870 = load i32, ptr %13, align 4, !tbaa !9
  %2871 = load ptr, ptr %11, align 8, !tbaa !5
  %2872 = getelementptr inbounds %struct.libxsmm_matequation_gp_reg_mapping_struct, ptr %2871, i32 0, i32 5
  %2873 = load i32, ptr %2872, align 4, !tbaa !31
  %2874 = load i32, ptr %19, align 4, !tbaa !9
  %2875 = zext i32 %2874 to i64
  call void @libxsmm_x86_instruction_alu_imm(ptr noundef %2869, i32 noundef %2870, i32 noundef %2873, i64 noundef %2875)
  br label %2876

2876:                                             ; preds = %2868, %2844
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  ret void
}

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 52}
!12 = !{!"libxsmm_matequation_kernel_config_struct", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !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, !13, i64 876, !14, i64 1392}
!13 = !{!"libxsmm_mateltwise_kernel_config_struct", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !10, i64 80, !10, i64 84, !10, i64 88, !10, i64 92, !10, i64 96, !10, i64 100, !10, i64 104, !10, i64 108, !10, i64 112, !10, i64 116, !10, i64 120, !10, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148, !10, i64 152, !10, i64 156, !10, i64 160, !10, i64 164, !10, i64 168, !10, i64 172, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !10, i64 192, !10, i64 196, !10, i64 200, !10, i64 204, !10, i64 208, !10, i64 212, !10, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !10, i64 232, !10, i64 236, !10, i64 240, !10, i64 244, !10, i64 248, !10, i64 252, !10, i64 256, !10, i64 260, !10, i64 264, !10, i64 268, !10, i64 272, !10, i64 276, !10, i64 280, !10, i64 284, !10, i64 288, !10, i64 292, !10, i64 296, !10, i64 300, !10, i64 304, !10, i64 308, !10, i64 312, !10, i64 316, !10, i64 320, !10, i64 324, !10, i64 328, !10, i64 332, !10, i64 336, !10, i64 340, !10, i64 344, !10, i64 348, !10, i64 352, !10, i64 356, !10, i64 360, !10, i64 364, !10, i64 368, !10, i64 372, !10, i64 376, !10, i64 380, !10, i64 384, !10, i64 388, !10, i64 392, !10, i64 396, !10, i64 400, !10, i64 404, !10, i64 408, !10, i64 412, !10, i64 416, !10, i64 420, !10, i64 424, !10, i64 428, !10, i64 432, !10, i64 436, !10, i64 440, !10, i64 444, !10, i64 448, !10, i64 452, !10, i64 456, !10, i64 460, !10, i64 464, !10, i64 468, !10, i64 472, !10, i64 476, !10, i64 480, !10, i64 484, !10, i64 488, !10, i64 492, !10, i64 496, !10, i64 500, !10, i64 504, !10, i64 508, !7, i64 512}
!14 = !{!"libxsmm_micro_kernel_config", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !10, i64 80, !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, !15, i64 520, !10, i64 556, !10, i64 560, !10, i64 564, !10, i64 568, !10, i64 572, !10, i64 576, !10, i64 580, !10, i64 584, !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}
!15 = !{!"libxsmm_tile_config", !7, i64 0, !16, i64 2, !7, i64 4, !16, i64 6, !7, i64 8, !16, i64 10, !7, i64 12, !16, i64 14, !7, i64 16, !16, i64 18, !7, i64 20, !16, i64 22, !7, i64 24, !16, i64 26, !7, i64 28, !16, i64 30, !7, i64 32}
!16 = !{!"short", !7, i64 0}
!17 = !{!18, !7, i64 12}
!18 = !{!"libxsmm_meqn_descriptor", !10, i64 0, !10, i64 4, !10, i64 8, !7, i64 12, !10, i64 13}
!19 = !{!20, !10, i64 48}
!20 = !{!"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, !21, i64 72, !22, i64 220}
!21 = !{!"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}
!22 = !{!"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}
!23 = !{!20, !10, i64 52}
!24 = !{!7, !7, i64 0}
!25 = !{!12, !10, i64 184}
!26 = !{!12, !10, i64 40}
!27 = distinct !{!27, !28}
!28 = !{!"llvm.loop.mustprogress"}
!29 = !{!12, !10, i64 96}
!30 = !{!18, !10, i64 8}
!31 = !{!20, !10, i64 20}


; 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 [98 x i8], align 1
@__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr = external hidden unnamed_addr constant [243 x i8], align 1
@switch.table.libxsmm_generator_mateqn_adjust_args_addr.1 = private unnamed_addr constant [14 x i32] [i32 8, i32 4, i32 2, i32 2, i32 1, i32 1, i32 8, i32 8, i32 4, i32 4, i32 2, i32 2, i32 1, i32 1], align 4

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

declare void @libxsmm_generator_meqn_getaddr_stack_tmpaddr_i(ptr 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

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

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_mateqn_adjust_args_addr(ptr noundef %0, ptr nocapture noundef readonly %1, ptr nocapture noundef readonly %2, ptr nocapture noundef readonly %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, ptr nocapture noundef readonly %7) local_unnamed_addr #2 {
  %9 = getelementptr inbounds i8, ptr %3, i64 52
  %10 = load i32, ptr %9, align 4, !tbaa !5
  %11 = getelementptr inbounds i8, ptr %1, i64 12
  %12 = load i8, ptr %11, align 1, !tbaa !15
  %13 = icmp ult i8 %12, 16
  br i1 %13, label %14, label %16

14:                                               ; preds = %8
  %15 = icmp ult i8 %12, 14
  br i1 %15, label %switch.lookup, label %.thread732

16:                                               ; preds = %8
  %.mask = and i8 %12, -16
  %17 = icmp eq i8 %.mask, 16
  br i1 %17, label %.thread674, label %18

18:                                               ; preds = %16
  %19 = and i8 %12, -32
  %or.cond = icmp eq i8 %19, 32
  br i1 %or.cond, label %.thread674, label %20

20:                                               ; preds = %18
  %21 = and i8 %12, -32
  %or.cond750 = icmp eq i8 %21, 64
  br i1 %or.cond750, label %.thread674, label %22

22:                                               ; preds = %20
  %23 = and i8 %12, -32
  %or.cond751 = icmp eq i8 %23, 96
  br i1 %or.cond751, label %.thread674, label %24

24:                                               ; preds = %22
  %25 = and i8 %12, -32
  %or.cond752 = icmp eq i8 %25, -128
  br i1 %or.cond752, label %.thread674, label %26

26:                                               ; preds = %24
  %27 = and i8 %12, -32
  %or.cond753 = icmp eq i8 %27, -96
  br i1 %or.cond753, label %.thread674, label %28

28:                                               ; preds = %26
  %29 = and i8 %12, -32
  %or.cond754 = icmp eq i8 %29, -64
  br i1 %or.cond754, label %.thread674, label %.thread732

.thread732:                                       ; preds = %14, %28
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 257, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #3
  unreachable

switch.lookup:                                    ; preds = %14
  %30 = zext nneg i8 %12 to i64
  %switch.gep = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_adjust_args_addr.1, i64 0, i64 %30
  %switch.load = load i32, ptr %switch.gep, align 4
  br label %.thread674

.thread674:                                       ; preds = %switch.lookup, %16, %28, %26, %24, %22, %20, %18
  %31 = phi i32 [ 4, %16 ], [ 2, %18 ], [ 1, %20 ], [ 8, %22 ], [ 4, %24 ], [ 2, %26 ], [ 1, %28 ], [ %switch.load, %switch.lookup ]
  %32 = getelementptr inbounds i8, ptr %2, i64 48
  %33 = load i32, ptr %32, align 4, !tbaa !17
  %34 = getelementptr inbounds i8, ptr %2, i64 52
  %35 = load i32, ptr %34, align 4, !tbaa !21
  %.not758 = icmp eq i32 %10, 0
  br i1 %.not758, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.thread674
  %36 = getelementptr inbounds i8, ptr %3, i64 184
  %37 = getelementptr inbounds i8, ptr %3, i64 40
  %38 = getelementptr inbounds i8, ptr %3, i64 188
  %wide.trip.count = zext i32 %10 to i64
  br label %39

39:                                               ; preds = %.lr.ph, %.thread734
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %.thread734 ]
  %.0340756 = phi i32 [ 0, %.lr.ph ], [ %.1737, %.thread734 ]
  %40 = getelementptr inbounds %struct.libxsmm_meqn_arg, ptr %7, i64 %indvars.iv
  %41 = getelementptr inbounds i8, ptr %40, i64 20
  %42 = load i32, ptr %41, align 4, !tbaa !22
  %43 = icmp ult i32 %42, 14
  br i1 %43, label %switch.lookup760, label %44

44:                                               ; preds = %39
  tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 263, ptr noundef nonnull @__PRETTY_FUNCTION__.libxsmm_generator_mateqn_adjust_args_addr) #3
  unreachable

switch.lookup760:                                 ; preds = %39
  %45 = zext nneg i32 %42 to i64
  %switch.gep761 = getelementptr inbounds [14 x i32], ptr @switch.table.libxsmm_generator_mateqn_adjust_args_addr.1, i64 0, i64 %45
  %switch.load762 = load i32, ptr %switch.gep761, align 4
  switch i32 %6, label %64 [
    i32 0, label %46
    i32 1, label %51
  ]

46:                                               ; preds = %switch.lookup760
  %47 = getelementptr inbounds i8, ptr %40, i64 24
  %48 = load i32, ptr %47, align 4, !tbaa !22
  switch i32 %48, label %.thread734 [
    i32 0, label %49
    i32 2, label %49
  ]

49:                                               ; preds = %46, %46
  %50 = mul i32 %switch.load762, %5
  br label %64

51:                                               ; preds = %switch.lookup760
  %52 = getelementptr inbounds i8, ptr %40, i64 24
  %53 = load i32, ptr %52, align 4, !tbaa !22
  switch i32 %53, label %.thread734 [
    i32 0, label %54
    i32 1, label %59
  ]

54:                                               ; preds = %51
  %55 = getelementptr inbounds i8, ptr %40, i64 8
  %56 = load i32, ptr %55, align 4, !tbaa !22
  %57 = mul i32 %switch.load762, %5
  %58 = mul i32 %57, %56
  br label %64

59:                                               ; preds = %51
  %60 = getelementptr inbounds i8, ptr %40, i64 8
  %61 = load i32, ptr %60, align 4, !tbaa !22
  %62 = mul i32 %switch.load762, %5
  %63 = mul i32 %62, %61
  br label %64

64:                                               ; preds = %switch.lookup760, %59, %54, %49
  %.1 = phi i32 [ %50, %49 ], [ %58, %54 ], [ %63, %59 ], [ %.0340756, %switch.lookup760 ]
  %.not = icmp eq i32 %.1, 0
  br i1 %.not, label %.thread734, label %65

65:                                               ; preds = %64
  %66 = load i32, ptr %36, align 8, !tbaa !23
  %67 = zext i32 %66 to i64
  %68 = icmp ult i64 %indvars.iv, %67
  br i1 %68, label %69, label %73

69:                                               ; preds = %65
  %70 = getelementptr inbounds [32 x i32], ptr %38, i64 0, i64 %indvars.iv
  %71 = load i32, ptr %70, align 4, !tbaa !24
  %72 = zext i32 %.1 to i64
  tail call void @libxsmm_x86_instruction_alu_imm(ptr noundef %0, i32 noundef %4, i32 noundef %71, i64 noundef %72) #4
  br label %.thread734

73:                                               ; preds = %65
  %74 = trunc nuw i64 %indvars.iv to i32
  %75 = shl i32 %74, 3
  tail call void @libxsmm_generator_meqn_getaddr_stack_tmpaddr_i(ptr noundef %0, i32 noundef %75, i32 noundef %33) #4
  %76 = load i32, ptr %37, align 8, !tbaa !25
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef %0, i32 noundef %76, i32 noundef %33, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %35, i32 noundef 0) #4
  %77 = zext i32 %.1 to i64
  tail call void @libxsmm_x86_instruction_alu_imm(ptr noundef %0, i32 noundef %4, i32 noundef %35, i64 noundef %77) #4
  %78 = load i32, ptr %37, align 8, !tbaa !25
  tail call void @libxsmm_x86_instruction_alu_mem(ptr noundef %0, i32 noundef %78, i32 noundef %33, i32 noundef 127, i32 noundef 0, i32 noundef 0, i32 noundef %35, i32 noundef 1) #4
  br label %.thread734

.thread734:                                       ; preds = %51, %46, %69, %73, %64
  %.1737 = phi i32 [ %.1, %69 ], [ %.1, %73 ], [ 0, %64 ], [ 0, %46 ], [ 0, %51 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %39, !llvm.loop !26

._crit_edge:                                      ; preds = %.thread734, %.thread674
  %.0340.lcssa = phi i32 [ 0, %.thread674 ], [ %.1737, %.thread734 ]
  %79 = getelementptr inbounds i8, ptr %3, i64 96
  %80 = load i32, ptr %79, align 8, !tbaa !28
  %81 = icmp eq i32 %80, 0
  br i1 %81, label %82, label %94

82:                                               ; preds = %._crit_edge
  switch i32 %6, label %90 [
    i32 0, label %83
    i32 1, label %85
  ]

83:                                               ; preds = %82
  %84 = mul i32 %31, %5
  br label %90

85:                                               ; preds = %82
  %86 = getelementptr inbounds i8, ptr %1, i64 8
  %87 = load i32, ptr %86, align 1, !tbaa !29
  %88 = mul i32 %31, %5
  %89 = mul i32 %88, %87
  br label %90

90:                                               ; preds = %82, %85, %83
  %.2 = phi i32 [ %84, %83 ], [ %89, %85 ], [ %.0340.lcssa, %82 ]
  %91 = getelementptr inbounds i8, ptr %2, i64 20
  %92 = load i32, ptr %91, align 4, !tbaa !30
  %93 = zext i32 %.2 to i64
  tail call void @libxsmm_x86_instruction_alu_imm(ptr noundef %0, i32 noundef %4, i32 noundef %92, i64 noundef %93) #4
  br label %94

94:                                               ; preds = %90, %._crit_edge
  ret void
}

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 = { noreturn nounwind }
attributes #4 = { 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 52}
!6 = !{!"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, !10, i64 336, !10, i64 344, !7, i64 352, !7, i64 356, !7, i64 360, !8, i64 364, !8, i64 620, !11, i64 876, !12, i64 1392}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!"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}
!12 = !{!"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, !13, 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, !10, i64 592, !7, i64 600, !7, i64 604, !7, i64 608, !7, i64 612, !10, 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}
!13 = !{!"libxsmm_tile_config", !8, i64 0, !14, i64 2, !8, i64 4, !14, i64 6, !8, i64 8, !14, i64 10, !8, i64 12, !14, i64 14, !8, i64 16, !14, i64 18, !8, i64 20, !14, i64 22, !8, i64 24, !14, i64 26, !8, i64 28, !14, i64 30, !8, i64 32}
!14 = !{!"short", !8, i64 0}
!15 = !{!16, !8, i64 12}
!16 = !{!"libxsmm_meqn_descriptor", !7, i64 0, !7, i64 4, !7, i64 8, !8, i64 12, !7, i64 13}
!17 = !{!18, !7, i64 48}
!18 = !{!"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, !19, i64 72, !20, i64 220}
!19 = !{!"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}
!20 = !{!"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}
!21 = !{!18, !7, i64 52}
!22 = !{!8, !8, i64 0}
!23 = !{!6, !7, i64 184}
!24 = !{!7, !7, i64 0}
!25 = !{!6, !7, i64 40}
!26 = distinct !{!26, !27}
!27 = !{!"llvm.loop.mustprogress"}
!28 = !{!6, !7, i64 96}
!29 = !{!16, !7, i64 8}
!30 = !{!18, !7, i64 20}


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