; LLVM IR from libxsmm/libxsmm :: src (generator_mateltwise_unary_binary_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_meltw_descriptor = type <{ i32, i32, i32, i32, i32, i32, i8, i8, i8, i16, i16, i8 }>
%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 }

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

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

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

declare void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef) #1

declare void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef) #1

; Function Attrs: nounwind uwtable
define dso_local void @libxsmm_compute_unary_2d_reg_block_op(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %9) #2 {
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  store ptr %0, ptr %11, align 8, !tbaa !5
  store ptr %1, ptr %12, align 8, !tbaa !5
  store ptr %2, ptr %13, align 8, !tbaa !5
  store ptr %3, ptr %14, align 8, !tbaa !5
  store i32 %4, ptr %15, align 4, !tbaa !9
  store i32 %5, ptr %16, align 4, !tbaa !9
  store i32 %6, ptr %17, align 4, !tbaa !9
  store i32 %7, ptr %18, align 4, !tbaa !9
  store i32 %8, ptr %19, align 4, !tbaa !9
  store i32 %9, ptr %20, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #3
  %43 = load ptr, ptr %14, align 8, !tbaa !5
  %44 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %43, i32 0, i32 11
  %45 = load i8, ptr %44, align 1, !tbaa !11
  %46 = zext i8 %45 to i32
  %47 = icmp eq i32 %46, 1
  br i1 %47, label %48, label %55

48:                                               ; preds = %10
  %49 = load ptr, ptr %14, align 8, !tbaa !5
  %50 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %49, i32 0, i32 9
  %51 = load i16, ptr %50, align 1, !tbaa !14
  %52 = zext i16 %51 to i32
  %53 = and i32 %52, 2
  %54 = icmp sgt i32 %53, 0
  br label %55

55:                                               ; preds = %48, %10
  %56 = phi i1 [ false, %10 ], [ %54, %48 ]
  %57 = zext i1 %56 to i64
  %58 = select i1 %56, i32 1, i32 0
  store i32 %58, ptr %24, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #3
  %59 = load ptr, ptr %14, align 8, !tbaa !5
  %60 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %59, i32 0, i32 11
  %61 = load i8, ptr %60, align 1, !tbaa !11
  %62 = zext i8 %61 to i32
  %63 = icmp eq i32 %62, 1
  br i1 %63, label %64, label %71

64:                                               ; preds = %55
  %65 = load ptr, ptr %14, align 8, !tbaa !5
  %66 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %65, i32 0, i32 9
  %67 = load i16, ptr %66, align 1, !tbaa !14
  %68 = zext i16 %67 to i32
  %69 = and i32 %68, 4
  %70 = icmp sgt i32 %69, 0
  br label %71

71:                                               ; preds = %64, %55
  %72 = phi i1 [ false, %55 ], [ %70, %64 ]
  %73 = zext i1 %72 to i64
  %74 = select i1 %72, i32 1, i32 0
  store i32 %74, ptr %25, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #3
  %75 = load ptr, ptr %14, align 8, !tbaa !5
  %76 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %75, i32 0, i32 11
  %77 = load i8, ptr %76, align 1, !tbaa !11
  %78 = zext i8 %77 to i32
  %79 = icmp eq i32 %78, 1
  br i1 %79, label %80, label %87

80:                                               ; preds = %71
  %81 = load ptr, ptr %14, align 8, !tbaa !5
  %82 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %81, i32 0, i32 9
  %83 = load i16, ptr %82, align 1, !tbaa !14
  %84 = zext i16 %83 to i32
  %85 = and i32 %84, 8
  %86 = icmp sgt i32 %85, 0
  br label %87

87:                                               ; preds = %80, %71
  %88 = phi i1 [ false, %71 ], [ %86, %80 ]
  %89 = zext i1 %88 to i64
  %90 = select i1 %88, i32 1, i32 0
  store i32 %90, ptr %26, align 4, !tbaa !9
  %91 = load ptr, ptr %12, align 8, !tbaa !5
  %92 = load i32, ptr %15, align 4, !tbaa !9
  %93 = load i32, ptr %19, align 4, !tbaa !9
  %94 = load i32, ptr %20, align 4, !tbaa !9
  store i32 0, ptr %22, align 4, !tbaa !9
  br label %95

95:                                               ; preds = %1608, %87
  %96 = load i32, ptr %22, align 4, !tbaa !9
  %97 = load i32, ptr %18, align 4, !tbaa !9
  %98 = icmp ult i32 %96, %97
  br i1 %98, label %99, label %1611

99:                                               ; preds = %95
  %100 = load i32, ptr %25, align 4, !tbaa !9
  %101 = icmp eq i32 %100, 1
  br i1 %101, label %102, label %106

102:                                              ; preds = %99
  %103 = load i32, ptr %22, align 4, !tbaa !9
  %104 = icmp ugt i32 %103, 0
  br i1 %104, label %105, label %106

105:                                              ; preds = %102
  br label %1608

106:                                              ; preds = %102, %99
  store i32 0, ptr %21, align 4, !tbaa !9
  br label %107

107:                                              ; preds = %1604, %106
  %108 = load i32, ptr %21, align 4, !tbaa !9
  %109 = load i32, ptr %17, align 4, !tbaa !9
  %110 = icmp ult i32 %108, %109
  br i1 %110, label %111, label %1607

111:                                              ; preds = %107
  %112 = load i32, ptr %24, align 4, !tbaa !9
  %113 = icmp eq i32 %112, 1
  br i1 %113, label %114, label %118

114:                                              ; preds = %111
  %115 = load i32, ptr %21, align 4, !tbaa !9
  %116 = icmp ugt i32 %115, 0
  br i1 %116, label %117, label %118

117:                                              ; preds = %114
  br label %1604

118:                                              ; preds = %114, %111
  %119 = load i32, ptr %26, align 4, !tbaa !9
  %120 = icmp eq i32 %119, 1
  br i1 %120, label %121, label %128

121:                                              ; preds = %118
  %122 = load i32, ptr %21, align 4, !tbaa !9
  %123 = icmp ugt i32 %122, 0
  br i1 %123, label %127, label %124

124:                                              ; preds = %121
  %125 = load i32, ptr %22, align 4, !tbaa !9
  %126 = icmp ugt i32 %125, 0
  br i1 %126, label %127, label %128

127:                                              ; preds = %124, %121
  br label %1604

128:                                              ; preds = %124, %118
  %129 = load i32, ptr %16, align 4, !tbaa !9
  %130 = load i32, ptr %22, align 4, !tbaa !9
  %131 = load i32, ptr %17, align 4, !tbaa !9
  %132 = mul i32 %130, %131
  %133 = add i32 %129, %132
  %134 = load i32, ptr %21, align 4, !tbaa !9
  %135 = add i32 %133, %134
  store i32 %135, ptr %23, align 4, !tbaa !9
  %136 = load ptr, ptr %14, align 8, !tbaa !5
  %137 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %136, i32 0, i32 10
  %138 = load i16, ptr %137, align 1, !tbaa !15
  %139 = zext i16 %138 to i32
  %140 = icmp eq i32 %139, 3
  br i1 %140, label %141, label %170

141:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #3
  %142 = load ptr, ptr %14, align 8, !tbaa !5
  %143 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %142, i32 noundef 4)
  %144 = icmp eq i32 1, %143
  %145 = zext i1 %144 to i32
  store i32 %145, ptr %27, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #3
  %146 = load ptr, ptr %11, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %146, i32 0, i32 6
  %148 = load i32, ptr %147, align 4, !tbaa !16
  %149 = icmp ult i32 %148, 1005
  br i1 %149, label %150, label %155

150:                                              ; preds = %141
  %151 = load i32, ptr %27, align 4, !tbaa !9
  %152 = icmp eq i32 %151, 1
  %153 = zext i1 %152 to i64
  %154 = select i1 %152, i32 -1610346407, i32 -1610280871
  br label %160

155:                                              ; preds = %141
  %156 = load i32, ptr %27, align 4, !tbaa !9
  %157 = icmp eq i32 %156, 1
  %158 = zext i1 %157 to i64
  %159 = select i1 %157, i32 805574233, i32 814028377
  br label %160

160:                                              ; preds = %155, %150
  %161 = phi i32 [ %154, %150 ], [ %159, %155 ]
  store i32 %161, ptr %28, align 4, !tbaa !9
  %162 = load ptr, ptr %11, align 8, !tbaa !5
  %163 = load i32, ptr %28, align 4, !tbaa !9
  %164 = load ptr, ptr %13, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %164, i32 0, i32 128
  %166 = load i8, ptr %165, align 4, !tbaa !18
  %167 = load i32, ptr %23, align 4, !tbaa !9
  %168 = load i32, ptr %23, align 4, !tbaa !9
  %169 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %162, i32 noundef %163, i8 noundef signext %166, i32 noundef %167, i32 noundef %168, i32 noundef %169)
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #3
  br label %1603

170:                                              ; preds = %128
  %171 = load ptr, ptr %14, align 8, !tbaa !5
  %172 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %171, i32 0, i32 10
  %173 = load i16, ptr %172, align 1, !tbaa !15
  %174 = zext i16 %173 to i32
  %175 = icmp eq i32 %174, 13
  br i1 %175, label %176, label %223

176:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #3
  %177 = load ptr, ptr %14, align 8, !tbaa !5
  %178 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %177, i32 noundef 4)
  %179 = icmp eq i32 1, %178
  %180 = zext i1 %179 to i32
  store i32 %180, ptr %29, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #3
  %181 = load ptr, ptr %11, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %181, i32 0, i32 6
  %183 = load i32, ptr %182, align 4, !tbaa !16
  %184 = icmp ult i32 %183, 1005
  br i1 %184, label %185, label %190

185:                                              ; preds = %176
  %186 = load i32, ptr %29, align 4, !tbaa !9
  %187 = icmp eq i32 %186, 1
  %188 = zext i1 %187 to i64
  %189 = select i1 %187, i32 -1610346409, i32 -1610280873
  br label %195

190:                                              ; preds = %176
  %191 = load i32, ptr %29, align 4, !tbaa !9
  %192 = icmp eq i32 %191, 1
  %193 = zext i1 %192 to i64
  %194 = select i1 %192, i32 805574231, i32 814028375
  br label %195

195:                                              ; preds = %190, %185
  %196 = phi i32 [ %189, %185 ], [ %194, %190 ]
  store i32 %196, ptr %30, align 4, !tbaa !9
  %197 = load ptr, ptr %11, align 8, !tbaa !5
  %198 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %197, i32 0, i32 6
  %199 = load i32, ptr %198, align 4, !tbaa !16
  %200 = icmp ult i32 %199, 1005
  br i1 %200, label %201, label %211

201:                                              ; preds = %195
  %202 = load ptr, ptr %11, align 8, !tbaa !5
  %203 = load i32, ptr %30, align 4, !tbaa !9
  %204 = load ptr, ptr %13, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %204, i32 0, i32 128
  %206 = load i8, ptr %205, align 4, !tbaa !18
  %207 = load ptr, ptr %13, align 8, !tbaa !5
  %208 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %207, i32 0, i32 119
  %209 = load i32, ptr %208, align 4, !tbaa !20
  %210 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %202, i32 noundef %203, i8 noundef signext %206, i32 noundef %209, i32 noundef %210)
  br label %222

211:                                              ; preds = %195
  %212 = load ptr, ptr %11, align 8, !tbaa !5
  %213 = load i32, ptr %30, align 4, !tbaa !9
  %214 = load ptr, ptr %13, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %214, i32 0, i32 128
  %216 = load i8, ptr %215, align 4, !tbaa !18
  %217 = load ptr, ptr %13, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %217, i32 0, i32 119
  %219 = load i32, ptr %218, align 4, !tbaa !20
  %220 = load i32, ptr %23, align 4, !tbaa !9
  %221 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %212, i32 noundef %213, i8 noundef signext %216, i32 noundef %219, i32 noundef %220, i32 noundef %221)
  br label %222

222:                                              ; preds = %211, %201
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #3
  br label %1602

223:                                              ; preds = %170
  %224 = load ptr, ptr %14, align 8, !tbaa !5
  %225 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %224, i32 0, i32 10
  %226 = load i16, ptr %225, align 1, !tbaa !15
  %227 = zext i16 %226 to i32
  %228 = icmp eq i32 %227, 14
  br i1 %228, label %229, label %264

229:                                              ; preds = %223
  %230 = load ptr, ptr %11, align 8, !tbaa !5
  %231 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %230, i32 0, i32 6
  %232 = load i32, ptr %231, align 4, !tbaa !16
  %233 = icmp ult i32 %232, 1005
  br i1 %233, label %234, label %248

234:                                              ; preds = %229
  %235 = load ptr, ptr %11, align 8, !tbaa !5
  %236 = load ptr, ptr %14, align 8, !tbaa !5
  %237 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %236, i32 noundef 4)
  %238 = icmp eq i32 1, %237
  %239 = zext i1 %238 to i64
  %240 = select i1 %238, i32 -1610346408, i32 -1610280872
  %241 = load ptr, ptr %13, align 8, !tbaa !5
  %242 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %241, i32 0, i32 128
  %243 = load i8, ptr %242, align 4, !tbaa !18
  %244 = load ptr, ptr %13, align 8, !tbaa !5
  %245 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %244, i32 0, i32 54
  %246 = load i32, ptr %245, align 4, !tbaa !21
  %247 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %235, i32 noundef %240, i8 noundef signext %243, i32 noundef %246, i32 noundef %247)
  br label %263

248:                                              ; preds = %229
  %249 = load ptr, ptr %11, align 8, !tbaa !5
  %250 = load ptr, ptr %14, align 8, !tbaa !5
  %251 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %250, i32 noundef 4)
  %252 = icmp eq i32 1, %251
  %253 = zext i1 %252 to i64
  %254 = select i1 %252, i32 805574232, i32 814028376
  %255 = load ptr, ptr %13, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %255, i32 0, i32 128
  %257 = load i8, ptr %256, align 4, !tbaa !18
  %258 = load i32, ptr %23, align 4, !tbaa !9
  %259 = load ptr, ptr %13, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %259, i32 0, i32 54
  %261 = load i32, ptr %260, align 4, !tbaa !21
  %262 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %249, i32 noundef %254, i8 noundef signext %257, i32 noundef %258, i32 noundef %261, i32 noundef %262)
  br label %263

263:                                              ; preds = %248, %234
  br label %1601

264:                                              ; preds = %223
  %265 = load ptr, ptr %14, align 8, !tbaa !5
  %266 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %265, i32 0, i32 10
  %267 = load i16, ptr %266, align 1, !tbaa !15
  %268 = zext i16 %267 to i32
  %269 = icmp eq i32 %268, 15
  br i1 %269, label %270, label %465

270:                                              ; preds = %264
  %271 = call i32 @libxsmm_cpuid_x86_use_high_prec_eltwise_approx()
  %272 = icmp eq i32 %271, 0
  br i1 %272, label %273, label %367

273:                                              ; preds = %270
  %274 = load ptr, ptr %11, align 8, !tbaa !5
  %275 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %274, i32 0, i32 6
  %276 = load i32, ptr %275, align 4, !tbaa !16
  %277 = icmp ult i32 %276, 1051
  br i1 %277, label %278, label %354

278:                                              ; preds = %273
  %279 = load ptr, ptr %14, align 8, !tbaa !5
  %280 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %279, i32 noundef 4)
  %281 = icmp eq i32 1, %280
  br i1 %281, label %282, label %296

282:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #3
  %283 = load ptr, ptr %11, align 8, !tbaa !5
  %284 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %283, i32 0, i32 6
  %285 = load i32, ptr %284, align 4, !tbaa !16
  %286 = icmp ult i32 %285, 1005
  %287 = zext i1 %286 to i64
  %288 = select i1 %286, i32 -1610346413, i32 1610879059
  store i32 %288, ptr %31, align 4, !tbaa !9
  %289 = load ptr, ptr %11, align 8, !tbaa !5
  %290 = load i32, ptr %31, align 4, !tbaa !9
  %291 = load ptr, ptr %13, align 8, !tbaa !5
  %292 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %291, i32 0, i32 128
  %293 = load i8, ptr %292, align 4, !tbaa !18
  %294 = load i32, ptr %23, align 4, !tbaa !9
  %295 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef %289, i32 noundef %290, i8 noundef signext %293, i32 noundef %294, i32 noundef 255, i32 noundef %295, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #3
  br label %353

296:                                              ; preds = %278
  %297 = load ptr, ptr %14, align 8, !tbaa !5
  %298 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %297, i32 noundef 4)
  %299 = icmp eq i32 0, %298
  br i1 %299, label %300, label %351

300:                                              ; preds = %296
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #3
  %301 = load ptr, ptr %11, align 8, !tbaa !5
  %302 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %301, i32 0, i32 6
  %303 = load i32, ptr %302, align 4, !tbaa !16
  %304 = icmp ult i32 %303, 1005
  %305 = zext i1 %304 to i64
  %306 = select i1 %304, i32 -1610280866, i32 814028382
  store i32 %306, ptr %32, align 4, !tbaa !9
  %307 = load ptr, ptr %11, align 8, !tbaa !5
  %308 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %307, i32 0, i32 6
  %309 = load i32, ptr %308, align 4, !tbaa !16
  %310 = icmp ult i32 %309, 1005
  br i1 %310, label %311, label %339

311:                                              ; preds = %300
  %312 = load ptr, ptr %11, align 8, !tbaa !5
  %313 = load ptr, ptr %13, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %313, i32 0, i32 128
  %315 = load i8, ptr %314, align 4, !tbaa !18
  %316 = load ptr, ptr %13, align 8, !tbaa !5
  %317 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %316, i32 0, i32 54
  %318 = load i32, ptr %317, align 4, !tbaa !21
  %319 = load ptr, ptr %13, align 8, !tbaa !5
  %320 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %319, i32 0, i32 29
  %321 = load i32, ptr %320, align 4, !tbaa !22
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %312, i32 noundef -1610346480, i8 noundef signext %315, i32 noundef %318, i32 noundef %321)
  %322 = load ptr, ptr %11, align 8, !tbaa !5
  %323 = load i32, ptr %32, align 4, !tbaa !9
  %324 = load ptr, ptr %13, align 8, !tbaa !5
  %325 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %324, i32 0, i32 128
  %326 = load i8, ptr %325, align 4, !tbaa !18
  %327 = load i32, ptr %23, align 4, !tbaa !9
  %328 = load ptr, ptr %13, align 8, !tbaa !5
  %329 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %328, i32 0, i32 29
  %330 = load i32, ptr %329, align 4, !tbaa !22
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %322, i32 noundef %323, i8 noundef signext %326, i32 noundef %327, i32 noundef %330)
  %331 = load ptr, ptr %11, align 8, !tbaa !5
  %332 = load ptr, ptr %13, align 8, !tbaa !5
  %333 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %332, i32 0, i32 128
  %334 = load i8, ptr %333, align 4, !tbaa !18
  %335 = load ptr, ptr %13, align 8, !tbaa !5
  %336 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %335, i32 0, i32 29
  %337 = load i32, ptr %336, align 4, !tbaa !22
  %338 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %331, i32 noundef -1610346480, i8 noundef signext %334, i32 noundef %337, i32 noundef %338)
  br label %350

339:                                              ; preds = %300
  %340 = load ptr, ptr %11, align 8, !tbaa !5
  %341 = load i32, ptr %32, align 4, !tbaa !9
  %342 = load ptr, ptr %13, align 8, !tbaa !5
  %343 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %342, i32 0, i32 128
  %344 = load i8, ptr %343, align 4, !tbaa !18
  %345 = load i32, ptr %23, align 4, !tbaa !9
  %346 = load ptr, ptr %13, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %346, i32 0, i32 54
  %348 = load i32, ptr %347, align 4, !tbaa !21
  %349 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %340, i32 noundef %341, i8 noundef signext %344, i32 noundef %345, i32 noundef %348, i32 noundef %349)
  br label %350

350:                                              ; preds = %339, %311
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #3
  br label %352

351:                                              ; preds = %296
  br label %352

352:                                              ; preds = %351, %350
  br label %353

353:                                              ; preds = %352, %282
  br label %366

