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

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

%struct.libxsmm_generated_code = type { ptr, i32, i32, i32, i32, i32, i32 }
%struct.libxsmm_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_meltw_descriptor = type <{ i32, i32, i32, i32, i32, i32, i8, i8, i8, i16, i16, i8 }>

@.str = external hidden unnamed_addr constant [91 x i8], align 1
@libxsmm_ninit = external global i32, align 4
@libxsmm_verbosity = external global i32, align 4
@__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr = external hidden unnamed_addr constant [71 x i8], align 1

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

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

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #2

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr(ptr noundef %0, ptr noundef %1, ptr noundef %2) #2 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #3
  %14 = load ptr, ptr %6, align 8, !tbaa !5
  %15 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %14, i32 noundef 0)
  store i32 %15, ptr %7, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #3
  %16 = load ptr, ptr %6, align 8, !tbaa !5
  %17 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %16, i32 noundef 1)
  store i32 %17, ptr %8, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #3
  %18 = load ptr, ptr %6, align 8, !tbaa !5
  %19 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %18, i32 noundef 3)
  store i32 %19, ptr %9, align 4, !tbaa !9
  %20 = load ptr, ptr %4, align 8, !tbaa !5
  %21 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %20, i32 0, i32 6
  %22 = load i32, ptr %21, align 4, !tbaa !11
  %23 = icmp uge i32 %22, 1101
  br i1 %23, label %24, label %409

24:                                               ; preds = %3
  %25 = load ptr, ptr %4, align 8, !tbaa !5
  %26 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %25, i32 0, i32 6
  %27 = load i32, ptr %26, align 4, !tbaa !11
  %28 = icmp ule i32 %27, 1999
  br i1 %28, label %29, label %409

29:                                               ; preds = %24
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #3
  store i32 64, ptr %10, align 4, !tbaa !9
  %30 = load ptr, ptr %4, align 8, !tbaa !5
  %31 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %30, i32 0, i32 6
  %32 = load i32, ptr %31, align 4, !tbaa !11
  %33 = load ptr, ptr %5, align 8, !tbaa !5
  %34 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %33, i32 0, i32 0
  store i32 %32, ptr %34, align 4, !tbaa !13
  %35 = load ptr, ptr %5, align 8, !tbaa !5
  %36 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %35, i32 0, i32 1
  store i32 16, ptr %36, align 4, !tbaa !15
  %37 = load i32, ptr %7, align 4, !tbaa !9
  %38 = icmp eq i32 0, %37
  br i1 %38, label %42, label %39

39:                                               ; preds = %29
  %40 = load i32, ptr %7, align 4, !tbaa !9
  %41 = icmp eq i32 6, %40
  br i1 %41, label %42, label %47

42:                                               ; preds = %39, %29
  %43 = load ptr, ptr %5, align 8, !tbaa !5
  %44 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %43, i32 0, i32 2
  store i32 8, ptr %44, align 4, !tbaa !16
  %45 = load ptr, ptr %5, align 8, !tbaa !5
  %46 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %45, i32 0, i32 6
  store i32 545592848, ptr %46, align 4, !tbaa !17
  br label %113

47:                                               ; preds = %39
  %48 = load i32, ptr %7, align 4, !tbaa !9
  %49 = icmp eq i32 1, %48
  br i1 %49, label %56, label %50

50:                                               ; preds = %47
  %51 = load i32, ptr %7, align 4, !tbaa !9
  %52 = icmp eq i32 8, %51
  br i1 %52, label %56, label %53

53:                                               ; preds = %50
  %54 = load i32, ptr %7, align 4, !tbaa !9
  %55 = icmp eq i32 9, %54
  br i1 %55, label %56, label %61

56:                                               ; preds = %53, %50, %47
  %57 = load ptr, ptr %5, align 8, !tbaa !5
  %58 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %57, i32 0, i32 2
  store i32 4, ptr %58, align 4, !tbaa !16
  %59 = load ptr, ptr %5, align 8, !tbaa !5
  %60 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %59, i32 0, i32 6
  store i32 537138704, ptr %60, align 4, !tbaa !17
  br label %112

61:                                               ; preds = %53
  %62 = load i32, ptr %7, align 4, !tbaa !9
  %63 = icmp eq i32 2, %62
  br i1 %63, label %73, label %64

64:                                               ; preds = %61
  %65 = load i32, ptr %7, align 4, !tbaa !9
  %66 = icmp eq i32 10, %65
  br i1 %66, label %73, label %67

67:                                               ; preds = %64
  %68 = load i32, ptr %7, align 4, !tbaa !9
  %69 = icmp eq i32 11, %68
  br i1 %69, label %73, label %70

70:                                               ; preds = %67
  %71 = load i32, ptr %7, align 4, !tbaa !9
  %72 = icmp eq i32 3, %71
  br i1 %72, label %73, label %78

73:                                               ; preds = %70, %67, %64, %61
  %74 = load ptr, ptr %5, align 8, !tbaa !5
  %75 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %74, i32 0, i32 2
  store i32 2, ptr %75, align 4, !tbaa !16
  %76 = load ptr, ptr %5, align 8, !tbaa !5
  %77 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %76, i32 0, i32 6
  store i32 -528017809, ptr %77, align 4, !tbaa !17
  br label %111

78:                                               ; preds = %70
  %79 = load i32, ptr %7, align 4, !tbaa !9
  %80 = icmp eq i32 3, %79
  br i1 %80, label %81, label %86

81:                                               ; preds = %78
  %82 = load ptr, ptr %5, align 8, !tbaa !5
  %83 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %82, i32 0, i32 2
  store i32 2, ptr %83, align 4, !tbaa !16
  %84 = load ptr, ptr %5, align 8, !tbaa !5
  %85 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %84, i32 0, i32 6
  store i32 -528017809, ptr %85, align 4, !tbaa !17
  br label %110

86:                                               ; preds = %78
  %87 = load i32, ptr %7, align 4, !tbaa !9
  %88 = icmp eq i32 4, %87
  br i1 %88, label %95, label %89

89:                                               ; preds = %86
  %90 = load i32, ptr %7, align 4, !tbaa !9
  %91 = icmp eq i32 5, %90
  br i1 %91, label %95, label %92

92:                                               ; preds = %89
  %93 = load i32, ptr %7, align 4, !tbaa !9
  %94 = icmp eq i32 12, %93
  br i1 %94, label %95, label %100

95:                                               ; preds = %92, %89, %86
  %96 = load ptr, ptr %5, align 8, !tbaa !5
  %97 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %96, i32 0, i32 2
  store i32 1, ptr %97, align 4, !tbaa !16
  %98 = load ptr, ptr %5, align 8, !tbaa !5
  %99 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %98, i32 0, i32 6
  store i32 -536406417, ptr %99, align 4, !tbaa !17
  br label %109

100:                                              ; preds = %92
  %101 = load ptr, ptr %4, align 8, !tbaa !5
  %102 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %103 = icmp ult i32 1, %102
  br i1 %103, label %104, label %106

104:                                              ; preds = %100
  %105 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %107

106:                                              ; preds = %100
  br label %107

107:                                              ; preds = %106, %104
  %108 = phi i32 [ %105, %104 ], [ 1, %106 ]
  call void @libxsmm_handle_error(ptr noundef %101, i32 noundef 90033, ptr noundef @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef @.str, i32 noundef 357, i32 noundef %108)
  store i32 1, ptr %11, align 4
  br label %406

109:                                              ; preds = %95
  br label %110

110:                                              ; preds = %109, %81
  br label %111

111:                                              ; preds = %110, %73
  br label %112

112:                                              ; preds = %111, %56
  br label %113

113:                                              ; preds = %112, %42
  %114 = load ptr, ptr %6, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %114, i32 0, i32 11
  %116 = load i8, ptr %115, align 1, !tbaa !18
  %117 = zext i8 %116 to i32
  %118 = icmp eq i32 %117, 2
  br i1 %118, label %125, label %119

119:                                              ; preds = %113
  %120 = load ptr, ptr %6, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %120, i32 0, i32 11
  %122 = load i8, ptr %121, align 1, !tbaa !18
  %123 = zext i8 %122 to i32
  %124 = icmp eq i32 %123, 3
  br i1 %124, label %125, label %203

125:                                              ; preds = %119, %113
  %126 = load i32, ptr %8, align 4, !tbaa !9
  %127 = icmp eq i32 0, %126
  br i1 %127, label %131, label %128

128:                                              ; preds = %125
  %129 = load i32, ptr %8, align 4, !tbaa !9
  %130 = icmp eq i32 6, %129
  br i1 %130, label %131, label %136

131:                                              ; preds = %128, %125
  %132 = load ptr, ptr %5, align 8, !tbaa !5
  %133 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %132, i32 0, i32 3
  store i32 8, ptr %133, align 4, !tbaa !21
  %134 = load ptr, ptr %5, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %134, i32 0, i32 7
  store i32 545592848, ptr %135, align 4, !tbaa !22
  br label %202

136:                                              ; preds = %128
  %137 = load i32, ptr %8, align 4, !tbaa !9
  %138 = icmp eq i32 1, %137
  br i1 %138, label %145, label %139

139:                                              ; preds = %136
  %140 = load i32, ptr %8, align 4, !tbaa !9
  %141 = icmp eq i32 8, %140
  br i1 %141, label %145, label %142

142:                                              ; preds = %139
  %143 = load i32, ptr %8, align 4, !tbaa !9
  %144 = icmp eq i32 9, %143
  br i1 %144, label %145, label %150

145:                                              ; preds = %142, %139, %136
  %146 = load ptr, ptr %5, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %146, i32 0, i32 3
  store i32 4, ptr %147, align 4, !tbaa !21
  %148 = load ptr, ptr %5, align 8, !tbaa !5
  %149 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %148, i32 0, i32 7
  store i32 537138704, ptr %149, align 4, !tbaa !22
  br label %201

150:                                              ; preds = %142
  %151 = load i32, ptr %8, align 4, !tbaa !9
  %152 = icmp eq i32 2, %151
  br i1 %152, label %162, label %153

153:                                              ; preds = %150
  %154 = load i32, ptr %8, align 4, !tbaa !9
  %155 = icmp eq i32 10, %154
  br i1 %155, label %162, label %156

156:                                              ; preds = %153
  %157 = load i32, ptr %8, align 4, !tbaa !9
  %158 = icmp eq i32 11, %157
  br i1 %158, label %162, label %159

159:                                              ; preds = %156
  %160 = load i32, ptr %8, align 4, !tbaa !9
  %161 = icmp eq i32 3, %160
  br i1 %161, label %162, label %167

162:                                              ; preds = %159, %156, %153, %150
  %163 = load ptr, ptr %5, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %163, i32 0, i32 3
  store i32 2, ptr %164, align 4, !tbaa !21
  %165 = load ptr, ptr %5, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %165, i32 0, i32 7
  store i32 -528017809, ptr %166, align 4, !tbaa !22
  br label %200

167:                                              ; preds = %159
  %168 = load i32, ptr %8, align 4, !tbaa !9
  %169 = icmp eq i32 3, %168
  br i1 %169, label %170, label %175

170:                                              ; preds = %167
  %171 = load ptr, ptr %5, align 8, !tbaa !5
  %172 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %171, i32 0, i32 3
  store i32 2, ptr %172, align 4, !tbaa !21
  %173 = load ptr, ptr %5, align 8, !tbaa !5
  %174 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %173, i32 0, i32 7
  store i32 -528017809, ptr %174, align 4, !tbaa !22
  br label %199

175:                                              ; preds = %167
  %176 = load i32, ptr %8, align 4, !tbaa !9
  %177 = icmp eq i32 4, %176
  br i1 %177, label %184, label %178

178:                                              ; preds = %175
  %179 = load i32, ptr %8, align 4, !tbaa !9
  %180 = icmp eq i32 5, %179
  br i1 %180, label %184, label %181

181:                                              ; preds = %178
  %182 = load i32, ptr %8, align 4, !tbaa !9
  %183 = icmp eq i32 12, %182
  br i1 %183, label %184, label %189

184:                                              ; preds = %181, %178, %175
  %185 = load ptr, ptr %5, align 8, !tbaa !5
  %186 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %185, i32 0, i32 3
  store i32 1, ptr %186, align 4, !tbaa !21
  %187 = load ptr, ptr %5, align 8, !tbaa !5
  %188 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %187, i32 0, i32 7
  store i32 -536406417, ptr %188, align 4, !tbaa !22
  br label %198

189:                                              ; preds = %181
  %190 = load ptr, ptr %4, align 8, !tbaa !5
  %191 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %192 = icmp ult i32 1, %191
  br i1 %192, label %193, label %195

193:                                              ; preds = %189
  %194 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %196

195:                                              ; preds = %189
  br label %196

196:                                              ; preds = %195, %193
  %197 = phi i32 [ %194, %193 ], [ 1, %195 ]
  call void @libxsmm_handle_error(ptr noundef %190, i32 noundef 90033, ptr noundef @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef @.str, i32 noundef 379, i32 noundef %197)
  store i32 1, ptr %11, align 4
  br label %406

198:                                              ; preds = %184
  br label %199

199:                                              ; preds = %198, %170
  br label %200

200:                                              ; preds = %199, %162
  br label %201

201:                                              ; preds = %200, %145
  br label %202

202:                                              ; preds = %201, %131
  br label %203

203:                                              ; preds = %202, %119
  %204 = load ptr, ptr %6, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %204, i32 0, i32 11
  %206 = load i8, ptr %205, align 1, !tbaa !18
  %207 = zext i8 %206 to i32
  %208 = icmp eq i32 %207, 3
  br i1 %208, label %209, label %296

209:                                              ; preds = %203
  %210 = load ptr, ptr %6, align 8, !tbaa !5
  %211 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %210, i32 0, i32 10
  %212 = load i16, ptr %211, align 1, !tbaa !23
  %213 = zext i16 %212 to i32
  %214 = icmp eq i32 %213, 3
  br i1 %214, label %215, label %220

215:                                              ; preds = %209
  %216 = load ptr, ptr %5, align 8, !tbaa !5
  %217 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %216, i32 0, i32 4
  store i32 1, ptr %217, align 4, !tbaa !24
  %218 = load ptr, ptr %5, align 8, !tbaa !5
  %219 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %218, i32 0, i32 8
  store i32 -536406417, ptr %219, align 4, !tbaa !25
  br label %295

220:                                              ; preds = %209
  %221 = load i32, ptr %9, align 4, !tbaa !9
  %222 = icmp eq i32 0, %221
  br i1 %222, label %226, label %223

223:                                              ; preds = %220
  %224 = load i32, ptr %9, align 4, !tbaa !9
  %225 = icmp eq i32 6, %224
  br i1 %225, label %226, label %231

226:                                              ; preds = %223, %220
  %227 = load ptr, ptr %5, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %227, i32 0, i32 4
  store i32 8, ptr %228, align 4, !tbaa !24
  %229 = load ptr, ptr %5, align 8, !tbaa !5
  %230 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %229, i32 0, i32 8
  store i32 545592848, ptr %230, align 4, !tbaa !25
  br label %294

231:                                              ; preds = %223
  %232 = load i32, ptr %9, align 4, !tbaa !9
  %233 = icmp eq i32 1, %232
  br i1 %233, label %240, label %234

234:                                              ; preds = %231
  %235 = load i32, ptr %9, align 4, !tbaa !9
  %236 = icmp eq i32 8, %235
  br i1 %236, label %240, label %237

237:                                              ; preds = %234
  %238 = load i32, ptr %9, align 4, !tbaa !9
  %239 = icmp eq i32 9, %238
  br i1 %239, label %240, label %245

240:                                              ; preds = %237, %234, %231
  %241 = load ptr, ptr %5, align 8, !tbaa !5
  %242 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %241, i32 0, i32 4
  store i32 4, ptr %242, align 4, !tbaa !24
  %243 = load ptr, ptr %5, align 8, !tbaa !5
  %244 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %243, i32 0, i32 8
  store i32 537138704, ptr %244, align 4, !tbaa !25
  br label %293

245:                                              ; preds = %237
  %246 = load i32, ptr %9, align 4, !tbaa !9
  %247 = icmp eq i32 2, %246
  br i1 %247, label %257, label %248

248:                                              ; preds = %245
  %249 = load i32, ptr %9, align 4, !tbaa !9
  %250 = icmp eq i32 10, %249
  br i1 %250, label %257, label %251

251:                                              ; preds = %248
  %252 = load i32, ptr %9, align 4, !tbaa !9
  %253 = icmp eq i32 11, %252
  br i1 %253, label %257, label %254

254:                                              ; preds = %251
  %255 = load i32, ptr %9, align 4, !tbaa !9
  %256 = icmp eq i32 3, %255
  br i1 %256, label %257, label %262

257:                                              ; preds = %254, %251, %248, %245
  %258 = load ptr, ptr %5, align 8, !tbaa !5
  %259 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %258, i32 0, i32 4
  store i32 2, ptr %259, align 4, !tbaa !24
  %260 = load ptr, ptr %5, align 8, !tbaa !5
  %261 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %260, i32 0, i32 8
  store i32 -528017809, ptr %261, align 4, !tbaa !25
  br label %292

262:                                              ; preds = %254
  %263 = load i32, ptr %9, align 4, !tbaa !9
  %264 = icmp eq i32 3, %263
  br i1 %264, label %265, label %270

265:                                              ; preds = %262
  %266 = load ptr, ptr %5, align 8, !tbaa !5
  %267 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %266, i32 0, i32 4
  store i32 2, ptr %267, align 4, !tbaa !24
  %268 = load ptr, ptr %5, align 8, !tbaa !5
  %269 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %268, i32 0, i32 8
  store i32 -528017809, ptr %269, align 4, !tbaa !25
  br label %291

270:                                              ; preds = %262
  %271 = load i32, ptr %9, align 4, !tbaa !9
  %272 = icmp eq i32 4, %271
  br i1 %272, label %276, label %273

273:                                              ; preds = %270
  %274 = load i32, ptr %9, align 4, !tbaa !9
  %275 = icmp eq i32 12, %274
  br i1 %275, label %276, label %281

276:                                              ; preds = %273, %270
  %277 = load ptr, ptr %5, align 8, !tbaa !5
  %278 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %277, i32 0, i32 4
  store i32 1, ptr %278, align 4, !tbaa !24
  %279 = load ptr, ptr %5, align 8, !tbaa !5
  %280 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %279, i32 0, i32 8
  store i32 -536406417, ptr %280, align 4, !tbaa !25
  br label %290

281:                                              ; preds = %273
  %282 = load ptr, ptr %4, align 8, !tbaa !5
  %283 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %284 = icmp ult i32 1, %283
  br i1 %284, label %285, label %287

285:                                              ; preds = %281
  %286 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %288

287:                                              ; preds = %281
  br label %288

288:                                              ; preds = %287, %285
  %289 = phi i32 [ %286, %285 ], [ 1, %287 ]
  call void @libxsmm_handle_error(ptr noundef %282, i32 noundef 90033, ptr noundef @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef @.str, i32 noundef 406, i32 noundef %289)
  store i32 1, ptr %11, align 4
  br label %406

290:                                              ; preds = %276
  br label %291

291:                                              ; preds = %290, %265
  br label %292

292:                                              ; preds = %291, %257
  br label %293

293:                                              ; preds = %292, %240
  br label %294

294:                                              ; preds = %293, %226
  br label %295

295:                                              ; preds = %294, %215
  br label %296

296:                                              ; preds = %295, %203
  %297 = load i32, ptr %9, align 4, !tbaa !9
  %298 = icmp eq i32 0, %297
  br i1 %298, label %302, label %299

299:                                              ; preds = %296
  %300 = load i32, ptr %9, align 4, !tbaa !9
  %301 = icmp eq i32 6, %300
  br i1 %301, label %302, label %313

302:                                              ; preds = %299, %296
  %303 = load ptr, ptr %5, align 8, !tbaa !5
  %304 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %303, i32 0, i32 5
  store i32 8, ptr %304, align 4, !tbaa !26
  %305 = load ptr, ptr %6, align 8, !tbaa !5
  %306 = load i32, ptr %10, align 4, !tbaa !9
  %307 = load ptr, ptr %5, align 8, !tbaa !5
  %308 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %307, i32 0, i32 5
  %309 = load i32, ptr %308, align 4, !tbaa !26
  %310 = call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef %305, i32 noundef %306, i32 noundef %309, i32 noundef 545592848, i32 noundef 545592875)
  %311 = load ptr, ptr %5, align 8, !tbaa !5
  %312 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %311, i32 0, i32 9
  store i32 %310, ptr %312, align 4, !tbaa !27
  br label %391

313:                                              ; preds = %299
  %314 = load i32, ptr %9, align 4, !tbaa !9
  %315 = icmp eq i32 1, %314
  br i1 %315, label %322, label %316

316:                                              ; preds = %313
  %317 = load i32, ptr %9, align 4, !tbaa !9
  %318 = icmp eq i32 8, %317
  br i1 %318, label %322, label %319

319:                                              ; preds = %316
  %320 = load i32, ptr %9, align 4, !tbaa !9
  %321 = icmp eq i32 9, %320
  br i1 %321, label %322, label %333

322:                                              ; preds = %319, %316, %313
  %323 = load ptr, ptr %5, align 8, !tbaa !5
  %324 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %323, i32 0, i32 5
  store i32 4, ptr %324, align 4, !tbaa !26
  %325 = load ptr, ptr %6, align 8, !tbaa !5
  %326 = load i32, ptr %10, align 4, !tbaa !9
  %327 = load ptr, ptr %5, align 8, !tbaa !5
  %328 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %327, i32 0, i32 5
  %329 = load i32, ptr %328, align 4, !tbaa !26
  %330 = call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef %325, i32 noundef %326, i32 noundef %329, i32 noundef 537138704, i32 noundef 537138731)
  %331 = load ptr, ptr %5, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %331, i32 0, i32 9
  store i32 %330, ptr %332, align 4, !tbaa !27
  br label %390

333:                                              ; preds = %319
  %334 = load i32, ptr %9, align 4, !tbaa !9
  %335 = icmp eq i32 2, %334
  br i1 %335, label %345, label %336

336:                                              ; preds = %333
  %337 = load i32, ptr %9, align 4, !tbaa !9
  %338 = icmp eq i32 10, %337
  br i1 %338, label %345, label %339

339:                                              ; preds = %336
  %340 = load i32, ptr %9, align 4, !tbaa !9
  %341 = icmp eq i32 11, %340
  br i1 %341, label %345, label %342

342:                                              ; preds = %339
  %343 = load i32, ptr %9, align 4, !tbaa !9
  %344 = icmp eq i32 3, %343
  br i1 %344, label %345, label %356

345:                                              ; preds = %342, %339, %336, %333
  %346 = load ptr, ptr %5, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %346, i32 0, i32 5
  store i32 2, ptr %347, align 4, !tbaa !26
  %348 = load ptr, ptr %6, align 8, !tbaa !5
  %349 = load i32, ptr %10, align 4, !tbaa !9
  %350 = load ptr, ptr %5, align 8, !tbaa !5
  %351 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %350, i32 0, i32 5
  %352 = load i32, ptr %351, align 4, !tbaa !26
  %353 = call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef %348, i32 noundef %349, i32 noundef %352, i32 noundef -528017809, i32 noundef 537138731)
  %354 = load ptr, ptr %5, align 8, !tbaa !5
  %355 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %354, i32 0, i32 9
  store i32 %353, ptr %355, align 4, !tbaa !27
  br label %389

356:                                              ; preds = %342
  %357 = load i32, ptr %9, align 4, !tbaa !9
  %358 = icmp eq i32 4, %357
  br i1 %358, label %368, label %359

359:                                              ; preds = %356
  %360 = load i32, ptr %9, align 4, !tbaa !9
  %361 = icmp eq i32 5, %360
  br i1 %361, label %368, label %362

362:                                              ; preds = %359
  %363 = load i32, ptr %9, align 4, !tbaa !9
  %364 = icmp eq i32 12, %363
  br i1 %364, label %368, label %365

365:                                              ; preds = %362
  %366 = load i32, ptr %9, align 4, !tbaa !9
  %367 = icmp eq i32 14, %366
  br i1 %367, label %368, label %379

368:                                              ; preds = %365, %362, %359, %356
  %369 = load ptr, ptr %5, align 8, !tbaa !5
  %370 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %369, i32 0, i32 5
  store i32 1, ptr %370, align 4, !tbaa !26
  %371 = load ptr, ptr %6, align 8, !tbaa !5
  %372 = load i32, ptr %10, align 4, !tbaa !9
  %373 = load ptr, ptr %5, align 8, !tbaa !5
  %374 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %373, i32 0, i32 5
  %375 = load i32, ptr %374, align 4, !tbaa !26
  %376 = call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef %371, i32 noundef %372, i32 noundef %375, i32 noundef -536406417, i32 noundef 537138731)
  %377 = load ptr, ptr %5, align 8, !tbaa !5
  %378 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %377, i32 0, i32 9
  store i32 %376, ptr %378, align 4, !tbaa !27
  br label %388

379:                                              ; preds = %365
  %380 = load ptr, ptr %4, align 8, !tbaa !5
  %381 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %382 = icmp ult i32 1, %381
  br i1 %382, label %383, label %385

383:                                              ; preds = %379
  %384 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %386

385:                                              ; preds = %379
  br label %386

386:                                              ; preds = %385, %383
  %387 = phi i32 [ %384, %383 ], [ 1, %385 ]
  call void @libxsmm_handle_error(ptr noundef %380, i32 noundef 90033, ptr noundef @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef @.str, i32 noundef 430, i32 noundef %387)
  store i32 1, ptr %11, align 4
  br label %406

388:                                              ; preds = %368
  br label %389

389:                                              ; preds = %388, %345
  br label %390

390:                                              ; preds = %389, %322
  br label %391

391:                                              ; preds = %390, %302
  %392 = load ptr, ptr %5, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %392, i32 0, i32 10
  store i32 30000, ptr %393, align 4, !tbaa !28
  %394 = load ptr, ptr %5, align 8, !tbaa !5
  %395 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %394, i32 0, i32 11
  store i32 30008, ptr %395, align 4, !tbaa !29
  %396 = load ptr, ptr %5, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %396, i32 0, i32 12
  store i32 30002, ptr %397, align 4, !tbaa !30
  %398 = load ptr, ptr %5, align 8, !tbaa !5
  %399 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %398, i32 0, i32 13
  store i32 30100, ptr %399, align 4, !tbaa !31
  %400 = load ptr, ptr %5, align 8, !tbaa !5
  %401 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %400, i32 0, i32 14
  store i32 -1568407413, ptr %401, align 4, !tbaa !32
  %402 = load ptr, ptr %5, align 8, !tbaa !5
  %403 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %402, i32 0, i32 15
  store i32 805639919, ptr %403, align 4, !tbaa !33
  %404 = load ptr, ptr %5, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %404, i32 0, i32 128
  store i8 122, ptr %405, align 4, !tbaa !34
  store i32 0, ptr %11, align 4
  br label %406

406:                                              ; preds = %391, %386, %288, %196, %107
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #3
  %407 = load i32, ptr %11, align 4
  switch i32 %407, label %1493 [
    i32 0, label %408
  ]

408:                                              ; preds = %406
  br label %1492

409:                                              ; preds = %24, %3
  %410 = load ptr, ptr %4, align 8, !tbaa !5
  %411 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %410, i32 0, i32 6
  %412 = load i32, ptr %411, align 4, !tbaa !11
  %413 = icmp uge i32 %412, 1051
  br i1 %413, label %414, label %775

414:                                              ; preds = %409
  %415 = load ptr, ptr %4, align 8, !tbaa !5
  %416 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %415, i32 0, i32 6
  %417 = load i32, ptr %416, align 4, !tbaa !11
  %418 = icmp ult i32 %417, 1101
  br i1 %418, label %419, label %775

419:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #3
  store i32 32, ptr %12, align 4, !tbaa !9
  %420 = load ptr, ptr %4, align 8, !tbaa !5
  %421 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %420, i32 0, i32 6
  %422 = load i32, ptr %421, align 4, !tbaa !11
  %423 = load ptr, ptr %5, align 8, !tbaa !5
  %424 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %423, i32 0, i32 0
  store i32 %422, ptr %424, align 4, !tbaa !13
  %425 = load ptr, ptr %5, align 8, !tbaa !5
  %426 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %425, i32 0, i32 1
  store i32 32, ptr %426, align 4, !tbaa !15
  %427 = load i32, ptr %7, align 4, !tbaa !9
  %428 = icmp eq i32 0, %427
  br i1 %428, label %432, label %429

429:                                              ; preds = %419
  %430 = load i32, ptr %7, align 4, !tbaa !9
  %431 = icmp eq i32 6, %430
  br i1 %431, label %432, label %437

432:                                              ; preds = %429, %419
  %433 = load ptr, ptr %5, align 8, !tbaa !5
  %434 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %433, i32 0, i32 2
  store i32 8, ptr %434, align 4, !tbaa !16
  %435 = load ptr, ptr %5, align 8, !tbaa !5
  %436 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %435, i32 0, i32 6
  store i32 545592848, ptr %436, align 4, !tbaa !17
  br label %494

437:                                              ; preds = %429
  %438 = load i32, ptr %7, align 4, !tbaa !9
  %439 = icmp eq i32 1, %438
  br i1 %439, label %446, label %440

440:                                              ; preds = %437
  %441 = load i32, ptr %7, align 4, !tbaa !9
  %442 = icmp eq i32 8, %441
  br i1 %442, label %446, label %443

443:                                              ; preds = %440
  %444 = load i32, ptr %7, align 4, !tbaa !9
  %445 = icmp eq i32 9, %444
  br i1 %445, label %446, label %451

446:                                              ; preds = %443, %440, %437
  %447 = load ptr, ptr %5, align 8, !tbaa !5
  %448 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %447, i32 0, i32 2
  store i32 4, ptr %448, align 4, !tbaa !16
  %449 = load ptr, ptr %5, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %449, i32 0, i32 6
  store i32 537138704, ptr %450, align 4, !tbaa !17
  br label %493

451:                                              ; preds = %443
  %452 = load i32, ptr %7, align 4, !tbaa !9
  %453 = icmp eq i32 2, %452
  br i1 %453, label %463, label %454

454:                                              ; preds = %451
  %455 = load i32, ptr %7, align 4, !tbaa !9
  %456 = icmp eq i32 10, %455
  br i1 %456, label %463, label %457

457:                                              ; preds = %454
  %458 = load i32, ptr %7, align 4, !tbaa !9
  %459 = icmp eq i32 11, %458
  br i1 %459, label %463, label %460

460:                                              ; preds = %457
  %461 = load i32, ptr %7, align 4, !tbaa !9
  %462 = icmp eq i32 3, %461
  br i1 %462, label %463, label %468

463:                                              ; preds = %460, %457, %454, %451
  %464 = load ptr, ptr %5, align 8, !tbaa !5
  %465 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %464, i32 0, i32 2
  store i32 2, ptr %465, align 4, !tbaa !16
  %466 = load ptr, ptr %5, align 8, !tbaa !5
  %467 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %466, i32 0, i32 6
  store i32 -528017809, ptr %467, align 4, !tbaa !17
  br label %492

468:                                              ; preds = %460
  %469 = load i32, ptr %7, align 4, !tbaa !9
  %470 = icmp eq i32 4, %469
  br i1 %470, label %477, label %471

471:                                              ; preds = %468
  %472 = load i32, ptr %7, align 4, !tbaa !9
  %473 = icmp eq i32 5, %472
  br i1 %473, label %477, label %474

474:                                              ; preds = %471
  %475 = load i32, ptr %7, align 4, !tbaa !9
  %476 = icmp eq i32 12, %475
  br i1 %476, label %477, label %482

477:                                              ; preds = %474, %471, %468
  %478 = load ptr, ptr %5, align 8, !tbaa !5
  %479 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %478, i32 0, i32 2
  store i32 1, ptr %479, align 4, !tbaa !16
  %480 = load ptr, ptr %5, align 8, !tbaa !5
  %481 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %480, i32 0, i32 6
  store i32 -536406417, ptr %481, align 4, !tbaa !17
  br label %491

482:                                              ; preds = %474
  %483 = load ptr, ptr %4, align 8, !tbaa !5
  %484 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %485 = icmp ult i32 1, %484
  br i1 %485, label %486, label %488

486:                                              ; preds = %482
  %487 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %489

488:                                              ; preds = %482
  br label %489

489:                                              ; preds = %488, %486
  %490 = phi i32 [ %487, %486 ], [ 1, %488 ]
  call void @libxsmm_handle_error(ptr noundef %483, i32 noundef 90033, ptr noundef @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef @.str, i32 noundef 458, i32 noundef %490)
  store i32 1, ptr %11, align 4
  br label %772

491:                                              ; preds = %477
  br label %492

492:                                              ; preds = %491, %463
  br label %493

493:                                              ; preds = %492, %446
  br label %494

494:                                              ; preds = %493, %432
  %495 = load ptr, ptr %6, align 8, !tbaa !5
  %496 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %495, i32 0, i32 11
  %497 = load i8, ptr %496, align 1, !tbaa !18
  %498 = zext i8 %497 to i32
  %499 = icmp eq i32 %498, 2
  br i1 %499, label %506, label %500

500:                                              ; preds = %494
  %501 = load ptr, ptr %6, align 8, !tbaa !5
  %502 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %501, i32 0, i32 11
  %503 = load i8, ptr %502, align 1, !tbaa !18
  %504 = zext i8 %503 to i32
  %505 = icmp eq i32 %504, 3
  br i1 %505, label %506, label %575

506:                                              ; preds = %500, %494
  %507 = load i32, ptr %8, align 4, !tbaa !9
  %508 = icmp eq i32 0, %507
  br i1 %508, label %512, label %509

509:                                              ; preds = %506
  %510 = load i32, ptr %8, align 4, !tbaa !9
  %511 = icmp eq i32 6, %510
  br i1 %511, label %512, label %517

512:                                              ; preds = %509, %506
  %513 = load ptr, ptr %5, align 8, !tbaa !5
  %514 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %513, i32 0, i32 3
  store i32 8, ptr %514, align 4, !tbaa !21
  %515 = load ptr, ptr %5, align 8, !tbaa !5
  %516 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %515, i32 0, i32 7
  store i32 545592848, ptr %516, align 4, !tbaa !22
  br label %574

517:                                              ; preds = %509
  %518 = load i32, ptr %8, align 4, !tbaa !9
  %519 = icmp eq i32 1, %518
  br i1 %519, label %526, label %520

520:                                              ; preds = %517
  %521 = load i32, ptr %8, align 4, !tbaa !9
  %522 = icmp eq i32 8, %521
  br i1 %522, label %526, label %523

523:                                              ; preds = %520
  %524 = load i32, ptr %8, align 4, !tbaa !9
  %525 = icmp eq i32 9, %524
  br i1 %525, label %526, label %531

526:                                              ; preds = %523, %520, %517
  %527 = load ptr, ptr %5, align 8, !tbaa !5
  %528 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %527, i32 0, i32 3
  store i32 4, ptr %528, align 4, !tbaa !21
  %529 = load ptr, ptr %5, align 8, !tbaa !5
  %530 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %529, i32 0, i32 7
  store i32 537138704, ptr %530, align 4, !tbaa !22
  br label %573

531:                                              ; preds = %523
  %532 = load i32, ptr %8, align 4, !tbaa !9
  %533 = icmp eq i32 2, %532
  br i1 %533, label %543, label %534

534:                                              ; preds = %531
  %535 = load i32, ptr %8, align 4, !tbaa !9
  %536 = icmp eq i32 10, %535
  br i1 %536, label %543, label %537

537:                                              ; preds = %534
  %538 = load i32, ptr %8, align 4, !tbaa !9
  %539 = icmp eq i32 11, %538
  br i1 %539, label %543, label %540

540:                                              ; preds = %537
  %541 = load i32, ptr %8, align 4, !tbaa !9
  %542 = icmp eq i32 3, %541
  br i1 %542, label %543, label %548

543:                                              ; preds = %540, %537, %534, %531
  %544 = load ptr, ptr %5, align 8, !tbaa !5
  %545 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %544, i32 0, i32 3
  store i32 2, ptr %545, align 4, !tbaa !21
  %546 = load ptr, ptr %5, align 8, !tbaa !5
  %547 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %546, i32 0, i32 7
  store i32 -528017809, ptr %547, align 4, !tbaa !22
  br label %572

548:                                              ; preds = %540
  %549 = load i32, ptr %8, align 4, !tbaa !9
  %550 = icmp eq i32 4, %549
  br i1 %550, label %557, label %551

551:                                              ; preds = %548
  %552 = load i32, ptr %8, align 4, !tbaa !9
  %553 = icmp eq i32 5, %552
  br i1 %553, label %557, label %554

554:                                              ; preds = %551
  %555 = load i32, ptr %8, align 4, !tbaa !9
  %556 = icmp eq i32 12, %555
  br i1 %556, label %557, label %562