354:                                              ; preds = %273
  %355 = load ptr, ptr %11, align 8, !tbaa !5
  %356 = load ptr, ptr %14, align 8, !tbaa !5
  %357 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %356, i32 noundef 4)
  %358 = icmp eq i32 1, %357
  %359 = zext i1 %358 to i64
  %360 = select i1 %358, i32 -536533428, i32 -528144820
  %361 = load ptr, ptr %13, align 8, !tbaa !5
  %362 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %361, i32 0, i32 128
  %363 = load i8, ptr %362, align 4, !tbaa !18
  %364 = load i32, ptr %23, align 4, !tbaa !9
  %365 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef %355, i32 noundef %360, i8 noundef signext %363, i32 noundef %364, i32 noundef 255, i32 noundef %365, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 0)
  br label %366

366:                                              ; preds = %354, %353
  br label %464

367:                                              ; preds = %270
  %368 = load ptr, ptr %14, align 8, !tbaa !5
  %369 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %368, i32 noundef 4)
  %370 = icmp eq i32 1, %369
  br i1 %370, label %371, label %414

371:                                              ; preds = %367
  %372 = load ptr, ptr %11, align 8, !tbaa !5
  %373 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %372, i32 0, i32 6
  %374 = load i32, ptr %373, align 4, !tbaa !16
  %375 = icmp ult i32 %374, 1005
  br i1 %375, label %376, label %403

376:                                              ; preds = %371
  %377 = load ptr, ptr %11, align 8, !tbaa !5
  %378 = load ptr, ptr %13, align 8, !tbaa !5
  %379 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %378, i32 0, i32 128
  %380 = load i8, ptr %379, align 4, !tbaa !18
  %381 = load ptr, ptr %13, align 8, !tbaa !5
  %382 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %381, i32 0, i32 54
  %383 = load i32, ptr %382, align 4, !tbaa !21
  %384 = load ptr, ptr %13, align 8, !tbaa !5
  %385 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %384, i32 0, i32 29
  %386 = load i32, ptr %385, align 4, !tbaa !22
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %377, i32 noundef -1610346480, i8 noundef signext %380, i32 noundef %383, i32 noundef %386)
  %387 = load ptr, ptr %11, align 8, !tbaa !5
  %388 = load ptr, ptr %13, align 8, !tbaa !5
  %389 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %388, i32 0, i32 128
  %390 = load i8, ptr %389, align 4, !tbaa !18
  %391 = load i32, ptr %23, align 4, !tbaa !9
  %392 = load ptr, ptr %13, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %392, i32 0, i32 29
  %394 = load i32, ptr %393, align 4, !tbaa !22
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %387, i32 noundef -1610346402, i8 noundef signext %390, i32 noundef %391, i32 noundef %394)
  %395 = load ptr, ptr %11, align 8, !tbaa !5
  %396 = load ptr, ptr %13, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %396, i32 0, i32 128
  %398 = load i8, ptr %397, align 4, !tbaa !18
  %399 = load ptr, ptr %13, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %399, i32 0, i32 29
  %401 = load i32, ptr %400, align 4, !tbaa !22
  %402 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %395, i32 noundef -1610346480, i8 noundef signext %398, i32 noundef %401, i32 noundef %402)
  br label %413

403:                                              ; preds = %371
  %404 = load ptr, ptr %11, align 8, !tbaa !5
  %405 = load ptr, ptr %13, align 8, !tbaa !5
  %406 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %405, i32 0, i32 128
  %407 = load i8, ptr %406, align 4, !tbaa !18
  %408 = load i32, ptr %23, align 4, !tbaa !9
  %409 = load ptr, ptr %13, align 8, !tbaa !5
  %410 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %409, i32 0, i32 54
  %411 = load i32, ptr %410, align 4, !tbaa !21
  %412 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %404, i32 noundef 805574238, i8 noundef signext %407, i32 noundef %408, i32 noundef %411, i32 noundef %412)
  br label %413

413:                                              ; preds = %403, %376
  br label %463

414:                                              ; preds = %367
  %415 = load ptr, ptr %14, align 8, !tbaa !5
  %416 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %415, i32 noundef 4)
  %417 = icmp eq i32 0, %416
  br i1 %417, label %418, label %461

418:                                              ; preds = %414
  %419 = load ptr, ptr %11, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %419, i32 0, i32 6
  %421 = load i32, ptr %420, align 4, !tbaa !16
  %422 = icmp ult i32 %421, 1005
  br i1 %422, label %423, label %450

423:                                              ; preds = %418
  %424 = load ptr, ptr %11, align 8, !tbaa !5
  %425 = load ptr, ptr %13, align 8, !tbaa !5
  %426 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %425, i32 0, i32 128
  %427 = load i8, ptr %426, align 4, !tbaa !18
  %428 = load ptr, ptr %13, align 8, !tbaa !5
  %429 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %428, i32 0, i32 54
  %430 = load i32, ptr %429, align 4, !tbaa !21
  %431 = load ptr, ptr %13, align 8, !tbaa !5
  %432 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %431, i32 0, i32 29
  %433 = load i32, ptr %432, align 4, !tbaa !22
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %424, i32 noundef -1610346480, i8 noundef signext %427, i32 noundef %430, i32 noundef %433)
  %434 = load ptr, ptr %11, align 8, !tbaa !5
  %435 = load ptr, ptr %13, align 8, !tbaa !5
  %436 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %435, i32 0, i32 128
  %437 = load i8, ptr %436, align 4, !tbaa !18
  %438 = load i32, ptr %23, align 4, !tbaa !9
  %439 = load ptr, ptr %13, align 8, !tbaa !5
  %440 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %439, i32 0, i32 29
  %441 = load i32, ptr %440, align 4, !tbaa !22
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %434, i32 noundef -1610280866, i8 noundef signext %437, i32 noundef %438, i32 noundef %441)
  %442 = load ptr, ptr %11, align 8, !tbaa !5
  %443 = load ptr, ptr %13, align 8, !tbaa !5
  %444 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %443, i32 0, i32 128
  %445 = load i8, ptr %444, align 4, !tbaa !18
  %446 = load ptr, ptr %13, align 8, !tbaa !5
  %447 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %446, i32 0, i32 29
  %448 = load i32, ptr %447, align 4, !tbaa !22
  %449 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %442, i32 noundef -1610346480, i8 noundef signext %445, i32 noundef %448, i32 noundef %449)
  br label %460

450:                                              ; preds = %418
  %451 = load ptr, ptr %11, align 8, !tbaa !5
  %452 = load ptr, ptr %13, align 8, !tbaa !5
  %453 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %452, i32 0, i32 128
  %454 = load i8, ptr %453, align 4, !tbaa !18
  %455 = load i32, ptr %23, align 4, !tbaa !9
  %456 = load ptr, ptr %13, align 8, !tbaa !5
  %457 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %456, i32 0, i32 54
  %458 = load i32, ptr %457, align 4, !tbaa !21
  %459 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %451, i32 noundef 814028382, i8 noundef signext %454, i32 noundef %455, i32 noundef %458, i32 noundef %459)
  br label %460

460:                                              ; preds = %450, %423
  br label %462

461:                                              ; preds = %414
  br label %462

462:                                              ; preds = %461, %460
  br label %463

463:                                              ; preds = %462, %413
  br label %464

464:                                              ; preds = %463, %366
  br label %1600

465:                                              ; preds = %264
  %466 = load ptr, ptr %14, align 8, !tbaa !5
  %467 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %466, i32 0, i32 10
  %468 = load i16, ptr %467, align 1, !tbaa !15
  %469 = zext i16 %468 to i32
  %470 = icmp eq i32 %469, 16
  br i1 %470, label %471, label %721

471:                                              ; preds = %465
  %472 = call i32 @libxsmm_cpuid_x86_use_high_prec_eltwise_approx()
  %473 = icmp eq i32 %472, 0
  br i1 %473, label %474, label %581

474:                                              ; preds = %471
  %475 = load ptr, ptr %11, align 8, !tbaa !5
  %476 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %475, i32 0, i32 6
  %477 = load i32, ptr %476, align 4, !tbaa !16
  %478 = icmp ult i32 %477, 1051
  br i1 %478, label %479, label %568

479:                                              ; preds = %474
  %480 = load ptr, ptr %14, align 8, !tbaa !5
  %481 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %480, i32 noundef 4)
  %482 = icmp eq i32 1, %481
  br i1 %482, label %483, label %497

483:                                              ; preds = %479
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #3
  %484 = load ptr, ptr %11, align 8, !tbaa !5
  %485 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %484, i32 0, i32 6
  %486 = load i32, ptr %485, align 4, !tbaa !16
  %487 = icmp ult i32 %486, 1005
  %488 = zext i1 %487 to i64
  %489 = select i1 %487, i32 -1610346414, i32 1610879058
  store i32 %489, ptr %33, align 4, !tbaa !9
  %490 = load ptr, ptr %11, align 8, !tbaa !5
  %491 = load i32, ptr %33, align 4, !tbaa !9
  %492 = load ptr, ptr %13, align 8, !tbaa !5
  %493 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %492, i32 0, i32 128
  %494 = load i8, ptr %493, align 4, !tbaa !18
  %495 = load i32, ptr %23, align 4, !tbaa !9
  %496 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef %490, i32 noundef %491, i8 noundef signext %494, i32 noundef %495, i32 noundef 255, i32 noundef %496, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #3
  br label %567

497:                                              ; preds = %479
  %498 = load ptr, ptr %14, align 8, !tbaa !5
  %499 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %498, i32 noundef 4)
  %500 = icmp eq i32 0, %499
  br i1 %500, label %501, label %565

501:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #3
  %502 = load ptr, ptr %11, align 8, !tbaa !5
  %503 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %502, i32 0, i32 6
  %504 = load i32, ptr %503, align 4, !tbaa !16
  %505 = icmp ult i32 %504, 1005
  %506 = zext i1 %505 to i64
  %507 = select i1 %505, i32 -1610280879, i32 545592913
  store i32 %507, ptr %34, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #3
  %508 = load ptr, ptr %11, align 8, !tbaa !5
  %509 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %508, i32 0, i32 6
  %510 = load i32, ptr %509, align 4, !tbaa !16
  %511 = icmp ult i32 %510, 1005
  %512 = zext i1 %511 to i64
  %513 = select i1 %511, i32 -1610280866, i32 814028382
  store i32 %513, ptr %35, align 4, !tbaa !9
  %514 = load ptr, ptr %11, align 8, !tbaa !5
  %515 = load i32, ptr %34, align 4, !tbaa !9
  %516 = load ptr, ptr %13, align 8, !tbaa !5
  %517 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %516, i32 0, i32 128
  %518 = load i8, ptr %517, align 4, !tbaa !18
  %519 = load i32, ptr %23, align 4, !tbaa !9
  %520 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %514, i32 noundef %515, i8 noundef signext %518, i32 noundef %519, i32 noundef 255, i32 noundef %520)
  %521 = load ptr, ptr %11, align 8, !tbaa !5
  %522 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %521, i32 0, i32 6
  %523 = load i32, ptr %522, align 4, !tbaa !16
  %524 = icmp ult i32 %523, 1005
  br i1 %524, label %525, label %553

525:                                              ; preds = %501
  %526 = load ptr, ptr %11, align 8, !tbaa !5
  %527 = load ptr, ptr %13, align 8, !tbaa !5
  %528 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %527, i32 0, i32 128
  %529 = load i8, ptr %528, align 4, !tbaa !18
  %530 = load ptr, ptr %13, align 8, !tbaa !5
  %531 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %530, i32 0, i32 54
  %532 = load i32, ptr %531, align 4, !tbaa !21
  %533 = load ptr, ptr %13, align 8, !tbaa !5
  %534 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %533, i32 0, i32 29
  %535 = load i32, ptr %534, align 4, !tbaa !22
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %526, i32 noundef -1610346480, i8 noundef signext %529, i32 noundef %532, i32 noundef %535)
  %536 = load ptr, ptr %11, align 8, !tbaa !5
  %537 = load i32, ptr %35, align 4, !tbaa !9
  %538 = load ptr, ptr %13, align 8, !tbaa !5
  %539 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %538, i32 0, i32 128
  %540 = load i8, ptr %539, align 4, !tbaa !18
  %541 = load i32, ptr %23, align 4, !tbaa !9
  %542 = load ptr, ptr %13, align 8, !tbaa !5
  %543 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %542, i32 0, i32 29
  %544 = load i32, ptr %543, align 4, !tbaa !22
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %536, i32 noundef %537, i8 noundef signext %540, i32 noundef %541, i32 noundef %544)
  %545 = load ptr, ptr %11, align 8, !tbaa !5
  %546 = load ptr, ptr %13, align 8, !tbaa !5
  %547 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %546, i32 0, i32 128
  %548 = load i8, ptr %547, align 4, !tbaa !18
  %549 = load ptr, ptr %13, align 8, !tbaa !5
  %550 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %549, i32 0, i32 29
  %551 = load i32, ptr %550, align 4, !tbaa !22
  %552 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %545, i32 noundef -1610346480, i8 noundef signext %548, i32 noundef %551, i32 noundef %552)
  br label %564

553:                                              ; preds = %501
  %554 = load ptr, ptr %11, align 8, !tbaa !5
  %555 = load i32, ptr %35, align 4, !tbaa !9
  %556 = load ptr, ptr %13, align 8, !tbaa !5
  %557 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %556, i32 0, i32 128
  %558 = load i8, ptr %557, align 4, !tbaa !18
  %559 = load i32, ptr %23, align 4, !tbaa !9
  %560 = load ptr, ptr %13, align 8, !tbaa !5
  %561 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %560, i32 0, i32 54
  %562 = load i32, ptr %561, align 4, !tbaa !21
  %563 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %554, i32 noundef %555, i8 noundef signext %558, i32 noundef %559, i32 noundef %562, i32 noundef %563)
  br label %564

564:                                              ; preds = %553, %525
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #3
  br label %566

565:                                              ; preds = %497
  br label %566

566:                                              ; preds = %565, %564
  br label %567

567:                                              ; preds = %566, %483
  br label %580

568:                                              ; preds = %474
  %569 = load ptr, ptr %11, align 8, !tbaa !5
  %570 = load ptr, ptr %14, align 8, !tbaa !5
  %571 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %570, i32 noundef 4)
  %572 = icmp eq i32 1, %571
  %573 = zext i1 %572 to i64
  %574 = select i1 %572, i32 -536533426, i32 -528144818
  %575 = load ptr, ptr %13, align 8, !tbaa !5
  %576 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %575, i32 0, i32 128
  %577 = load i8, ptr %576, align 4, !tbaa !18
  %578 = load i32, ptr %23, align 4, !tbaa !9
  %579 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef %569, i32 noundef %574, i8 noundef signext %577, i32 noundef %578, i32 noundef 255, i32 noundef %579, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 0)
  br label %580

580:                                              ; preds = %568, %567
  br label %720

581:                                              ; preds = %471
  %582 = load ptr, ptr %14, align 8, !tbaa !5
  %583 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %582, i32 noundef 4)
  %584 = icmp eq i32 1, %583
  br i1 %584, label %585, label %649

585:                                              ; preds = %581
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #3
  %586 = load ptr, ptr %11, align 8, !tbaa !5
  %587 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %586, i32 0, i32 6
  %588 = load i32, ptr %587, align 4, !tbaa !16
  %589 = icmp ult i32 %588, 1005
  %590 = zext i1 %589 to i64
  %591 = select i1 %589, i32 -1610346415, i32 537138513
  store i32 %591, ptr %36, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #3
  %592 = load ptr, ptr %11, align 8, !tbaa !5
  %593 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %592, i32 0, i32 6
  %594 = load i32, ptr %593, align 4, !tbaa !16
  %595 = icmp ult i32 %594, 1005
  %596 = zext i1 %595 to i64
  %597 = select i1 %595, i32 -1610346402, i32 805574238
  store i32 %597, ptr %37, align 4, !tbaa !9
  %598 = load ptr, ptr %11, align 8, !tbaa !5
  %599 = load i32, ptr %36, align 4, !tbaa !9
  %600 = load ptr, ptr %13, align 8, !tbaa !5
  %601 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %600, i32 0, i32 128
  %602 = load i8, ptr %601, align 4, !tbaa !18
  %603 = load i32, ptr %23, align 4, !tbaa !9
  %604 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef %598, i32 noundef %599, i8 noundef signext %602, i32 noundef %603, i32 noundef 255, i32 noundef %604, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 0)
  %605 = load ptr, ptr %11, align 8, !tbaa !5
  %606 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %605, i32 0, i32 6
  %607 = load i32, ptr %606, align 4, !tbaa !16
  %608 = icmp ult i32 %607, 1005
  br i1 %608, label %609, label %637

609:                                              ; preds = %585
  %610 = load ptr, ptr %11, align 8, !tbaa !5
  %611 = load ptr, ptr %13, align 8, !tbaa !5
  %612 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %611, i32 0, i32 128
  %613 = load i8, ptr %612, align 4, !tbaa !18
  %614 = load ptr, ptr %13, align 8, !tbaa !5
  %615 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %614, i32 0, i32 54
  %616 = load i32, ptr %615, align 4, !tbaa !21
  %617 = load ptr, ptr %13, align 8, !tbaa !5
  %618 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %617, i32 0, i32 29
  %619 = load i32, ptr %618, align 4, !tbaa !22
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %610, i32 noundef -1610346480, i8 noundef signext %613, i32 noundef %616, i32 noundef %619)
  %620 = load ptr, ptr %11, align 8, !tbaa !5
  %621 = load i32, ptr %37, align 4, !tbaa !9
  %622 = load ptr, ptr %13, align 8, !tbaa !5
  %623 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %622, i32 0, i32 128
  %624 = load i8, ptr %623, align 4, !tbaa !18
  %625 = load i32, ptr %23, align 4, !tbaa !9
  %626 = load ptr, ptr %13, align 8, !tbaa !5
  %627 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %626, i32 0, i32 29
  %628 = load i32, ptr %627, align 4, !tbaa !22
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %620, i32 noundef %621, i8 noundef signext %624, i32 noundef %625, i32 noundef %628)
  %629 = load ptr, ptr %11, align 8, !tbaa !5
  %630 = load ptr, ptr %13, align 8, !tbaa !5
  %631 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %630, i32 0, i32 128
  %632 = load i8, ptr %631, align 4, !tbaa !18
  %633 = load ptr, ptr %13, align 8, !tbaa !5
  %634 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %633, i32 0, i32 29
  %635 = load i32, ptr %634, align 4, !tbaa !22
  %636 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %629, i32 noundef -1610346480, i8 noundef signext %632, i32 noundef %635, i32 noundef %636)
  br label %648

637:                                              ; preds = %585
  %638 = load ptr, ptr %11, align 8, !tbaa !5
  %639 = load i32, ptr %37, align 4, !tbaa !9
  %640 = load ptr, ptr %13, align 8, !tbaa !5
  %641 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %640, i32 0, i32 128
  %642 = load i8, ptr %641, align 4, !tbaa !18
  %643 = load i32, ptr %23, align 4, !tbaa !9
  %644 = load ptr, ptr %13, align 8, !tbaa !5
  %645 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %644, i32 0, i32 54
  %646 = load i32, ptr %645, align 4, !tbaa !21
  %647 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %638, i32 noundef %639, i8 noundef signext %642, i32 noundef %643, i32 noundef %646, i32 noundef %647)
  br label %648

648:                                              ; preds = %637, %609
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #3
  br label %719

649:                                              ; preds = %581
  %650 = load ptr, ptr %14, align 8, !tbaa !5
  %651 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %650, i32 noundef 4)
  %652 = icmp eq i32 0, %651
  br i1 %652, label %653, label %717

653:                                              ; preds = %649
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #3
  %654 = load ptr, ptr %11, align 8, !tbaa !5
  %655 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %654, i32 0, i32 6
  %656 = load i32, ptr %655, align 4, !tbaa !16
  %657 = icmp ult i32 %656, 1005
  %658 = zext i1 %657 to i64
  %659 = select i1 %657, i32 -1610280879, i32 545592913
  store i32 %659, ptr %38, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #3
  %660 = load ptr, ptr %11, align 8, !tbaa !5
  %661 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %660, i32 0, i32 6
  %662 = load i32, ptr %661, align 4, !tbaa !16
  %663 = icmp ult i32 %662, 1005
  %664 = zext i1 %663 to i64
  %665 = select i1 %663, i32 -1610280866, i32 814028382
  store i32 %665, ptr %39, align 4, !tbaa !9
  %666 = load ptr, ptr %11, align 8, !tbaa !5
  %667 = load i32, ptr %38, align 4, !tbaa !9
  %668 = load ptr, ptr %13, align 8, !tbaa !5
  %669 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %668, i32 0, i32 128
  %670 = load i8, ptr %669, align 4, !tbaa !18
  %671 = load i32, ptr %23, align 4, !tbaa !9
  %672 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %666, i32 noundef %667, i8 noundef signext %670, i32 noundef %671, i32 noundef 255, i32 noundef %672)
  %673 = load ptr, ptr %11, align 8, !tbaa !5
  %674 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %673, i32 0, i32 6
  %675 = load i32, ptr %674, align 4, !tbaa !16
  %676 = icmp ult i32 %675, 1005
  br i1 %676, label %677, label %705