557:                                              ; preds = %554, %551, %548
  %558 = load ptr, ptr %5, align 8, !tbaa !5
  %559 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %558, i32 0, i32 3
  store i32 1, ptr %559, align 4, !tbaa !21
  %560 = load ptr, ptr %5, align 8, !tbaa !5
  %561 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %560, i32 0, i32 7
  store i32 -536406417, ptr %561, align 4, !tbaa !22
  br label %571

562:                                              ; preds = %554
  %563 = load ptr, ptr %4, align 8, !tbaa !5
  %564 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %565 = icmp ult i32 1, %564
  br i1 %565, label %566, label %568

566:                                              ; preds = %562
  %567 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %569

568:                                              ; preds = %562
  br label %569

569:                                              ; preds = %568, %566
  %570 = phi i32 [ %567, %566 ], [ 1, %568 ]
  call void @libxsmm_handle_error(ptr noundef %563, i32 noundef 90033, ptr noundef @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef @.str, i32 noundef 477, i32 noundef %570)
  store i32 1, ptr %11, align 4
  br label %772

571:                                              ; preds = %557
  br label %572

572:                                              ; preds = %571, %543
  br label %573

573:                                              ; preds = %572, %526
  br label %574

574:                                              ; preds = %573, %512
  br label %575

575:                                              ; preds = %574, %500
  %576 = load ptr, ptr %6, align 8, !tbaa !5
  %577 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %576, i32 0, i32 11
  %578 = load i8, ptr %577, align 1, !tbaa !18
  %579 = zext i8 %578 to i32
  %580 = icmp eq i32 %579, 3
  br i1 %580, label %581, label %662

581:                                              ; preds = %575
  %582 = load ptr, ptr %6, align 8, !tbaa !5
  %583 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %582, i32 0, i32 10
  %584 = load i16, ptr %583, align 1, !tbaa !23
  %585 = zext i16 %584 to i32
  %586 = icmp eq i32 %585, 3
  br i1 %586, label %587, label %592

587:                                              ; preds = %581
  %588 = load ptr, ptr %5, align 8, !tbaa !5
  %589 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %588, i32 0, i32 4
  store i32 1, ptr %589, align 4, !tbaa !24
  %590 = load ptr, ptr %5, align 8, !tbaa !5
  %591 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %590, i32 0, i32 8
  store i32 -536406417, ptr %591, align 4, !tbaa !25
  br label %661

592:                                              ; preds = %581
  %593 = load i32, ptr %9, align 4, !tbaa !9
  %594 = icmp eq i32 0, %593
  br i1 %594, label %598, label %595

595:                                              ; preds = %592
  %596 = load i32, ptr %9, align 4, !tbaa !9
  %597 = icmp eq i32 6, %596
  br i1 %597, label %598, label %603

598:                                              ; preds = %595, %592
  %599 = load ptr, ptr %5, align 8, !tbaa !5
  %600 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %599, i32 0, i32 4
  store i32 8, ptr %600, align 4, !tbaa !24
  %601 = load ptr, ptr %5, align 8, !tbaa !5
  %602 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %601, i32 0, i32 8
  store i32 545592848, ptr %602, align 4, !tbaa !25
  br label %660

603:                                              ; preds = %595
  %604 = load i32, ptr %9, align 4, !tbaa !9
  %605 = icmp eq i32 1, %604
  br i1 %605, label %612, label %606

606:                                              ; preds = %603
  %607 = load i32, ptr %9, align 4, !tbaa !9
  %608 = icmp eq i32 8, %607
  br i1 %608, label %612, label %609

609:                                              ; preds = %606
  %610 = load i32, ptr %9, align 4, !tbaa !9
  %611 = icmp eq i32 9, %610
  br i1 %611, label %612, label %617

612:                                              ; preds = %609, %606, %603
  %613 = load ptr, ptr %5, align 8, !tbaa !5
  %614 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %613, i32 0, i32 4
  store i32 4, ptr %614, align 4, !tbaa !24
  %615 = load ptr, ptr %5, align 8, !tbaa !5
  %616 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %615, i32 0, i32 8
  store i32 537138704, ptr %616, align 4, !tbaa !25
  br label %659

617:                                              ; preds = %609
  %618 = load i32, ptr %9, align 4, !tbaa !9
  %619 = icmp eq i32 2, %618
  br i1 %619, label %629, label %620

620:                                              ; preds = %617
  %621 = load i32, ptr %9, align 4, !tbaa !9
  %622 = icmp eq i32 10, %621
  br i1 %622, label %629, label %623

623:                                              ; preds = %620
  %624 = load i32, ptr %9, align 4, !tbaa !9
  %625 = icmp eq i32 11, %624
  br i1 %625, label %629, label %626

626:                                              ; preds = %623
  %627 = load i32, ptr %9, align 4, !tbaa !9
  %628 = icmp eq i32 3, %627
  br i1 %628, label %629, label %634

629:                                              ; preds = %626, %623, %620, %617
  %630 = load ptr, ptr %5, align 8, !tbaa !5
  %631 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %630, i32 0, i32 4
  store i32 2, ptr %631, align 4, !tbaa !24
  %632 = load ptr, ptr %5, align 8, !tbaa !5
  %633 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %632, i32 0, i32 8
  store i32 -528017809, ptr %633, align 4, !tbaa !25
  br label %658

634:                                              ; preds = %626
  %635 = load i32, ptr %9, align 4, !tbaa !9
  %636 = icmp eq i32 4, %635
  br i1 %636, label %643, label %637

637:                                              ; preds = %634
  %638 = load i32, ptr %9, align 4, !tbaa !9
  %639 = icmp eq i32 5, %638
  br i1 %639, label %643, label %640

640:                                              ; preds = %637
  %641 = load i32, ptr %9, align 4, !tbaa !9
  %642 = icmp eq i32 12, %641
  br i1 %642, label %643, label %648

643:                                              ; preds = %640, %637, %634
  %644 = load ptr, ptr %5, align 8, !tbaa !5
  %645 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %644, i32 0, i32 4
  store i32 1, ptr %645, align 4, !tbaa !24
  %646 = load ptr, ptr %5, align 8, !tbaa !5
  %647 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %646, i32 0, i32 8
  store i32 -536406417, ptr %647, align 4, !tbaa !25
  br label %657

648:                                              ; preds = %640
  %649 = load ptr, ptr %4, align 8, !tbaa !5
  %650 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %651 = icmp ult i32 1, %650
  br i1 %651, label %652, label %654

652:                                              ; preds = %648
  %653 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %655

654:                                              ; preds = %648
  br label %655

655:                                              ; preds = %654, %652
  %656 = phi i32 [ %653, %652 ], [ 1, %654 ]
  call void @libxsmm_handle_error(ptr noundef %649, i32 noundef 90033, ptr noundef @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef @.str, i32 noundef 501, i32 noundef %656)
  store i32 1, ptr %11, align 4
  br label %772

657:                                              ; preds = %643
  br label %658

658:                                              ; preds = %657, %629
  br label %659

659:                                              ; preds = %658, %612
  br label %660

660:                                              ; preds = %659, %598
  br label %661

661:                                              ; preds = %660, %587
  br label %662

662:                                              ; preds = %661, %575
  %663 = load i32, ptr %9, align 4, !tbaa !9
  %664 = icmp eq i32 0, %663
  br i1 %664, label %668, label %665

665:                                              ; preds = %662
  %666 = load i32, ptr %9, align 4, !tbaa !9
  %667 = icmp eq i32 6, %666
  br i1 %667, label %668, label %679

668:                                              ; preds = %665, %662
  %669 = load ptr, ptr %5, align 8, !tbaa !5
  %670 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %669, i32 0, i32 5
  store i32 8, ptr %670, align 4, !tbaa !26
  %671 = load ptr, ptr %6, align 8, !tbaa !5
  %672 = load i32, ptr %12, align 4, !tbaa !9
  %673 = load ptr, ptr %5, align 8, !tbaa !5
  %674 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %673, i32 0, i32 5
  %675 = load i32, ptr %674, align 4, !tbaa !26
  %676 = call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef %671, i32 noundef %672, i32 noundef %675, i32 noundef 545592848, i32 noundef 545592875)
  %677 = load ptr, ptr %5, align 8, !tbaa !5
  %678 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %677, i32 0, i32 9
  store i32 %676, ptr %678, align 4, !tbaa !27
  br label %757

679:                                              ; preds = %665
  %680 = load i32, ptr %9, align 4, !tbaa !9
  %681 = icmp eq i32 1, %680
  br i1 %681, label %688, label %682

682:                                              ; preds = %679
  %683 = load i32, ptr %9, align 4, !tbaa !9
  %684 = icmp eq i32 8, %683
  br i1 %684, label %688, label %685

685:                                              ; preds = %682
  %686 = load i32, ptr %9, align 4, !tbaa !9
  %687 = icmp eq i32 9, %686
  br i1 %687, label %688, label %699

688:                                              ; preds = %685, %682, %679
  %689 = load ptr, ptr %5, align 8, !tbaa !5
  %690 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %689, i32 0, i32 5
  store i32 4, ptr %690, align 4, !tbaa !26
  %691 = load ptr, ptr %6, align 8, !tbaa !5
  %692 = load i32, ptr %12, align 4, !tbaa !9
  %693 = load ptr, ptr %5, align 8, !tbaa !5
  %694 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %693, i32 0, i32 5
  %695 = load i32, ptr %694, align 4, !tbaa !26
  %696 = call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef %691, i32 noundef %692, i32 noundef %695, i32 noundef 537138704, i32 noundef 537138731)
  %697 = load ptr, ptr %5, align 8, !tbaa !5
  %698 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %697, i32 0, i32 9
  store i32 %696, ptr %698, align 4, !tbaa !27
  br label %756

699:                                              ; preds = %685
  %700 = load i32, ptr %9, align 4, !tbaa !9
  %701 = icmp eq i32 2, %700
  br i1 %701, label %711, label %702

702:                                              ; preds = %699
  %703 = load i32, ptr %9, align 4, !tbaa !9
  %704 = icmp eq i32 10, %703
  br i1 %704, label %711, label %705

705:                                              ; preds = %702
  %706 = load i32, ptr %9, align 4, !tbaa !9
  %707 = icmp eq i32 11, %706
  br i1 %707, label %711, label %708

708:                                              ; preds = %705
  %709 = load i32, ptr %9, align 4, !tbaa !9
  %710 = icmp eq i32 3, %709
  br i1 %710, label %711, label %722

711:                                              ; preds = %708, %705, %702, %699
  %712 = load ptr, ptr %5, align 8, !tbaa !5
  %713 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %712, i32 0, i32 5
  store i32 2, ptr %713, align 4, !tbaa !26
  %714 = load ptr, ptr %6, align 8, !tbaa !5
  %715 = load i32, ptr %12, align 4, !tbaa !9
  %716 = load ptr, ptr %5, align 8, !tbaa !5
  %717 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %716, i32 0, i32 5
  %718 = load i32, ptr %717, align 4, !tbaa !26
  %719 = call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef %714, i32 noundef %715, i32 noundef %718, i32 noundef -528017809, i32 noundef 537138731)
  %720 = load ptr, ptr %5, align 8, !tbaa !5
  %721 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %720, i32 0, i32 9
  store i32 %719, ptr %721, align 4, !tbaa !27
  br label %755

722:                                              ; preds = %708
  %723 = load i32, ptr %9, align 4, !tbaa !9
  %724 = icmp eq i32 4, %723
  br i1 %724, label %734, label %725

725:                                              ; preds = %722
  %726 = load i32, ptr %9, align 4, !tbaa !9
  %727 = icmp eq i32 5, %726
  br i1 %727, label %734, label %728

728:                                              ; preds = %725
  %729 = load i32, ptr %9, align 4, !tbaa !9
  %730 = icmp eq i32 12, %729
  br i1 %730, label %734, label %731

731:                                              ; preds = %728
  %732 = load i32, ptr %9, align 4, !tbaa !9
  %733 = icmp eq i32 14, %732
  br i1 %733, label %734, label %745

734:                                              ; preds = %731, %728, %725, %722
  %735 = load ptr, ptr %5, align 8, !tbaa !5
  %736 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %735, i32 0, i32 5
  store i32 1, ptr %736, align 4, !tbaa !26
  %737 = load ptr, ptr %6, align 8, !tbaa !5
  %738 = load i32, ptr %12, align 4, !tbaa !9
  %739 = load ptr, ptr %5, align 8, !tbaa !5
  %740 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %739, i32 0, i32 5
  %741 = load i32, ptr %740, align 4, !tbaa !26
  %742 = call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef %737, i32 noundef %738, i32 noundef %741, i32 noundef -536406417, i32 noundef 537138731)
  %743 = load ptr, ptr %5, align 8, !tbaa !5
  %744 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %743, i32 0, i32 9
  store i32 %742, ptr %744, align 4, !tbaa !27
  br label %754

745:                                              ; preds = %731
  %746 = load ptr, ptr %4, align 8, !tbaa !5
  %747 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %748 = icmp ult i32 1, %747
  br i1 %748, label %749, label %751

749:                                              ; preds = %745
  %750 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %752

751:                                              ; preds = %745
  br label %752

752:                                              ; preds = %751, %749
  %753 = phi i32 [ %750, %749 ], [ 1, %751 ]
  call void @libxsmm_handle_error(ptr noundef %746, i32 noundef 90033, ptr noundef @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef @.str, i32 noundef 524, i32 noundef %753)
  store i32 1, ptr %11, align 4
  br label %772

754:                                              ; preds = %734
  br label %755

755:                                              ; preds = %754, %711
  br label %756

756:                                              ; preds = %755, %688
  br label %757

757:                                              ; preds = %756, %668
  %758 = load ptr, ptr %5, align 8, !tbaa !5
  %759 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %758, i32 0, i32 10
  store i32 30000, ptr %759, align 4, !tbaa !28
  %760 = load ptr, ptr %5, align 8, !tbaa !5
  %761 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %760, i32 0, i32 11
  store i32 30008, ptr %761, align 4, !tbaa !29
  %762 = load ptr, ptr %5, align 8, !tbaa !5
  %763 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %762, i32 0, i32 12
  store i32 30002, ptr %763, align 4, !tbaa !30
  %764 = load ptr, ptr %5, align 8, !tbaa !5
  %765 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %764, i32 0, i32 13
  store i32 30100, ptr %765, align 4, !tbaa !31
  %766 = load ptr, ptr %5, align 8, !tbaa !5
  %767 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %766, i32 0, i32 14
  store i32 -1568407413, ptr %767, align 4, !tbaa !32
  %768 = load ptr, ptr %5, align 8, !tbaa !5
  %769 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %768, i32 0, i32 15
  store i32 805639919, ptr %769, align 4, !tbaa !33
  %770 = load ptr, ptr %5, align 8, !tbaa !5
  %771 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %770, i32 0, i32 128
  store i8 121, ptr %771, align 4, !tbaa !34
  store i32 0, ptr %11, align 4
  br label %772

772:                                              ; preds = %757, %752, %655, %569, %489
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #3
  %773 = load i32, ptr %11, align 4
  switch i32 %773, label %1493 [
    i32 0, label %774
  ]

774:                                              ; preds = %772
  br label %1491

775:                                              ; preds = %414, %409
  %776 = load ptr, ptr %4, align 8, !tbaa !5
  %777 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %776, i32 0, i32 6
  %778 = load i32, ptr %777, align 4, !tbaa !11
  %779 = icmp uge i32 %778, 1005
  br i1 %779, label %780, label %1141

780:                                              ; preds = %775
  %781 = load ptr, ptr %4, align 8, !tbaa !5
  %782 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %781, i32 0, i32 6
  %783 = load i32, ptr %782, align 4, !tbaa !11
  %784 = icmp ult i32 %783, 1051
  br i1 %784, label %785, label %1141

785:                                              ; preds = %780
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #3
  store i32 32, ptr %13, align 4, !tbaa !9
  %786 = load ptr, ptr %4, align 8, !tbaa !5
  %787 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %786, i32 0, i32 6
  %788 = load i32, ptr %787, align 4, !tbaa !11
  %789 = load ptr, ptr %5, align 8, !tbaa !5
  %790 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %789, i32 0, i32 0
  store i32 %788, ptr %790, align 4, !tbaa !13
  %791 = load ptr, ptr %5, align 8, !tbaa !5
  %792 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %791, i32 0, i32 1
  store i32 16, ptr %792, align 4, !tbaa !15
  %793 = load i32, ptr %7, align 4, !tbaa !9
  %794 = icmp eq i32 0, %793
  br i1 %794, label %798, label %795

795:                                              ; preds = %785
  %796 = load i32, ptr %7, align 4, !tbaa !9
  %797 = icmp eq i32 6, %796
  br i1 %797, label %798, label %803

798:                                              ; preds = %795, %785
  %799 = load ptr, ptr %5, align 8, !tbaa !5
  %800 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %799, i32 0, i32 2
  store i32 8, ptr %800, align 4, !tbaa !16
  %801 = load ptr, ptr %5, align 8, !tbaa !5
  %802 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %801, i32 0, i32 6
  store i32 545592848, ptr %802, align 4, !tbaa !17
  br label %860

803:                                              ; preds = %795
  %804 = load i32, ptr %7, align 4, !tbaa !9
  %805 = icmp eq i32 1, %804
  br i1 %805, label %812, label %806

806:                                              ; preds = %803
  %807 = load i32, ptr %7, align 4, !tbaa !9
  %808 = icmp eq i32 8, %807
  br i1 %808, label %812, label %809

809:                                              ; preds = %806
  %810 = load i32, ptr %7, align 4, !tbaa !9
  %811 = icmp eq i32 9, %810
  br i1 %811, label %812, label %817

812:                                              ; preds = %809, %806, %803
  %813 = load ptr, ptr %5, align 8, !tbaa !5
  %814 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %813, i32 0, i32 2
  store i32 4, ptr %814, align 4, !tbaa !16
  %815 = load ptr, ptr %5, align 8, !tbaa !5
  %816 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %815, i32 0, i32 6
  store i32 537138704, ptr %816, align 4, !tbaa !17
  br label %859

817:                                              ; preds = %809
  %818 = load i32, ptr %7, align 4, !tbaa !9
  %819 = icmp eq i32 2, %818
  br i1 %819, label %829, label %820

820:                                              ; preds = %817
  %821 = load i32, ptr %7, align 4, !tbaa !9
  %822 = icmp eq i32 10, %821
  br i1 %822, label %829, label %823

823:                                              ; preds = %820
  %824 = load i32, ptr %7, align 4, !tbaa !9
  %825 = icmp eq i32 11, %824
  br i1 %825, label %829, label %826

826:                                              ; preds = %823
  %827 = load i32, ptr %7, align 4, !tbaa !9
  %828 = icmp eq i32 3, %827
  br i1 %828, label %829, label %834

829:                                              ; preds = %826, %823, %820, %817
  %830 = load ptr, ptr %5, align 8, !tbaa !5
  %831 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %830, i32 0, i32 2
  store i32 2, ptr %831, align 4, !tbaa !16
  %832 = load ptr, ptr %5, align 8, !tbaa !5
  %833 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %832, i32 0, i32 6
  store i32 -528017809, ptr %833, align 4, !tbaa !17
  br label %858

834:                                              ; preds = %826
  %835 = load i32, ptr %7, align 4, !tbaa !9
  %836 = icmp eq i32 4, %835
  br i1 %836, label %843, label %837

837:                                              ; preds = %834
  %838 = load i32, ptr %7, align 4, !tbaa !9
  %839 = icmp eq i32 5, %838
  br i1 %839, label %843, label %840

840:                                              ; preds = %837
  %841 = load i32, ptr %7, align 4, !tbaa !9
  %842 = icmp eq i32 12, %841
  br i1 %842, label %843, label %848

843:                                              ; preds = %840, %837, %834
  %844 = load ptr, ptr %5, align 8, !tbaa !5
  %845 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %844, i32 0, i32 2
  store i32 1, ptr %845, align 4, !tbaa !16
  %846 = load ptr, ptr %5, align 8, !tbaa !5
  %847 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %846, i32 0, i32 6
  store i32 -536406417, ptr %847, align 4, !tbaa !17
  br label %857

848:                                              ; preds = %840
  %849 = load ptr, ptr %4, align 8, !tbaa !5
  %850 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %851 = icmp ult i32 1, %850
  br i1 %851, label %852, label %854

852:                                              ; preds = %848
  %853 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %855

854:                                              ; preds = %848
  br label %855

855:                                              ; preds = %854, %852
  %856 = phi i32 [ %853, %852 ], [ 1, %854 ]
  call void @libxsmm_handle_error(ptr noundef %849, i32 noundef 90033, ptr noundef @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef @.str, i32 noundef 552, i32 noundef %856)
  store i32 1, ptr %11, align 4
  br label %1138

857:                                              ; preds = %843
  br label %858

858:                                              ; preds = %857, %829
  br label %859

859:                                              ; preds = %858, %812
  br label %860

860:                                              ; preds = %859, %798
  %861 = load ptr, ptr %6, align 8, !tbaa !5
  %862 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %861, i32 0, i32 11
  %863 = load i8, ptr %862, align 1, !tbaa !18
  %864 = zext i8 %863 to i32
  %865 = icmp eq i32 %864, 2
  br i1 %865, label %872, label %866

866:                                              ; preds = %860
  %867 = load ptr, ptr %6, align 8, !tbaa !5
  %868 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %867, i32 0, i32 11
  %869 = load i8, ptr %868, align 1, !tbaa !18
  %870 = zext i8 %869 to i32
  %871 = icmp eq i32 %870, 3
  br i1 %871, label %872, label %941

872:                                              ; preds = %866, %860
  %873 = load i32, ptr %8, align 4, !tbaa !9
  %874 = icmp eq i32 0, %873
  br i1 %874, label %878, label %875

875:                                              ; preds = %872
  %876 = load i32, ptr %8, align 4, !tbaa !9
  %877 = icmp eq i32 6, %876
  br i1 %877, label %878, label %883

878:                                              ; preds = %875, %872
  %879 = load ptr, ptr %5, align 8, !tbaa !5
  %880 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %879, i32 0, i32 3
  store i32 8, ptr %880, align 4, !tbaa !21
  %881 = load ptr, ptr %5, align 8, !tbaa !5
  %882 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %881, i32 0, i32 7
  store i32 545592848, ptr %882, align 4, !tbaa !22
  br label %940

883:                                              ; preds = %875
  %884 = load i32, ptr %8, align 4, !tbaa !9
  %885 = icmp eq i32 1, %884
  br i1 %885, label %892, label %886

886:                                              ; preds = %883
  %887 = load i32, ptr %8, align 4, !tbaa !9
  %888 = icmp eq i32 8, %887
  br i1 %888, label %892, label %889

889:                                              ; preds = %886
  %890 = load i32, ptr %8, align 4, !tbaa !9
  %891 = icmp eq i32 9, %890
  br i1 %891, label %892, label %897

892:                                              ; preds = %889, %886, %883
  %893 = load ptr, ptr %5, align 8, !tbaa !5
  %894 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %893, i32 0, i32 3
  store i32 4, ptr %894, align 4, !tbaa !21
  %895 = load ptr, ptr %5, align 8, !tbaa !5
  %896 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %895, i32 0, i32 7
  store i32 537138704, ptr %896, align 4, !tbaa !22
  br label %939

897:                                              ; preds = %889
  %898 = load i32, ptr %8, align 4, !tbaa !9
  %899 = icmp eq i32 2, %898
  br i1 %899, label %909, label %900

900:                                              ; preds = %897
  %901 = load i32, ptr %8, align 4, !tbaa !9
  %902 = icmp eq i32 10, %901
  br i1 %902, label %909, label %903

903:                                              ; preds = %900
  %904 = load i32, ptr %8, align 4, !tbaa !9
  %905 = icmp eq i32 11, %904
  br i1 %905, label %909, label %906

906:                                              ; preds = %903
  %907 = load i32, ptr %8, align 4, !tbaa !9
  %908 = icmp eq i32 3, %907
  br i1 %908, label %909, label %914

909:                                              ; preds = %906, %903, %900, %897
  %910 = load ptr, ptr %5, align 8, !tbaa !5
  %911 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %910, i32 0, i32 3
  store i32 2, ptr %911, align 4, !tbaa !21
  %912 = load ptr, ptr %5, align 8, !tbaa !5
  %913 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %912, i32 0, i32 7
  store i32 -528017809, ptr %913, align 4, !tbaa !22
  br label %938

914:                                              ; preds = %906
  %915 = load i32, ptr %8, align 4, !tbaa !9
  %916 = icmp eq i32 4, %915
  br i1 %916, label %923, label %917

917:                                              ; preds = %914
  %918 = load i32, ptr %8, align 4, !tbaa !9
  %919 = icmp eq i32 5, %918
  br i1 %919, label %923, label %920

920:                                              ; preds = %917
  %921 = load i32, ptr %8, align 4, !tbaa !9
  %922 = icmp eq i32 12, %921
  br i1 %922, label %923, label %928

923:                                              ; preds = %920, %917, %914
  %924 = load ptr, ptr %5, align 8, !tbaa !5
  %925 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %924, i32 0, i32 3
  store i32 1, ptr %925, align 4, !tbaa !21
  %926 = load ptr, ptr %5, align 8, !tbaa !5
  %927 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %926, i32 0, i32 7
  store i32 9999, ptr %927, align 4, !tbaa !22
  br label %937

928:                                              ; preds = %920
  %929 = load ptr, ptr %4, align 8, !tbaa !5
  %930 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %931 = icmp ult i32 1, %930
  br i1 %931, label %932, label %934

932:                                              ; preds = %928
  %933 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %935

934:                                              ; preds = %928
  br label %935

935:                                              ; preds = %934, %932
  %936 = phi i32 [ %933, %932 ], [ 1, %934 ]
  call void @libxsmm_handle_error(ptr noundef %929, i32 noundef 90033, ptr noundef @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef @.str, i32 noundef 571, i32 noundef %936)
  store i32 1, ptr %11, align 4
  br label %1138

937:                                              ; preds = %923
  br label %938

938:                                              ; preds = %937, %909
  br label %939

939:                                              ; preds = %938, %892
  br label %940

940:                                              ; preds = %939, %878
  br label %941

941:                                              ; preds = %940, %866
  %942 = load ptr, ptr %6, align 8, !tbaa !5
  %943 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %942, i32 0, i32 11
  %944 = load i8, ptr %943, align 1, !tbaa !18
  %945 = zext i8 %944 to i32
  %946 = icmp eq i32 %945, 3
  br i1 %946, label %947, label %1028

947:                                              ; preds = %941
  %948 = load ptr, ptr %6, align 8, !tbaa !5
  %949 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %948, i32 0, i32 10
  %950 = load i16, ptr %949, align 1, !tbaa !23
  %951 = zext i16 %950 to i32
  %952 = icmp eq i32 %951, 3
  br i1 %952, label %953, label %958

953:                                              ; preds = %947
  %954 = load ptr, ptr %5, align 8, !tbaa !5
  %955 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %954, i32 0, i32 4
  store i32 1, ptr %955, align 4, !tbaa !24
  %956 = load ptr, ptr %5, align 8, !tbaa !5
  %957 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %956, i32 0, i32 8
  store i32 -536406417, ptr %957, align 4, !tbaa !25
  br label %1027

958:                                              ; preds = %947
  %959 = load i32, ptr %9, align 4, !tbaa !9
  %960 = icmp eq i32 0, %959
  br i1 %960, label %964, label %961

961:                                              ; preds = %958
  %962 = load i32, ptr %9, align 4, !tbaa !9
  %963 = icmp eq i32 6, %962
  br i1 %963, label %964, label %969

964:                                              ; preds = %961, %958
  %965 = load ptr, ptr %5, align 8, !tbaa !5
  %966 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %965, i32 0, i32 4
  store i32 8, ptr %966, align 4, !tbaa !24
  %967 = load ptr, ptr %5, align 8, !tbaa !5
  %968 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %967, i32 0, i32 8
  store i32 545592848, ptr %968, align 4, !tbaa !25
  br label %1026

969:                                              ; preds = %961
  %970 = load i32, ptr %9, align 4, !tbaa !9
  %971 = icmp eq i32 1, %970
  br i1 %971, label %978, label %972

972:                                              ; preds = %969
  %973 = load i32, ptr %9, align 4, !tbaa !9
  %974 = icmp eq i32 8, %973
  br i1 %974, label %978, label %975

975:                                              ; preds = %972
  %976 = load i32, ptr %9, align 4, !tbaa !9
  %977 = icmp eq i32 9, %976
  br i1 %977, label %978, label %983

978:                                              ; preds = %975, %972, %969
  %979 = load ptr, ptr %5, align 8, !tbaa !5
  %980 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %979, i32 0, i32 4
  store i32 4, ptr %980, align 4, !tbaa !24
  %981 = load ptr, ptr %5, align 8, !tbaa !5
  %982 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %981, i32 0, i32 8
  store i32 537138704, ptr %982, align 4, !tbaa !25
  br label %1025

983:                                              ; preds = %975
  %984 = load i32, ptr %9, align 4, !tbaa !9
  %985 = icmp eq i32 2, %984
  br i1 %985, label %995, label %986

986:                                              ; preds = %983
  %987 = load i32, ptr %9, align 4, !tbaa !9
  %988 = icmp eq i32 10, %987
  br i1 %988, label %995, label %989

989:                                              ; preds = %986
  %990 = load i32, ptr %9, align 4, !tbaa !9
  %991 = icmp eq i32 11, %990
  br i1 %991, label %995, label %992

992:                                              ; preds = %989
  %993 = load i32, ptr %9, align 4, !tbaa !9
  %994 = icmp eq i32 3, %993
  br i1 %994, label %995, label %1000

995:                                              ; preds = %992, %989, %986, %983
  %996 = load ptr, ptr %5, align 8, !tbaa !5
  %997 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %996, i32 0, i32 4
  store i32 2, ptr %997, align 4, !tbaa !24
  %998 = load ptr, ptr %5, align 8, !tbaa !5
  %999 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %998, i32 0, i32 8
  store i32 -528017809, ptr %999, align 4, !tbaa !25
  br label %1024

1000:                                             ; preds = %992
  %1001 = load i32, ptr %9, align 4, !tbaa !9
  %1002 = icmp eq i32 4, %1001
  br i1 %1002, label %1009, label %1003

1003:                                             ; preds = %1000
  %1004 = load i32, ptr %9, align 4, !tbaa !9
  %1005 = icmp eq i32 5, %1004
  br i1 %1005, label %1009, label %1006

1006:                                             ; preds = %1003
  %1007 = load i32, ptr %9, align 4, !tbaa !9
  %1008 = icmp eq i32 12, %1007
  br i1 %1008, label %1009, label %1014

1009:                                             ; preds = %1006, %1003, %1000
  %1010 = load ptr, ptr %5, align 8, !tbaa !5
  %1011 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1010, i32 0, i32 4
  store i32 1, ptr %1011, align 4, !tbaa !24
  %1012 = load ptr, ptr %5, align 8, !tbaa !5
  %1013 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1012, i32 0, i32 8
  store i32 9999, ptr %1013, align 4, !tbaa !25
  br label %1023

1014:                                             ; preds = %1006
  %1015 = load ptr, ptr %4, align 8, !tbaa !5
  %1016 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %1017 = icmp ult i32 1, %1016
  br i1 %1017, label %1018, label %1020

1018:                                             ; preds = %1014
  %1019 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %1021

1020:                                             ; preds = %1014
  br label %1021

1021:                                             ; preds = %1020, %1018
  %1022 = phi i32 [ %1019, %1018 ], [ 1, %1020 ]
  call void @libxsmm_handle_error(ptr noundef %1015, i32 noundef 90033, ptr noundef @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef @.str, i32 noundef 595, i32 noundef %1022)
  store i32 1, ptr %11, align 4
  br label %1138

1023:                                             ; preds = %1009
  br label %1024

1024:                                             ; preds = %1023, %995
  br label %1025

1025:                                             ; preds = %1024, %978
  br label %1026

1026:                                             ; preds = %1025, %964
  br label %1027

1027:                                             ; preds = %1026, %953
  br label %1028

1028:                                             ; preds = %1027, %941
  %1029 = load i32, ptr %9, align 4, !tbaa !9
  %1030 = icmp eq i32 0, %1029
  br i1 %1030, label %1034, label %1031

1031:                                             ; preds = %1028
  %1032 = load i32, ptr %9, align 4, !tbaa !9
  %1033 = icmp eq i32 6, %1032
  br i1 %1033, label %1034, label %1045

1034:                                             ; preds = %1031, %1028
  %1035 = load ptr, ptr %5, align 8, !tbaa !5
  %1036 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1035, i32 0, i32 5
  store i32 8, ptr %1036, align 4, !tbaa !26
  %1037 = load ptr, ptr %6, align 8, !tbaa !5
  %1038 = load i32, ptr %13, align 4, !tbaa !9
  %1039 = load ptr, ptr %5, align 8, !tbaa !5
  %1040 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1039, i32 0, i32 5
  %1041 = load i32, ptr %1040, align 4, !tbaa !26
  %1042 = call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef %1037, i32 noundef %1038, i32 noundef %1041, i32 noundef 545592848, i32 noundef 545592875)
  %1043 = load ptr, ptr %5, align 8, !tbaa !5
  %1044 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1043, i32 0, i32 9
  store i32 %1042, ptr %1044, align 4, !tbaa !27
  br label %1123

1045:                                             ; preds = %1031
  %1046 = load i32, ptr %9, align 4, !tbaa !9
  %1047 = icmp eq i32 1, %1046
  br i1 %1047, label %1054, label %1048

1048:                                             ; preds = %1045
  %1049 = load i32, ptr %9, align 4, !tbaa !9
  %1050 = icmp eq i32 8, %1049
  br i1 %1050, label %1054, label %1051

1051:                                             ; preds = %1048
  %1052 = load i32, ptr %9, align 4, !tbaa !9
  %1053 = icmp eq i32 9, %1052
  br i1 %1053, label %1054, label %1065

1054:                                             ; preds = %1051, %1048, %1045
  %1055 = load ptr, ptr %5, align 8, !tbaa !5
  %1056 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1055, i32 0, i32 5
  store i32 4, ptr %1056, align 4, !tbaa !26
  %1057 = load ptr, ptr %6, align 8, !tbaa !5
  %1058 = load i32, ptr %13, align 4, !tbaa !9
  %1059 = load ptr, ptr %5, align 8, !tbaa !5
  %1060 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1059, i32 0, i32 5
  %1061 = load i32, ptr %1060, align 4, !tbaa !26
  %1062 = call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef %1057, i32 noundef %1058, i32 noundef %1061, i32 noundef 537138704, i32 noundef 537138731)
  %1063 = load ptr, ptr %5, align 8, !tbaa !5
  %1064 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1063, i32 0, i32 9
  store i32 %1062, ptr %1064, align 4, !tbaa !27
  br label %1122

1065:                                             ; preds = %1051
  %1066 = load i32, ptr %9, align 4, !tbaa !9
  %1067 = icmp eq i32 2, %1066
  br i1 %1067, label %1077, label %1068

1068:                                             ; preds = %1065
  %1069 = load i32, ptr %9, align 4, !tbaa !9
  %1070 = icmp eq i32 10, %1069
  br i1 %1070, label %1077, label %1071

1071:                                             ; preds = %1068
  %1072 = load i32, ptr %9, align 4, !tbaa !9
  %1073 = icmp eq i32 11, %1072
  br i1 %1073, label %1077, label %1074

1074:                                             ; preds = %1071
  %1075 = load i32, ptr %9, align 4, !tbaa !9
  %1076 = icmp eq i32 3, %1075
  br i1 %1076, label %1077, label %1088

1077:                                             ; preds = %1074, %1071, %1068, %1065
  %1078 = load ptr, ptr %5, align 8, !tbaa !5
  %1079 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1078, i32 0, i32 5
  store i32 2, ptr %1079, align 4, !tbaa !26
  %1080 = load ptr, ptr %6, align 8, !tbaa !5
  %1081 = load i32, ptr %13, align 4, !tbaa !9
  %1082 = load ptr, ptr %5, align 8, !tbaa !5
  %1083 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1082, i32 0, i32 5
  %1084 = load i32, ptr %1083, align 4, !tbaa !26
  %1085 = call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef %1080, i32 noundef %1081, i32 noundef %1084, i32 noundef -528017809, i32 noundef 537138731)
  %1086 = load ptr, ptr %5, align 8, !tbaa !5
  %1087 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1086, i32 0, i32 9
  store i32 %1085, ptr %1087, align 4, !tbaa !27
  br label %1121

1088:                                             ; preds = %1074
  %1089 = load i32, ptr %9, align 4, !tbaa !9
  %1090 = icmp eq i32 4, %1089
  br i1 %1090, label %1100, label %1091