677:                                              ; preds = %653
  %678 = load ptr, ptr %11, align 8, !tbaa !5
  %679 = load ptr, ptr %13, align 8, !tbaa !5
  %680 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %679, i32 0, i32 128
  %681 = load i8, ptr %680, align 4, !tbaa !18
  %682 = load ptr, ptr %13, align 8, !tbaa !5
  %683 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %682, i32 0, i32 54
  %684 = load i32, ptr %683, align 4, !tbaa !21
  %685 = load ptr, ptr %13, align 8, !tbaa !5
  %686 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %685, i32 0, i32 29
  %687 = load i32, ptr %686, align 4, !tbaa !22
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %678, i32 noundef -1610346480, i8 noundef signext %681, i32 noundef %684, i32 noundef %687)
  %688 = load ptr, ptr %11, align 8, !tbaa !5
  %689 = load i32, ptr %39, align 4, !tbaa !9
  %690 = load ptr, ptr %13, align 8, !tbaa !5
  %691 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %690, i32 0, i32 128
  %692 = load i8, ptr %691, align 4, !tbaa !18
  %693 = load i32, ptr %23, align 4, !tbaa !9
  %694 = load ptr, ptr %13, align 8, !tbaa !5
  %695 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %694, i32 0, i32 29
  %696 = load i32, ptr %695, align 4, !tbaa !22
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %688, i32 noundef %689, i8 noundef signext %692, i32 noundef %693, i32 noundef %696)
  %697 = load ptr, ptr %11, align 8, !tbaa !5
  %698 = load ptr, ptr %13, align 8, !tbaa !5
  %699 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %698, i32 0, i32 128
  %700 = load i8, ptr %699, align 4, !tbaa !18
  %701 = load ptr, ptr %13, align 8, !tbaa !5
  %702 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %701, i32 0, i32 29
  %703 = load i32, ptr %702, align 4, !tbaa !22
  %704 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef %697, i32 noundef -1610346480, i8 noundef signext %700, i32 noundef %703, i32 noundef %704)
  br label %716

705:                                              ; preds = %653
  %706 = load ptr, ptr %11, align 8, !tbaa !5
  %707 = load i32, ptr %39, align 4, !tbaa !9
  %708 = load ptr, ptr %13, align 8, !tbaa !5
  %709 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %708, i32 0, i32 128
  %710 = load i8, ptr %709, align 4, !tbaa !18
  %711 = load i32, ptr %23, align 4, !tbaa !9
  %712 = load ptr, ptr %13, align 8, !tbaa !5
  %713 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %712, i32 0, i32 54
  %714 = load i32, ptr %713, align 4, !tbaa !21
  %715 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %706, i32 noundef %707, i8 noundef signext %710, i32 noundef %711, i32 noundef %714, i32 noundef %715)
  br label %716

716:                                              ; preds = %705, %677
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #3
  br label %718

717:                                              ; preds = %649
  br label %718

718:                                              ; preds = %717, %716
  br label %719

719:                                              ; preds = %718, %648
  br label %720

720:                                              ; preds = %719, %580
  br label %1599

721:                                              ; preds = %465
  %722 = load ptr, ptr %14, align 8, !tbaa !5
  %723 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %722, i32 0, i32 10
  %724 = load i16, ptr %723, align 1, !tbaa !15
  %725 = zext i16 %724 to i32
  %726 = icmp eq i32 %725, 4
  br i1 %726, label %727, label %808

727:                                              ; preds = %721
  %728 = load ptr, ptr %11, align 8, !tbaa !5
  %729 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %728, i32 0, i32 6
  %730 = load i32, ptr %729, align 4, !tbaa !16
  %731 = icmp ult i32 %730, 1051
  br i1 %731, label %732, label %784

732:                                              ; preds = %727
  %733 = load ptr, ptr %14, align 8, !tbaa !5
  %734 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %733, i32 noundef 4)
  %735 = icmp eq i32 1, %734
  br i1 %735, label %736, label %763

736:                                              ; preds = %732
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #3
  %737 = load ptr, ptr %11, align 8, !tbaa !5
  %738 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %737, i32 0, i32 6
  %739 = load i32, ptr %738, align 4, !tbaa !16
  %740 = icmp ult i32 %739, 1005
  %741 = zext i1 %740 to i64
  %742 = select i1 %740, i32 -1610346414, i32 1610879058
  store i32 %742, ptr %40, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #3
  %743 = load ptr, ptr %11, align 8, !tbaa !5
  %744 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %743, i32 0, i32 6
  %745 = load i32, ptr %744, align 4, !tbaa !16
  %746 = icmp ult i32 %745, 1005
  %747 = zext i1 %746 to i64
  %748 = select i1 %746, i32 -1610346413, i32 1610879059
  store i32 %748, ptr %41, align 4, !tbaa !9
  %749 = load ptr, ptr %11, align 8, !tbaa !5
  %750 = load i32, ptr %40, align 4, !tbaa !9
  %751 = load ptr, ptr %13, align 8, !tbaa !5
  %752 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %751, i32 0, i32 128
  %753 = load i8, ptr %752, align 4, !tbaa !18
  %754 = load i32, ptr %23, align 4, !tbaa !9
  %755 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %749, i32 noundef %750, i8 noundef signext %753, i32 noundef %754, i32 noundef 255, i32 noundef %755)
  %756 = load ptr, ptr %11, align 8, !tbaa !5
  %757 = load i32, ptr %41, align 4, !tbaa !9
  %758 = load ptr, ptr %13, align 8, !tbaa !5
  %759 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %758, i32 0, i32 128
  %760 = load i8, ptr %759, align 4, !tbaa !18
  %761 = load i32, ptr %23, align 4, !tbaa !9
  %762 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %756, i32 noundef %757, i8 noundef signext %760, i32 noundef %761, i32 noundef 255, i32 noundef %762)
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #3
  br label %783

763:                                              ; preds = %732
  %764 = load ptr, ptr %14, align 8, !tbaa !5
  %765 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %764, i32 noundef 4)
  %766 = icmp eq i32 0, %765
  br i1 %766, label %767, label %781

767:                                              ; preds = %763
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #3
  %768 = load ptr, ptr %11, align 8, !tbaa !5
  %769 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %768, i32 0, i32 6
  %770 = load i32, ptr %769, align 4, !tbaa !16
  %771 = icmp ult i32 %770, 1005
  %772 = zext i1 %771 to i64
  %773 = select i1 %771, i32 -1610280879, i32 545592913
  store i32 %773, ptr %42, align 4, !tbaa !9
  %774 = load ptr, ptr %11, align 8, !tbaa !5
  %775 = load i32, ptr %42, align 4, !tbaa !9
  %776 = load ptr, ptr %13, align 8, !tbaa !5
  %777 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %776, i32 0, i32 128
  %778 = load i8, ptr %777, align 4, !tbaa !18
  %779 = load i32, ptr %23, align 4, !tbaa !9
  %780 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %774, i32 noundef %775, i8 noundef signext %778, i32 noundef %779, i32 noundef 255, i32 noundef %780)
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #3
  br label %782

781:                                              ; preds = %763
  br label %782

782:                                              ; preds = %781, %767
  br label %783

783:                                              ; preds = %782, %736
  br label %807

784:                                              ; preds = %727
  %785 = load ptr, ptr %11, align 8, !tbaa !5
  %786 = load ptr, ptr %14, align 8, !tbaa !5
  %787 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %786, i32 noundef 4)
  %788 = icmp eq i32 1, %787
  %789 = zext i1 %788 to i64
  %790 = select i1 %788, i32 -536533426, i32 -528144818
  %791 = load ptr, ptr %13, align 8, !tbaa !5
  %792 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %791, i32 0, i32 128
  %793 = load i8, ptr %792, align 4, !tbaa !18
  %794 = load i32, ptr %23, align 4, !tbaa !9
  %795 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef %785, i32 noundef %790, i8 noundef signext %793, i32 noundef %794, i32 noundef 255, i32 noundef %795, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 0)
  %796 = load ptr, ptr %11, align 8, !tbaa !5
  %797 = load ptr, ptr %14, align 8, !tbaa !5
  %798 = call i32 @libxsmm_meltw_getenum_precision(ptr noundef %797, i32 noundef 4)
  %799 = icmp eq i32 1, %798
  %800 = zext i1 %799 to i64
  %801 = select i1 %799, i32 -536533428, i32 -528144820
  %802 = load ptr, ptr %13, align 8, !tbaa !5
  %803 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %802, i32 0, i32 128
  %804 = load i8, ptr %803, align 4, !tbaa !18
  %805 = load i32, ptr %23, align 4, !tbaa !9
  %806 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef %796, i32 noundef %801, i8 noundef signext %804, i32 noundef %805, i32 noundef 255, i32 noundef %806, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 0)
  br label %807

807:                                              ; preds = %784, %783
  br label %1598

808:                                              ; preds = %721
  %809 = load ptr, ptr %14, align 8, !tbaa !5
  %810 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %809, i32 0, i32 10
  %811 = load i16, ptr %810, align 1, !tbaa !15
  %812 = zext i16 %811 to i32
  %813 = icmp eq i32 %812, 17
  br i1 %813, label %814, label %941

814:                                              ; preds = %808
  %815 = load ptr, ptr %11, align 8, !tbaa !5
  %816 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %815, i32 0, i32 6
  %817 = load i32, ptr %816, align 4, !tbaa !16
  %818 = icmp ult i32 %817, 1051
  br i1 %818, label %819, label %855

819:                                              ; preds = %814
  %820 = load ptr, ptr %11, align 8, !tbaa !5
  %821 = load i32, ptr %23, align 4, !tbaa !9
  %822 = load ptr, ptr %13, align 8, !tbaa !5
  %823 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %822, i32 0, i32 64
  %824 = load i32, ptr %823, align 4, !tbaa !23
  %825 = load ptr, ptr %13, align 8, !tbaa !5
  %826 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %825, i32 0, i32 65
  %827 = load i32, ptr %826, align 4, !tbaa !24
  %828 = load ptr, ptr %13, align 8, !tbaa !5
  %829 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %828, i32 0, i32 36
  %830 = load i32, ptr %829, align 4, !tbaa !25
  %831 = load ptr, ptr %13, align 8, !tbaa !5
  %832 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %831, i32 0, i32 40
  %833 = load i32, ptr %832, align 4, !tbaa !26
  %834 = load ptr, ptr %13, align 8, !tbaa !5
  %835 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %834, i32 0, i32 44
  %836 = load i32, ptr %835, align 4, !tbaa !27
  %837 = load ptr, ptr %13, align 8, !tbaa !5
  %838 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %837, i32 0, i32 51
  %839 = load i32, ptr %838, align 4, !tbaa !28
  %840 = load ptr, ptr %13, align 8, !tbaa !5
  %841 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %840, i32 0, i32 56
  %842 = load i32, ptr %841, align 4, !tbaa !29
  %843 = load ptr, ptr %13, align 8, !tbaa !5
  %844 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %843, i32 0, i32 60
  %845 = load i32, ptr %844, align 4, !tbaa !30
  %846 = load ptr, ptr %13, align 8, !tbaa !5
  %847 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %846, i32 0, i32 66
  %848 = load i32, ptr %847, align 4, !tbaa !31
  %849 = load ptr, ptr %13, align 8, !tbaa !5
  %850 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %849, i32 0, i32 52
  %851 = load i32, ptr %850, align 4, !tbaa !32
  %852 = load ptr, ptr %13, align 8, !tbaa !5
  %853 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %852, i32 0, i32 53
  %854 = load i32, ptr %853, align 4, !tbaa !33
  call void @libxsmm_generator_exp_ps_3dts_avx(ptr noundef %820, i32 noundef %821, i32 noundef %824, i32 noundef %827, i32 noundef %830, i32 noundef %833, i32 noundef %836, i32 noundef %839, i32 noundef %842, i32 noundef %845, i32 noundef %848, i32 noundef %851, i32 noundef %854)
  br label %940

855:                                              ; preds = %814
  %856 = call i32 @libxsmm_cpuid_x86_use_high_prec_eltwise_approx()
  %857 = icmp eq i32 %856, 0
  br i1 %857, label %858, label %888

858:                                              ; preds = %855
  %859 = load ptr, ptr %11, align 8, !tbaa !5
  %860 = load i32, ptr %23, align 4, !tbaa !9
  %861 = load ptr, ptr %13, align 8, !tbaa !5
  %862 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %861, i32 0, i32 64
  %863 = load i32, ptr %862, align 4, !tbaa !23
  %864 = load ptr, ptr %13, align 8, !tbaa !5
  %865 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %864, i32 0, i32 65
  %866 = load i32, ptr %865, align 4, !tbaa !24
  %867 = load ptr, ptr %13, align 8, !tbaa !5
  %868 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %867, i32 0, i32 36
  %869 = load i32, ptr %868, align 4, !tbaa !25
  %870 = load ptr, ptr %13, align 8, !tbaa !5
  %871 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %870, i32 0, i32 40
  %872 = load i32, ptr %871, align 4, !tbaa !26
  %873 = load ptr, ptr %13, align 8, !tbaa !5
  %874 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %873, i32 0, i32 44
  %875 = load i32, ptr %874, align 4, !tbaa !27
  %876 = load ptr, ptr %13, align 8, !tbaa !5
  %877 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %876, i32 0, i32 51
  %878 = load i32, ptr %877, align 4, !tbaa !28
  %879 = load ptr, ptr %13, align 8, !tbaa !5
  %880 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %879, i32 0, i32 56
  %881 = load i32, ptr %880, align 4, !tbaa !29
  %882 = load ptr, ptr %13, align 8, !tbaa !5
  %883 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %882, i32 0, i32 60
  %884 = load i32, ptr %883, align 4, !tbaa !30
  %885 = load ptr, ptr %13, align 8, !tbaa !5
  %886 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %885, i32 0, i32 128
  %887 = load i8, ptr %886, align 4, !tbaa !18
  call void @libxsmm_generator_exp_ps_3dts_avx512(ptr noundef %859, i32 noundef %860, i32 noundef %863, i32 noundef %866, i32 noundef %869, i32 noundef %872, i32 noundef %875, i32 noundef %878, i32 noundef %881, i32 noundef %884, i8 noundef zeroext %887)
  br label %939

888:                                              ; preds = %855
  %889 = load ptr, ptr %11, align 8, !tbaa !5
  %890 = load i32, ptr %23, align 4, !tbaa !9
  %891 = load ptr, ptr %13, align 8, !tbaa !5
  %892 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %891, i32 0, i32 64
  %893 = load i32, ptr %892, align 4, !tbaa !23
  %894 = load ptr, ptr %13, align 8, !tbaa !5
  %895 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %894, i32 0, i32 65
  %896 = load i32, ptr %895, align 4, !tbaa !24
  %897 = load ptr, ptr %13, align 8, !tbaa !5
  %898 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %897, i32 0, i32 69
  %899 = load i32, ptr %898, align 4, !tbaa !34
  %900 = load ptr, ptr %13, align 8, !tbaa !5
  %901 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %900, i32 0, i32 36
  %902 = load i32, ptr %901, align 4, !tbaa !25
  %903 = load ptr, ptr %13, align 8, !tbaa !5
  %904 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %903, i32 0, i32 40
  %905 = load i32, ptr %904, align 4, !tbaa !26
  %906 = load ptr, ptr %13, align 8, !tbaa !5
  %907 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %906, i32 0, i32 44
  %908 = load i32, ptr %907, align 4, !tbaa !27
  %909 = load ptr, ptr %13, align 8, !tbaa !5
  %910 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %909, i32 0, i32 51
  %911 = load i32, ptr %910, align 4, !tbaa !28
  %912 = load ptr, ptr %13, align 8, !tbaa !5
  %913 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %912, i32 0, i32 62
  %914 = load i32, ptr %913, align 4, !tbaa !35
  %915 = load ptr, ptr %13, align 8, !tbaa !5
  %916 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %915, i32 0, i32 63
  %917 = load i32, ptr %916, align 4, !tbaa !36
  %918 = load ptr, ptr %13, align 8, !tbaa !5
  %919 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %918, i32 0, i32 56
  %920 = load i32, ptr %919, align 4, !tbaa !29
  %921 = load ptr, ptr %13, align 8, !tbaa !5
  %922 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %921, i32 0, i32 60
  %923 = load i32, ptr %922, align 4, !tbaa !30
  %924 = load ptr, ptr %13, align 8, !tbaa !5
  %925 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %924, i32 0, i32 61
  %926 = load i32, ptr %925, align 4, !tbaa !37
  %927 = load ptr, ptr %13, align 8, !tbaa !5
  %928 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %927, i32 0, i32 66
  %929 = load i32, ptr %928, align 4, !tbaa !31
  %930 = load ptr, ptr %13, align 8, !tbaa !5
  %931 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %930, i32 0, i32 67
  %932 = load i32, ptr %931, align 4, !tbaa !38
  %933 = load ptr, ptr %13, align 8, !tbaa !5
  %934 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %933, i32 0, i32 68
  %935 = load i32, ptr %934, align 4, !tbaa !39
  %936 = load ptr, ptr %13, align 8, !tbaa !5
  %937 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %936, i32 0, i32 128
  %938 = load i8, ptr %937, align 4, !tbaa !18
  call void @libxsmm_generator_exp_ps_5dts_avx512(ptr noundef %889, i32 noundef %890, i32 noundef %893, i32 noundef %896, i32 noundef %899, i32 noundef %902, i32 noundef %905, i32 noundef %908, i32 noundef %911, i32 noundef %914, i32 noundef %917, i32 noundef %920, i32 noundef %923, i32 noundef %926, i32 noundef %929, i32 noundef %932, i32 noundef %935, i8 noundef zeroext %938)
  br label %939

939:                                              ; preds = %888, %858
  br label %940

940:                                              ; preds = %939, %819
  br label %1597

941:                                              ; preds = %808
  %942 = load ptr, ptr %14, align 8, !tbaa !5
  %943 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %942, i32 0, i32 10
  %944 = load i16, ptr %943, align 1, !tbaa !15
  %945 = zext i16 %944 to i32
  %946 = icmp eq i32 %945, 7
  br i1 %946, label %953, label %947

947:                                              ; preds = %941
  %948 = load ptr, ptr %14, 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 !15
  %951 = zext i16 %950 to i32
  %952 = icmp eq i32 %951, 8
  br i1 %952, label %953, label %1074

953:                                              ; preds = %947, %941
  %954 = load ptr, ptr %11, align 8, !tbaa !5
  %955 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %954, i32 0, i32 6
  %956 = load i32, ptr %955, align 4, !tbaa !16
  %957 = icmp ult i32 %956, 1051
  br i1 %957, label %958, label %1003