1091:                                             ; preds = %1088
  %1092 = load i32, ptr %9, align 4, !tbaa !9
  %1093 = icmp eq i32 5, %1092
  br i1 %1093, label %1100, label %1094

1094:                                             ; preds = %1091
  %1095 = load i32, ptr %9, align 4, !tbaa !9
  %1096 = icmp eq i32 12, %1095
  br i1 %1096, label %1100, label %1097

1097:                                             ; preds = %1094
  %1098 = load i32, ptr %9, align 4, !tbaa !9
  %1099 = icmp eq i32 14, %1098
  br i1 %1099, label %1100, label %1111

1100:                                             ; preds = %1097, %1094, %1091, %1088
  %1101 = load ptr, ptr %5, align 8, !tbaa !5
  %1102 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1101, i32 0, i32 5
  store i32 1, ptr %1102, align 4, !tbaa !26
  %1103 = load ptr, ptr %6, align 8, !tbaa !5
  %1104 = load i32, ptr %13, align 4, !tbaa !9
  %1105 = load ptr, ptr %5, align 8, !tbaa !5
  %1106 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1105, i32 0, i32 5
  %1107 = load i32, ptr %1106, align 4, !tbaa !26
  %1108 = call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef %1103, i32 noundef %1104, i32 noundef %1107, i32 noundef -536406417, i32 noundef -536406417)
  %1109 = load ptr, ptr %5, align 8, !tbaa !5
  %1110 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1109, i32 0, i32 9
  store i32 %1108, ptr %1110, align 4, !tbaa !27
  br label %1120

1111:                                             ; preds = %1097
  %1112 = load ptr, ptr %4, align 8, !tbaa !5
  %1113 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %1114 = icmp ult i32 1, %1113
  br i1 %1114, label %1115, label %1117

1115:                                             ; preds = %1111
  %1116 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %1118

1117:                                             ; preds = %1111
  br label %1118

1118:                                             ; preds = %1117, %1115
  %1119 = phi i32 [ %1116, %1115 ], [ 1, %1117 ]
  call void @libxsmm_handle_error(ptr noundef %1112, i32 noundef 90033, ptr noundef @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef @.str, i32 noundef 619, i32 noundef %1119)
  store i32 1, ptr %11, align 4
  br label %1138

1120:                                             ; preds = %1100
  br label %1121

1121:                                             ; preds = %1120, %1077
  br label %1122

1122:                                             ; preds = %1121, %1054
  br label %1123

1123:                                             ; preds = %1122, %1034
  %1124 = load ptr, ptr %5, align 8, !tbaa !5
  %1125 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1124, i32 0, i32 10
  store i32 30000, ptr %1125, align 4, !tbaa !28
  %1126 = load ptr, ptr %5, align 8, !tbaa !5
  %1127 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1126, i32 0, i32 11
  store i32 30008, ptr %1127, align 4, !tbaa !29
  %1128 = load ptr, ptr %5, align 8, !tbaa !5
  %1129 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1128, i32 0, i32 12
  store i32 30002, ptr %1129, align 4, !tbaa !30
  %1130 = load ptr, ptr %5, align 8, !tbaa !5
  %1131 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1130, i32 0, i32 13
  store i32 30100, ptr %1131, align 4, !tbaa !31
  %1132 = load ptr, ptr %5, align 8, !tbaa !5
  %1133 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1132, i32 0, i32 14
  store i32 -1568407413, ptr %1133, align 4, !tbaa !32
  %1134 = load ptr, ptr %5, align 8, !tbaa !5
  %1135 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1134, i32 0, i32 15
  store i32 805639919, ptr %1135, align 4, !tbaa !33
  %1136 = load ptr, ptr %5, align 8, !tbaa !5
  %1137 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1136, i32 0, i32 128
  store i8 121, ptr %1137, align 4, !tbaa !34
  store i32 0, ptr %11, align 4
  br label %1138

1138:                                             ; preds = %1123, %1118, %1021, %935, %855
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #3
  %1139 = load i32, ptr %11, align 4
  switch i32 %1139, label %1493 [
    i32 0, label %1140
  ]

1140:                                             ; preds = %1138
  br label %1490

1141:                                             ; preds = %780, %775
  %1142 = load ptr, ptr %4, align 8, !tbaa !5
  %1143 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1142, i32 0, i32 6
  %1144 = load i32, ptr %1143, align 4, !tbaa !11
  %1145 = icmp uge i32 %1144, 1002
  br i1 %1145, label %1146, label %1480

1146:                                             ; preds = %1141
  %1147 = load ptr, ptr %4, align 8, !tbaa !5
  %1148 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1147, i32 0, i32 6
  %1149 = load i32, ptr %1148, align 4, !tbaa !11
  %1150 = icmp ult i32 %1149, 1005
  br i1 %1150, label %1151, label %1480

1151:                                             ; preds = %1146
  %1152 = load ptr, ptr %4, align 8, !tbaa !5
  %1153 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1152, i32 0, i32 6
  %1154 = load i32, ptr %1153, align 4, !tbaa !11
  %1155 = load ptr, ptr %5, align 8, !tbaa !5
  %1156 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1155, i32 0, i32 0
  store i32 %1154, ptr %1156, align 4, !tbaa !13
  %1157 = load ptr, ptr %5, align 8, !tbaa !5
  %1158 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1157, i32 0, i32 1
  store i32 16, ptr %1158, align 4, !tbaa !15
  %1159 = load i32, ptr %7, align 4, !tbaa !9
  %1160 = icmp eq i32 0, %1159
  br i1 %1160, label %1164, label %1161

1161:                                             ; preds = %1151
  %1162 = load i32, ptr %7, align 4, !tbaa !9
  %1163 = icmp eq i32 6, %1162
  br i1 %1163, label %1164, label %1169

1164:                                             ; preds = %1161, %1151
  %1165 = load ptr, ptr %5, align 8, !tbaa !5
  %1166 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1165, i32 0, i32 2
  store i32 8, ptr %1166, align 4, !tbaa !16
  %1167 = load ptr, ptr %5, align 8, !tbaa !5
  %1168 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1167, i32 0, i32 6
  store i32 -1610280944, ptr %1168, align 4, !tbaa !17
  br label %1226

1169:                                             ; preds = %1161
  %1170 = load i32, ptr %7, align 4, !tbaa !9
  %1171 = icmp eq i32 1, %1170
  br i1 %1171, label %1178, label %1172

1172:                                             ; preds = %1169
  %1173 = load i32, ptr %7, align 4, !tbaa !9
  %1174 = icmp eq i32 8, %1173
  br i1 %1174, label %1178, label %1175

1175:                                             ; preds = %1172
  %1176 = load i32, ptr %7, align 4, !tbaa !9
  %1177 = icmp eq i32 9, %1176
  br i1 %1177, label %1178, label %1183

1178:                                             ; preds = %1175, %1172, %1169
  %1179 = load ptr, ptr %5, align 8, !tbaa !5
  %1180 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1179, i32 0, i32 2
  store i32 4, ptr %1180, align 4, !tbaa !16
  %1181 = load ptr, ptr %5, align 8, !tbaa !5
  %1182 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1181, i32 0, i32 6
  store i32 -1610346480, ptr %1182, align 4, !tbaa !17
  br label %1225

1183:                                             ; preds = %1175
  %1184 = load i32, ptr %7, align 4, !tbaa !9
  %1185 = icmp eq i32 2, %1184
  br i1 %1185, label %1195, label %1186

1186:                                             ; preds = %1183
  %1187 = load i32, ptr %7, align 4, !tbaa !9
  %1188 = icmp eq i32 10, %1187
  br i1 %1188, label %1195, label %1189

1189:                                             ; preds = %1186
  %1190 = load i32, ptr %7, align 4, !tbaa !9
  %1191 = icmp eq i32 11, %1190
  br i1 %1191, label %1195, label %1192

1192:                                             ; preds = %1189
  %1193 = load i32, ptr %7, align 4, !tbaa !9
  %1194 = icmp eq i32 3, %1193
  br i1 %1194, label %1195, label %1200

1195:                                             ; preds = %1192, %1189, %1186, %1183
  %1196 = load ptr, ptr %5, align 8, !tbaa !5
  %1197 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1196, i32 0, i32 2
  store i32 2, ptr %1197, align 4, !tbaa !16
  %1198 = load ptr, ptr %5, align 8, !tbaa !5
  %1199 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1198, i32 0, i32 6
  store i32 -528017809, ptr %1199, align 4, !tbaa !17
  br label %1224

1200:                                             ; preds = %1192
  %1201 = load i32, ptr %7, align 4, !tbaa !9
  %1202 = icmp eq i32 4, %1201
  br i1 %1202, label %1209, label %1203

1203:                                             ; preds = %1200
  %1204 = load i32, ptr %7, align 4, !tbaa !9
  %1205 = icmp eq i32 5, %1204
  br i1 %1205, label %1209, label %1206

1206:                                             ; preds = %1203
  %1207 = load i32, ptr %7, align 4, !tbaa !9
  %1208 = icmp eq i32 12, %1207
  br i1 %1208, label %1209, label %1214

1209:                                             ; preds = %1206, %1203, %1200
  %1210 = load ptr, ptr %5, align 8, !tbaa !5
  %1211 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1210, i32 0, i32 2
  store i32 1, ptr %1211, align 4, !tbaa !16
  %1212 = load ptr, ptr %5, align 8, !tbaa !5
  %1213 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1212, i32 0, i32 6
  store i32 9999, ptr %1213, align 4, !tbaa !17
  br label %1223

1214:                                             ; preds = %1206
  %1215 = load ptr, ptr %4, align 8, !tbaa !5
  %1216 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %1217 = icmp ult i32 1, %1216
  br i1 %1217, label %1218, label %1220

1218:                                             ; preds = %1214
  %1219 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %1221

1220:                                             ; preds = %1214
  br label %1221

1221:                                             ; preds = %1220, %1218
  %1222 = phi i32 [ %1219, %1218 ], [ 1, %1220 ]
  call void @libxsmm_handle_error(ptr noundef %1215, i32 noundef 90033, ptr noundef @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef @.str, i32 noundef 646, i32 noundef %1222)
  store i32 1, ptr %11, align 4
  br label %1493

1223:                                             ; preds = %1209
  br label %1224

1224:                                             ; preds = %1223, %1195
  br label %1225

1225:                                             ; preds = %1224, %1178
  br label %1226

1226:                                             ; preds = %1225, %1164
  %1227 = load ptr, ptr %6, align 8, !tbaa !5
  %1228 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1227, i32 0, i32 11
  %1229 = load i8, ptr %1228, align 1, !tbaa !18
  %1230 = zext i8 %1229 to i32
  %1231 = icmp eq i32 %1230, 2
  br i1 %1231, label %1238, label %1232

1232:                                             ; preds = %1226
  %1233 = load ptr, ptr %6, align 8, !tbaa !5
  %1234 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1233, i32 0, i32 11
  %1235 = load i8, ptr %1234, align 1, !tbaa !18
  %1236 = zext i8 %1235 to i32
  %1237 = icmp eq i32 %1236, 3
  br i1 %1237, label %1238, label %1307

1238:                                             ; preds = %1232, %1226
  %1239 = load i32, ptr %8, align 4, !tbaa !9
  %1240 = icmp eq i32 0, %1239
  br i1 %1240, label %1244, label %1241

1241:                                             ; preds = %1238
  %1242 = load i32, ptr %8, align 4, !tbaa !9
  %1243 = icmp eq i32 6, %1242
  br i1 %1243, label %1244, label %1249

1244:                                             ; preds = %1241, %1238
  %1245 = load ptr, ptr %5, align 8, !tbaa !5
  %1246 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1245, i32 0, i32 3
  store i32 8, ptr %1246, align 4, !tbaa !21
  %1247 = load ptr, ptr %5, align 8, !tbaa !5
  %1248 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1247, i32 0, i32 7
  store i32 -1610280944, ptr %1248, align 4, !tbaa !22
  br label %1306

1249:                                             ; preds = %1241
  %1250 = load i32, ptr %8, align 4, !tbaa !9
  %1251 = icmp eq i32 1, %1250
  br i1 %1251, label %1258, label %1252

1252:                                             ; preds = %1249
  %1253 = load i32, ptr %8, align 4, !tbaa !9
  %1254 = icmp eq i32 8, %1253
  br i1 %1254, label %1258, label %1255

1255:                                             ; preds = %1252
  %1256 = load i32, ptr %8, align 4, !tbaa !9
  %1257 = icmp eq i32 9, %1256
  br i1 %1257, label %1258, label %1263

1258:                                             ; preds = %1255, %1252, %1249
  %1259 = load ptr, ptr %5, align 8, !tbaa !5
  %1260 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1259, i32 0, i32 3
  store i32 4, ptr %1260, align 4, !tbaa !21
  %1261 = load ptr, ptr %5, align 8, !tbaa !5
  %1262 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1261, i32 0, i32 7
  store i32 -1610346480, ptr %1262, align 4, !tbaa !22
  br label %1305

1263:                                             ; preds = %1255
  %1264 = load i32, ptr %8, align 4, !tbaa !9
  %1265 = icmp eq i32 2, %1264
  br i1 %1265, label %1275, label %1266

1266:                                             ; preds = %1263
  %1267 = load i32, ptr %8, align 4, !tbaa !9
  %1268 = icmp eq i32 10, %1267
  br i1 %1268, label %1275, label %1269

1269:                                             ; preds = %1266
  %1270 = load i32, ptr %8, align 4, !tbaa !9
  %1271 = icmp eq i32 11, %1270
  br i1 %1271, label %1275, label %1272

1272:                                             ; preds = %1269
  %1273 = load i32, ptr %8, align 4, !tbaa !9
  %1274 = icmp eq i32 3, %1273
  br i1 %1274, label %1275, label %1280

1275:                                             ; preds = %1272, %1269, %1266, %1263
  %1276 = load ptr, ptr %5, align 8, !tbaa !5
  %1277 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1276, i32 0, i32 3
  store i32 2, ptr %1277, align 4, !tbaa !21
  %1278 = load ptr, ptr %5, align 8, !tbaa !5
  %1279 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1278, i32 0, i32 7
  store i32 -528017809, ptr %1279, align 4, !tbaa !22
  br label %1304

1280:                                             ; preds = %1272
  %1281 = load i32, ptr %8, align 4, !tbaa !9
  %1282 = icmp eq i32 4, %1281
  br i1 %1282, label %1289, label %1283

1283:                                             ; preds = %1280
  %1284 = load i32, ptr %8, align 4, !tbaa !9
  %1285 = icmp eq i32 5, %1284
  br i1 %1285, label %1289, label %1286

1286:                                             ; preds = %1283
  %1287 = load i32, ptr %8, align 4, !tbaa !9
  %1288 = icmp eq i32 12, %1287
  br i1 %1288, label %1289, label %1294

1289:                                             ; preds = %1286, %1283, %1280
  %1290 = load ptr, ptr %5, align 8, !tbaa !5
  %1291 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1290, i32 0, i32 3
  store i32 1, ptr %1291, align 4, !tbaa !21
  %1292 = load ptr, ptr %5, align 8, !tbaa !5
  %1293 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1292, i32 0, i32 7
  store i32 9999, ptr %1293, align 4, !tbaa !22
  br label %1303

1294:                                             ; preds = %1286
  %1295 = load ptr, ptr %4, align 8, !tbaa !5
  %1296 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %1297 = icmp ult i32 1, %1296
  br i1 %1297, label %1298, label %1300

1298:                                             ; preds = %1294
  %1299 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %1301

1300:                                             ; preds = %1294
  br label %1301

1301:                                             ; preds = %1300, %1298
  %1302 = phi i32 [ %1299, %1298 ], [ 1, %1300 ]
  call void @libxsmm_handle_error(ptr noundef %1295, i32 noundef 90033, ptr noundef @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef @.str, i32 noundef 665, i32 noundef %1302)
  store i32 1, ptr %11, align 4
  br label %1493

1303:                                             ; preds = %1289
  br label %1304

1304:                                             ; preds = %1303, %1275
  br label %1305

1305:                                             ; preds = %1304, %1258
  br label %1306

1306:                                             ; preds = %1305, %1244
  br label %1307

1307:                                             ; preds = %1306, %1232
  %1308 = load ptr, ptr %6, align 8, !tbaa !5
  %1309 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1308, i32 0, i32 11
  %1310 = load i8, ptr %1309, align 1, !tbaa !18
  %1311 = zext i8 %1310 to i32
  %1312 = icmp eq i32 %1311, 3
  br i1 %1312, label %1313, label %1394

1313:                                             ; preds = %1307
  %1314 = load ptr, ptr %6, align 8, !tbaa !5
  %1315 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1314, i32 0, i32 10
  %1316 = load i16, ptr %1315, align 1, !tbaa !23
  %1317 = zext i16 %1316 to i32
  %1318 = icmp eq i32 %1317, 3
  br i1 %1318, label %1319, label %1324

1319:                                             ; preds = %1313
  %1320 = load ptr, ptr %5, align 8, !tbaa !5
  %1321 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1320, i32 0, i32 4
  store i32 1, ptr %1321, align 4, !tbaa !24
  %1322 = load ptr, ptr %5, align 8, !tbaa !5
  %1323 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1322, i32 0, i32 8
  store i32 -536406417, ptr %1323, align 4, !tbaa !25
  br label %1393

1324:                                             ; preds = %1313
  %1325 = load i32, ptr %9, align 4, !tbaa !9
  %1326 = icmp eq i32 0, %1325
  br i1 %1326, label %1330, label %1327

1327:                                             ; preds = %1324
  %1328 = load i32, ptr %9, align 4, !tbaa !9
  %1329 = icmp eq i32 6, %1328
  br i1 %1329, label %1330, label %1335

1330:                                             ; preds = %1327, %1324
  %1331 = load ptr, ptr %5, align 8, !tbaa !5
  %1332 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1331, i32 0, i32 4
  store i32 8, ptr %1332, align 4, !tbaa !24
  %1333 = load ptr, ptr %5, align 8, !tbaa !5
  %1334 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1333, i32 0, i32 8
  store i32 545592848, ptr %1334, align 4, !tbaa !25
  br label %1392

1335:                                             ; preds = %1327
  %1336 = load i32, ptr %9, align 4, !tbaa !9
  %1337 = icmp eq i32 1, %1336
  br i1 %1337, label %1344, label %1338

1338:                                             ; preds = %1335
  %1339 = load i32, ptr %9, align 4, !tbaa !9
  %1340 = icmp eq i32 8, %1339
  br i1 %1340, label %1344, label %1341