958:                                              ; preds = %953
  %959 = load ptr, ptr %11, align 8, !tbaa !5
  %960 = load i32, ptr %23, align 4, !tbaa !9
  %961 = load ptr, ptr %13, align 8, !tbaa !5
  %962 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %961, i32 0, i32 33
  %963 = load i32, ptr %962, align 4, !tbaa !40
  %964 = load ptr, ptr %13, align 8, !tbaa !5
  %965 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %964, i32 0, i32 34
  %966 = load i32, ptr %965, align 4, !tbaa !41
  %967 = load ptr, ptr %13, align 8, !tbaa !5
  %968 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %967, i32 0, i32 35
  %969 = load i32, ptr %968, align 4, !tbaa !42
  %970 = load ptr, ptr %13, align 8, !tbaa !5
  %971 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %970, i32 0, i32 36
  %972 = load i32, ptr %971, align 4, !tbaa !25
  %973 = load ptr, ptr %13, align 8, !tbaa !5
  %974 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %973, i32 0, i32 40
  %975 = load i32, ptr %974, align 4, !tbaa !26
  %976 = load ptr, ptr %13, align 8, !tbaa !5
  %977 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %976, i32 0, i32 44
  %978 = load i32, ptr %977, align 4, !tbaa !27
  %979 = load ptr, ptr %13, align 8, !tbaa !5
  %980 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %979, i32 0, i32 51
  %981 = load i32, ptr %980, align 4, !tbaa !28
  %982 = load ptr, ptr %13, align 8, !tbaa !5
  %983 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %982, i32 0, i32 48
  %984 = load i32, ptr %983, align 4, !tbaa !43
  %985 = load ptr, ptr %13, align 8, !tbaa !5
  %986 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %985, i32 0, i32 49
  %987 = load i32, ptr %986, align 4, !tbaa !44
  %988 = load ptr, ptr %13, align 8, !tbaa !5
  %989 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %988, i32 0, i32 50
  %990 = load i32, ptr %989, align 4, !tbaa !45
  %991 = load ptr, ptr %13, align 8, !tbaa !5
  %992 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %991, i32 0, i32 52
  %993 = load i32, ptr %992, align 4, !tbaa !32
  %994 = load ptr, ptr %13, align 8, !tbaa !5
  %995 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %994, i32 0, i32 53
  %996 = load i32, ptr %995, align 4, !tbaa !33
  %997 = load ptr, ptr %13, align 8, !tbaa !5
  %998 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %997, i32 0, i32 54
  %999 = load i32, ptr %998, align 4, !tbaa !21
  %1000 = load ptr, ptr %13, align 8, !tbaa !5
  %1001 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1000, i32 0, i32 55
  %1002 = load i32, ptr %1001, align 4, !tbaa !46
  call void @libxsmm_generator_tanh_ps_rational_78_avx(ptr noundef %959, i32 noundef %960, i32 noundef %963, i32 noundef %966, i32 noundef %969, i32 noundef %972, i32 noundef %975, i32 noundef %978, i32 noundef %981, i32 noundef %984, i32 noundef %987, i32 noundef %990, i32 noundef %993, i32 noundef %996, i32 noundef %999, i32 noundef %1002)
  br label %1057

1003:                                             ; preds = %953
  %1004 = load ptr, ptr %11, align 8, !tbaa !5
  %1005 = load i32, ptr %23, align 4, !tbaa !9
  %1006 = load ptr, ptr %13, align 8, !tbaa !5
  %1007 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1006, i32 0, i32 33
  %1008 = load i32, ptr %1007, align 4, !tbaa !40
  %1009 = load ptr, ptr %13, align 8, !tbaa !5
  %1010 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1009, i32 0, i32 34
  %1011 = load i32, ptr %1010, align 4, !tbaa !41
  %1012 = load ptr, ptr %13, align 8, !tbaa !5
  %1013 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1012, i32 0, i32 35
  %1014 = load i32, ptr %1013, align 4, !tbaa !42
  %1015 = load ptr, ptr %13, align 8, !tbaa !5
  %1016 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1015, i32 0, i32 57
  %1017 = load i32, ptr %1016, align 4, !tbaa !47
  %1018 = load ptr, ptr %13, align 8, !tbaa !5
  %1019 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1018, i32 0, i32 58
  %1020 = load i32, ptr %1019, align 4, !tbaa !48
  %1021 = load ptr, ptr %13, align 8, !tbaa !5
  %1022 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1021, i32 0, i32 36
  %1023 = load i32, ptr %1022, align 4, !tbaa !25
  %1024 = load ptr, ptr %13, align 8, !tbaa !5
  %1025 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1024, i32 0, i32 40
  %1026 = load i32, ptr %1025, align 4, !tbaa !26
  %1027 = load ptr, ptr %13, align 8, !tbaa !5
  %1028 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1027, i32 0, i32 44
  %1029 = load i32, ptr %1028, align 4, !tbaa !27
  %1030 = load ptr, ptr %13, align 8, !tbaa !5
  %1031 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1030, i32 0, i32 51
  %1032 = load i32, ptr %1031, align 4, !tbaa !28
  %1033 = load ptr, ptr %13, align 8, !tbaa !5
  %1034 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1033, i32 0, i32 48
  %1035 = load i32, ptr %1034, align 4, !tbaa !43
  %1036 = load ptr, ptr %13, align 8, !tbaa !5
  %1037 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1036, i32 0, i32 49
  %1038 = load i32, ptr %1037, align 4, !tbaa !44
  %1039 = load ptr, ptr %13, align 8, !tbaa !5
  %1040 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1039, i32 0, i32 50
  %1041 = load i32, ptr %1040, align 4, !tbaa !45
  %1042 = load ptr, ptr %13, align 8, !tbaa !5
  %1043 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1042, i32 0, i32 52
  %1044 = load i32, ptr %1043, align 4, !tbaa !32
  %1045 = load ptr, ptr %13, align 8, !tbaa !5
  %1046 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1045, i32 0, i32 53
  %1047 = load i32, ptr %1046, align 4, !tbaa !33
  %1048 = load ptr, ptr %13, align 8, !tbaa !5
  %1049 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1048, i32 0, i32 54
  %1050 = load i32, ptr %1049, align 4, !tbaa !21
  %1051 = load ptr, ptr %13, align 8, !tbaa !5
  %1052 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1051, i32 0, i32 55
  %1053 = load i32, ptr %1052, align 4, !tbaa !46
  %1054 = load ptr, ptr %13, align 8, !tbaa !5
  %1055 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1054, i32 0, i32 128
  %1056 = load i8, ptr %1055, align 4, !tbaa !18
  call void @libxsmm_generator_tanh_ps_rational_78_avx512(ptr noundef %1004, i32 noundef %1005, i32 noundef %1008, i32 noundef %1011, i32 noundef %1014, i32 noundef %1017, i32 noundef %1020, i32 noundef %1023, i32 noundef %1026, i32 noundef %1029, i32 noundef %1032, i32 noundef %1035, i32 noundef %1038, i32 noundef %1041, i32 noundef %1044, i32 noundef %1047, i32 noundef %1050, i32 noundef %1053, i8 noundef zeroext %1056)
  br label %1057

1057:                                             ; preds = %1003, %958
  %1058 = load ptr, ptr %14, align 8, !tbaa !5
  %1059 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1058, i32 0, i32 10
  %1060 = load i16, ptr %1059, align 1, !tbaa !15
  %1061 = zext i16 %1060 to i32
  %1062 = icmp eq i32 %1061, 8
  br i1 %1062, label %1063, label %1073

1063:                                             ; preds = %1057
  %1064 = load ptr, ptr %11, align 8, !tbaa !5
  %1065 = load ptr, ptr %13, align 8, !tbaa !5
  %1066 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1065, i32 0, i32 128
  %1067 = load i8, ptr %1066, align 4, !tbaa !18
  %1068 = load ptr, ptr %13, align 8, !tbaa !5
  %1069 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1068, i32 0, i32 55
  %1070 = load i32, ptr %1069, align 4, !tbaa !46
  %1071 = load i32, ptr %23, align 4, !tbaa !9
  %1072 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %1064, i32 noundef 805643950, i8 noundef signext %1067, i32 noundef %1070, i32 noundef %1071, i32 noundef %1072)
  br label %1073

1073:                                             ; preds = %1063, %1057
  br label %1596

1074:                                             ; preds = %947
  %1075 = load ptr, ptr %14, align 8, !tbaa !5
  %1076 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1075, i32 0, i32 10
  %1077 = load i16, ptr %1076, align 1, !tbaa !15
  %1078 = zext i16 %1077 to i32
  %1079 = icmp eq i32 %1078, 9
  br i1 %1079, label %1086, label %1080

1080:                                             ; preds = %1074
  %1081 = load ptr, ptr %14, align 8, !tbaa !5
  %1082 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1081, i32 0, i32 10
  %1083 = load i16, ptr %1082, align 1, !tbaa !15
  %1084 = zext i16 %1083 to i32
  %1085 = icmp eq i32 %1084, 10
  br i1 %1085, label %1086, label %1221

1086:                                             ; preds = %1080, %1074
  %1087 = load ptr, ptr %11, align 8, !tbaa !5
  %1088 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1087, i32 0, i32 6
  %1089 = load i32, ptr %1088, align 4, !tbaa !16
  %1090 = icmp ult i32 %1089, 1051
  br i1 %1090, label %1091, label %1136

1091:                                             ; preds = %1086
  %1092 = load ptr, ptr %11, align 8, !tbaa !5
  %1093 = load i32, ptr %23, align 4, !tbaa !9
  %1094 = load ptr, ptr %13, align 8, !tbaa !5
  %1095 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1094, i32 0, i32 33
  %1096 = load i32, ptr %1095, align 4, !tbaa !40
  %1097 = load ptr, ptr %13, align 8, !tbaa !5
  %1098 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1097, i32 0, i32 34
  %1099 = load i32, ptr %1098, align 4, !tbaa !41
  %1100 = load ptr, ptr %13, align 8, !tbaa !5
  %1101 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1100, i32 0, i32 35
  %1102 = load i32, ptr %1101, align 4, !tbaa !42
  %1103 = load ptr, ptr %13, align 8, !tbaa !5
  %1104 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1103, i32 0, i32 36
  %1105 = load i32, ptr %1104, align 4, !tbaa !25
  %1106 = load ptr, ptr %13, align 8, !tbaa !5
  %1107 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1106, i32 0, i32 40
  %1108 = load i32, ptr %1107, align 4, !tbaa !26
  %1109 = load ptr, ptr %13, align 8, !tbaa !5
  %1110 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1109, i32 0, i32 44
  %1111 = load i32, ptr %1110, align 4, !tbaa !27
  %1112 = load ptr, ptr %13, align 8, !tbaa !5
  %1113 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1112, i32 0, i32 51
  %1114 = load i32, ptr %1113, align 4, !tbaa !28
  %1115 = load ptr, ptr %13, align 8, !tbaa !5
  %1116 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1115, i32 0, i32 48
  %1117 = load i32, ptr %1116, align 4, !tbaa !43
  %1118 = load ptr, ptr %13, align 8, !tbaa !5
  %1119 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1118, i32 0, i32 49
  %1120 = load i32, ptr %1119, align 4, !tbaa !44
  %1121 = load ptr, ptr %13, align 8, !tbaa !5
  %1122 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1121, i32 0, i32 50
  %1123 = load i32, ptr %1122, align 4, !tbaa !45
  %1124 = load ptr, ptr %13, align 8, !tbaa !5
  %1125 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1124, i32 0, i32 52
  %1126 = load i32, ptr %1125, align 4, !tbaa !32
  %1127 = load ptr, ptr %13, align 8, !tbaa !5
  %1128 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1127, i32 0, i32 53
  %1129 = load i32, ptr %1128, align 4, !tbaa !33
  %1130 = load ptr, ptr %13, align 8, !tbaa !5
  %1131 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1130, i32 0, i32 54
  %1132 = load i32, ptr %1131, align 4, !tbaa !21
  %1133 = load ptr, ptr %13, align 8, !tbaa !5
  %1134 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1133, i32 0, i32 55
  %1135 = load i32, ptr %1134, align 4, !tbaa !46
  call void @libxsmm_generator_sigmoid_ps_rational_78_avx(ptr noundef %1092, i32 noundef %1093, i32 noundef %1096, i32 noundef %1099, i32 noundef %1102, i32 noundef %1105, i32 noundef %1108, i32 noundef %1111, i32 noundef %1114, i32 noundef %1117, i32 noundef %1120, i32 noundef %1123, i32 noundef %1126, i32 noundef %1129, i32 noundef %1132, i32 noundef %1135)
  br label %1193

1136:                                             ; preds = %1086
  %1137 = load ptr, ptr %11, align 8, !tbaa !5
  %1138 = load i32, ptr %23, align 4, !tbaa !9
  %1139 = load ptr, ptr %13, align 8, !tbaa !5
  %1140 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1139, i32 0, i32 33
  %1141 = load i32, ptr %1140, align 4, !tbaa !40
  %1142 = load ptr, ptr %13, align 8, !tbaa !5
  %1143 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1142, i32 0, i32 34
  %1144 = load i32, ptr %1143, align 4, !tbaa !41
  %1145 = load ptr, ptr %13, align 8, !tbaa !5
  %1146 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1145, i32 0, i32 35
  %1147 = load i32, ptr %1146, align 4, !tbaa !42
  %1148 = load ptr, ptr %13, align 8, !tbaa !5
  %1149 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1148, i32 0, i32 57
  %1150 = load i32, ptr %1149, align 4, !tbaa !47
  %1151 = load ptr, ptr %13, align 8, !tbaa !5
  %1152 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1151, i32 0, i32 58
  %1153 = load i32, ptr %1152, align 4, !tbaa !48
  %1154 = load ptr, ptr %13, align 8, !tbaa !5
  %1155 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1154, i32 0, i32 36
  %1156 = load i32, ptr %1155, align 4, !tbaa !25
  %1157 = load ptr, ptr %13, align 8, !tbaa !5
  %1158 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1157, i32 0, i32 40
  %1159 = load i32, ptr %1158, align 4, !tbaa !26
  %1160 = load ptr, ptr %13, align 8, !tbaa !5
  %1161 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1160, i32 0, i32 44
  %1162 = load i32, ptr %1161, align 4, !tbaa !27
  %1163 = load ptr, ptr %13, align 8, !tbaa !5
  %1164 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1163, i32 0, i32 51
  %1165 = load i32, ptr %1164, align 4, !tbaa !28
  %1166 = load ptr, ptr %13, align 8, !tbaa !5
  %1167 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1166, i32 0, i32 48
  %1168 = load i32, ptr %1167, align 4, !tbaa !43
  %1169 = load ptr, ptr %13, align 8, !tbaa !5
  %1170 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1169, i32 0, i32 49
  %1171 = load i32, ptr %1170, align 4, !tbaa !44
  %1172 = load ptr, ptr %13, align 8, !tbaa !5
  %1173 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1172, i32 0, i32 50
  %1174 = load i32, ptr %1173, align 4, !tbaa !45
  %1175 = load ptr, ptr %13, align 8, !tbaa !5
  %1176 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1175, i32 0, i32 52
  %1177 = load i32, ptr %1176, align 4, !tbaa !32
  %1178 = load ptr, ptr %13, align 8, !tbaa !5
  %1179 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1178, i32 0, i32 53
  %1180 = load i32, ptr %1179, align 4, !tbaa !33
  %1181 = load ptr, ptr %13, align 8, !tbaa !5
  %1182 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1181, i32 0, i32 54
  %1183 = load i32, ptr %1182, align 4, !tbaa !21
  %1184 = load ptr, ptr %13, align 8, !tbaa !5
  %1185 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1184, i32 0, i32 55
  %1186 = load i32, ptr %1185, align 4, !tbaa !46
  %1187 = load ptr, ptr %13, align 8, !tbaa !5
  %1188 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1187, i32 0, i32 56
  %1189 = load i32, ptr %1188, align 4, !tbaa !29
  %1190 = load ptr, ptr %13, align 8, !tbaa !5
  %1191 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1190, i32 0, i32 128
  %1192 = load i8, ptr %1191, align 4, !tbaa !18
  call void @libxsmm_generator_sigmoid_ps_rational_78_avx512(ptr noundef %1137, i32 noundef %1138, i32 noundef %1141, i32 noundef %1144, i32 noundef %1147, i32 noundef %1150, i32 noundef %1153, i32 noundef %1156, i32 noundef %1159, i32 noundef %1162, i32 noundef %1165, i32 noundef %1168, i32 noundef %1171, i32 noundef %1174, i32 noundef %1177, i32 noundef %1180, i32 noundef %1183, i32 noundef %1186, i32 noundef %1189, i8 noundef zeroext %1192)
  br label %1193

1193:                                             ; preds = %1136, %1091
  %1194 = load ptr, ptr %14, align 8, !tbaa !5
  %1195 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1194, i32 0, i32 10
  %1196 = load i16, ptr %1195, align 1, !tbaa !15
  %1197 = zext i16 %1196 to i32
  %1198 = icmp eq i32 %1197, 10
  br i1 %1198, label %1199, label %1220

1199:                                             ; preds = %1193
  %1200 = load ptr, ptr %11, align 8, !tbaa !5
  %1201 = load ptr, ptr %13, align 8, !tbaa !5
  %1202 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1201, i32 0, i32 128
  %1203 = load i8, ptr %1202, align 4, !tbaa !18
  %1204 = load i32, ptr %23, align 4, !tbaa !9
  %1205 = load ptr, ptr %13, align 8, !tbaa !5
  %1206 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1205, i32 0, i32 54
  %1207 = load i32, ptr %1206, align 4, !tbaa !21
  %1208 = load ptr, ptr %13, align 8, !tbaa !5
  %1209 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1208, i32 0, i32 33
  %1210 = load i32, ptr %1209, align 4, !tbaa !40
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %1200, i32 noundef 805574236, i8 noundef signext %1203, i32 noundef %1204, i32 noundef %1207, i32 noundef %1210)
  %1211 = load ptr, ptr %11, align 8, !tbaa !5
  %1212 = load ptr, ptr %13, align 8, !tbaa !5
  %1213 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1212, i32 0, i32 128
  %1214 = load i8, ptr %1213, align 4, !tbaa !18
  %1215 = load ptr, ptr %13, align 8, !tbaa !5
  %1216 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1215, i32 0, i32 33
  %1217 = load i32, ptr %1216, align 4, !tbaa !40
  %1218 = load i32, ptr %23, align 4, !tbaa !9
  %1219 = load i32, ptr %23, align 4, !tbaa !9
  call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %1211, i32 noundef 805574233, i8 noundef signext %1214, i32 noundef %1217, i32 noundef %1218, i32 noundef %1219)
  br label %1220

1220:                                             ; preds = %1199, %1193
  br label %1595

1221:                                             ; preds = %1080
  %1222 = load ptr, ptr %14, align 8, !tbaa !5
  %1223 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1222, i32 0, i32 10
  %1224 = load i16, ptr %1223, align 1, !tbaa !15
  %1225 = zext i16 %1224 to i32
  %1226 = icmp eq i32 %1225, 11
  br i1 %1226, label %1227, label %1407

1227:                                             ; preds = %1221
  %1228 = load ptr, ptr %11, align 8, !tbaa !5
  %1229 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1228, i32 0, i32 6
  %1230 = load i32, ptr %1229, align 4, !tbaa !16
  %1231 = icmp ult i32 %1230, 1051
  br i1 %1231, label %1232, label %1295