1341:                                             ; preds = %1338
  %1342 = load i32, ptr %9, align 4, !tbaa !9
  %1343 = icmp eq i32 9, %1342
  br i1 %1343, label %1344, label %1349

1344:                                             ; preds = %1341, %1338, %1335
  %1345 = load ptr, ptr %5, align 8, !tbaa !5
  %1346 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1345, i32 0, i32 4
  store i32 4, ptr %1346, align 4, !tbaa !24
  %1347 = load ptr, ptr %5, align 8, !tbaa !5
  %1348 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1347, i32 0, i32 8
  store i32 537138704, ptr %1348, align 4, !tbaa !25
  br label %1391

1349:                                             ; preds = %1341
  %1350 = load i32, ptr %9, align 4, !tbaa !9
  %1351 = icmp eq i32 2, %1350
  br i1 %1351, label %1361, label %1352

1352:                                             ; preds = %1349
  %1353 = load i32, ptr %9, align 4, !tbaa !9
  %1354 = icmp eq i32 10, %1353
  br i1 %1354, label %1361, label %1355

1355:                                             ; preds = %1352
  %1356 = load i32, ptr %9, align 4, !tbaa !9
  %1357 = icmp eq i32 11, %1356
  br i1 %1357, label %1361, label %1358

1358:                                             ; preds = %1355
  %1359 = load i32, ptr %9, align 4, !tbaa !9
  %1360 = icmp eq i32 3, %1359
  br i1 %1360, label %1361, label %1366

1361:                                             ; preds = %1358, %1355, %1352, %1349
  %1362 = load ptr, ptr %5, align 8, !tbaa !5
  %1363 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1362, i32 0, i32 4
  store i32 2, ptr %1363, align 4, !tbaa !24
  %1364 = load ptr, ptr %5, align 8, !tbaa !5
  %1365 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1364, i32 0, i32 8
  store i32 -528017809, ptr %1365, align 4, !tbaa !25
  br label %1390

1366:                                             ; preds = %1358
  %1367 = load i32, ptr %9, align 4, !tbaa !9
  %1368 = icmp eq i32 4, %1367
  br i1 %1368, label %1375, label %1369

1369:                                             ; preds = %1366
  %1370 = load i32, ptr %9, align 4, !tbaa !9
  %1371 = icmp eq i32 5, %1370
  br i1 %1371, label %1375, label %1372

1372:                                             ; preds = %1369
  %1373 = load i32, ptr %9, align 4, !tbaa !9
  %1374 = icmp eq i32 12, %1373
  br i1 %1374, label %1375, label %1380

1375:                                             ; preds = %1372, %1369, %1366
  %1376 = load ptr, ptr %5, align 8, !tbaa !5
  %1377 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1376, i32 0, i32 4
  store i32 1, ptr %1377, align 4, !tbaa !24
  %1378 = load ptr, ptr %5, align 8, !tbaa !5
  %1379 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1378, i32 0, i32 8
  store i32 9999, ptr %1379, align 4, !tbaa !25
  br label %1389

1380:                                             ; preds = %1372
  %1381 = load ptr, ptr %4, align 8, !tbaa !5
  %1382 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %1383 = icmp ult i32 1, %1382
  br i1 %1383, label %1384, label %1386

1384:                                             ; preds = %1380
  %1385 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %1387

1386:                                             ; preds = %1380
  br label %1387

1387:                                             ; preds = %1386, %1384
  %1388 = phi i32 [ %1385, %1384 ], [ 1, %1386 ]
  call void @libxsmm_handle_error(ptr noundef %1381, i32 noundef 90033, ptr noundef @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef @.str, i32 noundef 689, i32 noundef %1388)
  store i32 1, ptr %11, align 4
  br label %1493

1389:                                             ; preds = %1375
  br label %1390

1390:                                             ; preds = %1389, %1361
  br label %1391

1391:                                             ; preds = %1390, %1344
  br label %1392

1392:                                             ; preds = %1391, %1330
  br label %1393

1393:                                             ; preds = %1392, %1319
  br label %1394

1394:                                             ; preds = %1393, %1307
  %1395 = load i32, ptr %9, align 4, !tbaa !9
  %1396 = icmp eq i32 0, %1395
  br i1 %1396, label %1400, label %1397

1397:                                             ; preds = %1394
  %1398 = load i32, ptr %9, align 4, !tbaa !9
  %1399 = icmp eq i32 6, %1398
  br i1 %1399, label %1400, label %1405

1400:                                             ; preds = %1397, %1394
  %1401 = load ptr, ptr %5, align 8, !tbaa !5
  %1402 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1401, i32 0, i32 5
  store i32 8, ptr %1402, align 4, !tbaa !26
  %1403 = load ptr, ptr %5, align 8, !tbaa !5
  %1404 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1403, i32 0, i32 9
  store i32 -1610280944, ptr %1404, align 4, !tbaa !27
  br label %1465

1405:                                             ; preds = %1397
  %1406 = load i32, ptr %9, align 4, !tbaa !9
  %1407 = icmp eq i32 1, %1406
  br i1 %1407, label %1414, label %1408

1408:                                             ; preds = %1405
  %1409 = load i32, ptr %9, align 4, !tbaa !9
  %1410 = icmp eq i32 8, %1409
  br i1 %1410, label %1414, label %1411

1411:                                             ; preds = %1408
  %1412 = load i32, ptr %9, align 4, !tbaa !9
  %1413 = icmp eq i32 9, %1412
  br i1 %1413, label %1414, label %1419

1414:                                             ; preds = %1411, %1408, %1405
  %1415 = load ptr, ptr %5, align 8, !tbaa !5
  %1416 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1415, i32 0, i32 5
  store i32 4, ptr %1416, align 4, !tbaa !26
  %1417 = load ptr, ptr %5, align 8, !tbaa !5
  %1418 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1417, i32 0, i32 9
  store i32 -1610346480, ptr %1418, align 4, !tbaa !27
  br label %1464

1419:                                             ; preds = %1411
  %1420 = load i32, ptr %9, align 4, !tbaa !9
  %1421 = icmp eq i32 2, %1420
  br i1 %1421, label %1431, label %1422

1422:                                             ; preds = %1419
  %1423 = load i32, ptr %9, align 4, !tbaa !9
  %1424 = icmp eq i32 10, %1423
  br i1 %1424, label %1431, label %1425

1425:                                             ; preds = %1422
  %1426 = load i32, ptr %9, align 4, !tbaa !9
  %1427 = icmp eq i32 11, %1426
  br i1 %1427, label %1431, label %1428

1428:                                             ; preds = %1425
  %1429 = load i32, ptr %9, align 4, !tbaa !9
  %1430 = icmp eq i32 3, %1429
  br i1 %1430, label %1431, label %1436

1431:                                             ; preds = %1428, %1425, %1422, %1419
  %1432 = load ptr, ptr %5, align 8, !tbaa !5
  %1433 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1432, i32 0, i32 5
  store i32 2, ptr %1433, align 4, !tbaa !26
  %1434 = load ptr, ptr %5, align 8, !tbaa !5
  %1435 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1434, i32 0, i32 9
  store i32 -528017809, ptr %1435, align 4, !tbaa !27
  br label %1463

1436:                                             ; preds = %1428
  %1437 = load i32, ptr %9, align 4, !tbaa !9
  %1438 = icmp eq i32 4, %1437
  br i1 %1438, label %1448, label %1439

1439:                                             ; preds = %1436
  %1440 = load i32, ptr %9, align 4, !tbaa !9
  %1441 = icmp eq i32 5, %1440
  br i1 %1441, label %1448, label %1442

1442:                                             ; preds = %1439
  %1443 = load i32, ptr %9, align 4, !tbaa !9
  %1444 = icmp eq i32 12, %1443
  br i1 %1444, label %1448, label %1445

1445:                                             ; preds = %1442
  %1446 = load i32, ptr %9, align 4, !tbaa !9
  %1447 = icmp eq i32 14, %1446
  br i1 %1447, label %1448, label %1453

1448:                                             ; preds = %1445, %1442, %1439, %1436
  %1449 = load ptr, ptr %5, align 8, !tbaa !5
  %1450 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1449, i32 0, i32 5
  store i32 1, ptr %1450, align 4, !tbaa !26
  %1451 = load ptr, ptr %5, align 8, !tbaa !5
  %1452 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1451, i32 0, i32 9
  store i32 9999, ptr %1452, align 4, !tbaa !27
  br label %1462

1453:                                             ; preds = %1445
  %1454 = load ptr, ptr %4, align 8, !tbaa !5
  %1455 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %1456 = icmp ult i32 1, %1455
  br i1 %1456, label %1457, label %1459

1457:                                             ; preds = %1453
  %1458 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %1460

1459:                                             ; preds = %1453
  br label %1460

1460:                                             ; preds = %1459, %1457
  %1461 = phi i32 [ %1458, %1457 ], [ 1, %1459 ]
  call void @libxsmm_handle_error(ptr noundef %1454, i32 noundef 90033, ptr noundef @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef @.str, i32 noundef 709, i32 noundef %1461)
  store i32 1, ptr %11, align 4
  br label %1493

1462:                                             ; preds = %1448
  br label %1463

1463:                                             ; preds = %1462, %1431
  br label %1464

1464:                                             ; preds = %1463, %1414
  br label %1465

1465:                                             ; preds = %1464, %1400
  %1466 = load ptr, ptr %5, align 8, !tbaa !5
  %1467 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1466, i32 0, i32 10
  store i32 30000, ptr %1467, align 4, !tbaa !28
  %1468 = load ptr, ptr %5, align 8, !tbaa !5
  %1469 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1468, i32 0, i32 11
  store i32 30008, ptr %1469, align 4, !tbaa !29
  %1470 = load ptr, ptr %5, align 8, !tbaa !5
  %1471 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1470, i32 0, i32 12
  store i32 30002, ptr %1471, align 4, !tbaa !30
  %1472 = load ptr, ptr %5, align 8, !tbaa !5
  %1473 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1472, i32 0, i32 13
  store i32 30100, ptr %1473, align 4, !tbaa !31
  %1474 = load ptr, ptr %5, align 8, !tbaa !5
  %1475 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1474, i32 0, i32 14
  store i32 -1568407413, ptr %1475, align 4, !tbaa !32
  %1476 = load ptr, ptr %5, align 8, !tbaa !5
  %1477 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1476, i32 0, i32 15
  store i32 -1610280873, ptr %1477, align 4, !tbaa !33
  %1478 = load ptr, ptr %5, align 8, !tbaa !5
  %1479 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1478, i32 0, i32 128
  store i8 120, ptr %1479, align 4, !tbaa !34
  br label %1489

1480:                                             ; preds = %1146, %1141
  %1481 = load ptr, ptr %4, align 8, !tbaa !5
  %1482 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !9
  %1483 = icmp ult i32 1, %1482
  br i1 %1483, label %1484, label %1486

1484:                                             ; preds = %1480
  %1485 = load i32, ptr @libxsmm_verbosity, align 4, !tbaa !9
  br label %1487

1486:                                             ; preds = %1480
  br label %1487

1487:                                             ; preds = %1486, %1484
  %1488 = phi i32 [ %1485, %1484 ], [ 1, %1486 ]
  call void @libxsmm_handle_error(ptr noundef %1481, i32 noundef 90005, ptr noundef @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef @.str, i32 noundef 721, i32 noundef %1488)
  br label %1489

1489:                                             ; preds = %1487, %1465
  br label %1490

1490:                                             ; preds = %1489, %1140
  br label %1491

1491:                                             ; preds = %1490, %774
  br label %1492

1492:                                             ; preds = %1491, %408
  store i32 0, ptr %11, align 4
  br label %1493

1493:                                             ; preds = %1492, %1460, %1387, %1301, %1221, %1138, %772, %406
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #3
  %1494 = load i32, ptr %11, align 4
  switch i32 %1494, label %1496 [
    i32 0, label %1495
    i32 1, label %1495
  ]

1495:                                             ; preds = %1493, %1493
  ret void

1496:                                             ; preds = %1493
  unreachable
}

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 28}
!12 = !{!"libxsmm_generated_code", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28}
!13 = !{!14, !10, i64 0}
!14 = !{!"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}
!15 = !{!14, !10, i64 4}
!16 = !{!14, !10, i64 8}
!17 = !{!14, !10, i64 24}
!18 = !{!19, !7, i64 31}
!19 = !{!"libxsmm_meltw_descriptor", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !7, i64 24, !7, i64 25, !7, i64 26, !20, i64 27, !20, i64 29, !7, i64 31}
!20 = !{!"short", !7, i64 0}
!21 = !{!14, !10, i64 12}
!22 = !{!14, !10, i64 28}
!23 = !{!19, !20, i64 29}
!24 = !{!14, !10, i64 16}
!25 = !{!14, !10, i64 32}
!26 = !{!14, !10, i64 20}
!27 = !{!14, !10, i64 36}
!28 = !{!14, !10, i64 40}
!29 = !{!14, !10, i64 44}
!30 = !{!14, !10, i64 48}
!31 = !{!14, !10, i64 52}
!32 = !{!14, !10, i64 56}
!33 = !{!14, !10, i64 60}
!34 = !{!14, !7, i64 512}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@.str = external hidden unnamed_addr constant [91 x i8], align 1
@libxsmm_ninit = external local_unnamed_addr global i32, align 4
@libxsmm_verbosity = external local_unnamed_addr global i32, align 4
@__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr = external hidden unnamed_addr constant [71 x i8], align 1
@switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.4 = private unnamed_addr constant [12 x i32] [i32 8, i32 4, i32 2, i32 2, i32 8, i32 8, i32 8, i32 8, i32 4, i32 4, i32 2, i32 2], align 4
@switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.5 = private unnamed_addr constant [12 x i32] [i32 545592848, i32 537138704, i32 -528017809, i32 -528017809, i32 545592848, i32 545592848, i32 545592848, i32 545592848, i32 537138704, i32 537138704, i32 -528017809, i32 -528017809], align 4
@switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.13 = private unnamed_addr constant [13 x i32] [i32 545592848, i32 537138704, i32 -528017809, i32 -528017809, i32 -536406417, i32 -536406417, i32 545592848, i32 545592848, i32 537138704, i32 537138704, i32 -528017809, i32 -528017809, i32 -536406417], align 4
@switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.21 = private unnamed_addr constant [13 x i32] [i32 -1610280944, i32 -1610346480, i32 -528017809, i32 -528017809, i32 9999, i32 9999, i32 -1610280944, i32 -1610280944, i32 -1610346480, i32 -1610346480, i32 -528017809, i32 -528017809, i32 9999], align 4
@switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.22 = private unnamed_addr constant [13 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], align 4
@switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.23 = private unnamed_addr constant [13 x i32] [i32 545592848, i32 537138704, i32 -528017809, i32 -528017809, i32 9999, i32 9999, i32 545592848, i32 545592848, i32 537138704, i32 537138704, i32 -528017809, i32 -528017809, i32 9999], align 4
@switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.24 = private unnamed_addr constant [15 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 8, i32 1], align 4
@switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.25 = private unnamed_addr constant [15 x i32] [i32 -1610280944, i32 -1610346480, i32 -528017809, i32 -528017809, i32 9999, i32 9999, i32 -1610280944, i32 -1610280944, i32 -1610346480, i32 -1610346480, i32 -528017809, i32 -528017809, i32 9999, i32 -1610280944, i32 9999], align 4

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr(ptr noundef %0, ptr noundef writeonly %1, ptr noundef %2) local_unnamed_addr #1 {
  %4 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef %2, i32 noundef 0) #2
  %5 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef %2, i32 noundef 1) #2
  %6 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef %2, i32 noundef 3) #2
  %7 = getelementptr inbounds i8, ptr %0, i64 28
  %8 = load i32, ptr %7, align 4, !tbaa !5
  %9 = add i32 %8, -1101
  %or.cond742 = icmp ult i32 %9, 899
  br i1 %or.cond742, label %10, label %76

10:                                               ; preds = %3
  store i32 %8, ptr %1, align 4, !tbaa !11
  %11 = getelementptr inbounds i8, ptr %1, i64 4
  store i32 16, ptr %11, align 4, !tbaa !13
  %12 = icmp ult i32 %4, 13
  br i1 %12, label %switch.hole_check, label %13

13:                                               ; preds = %switch.hole_check, %10
  %14 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !14
  %15 = icmp ugt i32 %14, 1
  %16 = load i32, ptr @libxsmm_verbosity, align 4
  %17 = select i1 %15, i32 %16, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90033, ptr noundef nonnull @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef nonnull @.str, i32 noundef 357, i32 noundef %17) #2
  br label %271

switch.hole_check:                                ; preds = %10
  %switch.maskindex = trunc nuw i32 %4 to i16
  %switch.shifted = lshr i16 8063, %switch.maskindex
  %switch.lobit = trunc i16 %switch.shifted to i1
  br i1 %switch.lobit, label %switch.lookup, label %13

switch.lookup:                                    ; preds = %switch.hole_check
  %18 = zext nneg i32 %4 to i64
  %switch.gep = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.22, i64 0, i64 %18
  %switch.load = load i32, ptr %switch.gep, align 4
  %19 = zext nneg i32 %4 to i64
  %switch.gep815 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.13, i64 0, i64 %19
  %switch.load816 = load i32, ptr %switch.gep815, align 4
  %20 = getelementptr inbounds i8, ptr %1, i64 8
  store i32 %switch.load, ptr %20, align 4, !tbaa !15
  %21 = getelementptr inbounds i8, ptr %1, i64 24
  store i32 %switch.load816, ptr %21, align 4, !tbaa !16
  %22 = getelementptr inbounds i8, ptr %2, i64 31
  %23 = load i8, ptr %22, align 1, !tbaa !17
  %24 = and i8 %23, -2
  %switch = icmp eq i8 %24, 2
  br i1 %switch, label %25, label %.thread

25:                                               ; preds = %switch.lookup
  %26 = icmp ult i32 %5, 13
  br i1 %26, label %switch.hole_check818, label %27

27:                                               ; preds = %switch.hole_check818, %25
  %28 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !14
  %29 = icmp ugt i32 %28, 1
  %30 = load i32, ptr @libxsmm_verbosity, align 4
  %31 = select i1 %29, i32 %30, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90033, ptr noundef nonnull @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef nonnull @.str, i32 noundef 379, i32 noundef %31) #2
  br label %271

switch.hole_check818:                             ; preds = %25
  %switch.maskindex820 = trunc nuw i32 %5 to i16
  %switch.shifted821 = lshr i16 8063, %switch.maskindex820
  %switch.lobit822 = trunc i16 %switch.shifted821 to i1
  br i1 %switch.lobit822, label %switch.lookup819, label %27