1232:                                             ; preds = %1227
  %1233 = load ptr, ptr %11, align 8, !tbaa !5
  %1234 = load i32, ptr %23, align 4, !tbaa !9
  %1235 = load ptr, ptr %13, align 8, !tbaa !5
  %1236 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1235, i32 0, i32 80
  %1237 = load i32, ptr %1236, align 4, !tbaa !49
  %1238 = load ptr, ptr %13, align 8, !tbaa !5
  %1239 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1238, i32 0, i32 81
  %1240 = load i32, ptr %1239, align 4, !tbaa !50
  %1241 = load ptr, ptr %13, align 8, !tbaa !5
  %1242 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1241, i32 0, i32 82
  %1243 = load i32, ptr %1242, align 4, !tbaa !51
  %1244 = load ptr, ptr %13, align 8, !tbaa !5
  %1245 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1244, i32 0, i32 83
  %1246 = load i32, ptr %1245, align 4, !tbaa !52
  %1247 = load ptr, ptr %13, align 8, !tbaa !5
  %1248 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1247, i32 0, i32 84
  %1249 = load i32, ptr %1248, align 4, !tbaa !53
  %1250 = load ptr, ptr %13, align 8, !tbaa !5
  %1251 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1250, i32 0, i32 85
  %1252 = load i32, ptr %1251, align 4, !tbaa !54
  %1253 = load ptr, ptr %13, align 8, !tbaa !5
  %1254 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1253, i32 0, i32 86
  %1255 = load i32, ptr %1254, align 4, !tbaa !55
  %1256 = load ptr, ptr %13, align 8, !tbaa !5
  %1257 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1256, i32 0, i32 87
  %1258 = load i32, ptr %1257, align 4, !tbaa !56
  %1259 = load ptr, ptr %13, align 8, !tbaa !5
  %1260 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1259, i32 0, i32 88
  %1261 = load i32, ptr %1260, align 4, !tbaa !57
  %1262 = load ptr, ptr %13, align 8, !tbaa !5
  %1263 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1262, i32 0, i32 89
  %1264 = load i32, ptr %1263, align 4, !tbaa !58
  %1265 = load ptr, ptr %13, align 8, !tbaa !5
  %1266 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1265, i32 0, i32 90
  %1267 = load i32, ptr %1266, align 4, !tbaa !59
  %1268 = load ptr, ptr %13, align 8, !tbaa !5
  %1269 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1268, i32 0, i32 91
  %1270 = load i32, ptr %1269, align 4, !tbaa !60
  %1271 = load ptr, ptr %13, align 8, !tbaa !5
  %1272 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1271, i32 0, i32 92
  %1273 = load i32, ptr %1272, align 4, !tbaa !61
  %1274 = load ptr, ptr %13, align 8, !tbaa !5
  %1275 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1274, i32 0, i32 93
  %1276 = load i32, ptr %1275, align 4, !tbaa !62
  %1277 = load ptr, ptr %13, align 8, !tbaa !5
  %1278 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1277, i32 0, i32 94
  %1279 = load i32, ptr %1278, align 4, !tbaa !63
  %1280 = load ptr, ptr %13, align 8, !tbaa !5
  %1281 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1280, i32 0, i32 95
  %1282 = load i32, ptr %1281, align 4, !tbaa !64
  %1283 = load ptr, ptr %13, align 8, !tbaa !5
  %1284 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1283, i32 0, i32 96
  %1285 = load i32, ptr %1284, align 4, !tbaa !65
  %1286 = load ptr, ptr %13, align 8, !tbaa !5
  %1287 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1286, i32 0, i32 97
  %1288 = load i32, ptr %1287, align 4, !tbaa !66
  %1289 = load ptr, ptr %13, align 8, !tbaa !5
  %1290 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1289, i32 0, i32 98
  %1291 = load i32, ptr %1290, align 4, !tbaa !67
  %1292 = load ptr, ptr %13, align 8, !tbaa !5
  %1293 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1292, i32 0, i32 99
  %1294 = load i32, ptr %1293, align 4, !tbaa !68
  call void @libxsmm_generator_gelu_ps_minimax3_avx(ptr noundef %1233, i32 noundef %1234, i32 noundef %1237, i32 noundef %1240, i32 noundef %1243, i32 noundef %1246, i32 noundef %1249, i32 noundef %1252, i32 noundef %1255, i32 noundef %1258, i32 noundef %1261, i32 noundef %1264, i32 noundef %1267, i32 noundef %1270, i32 noundef %1273, i32 noundef %1276, i32 noundef %1279, i32 noundef %1282, i32 noundef %1285, i32 noundef %1288, i32 noundef %1291, i32 noundef %1294)
  br label %1406

1295:                                             ; preds = %1227
  %1296 = load ptr, ptr %11, align 8, !tbaa !5
  %1297 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1296, i32 0, i32 6
  %1298 = load i32, ptr %1297, align 4, !tbaa !16
  %1299 = icmp ult i32 %1298, 1101
  br i1 %1299, label %1300, label %1360

1300:                                             ; preds = %1295
  %1301 = load ptr, ptr %11, align 8, !tbaa !5
  %1302 = load i32, ptr %23, align 4, !tbaa !9
  %1303 = load ptr, ptr %13, align 8, !tbaa !5
  %1304 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1303, i32 0, i32 70
  %1305 = load i32, ptr %1304, align 4, !tbaa !69
  %1306 = load ptr, ptr %13, align 8, !tbaa !5
  %1307 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1306, i32 0, i32 71
  %1308 = load i32, ptr %1307, align 4, !tbaa !70
  %1309 = load ptr, ptr %13, align 8, !tbaa !5
  %1310 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1309, i32 0, i32 72
  %1311 = load i32, ptr %1310, align 4, !tbaa !71
  %1312 = load ptr, ptr %13, align 8, !tbaa !5
  %1313 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1312, i32 0, i32 73
  %1314 = load i32, ptr %1313, align 4, !tbaa !72
  %1315 = load ptr, ptr %13, align 8, !tbaa !5
  %1316 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1315, i32 0, i32 74
  %1317 = load i32, ptr %1316, align 4, !tbaa !73
  %1318 = load ptr, ptr %13, align 8, !tbaa !5
  %1319 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1318, i32 0, i32 75
  %1320 = load i32, ptr %1319, align 4, !tbaa !74
  %1321 = load ptr, ptr %13, align 8, !tbaa !5
  %1322 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1321, i32 0, i32 76
  %1323 = load i32, ptr %1322, align 4, !tbaa !75
  %1324 = load ptr, ptr %13, align 8, !tbaa !5
  %1325 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1324, i32 0, i32 77
  %1326 = load i32, ptr %1325, align 4, !tbaa !76
  %1327 = load ptr, ptr %13, align 8, !tbaa !5
  %1328 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1327, i32 0, i32 78
  %1329 = load i32, ptr %1328, align 4, !tbaa !77
  %1330 = load ptr, ptr %13, align 8, !tbaa !5
  %1331 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1330, i32 0, i32 79
  %1332 = load i32, ptr %1331, align 4, !tbaa !78
  %1333 = load ptr, ptr %13, align 8, !tbaa !5
  %1334 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1333, i32 0, i32 56
  %1335 = load i32, ptr %1334, align 4, !tbaa !29
  %1336 = load ptr, ptr %13, align 8, !tbaa !5
  %1337 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1336, i32 0, i32 80
  %1338 = load i32, ptr %1337, align 4, !tbaa !49
  %1339 = load ptr, ptr %13, align 8, !tbaa !5
  %1340 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1339, i32 0, i32 81
  %1341 = load i32, ptr %1340, align 4, !tbaa !50
  %1342 = load ptr, ptr %13, align 8, !tbaa !5
  %1343 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1342, i32 0, i32 82
  %1344 = load i32, ptr %1343, align 4, !tbaa !51
  %1345 = load ptr, ptr %13, align 8, !tbaa !5
  %1346 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1345, i32 0, i32 83
  %1347 = load i32, ptr %1346, align 4, !tbaa !52
  %1348 = load ptr, ptr %13, align 8, !tbaa !5
  %1349 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1348, i32 0, i32 84
  %1350 = load i32, ptr %1349, align 4, !tbaa !53
  %1351 = load ptr, ptr %13, align 8, !tbaa !5
  %1352 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1351, i32 0, i32 85
  %1353 = load i32, ptr %1352, align 4, !tbaa !54
  %1354 = load ptr, ptr %13, align 8, !tbaa !5
  %1355 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1354, i32 0, i32 86
  %1356 = load i32, ptr %1355, align 4, !tbaa !55
  %1357 = load ptr, ptr %13, align 8, !tbaa !5
  %1358 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1357, i32 0, i32 87
  %1359 = load i32, ptr %1358, align 4, !tbaa !56
  call void @libxsmm_generator_gelu_ps_minimax3_avx512_vl256(ptr noundef %1301, i32 noundef %1302, i32 noundef %1305, i32 noundef %1308, i32 noundef %1311, i32 noundef %1314, i32 noundef %1317, i32 noundef %1320, i32 noundef %1323, i32 noundef %1326, i32 noundef %1329, i32 noundef %1332, i32 noundef %1335, i32 noundef %1338, i32 noundef %1341, i32 noundef %1344, i32 noundef %1347, i32 noundef %1350, i32 noundef %1353, i32 noundef %1356, i32 noundef %1359)
  br label %1405

1360:                                             ; preds = %1295
  %1361 = load ptr, ptr %11, align 8, !tbaa !5
  %1362 = load i32, ptr %23, align 4, !tbaa !9
  %1363 = load ptr, ptr %13, align 8, !tbaa !5
  %1364 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1363, i32 0, i32 70
  %1365 = load i32, ptr %1364, align 4, !tbaa !69
  %1366 = load ptr, ptr %13, align 8, !tbaa !5
  %1367 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1366, i32 0, i32 71
  %1368 = load i32, ptr %1367, align 4, !tbaa !70
  %1369 = load ptr, ptr %13, align 8, !tbaa !5
  %1370 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1369, i32 0, i32 72
  %1371 = load i32, ptr %1370, align 4, !tbaa !71
  %1372 = load ptr, ptr %13, align 8, !tbaa !5
  %1373 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1372, i32 0, i32 73
  %1374 = load i32, ptr %1373, align 4, !tbaa !72
  %1375 = load ptr, ptr %13, align 8, !tbaa !5
  %1376 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1375, i32 0, i32 74
  %1377 = load i32, ptr %1376, align 4, !tbaa !73
  %1378 = load ptr, ptr %13, align 8, !tbaa !5
  %1379 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1378, i32 0, i32 75
  %1380 = load i32, ptr %1379, align 4, !tbaa !74
  %1381 = load ptr, ptr %13, align 8, !tbaa !5
  %1382 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1381, i32 0, i32 76
  %1383 = load i32, ptr %1382, align 4, !tbaa !75
  %1384 = load ptr, ptr %13, align 8, !tbaa !5
  %1385 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1384, i32 0, i32 77
  %1386 = load i32, ptr %1385, align 4, !tbaa !76
  %1387 = load ptr, ptr %13, align 8, !tbaa !5
  %1388 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1387, i32 0, i32 78
  %1389 = load i32, ptr %1388, align 4, !tbaa !77
  %1390 = load ptr, ptr %13, align 8, !tbaa !5
  %1391 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1390, i32 0, i32 79
  %1392 = load i32, ptr %1391, align 4, !tbaa !78
  %1393 = load ptr, ptr %13, align 8, !tbaa !5
  %1394 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1393, i32 0, i32 56
  %1395 = load i32, ptr %1394, align 4, !tbaa !29
  %1396 = load ptr, ptr %13, align 8, !tbaa !5
  %1397 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1396, i32 0, i32 36
  %1398 = load i32, ptr %1397, align 4, !tbaa !25
  %1399 = load ptr, ptr %13, align 8, !tbaa !5
  %1400 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1399, i32 0, i32 40
  %1401 = load i32, ptr %1400, align 4, !tbaa !26
  %1402 = load ptr, ptr %13, align 8, !tbaa !5
  %1403 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1402, i32 0, i32 44
  %1404 = load i32, ptr %1403, align 4, !tbaa !27
  call void @libxsmm_generator_gelu_ps_minimax3_avx512(ptr noundef %1361, i32 noundef %1362, i32 noundef %1365, i32 noundef %1368, i32 noundef %1371, i32 noundef %1374, i32 noundef %1377, i32 noundef %1380, i32 noundef %1383, i32 noundef %1386, i32 noundef %1389, i32 noundef %1392, i32 noundef %1395, i32 noundef %1398, i32 noundef %1401, i32 noundef %1404)
  br label %1405

1405:                                             ; preds = %1360, %1300
  br label %1406

1406:                                             ; preds = %1405, %1232
  br label %1594

1407:                                             ; preds = %1221
  %1408 = load ptr, ptr %14, align 8, !tbaa !5
  %1409 = getelementptr inbounds %struct.libxsmm_meltw_descriptor, ptr %1408, i32 0, i32 10
  %1410 = load i16, ptr %1409, align 1, !tbaa !15
  %1411 = zext i16 %1410 to i32
  %1412 = icmp eq i32 %1411, 12
  br i1 %1412, label %1413, label %1593

1413:                                             ; preds = %1407
  %1414 = load ptr, ptr %11, align 8, !tbaa !5
  %1415 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1414, i32 0, i32 6
  %1416 = load i32, ptr %1415, align 4, !tbaa !16
  %1417 = icmp ult i32 %1416, 1051
  br i1 %1417, label %1418, label %1481

1418:                                             ; preds = %1413
  %1419 = load ptr, ptr %11, align 8, !tbaa !5
  %1420 = load i32, ptr %23, align 4, !tbaa !9
  %1421 = load ptr, ptr %13, align 8, !tbaa !5
  %1422 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1421, i32 0, i32 80
  %1423 = load i32, ptr %1422, align 4, !tbaa !49
  %1424 = load ptr, ptr %13, align 8, !tbaa !5
  %1425 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1424, i32 0, i32 81
  %1426 = load i32, ptr %1425, align 4, !tbaa !50
  %1427 = load ptr, ptr %13, align 8, !tbaa !5
  %1428 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1427, i32 0, i32 82
  %1429 = load i32, ptr %1428, align 4, !tbaa !51
  %1430 = load ptr, ptr %13, align 8, !tbaa !5
  %1431 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1430, i32 0, i32 83
  %1432 = load i32, ptr %1431, align 4, !tbaa !52
  %1433 = load ptr, ptr %13, align 8, !tbaa !5
  %1434 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1433, i32 0, i32 84
  %1435 = load i32, ptr %1434, align 4, !tbaa !53
  %1436 = load ptr, ptr %13, align 8, !tbaa !5
  %1437 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1436, i32 0, i32 85
  %1438 = load i32, ptr %1437, align 4, !tbaa !54
  %1439 = load ptr, ptr %13, align 8, !tbaa !5
  %1440 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1439, i32 0, i32 86
  %1441 = load i32, ptr %1440, align 4, !tbaa !55
  %1442 = load ptr, ptr %13, align 8, !tbaa !5
  %1443 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1442, i32 0, i32 87
  %1444 = load i32, ptr %1443, align 4, !tbaa !56
  %1445 = load ptr, ptr %13, align 8, !tbaa !5
  %1446 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1445, i32 0, i32 88
  %1447 = load i32, ptr %1446, align 4, !tbaa !57
  %1448 = load ptr, ptr %13, align 8, !tbaa !5
  %1449 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1448, i32 0, i32 89
  %1450 = load i32, ptr %1449, align 4, !tbaa !58
  %1451 = load ptr, ptr %13, align 8, !tbaa !5
  %1452 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1451, i32 0, i32 90
  %1453 = load i32, ptr %1452, align 4, !tbaa !59
  %1454 = load ptr, ptr %13, align 8, !tbaa !5
  %1455 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1454, i32 0, i32 91
  %1456 = load i32, ptr %1455, align 4, !tbaa !60
  %1457 = load ptr, ptr %13, align 8, !tbaa !5
  %1458 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1457, i32 0, i32 92
  %1459 = load i32, ptr %1458, align 4, !tbaa !61
  %1460 = load ptr, ptr %13, align 8, !tbaa !5
  %1461 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1460, i32 0, i32 93
  %1462 = load i32, ptr %1461, align 4, !tbaa !62
  %1463 = load ptr, ptr %13, align 8, !tbaa !5
  %1464 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1463, i32 0, i32 94
  %1465 = load i32, ptr %1464, align 4, !tbaa !63
  %1466 = load ptr, ptr %13, align 8, !tbaa !5
  %1467 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1466, i32 0, i32 95
  %1468 = load i32, ptr %1467, align 4, !tbaa !64
  %1469 = load ptr, ptr %13, align 8, !tbaa !5
  %1470 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1469, i32 0, i32 96
  %1471 = load i32, ptr %1470, align 4, !tbaa !65
  %1472 = load ptr, ptr %13, align 8, !tbaa !5
  %1473 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1472, i32 0, i32 97
  %1474 = load i32, ptr %1473, align 4, !tbaa !66
  %1475 = load ptr, ptr %13, align 8, !tbaa !5
  %1476 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1475, i32 0, i32 98
  %1477 = load i32, ptr %1476, align 4, !tbaa !67
  %1478 = load ptr, ptr %13, align 8, !tbaa !5
  %1479 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1478, i32 0, i32 99
  %1480 = load i32, ptr %1479, align 4, !tbaa !68
  call void @libxsmm_generator_gelu_inv_ps_minimax3_avx(ptr noundef %1419, i32 noundef %1420, i32 noundef %1423, i32 noundef %1426, i32 noundef %1429, i32 noundef %1432, i32 noundef %1435, i32 noundef %1438, i32 noundef %1441, i32 noundef %1444, i32 noundef %1447, i32 noundef %1450, i32 noundef %1453, i32 noundef %1456, i32 noundef %1459, i32 noundef %1462, i32 noundef %1465, i32 noundef %1468, i32 noundef %1471, i32 noundef %1474, i32 noundef %1477, i32 noundef %1480)
  br label %1592

1481:                                             ; preds = %1413
  %1482 = load ptr, ptr %11, align 8, !tbaa !5
  %1483 = getelementptr inbounds %struct.libxsmm_generated_code, ptr %1482, i32 0, i32 6
  %1484 = load i32, ptr %1483, align 4, !tbaa !16
  %1485 = icmp ult i32 %1484, 1101
  br i1 %1485, label %1486, label %1546

1486:                                             ; preds = %1481
  %1487 = load ptr, ptr %11, align 8, !tbaa !5
  %1488 = load i32, ptr %23, align 4, !tbaa !9
  %1489 = load ptr, ptr %13, align 8, !tbaa !5
  %1490 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1489, i32 0, i32 70
  %1491 = load i32, ptr %1490, align 4, !tbaa !69
  %1492 = load ptr, ptr %13, align 8, !tbaa !5
  %1493 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1492, i32 0, i32 71
  %1494 = load i32, ptr %1493, align 4, !tbaa !70
  %1495 = load ptr, ptr %13, align 8, !tbaa !5
  %1496 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1495, i32 0, i32 72
  %1497 = load i32, ptr %1496, align 4, !tbaa !71
  %1498 = load ptr, ptr %13, align 8, !tbaa !5
  %1499 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1498, i32 0, i32 73
  %1500 = load i32, ptr %1499, align 4, !tbaa !72
  %1501 = load ptr, ptr %13, align 8, !tbaa !5
  %1502 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1501, i32 0, i32 74
  %1503 = load i32, ptr %1502, align 4, !tbaa !73
  %1504 = load ptr, ptr %13, align 8, !tbaa !5
  %1505 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1504, i32 0, i32 75
  %1506 = load i32, ptr %1505, align 4, !tbaa !74
  %1507 = load ptr, ptr %13, align 8, !tbaa !5
  %1508 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1507, i32 0, i32 76
  %1509 = load i32, ptr %1508, align 4, !tbaa !75
  %1510 = load ptr, ptr %13, align 8, !tbaa !5
  %1511 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1510, i32 0, i32 77
  %1512 = load i32, ptr %1511, align 4, !tbaa !76
  %1513 = load ptr, ptr %13, align 8, !tbaa !5
  %1514 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1513, i32 0, i32 78
  %1515 = load i32, ptr %1514, align 4, !tbaa !77
  %1516 = load ptr, ptr %13, align 8, !tbaa !5
  %1517 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1516, i32 0, i32 79
  %1518 = load i32, ptr %1517, align 4, !tbaa !78
  %1519 = load ptr, ptr %13, align 8, !tbaa !5
  %1520 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1519, i32 0, i32 56
  %1521 = load i32, ptr %1520, align 4, !tbaa !29
  %1522 = load ptr, ptr %13, align 8, !tbaa !5
  %1523 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1522, i32 0, i32 80
  %1524 = load i32, ptr %1523, align 4, !tbaa !49
  %1525 = load ptr, ptr %13, align 8, !tbaa !5
  %1526 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1525, i32 0, i32 81
  %1527 = load i32, ptr %1526, align 4, !tbaa !50
  %1528 = load ptr, ptr %13, align 8, !tbaa !5
  %1529 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1528, i32 0, i32 82
  %1530 = load i32, ptr %1529, align 4, !tbaa !51
  %1531 = load ptr, ptr %13, align 8, !tbaa !5
  %1532 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1531, i32 0, i32 83
  %1533 = load i32, ptr %1532, align 4, !tbaa !52
  %1534 = load ptr, ptr %13, align 8, !tbaa !5
  %1535 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1534, i32 0, i32 84
  %1536 = load i32, ptr %1535, align 4, !tbaa !53
  %1537 = load ptr, ptr %13, align 8, !tbaa !5
  %1538 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1537, i32 0, i32 85
  %1539 = load i32, ptr %1538, align 4, !tbaa !54
  %1540 = load ptr, ptr %13, align 8, !tbaa !5
  %1541 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1540, i32 0, i32 86
  %1542 = load i32, ptr %1541, align 4, !tbaa !55
  %1543 = load ptr, ptr %13, align 8, !tbaa !5
  %1544 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1543, i32 0, i32 87
  %1545 = load i32, ptr %1544, align 4, !tbaa !56
  call void @libxsmm_generator_gelu_inv_ps_minimax3_avx512_vl256(ptr noundef %1487, i32 noundef %1488, i32 noundef %1491, i32 noundef %1494, i32 noundef %1497, i32 noundef %1500, i32 noundef %1503, i32 noundef %1506, i32 noundef %1509, i32 noundef %1512, i32 noundef %1515, i32 noundef %1518, i32 noundef %1521, i32 noundef %1524, i32 noundef %1527, i32 noundef %1530, i32 noundef %1533, i32 noundef %1536, i32 noundef %1539, i32 noundef %1542, i32 noundef %1545)
  br label %1591

1546:                                             ; preds = %1481
  %1547 = load ptr, ptr %11, align 8, !tbaa !5
  %1548 = load i32, ptr %23, align 4, !tbaa !9
  %1549 = load ptr, ptr %13, align 8, !tbaa !5
  %1550 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1549, i32 0, i32 70
  %1551 = load i32, ptr %1550, align 4, !tbaa !69
  %1552 = load ptr, ptr %13, align 8, !tbaa !5
  %1553 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1552, i32 0, i32 71
  %1554 = load i32, ptr %1553, align 4, !tbaa !70
  %1555 = load ptr, ptr %13, align 8, !tbaa !5
  %1556 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1555, i32 0, i32 72
  %1557 = load i32, ptr %1556, align 4, !tbaa !71
  %1558 = load ptr, ptr %13, align 8, !tbaa !5
  %1559 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1558, i32 0, i32 73
  %1560 = load i32, ptr %1559, align 4, !tbaa !72
  %1561 = load ptr, ptr %13, align 8, !tbaa !5
  %1562 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1561, i32 0, i32 74
  %1563 = load i32, ptr %1562, align 4, !tbaa !73
  %1564 = load ptr, ptr %13, align 8, !tbaa !5
  %1565 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1564, i32 0, i32 75
  %1566 = load i32, ptr %1565, align 4, !tbaa !74
  %1567 = load ptr, ptr %13, align 8, !tbaa !5
  %1568 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1567, i32 0, i32 76
  %1569 = load i32, ptr %1568, align 4, !tbaa !75
  %1570 = load ptr, ptr %13, align 8, !tbaa !5
  %1571 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1570, i32 0, i32 77
  %1572 = load i32, ptr %1571, align 4, !tbaa !76
  %1573 = load ptr, ptr %13, align 8, !tbaa !5
  %1574 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1573, i32 0, i32 78
  %1575 = load i32, ptr %1574, align 4, !tbaa !77
  %1576 = load ptr, ptr %13, align 8, !tbaa !5
  %1577 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1576, i32 0, i32 79
  %1578 = load i32, ptr %1577, align 4, !tbaa !78
  %1579 = load ptr, ptr %13, align 8, !tbaa !5
  %1580 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1579, i32 0, i32 56
  %1581 = load i32, ptr %1580, align 4, !tbaa !29
  %1582 = load ptr, ptr %13, align 8, !tbaa !5
  %1583 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1582, i32 0, i32 36
  %1584 = load i32, ptr %1583, align 4, !tbaa !25
  %1585 = load ptr, ptr %13, align 8, !tbaa !5
  %1586 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1585, i32 0, i32 40
  %1587 = load i32, ptr %1586, align 4, !tbaa !26
  %1588 = load ptr, ptr %13, align 8, !tbaa !5
  %1589 = getelementptr inbounds %struct.libxsmm_mateltwise_kernel_config_struct, ptr %1588, i32 0, i32 44
  %1590 = load i32, ptr %1589, align 4, !tbaa !27
  call void @libxsmm_generator_gelu_inv_ps_minimax3_avx512(ptr noundef %1547, i32 noundef %1548, i32 noundef %1551, i32 noundef %1554, i32 noundef %1557, i32 noundef %1560, i32 noundef %1563, i32 noundef %1566, i32 noundef %1569, i32 noundef %1572, i32 noundef %1575, i32 noundef %1578, i32 noundef %1581, i32 noundef %1584, i32 noundef %1587, i32 noundef %1590)
  br label %1591

1591:                                             ; preds = %1546, %1486
  br label %1592

1592:                                             ; preds = %1591, %1418
  br label %1593

1593:                                             ; preds = %1592, %1407
  br label %1594

1594:                                             ; preds = %1593, %1406
  br label %1595

1595:                                             ; preds = %1594, %1220
  br label %1596

1596:                                             ; preds = %1595, %1073
  br label %1597

1597:                                             ; preds = %1596, %940
  br label %1598

1598:                                             ; preds = %1597, %807
  br label %1599

1599:                                             ; preds = %1598, %720
  br label %1600

1600:                                             ; preds = %1599, %464
  br label %1601

1601:                                             ; preds = %1600, %263
  br label %1602

1602:                                             ; preds = %1601, %222
  br label %1603

1603:                                             ; preds = %1602, %160
  br label %1604

1604:                                             ; preds = %1603, %127, %117
  %1605 = load i32, ptr %21, align 4, !tbaa !9
  %1606 = add i32 %1605, 1
  store i32 %1606, ptr %21, align 4, !tbaa !9
  br label %107, !llvm.loop !79

1607:                                             ; preds = %107
  br label %1608

1608:                                             ; preds = %1607, %105
  %1609 = load i32, ptr %22, align 4, !tbaa !9
  %1610 = add i32 %1609, 1
  store i32 %1610, ptr %22, align 4, !tbaa !9
  br label %95, !llvm.loop !81

1611:                                             ; preds = %95
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #3
  ret void
}

declare i32 @libxsmm_cpuid_x86_use_high_prec_eltwise_approx() #1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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, !7, i64 31}
!12 = !{!"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, !13, i64 27, !13, i64 29, !7, i64 31}
!13 = !{!"short", !7, i64 0}
!14 = !{!12, !13, i64 27}
!15 = !{!12, !13, i64 29}
!16 = !{!17, !10, i64 28}
!17 = !{!"libxsmm_generated_code", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28}
!18 = !{!19, !7, i64 512}
!19 = !{!"libxsmm_mateltwise_kernel_config_struct", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !10, i64 80, !10, i64 84, !10, i64 88, !10, i64 92, !10, i64 96, !10, i64 100, !10, i64 104, !10, i64 108, !10, i64 112, !10, i64 116, !10, i64 120, !10, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148, !10, i64 152, !10, i64 156, !10, i64 160, !10, i64 164, !10, i64 168, !10, i64 172, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !10, i64 192, !10, i64 196, !10, i64 200, !10, i64 204, !10, i64 208, !10, i64 212, !10, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !10, i64 232, !10, i64 236, !10, i64 240, !10, i64 244, !10, i64 248, !10, i64 252, !10, i64 256, !10, i64 260, !10, i64 264, !10, i64 268, !10, i64 272, !10, i64 276, !10, i64 280, !10, i64 284, !10, i64 288, !10, i64 292, !10, i64 296, !10, i64 300, !10, i64 304, !10, i64 308, !10, i64 312, !10, i64 316, !10, i64 320, !10, i64 324, !10, i64 328, !10, i64 332, !10, i64 336, !10, i64 340, !10, i64 344, !10, i64 348, !10, i64 352, !10, i64 356, !10, i64 360, !10, i64 364, !10, i64 368, !10, i64 372, !10, i64 376, !10, i64 380, !10, i64 384, !10, i64 388, !10, i64 392, !10, i64 396, !10, i64 400, !10, i64 404, !10, i64 408, !10, i64 412, !10, i64 416, !10, i64 420, !10, i64 424, !10, i64 428, !10, i64 432, !10, i64 436, !10, i64 440, !10, i64 444, !10, i64 448, !10, i64 452, !10, i64 456, !10, i64 460, !10, i64 464, !10, i64 468, !10, i64 472, !10, i64 476, !10, i64 480, !10, i64 484, !10, i64 488, !10, i64 492, !10, i64 496, !10, i64 500, !10, i64 504, !10, i64 508, !7, i64 512}
!20 = !{!19, !10, i64 476}
!21 = !{!19, !10, i64 216}
!22 = !{!19, !10, i64 116}
!23 = !{!19, !10, i64 256}
!24 = !{!19, !10, i64 260}
!25 = !{!19, !10, i64 144}
!26 = !{!19, !10, i64 160}
!27 = !{!19, !10, i64 176}
!28 = !{!19, !10, i64 204}
!29 = !{!19, !10, i64 224}
!30 = !{!19, !10, i64 240}
!31 = !{!19, !10, i64 264}
!32 = !{!19, !10, i64 208}
!33 = !{!19, !10, i64 212}
!34 = !{!19, !10, i64 276}
!35 = !{!19, !10, i64 248}
!36 = !{!19, !10, i64 252}
!37 = !{!19, !10, i64 244}
!38 = !{!19, !10, i64 268}
!39 = !{!19, !10, i64 272}
!40 = !{!19, !10, i64 132}
!41 = !{!19, !10, i64 136}
!42 = !{!19, !10, i64 140}
!43 = !{!19, !10, i64 192}
!44 = !{!19, !10, i64 196}
!45 = !{!19, !10, i64 200}
!46 = !{!19, !10, i64 220}
!47 = !{!19, !10, i64 228}
!48 = !{!19, !10, i64 232}
!49 = !{!19, !10, i64 320}
!50 = !{!19, !10, i64 324}
!51 = !{!19, !10, i64 328}
!52 = !{!19, !10, i64 332}
!53 = !{!19, !10, i64 336}
!54 = !{!19, !10, i64 340}
!55 = !{!19, !10, i64 344}
!56 = !{!19, !10, i64 348}
!57 = !{!19, !10, i64 352}
!58 = !{!19, !10, i64 356}
!59 = !{!19, !10, i64 360}
!60 = !{!19, !10, i64 364}
!61 = !{!19, !10, i64 368}
!62 = !{!19, !10, i64 372}
!63 = !{!19, !10, i64 376}
!64 = !{!19, !10, i64 380}
!65 = !{!19, !10, i64 384}
!66 = !{!19, !10, i64 388}
!67 = !{!19, !10, i64 392}
!68 = !{!19, !10, i64 396}
!69 = !{!19, !10, i64 280}
!70 = !{!19, !10, i64 284}
!71 = !{!19, !10, i64 288}
!72 = !{!19, !10, i64 292}
!73 = !{!19, !10, i64 296}
!74 = !{!19, !10, i64 300}
!75 = !{!19, !10, i64 304}
!76 = !{!19, !10, i64 308}
!77 = !{!19, !10, i64 312}
!78 = !{!19, !10, i64 316}
!79 = distinct !{!79, !80}
!80 = !{!"llvm.loop.mustprogress"}
!81 = distinct !{!81, !80}


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

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

declare void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef) local_unnamed_addr #0

declare void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef, i32 noundef, i8 noundef signext, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

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

14:                                               ; preds = %10
  %15 = getelementptr inbounds i8, ptr %3, i64 27
  %16 = load i16, ptr %15, align 1, !tbaa !11
  %.fr557 = freeze i16 %16
  %17 = and i16 %.fr557, 2
  %18 = icmp ne i16 %17, 0
  %19 = and i16 %.fr557, 4
  %20 = icmp ne i16 %19, 0
  %21 = and i16 %.fr557, 8
  %22 = icmp ne i16 %21, 0
  br label %23

23:                                               ; preds = %10, %14
  %.fr = phi i1 [ %20, %14 ], [ false, %10 ]
  %24 = phi i1 [ %18, %14 ], [ false, %10 ]
  %25 = phi i1 [ %22, %14 ], [ false, %10 ]
  %.not = icmp eq i32 %7, 0
  br i1 %.not, label %._crit_edge, label %.lr.ph548

.lr.ph548:                                        ; preds = %23
  %.not552 = icmp eq i32 %6, 0
  %26 = getelementptr inbounds i8, ptr %3, i64 29
  %27 = getelementptr inbounds i8, ptr %0, i64 28
  %28 = getelementptr inbounds i8, ptr %2, i64 280
  %29 = getelementptr inbounds i8, ptr %2, i64 284
  %30 = getelementptr inbounds i8, ptr %2, i64 288
  %31 = getelementptr inbounds i8, ptr %2, i64 292
  %32 = getelementptr inbounds i8, ptr %2, i64 296
  %33 = getelementptr inbounds i8, ptr %2, i64 300
  %34 = getelementptr inbounds i8, ptr %2, i64 304
  %35 = getelementptr inbounds i8, ptr %2, i64 308
  %36 = getelementptr inbounds i8, ptr %2, i64 312
  %37 = getelementptr inbounds i8, ptr %2, i64 316
  %38 = getelementptr inbounds i8, ptr %2, i64 224
  %39 = getelementptr inbounds i8, ptr %2, i64 144
  %40 = getelementptr inbounds i8, ptr %2, i64 160
  %41 = getelementptr inbounds i8, ptr %2, i64 176
  %42 = getelementptr inbounds i8, ptr %2, i64 320
  %43 = getelementptr inbounds i8, ptr %2, i64 324
  %44 = getelementptr inbounds i8, ptr %2, i64 328
  %45 = getelementptr inbounds i8, ptr %2, i64 332
  %46 = getelementptr inbounds i8, ptr %2, i64 336
  %47 = getelementptr inbounds i8, ptr %2, i64 340
  %48 = getelementptr inbounds i8, ptr %2, i64 344
  %49 = getelementptr inbounds i8, ptr %2, i64 348
  %50 = getelementptr inbounds i8, ptr %2, i64 352
  %51 = getelementptr inbounds i8, ptr %2, i64 356
  %52 = getelementptr inbounds i8, ptr %2, i64 360
  %53 = getelementptr inbounds i8, ptr %2, i64 364
  %54 = getelementptr inbounds i8, ptr %2, i64 368
  %55 = getelementptr inbounds i8, ptr %2, i64 372
  %56 = getelementptr inbounds i8, ptr %2, i64 376
  %57 = getelementptr inbounds i8, ptr %2, i64 380
  %58 = getelementptr inbounds i8, ptr %2, i64 384
  %59 = getelementptr inbounds i8, ptr %2, i64 388
  %60 = getelementptr inbounds i8, ptr %2, i64 392
  %61 = getelementptr inbounds i8, ptr %2, i64 396
  %62 = getelementptr inbounds i8, ptr %2, i64 132
  %63 = getelementptr inbounds i8, ptr %2, i64 136
  %64 = getelementptr inbounds i8, ptr %2, i64 140
  %65 = getelementptr inbounds i8, ptr %2, i64 228
  %66 = getelementptr inbounds i8, ptr %2, i64 232
  %67 = getelementptr inbounds i8, ptr %2, i64 204
  %68 = getelementptr inbounds i8, ptr %2, i64 192
  %69 = getelementptr inbounds i8, ptr %2, i64 196
  %70 = getelementptr inbounds i8, ptr %2, i64 200
  %71 = getelementptr inbounds i8, ptr %2, i64 208
  %72 = getelementptr inbounds i8, ptr %2, i64 212
  %73 = getelementptr inbounds i8, ptr %2, i64 216
  %74 = getelementptr inbounds i8, ptr %2, i64 220
  %75 = getelementptr inbounds i8, ptr %2, i64 512
  %76 = getelementptr inbounds i8, ptr %2, i64 256
  %77 = getelementptr inbounds i8, ptr %2, i64 260
  %78 = getelementptr inbounds i8, ptr %2, i64 276
  %79 = getelementptr inbounds i8, ptr %2, i64 248
  %80 = getelementptr inbounds i8, ptr %2, i64 252
  %81 = getelementptr inbounds i8, ptr %2, i64 240
  %82 = getelementptr inbounds i8, ptr %2, i64 244
  %83 = getelementptr inbounds i8, ptr %2, i64 264
  %84 = getelementptr inbounds i8, ptr %2, i64 268
  %85 = getelementptr inbounds i8, ptr %2, i64 272
  %86 = getelementptr inbounds i8, ptr %2, i64 116
  %87 = getelementptr inbounds i8, ptr %2, i64 476
  br i1 %.not552, label %._crit_edge, label %.lr.ph548.split.us

.lr.ph548.split.us:                               ; preds = %.lr.ph548, %..loopexit_crit_edge.us
  %.0538546.us = phi i32 [ %521, %..loopexit_crit_edge.us ], [ 0, %.lr.ph548 ]
  %88 = icmp ne i32 %.0538546.us, 0
  %or.cond.us = and i1 %.fr, %88
  br i1 %or.cond.us, label %..loopexit_crit_edge.us, label %.preheader.us

89:                                               ; preds = %.preheader.us, %519
  %.0545.us = phi i32 [ 0, %.preheader.us ], [ %520, %519 ]
  %90 = icmp ne i32 %.0545.us, 0
  %or.cond3.us = and i1 %24, %90
  br i1 %or.cond3.us, label %519, label %91

91:                                               ; preds = %89
  %92 = or i32 %.0545.us, %.0538546.us
  %or.cond5.not.us = icmp ne i32 %92, 0
  %or.cond543.not.us = and i1 %25, %or.cond5.not.us
  br i1 %or.cond543.not.us, label %519, label %93

93:                                               ; preds = %91
  %94 = add i32 %523, %.0545.us
  %95 = load i16, ptr %26, align 1, !tbaa !12
  switch i16 %95, label %519 [
    i16 3, label %510
    i16 13, label %499
    i16 14, label %488
    i16 15, label %426
    i16 16, label %349
    i16 4, label %321
    i16 17, label %278
    i16 7, label %239
    i16 8, label %239
    i16 9, label %196
    i16 10, label %196
    i16 11, label %146
    i16 12, label %96
  ]

96:                                               ; preds = %93
  %97 = load i32, ptr %27, align 4, !tbaa !13
  %98 = icmp ult i32 %97, 1051
  br i1 %98, label %125, label %99

99:                                               ; preds = %96
  %100 = icmp ult i32 %97, 1101
  %101 = load i32, ptr %28, align 4, !tbaa !16
  %102 = load i32, ptr %29, align 4, !tbaa !18
  %103 = load i32, ptr %30, align 4, !tbaa !19
  %104 = load i32, ptr %31, align 4, !tbaa !20
  %105 = load i32, ptr %32, align 4, !tbaa !21
  %106 = load i32, ptr %33, align 4, !tbaa !22
  %107 = load i32, ptr %34, align 4, !tbaa !23
  %108 = load i32, ptr %35, align 4, !tbaa !24
  %109 = load i32, ptr %36, align 4, !tbaa !25
  %110 = load i32, ptr %37, align 4, !tbaa !26
  %111 = load i32, ptr %38, align 4, !tbaa !27
  br i1 %100, label %116, label %112

112:                                              ; preds = %99
  %113 = load i32, ptr %39, align 4, !tbaa !28
  %114 = load i32, ptr %40, align 4, !tbaa !29
  %115 = load i32, ptr %41, align 4, !tbaa !30
  tail call void @libxsmm_generator_gelu_inv_ps_minimax3_avx512(ptr noundef nonnull %0, i32 noundef %94, i32 noundef %101, i32 noundef %102, i32 noundef %103, i32 noundef %104, i32 noundef %105, i32 noundef %106, i32 noundef %107, i32 noundef %108, i32 noundef %109, i32 noundef %110, i32 noundef %111, i32 noundef %113, i32 noundef %114, i32 noundef %115) #2
  br label %519

116:                                              ; preds = %99
  %117 = load i32, ptr %42, align 4, !tbaa !31
  %118 = load i32, ptr %43, align 4, !tbaa !32
  %119 = load i32, ptr %44, align 4, !tbaa !33
  %120 = load i32, ptr %45, align 4, !tbaa !34
  %121 = load i32, ptr %46, align 4, !tbaa !35
  %122 = load i32, ptr %47, align 4, !tbaa !36
  %123 = load i32, ptr %48, align 4, !tbaa !37
  %124 = load i32, ptr %49, align 4, !tbaa !38
  tail call void @libxsmm_generator_gelu_inv_ps_minimax3_avx512_vl256(ptr noundef nonnull %0, i32 noundef %94, i32 noundef %101, i32 noundef %102, i32 noundef %103, i32 noundef %104, i32 noundef %105, i32 noundef %106, i32 noundef %107, i32 noundef %108, i32 noundef %109, i32 noundef %110, i32 noundef %111, i32 noundef %117, i32 noundef %118, i32 noundef %119, i32 noundef %120, i32 noundef %121, i32 noundef %122, i32 noundef %123, i32 noundef %124) #2
  br label %519