switch.lookup819:                                 ; preds = %switch.hole_check818
  %32 = zext nneg i32 %5 to i64
  %switch.gep823 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.22, i64 0, i64 %32
  %switch.load824 = load i32, ptr %switch.gep823, align 4
  %33 = zext nneg i32 %5 to i64
  %switch.gep825 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.13, i64 0, i64 %33
  %switch.load826 = load i32, ptr %switch.gep825, align 4
  %34 = getelementptr inbounds i8, ptr %1, i64 12
  store i32 %switch.load824, ptr %34, align 4, !tbaa !20
  %35 = getelementptr inbounds i8, ptr %1, i64 28
  store i32 %switch.load826, ptr %35, align 4, !tbaa !21
  %36 = icmp eq i8 %23, 3
  br i1 %36, label %37, label %.thread

37:                                               ; preds = %switch.lookup819
  %38 = getelementptr inbounds i8, ptr %2, i64 29
  %39 = load i16, ptr %38, align 1, !tbaa !22
  %40 = icmp eq i16 %39, 3
  br i1 %40, label %.thread.sink.split, label %41

41:                                               ; preds = %37
  %42 = icmp ult i32 %6, 12
  br i1 %42, label %switch.hole_check828, label %43

43:                                               ; preds = %switch.hole_check828, %41
  %44 = and i32 %6, -9
  %or.cond47 = icmp eq i32 %44, 4
  br i1 %or.cond47, label %.thread.sink.split, label %45

45:                                               ; preds = %43
  %46 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !14
  %47 = icmp ugt i32 %46, 1
  %48 = load i32, ptr @libxsmm_verbosity, align 4
  %49 = select i1 %47, i32 %48, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90033, ptr noundef nonnull @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef nonnull @.str, i32 noundef 406, i32 noundef %49) #2
  br label %271

switch.hole_check828:                             ; preds = %41
  %switch.maskindex830 = trunc nuw i32 %6 to i16
  %switch.shifted831 = lshr i16 3919, %switch.maskindex830
  %switch.lobit832 = trunc i16 %switch.shifted831 to i1
  br i1 %switch.lobit832, label %switch.lookup829, label %43

switch.lookup829:                                 ; preds = %switch.hole_check828
  %50 = zext nneg i32 %6 to i64
  %switch.gep833 = getelementptr inbounds [12 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.4, i64 0, i64 %50
  %switch.load834 = load i32, ptr %switch.gep833, align 4
  %51 = zext nneg i32 %6 to i64
  %switch.gep835 = getelementptr inbounds [12 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.5, i64 0, i64 %51
  %switch.load836 = load i32, ptr %switch.gep835, align 4
  br label %.thread.sink.split

.thread.sink.split:                               ; preds = %switch.lookup829, %43, %37
  %.sink767 = phi i32 [ 1, %37 ], [ 1, %43 ], [ %switch.load834, %switch.lookup829 ]
  %.sink765 = phi i32 [ -536406417, %37 ], [ -536406417, %43 ], [ %switch.load836, %switch.lookup829 ]
  %52 = getelementptr inbounds i8, ptr %1, i64 16
  store i32 %.sink767, ptr %52, align 4, !tbaa !23
  %53 = getelementptr inbounds i8, ptr %1, i64 32
  store i32 %.sink765, ptr %53, align 4, !tbaa !24
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %switch.lookup, %switch.lookup819
  switch i32 %6, label %66 [
    i32 6, label %54
    i32 0, label %54
    i32 9, label %57
    i32 8, label %57
    i32 1, label %57
    i32 11, label %60
    i32 10, label %60
    i32 3, label %60
    i32 2, label %60
    i32 14, label %63
    i32 12, label %63
    i32 5, label %63
    i32 4, label %63
  ]

54:                                               ; preds = %.thread, %.thread
  %55 = getelementptr inbounds i8, ptr %1, i64 20
  store i32 8, ptr %55, align 4, !tbaa !25
  %56 = tail call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef nonnull %2, i32 noundef 64, i32 noundef 8, i32 noundef 545592848, i32 noundef 545592875)
  br label %.critedge

57:                                               ; preds = %.thread, %.thread, %.thread
  %58 = getelementptr inbounds i8, ptr %1, i64 20
  store i32 4, ptr %58, align 4, !tbaa !25
  %59 = tail call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef nonnull %2, i32 noundef 64, i32 noundef 4, i32 noundef 537138704, i32 noundef 537138731)
  br label %.critedge

60:                                               ; preds = %.thread, %.thread, %.thread, %.thread
  %61 = getelementptr inbounds i8, ptr %1, i64 20
  store i32 2, ptr %61, align 4, !tbaa !25
  %62 = tail call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef nonnull %2, i32 noundef 64, i32 noundef 2, i32 noundef -528017809, i32 noundef 537138731)
  br label %.critedge

63:                                               ; preds = %.thread, %.thread, %.thread, %.thread
  %64 = getelementptr inbounds i8, ptr %1, i64 20
  store i32 1, ptr %64, align 4, !tbaa !25
  %65 = tail call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef nonnull %2, i32 noundef 64, i32 noundef 1, i32 noundef -536406417, i32 noundef 537138731)
  br label %.critedge

66:                                               ; preds = %.thread
  %67 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !14
  %68 = icmp ugt i32 %67, 1
  %69 = load i32, ptr @libxsmm_verbosity, align 4
  %70 = select i1 %68, i32 %69, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90033, ptr noundef nonnull @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef nonnull @.str, i32 noundef 430, i32 noundef %70) #2
  br label %271

.critedge:                                        ; preds = %57, %63, %60, %54
  %.sink769 = phi i32 [ %59, %57 ], [ %65, %63 ], [ %62, %60 ], [ %56, %54 ]
  %71 = getelementptr inbounds i8, ptr %1, i64 36
  store i32 %.sink769, ptr %71, align 4, !tbaa !26
  %72 = getelementptr inbounds i8, ptr %1, i64 40
  store <4 x i32> <i32 30000, i32 30008, i32 30002, i32 30100>, ptr %72, align 4, !tbaa !14
  %73 = getelementptr inbounds i8, ptr %1, i64 56
  store i32 -1568407413, ptr %73, align 4, !tbaa !27
  %74 = getelementptr inbounds i8, ptr %1, i64 60
  store i32 805639919, ptr %74, align 4, !tbaa !28
  %75 = getelementptr inbounds i8, ptr %1, i64 512
  store i8 122, ptr %75, align 4, !tbaa !29
  br label %271

76:                                               ; preds = %3
  %77 = add i32 %8, -1051
  %or.cond = icmp ult i32 %77, 50
  br i1 %or.cond, label %78, label %142

78:                                               ; preds = %76
  store i32 %8, ptr %1, align 4, !tbaa !11
  %79 = getelementptr inbounds i8, ptr %1, i64 4
  store i32 32, ptr %79, align 4, !tbaa !13
  %80 = icmp ult i32 %4, 13
  br i1 %80, label %switch.hole_check838, label %81

81:                                               ; preds = %switch.hole_check838, %78
  %82 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !14
  %83 = icmp ugt i32 %82, 1
  %84 = load i32, ptr @libxsmm_verbosity, align 4
  %85 = select i1 %83, i32 %84, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90033, ptr noundef nonnull @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef nonnull @.str, i32 noundef 458, i32 noundef %85) #2
  br label %271

switch.hole_check838:                             ; preds = %78
  %switch.maskindex840 = trunc nuw i32 %4 to i16
  %switch.shifted841 = lshr i16 8063, %switch.maskindex840
  %switch.lobit842 = trunc i16 %switch.shifted841 to i1
  br i1 %switch.lobit842, label %switch.lookup839, label %81

switch.lookup839:                                 ; preds = %switch.hole_check838
  %86 = zext nneg i32 %4 to i64
  %switch.gep843 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.22, i64 0, i64 %86
  %switch.load844 = load i32, ptr %switch.gep843, align 4
  %87 = zext nneg i32 %4 to i64
  %switch.gep845 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.13, i64 0, i64 %87
  %switch.load846 = load i32, ptr %switch.gep845, align 4
  %88 = getelementptr inbounds i8, ptr %1, i64 8
  store i32 %switch.load844, ptr %88, align 4, !tbaa !15
  %89 = getelementptr inbounds i8, ptr %1, i64 24
  store i32 %switch.load846, ptr %89, align 4, !tbaa !16
  %90 = getelementptr inbounds i8, ptr %2, i64 31
  %91 = load i8, ptr %90, align 1, !tbaa !17
  %92 = and i8 %91, -2
  %switch750 = icmp eq i8 %92, 2
  br i1 %switch750, label %93, label %.thread755

93:                                               ; preds = %switch.lookup839
  %94 = icmp ult i32 %5, 13
  br i1 %94, label %switch.hole_check848, label %95

95:                                               ; preds = %switch.hole_check848, %93
  %96 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !14
  %97 = icmp ugt i32 %96, 1
  %98 = load i32, ptr @libxsmm_verbosity, align 4
  %99 = select i1 %97, i32 %98, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90033, ptr noundef nonnull @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef nonnull @.str, i32 noundef 477, i32 noundef %99) #2
  br label %271

switch.hole_check848:                             ; preds = %93
  %switch.maskindex850 = trunc nuw i32 %5 to i16
  %switch.shifted851 = lshr i16 8063, %switch.maskindex850
  %switch.lobit852 = trunc i16 %switch.shifted851 to i1
  br i1 %switch.lobit852, label %switch.lookup849, label %95

switch.lookup849:                                 ; preds = %switch.hole_check848
  %100 = zext nneg i32 %5 to i64
  %switch.gep853 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.22, i64 0, i64 %100
  %switch.load854 = load i32, ptr %switch.gep853, align 4
  %101 = zext nneg i32 %5 to i64
  %switch.gep855 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.13, i64 0, i64 %101
  %switch.load856 = load i32, ptr %switch.gep855, align 4
  %102 = getelementptr inbounds i8, ptr %1, i64 12
  store i32 %switch.load854, ptr %102, align 4, !tbaa !20
  %103 = getelementptr inbounds i8, ptr %1, i64 28
  store i32 %switch.load856, ptr %103, align 4, !tbaa !21
  %104 = icmp eq i8 %91, 3
  br i1 %104, label %105, label %.thread755

105:                                              ; preds = %switch.lookup849
  %106 = getelementptr inbounds i8, ptr %2, i64 29
  %107 = load i16, ptr %106, align 1, !tbaa !22
  %108 = icmp eq i16 %107, 3
  br i1 %108, label %.thread755.sink.split, label %109

109:                                              ; preds = %105
  %110 = icmp ult i32 %6, 13
  br i1 %110, label %switch.hole_check858, label %111

111:                                              ; preds = %switch.hole_check858, %109
  %112 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !14
  %113 = icmp ugt i32 %112, 1
  %114 = load i32, ptr @libxsmm_verbosity, align 4
  %115 = select i1 %113, i32 %114, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90033, ptr noundef nonnull @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef nonnull @.str, i32 noundef 501, i32 noundef %115) #2
  br label %271

switch.hole_check858:                             ; preds = %109
  %switch.maskindex860 = trunc nuw i32 %6 to i16
  %switch.shifted861 = lshr i16 8063, %switch.maskindex860
  %switch.lobit862 = trunc i16 %switch.shifted861 to i1
  br i1 %switch.lobit862, label %switch.lookup859, label %111

switch.lookup859:                                 ; preds = %switch.hole_check858
  %116 = zext nneg i32 %6 to i64
  %switch.gep863 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.22, i64 0, i64 %116
  %switch.load864 = load i32, ptr %switch.gep863, align 4
  %117 = zext nneg i32 %6 to i64
  %switch.gep865 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.13, i64 0, i64 %117
  %switch.load866 = load i32, ptr %switch.gep865, align 4
  br label %.thread755.sink.split

.thread755.sink.split:                            ; preds = %switch.lookup859, %105
  %.sink781 = phi i32 [ 1, %105 ], [ %switch.load864, %switch.lookup859 ]
  %.sink779 = phi i32 [ -536406417, %105 ], [ %switch.load866, %switch.lookup859 ]
  %118 = getelementptr inbounds i8, ptr %1, i64 16
  store i32 %.sink781, ptr %118, align 4, !tbaa !23
  %119 = getelementptr inbounds i8, ptr %1, i64 32
  store i32 %.sink779, ptr %119, align 4, !tbaa !24
  br label %.thread755

.thread755:                                       ; preds = %.thread755.sink.split, %switch.lookup839, %switch.lookup849
  switch i32 %6, label %132 [
    i32 6, label %120
    i32 0, label %120
    i32 9, label %123
    i32 8, label %123
    i32 1, label %123
    i32 11, label %126
    i32 10, label %126
    i32 3, label %126
    i32 2, label %126
    i32 14, label %129
    i32 12, label %129
    i32 5, label %129
    i32 4, label %129
  ]

120:                                              ; preds = %.thread755, %.thread755
  %121 = getelementptr inbounds i8, ptr %1, i64 20
  store i32 8, ptr %121, align 4, !tbaa !25
  %122 = tail call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef nonnull %2, i32 noundef 32, i32 noundef 8, i32 noundef 545592848, i32 noundef 545592875)
  br label %.critedge744

123:                                              ; preds = %.thread755, %.thread755, %.thread755
  %124 = getelementptr inbounds i8, ptr %1, i64 20
  store i32 4, ptr %124, align 4, !tbaa !25
  %125 = tail call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef nonnull %2, i32 noundef 32, i32 noundef 4, i32 noundef 537138704, i32 noundef 537138731)
  br label %.critedge744

126:                                              ; preds = %.thread755, %.thread755, %.thread755, %.thread755
  %127 = getelementptr inbounds i8, ptr %1, i64 20
  store i32 2, ptr %127, align 4, !tbaa !25
  %128 = tail call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef nonnull %2, i32 noundef 32, i32 noundef 2, i32 noundef -528017809, i32 noundef 537138731)
  br label %.critedge744

129:                                              ; preds = %.thread755, %.thread755, %.thread755, %.thread755
  %130 = getelementptr inbounds i8, ptr %1, i64 20
  store i32 1, ptr %130, align 4, !tbaa !25
  %131 = tail call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef nonnull %2, i32 noundef 32, i32 noundef 1, i32 noundef -536406417, i32 noundef 537138731)
  br label %.critedge744

132:                                              ; preds = %.thread755
  %133 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !14
  %134 = icmp ugt i32 %133, 1
  %135 = load i32, ptr @libxsmm_verbosity, align 4
  %136 = select i1 %134, i32 %135, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90033, ptr noundef nonnull @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef nonnull @.str, i32 noundef 524, i32 noundef %136) #2
  br label %271

.critedge744:                                     ; preds = %123, %129, %126, %120
  %.sink783 = phi i32 [ %125, %123 ], [ %131, %129 ], [ %128, %126 ], [ %122, %120 ]
  %137 = getelementptr inbounds i8, ptr %1, i64 36
  store i32 %.sink783, ptr %137, align 4, !tbaa !26
  %138 = getelementptr inbounds i8, ptr %1, i64 40
  store <4 x i32> <i32 30000, i32 30008, i32 30002, i32 30100>, ptr %138, align 4, !tbaa !14
  %139 = getelementptr inbounds i8, ptr %1, i64 56
  store i32 -1568407413, ptr %139, align 4, !tbaa !27
  %140 = getelementptr inbounds i8, ptr %1, i64 60
  store i32 805639919, ptr %140, align 4, !tbaa !28
  %141 = getelementptr inbounds i8, ptr %1, i64 512
  store i8 121, ptr %141, align 4, !tbaa !29
  br label %271

142:                                              ; preds = %76
  %143 = add i32 %8, -1005
  %or.cond745 = icmp ult i32 %143, 46
  br i1 %or.cond745, label %144, label %208

144:                                              ; preds = %142
  store i32 %8, ptr %1, align 4, !tbaa !11
  %145 = getelementptr inbounds i8, ptr %1, i64 4
  store i32 16, ptr %145, align 4, !tbaa !13
  %146 = icmp ult i32 %4, 13
  br i1 %146, label %switch.hole_check868, label %147

147:                                              ; preds = %switch.hole_check868, %144
  %148 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !14
  %149 = icmp ugt i32 %148, 1
  %150 = load i32, ptr @libxsmm_verbosity, align 4
  %151 = select i1 %149, i32 %150, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90033, ptr noundef nonnull @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef nonnull @.str, i32 noundef 552, i32 noundef %151) #2
  br label %271

switch.hole_check868:                             ; preds = %144
  %switch.maskindex870 = trunc nuw i32 %4 to i16
  %switch.shifted871 = lshr i16 8063, %switch.maskindex870
  %switch.lobit872 = trunc i16 %switch.shifted871 to i1
  br i1 %switch.lobit872, label %switch.lookup869, label %147

switch.lookup869:                                 ; preds = %switch.hole_check868
  %152 = zext nneg i32 %4 to i64
  %switch.gep873 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.22, i64 0, i64 %152
  %switch.load874 = load i32, ptr %switch.gep873, align 4
  %153 = zext nneg i32 %4 to i64
  %switch.gep875 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.13, i64 0, i64 %153
  %switch.load876 = load i32, ptr %switch.gep875, align 4
  %154 = getelementptr inbounds i8, ptr %1, i64 8
  store i32 %switch.load874, ptr %154, align 4, !tbaa !15
  %155 = getelementptr inbounds i8, ptr %1, i64 24
  store i32 %switch.load876, ptr %155, align 4, !tbaa !16
  %156 = getelementptr inbounds i8, ptr %2, i64 31
  %157 = load i8, ptr %156, align 1, !tbaa !17
  %158 = and i8 %157, -2
  %switch752 = icmp eq i8 %158, 2
  br i1 %switch752, label %159, label %.thread756

159:                                              ; preds = %switch.lookup869
  %160 = icmp ult i32 %5, 13
  br i1 %160, label %switch.hole_check878, label %161

161:                                              ; preds = %switch.hole_check878, %159
  %162 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !14
  %163 = icmp ugt i32 %162, 1
  %164 = load i32, ptr @libxsmm_verbosity, align 4
  %165 = select i1 %163, i32 %164, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90033, ptr noundef nonnull @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef nonnull @.str, i32 noundef 571, i32 noundef %165) #2
  br label %271

switch.hole_check878:                             ; preds = %159
  %switch.maskindex880 = trunc nuw i32 %5 to i16
  %switch.shifted881 = lshr i16 8063, %switch.maskindex880
  %switch.lobit882 = trunc i16 %switch.shifted881 to i1
  br i1 %switch.lobit882, label %switch.lookup879, label %161