125:                                              ; preds = %96
  %126 = load i32, ptr %42, align 4, !tbaa !31
  %127 = load i32, ptr %43, align 4, !tbaa !32
  %128 = load i32, ptr %44, align 4, !tbaa !33
  %129 = load i32, ptr %45, align 4, !tbaa !34
  %130 = load i32, ptr %46, align 4, !tbaa !35
  %131 = load i32, ptr %47, align 4, !tbaa !36
  %132 = load i32, ptr %48, align 4, !tbaa !37
  %133 = load i32, ptr %49, align 4, !tbaa !38
  %134 = load i32, ptr %50, align 4, !tbaa !39
  %135 = load i32, ptr %51, align 4, !tbaa !40
  %136 = load i32, ptr %52, align 4, !tbaa !41
  %137 = load i32, ptr %53, align 4, !tbaa !42
  %138 = load i32, ptr %54, align 4, !tbaa !43
  %139 = load i32, ptr %55, align 4, !tbaa !44
  %140 = load i32, ptr %56, align 4, !tbaa !45
  %141 = load i32, ptr %57, align 4, !tbaa !46
  %142 = load i32, ptr %58, align 4, !tbaa !47
  %143 = load i32, ptr %59, align 4, !tbaa !48
  %144 = load i32, ptr %60, align 4, !tbaa !49
  %145 = load i32, ptr %61, align 4, !tbaa !50
  tail call void @libxsmm_generator_gelu_inv_ps_minimax3_avx(ptr noundef nonnull %0, i32 noundef %94, i32 noundef %126, i32 noundef %127, i32 noundef %128, i32 noundef %129, i32 noundef %130, i32 noundef %131, i32 noundef %132, i32 noundef %133, i32 noundef %134, i32 noundef %135, i32 noundef %136, i32 noundef %137, i32 noundef %138, i32 noundef %139, i32 noundef %140, i32 noundef %141, i32 noundef %142, i32 noundef %143, i32 noundef %144, i32 noundef %145) #2
  br label %519

146:                                              ; preds = %93
  %147 = load i32, ptr %27, align 4, !tbaa !13
  %148 = icmp ult i32 %147, 1051
  br i1 %148, label %175, label %149

149:                                              ; preds = %146
  %150 = icmp ult i32 %147, 1101
  %151 = load i32, ptr %28, align 4, !tbaa !16
  %152 = load i32, ptr %29, align 4, !tbaa !18
  %153 = load i32, ptr %30, align 4, !tbaa !19
  %154 = load i32, ptr %31, align 4, !tbaa !20
  %155 = load i32, ptr %32, align 4, !tbaa !21
  %156 = load i32, ptr %33, align 4, !tbaa !22
  %157 = load i32, ptr %34, align 4, !tbaa !23
  %158 = load i32, ptr %35, align 4, !tbaa !24
  %159 = load i32, ptr %36, align 4, !tbaa !25
  %160 = load i32, ptr %37, align 4, !tbaa !26
  %161 = load i32, ptr %38, align 4, !tbaa !27
  br i1 %150, label %166, label %162

162:                                              ; preds = %149
  %163 = load i32, ptr %39, align 4, !tbaa !28
  %164 = load i32, ptr %40, align 4, !tbaa !29
  %165 = load i32, ptr %41, align 4, !tbaa !30
  tail call void @libxsmm_generator_gelu_ps_minimax3_avx512(ptr noundef nonnull %0, i32 noundef %94, i32 noundef %151, i32 noundef %152, i32 noundef %153, i32 noundef %154, i32 noundef %155, i32 noundef %156, i32 noundef %157, i32 noundef %158, i32 noundef %159, i32 noundef %160, i32 noundef %161, i32 noundef %163, i32 noundef %164, i32 noundef %165) #2
  br label %519

166:                                              ; preds = %149
  %167 = load i32, ptr %42, align 4, !tbaa !31
  %168 = load i32, ptr %43, align 4, !tbaa !32
  %169 = load i32, ptr %44, align 4, !tbaa !33
  %170 = load i32, ptr %45, align 4, !tbaa !34
  %171 = load i32, ptr %46, align 4, !tbaa !35
  %172 = load i32, ptr %47, align 4, !tbaa !36
  %173 = load i32, ptr %48, align 4, !tbaa !37
  %174 = load i32, ptr %49, align 4, !tbaa !38
  tail call void @libxsmm_generator_gelu_ps_minimax3_avx512_vl256(ptr noundef nonnull %0, i32 noundef %94, i32 noundef %151, i32 noundef %152, i32 noundef %153, i32 noundef %154, i32 noundef %155, i32 noundef %156, i32 noundef %157, i32 noundef %158, i32 noundef %159, i32 noundef %160, i32 noundef %161, i32 noundef %167, i32 noundef %168, i32 noundef %169, i32 noundef %170, i32 noundef %171, i32 noundef %172, i32 noundef %173, i32 noundef %174) #2
  br label %519

175:                                              ; preds = %146
  %176 = load i32, ptr %42, align 4, !tbaa !31
  %177 = load i32, ptr %43, align 4, !tbaa !32
  %178 = load i32, ptr %44, align 4, !tbaa !33
  %179 = load i32, ptr %45, align 4, !tbaa !34
  %180 = load i32, ptr %46, align 4, !tbaa !35
  %181 = load i32, ptr %47, align 4, !tbaa !36
  %182 = load i32, ptr %48, align 4, !tbaa !37
  %183 = load i32, ptr %49, align 4, !tbaa !38
  %184 = load i32, ptr %50, align 4, !tbaa !39
  %185 = load i32, ptr %51, align 4, !tbaa !40
  %186 = load i32, ptr %52, align 4, !tbaa !41
  %187 = load i32, ptr %53, align 4, !tbaa !42
  %188 = load i32, ptr %54, align 4, !tbaa !43
  %189 = load i32, ptr %55, align 4, !tbaa !44
  %190 = load i32, ptr %56, align 4, !tbaa !45
  %191 = load i32, ptr %57, align 4, !tbaa !46
  %192 = load i32, ptr %58, align 4, !tbaa !47
  %193 = load i32, ptr %59, align 4, !tbaa !48
  %194 = load i32, ptr %60, align 4, !tbaa !49
  %195 = load i32, ptr %61, align 4, !tbaa !50
  tail call void @libxsmm_generator_gelu_ps_minimax3_avx(ptr noundef nonnull %0, i32 noundef %94, i32 noundef %176, i32 noundef %177, i32 noundef %178, i32 noundef %179, i32 noundef %180, i32 noundef %181, i32 noundef %182, i32 noundef %183, i32 noundef %184, i32 noundef %185, i32 noundef %186, i32 noundef %187, i32 noundef %188, i32 noundef %189, i32 noundef %190, i32 noundef %191, i32 noundef %192, i32 noundef %193, i32 noundef %194, i32 noundef %195) #2
  br label %519

196:                                              ; preds = %93, %93
  %197 = load i32, ptr %27, align 4, !tbaa !13
  %198 = icmp ult i32 %197, 1051
  %199 = load i32, ptr %62, align 4, !tbaa !51
  %200 = load i32, ptr %63, align 4, !tbaa !52
  %201 = load i32, ptr %64, align 4, !tbaa !53
  br i1 %198, label %218, label %202

202:                                              ; preds = %196
  %203 = load i32, ptr %65, align 4, !tbaa !54
  %204 = load i32, ptr %66, align 4, !tbaa !55
  %205 = load i32, ptr %39, align 4, !tbaa !28
  %206 = load i32, ptr %40, align 4, !tbaa !29
  %207 = load i32, ptr %41, align 4, !tbaa !30
  %208 = load i32, ptr %67, align 4, !tbaa !56
  %209 = load i32, ptr %68, align 4, !tbaa !57
  %210 = load i32, ptr %69, align 4, !tbaa !58
  %211 = load i32, ptr %70, align 4, !tbaa !59
  %212 = load i32, ptr %71, align 4, !tbaa !60
  %213 = load i32, ptr %72, align 4, !tbaa !61
  %214 = load i32, ptr %73, align 4, !tbaa !62
  %215 = load i32, ptr %74, align 4, !tbaa !63
  %216 = load i32, ptr %38, align 4, !tbaa !27
  %217 = load i8, ptr %75, align 4, !tbaa !64
  tail call void @libxsmm_generator_sigmoid_ps_rational_78_avx512(ptr noundef nonnull %0, i32 noundef %94, i32 noundef %199, i32 noundef %200, i32 noundef %201, i32 noundef %203, i32 noundef %204, i32 noundef %205, i32 noundef %206, i32 noundef %207, i32 noundef %208, i32 noundef %209, i32 noundef %210, i32 noundef %211, i32 noundef %212, i32 noundef %213, i32 noundef %214, i32 noundef %215, i32 noundef %216, i8 noundef zeroext %217) #2
  br label %230

218:                                              ; preds = %196
  %219 = load i32, ptr %39, align 4, !tbaa !28
  %220 = load i32, ptr %40, align 4, !tbaa !29
  %221 = load i32, ptr %41, align 4, !tbaa !30
  %222 = load i32, ptr %67, align 4, !tbaa !56
  %223 = load i32, ptr %68, align 4, !tbaa !57
  %224 = load i32, ptr %69, align 4, !tbaa !58
  %225 = load i32, ptr %70, align 4, !tbaa !59
  %226 = load i32, ptr %71, align 4, !tbaa !60
  %227 = load i32, ptr %72, align 4, !tbaa !61
  %228 = load i32, ptr %73, align 4, !tbaa !62
  %229 = load i32, ptr %74, align 4, !tbaa !63
  tail call void @libxsmm_generator_sigmoid_ps_rational_78_avx(ptr noundef nonnull %0, i32 noundef %94, i32 noundef %199, i32 noundef %200, i32 noundef %201, i32 noundef %219, i32 noundef %220, i32 noundef %221, i32 noundef %222, i32 noundef %223, i32 noundef %224, i32 noundef %225, i32 noundef %226, i32 noundef %227, i32 noundef %228, i32 noundef %229) #2
  br label %230

230:                                              ; preds = %218, %202
  %231 = load i16, ptr %26, align 1, !tbaa !12
  %232 = icmp eq i16 %231, 10
  br i1 %232, label %233, label %519

233:                                              ; preds = %230
  %234 = load i8, ptr %75, align 4, !tbaa !64
  %235 = load i32, ptr %73, align 4, !tbaa !62
  %236 = load i32, ptr %62, align 4, !tbaa !51
  tail call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef 805574236, i8 noundef signext %234, i32 noundef %94, i32 noundef %235, i32 noundef %236) #2
  %237 = load i8, ptr %75, align 4, !tbaa !64
  %238 = load i32, ptr %62, align 4, !tbaa !51
  tail call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef 805574233, i8 noundef signext %237, i32 noundef %238, i32 noundef %94, i32 noundef %94) #2
  br label %519

239:                                              ; preds = %93, %93
  %240 = load i32, ptr %27, align 4, !tbaa !13
  %241 = icmp ult i32 %240, 1051
  %242 = load i32, ptr %62, align 4, !tbaa !51
  %243 = load i32, ptr %63, align 4, !tbaa !52
  %244 = load i32, ptr %64, align 4, !tbaa !53
  br i1 %241, label %260, label %245

245:                                              ; preds = %239
  %246 = load i32, ptr %65, align 4, !tbaa !54
  %247 = load i32, ptr %66, align 4, !tbaa !55
  %248 = load i32, ptr %39, align 4, !tbaa !28
  %249 = load i32, ptr %40, align 4, !tbaa !29
  %250 = load i32, ptr %41, align 4, !tbaa !30
  %251 = load i32, ptr %67, align 4, !tbaa !56
  %252 = load i32, ptr %68, align 4, !tbaa !57
  %253 = load i32, ptr %69, align 4, !tbaa !58
  %254 = load i32, ptr %70, align 4, !tbaa !59
  %255 = load i32, ptr %71, align 4, !tbaa !60
  %256 = load i32, ptr %72, align 4, !tbaa !61
  %257 = load i32, ptr %73, align 4, !tbaa !62
  %258 = load i32, ptr %74, align 4, !tbaa !63
  %259 = load i8, ptr %75, align 4, !tbaa !64
  tail call void @libxsmm_generator_tanh_ps_rational_78_avx512(ptr noundef nonnull %0, i32 noundef %94, i32 noundef %242, i32 noundef %243, i32 noundef %244, i32 noundef %246, i32 noundef %247, i32 noundef %248, i32 noundef %249, i32 noundef %250, i32 noundef %251, i32 noundef %252, i32 noundef %253, i32 noundef %254, i32 noundef %255, i32 noundef %256, i32 noundef %257, i32 noundef %258, i8 noundef zeroext %259) #2
  br label %272

260:                                              ; preds = %239
  %261 = load i32, ptr %39, align 4, !tbaa !28
  %262 = load i32, ptr %40, align 4, !tbaa !29
  %263 = load i32, ptr %41, align 4, !tbaa !30
  %264 = load i32, ptr %67, align 4, !tbaa !56
  %265 = load i32, ptr %68, align 4, !tbaa !57
  %266 = load i32, ptr %69, align 4, !tbaa !58
  %267 = load i32, ptr %70, align 4, !tbaa !59
  %268 = load i32, ptr %71, align 4, !tbaa !60
  %269 = load i32, ptr %72, align 4, !tbaa !61
  %270 = load i32, ptr %73, align 4, !tbaa !62
  %271 = load i32, ptr %74, align 4, !tbaa !63
  tail call void @libxsmm_generator_tanh_ps_rational_78_avx(ptr noundef nonnull %0, i32 noundef %94, i32 noundef %242, i32 noundef %243, i32 noundef %244, i32 noundef %261, i32 noundef %262, i32 noundef %263, i32 noundef %264, i32 noundef %265, i32 noundef %266, i32 noundef %267, i32 noundef %268, i32 noundef %269, i32 noundef %270, i32 noundef %271) #2
  br label %272

272:                                              ; preds = %260, %245
  %273 = load i16, ptr %26, align 1, !tbaa !12
  %274 = icmp eq i16 %273, 8
  br i1 %274, label %275, label %519

275:                                              ; preds = %272
  %276 = load i8, ptr %75, align 4, !tbaa !64
  %277 = load i32, ptr %74, align 4, !tbaa !63
  tail call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef 805643950, i8 noundef signext %276, i32 noundef %277, i32 noundef %94, i32 noundef %94) #2
  br label %519

278:                                              ; preds = %93
  %279 = load i32, ptr %27, align 4, !tbaa !13
  %280 = icmp ult i32 %279, 1051
  br i1 %280, label %309, label %281

281:                                              ; preds = %278
  %282 = tail call i32 @libxsmm_cpuid_x86_use_high_prec_eltwise_approx() #2
  %283 = icmp eq i32 %282, 0
  %284 = load i32, ptr %76, align 4, !tbaa !65
  %285 = load i32, ptr %77, align 4, !tbaa !66
  br i1 %283, label %301, label %286

286:                                              ; preds = %281
  %287 = load i32, ptr %78, align 4, !tbaa !67
  %288 = load i32, ptr %39, align 4, !tbaa !28
  %289 = load i32, ptr %40, align 4, !tbaa !29
  %290 = load i32, ptr %41, align 4, !tbaa !30
  %291 = load i32, ptr %67, align 4, !tbaa !56
  %292 = load i32, ptr %79, align 4, !tbaa !68
  %293 = load i32, ptr %80, align 4, !tbaa !69
  %294 = load i32, ptr %38, align 4, !tbaa !27
  %295 = load i32, ptr %81, align 4, !tbaa !70
  %296 = load i32, ptr %82, align 4, !tbaa !71
  %297 = load i32, ptr %83, align 4, !tbaa !72
  %298 = load i32, ptr %84, align 4, !tbaa !73
  %299 = load i32, ptr %85, align 4, !tbaa !74
  %300 = load i8, ptr %75, align 4, !tbaa !64
  tail call void @libxsmm_generator_exp_ps_5dts_avx512(ptr noundef nonnull %0, i32 noundef %94, i32 noundef %284, i32 noundef %285, i32 noundef %287, i32 noundef %288, i32 noundef %289, i32 noundef %290, i32 noundef %291, i32 noundef %292, i32 noundef %293, i32 noundef %294, i32 noundef %295, i32 noundef %296, i32 noundef %297, i32 noundef %298, i32 noundef %299, i8 noundef zeroext %300) #2
  br label %519

301:                                              ; preds = %281
  %302 = load i32, ptr %39, align 4, !tbaa !28
  %303 = load i32, ptr %40, align 4, !tbaa !29
  %304 = load i32, ptr %41, align 4, !tbaa !30
  %305 = load i32, ptr %67, align 4, !tbaa !56
  %306 = load i32, ptr %38, align 4, !tbaa !27
  %307 = load i32, ptr %81, align 4, !tbaa !70
  %308 = load i8, ptr %75, align 4, !tbaa !64
  tail call void @libxsmm_generator_exp_ps_3dts_avx512(ptr noundef nonnull %0, i32 noundef %94, i32 noundef %284, i32 noundef %285, i32 noundef %302, i32 noundef %303, i32 noundef %304, i32 noundef %305, i32 noundef %306, i32 noundef %307, i8 noundef zeroext %308) #2
  br label %519

309:                                              ; preds = %278
  %310 = load i32, ptr %76, align 4, !tbaa !65
  %311 = load i32, ptr %77, align 4, !tbaa !66
  %312 = load i32, ptr %39, align 4, !tbaa !28
  %313 = load i32, ptr %40, align 4, !tbaa !29
  %314 = load i32, ptr %41, align 4, !tbaa !30
  %315 = load i32, ptr %67, align 4, !tbaa !56
  %316 = load i32, ptr %38, align 4, !tbaa !27
  %317 = load i32, ptr %81, align 4, !tbaa !70
  %318 = load i32, ptr %83, align 4, !tbaa !72
  %319 = load i32, ptr %71, align 4, !tbaa !60
  %320 = load i32, ptr %72, align 4, !tbaa !61
  tail call void @libxsmm_generator_exp_ps_3dts_avx(ptr noundef nonnull %0, i32 noundef %94, i32 noundef %310, i32 noundef %311, i32 noundef %312, i32 noundef %313, i32 noundef %314, i32 noundef %315, i32 noundef %316, i32 noundef %317, i32 noundef %318, i32 noundef %319, i32 noundef %320) #2
  br label %519

321:                                              ; preds = %93
  %322 = load i32, ptr %27, align 4, !tbaa !13
  %323 = icmp ult i32 %322, 1051
  %324 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #2
  %325 = icmp eq i32 %324, 1
  br i1 %323, label %333, label %326

326:                                              ; preds = %321
  %327 = select i1 %325, i32 -536533426, i32 -528144818
  %328 = load i8, ptr %75, align 4, !tbaa !64
  tail call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef %327, i8 noundef signext %328, i32 noundef %94, i32 noundef 255, i32 noundef %94, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 0) #2
  %329 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #2
  %330 = icmp eq i32 %329, 1
  %331 = select i1 %330, i32 -536533428, i32 -528144820
  %332 = load i8, ptr %75, align 4, !tbaa !64
  tail call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef %331, i8 noundef signext %332, i32 noundef %94, i32 noundef 255, i32 noundef %94, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 0) #2
  br label %519

333:                                              ; preds = %321
  br i1 %325, label %342, label %334

334:                                              ; preds = %333
  %335 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #2
  %336 = icmp eq i32 %335, 0
  br i1 %336, label %337, label %519

337:                                              ; preds = %334
  %338 = load i32, ptr %27, align 4, !tbaa !13
  %339 = icmp ult i32 %338, 1005
  %340 = select i1 %339, i32 -1610280879, i32 545592913
  %341 = load i8, ptr %75, align 4, !tbaa !64
  tail call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %340, i8 noundef signext %341, i32 noundef %94, i32 noundef 255, i32 noundef %94) #2
  br label %519

342:                                              ; preds = %333
  %343 = load i32, ptr %27, align 4, !tbaa !13
  %344 = icmp ult i32 %343, 1005
  %345 = select i1 %344, i32 -1610346414, i32 1610879058
  %346 = select i1 %344, i32 -1610346413, i32 1610879059
  %347 = load i8, ptr %75, align 4, !tbaa !64
  tail call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %345, i8 noundef signext %347, i32 noundef %94, i32 noundef 255, i32 noundef %94) #2
  %348 = load i8, ptr %75, align 4, !tbaa !64
  tail call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %346, i8 noundef signext %348, i32 noundef %94, i32 noundef 255, i32 noundef %94) #2
  br label %519

349:                                              ; preds = %93
  %350 = tail call i32 @libxsmm_cpuid_x86_use_high_prec_eltwise_approx() #2
  %351 = icmp eq i32 %350, 0
  br i1 %351, label %392, label %352

352:                                              ; preds = %349
  %353 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #2
  %354 = icmp eq i32 %353, 1
  br i1 %354, label %375, label %355

355:                                              ; preds = %352
  %356 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #2
  %357 = icmp eq i32 %356, 0
  br i1 %357, label %358, label %519

358:                                              ; preds = %355
  %359 = load i32, ptr %27, align 4, !tbaa !13
  %360 = icmp ult i32 %359, 1005
  %361 = select i1 %360, i32 -1610280879, i32 545592913
  %362 = select i1 %360, i32 -1610280866, i32 814028382
  %363 = load i8, ptr %75, align 4, !tbaa !64
  tail call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %361, i8 noundef signext %363, i32 noundef %94, i32 noundef 255, i32 noundef %94) #2
  %364 = load i32, ptr %27, align 4, !tbaa !13
  %365 = icmp ult i32 %364, 1005
  %366 = load i8, ptr %75, align 4, !tbaa !64
  %367 = load i32, ptr %73, align 4, !tbaa !62
  br i1 %365, label %369, label %368

368:                                              ; preds = %358
  tail call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %362, i8 noundef signext %366, i32 noundef %94, i32 noundef %367, i32 noundef %94) #2
  br label %519

369:                                              ; preds = %358
  %370 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef -1610346480, i8 noundef signext %366, i32 noundef %367, i32 noundef %370) #2
  %371 = load i8, ptr %75, align 4, !tbaa !64
  %372 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef %362, i8 noundef signext %371, i32 noundef %94, i32 noundef %372) #2
  %373 = load i8, ptr %75, align 4, !tbaa !64
  %374 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef -1610346480, i8 noundef signext %373, i32 noundef %374, i32 noundef %94) #2
  br label %519

375:                                              ; preds = %352
  %376 = load i32, ptr %27, align 4, !tbaa !13
  %377 = icmp ult i32 %376, 1005
  %378 = select i1 %377, i32 -1610346415, i32 537138513
  %379 = select i1 %377, i32 -1610346402, i32 805574238
  %380 = load i8, ptr %75, align 4, !tbaa !64
  tail call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef %0, i32 noundef %378, i8 noundef signext %380, i32 noundef %94, i32 noundef 255, i32 noundef %94, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 0) #2
  %381 = load i32, ptr %27, align 4, !tbaa !13
  %382 = icmp ult i32 %381, 1005
  %383 = load i8, ptr %75, align 4, !tbaa !64
  %384 = load i32, ptr %73, align 4, !tbaa !62
  br i1 %382, label %386, label %385

385:                                              ; preds = %375
  tail call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %379, i8 noundef signext %383, i32 noundef %94, i32 noundef %384, i32 noundef %94) #2
  br label %519

386:                                              ; preds = %375
  %387 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef -1610346480, i8 noundef signext %383, i32 noundef %384, i32 noundef %387) #2
  %388 = load i8, ptr %75, align 4, !tbaa !64
  %389 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef %379, i8 noundef signext %388, i32 noundef %94, i32 noundef %389) #2
  %390 = load i8, ptr %75, align 4, !tbaa !64
  %391 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef -1610346480, i8 noundef signext %390, i32 noundef %391, i32 noundef %94) #2
  br label %519

392:                                              ; preds = %349
  %393 = load i32, ptr %27, align 4, !tbaa !13
  %394 = icmp ult i32 %393, 1051
  %395 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #2
  %396 = icmp eq i32 %395, 1
  br i1 %394, label %400, label %397

397:                                              ; preds = %392
  %398 = select i1 %396, i32 -536533426, i32 -528144818
  %399 = load i8, ptr %75, align 4, !tbaa !64
  tail call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef %398, i8 noundef signext %399, i32 noundef %94, i32 noundef 255, i32 noundef %94, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 0) #2
  br label %519

400:                                              ; preds = %392
  br i1 %396, label %421, label %401

401:                                              ; preds = %400
  %402 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #2
  %403 = icmp eq i32 %402, 0
  br i1 %403, label %404, label %519

404:                                              ; preds = %401
  %405 = load i32, ptr %27, align 4, !tbaa !13
  %406 = icmp ult i32 %405, 1005
  %407 = select i1 %406, i32 -1610280879, i32 545592913
  %408 = select i1 %406, i32 -1610280866, i32 814028382
  %409 = load i8, ptr %75, align 4, !tbaa !64
  tail call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %407, i8 noundef signext %409, i32 noundef %94, i32 noundef 255, i32 noundef %94) #2
  %410 = load i32, ptr %27, align 4, !tbaa !13
  %411 = icmp ult i32 %410, 1005
  %412 = load i8, ptr %75, align 4, !tbaa !64
  %413 = load i32, ptr %73, align 4, !tbaa !62
  br i1 %411, label %415, label %414

414:                                              ; preds = %404
  tail call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %408, i8 noundef signext %412, i32 noundef %94, i32 noundef %413, i32 noundef %94) #2
  br label %519

415:                                              ; preds = %404
  %416 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef -1610346480, i8 noundef signext %412, i32 noundef %413, i32 noundef %416) #2
  %417 = load i8, ptr %75, align 4, !tbaa !64
  %418 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef %408, i8 noundef signext %417, i32 noundef %94, i32 noundef %418) #2
  %419 = load i8, ptr %75, align 4, !tbaa !64
  %420 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef -1610346480, i8 noundef signext %419, i32 noundef %420, i32 noundef %94) #2
  br label %519

421:                                              ; preds = %400
  %422 = load i32, ptr %27, align 4, !tbaa !13
  %423 = icmp ult i32 %422, 1005
  %424 = select i1 %423, i32 -1610346414, i32 1610879058
  %425 = load i8, ptr %75, align 4, !tbaa !64
  tail call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef %424, i8 noundef signext %425, i32 noundef %94, i32 noundef 255, i32 noundef %94, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 0) #2
  br label %519

426:                                              ; preds = %93
  %427 = tail call i32 @libxsmm_cpuid_x86_use_high_prec_eltwise_approx() #2
  %428 = icmp eq i32 %427, 0
  br i1 %428, label %459, label %429

429:                                              ; preds = %426
  %430 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #2
  %431 = icmp eq i32 %430, 1
  br i1 %431, label %447, label %432

432:                                              ; preds = %429
  %433 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #2
  %434 = icmp eq i32 %433, 0
  br i1 %434, label %435, label %519

435:                                              ; preds = %432
  %436 = load i32, ptr %27, align 4, !tbaa !13
  %437 = icmp ult i32 %436, 1005
  %438 = load i8, ptr %75, align 4, !tbaa !64
  %439 = load i32, ptr %73, align 4, !tbaa !62
  br i1 %437, label %441, label %440

440:                                              ; preds = %435
  tail call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef 814028382, i8 noundef signext %438, i32 noundef %94, i32 noundef %439, i32 noundef %94) #2
  br label %519

441:                                              ; preds = %435
  %442 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef -1610346480, i8 noundef signext %438, i32 noundef %439, i32 noundef %442) #2
  %443 = load i8, ptr %75, align 4, !tbaa !64
  %444 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef -1610280866, i8 noundef signext %443, i32 noundef %94, i32 noundef %444) #2
  %445 = load i8, ptr %75, align 4, !tbaa !64
  %446 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef -1610346480, i8 noundef signext %445, i32 noundef %446, i32 noundef %94) #2
  br label %519

447:                                              ; preds = %429
  %448 = load i32, ptr %27, align 4, !tbaa !13
  %449 = icmp ult i32 %448, 1005
  %450 = load i8, ptr %75, align 4, !tbaa !64
  %451 = load i32, ptr %73, align 4, !tbaa !62
  br i1 %449, label %453, label %452

452:                                              ; preds = %447
  tail call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef 805574238, i8 noundef signext %450, i32 noundef %94, i32 noundef %451, i32 noundef %94) #2
  br label %519

453:                                              ; preds = %447
  %454 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef -1610346480, i8 noundef signext %450, i32 noundef %451, i32 noundef %454) #2
  %455 = load i8, ptr %75, align 4, !tbaa !64
  %456 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef -1610346402, i8 noundef signext %455, i32 noundef %94, i32 noundef %456) #2
  %457 = load i8, ptr %75, align 4, !tbaa !64
  %458 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef -1610346480, i8 noundef signext %457, i32 noundef %458, i32 noundef %94) #2
  br label %519

459:                                              ; preds = %426
  %460 = load i32, ptr %27, align 4, !tbaa !13
  %461 = icmp ult i32 %460, 1051
  %462 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #2
  %463 = icmp eq i32 %462, 1
  br i1 %461, label %467, label %464

464:                                              ; preds = %459
  %465 = select i1 %463, i32 -536533428, i32 -528144820
  %466 = load i8, ptr %75, align 4, !tbaa !64
  tail call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef %465, i8 noundef signext %466, i32 noundef %94, i32 noundef 255, i32 noundef %94, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 0) #2
  br label %519

467:                                              ; preds = %459
  br i1 %463, label %483, label %468

468:                                              ; preds = %467
  %469 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #2
  %470 = icmp eq i32 %469, 0
  br i1 %470, label %471, label %519

471:                                              ; preds = %468
  %472 = load i32, ptr %27, align 4, !tbaa !13
  %473 = icmp ult i32 %472, 1005
  %474 = load i8, ptr %75, align 4, !tbaa !64
  %475 = load i32, ptr %73, align 4, !tbaa !62
  br i1 %473, label %477, label %476

476:                                              ; preds = %471
  tail call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef 814028382, i8 noundef signext %474, i32 noundef %94, i32 noundef %475, i32 noundef %94) #2
  br label %519

477:                                              ; preds = %471
  %478 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef -1610346480, i8 noundef signext %474, i32 noundef %475, i32 noundef %478) #2
  %479 = load i8, ptr %75, align 4, !tbaa !64
  %480 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef -1610280866, i8 noundef signext %479, i32 noundef %94, i32 noundef %480) #2
  %481 = load i8, ptr %75, align 4, !tbaa !64
  %482 = load i32, ptr %86, align 4, !tbaa !75
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef -1610346480, i8 noundef signext %481, i32 noundef %482, i32 noundef %94) #2
  br label %519

483:                                              ; preds = %467
  %484 = load i32, ptr %27, align 4, !tbaa !13
  %485 = icmp ult i32 %484, 1005
  %486 = select i1 %485, i32 -1610346413, i32 1610879059
  %487 = load i8, ptr %75, align 4, !tbaa !64
  tail call void @libxsmm_x86_instruction_vec_compute_3reg_mask_sae_imm8(ptr noundef nonnull %0, i32 noundef %486, i8 noundef signext %487, i32 noundef %94, i32 noundef 255, i32 noundef %94, i32 noundef 0, i32 noundef 0, i8 noundef zeroext 0, i32 noundef 0) #2
  br label %519

488:                                              ; preds = %93
  %489 = load i32, ptr %27, align 4, !tbaa !13
  %490 = icmp ult i32 %489, 1005
  %491 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #2
  %492 = icmp eq i32 %491, 1
  %493 = load i8, ptr %75, align 4, !tbaa !64
  %494 = load i32, ptr %73, align 4, !tbaa !62
  br i1 %490, label %497, label %495

495:                                              ; preds = %488
  %496 = select i1 %492, i32 805574232, i32 814028376
  tail call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %496, i8 noundef signext %493, i32 noundef %94, i32 noundef %494, i32 noundef %94) #2
  br label %519

497:                                              ; preds = %488
  %498 = select i1 %492, i32 -1610346408, i32 -1610280872
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef %498, i8 noundef signext %493, i32 noundef %494, i32 noundef %94) #2
  br label %519

499:                                              ; preds = %93
  %500 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #2
  %501 = icmp eq i32 %500, 1
  %502 = load i32, ptr %27, align 4, !tbaa !13
  %503 = icmp ult i32 %502, 1005
  %504 = load i8, ptr %75, align 4, !tbaa !64
  %505 = load i32, ptr %87, align 4, !tbaa !76
  br i1 %503, label %508, label %506

506:                                              ; preds = %499
  %507 = select i1 %501, i32 805574231, i32 814028375
  tail call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef nonnull %0, i32 noundef %507, i8 noundef signext %504, i32 noundef %505, i32 noundef %94, i32 noundef %94) #2
  br label %519

508:                                              ; preds = %499
  %509 = select i1 %501, i32 -1610346409, i32 -1610280873
  tail call void @libxsmm_x86_instruction_vec_compute_2reg(ptr noundef nonnull %0, i32 noundef %509, i8 noundef signext %504, i32 noundef %505, i32 noundef %94) #2
  br label %519

510:                                              ; preds = %93
  %511 = tail call i32 @libxsmm_meltw_getenum_precision(ptr noundef nonnull %3, i32 noundef 4) #2
  %512 = icmp eq i32 %511, 1
  %513 = load i32, ptr %27, align 4, !tbaa !13
  %514 = icmp ult i32 %513, 1005
  %515 = select i1 %512, i32 -1610346407, i32 -1610280871
  %516 = select i1 %512, i32 805574233, i32 814028377
  %517 = select i1 %514, i32 %515, i32 %516
  %518 = load i8, ptr %75, align 4, !tbaa !64
  tail call void @libxsmm_x86_instruction_vec_compute_3reg(ptr noundef %0, i32 noundef %517, i8 noundef signext %518, i32 noundef %94, i32 noundef %94, i32 noundef %94) #2
  br label %519

519:                                              ; preds = %510, %508, %506, %497, %495, %483, %477, %476, %468, %464, %453, %452, %441, %440, %432, %421, %415, %414, %401, %397, %386, %385, %369, %368, %355, %342, %337, %334, %326, %309, %301, %286, %275, %272, %233, %230, %175, %166, %162, %125, %116, %112, %93, %91, %89
  %520 = add nuw i32 %.0545.us, 1
  %exitcond.not = icmp eq i32 %520, %6
  br i1 %exitcond.not, label %..loopexit_crit_edge.us, label %89, !llvm.loop !77

..loopexit_crit_edge.us:                          ; preds = %519, %.lr.ph548.split.us
  %521 = add nuw i32 %.0538546.us, 1
  %exitcond555.not = icmp eq i32 %521, %7
  br i1 %exitcond555.not, label %._crit_edge, label %.lr.ph548.split.us, !llvm.loop !79

.preheader.us:                                    ; preds = %.lr.ph548.split.us
  %522 = mul i32 %.0538546.us, %6
  %523 = add i32 %522, %5
  br label %89

._crit_edge:                                      ; preds = %..loopexit_crit_edge.us, %.lr.ph548, %23
  ret void
}

declare i32 @libxsmm_cpuid_x86_use_high_prec_eltwise_approx() local_unnamed_addr #0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { 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, !8, i64 31}
!6 = !{!"libxsmm_meltw_descriptor", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !8, i64 24, !8, i64 25, !8, i64 26, !10, i64 27, !10, i64 29, !8, i64 31}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"short", !8, i64 0}
!11 = !{!6, !10, i64 27}
!12 = !{!6, !10, i64 29}
!13 = !{!14, !7, i64 28}
!14 = !{!"libxsmm_generated_code", !15, i64 0, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28}
!15 = !{!"any pointer", !8, i64 0}
!16 = !{!17, !7, i64 280}
!17 = !{!"libxsmm_mateltwise_kernel_config_struct", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28, !7, i64 32, !7, i64 36, !7, i64 40, !7, i64 44, !7, i64 48, !7, i64 52, !7, i64 56, !7, i64 60, !7, i64 64, !7, i64 68, !7, i64 72, !7, i64 76, !7, i64 80, !7, i64 84, !7, i64 88, !7, i64 92, !7, i64 96, !7, i64 100, !7, i64 104, !7, i64 108, !7, i64 112, !7, i64 116, !7, i64 120, !7, i64 124, !7, i64 128, !7, i64 132, !7, i64 136, !7, i64 140, !7, i64 144, !7, i64 148, !7, i64 152, !7, i64 156, !7, i64 160, !7, i64 164, !7, i64 168, !7, i64 172, !7, i64 176, !7, i64 180, !7, i64 184, !7, i64 188, !7, i64 192, !7, i64 196, !7, i64 200, !7, i64 204, !7, i64 208, !7, i64 212, !7, i64 216, !7, i64 220, !7, i64 224, !7, i64 228, !7, i64 232, !7, i64 236, !7, i64 240, !7, i64 244, !7, i64 248, !7, i64 252, !7, i64 256, !7, i64 260, !7, i64 264, !7, i64 268, !7, i64 272, !7, i64 276, !7, i64 280, !7, i64 284, !7, i64 288, !7, i64 292, !7, i64 296, !7, i64 300, !7, i64 304, !7, i64 308, !7, i64 312, !7, i64 316, !7, i64 320, !7, i64 324, !7, i64 328, !7, i64 332, !7, i64 336, !7, i64 340, !7, i64 344, !7, i64 348, !7, i64 352, !7, i64 356, !7, i64 360, !7, i64 364, !7, i64 368, !7, i64 372, !7, i64 376, !7, i64 380, !7, i64 384, !7, i64 388, !7, i64 392, !7, i64 396, !7, i64 400, !7, i64 404, !7, i64 408, !7, i64 412, !7, i64 416, !7, i64 420, !7, i64 424, !7, i64 428, !7, i64 432, !7, i64 436, !7, i64 440, !7, i64 444, !7, i64 448, !7, i64 452, !7, i64 456, !7, i64 460, !7, i64 464, !7, i64 468, !7, i64 472, !7, i64 476, !7, i64 480, !7, i64 484, !7, i64 488, !7, i64 492, !7, i64 496, !7, i64 500, !7, i64 504, !7, i64 508, !8, i64 512}
!18 = !{!17, !7, i64 284}
!19 = !{!17, !7, i64 288}
!20 = !{!17, !7, i64 292}
!21 = !{!17, !7, i64 296}
!22 = !{!17, !7, i64 300}
!23 = !{!17, !7, i64 304}
!24 = !{!17, !7, i64 308}
!25 = !{!17, !7, i64 312}
!26 = !{!17, !7, i64 316}
!27 = !{!17, !7, i64 224}
!28 = !{!17, !7, i64 144}
!29 = !{!17, !7, i64 160}
!30 = !{!17, !7, i64 176}
!31 = !{!17, !7, i64 320}
!32 = !{!17, !7, i64 324}
!33 = !{!17, !7, i64 328}
!34 = !{!17, !7, i64 332}
!35 = !{!17, !7, i64 336}
!36 = !{!17, !7, i64 340}
!37 = !{!17, !7, i64 344}
!38 = !{!17, !7, i64 348}
!39 = !{!17, !7, i64 352}
!40 = !{!17, !7, i64 356}
!41 = !{!17, !7, i64 360}
!42 = !{!17, !7, i64 364}
!43 = !{!17, !7, i64 368}
!44 = !{!17, !7, i64 372}
!45 = !{!17, !7, i64 376}
!46 = !{!17, !7, i64 380}
!47 = !{!17, !7, i64 384}
!48 = !{!17, !7, i64 388}
!49 = !{!17, !7, i64 392}
!50 = !{!17, !7, i64 396}
!51 = !{!17, !7, i64 132}
!52 = !{!17, !7, i64 136}
!53 = !{!17, !7, i64 140}
!54 = !{!17, !7, i64 228}
!55 = !{!17, !7, i64 232}
!56 = !{!17, !7, i64 204}
!57 = !{!17, !7, i64 192}
!58 = !{!17, !7, i64 196}
!59 = !{!17, !7, i64 200}
!60 = !{!17, !7, i64 208}
!61 = !{!17, !7, i64 212}
!62 = !{!17, !7, i64 216}
!63 = !{!17, !7, i64 220}
!64 = !{!17, !8, i64 512}
!65 = !{!17, !7, i64 256}
!66 = !{!17, !7, i64 260}
!67 = !{!17, !7, i64 276}
!68 = !{!17, !7, i64 248}
!69 = !{!17, !7, i64 252}
!70 = !{!17, !7, i64 240}
!71 = !{!17, !7, i64 244}
!72 = !{!17, !7, i64 264}
!73 = !{!17, !7, i64 268}
!74 = !{!17, !7, i64 272}
!75 = !{!17, !7, i64 116}
!76 = !{!17, !7, i64 476}
!77 = distinct !{!77, !78}
!78 = !{!"llvm.loop.mustprogress"}
!79 = distinct !{!79, !78}


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