switch.lookup879:                                 ; preds = %switch.hole_check878
  %166 = zext nneg i32 %5 to i64
  %switch.gep883 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.22, i64 0, i64 %166
  %switch.load884 = load i32, ptr %switch.gep883, align 4
  %167 = zext nneg i32 %5 to i64
  %switch.gep885 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.23, i64 0, i64 %167
  %switch.load886 = load i32, ptr %switch.gep885, align 4
  %168 = getelementptr inbounds i8, ptr %1, i64 12
  store i32 %switch.load884, ptr %168, align 4, !tbaa !20
  %169 = getelementptr inbounds i8, ptr %1, i64 28
  store i32 %switch.load886, ptr %169, align 4, !tbaa !21
  %170 = icmp eq i8 %157, 3
  br i1 %170, label %171, label %.thread756

171:                                              ; preds = %switch.lookup879
  %172 = getelementptr inbounds i8, ptr %2, i64 29
  %173 = load i16, ptr %172, align 1, !tbaa !22
  %174 = icmp eq i16 %173, 3
  br i1 %174, label %.thread756.sink.split, label %175

175:                                              ; preds = %171
  %176 = icmp ult i32 %6, 13
  br i1 %176, label %switch.hole_check888, label %177

177:                                              ; preds = %switch.hole_check888, %175
  %178 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !14
  %179 = icmp ugt i32 %178, 1
  %180 = load i32, ptr @libxsmm_verbosity, align 4
  %181 = select i1 %179, i32 %180, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90033, ptr noundef nonnull @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef nonnull @.str, i32 noundef 595, i32 noundef %181) #2
  br label %271

switch.hole_check888:                             ; preds = %175
  %switch.maskindex890 = trunc nuw i32 %6 to i16
  %switch.shifted891 = lshr i16 8063, %switch.maskindex890
  %switch.lobit892 = trunc i16 %switch.shifted891 to i1
  br i1 %switch.lobit892, label %switch.lookup889, label %177

switch.lookup889:                                 ; preds = %switch.hole_check888
  %182 = zext nneg i32 %6 to i64
  %switch.gep893 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.22, i64 0, i64 %182
  %switch.load894 = load i32, ptr %switch.gep893, align 4
  %183 = zext nneg i32 %6 to i64
  %switch.gep895 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.23, i64 0, i64 %183
  %switch.load896 = load i32, ptr %switch.gep895, align 4
  br label %.thread756.sink.split

.thread756.sink.split:                            ; preds = %switch.lookup889, %171
  %.sink795 = phi i32 [ 1, %171 ], [ %switch.load894, %switch.lookup889 ]
  %.sink793 = phi i32 [ -536406417, %171 ], [ %switch.load896, %switch.lookup889 ]
  %184 = getelementptr inbounds i8, ptr %1, i64 16
  store i32 %.sink795, ptr %184, align 4, !tbaa !23
  %185 = getelementptr inbounds i8, ptr %1, i64 32
  store i32 %.sink793, ptr %185, align 4, !tbaa !24
  br label %.thread756

.thread756:                                       ; preds = %.thread756.sink.split, %switch.lookup869, %switch.lookup879
  switch i32 %6, label %198 [
    i32 6, label %186
    i32 0, label %186
    i32 9, label %189
    i32 8, label %189
    i32 1, label %189
    i32 11, label %192
    i32 10, label %192
    i32 3, label %192
    i32 2, label %192
    i32 14, label %195
    i32 12, label %195
    i32 5, label %195
    i32 4, label %195
  ]

186:                                              ; preds = %.thread756, %.thread756
  %187 = getelementptr inbounds i8, ptr %1, i64 20
  store i32 8, ptr %187, align 4, !tbaa !25
  %188 = tail call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef nonnull %2, i32 noundef 32, i32 noundef 8, i32 noundef 545592848, i32 noundef 545592875)
  br label %.critedge747

189:                                              ; preds = %.thread756, %.thread756, %.thread756
  %190 = getelementptr inbounds i8, ptr %1, i64 20
  store i32 4, ptr %190, align 4, !tbaa !25
  %191 = tail call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef nonnull %2, i32 noundef 32, i32 noundef 4, i32 noundef 537138704, i32 noundef 537138731)
  br label %.critedge747

192:                                              ; preds = %.thread756, %.thread756, %.thread756, %.thread756
  %193 = getelementptr inbounds i8, ptr %1, i64 20
  store i32 2, ptr %193, align 4, !tbaa !25
  %194 = tail call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef nonnull %2, i32 noundef 32, i32 noundef 2, i32 noundef -528017809, i32 noundef 537138731)
  br label %.critedge747

195:                                              ; preds = %.thread756, %.thread756, %.thread756, %.thread756
  %196 = getelementptr inbounds i8, ptr %1, i64 20
  store i32 1, ptr %196, align 4, !tbaa !25
  %197 = tail call i32 @libxsmm_generator_mateltwise_select_store_instruction(ptr noundef nonnull %2, i32 noundef 32, i32 noundef 1, i32 noundef -536406417, i32 noundef -536406417)
  br label %.critedge747

198:                                              ; preds = %.thread756
  %199 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !14
  %200 = icmp ugt i32 %199, 1
  %201 = load i32, ptr @libxsmm_verbosity, align 4
  %202 = select i1 %200, i32 %201, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90033, ptr noundef nonnull @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef nonnull @.str, i32 noundef 619, i32 noundef %202) #2
  br label %271

.critedge747:                                     ; preds = %189, %195, %192, %186
  %.sink797 = phi i32 [ %191, %189 ], [ %197, %195 ], [ %194, %192 ], [ %188, %186 ]
  %203 = getelementptr inbounds i8, ptr %1, i64 36
  store i32 %.sink797, ptr %203, align 4, !tbaa !26
  %204 = getelementptr inbounds i8, ptr %1, i64 40
  store <4 x i32> <i32 30000, i32 30008, i32 30002, i32 30100>, ptr %204, align 4, !tbaa !14
  %205 = getelementptr inbounds i8, ptr %1, i64 56
  store i32 -1568407413, ptr %205, align 4, !tbaa !27
  %206 = getelementptr inbounds i8, ptr %1, i64 60
  store i32 805639919, ptr %206, align 4, !tbaa !28
  %207 = getelementptr inbounds i8, ptr %1, i64 512
  store i8 121, ptr %207, align 4, !tbaa !29
  br label %271

208:                                              ; preds = %142
  %209 = add i32 %8, -1002
  %or.cond748 = icmp ult i32 %209, 3
  br i1 %or.cond748, label %210, label %266

210:                                              ; preds = %208
  store i32 %8, ptr %1, align 4, !tbaa !11
  %211 = getelementptr inbounds i8, ptr %1, i64 4
  store i32 16, ptr %211, align 4, !tbaa !13
  %212 = icmp ult i32 %4, 13
  br i1 %212, label %switch.hole_check898, label %213

213:                                              ; preds = %switch.hole_check898, %210
  %214 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !14
  %215 = icmp ugt i32 %214, 1
  %216 = load i32, ptr @libxsmm_verbosity, align 4
  %217 = select i1 %215, i32 %216, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90033, ptr noundef nonnull @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef nonnull @.str, i32 noundef 646, i32 noundef %217) #2
  br label %271

switch.hole_check898:                             ; preds = %210
  %switch.maskindex900 = trunc nuw i32 %4 to i16
  %switch.shifted901 = lshr i16 8063, %switch.maskindex900
  %switch.lobit902 = trunc i16 %switch.shifted901 to i1
  br i1 %switch.lobit902, label %switch.lookup899, label %213

switch.lookup899:                                 ; preds = %switch.hole_check898
  %218 = zext nneg i32 %4 to i64
  %switch.gep903 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.22, i64 0, i64 %218
  %switch.load904 = load i32, ptr %switch.gep903, align 4
  %219 = zext nneg i32 %4 to i64
  %switch.gep905 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.21, i64 0, i64 %219
  %switch.load906 = load i32, ptr %switch.gep905, align 4
  %220 = getelementptr inbounds i8, ptr %1, i64 8
  store i32 %switch.load904, ptr %220, align 4, !tbaa !15
  %221 = getelementptr inbounds i8, ptr %1, i64 24
  store i32 %switch.load906, ptr %221, align 4, !tbaa !16
  %222 = getelementptr inbounds i8, ptr %2, i64 31
  %223 = load i8, ptr %222, align 1, !tbaa !17
  %224 = and i8 %223, -2
  %switch754 = icmp eq i8 %224, 2
  br i1 %switch754, label %225, label %.thread757

225:                                              ; preds = %switch.lookup899
  %226 = icmp ult i32 %5, 13
  br i1 %226, label %switch.hole_check908, label %227

227:                                              ; preds = %switch.hole_check908, %225
  %228 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !14
  %229 = icmp ugt i32 %228, 1
  %230 = load i32, ptr @libxsmm_verbosity, align 4
  %231 = select i1 %229, i32 %230, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90033, ptr noundef nonnull @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef nonnull @.str, i32 noundef 665, i32 noundef %231) #2
  br label %271

switch.hole_check908:                             ; preds = %225
  %switch.maskindex910 = trunc nuw i32 %5 to i16
  %switch.shifted911 = lshr i16 8063, %switch.maskindex910
  %switch.lobit912 = trunc i16 %switch.shifted911 to i1
  br i1 %switch.lobit912, label %switch.lookup909, label %227

switch.lookup909:                                 ; preds = %switch.hole_check908
  %232 = zext nneg i32 %5 to i64
  %switch.gep913 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.22, i64 0, i64 %232
  %switch.load914 = load i32, ptr %switch.gep913, align 4
  %233 = zext nneg i32 %5 to i64
  %switch.gep915 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.21, i64 0, i64 %233
  %switch.load916 = load i32, ptr %switch.gep915, align 4
  %234 = getelementptr inbounds i8, ptr %1, i64 12
  store i32 %switch.load914, ptr %234, align 4, !tbaa !20
  %235 = getelementptr inbounds i8, ptr %1, i64 28
  store i32 %switch.load916, ptr %235, align 4, !tbaa !21
  %236 = icmp eq i8 %223, 3
  br i1 %236, label %237, label %.thread757

237:                                              ; preds = %switch.lookup909
  %238 = getelementptr inbounds i8, ptr %2, i64 29
  %239 = load i16, ptr %238, align 1, !tbaa !22
  %240 = icmp eq i16 %239, 3
  br i1 %240, label %.thread757.sink.split, label %241

241:                                              ; preds = %237
  %242 = icmp ult i32 %6, 13
  br i1 %242, label %switch.hole_check918, label %243

243:                                              ; preds = %switch.hole_check918, %241
  %244 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !14
  %245 = icmp ugt i32 %244, 1
  %246 = load i32, ptr @libxsmm_verbosity, align 4
  %247 = select i1 %245, i32 %246, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90033, ptr noundef nonnull @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef nonnull @.str, i32 noundef 689, i32 noundef %247) #2
  br label %271

switch.hole_check918:                             ; preds = %241
  %switch.maskindex920 = trunc nuw i32 %6 to i16
  %switch.shifted921 = lshr i16 8063, %switch.maskindex920
  %switch.lobit922 = trunc i16 %switch.shifted921 to i1
  br i1 %switch.lobit922, label %switch.lookup919, label %243

switch.lookup919:                                 ; preds = %switch.hole_check918
  %248 = zext nneg i32 %6 to i64
  %switch.gep923 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.22, i64 0, i64 %248
  %switch.load924 = load i32, ptr %switch.gep923, align 4
  %249 = zext nneg i32 %6 to i64
  %switch.gep925 = getelementptr inbounds [13 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.23, i64 0, i64 %249
  %switch.load926 = load i32, ptr %switch.gep925, align 4
  br label %.thread757.sink.split

.thread757.sink.split:                            ; preds = %switch.lookup919, %237
  %.sink809 = phi i32 [ 1, %237 ], [ %switch.load924, %switch.lookup919 ]
  %.sink807 = phi i32 [ -536406417, %237 ], [ %switch.load926, %switch.lookup919 ]
  %250 = getelementptr inbounds i8, ptr %1, i64 16
  store i32 %.sink809, ptr %250, align 4, !tbaa !23
  %251 = getelementptr inbounds i8, ptr %1, i64 32
  store i32 %.sink807, ptr %251, align 4, !tbaa !24
  br label %.thread757

.thread757:                                       ; preds = %.thread757.sink.split, %switch.lookup899, %switch.lookup909
  %252 = icmp ult i32 %6, 15
  br i1 %252, label %switch.hole_check928, label %253

253:                                              ; preds = %switch.hole_check928, %.thread757
  %254 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !14
  %255 = icmp ugt i32 %254, 1
  %256 = load i32, ptr @libxsmm_verbosity, align 4
  %257 = select i1 %255, i32 %256, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90033, ptr noundef nonnull @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef nonnull @.str, i32 noundef 709, i32 noundef %257) #2
  br label %271

switch.hole_check928:                             ; preds = %.thread757
  %switch.maskindex930 = trunc nuw i32 %6 to i16
  %switch.shifted931 = lshr i16 24447, %switch.maskindex930
  %switch.lobit932 = trunc i16 %switch.shifted931 to i1
  br i1 %switch.lobit932, label %switch.lookup929, label %253

switch.lookup929:                                 ; preds = %switch.hole_check928
  %258 = zext nneg i32 %6 to i64
  %switch.gep933 = getelementptr inbounds [15 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.24, i64 0, i64 %258
  %switch.load934 = load i32, ptr %switch.gep933, align 4
  %259 = zext nneg i32 %6 to i64
  %switch.gep935 = getelementptr inbounds [15 x i32], ptr @switch.table.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr.25, i64 0, i64 %259
  %switch.load936 = load i32, ptr %switch.gep935, align 4
  %260 = getelementptr inbounds i8, ptr %1, i64 20
  store i32 %switch.load934, ptr %260, align 4, !tbaa !25
  %261 = getelementptr inbounds i8, ptr %1, i64 36
  store i32 %switch.load936, ptr %261, align 4, !tbaa !26
  %262 = getelementptr inbounds i8, ptr %1, i64 40
  store <4 x i32> <i32 30000, i32 30008, i32 30002, i32 30100>, ptr %262, align 4, !tbaa !14
  %263 = getelementptr inbounds i8, ptr %1, i64 56
  store i32 -1568407413, ptr %263, align 4, !tbaa !27
  %264 = getelementptr inbounds i8, ptr %1, i64 60
  store i32 -1610280873, ptr %264, align 4, !tbaa !28
  %265 = getelementptr inbounds i8, ptr %1, i64 512
  store i8 120, ptr %265, align 4, !tbaa !29
  br label %271

266:                                              ; preds = %208
  %267 = load i32, ptr @libxsmm_ninit, align 4, !tbaa !14
  %268 = icmp ugt i32 %267, 1
  %269 = load i32, ptr @libxsmm_verbosity, align 4
  %270 = select i1 %268, i32 %269, i32 1
  tail call void @libxsmm_handle_error(ptr noundef nonnull %0, i32 noundef 90005, ptr noundef nonnull @__func__.libxsmm_generator_mateltwise_update_micro_kernel_config_dtype_aluinstr, ptr noundef nonnull @.str, i32 noundef 721, i32 noundef %270) #2
  br label %271

271:                                              ; preds = %266, %switch.lookup929, %.critedge, %.critedge744, %.critedge747, %147, %161, %177, %198, %81, %95, %111, %132, %13, %27, %45, %66, %253, %243, %227, %213
  ret void
}

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

attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { 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 #2 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !10, i64 28}
!6 = !{!"libxsmm_generated_code", !7, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!12, !10, i64 0}
!12 = !{!"libxsmm_mateltwise_kernel_config_struct", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !10, i64 80, !10, i64 84, !10, i64 88, !10, i64 92, !10, i64 96, !10, i64 100, !10, i64 104, !10, i64 108, !10, i64 112, !10, i64 116, !10, i64 120, !10, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148, !10, i64 152, !10, i64 156, !10, i64 160, !10, i64 164, !10, i64 168, !10, i64 172, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !10, i64 192, !10, i64 196, !10, i64 200, !10, i64 204, !10, i64 208, !10, i64 212, !10, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !10, i64 232, !10, i64 236, !10, i64 240, !10, i64 244, !10, i64 248, !10, i64 252, !10, i64 256, !10, i64 260, !10, i64 264, !10, i64 268, !10, i64 272, !10, i64 276, !10, i64 280, !10, i64 284, !10, i64 288, !10, i64 292, !10, i64 296, !10, i64 300, !10, i64 304, !10, i64 308, !10, i64 312, !10, i64 316, !10, i64 320, !10, i64 324, !10, i64 328, !10, i64 332, !10, i64 336, !10, i64 340, !10, i64 344, !10, i64 348, !10, i64 352, !10, i64 356, !10, i64 360, !10, i64 364, !10, i64 368, !10, i64 372, !10, i64 376, !10, i64 380, !10, i64 384, !10, i64 388, !10, i64 392, !10, i64 396, !10, i64 400, !10, i64 404, !10, i64 408, !10, i64 412, !10, i64 416, !10, i64 420, !10, i64 424, !10, i64 428, !10, i64 432, !10, i64 436, !10, i64 440, !10, i64 444, !10, i64 448, !10, i64 452, !10, i64 456, !10, i64 460, !10, i64 464, !10, i64 468, !10, i64 472, !10, i64 476, !10, i64 480, !10, i64 484, !10, i64 488, !10, i64 492, !10, i64 496, !10, i64 500, !10, i64 504, !10, i64 508, !8, i64 512}
!13 = !{!12, !10, i64 4}
!14 = !{!10, !10, i64 0}
!15 = !{!12, !10, i64 8}
!16 = !{!12, !10, i64 24}
!17 = !{!18, !8, i64 31}
!18 = !{!"libxsmm_meltw_descriptor", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !8, i64 24, !8, i64 25, !8, i64 26, !19, i64 27, !19, i64 29, !8, i64 31}
!19 = !{!"short", !8, i64 0}
!20 = !{!12, !10, i64 12}
!21 = !{!12, !10, i64 28}
!22 = !{!18, !19, i64 29}
!23 = !{!12, !10, i64 16}
!24 = !{!12, !10, i64 32}
!25 = !{!12, !10, i64 20}
!26 = !{!12, !10, i64 36}
!27 = !{!12, !10, i64 56}
!28 = !{!12, !10, i64 60}
!29 = !{!12, !8, i64 512}


; Effective O3 passes: ConstantMergePass,CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass